summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitmodules3
-rw-r--r--CMakeL10n.txt7
-rw-r--r--CMakeLists.txt49
-rw-r--r--ConfigureChecks.cmake178
-rw-r--r--MAINTAINERS2
-rw-r--r--Mainpage.dox3
-rw-r--r--Makefile.am.in3
-rw-r--r--README1
-rw-r--r--README.Kolab5
m---------admin0
-rw-r--r--akregator/HACKING32
-rw-r--r--akregator/src/CMakeL10n.txt12
-rw-r--r--akregator/src/CMakeLists.txt37
-rw-r--r--akregator/src/about/akregator.css3
-rw-r--r--akregator/src/about/main.html1
-rw-r--r--akregator/src/aboutdata.h2
-rw-r--r--akregator/src/actionmanagerimpl.cpp128
-rw-r--r--akregator/src/actionmanagerimpl.h2
-rw-r--r--akregator/src/addfeeddialog.cpp15
-rw-r--r--akregator/src/addfeeddialog.h4
-rw-r--r--akregator/src/akregator.desktop103
-rw-r--r--akregator/src/akregator_export.h2
-rw-r--r--akregator/src/akregator_part.cpp32
-rw-r--r--akregator/src/akregator_part.desktop8
-rw-r--r--akregator/src/akregator_part.h6
-rw-r--r--akregator/src/akregator_plugin.desktop53
-rw-r--r--akregator/src/akregator_run.cpp4
-rw-r--r--akregator/src/akregator_run.h4
-rw-r--r--akregator/src/akregator_view.cpp108
-rw-r--r--akregator/src/akregator_view.h2
-rw-r--r--akregator/src/articlelistview.cpp29
-rw-r--r--akregator/src/articlelistview.h2
-rw-r--r--akregator/src/articleviewer.cpp34
-rw-r--r--akregator/src/articleviewer.h2
-rw-r--r--akregator/src/configdialog.h2
-rw-r--r--akregator/src/eventsrc199
-rw-r--r--akregator/src/feed.cpp6
-rw-r--r--akregator/src/feed.h2
-rw-r--r--akregator/src/feediconmanager.cpp4
-rw-r--r--akregator/src/feediconmanager.h2
-rw-r--r--akregator/src/feedlist.h2
-rw-r--r--akregator/src/feedlistview.cpp58
-rw-r--r--akregator/src/feedlistview.h4
-rw-r--r--akregator/src/fetchqueue.cpp16
-rw-r--r--akregator/src/fetchqueue.h5
-rw-r--r--akregator/src/folder.cpp20
-rw-r--r--akregator/src/folder.h2
-rw-r--r--akregator/src/frame.cpp24
-rw-r--r--akregator/src/frame.h5
-rw-r--r--akregator/src/librss/article.cpp2
-rw-r--r--akregator/src/librss/article.h1
-rw-r--r--akregator/src/librss/document.cpp2
-rw-r--r--akregator/src/librss/document.h1
-rw-r--r--akregator/src/librss/global.h3
-rw-r--r--akregator/src/librss/image.cpp7
-rw-r--r--akregator/src/librss/image.h3
-rw-r--r--akregator/src/librss/librss.h1
-rw-r--r--akregator/src/librss/loader.cpp27
-rw-r--r--akregator/src/librss/loader.h13
-rw-r--r--akregator/src/librss/testlibrss.cpp4
-rw-r--r--akregator/src/librss/testlibrss.h2
-rw-r--r--akregator/src/librss/textinput.cpp2
-rw-r--r--akregator/src/librss/textinput.h1
-rw-r--r--akregator/src/librss/tools_p.cpp2
-rw-r--r--akregator/src/librss/tools_p.h1
-rw-r--r--akregator/src/listtabwidget.cpp8
-rw-r--r--akregator/src/listtabwidget.h2
-rw-r--r--akregator/src/mainwindow.cpp29
-rw-r--r--akregator/src/mainwindow.h4
-rw-r--r--akregator/src/mk4storage/CMakeLists.txt7
-rw-r--r--akregator/src/mk4storage/akregator_mk4storage_plugin.desktop98
-rw-r--r--akregator/src/mk4storage/metakit/CHANGES2
-rw-r--r--akregator/src/mk4storage/mk4confwidget.cpp2
-rw-r--r--akregator/src/mk4storage/mk4confwidget.h2
-rw-r--r--akregator/src/mk4storage/mk4confwidgetbase.ui16
-rw-r--r--akregator/src/mk4storage/storagemk4impl.cpp2
-rw-r--r--akregator/src/mk4storage/storagemk4impl.h2
-rw-r--r--akregator/src/nodelist.cpp16
-rw-r--r--akregator/src/nodelist.h2
-rw-r--r--akregator/src/notificationmanager.cpp4
-rw-r--r--akregator/src/notificationmanager.h2
-rw-r--r--akregator/src/pageviewer.cpp48
-rw-r--r--akregator/src/pageviewer.h2
-rw-r--r--akregator/src/progressmanager.cpp22
-rw-r--r--akregator/src/progressmanager.h4
-rw-r--r--akregator/src/propertiesdialog.cpp3
-rw-r--r--akregator/src/propertiesdialog.h4
-rw-r--r--akregator/src/propertieswidgetbase.ui4
-rw-r--r--akregator/src/searchbar.cpp14
-rw-r--r--akregator/src/searchbar.h2
-rw-r--r--akregator/src/settings_advanced.cpp4
-rw-r--r--akregator/src/settings_advanced.h2
-rw-r--r--akregator/src/simplenodeselector.cpp8
-rw-r--r--akregator/src/simplenodeselector.h4
-rw-r--r--akregator/src/speechclient.h2
-rw-r--r--akregator/src/storagedummyimpl.h2
-rw-r--r--akregator/src/tabwidget.cpp14
-rw-r--r--akregator/src/tabwidget.h2
-rw-r--r--akregator/src/tagaction.cpp6
-rw-r--r--akregator/src/tagaction.h2
-rw-r--r--akregator/src/tagnode.cpp8
-rw-r--r--akregator/src/tagnode.h2
-rw-r--r--akregator/src/tagnodelist.cpp6
-rw-r--r--akregator/src/tagnodelist.h2
-rw-r--r--akregator/src/tagpropertiesdialog.cpp2
-rw-r--r--akregator/src/tagpropertiesdialog.h2
-rw-r--r--akregator/src/tagset.h2
-rw-r--r--akregator/src/trayicon.cpp4
-rw-r--r--akregator/src/trayicon.h2
-rw-r--r--akregator/src/treenode.h2
-rw-r--r--akregator/src/viewer.cpp40
-rw-r--r--akregator/src/viewer.h3
-rw-r--r--certmanager/CMakeL10n.txt6
-rw-r--r--certmanager/CMakeLists.txt6
-rw-r--r--certmanager/certificateinfowidgetimpl.cpp50
-rw-r--r--certmanager/certificateinfowidgetimpl.h2
-rw-r--r--certmanager/certificatewizard.ui10
-rw-r--r--certmanager/certificatewizardimpl.cpp26
-rw-r--r--certmanager/certificatewizardimpl.h2
-rw-r--r--certmanager/certlistview.h2
-rw-r--r--certmanager/certmanager.cpp176
-rw-r--r--certmanager/certmanager.h6
-rw-r--r--certmanager/conf/CMakeLists.txt7
-rw-r--r--certmanager/conf/appearanceconfigpage.cpp4
-rw-r--r--certmanager/conf/appearanceconfigpage.h2
-rw-r--r--certmanager/conf/appearanceconfigwidget.h2
-rw-r--r--certmanager/conf/appearanceconfigwidgetbase.ui4
-rw-r--r--certmanager/conf/configuredialog.h2
-rw-r--r--certmanager/conf/dirservconfigpage.cpp10
-rw-r--r--certmanager/conf/dirservconfigpage.h4
-rw-r--r--certmanager/conf/dnorderconfigpage.cpp4
-rw-r--r--certmanager/conf/dnorderconfigpage.h2
-rw-r--r--certmanager/conf/kleopatra_config_appear.desktop162
-rw-r--r--certmanager/conf/kleopatra_config_dirserv.desktop151
-rw-r--r--certmanager/conf/kleopatra_config_dnorder.desktop146
-rw-r--r--certmanager/crlview.cpp18
-rw-r--r--certmanager/crlview.h2
-rw-r--r--certmanager/customactions.cpp10
-rw-r--r--certmanager/customactions.h6
-rw-r--r--certmanager/hierarchyanalyser.h4
-rw-r--r--certmanager/kleopatra.desktop118
-rw-r--r--certmanager/kleopatra_import.desktop5
-rw-r--r--certmanager/kwatchgnupg/kwatchgnupgconfig.cpp16
-rw-r--r--certmanager/kwatchgnupg/kwatchgnupgconfig.h2
-rw-r--r--certmanager/kwatchgnupg/kwatchgnupgmainwin.cpp56
-rw-r--r--certmanager/kwatchgnupg/kwatchgnupgmainwin.h2
-rw-r--r--certmanager/kwatchgnupg/tray.h2
-rw-r--r--certmanager/lib/CMakeLists.txt7
-rw-r--r--certmanager/lib/backends/chiasmus/chiasmusbackend.cpp2
-rw-r--r--certmanager/lib/backends/chiasmus/chiasmusbackend.h2
-rw-r--r--certmanager/lib/backends/chiasmus/chiasmusjob.cpp6
-rw-r--r--certmanager/lib/backends/chiasmus/chiasmusjob.h4
-rw-r--r--certmanager/lib/backends/chiasmus/chiasmuslibrary.h2
-rw-r--r--certmanager/lib/backends/chiasmus/obtainkeysjob.cpp4
-rw-r--r--certmanager/lib/backends/chiasmus/obtainkeysjob.h4
-rw-r--r--certmanager/lib/backends/chiasmus/symcryptrunprocessbase.cpp10
-rw-r--r--certmanager/lib/backends/chiasmus/symcryptrunprocessbase.h2
-rw-r--r--certmanager/lib/backends/kpgp/gpg1backend.h2
-rw-r--r--certmanager/lib/backends/kpgp/kpgpbackendbase.cpp2
-rw-r--r--certmanager/lib/backends/kpgp/kpgpbackendbase.h2
-rw-r--r--certmanager/lib/backends/kpgp/kpgpkeylistjob.cpp2
-rw-r--r--certmanager/lib/backends/kpgp/kpgpkeylistjob.h4
-rw-r--r--certmanager/lib/backends/kpgp/kpgpwrapper.cpp2
-rw-r--r--certmanager/lib/backends/kpgp/kpgpwrapper.h2
-rw-r--r--certmanager/lib/backends/kpgp/pgp2backend.h2
-rw-r--r--certmanager/lib/backends/kpgp/pgp5backend.h2
-rw-r--r--certmanager/lib/backends/kpgp/pgp6backend.h2
-rw-r--r--certmanager/lib/backends/qgpgme/gnupgprocessbase.cpp2
-rw-r--r--certmanager/lib/backends/qgpgme/gnupgprocessbase.h2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmebackend.cpp2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmebackend.h2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmecryptoconfig.cpp8
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmecryptoconfig.h4
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmedecryptjob.h2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmedecryptverifyjob.h4
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmedeletejob.h2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmedownloadjob.h2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmeencryptjob.h2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmeexportjob.h2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmeimportjob.h2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmejob.cpp8
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmejob.h2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmekeygenerationjob.h4
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmekeylistjob.cpp6
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmekeylistjob.h2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmeprogresstokenmapper.cpp2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmerefreshkeysjob.cpp12
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmerefreshkeysjob.h2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmesecretkeyexportjob.cpp16
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmesecretkeyexportjob.h2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmesignencryptjob.h4
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmesignjob.h2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmeverifydetachedjob.h2
-rw-r--r--certmanager/lib/backends/qgpgme/qgpgmeverifyopaquejob.h2
-rw-r--r--certmanager/lib/cryptplug.cpp7
-rw-r--r--certmanager/lib/cryptplug.h5
-rw-r--r--certmanager/lib/cryptplugfactory.h4
-rw-r--r--certmanager/lib/cryptplugwrapper.h2
-rw-r--r--certmanager/lib/cryptplugwrapperlist.cpp3
-rw-r--r--certmanager/lib/cryptplugwrapperlist.h3
-rw-r--r--certmanager/lib/kleo/cryptobackendfactory.h4
-rw-r--r--certmanager/lib/kleo/decryptjob.h2
-rw-r--r--certmanager/lib/kleo/decryptverifyjob.h2
-rw-r--r--certmanager/lib/kleo/deletejob.h2
-rw-r--r--certmanager/lib/kleo/dn.h2
-rw-r--r--certmanager/lib/kleo/downloadjob.h2
-rw-r--r--certmanager/lib/kleo/encryptjob.h2
-rw-r--r--certmanager/lib/kleo/enum.h2
-rw-r--r--certmanager/lib/kleo/exportjob.h2
-rw-r--r--certmanager/lib/kleo/hierarchicalkeylistjob.cpp4
-rw-r--r--certmanager/lib/kleo/hierarchicalkeylistjob.h4
-rw-r--r--certmanager/lib/kleo/importjob.h2
-rw-r--r--certmanager/lib/kleo/job.cpp2
-rw-r--r--certmanager/lib/kleo/job.h2
-rw-r--r--certmanager/lib/kleo/keyfiltermanager.cpp2
-rw-r--r--certmanager/lib/kleo/keyfiltermanager.h4
-rw-r--r--certmanager/lib/kleo/keygenerationjob.h2
-rw-r--r--certmanager/lib/kleo/keylistjob.h2
-rw-r--r--certmanager/lib/kleo/multideletejob.cpp2
-rw-r--r--certmanager/lib/kleo/multideletejob.h4
-rw-r--r--certmanager/lib/kleo/refreshkeysjob.h2
-rw-r--r--certmanager/lib/kleo/signencryptjob.h2
-rw-r--r--certmanager/lib/kleo/signjob.h2
-rw-r--r--certmanager/lib/kleo/specialjob.h2
-rw-r--r--certmanager/lib/kleo/verifydetachedjob.h2
-rw-r--r--certmanager/lib/kleo/verifyopaquejob.h2
-rw-r--r--certmanager/lib/libkleopatrarc.desktop285
-rw-r--r--certmanager/lib/tests/gnupgviewer.h2
-rw-r--r--certmanager/lib/tests/test.data2
-rw-r--r--certmanager/lib/tests/test_gnupgprocessbase.cpp16
-rw-r--r--certmanager/lib/tests/test_jobs.cpp4
-rw-r--r--certmanager/lib/tests/test_keygen.cpp6
-rw-r--r--certmanager/lib/tests/test_keygen.h2
-rw-r--r--certmanager/lib/tests/test_keylister.cpp10
-rw-r--r--certmanager/lib/tests/test_keylister.h2
-rw-r--r--certmanager/lib/ui/adddirectoryservicedialogimpl.cpp2
-rw-r--r--certmanager/lib/ui/adddirectoryservicedialogimpl.h2
-rw-r--r--certmanager/lib/ui/backendconfigwidget.cpp16
-rw-r--r--certmanager/lib/ui/backendconfigwidget.h6
-rw-r--r--certmanager/lib/ui/cryptoconfigdialog.cpp2
-rw-r--r--certmanager/lib/ui/cryptoconfigdialog.h4
-rw-r--r--certmanager/lib/ui/cryptoconfigmodule.cpp18
-rw-r--r--certmanager/lib/ui/cryptoconfigmodule.h2
-rw-r--r--certmanager/lib/ui/cryptoconfigmodule_p.h20
-rw-r--r--certmanager/lib/ui/directoryserviceswidget.h4
-rw-r--r--certmanager/lib/ui/directoryserviceswidgetbase.ui4
-rw-r--r--certmanager/lib/ui/dnattributeorderconfigwidget.cpp24
-rw-r--r--certmanager/lib/ui/dnattributeorderconfigwidget.h6
-rw-r--r--certmanager/lib/ui/kdhorizontalline.cpp2
-rw-r--r--certmanager/lib/ui/kdhorizontalline.h4
-rw-r--r--certmanager/lib/ui/keyapprovaldialog.cpp6
-rw-r--r--certmanager/lib/ui/keyapprovaldialog.h6
-rw-r--r--certmanager/lib/ui/keylistview.cpp18
-rw-r--r--certmanager/lib/ui/keylistview.h4
-rw-r--r--certmanager/lib/ui/keyrequester.cpp22
-rw-r--r--certmanager/lib/ui/keyrequester.h10
-rw-r--r--certmanager/lib/ui/keyselectiondialog.cpp60
-rw-r--r--certmanager/lib/ui/keyselectiondialog.h6
-rw-r--r--certmanager/lib/ui/messagebox.cpp2
-rw-r--r--certmanager/lib/ui/passphrasedialog.cpp4
-rw-r--r--certmanager/lib/ui/passphrasedialog.h4
-rw-r--r--certmanager/lib/ui/progressbar.cpp2
-rw-r--r--certmanager/lib/ui/progressbar.h4
-rw-r--r--certmanager/lib/ui/progressdialog.cpp14
-rw-r--r--certmanager/lib/ui/progressdialog.h4
-rw-r--r--certmanager/storedtransferjob.cpp8
-rw-r--r--certmanager/storedtransferjob.h2
m---------cmake0
-rw-r--r--config.h.cmake20
-rw-r--r--dependency-graph.dot2
-rw-r--r--doc/akregator/index.docbook9
-rw-r--r--doc/api/Doxyfile.pim2
-rw-r--r--doc/kalarm/index.docbook164
-rw-r--r--doc/kandy/index.docbook12
-rw-r--r--doc/karm/index.docbook24
-rw-r--r--doc/kleopatra/index.docbook12
-rw-r--r--doc/kmail/configure.docbook6
-rw-r--r--doc/kmail/index.docbook12
-rw-r--r--doc/kmail/using-kmail.docbook4
-rw-r--r--doc/knode/introduction.docbook2
-rw-r--r--doc/knode/journey.docbook4
-rw-r--r--doc/knode/using-morefeatures.docbook12
-rw-r--r--doc/knotes/index.docbook11
-rw-r--r--doc/konsolekalendar/index.docbook9
-rw-r--r--doc/kontact/index.docbook22
-rw-r--r--doc/korganizer/index.docbook19
-rw-r--r--doc/korn/index.docbook8
-rw-r--r--doc/kwatchgnupg/index.docbook12
-rw-r--r--indexlib/bitio.h2
-rw-r--r--indexlib/bitio.tcc4
-rw-r--r--indexlib/boost-compat/checked_delete.h69
-rw-r--r--indexlib/boost-compat/checked_delete.hpp69
-rw-r--r--indexlib/boost-compat/config.h70
-rw-r--r--indexlib/boost-compat/config.hpp70
-rw-r--r--indexlib/boost-compat/config/abi/borland_prefix.h (renamed from indexlib/boost-compat/config/abi/borland_prefix.hpp)0
-rw-r--r--indexlib/boost-compat/config/abi/borland_suffix.h (renamed from indexlib/boost-compat/config/abi/borland_suffix.hpp)0
-rw-r--r--indexlib/boost-compat/config/abi/msvc_prefix.h (renamed from indexlib/boost-compat/config/abi/msvc_prefix.hpp)0
-rw-r--r--indexlib/boost-compat/config/abi/msvc_suffix.h (renamed from indexlib/boost-compat/config/abi/msvc_suffix.hpp)0
-rw-r--r--indexlib/boost-compat/config/abi_prefix.h20
-rw-r--r--indexlib/boost-compat/config/abi_prefix.hpp20
-rw-r--r--indexlib/boost-compat/config/abi_suffix.h23
-rw-r--r--indexlib/boost-compat/config/abi_suffix.hpp23
-rw-r--r--indexlib/boost-compat/config/auto_link.h336
-rw-r--r--indexlib/boost-compat/config/auto_link.hpp336
-rw-r--r--indexlib/boost-compat/config/compiler/borland.h (renamed from indexlib/boost-compat/config/compiler/borland.hpp)0
-rw-r--r--indexlib/boost-compat/config/compiler/comeau.h (renamed from indexlib/boost-compat/config/compiler/comeau.hpp)0
-rw-r--r--indexlib/boost-compat/config/compiler/common_edg.h53
-rw-r--r--indexlib/boost-compat/config/compiler/common_edg.hpp53
-rw-r--r--indexlib/boost-compat/config/compiler/compaq_cxx.h (renamed from indexlib/boost-compat/config/compiler/compaq_cxx.hpp)0
-rw-r--r--indexlib/boost-compat/config/compiler/digitalmars.h (renamed from indexlib/boost-compat/config/compiler/digitalmars.hpp)0
-rw-r--r--indexlib/boost-compat/config/compiler/gcc.h92
-rw-r--r--indexlib/boost-compat/config/compiler/gcc.hpp96
-rw-r--r--indexlib/boost-compat/config/compiler/greenhills.h (renamed from indexlib/boost-compat/config/compiler/greenhills.hpp)0
-rw-r--r--indexlib/boost-compat/config/compiler/hp_acc.h (renamed from indexlib/boost-compat/config/compiler/hp_acc.hpp)0
-rw-r--r--indexlib/boost-compat/config/compiler/intel.h (renamed from indexlib/boost-compat/config/compiler/intel.hpp)0
-rw-r--r--indexlib/boost-compat/config/compiler/kai.h35
-rw-r--r--indexlib/boost-compat/config/compiler/kai.hpp35
-rw-r--r--indexlib/boost-compat/config/compiler/metrowerks.h (renamed from indexlib/boost-compat/config/compiler/metrowerks.hpp)0
-rw-r--r--indexlib/boost-compat/config/compiler/mpw.h (renamed from indexlib/boost-compat/config/compiler/mpw.hpp)0
-rw-r--r--indexlib/boost-compat/config/compiler/sgi_mipspro.h (renamed from indexlib/boost-compat/config/compiler/sgi_mipspro.hpp)0
-rw-r--r--indexlib/boost-compat/config/compiler/sunpro_cc.h89
-rw-r--r--indexlib/boost-compat/config/compiler/sunpro_cc.hpp89
-rw-r--r--indexlib/boost-compat/config/compiler/vacpp.h (renamed from indexlib/boost-compat/config/compiler/vacpp.hpp)0
-rw-r--r--indexlib/boost-compat/config/compiler/visualc.h (renamed from indexlib/boost-compat/config/compiler/visualc.hpp)0
-rw-r--r--indexlib/boost-compat/config/platform/aix.h (renamed from indexlib/boost-compat/config/platform/aix.hpp)0
-rw-r--r--indexlib/boost-compat/config/platform/amigaos.h (renamed from indexlib/boost-compat/config/platform/amigaos.hpp)0
-rw-r--r--indexlib/boost-compat/config/platform/beos.h (renamed from indexlib/boost-compat/config/platform/beos.hpp)0
-rw-r--r--indexlib/boost-compat/config/platform/bsd.h (renamed from indexlib/boost-compat/config/platform/bsd.hpp)0
-rw-r--r--indexlib/boost-compat/config/platform/cygwin.h (renamed from indexlib/boost-compat/config/platform/cygwin.hpp)0
-rw-r--r--indexlib/boost-compat/config/platform/hpux.h (renamed from indexlib/boost-compat/config/platform/hpux.hpp)0
-rw-r--r--indexlib/boost-compat/config/platform/irix.h (renamed from indexlib/boost-compat/config/platform/irix.hpp)0
-rw-r--r--indexlib/boost-compat/config/platform/linux.h (renamed from indexlib/boost-compat/config/platform/linux.hpp)0
-rw-r--r--indexlib/boost-compat/config/platform/macos.h (renamed from indexlib/boost-compat/config/platform/macos.hpp)0
-rw-r--r--indexlib/boost-compat/config/platform/solaris.h (renamed from indexlib/boost-compat/config/platform/solaris.hpp)0
-rw-r--r--indexlib/boost-compat/config/platform/win32.h (renamed from indexlib/boost-compat/config/platform/win32.hpp)0
-rw-r--r--indexlib/boost-compat/config/posix_features.h (renamed from indexlib/boost-compat/config/posix_features.hpp)0
-rw-r--r--indexlib/boost-compat/config/requires_threads.h92
-rw-r--r--indexlib/boost-compat/config/requires_threads.hpp92
-rw-r--r--indexlib/boost-compat/config/select_compiler_config.h (renamed from indexlib/boost-compat/config/select_compiler_config.hpp)0
-rw-r--r--indexlib/boost-compat/config/select_platform_config.h (renamed from indexlib/boost-compat/config/select_platform_config.hpp)0
-rw-r--r--indexlib/boost-compat/config/select_stdlib_config.h (renamed from indexlib/boost-compat/config/select_stdlib_config.hpp)0
-rw-r--r--indexlib/boost-compat/config/stdlib/dinkumware.h (renamed from indexlib/boost-compat/config/stdlib/dinkumware.hpp)0
-rw-r--r--indexlib/boost-compat/config/stdlib/libcomo.h (renamed from indexlib/boost-compat/config/stdlib/libcomo.hpp)0
-rw-r--r--indexlib/boost-compat/config/stdlib/libstdcpp3.h51
-rw-r--r--indexlib/boost-compat/config/stdlib/libstdcpp3.hpp51
-rw-r--r--indexlib/boost-compat/config/stdlib/modena.h (renamed from indexlib/boost-compat/config/stdlib/modena.hpp)0
-rw-r--r--indexlib/boost-compat/config/stdlib/msl.h (renamed from indexlib/boost-compat/config/stdlib/msl.hpp)0
-rw-r--r--indexlib/boost-compat/config/stdlib/roguewave.h122
-rw-r--r--indexlib/boost-compat/config/stdlib/roguewave.hpp123
-rw-r--r--indexlib/boost-compat/config/stdlib/sgi.h (renamed from indexlib/boost-compat/config/stdlib/sgi.hpp)0
-rw-r--r--indexlib/boost-compat/config/stdlib/stlport.h (renamed from indexlib/boost-compat/config/stdlib/stlport.hpp)0
-rw-r--r--indexlib/boost-compat/config/stdlib/vacpp.h (renamed from indexlib/boost-compat/config/stdlib/vacpp.hpp)0
-rw-r--r--indexlib/boost-compat/config/suffix.h543
-rw-r--r--indexlib/boost-compat/config/suffix.hpp543
-rw-r--r--indexlib/boost-compat/config/user.h124
-rw-r--r--indexlib/boost-compat/config/user.hpp124
-rw-r--r--indexlib/boost-compat/intrusive_ptr.h272
-rw-r--r--indexlib/boost-compat/intrusive_ptr.hpp272
-rw-r--r--indexlib/boost-compat/next_prior.h51
-rw-r--r--indexlib/boost-compat/next_prior.hpp51
-rw-r--r--indexlib/boost-compat/noncopyable.h36
-rw-r--r--indexlib/boost-compat/noncopyable.hpp36
-rw-r--r--indexlib/boost-compat/remove_cv.h61
-rw-r--r--indexlib/boost-compat/remove_cv.hpp61
-rw-r--r--indexlib/boost-compat/scoped_ptr.h113
-rw-r--r--indexlib/boost-compat/scoped_ptr.hpp118
-rw-r--r--indexlib/boost-compat/shared_ptr.h450
-rw-r--r--indexlib/boost-compat/shared_ptr.hpp473
-rw-r--r--indexlib/boost-compat/smart_ptr.h31
-rw-r--r--indexlib/boost-compat/smart_ptr.hpp31
-rw-r--r--indexlib/boost-compat/static_assert.h11
-rw-r--r--indexlib/boost-compat/static_assert.hpp11
-rw-r--r--indexlib/boost-compat/weak_ptr.h192
-rw-r--r--indexlib/boost-compat/weak_ptr.hpp192
-rw-r--r--indexlib/compressed.cpp2
-rw-r--r--indexlib/configure.in.in2
-rw-r--r--indexlib/create.cpp22
-rw-r--r--indexlib/create.h4
-rw-r--r--indexlib/ifile.cpp14
-rw-r--r--indexlib/ifile.h8
-rw-r--r--indexlib/index.h4
-rw-r--r--indexlib/index_slow.h2
-rw-r--r--indexlib/leafdata.cpp2
-rw-r--r--indexlib/leafdatavector.cpp2
-rw-r--r--indexlib/main.cpp6
-rw-r--r--indexlib/mempool.h6
-rw-r--r--indexlib/mempool.tcc4
-rw-r--r--indexlib/memvector.h4
-rw-r--r--indexlib/pointer.h2
-rw-r--r--indexlib/quotes.cpp6
-rw-r--r--indexlib/quotes.h2
-rw-r--r--indexlib/result.h4
-rw-r--r--indexlib/stringarray.h2
-rw-r--r--indexlib/tests/create-test.cpp4
-rw-r--r--indexlib/tests/mempool-test.cpp4
-rw-r--r--indexlib/tests/tokenizer-test.cpp12
-rw-r--r--indexlib/tokenizer.cpp6
-rw-r--r--indexlib/tokenizer.h2
-rw-r--r--kaddressbook/CMakeL10n.txt6
-rw-r--r--kaddressbook/CMakeLists.txt15
-rw-r--r--kaddressbook/addresseditwidget.cpp36
-rw-r--r--kaddressbook/addresseditwidget.h4
-rw-r--r--kaddressbook/addresseeeditorbase.h2
-rw-r--r--kaddressbook/addresseeeditordialog.cpp2
-rw-r--r--kaddressbook/addresseeeditordialog.h2
-rw-r--r--kaddressbook/addresseeeditorextension.cpp2
-rw-r--r--kaddressbook/addresseeeditorextension.h2
-rw-r--r--kaddressbook/addresseeeditorwidget.cpp112
-rw-r--r--kaddressbook/addresseeeditorwidget.h2
-rw-r--r--kaddressbook/addviewdialog.cpp8
-rw-r--r--kaddressbook/addviewdialog.h2
-rw-r--r--kaddressbook/advancedcustomfields.cpp2
-rw-r--r--kaddressbook/advancedcustomfields.h2
-rw-r--r--kaddressbook/common/kabprefs.h2
-rw-r--r--kaddressbook/common/locationmap.h2
-rw-r--r--kaddressbook/contacteditorwidgetmanager.cpp4
-rw-r--r--kaddressbook/contacteditorwidgetmanager.h4
-rw-r--r--kaddressbook/csv-templates/CMakeLists.txt8
-rw-r--r--kaddressbook/csv-templates/kaddressbook.desktop28
-rw-r--r--kaddressbook/csv-templates/outlook2000.desktop7
-rw-r--r--kaddressbook/csv-templates/yahoo.desktop53
-rw-r--r--kaddressbook/customfieldswidget.cpp108
-rw-r--r--kaddressbook/customfieldswidget.h6
-rw-r--r--kaddressbook/dcopaddressbook.desktop55
-rw-r--r--kaddressbook/distributionlisteditor.cpp18
-rw-r--r--kaddressbook/distributionlisteditor.h2
-rw-r--r--kaddressbook/distributionlisteditor_p.h4
-rw-r--r--kaddressbook/distributionlistentryview.cpp8
-rw-r--r--kaddressbook/distributionlistentryview.h2
-rw-r--r--kaddressbook/distributionlistpicker.cpp8
-rw-r--r--kaddressbook/distributionlistpicker.h2
-rw-r--r--kaddressbook/editors/CMakeLists.txt13
-rw-r--r--kaddressbook/editors/cryptosettings.desktop54
-rw-r--r--kaddressbook/editors/cryptowidget.cpp14
-rw-r--r--kaddressbook/editors/cryptowidget.h2
-rw-r--r--kaddressbook/editors/imaddressbase.ui4
-rw-r--r--kaddressbook/editors/imaddresseditor.desktop100
-rw-r--r--kaddressbook/editors/imaddresswidget.cpp8
-rw-r--r--kaddressbook/editors/imaddresswidget.h2
-rw-r--r--kaddressbook/editors/imeditorwidget.cpp22
-rw-r--r--kaddressbook/editors/imeditorwidget.h2
-rw-r--r--kaddressbook/editors/kaddressbookimprotocol.desktop51
-rw-r--r--kaddressbook/editors/protocols/CMakeLists.txt7
-rw-r--r--kaddressbook/editors/protocols/aimprotocol.desktop57
-rw-r--r--kaddressbook/editors/protocols/gaduprotocol.desktop57
-rw-r--r--kaddressbook/editors/protocols/groupwiseprotocol.desktop38
-rw-r--r--kaddressbook/editors/protocols/icqprotocol.desktop55
-rw-r--r--kaddressbook/editors/protocols/ircprotocol.desktop25
-rw-r--r--kaddressbook/editors/protocols/jabberprotocol.desktop57
-rw-r--r--kaddressbook/editors/protocols/meanwhileprotocol.desktop55
-rw-r--r--kaddressbook/editors/protocols/msnprotocol.desktop27
-rw-r--r--kaddressbook/editors/protocols/skypeprotocol.desktop49
-rw-r--r--kaddressbook/editors/protocols/smsprotocol.desktop58
-rw-r--r--kaddressbook/editors/protocols/yahooprotocol.desktop60
-rw-r--r--kaddressbook/emaileditwidget.cpp26
-rw-r--r--kaddressbook/emaileditwidget.h4
-rw-r--r--kaddressbook/extensionmanager.cpp26
-rw-r--r--kaddressbook/extensionmanager.h2
-rw-r--r--kaddressbook/features/CMakeLists.txt8
-rw-r--r--kaddressbook/features/distributionlist.desktop113
-rw-r--r--kaddressbook/features/distributionlistng.desktop79
-rw-r--r--kaddressbook/features/distributionlistngwidget.cpp40
-rw-r--r--kaddressbook/features/distributionlistngwidget.h4
-rw-r--r--kaddressbook/features/distributionlistwidget.cpp34
-rw-r--r--kaddressbook/features/distributionlistwidget.h4
-rw-r--r--kaddressbook/features/resourceselection.cpp46
-rw-r--r--kaddressbook/features/resourceselection.desktop109
-rw-r--r--kaddressbook/features/resourceselection.h2
-rw-r--r--kaddressbook/filtereditdialog.cpp22
-rw-r--r--kaddressbook/filtereditdialog.h4
-rw-r--r--kaddressbook/filterselectionwidget.cpp4
-rw-r--r--kaddressbook/filterselectionwidget.h2
-rw-r--r--kaddressbook/freebusywidget.cpp4
-rw-r--r--kaddressbook/freebusywidget.h2
-rw-r--r--kaddressbook/geowidget.cpp72
-rw-r--r--kaddressbook/geowidget.h6
-rw-r--r--kaddressbook/imagewidget.cpp14
-rw-r--r--kaddressbook/imagewidget.h6
-rw-r--r--kaddressbook/imeditwidget.cpp10
-rw-r--r--kaddressbook/imeditwidget.h2
-rw-r--r--kaddressbook/incsearchwidget.cpp24
-rw-r--r--kaddressbook/incsearchwidget.h2
-rw-r--r--kaddressbook/interfaces/CMakeLists.txt7
-rw-r--r--kaddressbook/interfaces/configurewidget.h2
-rw-r--r--kaddressbook/interfaces/contacteditorwidget.h4
-rw-r--r--kaddressbook/interfaces/core.h16
-rw-r--r--kaddressbook/interfaces/extensionwidget.h4
-rw-r--r--kaddressbook/interfaces/kaddressbook_contacteditorwidget.desktop48
-rw-r--r--kaddressbook/interfaces/kaddressbook_extension.desktop52
-rw-r--r--kaddressbook/interfaces/kaddressbook_xxport.desktop54
-rw-r--r--kaddressbook/interfaces/xxport.cpp12
-rw-r--r--kaddressbook/interfaces/xxport.h4
-rw-r--r--kaddressbook/jumpbuttonbar.cpp10
-rw-r--r--kaddressbook/jumpbuttonbar.h2
-rw-r--r--kaddressbook/kabcore.cpp200
-rw-r--r--kaddressbook/kabcore.h18
-rw-r--r--kaddressbook/kaddressbook.desktop68
-rw-r--r--kaddressbook/kaddressbook_part.cpp2
-rw-r--r--kaddressbook/kaddressbook_part.h2
-rw-r--r--kaddressbook/kaddressbook_view.desktop53
-rw-r--r--kaddressbook/kaddressbookiface.h2
-rw-r--r--kaddressbook/kaddressbookmain.cpp10
-rw-r--r--kaddressbook/kaddressbookmain.h2
-rw-r--r--kaddressbook/kaddressbookview.cpp4
-rw-r--r--kaddressbook/kaddressbookview.h4
-rw-r--r--kaddressbook/kcmconfigs/CMakeLists.txt8
-rw-r--r--kaddressbook/kcmconfigs/addhostdialog.h2
-rw-r--r--kaddressbook/kcmconfigs/addresseewidget.cpp22
-rw-r--r--kaddressbook/kcmconfigs/addresseewidget.h4
-rw-r--r--kaddressbook/kcmconfigs/extensionconfigdialog.h2
-rw-r--r--kaddressbook/kcmconfigs/kabconfig.desktop159
-rw-r--r--kaddressbook/kcmconfigs/kabconfigwidget.cpp26
-rw-r--r--kaddressbook/kcmconfigs/kabconfigwidget.h2
-rw-r--r--kaddressbook/kcmconfigs/kabcustomfields.desktop146
-rw-r--r--kaddressbook/kcmconfigs/kabldapconfig.desktop152
-rw-r--r--kaddressbook/kcmconfigs/kcmkabconfig.cpp4
-rw-r--r--kaddressbook/kcmconfigs/kcmkabconfig.h2
-rw-r--r--kaddressbook/kcmconfigs/kcmkabcustomfields.cpp2
-rw-r--r--kaddressbook/kcmconfigs/kcmkabldapconfig.cpp4
-rw-r--r--kaddressbook/kcmconfigs/kcmkabldapconfig.h2
-rw-r--r--kaddressbook/kcmconfigs/ldapoptionswidget.cpp22
-rw-r--r--kaddressbook/kcmconfigs/ldapoptionswidget.h2
-rw-r--r--kaddressbook/keywidget.cpp6
-rw-r--r--kaddressbook/keywidget.h2
-rw-r--r--kaddressbook/ldapsearchdialog.cpp46
-rw-r--r--kaddressbook/ldapsearchdialog.h2
-rw-r--r--kaddressbook/nameeditdialog.cpp42
-rw-r--r--kaddressbook/nameeditdialog.h2
-rw-r--r--kaddressbook/phoneeditwidget.cpp26
-rw-r--r--kaddressbook/phoneeditwidget.h8
-rw-r--r--kaddressbook/printing/detailledstyle.h2
-rw-r--r--kaddressbook/printing/mikesstyle.h2
-rw-r--r--kaddressbook/printing/printingwizard.cpp2
-rw-r--r--kaddressbook/printing/printingwizard.h2
-rw-r--r--kaddressbook/printing/printprogress.h2
-rw-r--r--kaddressbook/printing/printstyle.h2
-rw-r--r--kaddressbook/printing/selectionpage.cpp6
-rw-r--r--kaddressbook/printing/selectionpage.h2
-rw-r--r--kaddressbook/printing/stylepage.cpp6
-rw-r--r--kaddressbook/printing/stylepage.h2
-rw-r--r--kaddressbook/searchmanager.h2
-rw-r--r--kaddressbook/secrecywidget.cpp4
-rw-r--r--kaddressbook/secrecywidget.h2
-rw-r--r--kaddressbook/simpleaddresseeeditor.cpp8
-rw-r--r--kaddressbook/simpleaddresseeeditor.h2
-rw-r--r--kaddressbook/soundwidget.cpp28
-rw-r--r--kaddressbook/soundwidget.h2
-rw-r--r--kaddressbook/thumbnailcreator/CMakeLists.txt6
-rw-r--r--kaddressbook/thumbnailcreator/ldifvcardthumbnail.desktop52
-rw-r--r--kaddressbook/viewconfigurefieldspage.cpp16
-rw-r--r--kaddressbook/viewconfigurefieldspage.h2
-rw-r--r--kaddressbook/viewconfigurefilterpage.cpp2
-rw-r--r--kaddressbook/viewconfigurefilterpage.h2
-rw-r--r--kaddressbook/viewconfigurewidget.h6
-rw-r--r--kaddressbook/viewmanager.cpp40
-rw-r--r--kaddressbook/viewmanager.h2
-rw-r--r--kaddressbook/views/CMakeLists.txt8
-rw-r--r--kaddressbook/views/cardview.cpp16
-rw-r--r--kaddressbook/views/cardview.desktop60
-rw-r--r--kaddressbook/views/cardview.h2
-rw-r--r--kaddressbook/views/colorlistbox.cpp2
-rw-r--r--kaddressbook/views/colorlistbox.h2
-rw-r--r--kaddressbook/views/configurecardviewdialog.cpp12
-rw-r--r--kaddressbook/views/configurecardviewdialog.h2
-rw-r--r--kaddressbook/views/configuretableviewdialog.cpp6
-rw-r--r--kaddressbook/views/configuretableviewdialog.h2
-rw-r--r--kaddressbook/views/contactlistview.cpp6
-rw-r--r--kaddressbook/views/contactlistview.h2
-rw-r--r--kaddressbook/views/iconview.desktop73
-rw-r--r--kaddressbook/views/kaddressbookcardview.cpp56
-rw-r--r--kaddressbook/views/kaddressbookcardview.h4
-rw-r--r--kaddressbook/views/kaddressbookiconview.cpp36
-rw-r--r--kaddressbook/views/kaddressbookiconview.h4
-rw-r--r--kaddressbook/views/kaddressbooktableview.cpp56
-rw-r--r--kaddressbook/views/kaddressbooktableview.h2
-rw-r--r--kaddressbook/views/tableview.desktop61
-rw-r--r--kaddressbook/xxport/CMakeLists.txt7
-rw-r--r--kaddressbook/xxport/bookmark_xxport.desktop102
-rw-r--r--kaddressbook/xxport/bookmark_xxport.h2
-rw-r--r--kaddressbook/xxport/csv_xxport.desktop101
-rw-r--r--kaddressbook/xxport/csv_xxport.h2
-rw-r--r--kaddressbook/xxport/csvimportdialog.cpp56
-rw-r--r--kaddressbook/xxport/csvimportdialog.h2
-rw-r--r--kaddressbook/xxport/eudora_xxport.desktop103
-rw-r--r--kaddressbook/xxport/eudora_xxport.h2
-rw-r--r--kaddressbook/xxport/gnokii_xxport.cpp2
-rw-r--r--kaddressbook/xxport/gnokii_xxport.desktop102
-rw-r--r--kaddressbook/xxport/gnokii_xxport.h2
-rw-r--r--kaddressbook/xxport/kde2_xxport.desktop104
-rw-r--r--kaddressbook/xxport/kde2_xxport.h2
-rw-r--r--kaddressbook/xxport/ldif_xxport.desktop104
-rw-r--r--kaddressbook/xxport/ldif_xxport.h2
-rw-r--r--kaddressbook/xxport/opera_xxport.desktop102
-rw-r--r--kaddressbook/xxport/opera_xxport.h2
-rw-r--r--kaddressbook/xxport/pab_pablib.cpp2
-rw-r--r--kaddressbook/xxport/pab_pablib.h6
-rw-r--r--kaddressbook/xxport/pab_xxport.cpp2
-rw-r--r--kaddressbook/xxport/pab_xxport.desktop102
-rw-r--r--kaddressbook/xxport/pab_xxport.h2
-rw-r--r--kaddressbook/xxport/vcard_xxport.desktop104
-rw-r--r--kaddressbook/xxport/vcard_xxport.h2
-rw-r--r--kaddressbook/xxportmanager.cpp8
-rw-r--r--kaddressbook/xxportmanager.h4
-rw-r--r--kaddressbook/xxportselectdialog.cpp12
-rw-r--r--kaddressbook/xxportselectdialog.h2
-rw-r--r--kalarm/CMakeL10n.txt6
-rw-r--r--kalarm/CMakeLists.txt14
-rw-r--r--kalarm/alarmcalendar.cpp2
-rw-r--r--kalarm/alarmcalendar.h2
-rw-r--r--kalarm/alarmlistview.cpp2
-rw-r--r--kalarm/alarmlistview.h2
-rw-r--r--kalarm/alarmtimewidget.cpp12
-rw-r--r--kalarm/alarmtimewidget.h2
-rw-r--r--kalarm/birthdaydlg.cpp16
-rw-r--r--kalarm/birthdaydlg.h6
-rw-r--r--kalarm/daemon.cpp16
-rw-r--r--kalarm/daemon.h4
-rw-r--r--kalarm/dcophandler.cpp10
-rw-r--r--kalarm/deferdlg.cpp2
-rw-r--r--kalarm/deferdlg.h2
-rw-r--r--kalarm/editdlg.cpp28
-rw-r--r--kalarm/editdlg.h2
-rw-r--r--kalarm/editdlgprivate.h4
-rw-r--r--kalarm/emailidcombo.cpp2
-rw-r--r--kalarm/emailidcombo.h2
-rw-r--r--kalarm/eventlistviewbase.cpp2
-rw-r--r--kalarm/eventlistviewbase.h2
-rw-r--r--kalarm/find.cpp6
-rw-r--r--kalarm/find.h2
-rw-r--r--kalarm/fontcolour.cpp10
-rw-r--r--kalarm/fontcolour.h2
-rw-r--r--kalarm/fontcolourbutton.cpp2
-rw-r--r--kalarm/fontcolourbutton.h4
-rw-r--r--kalarm/functions.cpp4
-rw-r--r--kalarm/kalarm.desktop66
-rw-r--r--kalarm/kalarm.tray.desktop66
-rw-r--r--kalarm/kalarmapp.cpp26
-rw-r--r--kalarm/kalarmapp.h2
-rw-r--r--kalarm/kalarmd/CMakeLists.txt13
-rw-r--r--kalarm/kalarmd/adapp.h2
-rw-r--r--kalarm/kalarmd/adcalendar.cpp2
-rw-r--r--kalarm/kalarmd/adcalendar.h2
-rw-r--r--kalarm/kalarmd/alarmdaemon.cpp6
-rw-r--r--kalarm/kalarmd/alarmdaemon.h2
-rw-r--r--kalarm/kalarmd/kalarmd.autostart.desktop93
-rw-r--r--kalarm/kalarmd/kalarmd.desktop46
-rw-r--r--kalarm/kamail.cpp2
-rw-r--r--kalarm/latecancel.cpp4
-rw-r--r--kalarm/latecancel.h2
-rw-r--r--kalarm/lib/buttongroup.cpp14
-rw-r--r--kalarm/lib/buttongroup.h6
-rw-r--r--kalarm/lib/checkbox.cpp10
-rw-r--r--kalarm/lib/checkbox.h4
-rw-r--r--kalarm/lib/colourcombo.cpp8
-rw-r--r--kalarm/lib/colourcombo.h2
-rw-r--r--kalarm/lib/combobox.cpp2
-rw-r--r--kalarm/lib/combobox.h2
-rw-r--r--kalarm/lib/dateedit.cpp4
-rw-r--r--kalarm/lib/dateedit.h2
-rw-r--r--kalarm/lib/datetime.h2
-rw-r--r--kalarm/lib/label.cpp10
-rw-r--r--kalarm/lib/label.h4
-rw-r--r--kalarm/lib/lineedit.h2
-rw-r--r--kalarm/lib/pushbutton.cpp6
-rw-r--r--kalarm/lib/pushbutton.h4
-rw-r--r--kalarm/lib/radiobutton.cpp10
-rw-r--r--kalarm/lib/radiobutton.h4
-rw-r--r--kalarm/lib/shellprocess.cpp4
-rw-r--r--kalarm/lib/shellprocess.h2
-rw-r--r--kalarm/lib/slider.cpp6
-rw-r--r--kalarm/lib/slider.h6
-rw-r--r--kalarm/lib/spinbox.cpp14
-rw-r--r--kalarm/lib/spinbox.h2
-rw-r--r--kalarm/lib/spinbox2.cpp22
-rw-r--r--kalarm/lib/spinbox2.h2
-rw-r--r--kalarm/lib/spinbox2private.h4
-rw-r--r--kalarm/lib/synchtimer.cpp4
-rw-r--r--kalarm/lib/synchtimer.h6
-rw-r--r--kalarm/lib/timeedit.cpp4
-rw-r--r--kalarm/lib/timeedit.h2
-rw-r--r--kalarm/lib/timeperiod.cpp6
-rw-r--r--kalarm/lib/timeperiod.h2
-rw-r--r--kalarm/lib/timespinbox.cpp4
-rw-r--r--kalarm/lib/timespinbox.h2
-rw-r--r--kalarm/mainwindow.cpp106
-rw-r--r--kalarm/mainwindow.h2
-rw-r--r--kalarm/mainwindowbase.h2
-rw-r--r--kalarm/messagewin.cpp48
-rw-r--r--kalarm/messagewin.h2
-rw-r--r--kalarm/pickfileradio.cpp10
-rw-r--r--kalarm/pickfileradio.h2
-rw-r--r--kalarm/prefdlg.cpp36
-rw-r--r--kalarm/prefdlg.h14
-rw-r--r--kalarm/preferences.h2
-rw-r--r--kalarm/recurrenceedit.cpp44
-rw-r--r--kalarm/recurrenceedit.h2
-rw-r--r--kalarm/recurrenceeditprivate.h10
-rw-r--r--kalarm/reminder.cpp2
-rw-r--r--kalarm/reminder.h2
-rw-r--r--kalarm/repetition.cpp12
-rw-r--r--kalarm/repetition.h4
-rw-r--r--kalarm/sounddlg.cpp16
-rw-r--r--kalarm/sounddlg.h2
-rw-r--r--kalarm/soundpicker.cpp4
-rw-r--r--kalarm/soundpicker.h2
-rw-r--r--kalarm/specialactions.cpp2
-rw-r--r--kalarm/specialactions.h6
-rw-r--r--kalarm/startdaytimer.cpp2
-rw-r--r--kalarm/startdaytimer.h2
-rw-r--r--kalarm/templatedlg.cpp14
-rw-r--r--kalarm/templatedlg.h2
-rw-r--r--kalarm/templatelistview.h2
-rw-r--r--kalarm/templatemenuaction.cpp6
-rw-r--r--kalarm/templatemenuaction.h2
-rw-r--r--kalarm/templatepickdlg.cpp4
-rw-r--r--kalarm/templatepickdlg.h2
-rw-r--r--kalarm/timeselector.cpp4
-rw-r--r--kalarm/timeselector.h2
-rw-r--r--kalarm/traywindow.cpp16
-rw-r--r--kalarm/traywindow.h2
-rw-r--r--kalarm/undo.cpp2
-rw-r--r--kalarm/undo.h2
-rw-r--r--kandy/CMakeL10n.txt6
-rw-r--r--kandy/src/CMakeLists.txt2
-rw-r--r--kandy/src/cmdpropertiesdialog.h2
-rw-r--r--kandy/src/cmdpropertiesdialog_base.ui4
-rw-r--r--kandy/src/commandscheduler.cpp4
-rw-r--r--kandy/src/commandscheduler.h2
-rw-r--r--kandy/src/kandy.cpp36
-rw-r--r--kandy/src/kandy.desktop113
-rw-r--r--kandy/src/kandy.h2
-rw-r--r--kandy/src/kandyprefsdialog.cpp110
-rw-r--r--kandy/src/kandyprefsdialog.h2
-rw-r--r--kandy/src/kandyview.cpp32
-rw-r--r--kandy/src/kandyview.h2
-rw-r--r--kandy/src/main.cpp24
-rw-r--r--kandy/src/mobilegui.cpp8
-rw-r--r--kandy/src/mobilegui.h2
-rw-r--r--kandy/src/mobilegui_base.ui4
-rw-r--r--kandy/src/mobilemain.cpp20
-rw-r--r--kandy/src/mobilemain.h2
-rw-r--r--kandy/src/modem.cpp8
-rw-r--r--kandy/src/modem.h2
-rw-r--r--karm/CMakeL10n.txt6
-rw-r--r--karm/CMakeLists.txt8
-rw-r--r--karm/TODO2
-rw-r--r--karm/csvexportdialog.h2
-rw-r--r--karm/csvexportdialog_base.ui8
-rw-r--r--karm/desktoptracker.cpp6
-rw-r--r--karm/desktoptracker.h2
-rw-r--r--karm/doc/Mainpage.dox18
-rw-r--r--karm/edittaskdialog.cpp8
-rw-r--r--karm/edittaskdialog.h2
-rw-r--r--karm/idletimedetector.cpp2
-rw-r--r--karm/idletimedetector.h2
-rw-r--r--karm/karm.tdevelop2
-rw-r--r--karm/karm_part.cpp130
-rw-r--r--karm/karm_part.desktop11
-rw-r--r--karm/karm_part.h4
-rw-r--r--karm/karmstorage.cpp4
-rw-r--r--karm/karmstorage.h2
-rw-r--r--karm/ktimewidget.cpp2
-rw-r--r--karm/mainwindow.cpp126
-rw-r--r--karm/mainwindow.h2
-rw-r--r--karm/preferences.cpp8
-rw-r--r--karm/preferences.h2
-rw-r--r--karm/printdialog.cpp2
-rw-r--r--karm/printdialog.h2
-rw-r--r--karm/support/CMakeLists.txt5
-rw-r--r--karm/support/karm.desktop68
-rw-r--r--karm/task.cpp10
-rw-r--r--karm/task.h2
-rw-r--r--karm/taskview.cpp54
-rw-r--r--karm/taskview.h2
-rw-r--r--karm/tdeaccelmenuwatch.cpp2
-rw-r--r--karm/tdeaccelmenuwatch.h2
-rw-r--r--karm/test/script.cpp16
-rw-r--r--karm/test/script.h2
-rw-r--r--karm/tray.cpp4
-rw-r--r--karm/tray.h2
-rw-r--r--kdgantt/KDGanttMinimizeSplitter.cpp62
-rw-r--r--kdgantt/KDGanttMinimizeSplitter.h30
-rw-r--r--kdgantt/KDGanttSemiSizingControl.cpp28
-rw-r--r--kdgantt/KDGanttSemiSizingControl.h14
-rw-r--r--kdgantt/KDGanttSizingControl.cpp2
-rw-r--r--kdgantt/KDGanttSizingControl.h4
-rw-r--r--kdgantt/KDGanttView.cpp74
-rw-r--r--kdgantt/KDGanttView.h4
-rw-r--r--kdgantt/KDGanttViewEventItem.cpp2
-rw-r--r--kdgantt/KDGanttViewEventItem.h2
-rw-r--r--kdgantt/KDGanttViewItem.cpp14
-rw-r--r--kdgantt/KDGanttViewItem.h2
-rw-r--r--kdgantt/KDGanttViewSubwidgets.cpp150
-rw-r--r--kdgantt/KDGanttViewSubwidgets.h12
-rw-r--r--kdgantt/KDGanttViewSummaryItem.cpp2
-rw-r--r--kdgantt/KDGanttViewSummaryItem.h2
-rw-r--r--kdgantt/KDGanttViewTaskItem.cpp2
-rw-r--r--kdgantt/KDGanttViewTaskItem.h2
-rw-r--r--kdgantt/KDGanttViewTaskLink.cpp6
-rw-r--r--kdgantt/KDGanttViewTaskLink.h2
-rw-r--r--kdgantt/KDGanttViewTaskLinkGroup.cpp2
-rw-r--r--kdgantt/KDGanttViewTaskLinkGroup.h2
-rw-r--r--kdgantt/KDGanttXMLTools.cpp102
-rw-r--r--kdgantt/KDGanttXMLTools.h10
-rw-r--r--kdgantt/itemAttributeDialog.ui4
-rw-r--r--kgantt/kgantt/KGantt.cpp4
-rw-r--r--kgantt/kgantt/KGantt.h4
-rw-r--r--kgantt/kgantt/KGanttBarConfig.cpp4
-rw-r--r--kgantt/kgantt/KGanttBarConfig.h2
-rw-r--r--kgantt/kgantt/KGanttItem.cpp8
-rw-r--r--kgantt/kgantt/KGanttItem.h4
-rw-r--r--kgantt/kgantt/KGanttRelation.cpp8
-rw-r--r--kgantt/kgantt/KGanttRelation.h2
-rw-r--r--kgantt/kgantt/itemedit.ui6
-rw-r--r--kgantt/kgantt/itemedit2.ui6
-rw-r--r--kgantt/kgantt/xQGanttBarView.cpp12
-rw-r--r--kgantt/kgantt/xQGanttBarView.h2
-rw-r--r--kgantt/kgantt/xQGanttBarViewPort.cpp54
-rw-r--r--kgantt/kgantt/xQGanttBarViewPort.h2
-rw-r--r--kgantt/kgantt/xQGanttBarViewPort_Events.cpp18
-rw-r--r--kgantt/kgantt/xQGanttListView.h2
-rw-r--r--kgantt/kgantt/xQGanttListViewPort.cpp12
-rw-r--r--kgantt/kgantt/xQGanttListViewPort.h4
-rw-r--r--kitchensync/CMakeL10n.txt3
-rw-r--r--kitchensync/CMakeLists.txt23
-rw-r--r--kitchensync/Makefile.am3
-rw-r--r--kitchensync/configure.in.bot8
-rw-r--r--kitchensync/configure.in.in68
-rw-r--r--kitchensync/libqopensync/CMakeLists.txt38
-rw-r--r--kitchensync/libqopensync/ConfigureChecks.cmake22
-rw-r--r--kitchensync/libqopensync/Makefile.am19
-rw-r--r--kitchensync/libqopensync/callbackhandler.cpp191
-rw-r--r--kitchensync/libqopensync/callbackhandler.h91
-rw-r--r--kitchensync/libqopensync/conversion.cpp58
-rw-r--r--kitchensync/libqopensync/conversion.h56
-rw-r--r--kitchensync/libqopensync/engine.cpp67
-rw-r--r--kitchensync/libqopensync/engine.h72
-rw-r--r--kitchensync/libqopensync/environment.cpp172
-rw-r--r--kitchensync/libqopensync/environment.h199
-rw-r--r--kitchensync/libqopensync/filter.cpp55
-rw-r--r--kitchensync/libqopensync/filter.h64
-rw-r--r--kitchensync/libqopensync/group.cpp292
-rw-r--r--kitchensync/libqopensync/group.h217
-rw-r--r--kitchensync/libqopensync/groupenv.cpp121
-rw-r--r--kitchensync/libqopensync/groupenv.h86
-rw-r--r--kitchensync/libqopensync/member.cpp188
-rw-r--r--kitchensync/libqopensync/member.h129
-rw-r--r--kitchensync/libqopensync/plugin.cpp62
-rw-r--r--kitchensync/libqopensync/plugin.h67
-rw-r--r--kitchensync/libqopensync/pluginenv.cpp96
-rw-r--r--kitchensync/libqopensync/pluginenv.h80
-rw-r--r--kitchensync/libqopensync/result.cpp149
-rw-r--r--kitchensync/libqopensync/result.h126
-rw-r--r--kitchensync/libqopensync/syncchange.cpp159
-rw-r--r--kitchensync/libqopensync/syncchange.h116
-rw-r--r--kitchensync/libqopensync/syncmapping.cpp100
-rw-r--r--kitchensync/libqopensync/syncmapping.h59
-rw-r--r--kitchensync/libqopensync/syncupdates.cpp251
-rw-r--r--kitchensync/libqopensync/syncupdates.h157
-rw-r--r--kitchensync/opensyncdbus/Makefile.am10
-rw-r--r--kitchensync/opensyncdbus/README5
-rw-r--r--kitchensync/opensyncdbus/dbusclient.cpp273
-rw-r--r--kitchensync/opensyncdbus/dbusclient.h56
-rw-r--r--kitchensync/src/CMakeL10n.txt3
-rw-r--r--kitchensync/src/CMakeLists.txt77
-rw-r--r--kitchensync/src/Makefile.am53
-rw-r--r--kitchensync/src/about/CMakeLists.txt14
-rw-r--r--kitchensync/src/about/Makefile.am6
-rw-r--r--kitchensync/src/about/kitchensync.css30
-rw-r--r--kitchensync/src/about/main.html66
-rw-r--r--kitchensync/src/about/top-right-kitchensync.pngbin17145 -> 0 bytes
-rw-r--r--kitchensync/src/aboutpage.cpp141
-rw-r--r--kitchensync/src/aboutpage.h46
-rw-r--r--kitchensync/src/addresseediffalgo.cpp157
-rw-r--r--kitchensync/src/addresseediffalgo.h53
-rw-r--r--kitchensync/src/calendardiffalgo.cpp217
-rw-r--r--kitchensync/src/calendardiffalgo.h55
-rw-r--r--kitchensync/src/configgui.cpp135
-rw-r--r--kitchensync/src/configgui.h72
-rw-r--r--kitchensync/src/configguiblank.cpp44
-rw-r--r--kitchensync/src/configguiblank.h35
-rw-r--r--kitchensync/src/configguievo2.cpp91
-rw-r--r--kitchensync/src/configguievo2.h46
-rw-r--r--kitchensync/src/configguifile.cpp81
-rw-r--r--kitchensync/src/configguifile.h42
-rw-r--r--kitchensync/src/configguigcalendar.cpp103
-rw-r--r--kitchensync/src/configguigcalendar.h43
-rw-r--r--kitchensync/src/configguignokii.cpp223
-rw-r--r--kitchensync/src/configguignokii.h63
-rw-r--r--kitchensync/src/configguigpe.cpp103
-rw-r--r--kitchensync/src/configguigpe.h50
-rw-r--r--kitchensync/src/configguiirmc.cpp192
-rw-r--r--kitchensync/src/configguiirmc.h62
-rw-r--r--kitchensync/src/configguijescs.cpp98
-rw-r--r--kitchensync/src/configguijescs.h48
-rw-r--r--kitchensync/src/configguildap.cpp153
-rw-r--r--kitchensync/src/configguildap.h61
-rw-r--r--kitchensync/src/configguimoto.cpp71
-rw-r--r--kitchensync/src/configguimoto.h43
-rw-r--r--kitchensync/src/configguiopie.cpp135
-rw-r--r--kitchensync/src/configguiopie.h47
-rw-r--r--kitchensync/src/configguipalm.cpp200
-rw-r--r--kitchensync/src/configguipalm.h59
-rw-r--r--kitchensync/src/configguisunbird.cpp367
-rw-r--r--kitchensync/src/configguisunbird.h133
-rw-r--r--kitchensync/src/configguisynce.cpp93
-rw-r--r--kitchensync/src/configguisynce.h49
-rw-r--r--kitchensync/src/configguisyncmlhttp.cpp227
-rw-r--r--kitchensync/src/configguisyncmlhttp.h68
-rw-r--r--kitchensync/src/configguisyncmlobex.cpp320
-rw-r--r--kitchensync/src/configguisyncmlobex.h88
-rw-r--r--kitchensync/src/conflictdialog.cpp26
-rw-r--r--kitchensync/src/conflictdialog.h40
-rw-r--r--kitchensync/src/connectionwidgets.cpp227
-rw-r--r--kitchensync/src/connectionwidgets.h101
-rw-r--r--kitchensync/src/genericdiffalgo.cpp70
-rw-r--r--kitchensync/src/genericdiffalgo.h45
-rw-r--r--kitchensync/src/groupconfig.cpp179
-rw-r--r--kitchensync/src/groupconfig.h63
-rw-r--r--kitchensync/src/groupconfigcommon.cpp158
-rw-r--r--kitchensync/src/groupconfigcommon.h60
-rw-r--r--kitchensync/src/groupconfigdialog.cpp57
-rw-r--r--kitchensync/src/groupconfigdialog.h44
-rw-r--r--kitchensync/src/groupitem.cpp389
-rw-r--r--kitchensync/src/groupitem.h112
-rw-r--r--kitchensync/src/groupview.cpp99
-rw-r--r--kitchensync/src/groupview.h58
-rw-r--r--kitchensync/src/htmldiffalgodisplay.cpp97
-rw-r--r--kitchensync/src/htmldiffalgodisplay.h54
-rw-r--r--kitchensync/src/kitchensync.desktop60
-rw-r--r--kitchensync/src/kitchensync_part.rc22
-rw-r--r--kitchensync/src/kitchensyncui.rc22
-rw-r--r--kitchensync/src/kwidgetlist.cpp305
-rw-r--r--kitchensync/src/kwidgetlist.h91
-rw-r--r--kitchensync/src/main.cpp58
-rw-r--r--kitchensync/src/mainwidget.cpp191
-rw-r--r--kitchensync/src/mainwidget.h74
-rw-r--r--kitchensync/src/mainwindow.cpp61
-rw-r--r--kitchensync/src/mainwindow.h47
-rw-r--r--kitchensync/src/memberconfig.cpp79
-rw-r--r--kitchensync/src/memberconfig.h48
-rw-r--r--kitchensync/src/memberinfo.cpp99
-rw-r--r--kitchensync/src/memberinfo.h47
-rw-r--r--kitchensync/src/multiconflictdialog.cpp141
-rw-r--r--kitchensync/src/multiconflictdialog.h48
-rw-r--r--kitchensync/src/part.cpp89
-rw-r--r--kitchensync/src/part.h50
-rw-r--r--kitchensync/src/pics/CMakeLists.txt13
-rw-r--r--kitchensync/src/pics/Makefile.am4
-rw-r--r--kitchensync/src/pics/cr128-app-mobile_phone.pngbin12136 -> 0 bytes
-rw-r--r--kitchensync/src/pics/cr16-action-hotsync.pngbin634 -> 0 bytes
-rw-r--r--kitchensync/src/pics/cr16-app-mobile_phone.pngbin850 -> 0 bytes
-rw-r--r--kitchensync/src/pics/cr22-action-hotsync.pngbin932 -> 0 bytes
-rw-r--r--kitchensync/src/pics/cr32-action-hotsync.pngbin1618 -> 0 bytes
-rw-r--r--kitchensync/src/pics/cr32-app-mobile_phone.pngbin2178 -> 0 bytes
-rw-r--r--kitchensync/src/pics/cr48-action-hotsync.pngbin2574 -> 0 bytes
-rw-r--r--kitchensync/src/pics/cr48-app-mobile_phone.pngbin4023 -> 0 bytes
-rw-r--r--kitchensync/src/pics/cr64-app-mobile_phone.pngbin5911 -> 0 bytes
-rw-r--r--kitchensync/src/pics/hi16-app-kitchensync.pngbin634 -> 0 bytes
-rw-r--r--kitchensync/src/pics/hi22-app-kitchensync.pngbin932 -> 0 bytes
-rw-r--r--kitchensync/src/pics/hi32-app-kitchensync.pngbin1618 -> 0 bytes
-rw-r--r--kitchensync/src/pics/hi48-app-kitchensync.pngbin2574 -> 0 bytes
-rw-r--r--kitchensync/src/pluginpicker.cpp136
-rw-r--r--kitchensync/src/pluginpicker.h82
-rw-r--r--kitchensync/src/singleconflictdialog.cpp123
-rw-r--r--kitchensync/src/singleconflictdialog.h55
-rw-r--r--kitchensync/src/syncprocess.cpp108
-rw-r--r--kitchensync/src/syncprocess.h65
-rw-r--r--kitchensync/src/syncprocessmanager.cpp172
-rw-r--r--kitchensync/src/syncprocessmanager.h101
-rw-r--r--kitchensync/src/xmldiffalgo.cpp166
-rw-r--r--kitchensync/src/xmldiffalgo.h54
-rw-r--r--kmail/CMakeL10n.txt12
-rw-r--r--kmail/CMakeLists.txt44
-rw-r--r--kmail/KMail.desktop82
-rw-r--r--kmail/Mainpage.dox28
-rw-r--r--kmail/about/kmail.css3
-rw-r--r--kmail/about/main.html1
-rw-r--r--kmail/aboutdata.cpp2
-rw-r--r--kmail/aboutdata.h4
-rw-r--r--kmail/accountcombobox.cpp10
-rw-r--r--kmail/accountcombobox.h4
-rw-r--r--kmail/accountdialog.cpp202
-rw-r--r--kmail/accountdialog.h8
-rw-r--r--kmail/accountmanager.cpp12
-rw-r--r--kmail/accountmanager.h6
-rw-r--r--kmail/accountwizard.cpp28
-rw-r--r--kmail/accountwizard.h2
-rw-r--r--kmail/acljobs.cpp10
-rw-r--r--kmail/acljobs.h8
-rw-r--r--kmail/actionscheduler.cpp74
-rw-r--r--kmail/actionscheduler.h4
-rw-r--r--kmail/annotationjobs.cpp10
-rw-r--r--kmail/annotationjobs.h8
-rw-r--r--kmail/antispamconfig.cpp2
-rw-r--r--kmail/antispamconfig.h2
-rw-r--r--kmail/antispamwizard.cpp58
-rw-r--r--kmail/antispamwizard.h12
-rw-r--r--kmail/app_octetstream.cpp4
-rw-r--r--kmail/application_octetstream.desktop77
-rw-r--r--kmail/archivefolderdialog.cpp18
-rw-r--r--kmail/archivefolderdialog.h2
-rw-r--r--kmail/attachmentcollector.cpp2
-rw-r--r--kmail/attachmentcollector.h2
-rw-r--r--kmail/attachmentlistview.cpp2
-rw-r--r--kmail/attachmentlistview.h4
-rw-r--r--kmail/attachmentstrategy.cpp2
-rw-r--r--kmail/attachmentstrategy.h2
-rw-r--r--kmail/backupjob.cpp14
-rw-r--r--kmail/backupjob.h2
-rw-r--r--kmail/bodypartformatter.cpp2
-rw-r--r--kmail/bodypartformatter.h2
-rw-r--r--kmail/bodypartformatterfactory.cpp2
-rw-r--r--kmail/bodypartformatterfactory.h2
-rw-r--r--kmail/bodypartformatterfactory_p.h2
-rw-r--r--kmail/bodyvisitor.h2
-rw-r--r--kmail/cachedimapjob.cpp94
-rw-r--r--kmail/cachedimapjob.h4
-rw-r--r--kmail/callback.cpp2
-rw-r--r--kmail/callback.h4
-rw-r--r--kmail/chiasmuskeyselector.cpp4
-rw-r--r--kmail/chiasmuskeyselector.h2
-rw-r--r--kmail/colorlistbox.cpp2
-rw-r--r--kmail/colorlistbox.h2
-rw-r--r--kmail/compactionjob.cpp4
-rw-r--r--kmail/compactionjob.h4
-rw-r--r--kmail/composer.h4
-rw-r--r--kmail/configuredialog.cpp764
-rw-r--r--kmail/configuredialog.h6
-rw-r--r--kmail/configuredialog_p.cpp26
-rw-r--r--kmail/configuredialog_p.h77
-rw-r--r--kmail/copyfolderjob.cpp16
-rw-r--r--kmail/copyfolderjob.h2
-rw-r--r--kmail/csshelper.cpp2
-rw-r--r--kmail/csshelper.h2
-rw-r--r--kmail/customtemplates.cpp48
-rw-r--r--kmail/customtemplates.h4
-rw-r--r--kmail/customtemplates_base.ui12
-rw-r--r--kmail/dcopimap.desktop51
-rw-r--r--kmail/dcopmail.desktop51
-rw-r--r--kmail/dictionarycombobox.cpp10
-rw-r--r--kmail/dictionarycombobox.h4
-rw-r--r--kmail/editorwatcher.cpp6
-rw-r--r--kmail/editorwatcher.h2
-rw-r--r--kmail/eventsrc112
-rw-r--r--kmail/expirejob.cpp10
-rw-r--r--kmail/expirejob.h4
-rw-r--r--kmail/expirypropertiesdialog.cpp12
-rw-r--r--kmail/expirypropertiesdialog.h2
-rw-r--r--kmail/favoritefolderview.cpp56
-rw-r--r--kmail/favoritefolderview.h4
-rw-r--r--kmail/filehtmlwriter.cpp4
-rw-r--r--kmail/filehtmlwriter.h2
-rw-r--r--kmail/filterimporterexporter.cpp4
-rw-r--r--kmail/filterimporterexporter.h2
-rw-r--r--kmail/filterlog.h2
-rw-r--r--kmail/filterlogdlg.cpp40
-rw-r--r--kmail/filterlogdlg.h2
-rw-r--r--kmail/folderIface.cpp2
-rw-r--r--kmail/folderIface.h4
-rw-r--r--kmail/folderdiaacltab.cpp61
-rw-r--r--kmail/folderdiaacltab.h5
-rw-r--r--kmail/folderdiaquotatab.cpp17
-rw-r--r--kmail/folderdiaquotatab.h3
-rw-r--r--kmail/folderdiaquotatab_p.h2
-rw-r--r--kmail/folderjob.cpp2
-rw-r--r--kmail/folderjob.h4
-rw-r--r--kmail/folderpropertiesdialog.ui4
-rw-r--r--kmail/folderrequester.cpp4
-rw-r--r--kmail/folderrequester.h2
-rw-r--r--kmail/foldersetselector.h2
-rw-r--r--kmail/foldershortcutdialog.cpp4
-rw-r--r--kmail/foldershortcutdialog.h2
-rw-r--r--kmail/folderstorage.cpp22
-rw-r--r--kmail/folderstorage.h2
-rw-r--r--kmail/foldertreebase.cpp2
-rw-r--r--kmail/foldertreebase.h2
-rw-r--r--kmail/globalsettings.cpp2
-rw-r--r--kmail/globalsettings.h2
-rw-r--r--kmail/headerlistquicksearch.cpp22
-rw-r--r--kmail/headerlistquicksearch.h4
-rw-r--r--kmail/headerstrategy.cpp2
-rw-r--r--kmail/headerstrategy.h2
-rw-r--r--kmail/headerstyle.cpp4
-rw-r--r--kmail/headerstyle.h2
-rw-r--r--kmail/htmlstatusbar.cpp2
-rw-r--r--kmail/htmlstatusbar.h4
-rw-r--r--kmail/identitydialog.cpp22
-rw-r--r--kmail/identitydialog.h4
-rw-r--r--kmail/identitydrag.cpp2
-rw-r--r--kmail/identitydrag.h4
-rw-r--r--kmail/identitylistview.cpp2
-rw-r--r--kmail/identitylistview.h4
-rw-r--r--kmail/imapaccountbase.cpp90
-rw-r--r--kmail/imapaccountbase.h4
-rw-r--r--kmail/imapjob.cpp54
-rw-r--r--kmail/imapjob.h4
-rw-r--r--kmail/importarchivedialog.h2
-rw-r--r--kmail/importjob.cpp10
-rw-r--r--kmail/importjob.h2
-rw-r--r--kmail/index.cpp32
-rw-r--r--kmail/index.h4
-rw-r--r--kmail/interfaces/bodypart.h2
-rw-r--r--kmail/interfaces/bodypartformatter.h2
-rw-r--r--kmail/interfaces/bodyparturlhandler.h2
-rw-r--r--kmail/interfaces/htmlwriter.h2
-rw-r--r--kmail/interfaces/observable.h2
-rw-r--r--kmail/interfaces/observer.h2
-rw-r--r--kmail/interfaces/rulewidgethandler.h2
-rw-r--r--kmail/interfaces/urlhandler.h2
-rw-r--r--kmail/isubject.h2
-rw-r--r--kmail/jobscheduler.cpp4
-rw-r--r--kmail/jobscheduler.h2
-rw-r--r--kmail/kcm_kmail.cpp2
-rw-r--r--kmail/keyresolver.cpp20
-rw-r--r--kmail/keyresolver.h2
-rw-r--r--kmail/kleo_util.h2
-rw-r--r--kmail/kmaccount.cpp12
-rw-r--r--kmail/kmaccount.h6
-rw-r--r--kmail/kmacctcachedimap.cpp16
-rw-r--r--kmail/kmacctcachedimap.h2
-rw-r--r--kmail/kmacctimap.cpp40
-rw-r--r--kmail/kmacctimap.h4
-rw-r--r--kmail/kmacctseldlg.cpp2
-rw-r--r--kmail/kmacctseldlg.h2
-rw-r--r--kmail/kmaddrbook.cpp2
-rw-r--r--kmail/kmail.antispamrc-HOWTO2
-rw-r--r--kmail/kmail.kcfg8
-rw-r--r--kmail/kmail_config_accounts.desktop144
-rw-r--r--kmail/kmail_config_appearance.desktop151
-rw-r--r--kmail/kmail_config_composer.desktop133
-rw-r--r--kmail/kmail_config_identity.desktop151
-rw-r--r--kmail/kmail_config_misc.desktop147
-rw-r--r--kmail/kmail_config_security.desktop153
-rw-r--r--kmail/kmail_options.h1
-rw-r--r--kmail/kmail_part.cpp27
-rw-r--r--kmail/kmail_part.h4
-rw-r--r--kmail/kmail_view.desktop12
-rw-r--r--kmail/kmailicalifaceimpl.cpp70
-rw-r--r--kmail/kmailicalifaceimpl.h2
-rw-r--r--kmail/kmatmlistview.cpp13
-rw-r--r--kmail/kmatmlistview.h4
-rw-r--r--kmail/kmcommands.cpp154
-rw-r--r--kmail/kmcommands.h112
-rw-r--r--kmail/kmcomposewin.cpp569
-rw-r--r--kmail/kmcomposewin.h4
-rw-r--r--kmail/kmdebug.h2
-rw-r--r--kmail/kmedit.cpp59
-rw-r--r--kmail/kmedit.h4
-rw-r--r--kmail/kmfawidgets.cpp16
-rw-r--r--kmail/kmfawidgets.h4
-rw-r--r--kmail/kmfilter.cpp2
-rw-r--r--kmail/kmfilter.h2
-rw-r--r--kmail/kmfilteraction.cpp6
-rw-r--r--kmail/kmfilterdlg.cpp157
-rw-r--r--kmail/kmfilterdlg.h10
-rw-r--r--kmail/kmfiltermgr.cpp5
-rw-r--r--kmail/kmfiltermgr.h2
-rw-r--r--kmail/kmfolder.cpp90
-rw-r--r--kmail/kmfolder.h4
-rw-r--r--kmail/kmfoldercachedimap.cpp164
-rw-r--r--kmail/kmfoldercachedimap.h4
-rw-r--r--kmail/kmfoldercombobox.cpp24
-rw-r--r--kmail/kmfoldercombobox.h2
-rw-r--r--kmail/kmfolderdia.cpp61
-rw-r--r--kmail/kmfolderdia.h9
-rw-r--r--kmail/kmfolderdir.h4
-rw-r--r--kmail/kmfolderimap.cpp148
-rw-r--r--kmail/kmfolderimap.h2
-rw-r--r--kmail/kmfolderindex.cpp2
-rw-r--r--kmail/kmfolderindex.h4
-rw-r--r--kmail/kmfoldermaildir.cpp11
-rw-r--r--kmail/kmfoldermaildir.h2
-rw-r--r--kmail/kmfoldermbox.cpp4
-rw-r--r--kmail/kmfoldermbox.h2
-rw-r--r--kmail/kmfoldermgr.cpp16
-rw-r--r--kmail/kmfoldermgr.h2
-rw-r--r--kmail/kmfoldernode.h2
-rw-r--r--kmail/kmfoldersearch.cpp130
-rw-r--r--kmail/kmfoldersearch.h4
-rw-r--r--kmail/kmfolderseldlg.cpp8
-rw-r--r--kmail/kmfolderseldlg.h2
-rw-r--r--kmail/kmfoldertree.cpp230
-rw-r--r--kmail/kmfoldertree.h8
-rw-r--r--kmail/kmheaders.cpp193
-rw-r--r--kmail/kmheaders.h4
-rw-r--r--kmail/kmkernel.cpp37
-rw-r--r--kmail/kmkernel.h6
-rw-r--r--kmail/kmlineeditspell.cpp3
-rw-r--r--kmail/kmlineeditspell.h6
-rw-r--r--kmail/kmmainwidget.cpp684
-rw-r--r--kmail/kmmainwidget.h4
-rw-r--r--kmail/kmmainwin.cpp30
-rw-r--r--kmail/kmmainwin.h2
-rw-r--r--kmail/kmmessage.cpp1
-rw-r--r--kmail/kmmessage.h1
-rw-r--r--kmail/kmmimeparttree.cpp37
-rw-r--r--kmail/kmmimeparttree.h8
-rw-r--r--kmail/kmmsgpart.h2
-rw-r--r--kmail/kmmsgpartdlg.cpp6
-rw-r--r--kmail/kmmsgpartdlg.h4
-rw-r--r--kmail/kmpopfiltercnfrmdlg.cpp20
-rw-r--r--kmail/kmpopfiltercnfrmdlg.h4
-rw-r--r--kmail/kmreadermainwin.cpp114
-rw-r--r--kmail/kmreadermainwin.h6
-rw-r--r--kmail/kmreaderwin.cpp203
-rw-r--r--kmail/kmreaderwin.h22
-rw-r--r--kmail/kmsearchpattern.cpp1
-rw-r--r--kmail/kmsearchpattern.h1
-rw-r--r--kmail/kmsearchpatternedit.cpp31
-rw-r--r--kmail/kmsearchpatternedit.h7
-rw-r--r--kmail/kmsender.cpp45
-rw-r--r--kmail/kmsender.h2
-rw-r--r--kmail/kmsender_p.h6
-rw-r--r--kmail/kmservertest.cpp18
-rw-r--r--kmail/kmservertest.h4
-rw-r--r--kmail/kmstartup.h2
-rw-r--r--kmail/kmsystemtray.cpp35
-rw-r--r--kmail/kmsystemtray.h2
-rw-r--r--kmail/kmtransport.cpp40
-rw-r--r--kmail/kmtransport.h4
-rw-r--r--kmail/konqueror/servicemenus/CMakeLists.txt8
-rw-r--r--kmail/konqueror/servicemenus/email.desktop3
-rw-r--r--kmail/listjob.cpp12
-rw-r--r--kmail/listjob.h2
-rw-r--r--kmail/localsubscriptiondialog.cpp4
-rw-r--r--kmail/localsubscriptiondialog.h4
-rw-r--r--kmail/maildirjob.cpp4
-rw-r--r--kmail/maildirjob.h4
-rw-r--r--kmail/mailinglist-magic.cpp1
-rw-r--r--kmail/mailinglist-magic.h1
-rw-r--r--kmail/mailinglistpropertiesdialog.cpp36
-rw-r--r--kmail/mailinglistpropertiesdialog.h2
-rw-r--r--kmail/mailserviceimpl.cpp2
-rw-r--r--kmail/mailserviceimpl.h2
-rw-r--r--kmail/mailsourceviewer.cpp6
-rw-r--r--kmail/mailsourceviewer.h2
-rw-r--r--kmail/main.cpp2
-rw-r--r--kmail/managesievescriptsdialog.cpp50
-rw-r--r--kmail/managesievescriptsdialog.h2
-rw-r--r--kmail/managesievescriptsdialog_p.h2
-rw-r--r--kmail/mboxjob.cpp4
-rw-r--r--kmail/mboxjob.h4
-rw-r--r--kmail/messageactions.cpp32
-rw-r--r--kmail/messageactions.h2
-rw-r--r--kmail/messagecomposer.cpp18
-rw-r--r--kmail/messagecomposer.h2
-rw-r--r--kmail/messagecopyhelper.cpp2
-rw-r--r--kmail/messagecopyhelper.h2
-rw-r--r--kmail/messageproperty.h2
-rw-r--r--kmail/networkaccount.cpp2
-rw-r--r--kmail/networkaccount.h4
-rw-r--r--kmail/newfolderdialog.cpp2
-rw-r--r--kmail/newfolderdialog.h2
-rw-r--r--kmail/objecttreeparser.cpp12
-rw-r--r--kmail/objecttreeparser.h2
-rw-r--r--kmail/objecttreeparser_p.cpp26
-rw-r--r--kmail/objecttreeparser_p.h10
-rw-r--r--kmail/partNode.cpp2
-rw-r--r--kmail/partNode.h2
-rw-r--r--kmail/partmetadata.h2
-rw-r--r--kmail/partnodebodypart.cpp2
-rw-r--r--kmail/partnodebodypart.h2
-rw-r--r--kmail/popaccount.cpp28
-rw-r--r--kmail/popaccount.h3
-rw-r--r--kmail/profiles/CMakeLists.txt7
-rw-r--r--kmail/profiles/profile-default-rc.desktop131
-rw-r--r--kmail/profiles/profile-high-contrast-rc.desktop112
-rw-r--r--kmail/profiles/profile-html-rc.desktop62
-rw-r--r--kmail/profiles/profile-purist-rc.desktop103
-rw-r--r--kmail/profiles/profile-secure-rc.desktop105
-rw-r--r--kmail/protocols.h1
-rw-r--r--kmail/quotajobs.cpp12
-rw-r--r--kmail/quotajobs.h4
-rw-r--r--kmail/recipientseditor.cpp98
-rw-r--r--kmail/recipientseditor.h12
-rw-r--r--kmail/recipientseditortest.cpp4
-rw-r--r--kmail/recipientseditortest.h2
-rw-r--r--kmail/recipientspicker.cpp40
-rw-r--r--kmail/recipientspicker.h4
-rw-r--r--kmail/redirectdialog.cpp4
-rw-r--r--kmail/redirectdialog.h4
-rw-r--r--kmail/regexplineedit.cpp12
-rw-r--r--kmail/regexplineedit.h4
-rw-r--r--kmail/renamejob.cpp6
-rw-r--r--kmail/renamejob.h2
-rw-r--r--kmail/rulewidgethandlermanager.cpp84
-rw-r--r--kmail/rulewidgethandlermanager.h2
-rw-r--r--kmail/searchjob.cpp36
-rw-r--r--kmail/searchjob.h2
-rw-r--r--kmail/searchwindow.cpp144
-rw-r--r--kmail/searchwindow.h2
-rw-r--r--kmail/secondarywindow.cpp2
-rw-r--r--kmail/secondarywindow.h4
-rw-r--r--kmail/sieveconfig.cpp6
-rw-r--r--kmail/sieveconfig.h4
-rw-r--r--kmail/sievedebugdialog.cpp18
-rw-r--r--kmail/sievedebugdialog.h2
-rw-r--r--kmail/sievejob.cpp23
-rw-r--r--kmail/sievejob.h7
-rw-r--r--kmail/signatureconfigurator.cpp28
-rw-r--r--kmail/signatureconfigurator.h4
-rw-r--r--kmail/simplestringlisteditor.cpp30
-rw-r--r--kmail/simplestringlisteditor.h4
-rw-r--r--kmail/snippetdlg.cpp12
-rw-r--r--kmail/snippetdlg.h2
-rw-r--r--kmail/snippetitem.h2
-rw-r--r--kmail/snippetsettings.h2
-rw-r--r--kmail/snippetsettingsbase.ui6
-rw-r--r--kmail/snippetwidget.cpp46
-rw-r--r--kmail/snippetwidget.h2
-rw-r--r--kmail/spamheaderanalyzer.cpp2
-rw-r--r--kmail/spamheaderanalyzer.h2
-rw-r--r--kmail/stl_util.h2
-rw-r--r--kmail/subscriptiondialog.cpp18
-rw-r--r--kmail/subscriptiondialog.h6
-rw-r--r--kmail/tdehtmlparthtmlwriter.cpp4
-rw-r--r--kmail/tdehtmlparthtmlwriter.h4
-rw-r--r--kmail/tdelistboxdialog.cpp8
-rw-r--r--kmail/tdelistboxdialog.h2
-rw-r--r--kmail/tdelistviewindexedsearchline.h2
-rw-r--r--kmail/teehtmlwriter.cpp2
-rw-r--r--kmail/teehtmlwriter.h2
-rw-r--r--kmail/templateparser.cpp14
-rw-r--r--kmail/templateparser.h4
-rw-r--r--kmail/templatesconfiguration.cpp28
-rw-r--r--kmail/templatesconfiguration.h4
-rw-r--r--kmail/templatesconfiguration_base.ui4
-rw-r--r--kmail/templatesinsertcommand.cpp140
-rw-r--r--kmail/templatesinsertcommand.h4
-rw-r--r--kmail/tests/messagedicttests.h2
-rw-r--r--kmail/tests/mimelibtests.h2
-rw-r--r--kmail/tests/utiltests.h2
-rw-r--r--kmail/treebase.cpp10
-rw-r--r--kmail/treebase.h2
-rw-r--r--kmail/twindowpositioner.h2
-rw-r--r--kmail/undostack.h2
-rw-r--r--kmail/urlhandlermanager.cpp4
-rw-r--r--kmail/urlhandlermanager.h2
-rw-r--r--kmail/vacation.cpp18
-rw-r--r--kmail/vacation.h4
-rw-r--r--kmail/vacationdialog.cpp10
-rw-r--r--kmail/vacationdialog.h4
-rw-r--r--kmail/vcardviewer.h2
-rw-r--r--kmail/xfaceconfigurator.cpp30
-rw-r--r--kmail/xfaceconfigurator.h4
-rw-r--r--kmailcvt/CMakeL10n.txt5
-rw-r--r--kmailcvt/CMakeLists.txt12
-rw-r--r--kmailcvt/Makefile.am42
-rw-r--r--kmailcvt/README18
-rw-r--r--kmailcvt/filter_evolution.cpp200
-rw-r--r--kmailcvt/filter_evolution.cxx200
-rw-r--r--kmailcvt/filter_evolution.h45
-rw-r--r--kmailcvt/filter_evolution.hxx45
-rw-r--r--kmailcvt/filter_evolution_v2.cpp231
-rw-r--r--kmailcvt/filter_evolution_v2.cxx231
-rw-r--r--kmailcvt/filter_evolution_v2.h43
-rw-r--r--kmailcvt/filter_evolution_v2.hxx43
-rw-r--r--kmailcvt/filter_kmail_archive.cpp35
-rw-r--r--kmailcvt/filter_kmail_archive.cxx35
-rw-r--r--kmailcvt/filter_kmail_archive.h32
-rw-r--r--kmailcvt/filter_kmail_archive.hxx32
-rw-r--r--kmailcvt/filter_kmail_maildir.cpp218
-rw-r--r--kmailcvt/filter_kmail_maildir.cxx218
-rw-r--r--kmailcvt/filter_kmail_maildir.h43
-rw-r--r--kmailcvt/filter_kmail_maildir.hxx43
-rw-r--r--kmailcvt/filter_lnotes.cpp157
-rw-r--r--kmailcvt/filter_lnotes.cxx157
-rw-r--r--kmailcvt/filter_lnotes.h53
-rw-r--r--kmailcvt/filter_lnotes.hxx53
-rw-r--r--kmailcvt/filter_mailapp.cpp168
-rw-r--r--kmailcvt/filter_mailapp.cxx168
-rw-r--r--kmailcvt/filter_mailapp.h36
-rw-r--r--kmailcvt/filter_mailapp.hxx36
-rw-r--r--kmailcvt/filter_mbox.cpp144
-rw-r--r--kmailcvt/filter_mbox.cxx144
-rw-r--r--kmailcvt/filter_mbox.h37
-rw-r--r--kmailcvt/filter_mbox.hxx37
-rw-r--r--kmailcvt/filter_oe.cpp429
-rw-r--r--kmailcvt/filter_oe.cxx429
-rw-r--r--kmailcvt/filter_oe.h84
-rw-r--r--kmailcvt/filter_oe.hxx84
-rw-r--r--kmailcvt/filter_opera.cpp158
-rw-r--r--kmailcvt/filter_opera.cxx158
-rw-r--r--kmailcvt/filter_opera.h37
-rw-r--r--kmailcvt/filter_opera.hxx37
-rw-r--r--kmailcvt/filter_outlook.cpp61
-rw-r--r--kmailcvt/filter_outlook.cxx61
-rw-r--r--kmailcvt/filter_outlook.h38
-rw-r--r--kmailcvt/filter_outlook.hxx38
-rw-r--r--kmailcvt/filter_plain.cpp87
-rw-r--r--kmailcvt/filter_plain.cxx87
-rw-r--r--kmailcvt/filter_plain.h37
-rw-r--r--kmailcvt/filter_plain.hxx37
-rw-r--r--kmailcvt/filter_pmail.cpp346
-rw-r--r--kmailcvt/filter_pmail.cxx346
-rw-r--r--kmailcvt/filter_pmail.h76
-rw-r--r--kmailcvt/filter_pmail.hxx76
-rw-r--r--kmailcvt/filter_sylpheed.cpp228
-rw-r--r--kmailcvt/filter_sylpheed.cxx228
-rw-r--r--kmailcvt/filter_sylpheed.h47
-rw-r--r--kmailcvt/filter_sylpheed.hxx47
-rw-r--r--kmailcvt/filter_thebat.cpp231
-rw-r--r--kmailcvt/filter_thebat.cxx231
-rw-r--r--kmailcvt/filter_thebat.h42
-rw-r--r--kmailcvt/filter_thebat.hxx42
-rw-r--r--kmailcvt/filter_thunderbird.cpp234
-rw-r--r--kmailcvt/filter_thunderbird.cxx234
-rw-r--r--kmailcvt/filter_thunderbird.h42
-rw-r--r--kmailcvt/filter_thunderbird.hxx42
-rw-r--r--kmailcvt/filters.cpp216
-rw-r--r--kmailcvt/filters.cxx218
-rw-r--r--kmailcvt/filters.h145
-rw-r--r--kmailcvt/filters.hxx145
-rw-r--r--kmailcvt/kimportpage.h2
-rw-r--r--kmailcvt/kmailcvt.cpp2
-rw-r--r--kmailcvt/kmailcvt.h2
-rw-r--r--kmailcvt/kselfilterpage.cpp34
-rw-r--r--kmailcvt/kselfilterpage.h2
-rw-r--r--kmobile/CMakeL10n.txt6
-rw-r--r--kmobile/CMakeLists.txt14
-rw-r--r--kmobile/TODO8
-rw-r--r--kmobile/devices/digicam/CMakeLists.txt6
-rw-r--r--kmobile/devices/digicam/libkmobile_digicam.desktop107
-rw-r--r--kmobile/devices/gammu/CMakeLists.txt6
-rw-r--r--kmobile/devices/gammu/libkmobile_gammu.desktop101
-rw-r--r--kmobile/devices/gnokii/CMakeLists.txt8
-rw-r--r--kmobile/devices/gnokii/gnokii_mobile.h4
-rw-r--r--kmobile/devices/gnokii/gnokiiconfig.cpp2
-rw-r--r--kmobile/devices/gnokii/gnokiiconfig.h2
-rw-r--r--kmobile/devices/gnokii/libkmobile_gnokii.desktop101
-rw-r--r--kmobile/devices/skeleton/CMakeLists.txt8
-rw-r--r--kmobile/devices/skeleton/libkmobile_skeleton.desktop102
-rw-r--r--kmobile/devices/skeleton/skeleton.h4
-rw-r--r--kmobile/kmobile.cpp48
-rw-r--r--kmobile/kmobile.desktop114
-rw-r--r--kmobile/kmobile.h2
-rw-r--r--kmobile/kmobileclient.h4
-rw-r--r--kmobile/kmobiledevice.h4
-rw-r--r--kmobile/kmobileitem.h2
-rw-r--r--kmobile/kmobileview.cpp4
-rw-r--r--kmobile/kmobileview.h4
-rw-r--r--kmobile/libkmobile.desktop47
-rw-r--r--kmobile/pref.h6
-rw-r--r--kmobile/systemtray.cpp10
-rw-r--r--kmobile/systemtray.h2
-rw-r--r--kmobile/tdeioslave/mimetypes/mobile_addressbook.desktop53
-rw-r--r--kmobile/tdeioslave/mimetypes/mobile_calendar.desktop53
-rw-r--r--kmobile/tdeioslave/mimetypes/mobile_device.desktop57
-rw-r--r--kmobile/tdeioslave/mimetypes/mobile_notes.desktop51
-rw-r--r--kmobile/tdeioslave/tdeio_mobile.cpp2
-rw-r--r--knode/CMakeL10n.txt6
-rw-r--r--knode/CMakeLists.txt14
-rw-r--r--knode/KNode.desktop80
-rw-r--r--knode/aboutdata.h2
-rw-r--r--knode/articlewidget.cpp80
-rw-r--r--knode/articlewidget.h2
-rw-r--r--knode/headerview.cpp24
-rw-r--r--knode/headerview.h2
-rw-r--r--knode/knaccountmanager.cpp2
-rw-r--r--knode/knaccountmanager.h2
-rw-r--r--knode/knapplication.h2
-rw-r--r--knode/knarticlefactory.cpp20
-rw-r--r--knode/knarticlefactory.h4
-rw-r--r--knode/knarticlemanager.cpp16
-rw-r--r--knode/knarticlemanager.h2
-rw-r--r--knode/knarticlewindow.cpp5
-rw-r--r--knode/knarticlewindow.h2
-rw-r--r--knode/kncleanup.cpp2
-rw-r--r--knode/kncleanup.h4
-rw-r--r--knode/kncollectionview.cpp30
-rw-r--r--knode/kncollectionview.h2
-rw-r--r--knode/kncomposer.cpp238
-rw-r--r--knode/kncomposer.h12
-rw-r--r--knode/knconfig.cpp4
-rw-r--r--knode/knconfig.h2
-rw-r--r--knode/knconfigmanager.cpp4
-rw-r--r--knode/knconfigmanager.h4
-rw-r--r--knode/knconfigpages.cpp4
-rw-r--r--knode/knconfigpages.h8
-rw-r--r--knode/knconfigwidgets.cpp258
-rw-r--r--knode/knconfigwidgets.h32
-rw-r--r--knode/knconvert.cpp10
-rw-r--r--knode/knconvert.h4
-rw-r--r--knode/knfilterconfigwidget.h2
-rw-r--r--knode/knfilterdialog.cpp2
-rw-r--r--knode/knfilterdialog.h2
-rw-r--r--knode/knfiltermanager.cpp6
-rw-r--r--knode/knfiltermanager.h4
-rw-r--r--knode/knfoldermanager.h2
-rw-r--r--knode/knglobals.h2
-rw-r--r--knode/kngroup.h2
-rw-r--r--knode/kngroupbrowser.cpp70
-rw-r--r--knode/kngroupbrowser.h4
-rw-r--r--knode/kngroupdialog.cpp37
-rw-r--r--knode/kngroupdialog.h4
-rw-r--r--knode/kngroupmanager.cpp71
-rw-r--r--knode/kngroupmanager.h13
-rw-r--r--knode/kngrouppropdlg.cpp2
-rw-r--r--knode/kngrouppropdlg.h2
-rw-r--r--knode/kngroupselectdialog.cpp20
-rw-r--r--knode/kngroupselectdialog.h2
-rw-r--r--knode/knjobdata.cpp8
-rw-r--r--knode/knjobdata.h2
-rw-r--r--knode/knmainwidget.cpp374
-rw-r--r--knode/knmainwidget.h6
-rw-r--r--knode/knnetaccess.cpp12
-rw-r--r--knode/knnetaccess.h2
-rw-r--r--knode/knnntpaccount.cpp2
-rw-r--r--knode/knnntpaccount.h4
-rw-r--r--knode/knnntpclient.cpp86
-rw-r--r--knode/knode.cpp16
-rw-r--r--knode/knode.h2
-rw-r--r--knode/knode_config_accounts.desktop101
-rw-r--r--knode/knode_config_appearance.desktop105
-rw-r--r--knode/knode_config_cleanup.desktop97
-rw-r--r--knode/knode_config_identity.desktop107
-rw-r--r--knode/knode_config_post_news.desktop47
-rw-r--r--knode/knode_config_privacy.desktop91
-rw-r--r--knode/knode_config_read_news.desktop50
-rw-r--r--knode/knode_part.cpp4
-rw-r--r--knode/knode_part.h2
-rw-r--r--knode/knrangefilter.cpp6
-rw-r--r--knode/knrangefilter.h2
-rw-r--r--knode/knscoring.h2
-rw-r--r--knode/knsearchdialog.cpp6
-rw-r--r--knode/knsearchdialog.h2
-rw-r--r--knode/knsourceviewwindow.cpp2
-rw-r--r--knode/knsourceviewwindow.h2
-rw-r--r--knode/knstatusfilter.cpp2
-rw-r--r--knode/knstatusfilter.h2
-rw-r--r--knode/knstringfilter.cpp2
-rw-r--r--knode/knstringfilter.h2
-rw-r--r--knode/knwidgets.cpp2
-rw-r--r--knode/knwidgets.h2
-rw-r--r--knode/smtpaccountwidget_base.ui13
-rw-r--r--knode/utilities.h23
-rw-r--r--knotes/CMakeL10n.txt6
-rw-r--r--knotes/CMakeLists.txt20
-rw-r--r--knotes/knote.cpp68
-rw-r--r--knotes/knote.h2
-rw-r--r--knotes/knotealarmdlg.cpp4
-rw-r--r--knotes/knotealarmdlg.h2
-rw-r--r--knotes/knotebutton.cpp4
-rw-r--r--knotes/knotebutton.h2
-rw-r--r--knotes/knoteconfigdlg.cpp2
-rw-r--r--knotes/knoteconfigdlg.h2
-rw-r--r--knotes/knoteedit.cpp82
-rw-r--r--knotes/knoteedit.h2
-rw-r--r--knotes/knotehostdlg.cpp4
-rw-r--r--knotes/knotehostdlg.h2
-rw-r--r--knotes/knotes.desktop84
-rw-r--r--knotes/knotes_manager.desktop56
-rw-r--r--knotes/knotesalarm.cpp2
-rw-r--r--knotes/knotesalarm.h2
-rw-r--r--knotes/knotesapp.cpp86
-rw-r--r--knotes/knotesapp.h2
-rw-r--r--knotes/knotesnetrecv.cpp8
-rw-r--r--knotes/knotesnetrecv.h2
-rw-r--r--knotes/knotesnetsend.cpp10
-rw-r--r--knotes/knotesnetsend.h2
-rw-r--r--knotes/local.desktop54
-rw-r--r--knotes/main.cpp2
-rw-r--r--knotes/resourcelocalconfig.h2
-rw-r--r--knotes/resourcemanager.h2
-rw-r--r--knotes/resourcenotes.h2
-rw-r--r--kode/automakefile.h2
-rw-r--r--kode/class.h2
-rw-r--r--kode/code.h2
-rw-r--r--kode/enum.h2
-rw-r--r--kode/file.h2
-rw-r--r--kode/function.h2
-rw-r--r--kode/kwsdl/compiler.h2
-rw-r--r--kode/kwsdl/converter.cpp24
-rw-r--r--kode/kwsdl/creator.cpp2
-rw-r--r--kode/kwsdl/kung/binaryinputfield.cpp4
-rw-r--r--kode/kwsdl/kung/binaryinputfield.h4
-rw-r--r--kode/kwsdl/kung/boolinputfield.cpp4
-rw-r--r--kode/kwsdl/kung/boolinputfield.h2
-rw-r--r--kode/kwsdl/kung/dateinputfield.cpp4
-rw-r--r--kode/kwsdl/kung/dateinputfield.h2
-rw-r--r--kode/kwsdl/kung/dispatcher.cpp12
-rw-r--r--kode/kwsdl/kung/dispatcher.h2
-rw-r--r--kode/kwsdl/kung/doubleinputfield.cpp4
-rw-r--r--kode/kwsdl/kung/doubleinputfield.h2
-rw-r--r--kode/kwsdl/kung/enuminputfield.cpp4
-rw-r--r--kode/kwsdl/kung/enuminputfield.h2
-rw-r--r--kode/kwsdl/kung/inputfield.h2
-rw-r--r--kode/kwsdl/kung/integerinputfield.cpp4
-rw-r--r--kode/kwsdl/kung/integerinputfield.h2
-rw-r--r--kode/kwsdl/kung/listinputfield.cpp6
-rw-r--r--kode/kwsdl/kung/listinputfield.h4
-rw-r--r--kode/kwsdl/kung/loader.h2
-rw-r--r--kode/kwsdl/kung/main.cpp2
-rw-r--r--kode/kwsdl/kung/pageinputfield.h2
-rw-r--r--kode/kwsdl/kung/stringinputfield.cpp4
-rw-r--r--kode/kwsdl/kung/stringinputfield.h2
-rw-r--r--kode/kwsdl/kung/timeinputfield.cpp4
-rw-r--r--kode/kwsdl/kung/timeinputfield.h2
-rw-r--r--kode/kwsdl/kung/transport.cpp4
-rw-r--r--kode/kwsdl/kung/transport.h2
-rw-r--r--kode/kwsdl/main.cpp2
-rw-r--r--kode/kwsdl/schema/fileprovider.cpp8
-rw-r--r--kode/kwsdl/schema/fileprovider.h2
-rw-r--r--kode/kwsdl/tests/google/Makefile.am2
-rw-r--r--kode/kwsdl/tests/google/README2
-rw-r--r--kode/kwsdl/tests/google/googlesearch.cc94
-rw-r--r--kode/kwsdl/tests/google/googlesearch.cpp94
-rw-r--r--kode/kwsdl/tests/google/googlesearch.h60
-rw-r--r--kode/kwsdl/tests/google/googlesearch.hh61
-rw-r--r--kode/kwsdl/tests/google/googlesearchservice.cpp12
-rw-r--r--kode/kwsdl/tests/google/googlesearchservice.h2
-rw-r--r--kode/kwsdl/tests/google/main.cc23
-rw-r--r--kode/kwsdl/tests/google/main.cpp23
-rw-r--r--kode/kwsdl/tests/google/transport.cpp4
-rw-r--r--kode/kwsdl/tests/google/transport.h2
-rw-r--r--kode/kwsdl/typemapper.cpp20
-rw-r--r--kode/kxml_compiler/creator.cpp12
-rw-r--r--kode/license.h2
-rw-r--r--kode/membervariable.h2
-rw-r--r--kode/printer.cpp2
-rw-r--r--kode/printer.h2
-rw-r--r--kode/statemachine.h2
-rw-r--r--kode/style.h2
-rw-r--r--kode/typedef.h2
-rw-r--r--kode/variable.h2
-rw-r--r--konsolekalendar/CMakeL10n.txt6
-rw-r--r--konsolekalendar/CMakeLists.txt2
-rw-r--r--konsolekalendar/konsolekalendar.cpp10
-rw-r--r--konsolekalendar/konsolekalendar.desktop21
-rw-r--r--konsolekalendar/konsolekalendaradd.cpp4
-rw-r--r--konsolekalendar/konsolekalendarchange.cpp8
-rw-r--r--konsolekalendar/konsolekalendardelete.cpp4
-rw-r--r--konsolekalendar/konsolekalendarepoch.cpp6
-rw-r--r--konsolekalendar/main.cpp12
-rw-r--r--kontact/CMakeL10n.txt20
-rw-r--r--kontact/DESIGN.dcopinteraction8
-rw-r--r--kontact/Thoughts2
-rw-r--r--kontact/interfaces/CMakeLists.txt8
-rw-r--r--kontact/interfaces/core.cpp9
-rw-r--r--kontact/interfaces/core.h6
-rw-r--r--kontact/interfaces/kontactplugin.desktop52
-rw-r--r--kontact/interfaces/plugin.cpp4
-rw-r--r--kontact/interfaces/plugin.h4
-rw-r--r--kontact/interfaces/summary.cpp4
-rw-r--r--kontact/interfaces/summary.h4
-rw-r--r--kontact/interfaces/uniqueapphandler.cpp8
-rw-r--r--kontact/interfaces/uniqueapphandler.h4
-rw-r--r--kontact/plugins/akregator/CMakeLists.txt8
-rw-r--r--kontact/plugins/akregator/akregator_plugin.cpp6
-rw-r--r--kontact/plugins/akregator/akregator_plugin.h2
-rw-r--r--kontact/plugins/akregator/akregatorplugin.desktop62
-rw-r--r--kontact/plugins/akregator/akregatorplugin3.2.desktop93
-rw-r--r--kontact/plugins/kaddressbook/CMakeLists.txt8
-rw-r--r--kontact/plugins/kaddressbook/kaddressbook_plugin.cpp10
-rw-r--r--kontact/plugins/kaddressbook/kaddressbook_plugin.h2
-rw-r--r--kontact/plugins/kaddressbook/kaddressbookplugin.desktop76
-rw-r--r--kontact/plugins/karm/CMakeLists.txt6
-rw-r--r--kontact/plugins/karm/karm_plugin.cpp4
-rw-r--r--kontact/plugins/karm/karm_plugin.h2
-rw-r--r--kontact/plugins/karm/karmplugin.desktop34
-rw-r--r--kontact/plugins/kitchensync/Makefile.am14
-rw-r--r--kontact/plugins/kitchensync/kitchensync.desktop41
-rw-r--r--kontact/plugins/kitchensync/kitchensync_plugin.cpp67
-rw-r--r--kontact/plugins/kitchensync/kitchensync_plugin.h51
-rw-r--r--kontact/plugins/kmail/CMakeLists.txt13
-rw-r--r--kontact/plugins/kmail/kcmkmailsummary.cpp6
-rw-r--r--kontact/plugins/kmail/kcmkmailsummary.desktop79
-rw-r--r--kontact/plugins/kmail/kcmkmailsummary.h2
-rw-r--r--kontact/plugins/kmail/kmail_plugin.cpp6
-rw-r--r--kontact/plugins/kmail/kmail_plugin.h2
-rw-r--r--kontact/plugins/kmail/kmailplugin.desktop35
-rw-r--r--kontact/plugins/kmail/summarywidget.cpp9
-rw-r--r--kontact/plugins/kmail/summarywidget.h2
-rw-r--r--kontact/plugins/knode/CMakeLists.txt6
-rw-r--r--kontact/plugins/knode/knode_plugin.cpp4
-rw-r--r--kontact/plugins/knode/knode_plugin.h2
-rw-r--r--kontact/plugins/knode/knodeplugin.desktop76
-rw-r--r--kontact/plugins/knotes/CMakeLists.txt7
-rw-r--r--kontact/plugins/knotes/knotes_part.cpp44
-rw-r--r--kontact/plugins/knotes/knotes_part.h2
-rw-r--r--kontact/plugins/knotes/knotes_part_p.h4
-rw-r--r--kontact/plugins/knotes/knotes_plugin.cpp6
-rw-r--r--kontact/plugins/knotes/knotes_plugin.h2
-rw-r--r--kontact/plugins/knotes/knotesplugin.desktop73
-rw-r--r--kontact/plugins/knotes/knotetip.cpp8
-rw-r--r--kontact/plugins/knotes/summarywidget.cpp14
-rw-r--r--kontact/plugins/knotes/summarywidget.h2
-rw-r--r--kontact/plugins/korganizer/CMakeLists.txt16
-rw-r--r--kontact/plugins/korganizer/journalplugin.cpp6
-rw-r--r--kontact/plugins/korganizer/journalplugin.desktop65
-rw-r--r--kontact/plugins/korganizer/journalplugin.h2
-rw-r--r--kontact/plugins/korganizer/kcmkorgsummary.cpp16
-rw-r--r--kontact/plugins/korganizer/kcmkorgsummary.desktop104
-rw-r--r--kontact/plugins/korganizer/kcmkorgsummary.h2
-rw-r--r--kontact/plugins/korganizer/korganizerplugin.cpp6
-rw-r--r--kontact/plugins/korganizer/korganizerplugin.desktop76
-rw-r--r--kontact/plugins/korganizer/korganizerplugin.h2
-rw-r--r--kontact/plugins/korganizer/summarywidget.cpp16
-rw-r--r--kontact/plugins/korganizer/summarywidget.h2
-rw-r--r--kontact/plugins/korganizer/todoplugin.cpp6
-rw-r--r--kontact/plugins/korganizer/todoplugin.desktop35
-rw-r--r--kontact/plugins/korganizer/todoplugin.h2
-rw-r--r--kontact/plugins/korganizer/todosummarywidget.cpp18
-rw-r--r--kontact/plugins/korganizer/todosummarywidget.h2
-rw-r--r--kontact/plugins/kpilot/kpilot_plugin.cpp2
-rw-r--r--kontact/plugins/kpilot/kpilotplugin.desktop23
-rw-r--r--kontact/plugins/kpilot/summarywidget.cpp10
-rw-r--r--kontact/plugins/kpilot/summarywidget.h2
-rw-r--r--kontact/plugins/newsticker/CMakeLists.txt13
-rw-r--r--kontact/plugins/newsticker/kcmkontactknt.cpp32
-rw-r--r--kontact/plugins/newsticker/kcmkontactknt.desktop140
-rw-r--r--kontact/plugins/newsticker/kcmkontactknt.h4
-rw-r--r--kontact/plugins/newsticker/newsticker_plugin.cpp2
-rw-r--r--kontact/plugins/newsticker/newstickerplugin.desktop76
-rw-r--r--kontact/plugins/newsticker/summarywidget.cpp20
-rw-r--r--kontact/plugins/newsticker/summarywidget.h2
-rw-r--r--kontact/plugins/specialdates/CMakeLists.txt13
-rw-r--r--kontact/plugins/specialdates/kcmsdsummary.cpp20
-rw-r--r--kontact/plugins/specialdates/kcmsdsummary.desktop104
-rw-r--r--kontact/plugins/specialdates/kcmsdsummary.h2
-rw-r--r--kontact/plugins/specialdates/sdsummarywidget.cpp28
-rw-r--r--kontact/plugins/specialdates/sdsummarywidget.h2
-rw-r--r--kontact/plugins/specialdates/specialdates_plugin.cpp2
-rw-r--r--kontact/plugins/specialdates/specialdatesplugin.desktop67
-rw-r--r--kontact/plugins/summary/CMakeLists.txt14
-rw-r--r--kontact/plugins/summary/dropwidget.h2
-rw-r--r--kontact/plugins/summary/kcmkontactsummary.cpp6
-rw-r--r--kontact/plugins/summary/kcmkontactsummary.desktop59
-rw-r--r--kontact/plugins/summary/kcmkontactsummary.h4
-rw-r--r--kontact/plugins/summary/summaryplugin.desktop76
-rw-r--r--kontact/plugins/summary/summaryview_part.cpp36
-rw-r--r--kontact/plugins/summary/summaryview_part.h2
-rw-r--r--kontact/plugins/summary/summaryview_plugin.cpp6
-rw-r--r--kontact/plugins/summary/summaryview_plugin.h2
-rw-r--r--kontact/plugins/test/kptestplugin.desktop99
-rw-r--r--kontact/plugins/test/test_part.cpp6
-rw-r--r--kontact/plugins/test/test_part.h2
-rw-r--r--kontact/plugins/test/test_plugin.cpp4
-rw-r--r--kontact/plugins/test/test_plugin.h2
-rw-r--r--kontact/plugins/weather/CMakeLists.txt8
-rw-r--r--kontact/plugins/weather/summarywidget.cpp10
-rw-r--r--kontact/plugins/weather/summarywidget.h2
-rw-r--r--kontact/plugins/weather/weather_plugin.cpp2
-rw-r--r--kontact/plugins/weather/weatherplugin.desktop68
-rw-r--r--kontact/profiles/KontactDefaults/CMakeLists.txt13
-rw-r--r--kontact/profiles/OutlookDefaults/CMakeLists.txt13
-rw-r--r--kontact/src/CMakeLists.txt23
-rw-r--r--kontact/src/Kontact.desktop64
-rw-r--r--kontact/src/about/kontact.css3
-rw-r--r--kontact/src/about/main.html1
-rw-r--r--kontact/src/aboutdialog.h2
-rw-r--r--kontact/src/iconsidepane.cpp28
-rw-r--r--kontact/src/iconsidepane.h4
-rw-r--r--kontact/src/kcmkontact.cpp8
-rw-r--r--kontact/src/kcmkontact.h4
-rw-r--r--kontact/src/kontact.setdlg542
-rw-r--r--kontact/src/kontactconfig.desktop38
-rw-r--r--kontact/src/kontactdcop.desktop8
-rw-r--r--kontact/src/mainwindow.cpp74
-rw-r--r--kontact/src/mainwindow.h3
-rw-r--r--kontact/src/profiledialog.cpp44
-rw-r--r--kontact/src/profiledialog.h2
-rw-r--r--kontact/src/profilemanager.h2
-rw-r--r--kontact/src/sidepanebase.h2
-rw-r--r--korganizer/CMakeL10n.txt6
-rw-r--r--korganizer/CMakeLists.txt22
-rw-r--r--korganizer/aboutdata.h2
-rw-r--r--korganizer/actionmanager.cpp304
-rw-r--r--korganizer/actionmanager.h4
-rw-r--r--korganizer/agendaview.cpp6
-rw-r--r--korganizer/agendaview.h2
-rw-r--r--korganizer/archivedialog.cpp12
-rw-r--r--korganizer/archivedialog.h2
-rw-r--r--korganizer/calendarview.cpp168
-rw-r--r--korganizer/calendarview.h4
-rw-r--r--korganizer/datechecker.cpp4
-rw-r--r--korganizer/datechecker.h2
-rw-r--r--korganizer/datenavigator.h2
-rw-r--r--korganizer/datenavigatorcontainer.cpp44
-rw-r--r--korganizer/datenavigatorcontainer.h2
-rw-r--r--korganizer/dcopcalendar.desktop54
-rw-r--r--korganizer/eventarchiver.h2
-rw-r--r--korganizer/exportwebdialog.cpp12
-rw-r--r--korganizer/exportwebdialog.h2
-rw-r--r--korganizer/filteredit_base.ui16
-rw-r--r--korganizer/filtereditdialog.cpp26
-rw-r--r--korganizer/filtereditdialog.h4
-rw-r--r--korganizer/freebusymanager.cpp24
-rw-r--r--korganizer/freebusymanager.h4
-rw-r--r--korganizer/freebusyurldialog.h4
-rw-r--r--korganizer/history.h2
-rw-r--r--korganizer/importdialog.cpp2
-rw-r--r--korganizer/importdialog.h2
-rw-r--r--korganizer/incidencechanger.h2
-rw-r--r--korganizer/interfaces/calendar/CMakeLists.txt8
-rw-r--r--korganizer/interfaces/calendar/calendardecoration.desktop62
-rw-r--r--korganizer/interfaces/calendar/calendarplugin.desktop66
-rw-r--r--korganizer/interfaces/korganizer/CMakeLists.txt8
-rw-r--r--korganizer/interfaces/korganizer/baseview.h4
-rw-r--r--korganizer/interfaces/korganizer/incidencechangerbase.h2
-rw-r--r--korganizer/interfaces/korganizer/korganizerpart.desktop56
-rw-r--r--korganizer/interfaces/korganizer/korgprintplugin.desktop56
-rw-r--r--korganizer/interfaces/korganizer/part.h2
-rw-r--r--korganizer/journalentry.cpp44
-rw-r--r--korganizer/journalentry.h4
-rw-r--r--korganizer/kdatenavigator.cpp26
-rw-r--r--korganizer/kdatenavigator.h2
-rw-r--r--korganizer/koagenda.cpp90
-rw-r--r--korganizer/koagenda.h6
-rw-r--r--korganizer/koagendaitem.h2
-rw-r--r--korganizer/koagendaview.cpp108
-rw-r--r--korganizer/koagendaview.h8
-rw-r--r--korganizer/koapp.h2
-rw-r--r--korganizer/koattendeeeditor.cpp24
-rw-r--r--korganizer/koattendeeeditor.h2
-rw-r--r--korganizer/kocore.h2
-rw-r--r--korganizer/kocounterdialog.cpp4
-rw-r--r--korganizer/kocounterdialog.h2
-rw-r--r--korganizer/kodaymatrix.cpp8
-rw-r--r--korganizer/kodaymatrix.h2
-rw-r--r--korganizer/kodialogmanager.cpp94
-rw-r--r--korganizer/kodialogmanager.h2
-rw-r--r--korganizer/koeditoralarms.cpp38
-rw-r--r--korganizer/koeditoralarms.h2
-rw-r--r--korganizer/koeditoralarms_base.ui8
-rw-r--r--korganizer/koeditorattachments.cpp50
-rw-r--r--korganizer/koeditorattachments.h6
-rw-r--r--korganizer/koeditordetails.cpp10
-rw-r--r--korganizer/koeditordetails.h4
-rw-r--r--korganizer/koeditorfreebusy.cpp58
-rw-r--r--korganizer/koeditorfreebusy.h2
-rw-r--r--korganizer/koeditorgeneral.cpp26
-rw-r--r--korganizer/koeditorgeneral.h4
-rw-r--r--korganizer/koeditorgeneralevent.cpp38
-rw-r--r--korganizer/koeditorgeneralevent.h2
-rw-r--r--korganizer/koeditorgeneraljournal.cpp6
-rw-r--r--korganizer/koeditorgeneraljournal.h2
-rw-r--r--korganizer/koeditorgeneraltodo.cpp30
-rw-r--r--korganizer/koeditorgeneraltodo.h2
-rw-r--r--korganizer/koeditorrecurrence.cpp72
-rw-r--r--korganizer/koeditorrecurrence.h10
-rw-r--r--korganizer/koeventeditor.cpp72
-rw-r--r--korganizer/koeventeditor.h2
-rw-r--r--korganizer/koeventpopupmenu.cpp24
-rw-r--r--korganizer/koeventpopupmenu.h2
-rw-r--r--korganizer/koeventview.cpp36
-rw-r--r--korganizer/koeventview.h2
-rw-r--r--korganizer/koeventviewer.cpp2
-rw-r--r--korganizer/koeventviewer.h4
-rw-r--r--korganizer/koeventviewerdialog.cpp2
-rw-r--r--korganizer/koeventviewerdialog.h4
-rw-r--r--korganizer/koglobals.h2
-rw-r--r--korganizer/kogroupware.cpp26
-rw-r--r--korganizer/kogroupware.h2
-rw-r--r--korganizer/kogroupwareprefspage.ui10
-rw-r--r--korganizer/kohelper.h2
-rw-r--r--korganizer/koincidenceeditor.cpp20
-rw-r--r--korganizer/koincidenceeditor.h2
-rw-r--r--korganizer/kojournaleditor.h2
-rw-r--r--korganizer/kojournalview.cpp28
-rw-r--r--korganizer/kojournalview.h2
-rw-r--r--korganizer/kolistview.cpp30
-rw-r--r--korganizer/kolistview.h2
-rw-r--r--korganizer/komessagebox.cpp6
-rw-r--r--korganizer/komonthview.cpp26
-rw-r--r--korganizer/komonthview.h6
-rw-r--r--korganizer/koprefs.h2
-rw-r--r--korganizer/koprefsdialog.cpp88
-rw-r--r--korganizer/koprefsdialog.h10
-rw-r--r--korganizer/korgac/CMakeLists.txt6
-rw-r--r--korganizer/korgac/alarmdialog.cpp30
-rw-r--r--korganizer/korgac/alarmdialog.h2
-rw-r--r--korganizer/korgac/alarmdockwindow.cpp22
-rw-r--r--korganizer/korgac/alarmdockwindow.h2
-rw-r--r--korganizer/korgac/koalarmclient.cpp14
-rw-r--r--korganizer/korgac/koalarmclient.h2
-rw-r--r--korganizer/korgac/korgac.desktop88
-rw-r--r--korganizer/korganizer.cpp20
-rw-r--r--korganizer/korganizer.desktop137
-rw-r--r--korganizer/korganizer.h2
-rw-r--r--korganizer/korganizer_configcolors.desktop174
-rw-r--r--korganizer/korganizer_configdesignerfields.desktop144
-rw-r--r--korganizer/korganizer_configfonts.desktop171
-rw-r--r--korganizer/korganizer_configfreebusy.desktop143
-rw-r--r--korganizer/korganizer_configgroupautomation.desktop147
-rw-r--r--korganizer/korganizer_configgroupscheduling.desktop145
-rw-r--r--korganizer/korganizer_configmain.desktop154
-rw-r--r--korganizer/korganizer_configplugins.desktop138
-rw-r--r--korganizer/korganizer_configtime.desktop161
-rw-r--r--korganizer/korganizer_configviews.desktop156
-rw-r--r--korganizer/korganizer_part.cpp10
-rw-r--r--korganizer/korganizer_part.h2
-rw-r--r--korganizer/korganizerifaceimpl.h2
-rw-r--r--korganizer/kotimelineview.cpp24
-rw-r--r--korganizer/kotimelineview.h2
-rw-r--r--korganizer/kotodoeditor.cpp34
-rw-r--r--korganizer/kotodoeditor.h2
-rw-r--r--korganizer/kotodoview.cpp104
-rw-r--r--korganizer/kotodoview.h4
-rw-r--r--korganizer/koviewmanager.cpp132
-rw-r--r--korganizer/koviewmanager.h2
-rw-r--r--korganizer/kowhatsnextview.cpp2
-rw-r--r--korganizer/kowhatsnextview.h4
-rw-r--r--korganizer/kowindowlist.h2
-rw-r--r--korganizer/multiagendaview.cpp126
-rw-r--r--korganizer/multiagendaview.h4
-rw-r--r--korganizer/navigatorbar.cpp12
-rw-r--r--korganizer/navigatorbar.h4
-rw-r--r--korganizer/plugins/datenums/CMakeLists.txt6
-rw-r--r--korganizer/plugins/datenums/configdialog.h2
-rw-r--r--korganizer/plugins/datenums/datenums.desktop92
-rw-r--r--korganizer/plugins/exchange/CMakeLists.txt7
-rw-r--r--korganizer/plugins/exchange/exchange.cpp26
-rw-r--r--korganizer/plugins/exchange/exchange.desktop94
-rw-r--r--korganizer/plugins/exchange/exchange.h2
-rw-r--r--korganizer/plugins/exchange/exchangeconfig.cpp6
-rw-r--r--korganizer/plugins/exchange/exchangeconfig.h2
-rw-r--r--korganizer/plugins/exchange/exchangedialog.h2
-rw-r--r--korganizer/plugins/hebrew/CMakeLists.txt6
-rw-r--r--korganizer/plugins/hebrew/configdialog.h2
-rw-r--r--korganizer/plugins/hebrew/hebrew.desktop94
-rw-r--r--korganizer/plugins/printing/journal/CMakeLists.txt6
-rw-r--r--korganizer/plugins/printing/journal/calprintjournalconfig_base.ui7
-rw-r--r--korganizer/plugins/printing/journal/journalprint.desktop88
-rw-r--r--korganizer/plugins/printing/list/listprint.desktop88
-rw-r--r--korganizer/plugins/printing/whatsnext/calprintwhatsnextconfig_base.ui7
-rw-r--r--korganizer/plugins/printing/whatsnext/whatsnextprint.desktop88
-rw-r--r--korganizer/plugins/printing/year/CMakeLists.txt6
-rw-r--r--korganizer/plugins/printing/year/yearprint.desktop77
-rw-r--r--korganizer/plugins/projectview/koprojectview.cpp10
-rw-r--r--korganizer/plugins/projectview/koprojectview.h2
-rw-r--r--korganizer/plugins/projectview/projectview.cpp2
-rw-r--r--korganizer/plugins/projectview/projectview.desktop105
-rw-r--r--korganizer/plugins/projectview/projectview.h2
-rw-r--r--korganizer/plugins/timespanview/kotimespanview.cpp2
-rw-r--r--korganizer/plugins/timespanview/kotimespanview.h2
-rw-r--r--korganizer/plugins/timespanview/lineview.h2
-rw-r--r--korganizer/plugins/timespanview/timeline.h2
-rw-r--r--korganizer/plugins/timespanview/timespanview.cpp2
-rw-r--r--korganizer/plugins/timespanview/timespanview.desktop87
-rw-r--r--korganizer/plugins/timespanview/timespanview.h2
-rw-r--r--korganizer/plugins/timespanview/timespanwidget.cpp10
-rw-r--r--korganizer/plugins/timespanview/timespanwidget.h2
-rw-r--r--korganizer/previewdialog.cpp4
-rw-r--r--korganizer/previewdialog.h2
-rw-r--r--korganizer/printing/calprintdayconfig_base.ui5
-rw-r--r--korganizer/printing/calprinter.cpp4
-rw-r--r--korganizer/printing/calprinter.h6
-rw-r--r--korganizer/printing/calprintpluginbase.cpp16
-rw-r--r--korganizer/printing/calprintpluginbase.h2
-rw-r--r--korganizer/printing/calprinttodoconfig_base.ui8
-rw-r--r--korganizer/printing/calprintweetdeconfig_base.ui5
-rw-r--r--korganizer/printing/cellitem.h2
-rw-r--r--korganizer/publishdialog.cpp24
-rw-r--r--korganizer/publishdialog.h2
-rw-r--r--korganizer/resourceview.cpp76
-rw-r--r--korganizer/resourceview.h2
-rw-r--r--korganizer/searchdialog.cpp20
-rw-r--r--korganizer/searchdialog.h2
-rw-r--r--korganizer/statusdialog.cpp4
-rw-r--r--korganizer/statusdialog.h2
-rw-r--r--korganizer/templatemanagementdialog.cpp18
-rw-r--r--korganizer/templatemanagementdialog.h2
-rw-r--r--korganizer/timelabels.cpp8
-rw-r--r--korganizer/timelabels.h2
-rw-r--r--korganizer/urihandler.h2
-rw-r--r--korn/CMakeL10n.txt6
-rw-r--r--korn/CMakeLists.txt2
-rw-r--r--korn/KOrn.desktop69
-rw-r--r--korn/account_input.cpp2
-rw-r--r--korn/accountmanager.cpp18
-rw-r--r--korn/accountmanager.h2
-rw-r--r--korn/boxcontainer.cpp2
-rw-r--r--korn/boxcontainer.h2
-rw-r--r--korn/boxcontaineritem.cpp36
-rw-r--r--korn/boxcontaineritem.h2
-rw-r--r--korn/dcopdrop.cpp2
-rw-r--r--korn/dcopdrop.h2
-rw-r--r--korn/dockedcontainer.h2
-rw-r--r--korn/dockeditem.cpp8
-rw-r--r--korn/dockeditem.h2
-rw-r--r--korn/hvcontainer.cpp4
-rw-r--r--korn/hvcontainer.h4
-rw-r--r--korn/hvitem.cpp4
-rw-r--r--korn/hvitem.h2
-rw-r--r--korn/imap_proto.cpp8
-rw-r--r--korn/keditlistboxman.cpp10
-rw-r--r--korn/keditlistboxman.h2
-rw-r--r--korn/kornaccountcfg.ui10
-rw-r--r--korn/kornaccountcfgimpl.cpp12
-rw-r--r--korn/kornaccountcfgimpl.h2
-rw-r--r--korn/kornapp.h2
-rw-r--r--korn/kornboxcfg.ui10
-rw-r--r--korn/kornboxcfgimpl.cpp10
-rw-r--r--korn/kornboxcfgimpl.h2
-rw-r--r--korn/korncfg.ui4
-rw-r--r--korn/korncfgimpl.cpp12
-rw-r--r--korn/korncfgimpl.h2
-rw-r--r--korn/kornshell.cpp14
-rw-r--r--korn/kornshell.h2
-rw-r--r--korn/label.h2
-rw-r--r--korn/maildlg.cpp12
-rw-r--r--korn/maildlg.h2
-rw-r--r--korn/maildrop.cpp2
-rw-r--r--korn/maildrop.h2
-rw-r--r--korn/mailsubject.cpp2
-rw-r--r--korn/nntp_proto.cpp4
-rw-r--r--korn/polldrop.h2
-rw-r--r--korn/pop3_proto.cpp8
-rw-r--r--korn/progress_dialog.ui8
-rw-r--r--korn/subjectsdlg.cpp64
-rw-r--r--korn/subjectsdlg.h2
-rw-r--r--korn/systemtray.h2
-rw-r--r--korn/tdeio.cpp8
-rw-r--r--korn/tdeio.h2
-rw-r--r--korn/tdeio_count.cpp28
-rw-r--r--korn/tdeio_count.h2
-rw-r--r--korn/tdeio_delete.cpp4
-rw-r--r--korn/tdeio_delete.h2
-rw-r--r--korn/tdeio_read.cpp4
-rw-r--r--korn/tdeio_read.h2
-rw-r--r--korn/tdeio_single_subject.cpp6
-rw-r--r--korn/tdeio_single_subject.h2
-rw-r--r--korn/tdeio_subjects.cpp4
-rw-r--r--korn/tdeio_subjects.h2
-rw-r--r--ktnef/CMakeL10n.txt6
-rw-r--r--ktnef/gui/CMakeLists.txt14
-rw-r--r--ktnef/gui/attachpropertydialog.cpp2
-rw-r--r--ktnef/gui/attachpropertydialogbase.ui4
-rw-r--r--ktnef/gui/ktnef.desktop101
-rw-r--r--ktnef/gui/ktnefmain.cpp48
-rw-r--r--ktnef/gui/ktnefmain.h2
-rw-r--r--ktnef/gui/ktnefview.cpp2
-rw-r--r--ktnef/gui/ktnefview.h4
-rw-r--r--ktnef/gui/messagepropertydialog.h2
-rw-r--r--ktnef/gui/ms-tnef.desktop55
-rw-r--r--ktnef/gui/qwmf.cpp56
-rw-r--r--ktnef/ktnef/ktnefattach.h2
-rw-r--r--ktnef/ktnef/ktnefmessage.h2
-rw-r--r--ktnef/ktnef/ktnefparser.h2
-rw-r--r--ktnef/ktnef/ktnefproperty.h2
-rw-r--r--ktnef/ktnef/ktnefpropertyset.h2
-rw-r--r--ktnef/lib/ktnefmessage.cpp2
-rw-r--r--ktnef/lib/ktnefparser.cpp2
-rw-r--r--libemailfunctions/email.cpp3
-rw-r--r--libemailfunctions/email.h5
-rw-r--r--libemailfunctions/idmapper.h2
-rw-r--r--libemailfunctions/kasciistringtools.cpp2
-rw-r--r--libemailfunctions/kasciistringtools.h2
-rw-r--r--libemailfunctions/networkstatus.h2
-rw-r--r--libkcal/CMakeL10n.txt6
-rw-r--r--libkcal/CMakeLists.txt13
-rw-r--r--libkcal/alarm.h2
-rw-r--r--libkcal/assignmentvisitor.cpp2
-rw-r--r--libkcal/assignmentvisitor.h1
-rw-r--r--libkcal/calendar.h4
-rw-r--r--libkcal/calendarlocal.h2
-rw-r--r--libkcal/calendarresources.cpp20
-rw-r--r--libkcal/calendarresources.h2
-rw-r--r--libkcal/calhelper.cpp2
-rw-r--r--libkcal/calselectdialog.cpp8
-rw-r--r--libkcal/confirmsavedialog.h2
-rw-r--r--libkcal/customproperties.h2
-rw-r--r--libkcal/event.h2
-rw-r--r--libkcal/icalformat.h2
-rw-r--r--libkcal/icalformatimpl.cpp15
-rw-r--r--libkcal/incidence.h2
-rw-r--r--libkcal/incidenceformatter.cpp2
-rw-r--r--libkcal/journal.h2
-rw-r--r--libkcal/kcal_manager.desktop59
-rw-r--r--libkcal/kcalversion.h2
-rw-r--r--libkcal/libical/src/libical/icalattach.c2
-rw-r--r--libkcal/libkcal_export.h2
-rw-r--r--libkcal/local.desktop53
-rw-r--r--libkcal/localdir.desktop53
-rw-r--r--libkcal/resourcecached.cpp4
-rw-r--r--libkcal/resourcecached.h4
-rw-r--r--libkcal/resourcecachedconfig.cpp12
-rw-r--r--libkcal/resourcecachedconfig.h6
-rw-r--r--libkcal/resourcecalendar.h4
-rw-r--r--libkcal/resourcelocal.cpp12
-rw-r--r--libkcal/resourcelocal.h4
-rw-r--r--libkcal/resourcelocalconfig.cpp2
-rw-r--r--libkcal/resourcelocalconfig.h4
-rw-r--r--libkcal/resourcelocaldir.cpp12
-rw-r--r--libkcal/resourcelocaldir.h4
-rw-r--r--libkcal/resourcelocaldirconfig.h2
-rw-r--r--libkcal/tests/testresource.h2
-rw-r--r--libkholidays/CMakeLists.txt20
-rw-r--r--libkholidays/ConfigureChecks.cmake13
-rw-r--r--libkholidays/holidays/holiday_ua220
-rw-r--r--libkholidays/kholidays.h2
-rw-r--r--libkholidays/parseholiday.c2653
-rw-r--r--libkholidays/parseholiday.h112
-rw-r--r--libkholidays/parseholiday.y4
-rw-r--r--libkholidays/scanholiday.c2037
-rw-r--r--libkmime/boolflags.h2
-rw-r--r--libkmime/kmime_charfreq.h4
-rw-r--r--libkmime/kmime_codec_base64.cpp2
-rw-r--r--libkmime/kmime_codec_base64.h2
-rw-r--r--libkmime/kmime_codec_identity.cpp2
-rw-r--r--libkmime/kmime_codec_identity.h2
-rw-r--r--libkmime/kmime_codec_qp.cpp2
-rw-r--r--libkmime/kmime_codec_qp.h2
-rw-r--r--libkmime/kmime_codec_uuencode.cpp2
-rw-r--r--libkmime/kmime_codec_uuencode.h2
-rw-r--r--libkmime/kmime_codecs.cpp2
-rw-r--r--libkmime/kmime_codecs.h4
-rw-r--r--libkmime/kmime_header_parsing.cpp10
-rw-r--r--libkmime/kmime_header_parsing.h4
-rw-r--r--libkmime/kmime_headers.h4
-rw-r--r--libkmime/kmime_headers_obs.h2
-rw-r--r--libkmime/kmime_mdn.cpp2
-rw-r--r--libkmime/kmime_mdn.h4
-rw-r--r--libkmime/kmime_newsarticle.h2
-rw-r--r--libkmime/kmime_util.h4
-rw-r--r--libkmime/kqcstringsplitter.h2
-rw-r--r--libkpgp/kpgp.cpp2
-rw-r--r--libkpgp/kpgp.h2
-rw-r--r--libkpgp/kpgpblock.h2
-rw-r--r--libkpgp/kpgpui.cpp92
-rw-r--r--libkpgp/kpgpui.h20
-rw-r--r--libkpimexchange/core/README.download4
-rw-r--r--libkpimexchange/core/exchangeaccount.cpp4
-rw-r--r--libkpimexchange/core/exchangeaccount.h4
-rw-r--r--libkpimexchange/core/exchangeclient.cpp44
-rw-r--r--libkpimexchange/core/exchangeclient.h4
-rw-r--r--libkpimexchange/core/exchangedelete.cpp4
-rw-r--r--libkpimexchange/core/exchangedelete.h4
-rw-r--r--libkpimexchange/core/exchangedownload.cpp40
-rw-r--r--libkpimexchange/core/exchangedownload.h2
-rw-r--r--libkpimexchange/core/exchangemonitor.cpp16
-rw-r--r--libkpimexchange/core/exchangemonitor.h2
-rw-r--r--libkpimexchange/core/exchangeprogress.h2
-rw-r--r--libkpimexchange/core/exchangeupload.cpp20
-rw-r--r--libkpimexchange/core/exchangeupload.h4
-rw-r--r--libkpimidentities/identity.cpp1
-rw-r--r--libkpimidentities/identity.h4
-rw-r--r--libkpimidentities/identitycombo.cpp8
-rw-r--r--libkpimidentities/identitycombo.h6
-rw-r--r--libkpimidentities/identitymanager.cpp2
-rw-r--r--libkpimidentities/identitymanager.h6
-rw-r--r--libksieve/CMakeLists.txt2
-rw-r--r--libksieve/impl/lexer.h2
-rw-r--r--libksieve/impl/parser.h2
-rw-r--r--libksieve/impl/utf8validator.h2
-rw-r--r--libksieve/ksieve/error.h4
-rw-r--r--libksieve/ksieve/lexer.h2
-rw-r--r--libksieve/ksieve/parser.h4
-rw-r--r--libksieve/ksieve/scriptbuilder.h2
-rw-r--r--libksieve/parser/lexer.cpp8
-rw-r--r--libksieve/parser/parser.cpp2
-rw-r--r--libksieve/parser/utf8validator.cpp2
-rw-r--r--libksieve/shared/error.cpp2
-rw-r--r--libksieve/tests/lexertest.cpp2
-rw-r--r--libksieve/tests/parsertest.cpp2
-rw-r--r--libtdenetwork/gpgmepp/context.h4
-rw-r--r--libtdenetwork/gpgmepp/context_p.h3
-rw-r--r--libtdenetwork/gpgmepp/data.h2
-rw-r--r--libtdenetwork/gpgmepp/data_p.h2
-rw-r--r--libtdenetwork/gpgmepp/decryptionresult.h2
-rw-r--r--libtdenetwork/gpgmepp/encryptionresult.h2
-rw-r--r--libtdenetwork/gpgmepp/engineinfo.h2
-rw-r--r--libtdenetwork/gpgmepp/eventloopinteractor.h4
-rw-r--r--libtdenetwork/gpgmepp/importresult.h2
-rw-r--r--libtdenetwork/gpgmepp/interfaces/dataprovider.h2
-rw-r--r--libtdenetwork/gpgmepp/key.h4
-rw-r--r--libtdenetwork/gpgmepp/keygenerationresult.h2
-rw-r--r--libtdenetwork/gpgmepp/keylistresult.h2
-rw-r--r--libtdenetwork/gpgmepp/shared.h2
-rw-r--r--libtdenetwork/gpgmepp/signingresult.h2
-rw-r--r--libtdenetwork/gpgmepp/trustitem.h2
-rw-r--r--libtdenetwork/gpgmepp/util.h2
-rw-r--r--libtdenetwork/gpgmepp/verificationresult.h2
-rw-r--r--libtdenetwork/qgpgme/dataprovider.cpp3
-rw-r--r--libtdenetwork/qgpgme/dataprovider.h4
-rw-r--r--libtdenetwork/qgpgme/eventloopinteractor.cpp11
-rw-r--r--libtdenetwork/qgpgme/eventloopinteractor.h6
-rw-r--r--libtdenetwork/qgpgme/tests/dataprovidertest.cpp3
-rw-r--r--libtdepim/CMakeL10n.txt6
-rw-r--r--libtdepim/CMakeLists.txt4
-rw-r--r--libtdepim/Makefile.am2
-rw-r--r--libtdepim/about/kde_infopage.css2
-rw-r--r--libtdepim/about/kde_infopage_rtl.css2
-rw-r--r--libtdepim/addresseelineedit.cpp50
-rw-r--r--libtdepim/addresseelineedit.h4
-rw-r--r--libtdepim/addresseeselector.cpp44
-rw-r--r--libtdepim/addresseeselector.h6
-rw-r--r--libtdepim/addresseeview.cpp42
-rw-r--r--libtdepim/addresseeview.h4
-rw-r--r--libtdepim/addressesdialog.cpp110
-rw-r--r--libtdepim/addressesdialog.h8
-rw-r--r--libtdepim/addresspicker.ui3
-rw-r--r--libtdepim/broadcaststatus.h4
-rw-r--r--libtdepim/categoryeditdialog.cpp6
-rw-r--r--libtdepim/categoryeditdialog.h4
-rw-r--r--libtdepim/categoryselectdialog.cpp8
-rw-r--r--libtdepim/categoryselectdialog.h4
-rw-r--r--libtdepim/cfgc/example.cfg4
-rw-r--r--libtdepim/clicklineedit.h4
-rw-r--r--libtdepim/collectingprocess.cpp16
-rw-r--r--libtdepim/collectingprocess.h6
-rw-r--r--libtdepim/completionordereditor.cpp14
-rw-r--r--libtdepim/completionordereditor.h4
-rw-r--r--libtdepim/configmanager.h6
-rw-r--r--libtdepim/csshelper.cpp2
-rw-r--r--libtdepim/csshelper.h2
-rw-r--r--libtdepim/designerfields.cpp108
-rw-r--r--libtdepim/designerfields.h4
-rw-r--r--libtdepim/diffalgo.h2
-rw-r--r--libtdepim/distributionlist.cpp2
-rw-r--r--libtdepim/embeddedurlpage.cpp8
-rw-r--r--libtdepim/embeddedurlpage.h4
-rw-r--r--libtdepim/htmldiffalgodisplay.h2
-rw-r--r--libtdepim/infoextension.h4
-rw-r--r--libtdepim/interfaces/AddressBookServiceIface.h2
-rw-r--r--libtdepim/interfaces/MailTransportServiceIface.h2
-rw-r--r--libtdepim/kaccount.cpp2
-rw-r--r--libtdepim/kaccount.h4
-rw-r--r--libtdepim/kaddrbook.cpp1
-rw-r--r--libtdepim/kaddrbook.h2
-rw-r--r--libtdepim/kcmdesignerfields.cpp50
-rw-r--r--libtdepim/kcmdesignerfields.h4
-rw-r--r--libtdepim/kdateedit.cpp20
-rw-r--r--libtdepim/kdateedit.h4
-rw-r--r--libtdepim/kdatepickerpopup.cpp18
-rw-r--r--libtdepim/kdatepickerpopup.h4
-rw-r--r--libtdepim/kfoldertree.cpp9
-rw-r--r--libtdepim/kfoldertree.h7
-rw-r--r--libtdepim/kimportdialog.cpp38
-rw-r--r--libtdepim/kimportdialog.h2
-rw-r--r--libtdepim/kincidencechooser.cpp22
-rw-r--r--libtdepim/kincidencechooser.h2
-rw-r--r--libtdepim/kmailcompletion.h2
-rw-r--r--libtdepim/komposer/core/attachment.cpp1
-rw-r--r--libtdepim/komposer/core/attachment.h1
-rw-r--r--libtdepim/komposer/core/core.cpp29
-rw-r--r--libtdepim/komposer/core/core.h3
-rw-r--r--libtdepim/komposer/core/corewidget.cpp1
-rw-r--r--libtdepim/komposer/core/corewidget.h3
-rw-r--r--libtdepim/komposer/core/editor.cpp1
-rw-r--r--libtdepim/komposer/core/editor.h3
-rw-r--r--libtdepim/komposer/core/komposerconfig.desktop44
-rw-r--r--libtdepim/komposer/core/komposereditor.desktop49
-rw-r--r--libtdepim/komposer/core/komposerplugin.desktop52
-rw-r--r--libtdepim/komposer/core/plugin.cpp1
-rw-r--r--libtdepim/komposer/core/plugin.h3
-rw-r--r--libtdepim/komposer/core/pluginmanager.cpp21
-rw-r--r--libtdepim/komposer/core/pluginmanager.h3
-rw-r--r--libtdepim/komposer/core/prefsmodule.cpp6
-rw-r--r--libtdepim/komposer/core/prefsmodule.h4
-rw-r--r--libtdepim/komposer/core/tests/managertest.h2
-rw-r--r--libtdepim/komposer/core/tests/testmanager.cpp8
-rw-r--r--libtdepim/komposer/core/tests/testmanager.h2
-rw-r--r--libtdepim/komposer/plugins/default/defaulteditor.cpp96
-rw-r--r--libtdepim/komposer/plugins/default/defaulteditor.desktop91
-rw-r--r--libtdepim/komposer/plugins/default/defaulteditor.h2
-rw-r--r--libtdepim/kpimprefs.h2
-rw-r--r--libtdepim/kpimurlrequesterdlg.h2
-rw-r--r--libtdepim/kpixmapregionselectordialog.h2
-rw-r--r--libtdepim/kpixmapregionselectorwidget.cpp12
-rw-r--r--libtdepim/kpixmapregionselectorwidget.h2
-rw-r--r--libtdepim/kprefsdialog.cpp34
-rw-r--r--libtdepim/kprefsdialog.h12
-rw-r--r--libtdepim/kregexp3.cpp2
-rw-r--r--libtdepim/kregexp3.h4
-rw-r--r--libtdepim/kresourceprefs.h2
-rw-r--r--libtdepim/krsqueezedtextlabel.h4
-rw-r--r--libtdepim/kscoring.cpp4
-rw-r--r--libtdepim/kscoring.h6
-rw-r--r--libtdepim/kscoringeditor.cpp78
-rw-r--r--libtdepim/kscoringeditor.h20
-rw-r--r--libtdepim/ksubscription.cpp32
-rw-r--r--libtdepim/ksubscription.h4
-rw-r--r--libtdepim/ktimeedit.cpp10
-rw-r--r--libtdepim/ktimeedit.h4
-rw-r--r--libtdepim/kvcarddrag.h4
-rw-r--r--libtdepim/kwidgetlister.cpp14
-rw-r--r--libtdepim/kwidgetlister.h6
-rw-r--r--libtdepim/kxface.h4
-rw-r--r--libtdepim/ldapclient.cpp30
-rw-r--r--libtdepim/ldapclient.h6
-rw-r--r--libtdepim/ldapsearchdialog.cpp40
-rw-r--r--libtdepim/ldapsearchdialog.h2
-rw-r--r--libtdepim/linklocator.cpp1
-rw-r--r--libtdepim/linklocator.h2
-rw-r--r--libtdepim/maillistdrag.h2
-rw-r--r--libtdepim/overlaywidget.cpp4
-rw-r--r--libtdepim/overlaywidget.h4
-rw-r--r--libtdepim/pluginloader.h2
-rw-r--r--libtdepim/pluginloaderbase.cpp2
-rw-r--r--libtdepim/pluginloaderbase.h4
-rw-r--r--libtdepim/progressdialog.cpp52
-rw-r--r--libtdepim/progressdialog.h10
-rw-r--r--libtdepim/progressmanager.cpp32
-rw-r--r--libtdepim/progressmanager.h6
-rw-r--r--libtdepim/qutf7codec.h2
-rw-r--r--libtdepim/recentaddresses.cpp2
-rw-r--r--libtdepim/recentaddresses.h4
-rw-r--r--libtdepim/resourceabc.h4
-rw-r--r--libtdepim/sendsmsdialog.cpp8
-rw-r--r--libtdepim/sendsmsdialog.h2
-rw-r--r--libtdepim/sidebarextension.cpp2
-rw-r--r--libtdepim/sidebarextension.h6
-rw-r--r--libtdepim/spellingfilter.h2
-rw-r--r--libtdepim/ssllabel.cpp2
-rw-r--r--libtdepim/ssllabel.h2
-rw-r--r--libtdepim/statusbarprogresswidget.cpp40
-rw-r--r--libtdepim/statusbarprogresswidget.h4
-rw-r--r--libtdepim/tdeabcresourcecached.cpp4
-rw-r--r--libtdepim/tdeabcresourcecached.h4
-rw-r--r--libtdepim/tdeconfigpropagator.h2
-rw-r--r--libtdepim/tdeconfigwizard.cpp6
-rw-r--r--libtdepim/tdeconfigwizard.h4
-rw-r--r--libtdepim/tdefileio.cpp2
-rw-r--r--libtdepim/tdefileio.h2
-rw-r--r--libtdepim/tdepartsdesignerplugin/tdepartsdesignerplugin.cpp4
-rw-r--r--libtdepim/tdepartsdesignerplugin/tdepartsdesignerplugin.h2
-rw-r--r--libtdepim/tdepimmacros.h35
-rw-r--r--libtdepim/tests/testdateedit.cpp4
-rw-r--r--libtdepim/tests/testdateedit.h2
-rw-r--r--libtdepim/tests/testdistrlist.h2
-rw-r--r--libtdepim/weaver.cpp3
-rw-r--r--libtdepim/weaver.h9
-rw-r--r--libtdepim/weaverextensions.cpp19
-rw-r--r--libtdepim/weaverextensions.h5
-rw-r--r--libtdepim/weaverlogger.cpp3
-rw-r--r--libtdepim/weaverlogger.h5
-rw-r--r--mimelib/Changes4
-rw-r--r--plugins/kmail/CMakeL10n.txt6
-rw-r--r--plugins/kmail/bodypartformatter/CMakeLists.txt8
-rw-r--r--plugins/kmail/bodypartformatter/attendeeselector.cpp10
-rw-r--r--plugins/kmail/bodypartformatter/attendeeselector.h2
-rw-r--r--plugins/kmail/bodypartformatter/delegateselector.h2
-rw-r--r--plugins/kmail/bodypartformatter/text_calendar.cpp2
-rw-r--r--plugins/kmail/bodypartformatter/text_calendar.desktop78
-rw-r--r--plugins/kmail/bodypartformatter/text_vcard.cpp4
-rw-r--r--plugins/kmail/bodypartformatter/text_vcard.desktop79
-rw-r--r--plugins/kmail/bodypartformatter/text_xdiff.desktop77
-rw-r--r--tdeabc/CMakeL10n.txt6
-rw-r--r--tdeabc/frontend/main.cpp2
-rw-r--r--tdeabc/frontend/mainWindow.ui4
-rw-r--r--tdeabc/frontend/mainWindow.ui.h12
-rw-r--r--tdeabc/tdeabc2mutt/tdeabc2mutt.cpp4
-rw-r--r--tdeabc/tdeabc2mutt/tdeabc2mutt.h2
-rw-r--r--tdeabc/tdeabcdistlistupdater/CMakeLists.txt5
-rw-r--r--tdeabc/tdeabcdistlistupdater/tdeabcdistlistupdater.desktop6
-rw-r--r--tdefile-plugins/CMakeL10n.txt6
-rw-r--r--tdefile-plugins/ics/CMakeLists.txt6
-rw-r--r--tdefile-plugins/ics/tdefile_ics.desktop51
-rw-r--r--tdefile-plugins/ics/tdefile_ics.h2
-rw-r--r--tdefile-plugins/palm-databases/tdefile_palm.cpp2
-rw-r--r--tdefile-plugins/palm-databases/tdefile_palm.desktop54
-rw-r--r--tdefile-plugins/palm-databases/tdefile_palm.h2
-rw-r--r--tdefile-plugins/rfc822/tdefile_rfc822.desktop57
-rw-r--r--tdefile-plugins/rfc822/tdefile_rfc822.h2
-rw-r--r--tdefile-plugins/vcf/CMakeLists.txt6
-rw-r--r--tdefile-plugins/vcf/tdefile_vcf.desktop60
-rw-r--r--tdefile-plugins/vcf/tdefile_vcf.h2
-rw-r--r--tdeioslave/CMakeL10n.txt6
-rw-r--r--tdeioslave/imap4/CMakeLists.txt14
-rw-r--r--tdeioslave/imap4/Makefile.am8
-rw-r--r--tdeioslave/imap4/imap4.cc2746
-rw-r--r--tdeioslave/imap4/imap4.cpp2746
-rw-r--r--tdeioslave/imap4/imapcommand.cc408
-rw-r--r--tdeioslave/imap4/imapcommand.cpp408
-rw-r--r--tdeioslave/imap4/imapinfo.cc239
-rw-r--r--tdeioslave/imap4/imapinfo.cpp239
-rw-r--r--tdeioslave/imap4/imaplist.cc135
-rw-r--r--tdeioslave/imap4/imaplist.cpp135
-rw-r--r--tdeioslave/imap4/imapparser.cc2094
-rw-r--r--tdeioslave/imap4/imapparser.cpp2094
-rw-r--r--tdeioslave/imap4/mailaddress.cc324
-rw-r--r--tdeioslave/imap4/mailaddress.cpp324
-rw-r--r--tdeioslave/imap4/mailheader.cc203
-rw-r--r--tdeioslave/imap4/mailheader.cpp203
-rw-r--r--tdeioslave/imap4/mimehdrline.cc521
-rw-r--r--tdeioslave/imap4/mimehdrline.cpp521
-rw-r--r--tdeioslave/imap4/mimeheader.cc745
-rw-r--r--tdeioslave/imap4/mimeheader.cpp745
-rw-r--r--tdeioslave/imap4/mimeio.cc188
-rw-r--r--tdeioslave/imap4/mimeio.cpp188
-rw-r--r--tdeioslave/imap4/rfcdecoder.cc668
-rw-r--r--tdeioslave/imap4/rfcdecoder.cpp668
-rw-r--r--tdeioslave/mbox/CMakeLists.txt8
-rw-r--r--tdeioslave/mbox/Makefile.am10
-rw-r--r--tdeioslave/mbox/mbox.cc168
-rw-r--r--tdeioslave/mbox/mbox.cpp168
-rw-r--r--tdeioslave/mbox/mboxfile.cpp (renamed from tdeioslave/mbox/mboxfile.cc)0
-rw-r--r--tdeioslave/mbox/readmbox.cpp (renamed from tdeioslave/mbox/readmbox.cc)0
-rw-r--r--tdeioslave/mbox/stat.cpp (renamed from tdeioslave/mbox/stat.cc)0
-rw-r--r--tdeioslave/mbox/urlinfo.cpp (renamed from tdeioslave/mbox/urlinfo.cc)0
-rw-r--r--tdeioslave/opengroupware/opengroupware.cpp6
-rw-r--r--tdeioslave/opengroupware/opengroupware.h2
-rw-r--r--tdeioslave/sieve/CMakeLists.txt6
-rw-r--r--tdeioslave/sieve/sieve.cpp2
-rw-r--r--tdeioslave/sieve/sieve.protocol41
-rw-r--r--tderesources/CMakeL10n.txt6
-rw-r--r--tderesources/birthdays/CMakeLists.txt6
-rw-r--r--tderesources/birthdays/resourcetdeabc.cpp8
-rw-r--r--tderesources/birthdays/resourcetdeabc.h4
-rw-r--r--tderesources/birthdays/resourcetdeabcconfig.cpp6
-rw-r--r--tderesources/birthdays/resourcetdeabcconfig.h2
-rw-r--r--tderesources/birthdays/tdeabc.desktop55
-rw-r--r--tderesources/blogging/API_Blog.h2
-rw-r--r--tderesources/blogging/blogging.desktop43
-rw-r--r--tderesources/blogging/bloggingcalendaradaptor.cpp16
-rw-r--r--tderesources/blogging/bloggingcalendaradaptor.h2
-rw-r--r--tderesources/blogging/kcal_resourceblogging.h4
-rw-r--r--tderesources/blogging/kcal_resourcebloggingconfig.h4
-rw-r--r--tderesources/blogging/resourcebloggingsettings.ui19
-rw-r--r--tderesources/blogging/xmlrpcjob.h3
-rw-r--r--tderesources/caldav/CMakeLists.txt8
-rw-r--r--tderesources/caldav/config.cpp8
-rw-r--r--tderesources/caldav/config.h2
-rw-r--r--tderesources/caldav/configwidgets.cpp12
-rw-r--r--tderesources/caldav/configwidgets.h4
-rw-r--r--tderesources/caldav/kcal_caldav.desktop46
-rw-r--r--tderesources/caldav/resource.cpp10
-rw-r--r--tderesources/caldav/resource.h4
-rw-r--r--tderesources/carddav/CMakeLists.txt8
-rw-r--r--tderesources/carddav/config.h2
-rw-r--r--tderesources/carddav/configwidgets.cpp12
-rw-r--r--tderesources/carddav/configwidgets.h4
-rw-r--r--tderesources/carddav/resource.cpp8
-rw-r--r--tderesources/carddav/resource.h4
-rw-r--r--tderesources/carddav/tdeabc_carddav.desktop46
-rw-r--r--tderesources/egroupware/CMakeLists.txt20
-rw-r--r--tderesources/egroupware/debugdialog.h2
-rw-r--r--tderesources/egroupware/kcal_resourcexmlrpc.cpp56
-rw-r--r--tderesources/egroupware/kcal_resourcexmlrpc.h4
-rw-r--r--tderesources/egroupware/kcal_resourcexmlrpcconfig.h4
-rw-r--r--tderesources/egroupware/kcal_xmlrpc.desktop44
-rw-r--r--tderesources/egroupware/knotes_resourcexmlrpc.cpp20
-rw-r--r--tderesources/egroupware/knotes_resourcexmlrpc.h4
-rw-r--r--tderesources/egroupware/knotes_resourcexmlrpcconfig.h4
-rw-r--r--tderesources/egroupware/knotes_xmlrpc.desktop44
-rw-r--r--tderesources/egroupware/synchronizer.h4
-rw-r--r--tderesources/egroupware/tdeabc_resourcexmlrpc.cpp32
-rw-r--r--tderesources/egroupware/tdeabc_resourcexmlrpc.h4
-rw-r--r--tderesources/egroupware/tdeabc_resourcexmlrpcconfig.h4
-rw-r--r--tderesources/egroupware/tdeabc_xmlrpc.desktop44
-rw-r--r--tderesources/egroupware/xmlrpciface.cpp18
-rw-r--r--tderesources/egroupware/xmlrpciface.h4
-rw-r--r--tderesources/exchange/CMakeLists.txt6
-rw-r--r--tderesources/exchange/exchange.desktop49
-rw-r--r--tderesources/exchange/exchange_deprecated.desktop46
-rw-r--r--tderesources/exchange/resourceexchange.cpp12
-rw-r--r--tderesources/exchange/resourceexchange.h2
-rw-r--r--tderesources/exchange/resourceexchangeconfig.cpp6
-rw-r--r--tderesources/exchange/resourceexchangeconfig.h2
-rw-r--r--tderesources/featureplan/CMakeLists.txt8
-rw-r--r--tderesources/featureplan/kcal_resourcefeatureplan.desktop35
-rw-r--r--tderesources/featureplan/kcal_resourcefeatureplan.h4
-rw-r--r--tderesources/featureplan/kcal_resourcefeatureplanconfig.h4
-rw-r--r--tderesources/groupdav/CMakeLists.txt15
-rw-r--r--tderesources/groupdav/kcal_groupdav.desktop46
-rw-r--r--tderesources/groupdav/kcal_resourcegroupdav.h2
-rw-r--r--tderesources/groupdav/tdeabc_groupdav.desktop46
-rw-r--r--tderesources/groupdav/tdeabc_resourcegroupdav.h4
-rw-r--r--tderesources/groupware/kcal_groupware.desktop43
-rw-r--r--tderesources/groupware/kcal_resourcegroupware.cpp12
-rw-r--r--tderesources/groupware/kcal_resourcegroupware.h2
-rw-r--r--tderesources/groupware/kcal_resourcegroupwareconfig.h2
-rw-r--r--tderesources/groupware/tdeabc_groupware.desktop43
-rw-r--r--tderesources/groupware/tdeabc_resourcegroupware.cpp16
-rw-r--r--tderesources/groupware/tdeabc_resourcegroupware.h2
-rw-r--r--tderesources/groupware/tdeabc_resourcegroupwareconfig.cpp2
-rw-r--r--tderesources/groupware/tdeabc_resourcegroupwareconfig.h2
-rw-r--r--tderesources/groupwise/CMakeLists.txt13
-rw-r--r--tderesources/groupwise/groupwisesettingswidget.cpp4
-rw-r--r--tderesources/groupwise/groupwisesettingswidget.h2
-rw-r--r--tderesources/groupwise/kcal_groupwise.desktop44
-rw-r--r--tderesources/groupwise/kcal_resourcegroupwise.cpp12
-rw-r--r--tderesources/groupwise/kcal_resourcegroupwise.h4
-rw-r--r--tderesources/groupwise/kcal_resourcegroupwiseconfig.cpp4
-rw-r--r--tderesources/groupwise/kcal_resourcegroupwiseconfig.h4
-rw-r--r--tderesources/groupwise/soap/groupwiseserver.cpp2
-rw-r--r--tderesources/groupwise/soap/groupwiseserver.h2
-rw-r--r--tderesources/groupwise/soap/gwconverter.cpp12
-rw-r--r--tderesources/groupwise/soap/incidenceconverter.cpp6
-rw-r--r--tderesources/groupwise/soap/ksslsocket.cpp8
-rw-r--r--tderesources/groupwise/soap/ksslsocket.h2
-rw-r--r--tderesources/groupwise/soap/stdsoap2.cpp3
-rw-r--r--tderesources/groupwise/soap/stdsoap2.h31
-rw-r--r--tderesources/groupwise/tdeabc_groupwise.desktop44
-rw-r--r--tderesources/groupwise/tdeabc_resourcegroupwise.cpp32
-rw-r--r--tderesources/groupwise/tdeabc_resourcegroupwise.h6
-rw-r--r--tderesources/groupwise/tdeabc_resourcegroupwiseconfig.cpp2
-rw-r--r--tderesources/groupwise/tdeabc_resourcegroupwiseconfig.h4
-rw-r--r--tderesources/groupwise/tdeioslave/CMakeLists.txt8
-rw-r--r--tderesources/groupwise/tdeioslave/groupwise.cpp26
-rw-r--r--tderesources/groupwise/tdeioslave/groupwise.h2
-rw-r--r--tderesources/kolab/kcal/CMakeLists.txt8
-rw-r--r--tderesources/kolab/kcal/kolab.desktop46
-rw-r--r--tderesources/kolab/kcal/resourcekolab.cpp10
-rw-r--r--tderesources/kolab/kcal/resourcekolab.h4
-rw-r--r--tderesources/kolab/knotes/CMakeLists.txt8
-rw-r--r--tderesources/kolab/knotes/kolabresource.desktop46
-rw-r--r--tderesources/kolab/knotes/resourcekolab.h4
-rw-r--r--tderesources/kolab/shared/kmailconnection.cpp4
-rw-r--r--tderesources/kolab/shared/kmailconnection.h2
-rw-r--r--tderesources/kolab/shared/kolabbase.cpp10
-rw-r--r--tderesources/kolab/tdeabc/CMakeLists.txt8
-rw-r--r--tderesources/kolab/tdeabc/contact.cpp1
-rw-r--r--tderesources/kolab/tdeabc/kolab.desktop46
-rw-r--r--tderesources/kolab/tdeabc/resourcekolab.h4
-rw-r--r--tderesources/lib/addressbookadaptor.h2
-rw-r--r--tderesources/lib/calendaradaptor.h4
-rw-r--r--tderesources/lib/davaddressbookadaptor.h2
-rw-r--r--tderesources/lib/davcalendaradaptor.h2
-rw-r--r--tderesources/lib/folderconfig.cpp6
-rw-r--r--tderesources/lib/folderconfig.h4
-rw-r--r--tderesources/lib/folderlister.cpp12
-rw-r--r--tderesources/lib/folderlister.h4
-rw-r--r--tderesources/lib/folderlistview.cpp27
-rw-r--r--tderesources/lib/folderlistview.h4
-rw-r--r--tderesources/lib/folderselectdialog.cpp8
-rw-r--r--tderesources/lib/groupwaredataadaptor.h4
-rw-r--r--tderesources/lib/groupwaredownloadjob.cpp36
-rw-r--r--tderesources/lib/groupwaredownloadjob.h2
-rw-r--r--tderesources/lib/groupwareresourcejob.cpp2
-rw-r--r--tderesources/lib/groupwareresourcejob.h2
-rw-r--r--tderesources/lib/groupwareuploadjob.cpp62
-rw-r--r--tderesources/lib/groupwareuploadjob.h2
-rw-r--r--tderesources/lib/kcal_cachesettingsdlg.h4
-rw-r--r--tderesources/lib/kcal_resourcegroupwarebase.cpp22
-rw-r--r--tderesources/lib/kcal_resourcegroupwarebase.h4
-rw-r--r--tderesources/lib/kcal_resourcegroupwarebaseconfig.cpp8
-rw-r--r--tderesources/lib/kcal_resourcegroupwarebaseconfig.h4
-rw-r--r--tderesources/lib/tdeabc_resourcegroupwarebase.cpp8
-rw-r--r--tderesources/lib/tdeabc_resourcegroupwarebase.h4
-rw-r--r--tderesources/lib/tdeabc_resourcegroupwarebaseconfig.cpp4
-rw-r--r--tderesources/lib/tdeabc_resourcegroupwarebaseconfig.h4
-rw-r--r--tderesources/lib/webdavhandler.cpp2
-rw-r--r--tderesources/lib/webdavhandler.h2
-rw-r--r--tderesources/newexchange/CMakeLists.txt13
-rw-r--r--tderesources/newexchange/exchangecalendaradaptor.cpp2
-rw-r--r--tderesources/newexchange/exchangeconvertercalendar.cpp16
-rw-r--r--tderesources/newexchange/exchangeconvertercontact.cpp1
-rw-r--r--tderesources/newexchange/kcal_newexchange.desktop45
-rw-r--r--tderesources/newexchange/kcal_newexchange_final.desktop46
-rw-r--r--tderesources/newexchange/kcal_resourceexchange.h2
-rw-r--r--tderesources/newexchange/tdeabc_newexchange.desktop45
-rw-r--r--tderesources/newexchange/tdeabc_newexchange_final.desktop46
-rw-r--r--tderesources/newexchange/tdeabc_resourceexchange.h2
-rw-r--r--tderesources/remote/CMakeLists.txt8
-rw-r--r--tderesources/remote/remote.desktop51
-rw-r--r--tderesources/remote/resourceremote.cpp12
-rw-r--r--tderesources/remote/resourceremote.h4
-rw-r--r--tderesources/remote/resourceremoteconfig.h4
-rw-r--r--tderesources/scalix/kcal/CMakeLists.txt8
-rw-r--r--tderesources/scalix/kcal/resourcescalix.cpp6
-rw-r--r--tderesources/scalix/kcal/resourcescalix.h4
-rw-r--r--tderesources/scalix/kcal/scalix.desktop25
-rw-r--r--tderesources/scalix/knotes/CMakeLists.txt15
-rw-r--r--tderesources/scalix/knotes/resourcescalix.h4
-rw-r--r--tderesources/scalix/knotes/scalix.desktop24
-rw-r--r--tderesources/scalix/scalixadmin/delegatedialog.cpp2
-rw-r--r--tderesources/scalix/scalixadmin/delegatedialog.h2
-rw-r--r--tderesources/scalix/scalixadmin/delegatemanager.h2
-rw-r--r--tderesources/scalix/scalixadmin/delegatepage.cpp16
-rw-r--r--tderesources/scalix/scalixadmin/delegatepage.h2
-rw-r--r--tderesources/scalix/scalixadmin/delegateview.cpp2
-rw-r--r--tderesources/scalix/scalixadmin/delegateview.h2
-rw-r--r--tderesources/scalix/scalixadmin/jobs.cpp12
-rw-r--r--tderesources/scalix/scalixadmin/jobs.h6
-rw-r--r--tderesources/scalix/scalixadmin/ldapview.cpp8
-rw-r--r--tderesources/scalix/scalixadmin/ldapview.h2
-rw-r--r--tderesources/scalix/scalixadmin/otherusermanager.h2
-rw-r--r--tderesources/scalix/scalixadmin/otheruserpage.cpp12
-rw-r--r--tderesources/scalix/scalixadmin/otheruserpage.h2
-rw-r--r--tderesources/scalix/scalixadmin/otheruserview.cpp2
-rw-r--r--tderesources/scalix/scalixadmin/otheruserview.h2
-rw-r--r--tderesources/scalix/scalixadmin/outofofficepage.cpp14
-rw-r--r--tderesources/scalix/scalixadmin/outofofficepage.h2
-rw-r--r--tderesources/scalix/scalixadmin/passwordpage.cpp8
-rw-r--r--tderesources/scalix/scalixadmin/passwordpage.h2
-rw-r--r--tderesources/scalix/shared/kmailconnection.cpp4
-rw-r--r--tderesources/scalix/shared/kmailconnection.h2
-rw-r--r--tderesources/scalix/shared/scalixbase.cpp8
-rw-r--r--tderesources/scalix/tdeabc/CMakeLists.txt8
-rw-r--r--tderesources/scalix/tdeabc/contact.cpp8
-rw-r--r--tderesources/scalix/tdeabc/resourcescalix.h4
-rw-r--r--tderesources/scalix/tdeabc/scalix.desktop24
-rw-r--r--tderesources/scalix/tdeioslave/CMakeLists.txt8
-rw-r--r--tderesources/scalix/tdeioslave/scalix.cpp14
-rw-r--r--tderesources/scalix/tdeioslave/scalix.h2
-rw-r--r--tderesources/slox/CMakeLists.txt13
-rw-r--r--tderesources/slox/kcal_ox.desktop40
-rw-r--r--tderesources/slox/kcal_slox.desktop45
-rw-r--r--tderesources/slox/kcalresourceslox.cpp36
-rw-r--r--tderesources/slox/kcalresourceslox.h4
-rw-r--r--tderesources/slox/kcalresourcesloxconfig.cpp4
-rw-r--r--tderesources/slox/kcalresourcesloxconfig.h4
-rw-r--r--tderesources/slox/sloxaccounts.cpp4
-rw-r--r--tderesources/slox/sloxaccounts.h4
-rw-r--r--tderesources/slox/sloxbase.h2
-rw-r--r--tderesources/slox/sloxfolder.h2
-rw-r--r--tderesources/slox/sloxfolderdialog.cpp2
-rw-r--r--tderesources/slox/sloxfolderdialog.h2
-rw-r--r--tderesources/slox/sloxfoldermanager.cpp4
-rw-r--r--tderesources/slox/sloxfoldermanager.h4
-rw-r--r--tderesources/slox/tdeabc_ox.desktop40
-rw-r--r--tderesources/slox/tdeabc_slox.desktop45
-rw-r--r--tderesources/slox/tdeabcresourceslox.cpp29
-rw-r--r--tderesources/slox/tdeabcresourceslox.h4
-rw-r--r--tderesources/slox/tdeabcresourcesloxconfig.cpp2
-rw-r--r--tderesources/slox/tdeabcresourcesloxconfig.h4
-rw-r--r--tderesources/slox/testsloxaccounts.cpp2
-rw-r--r--tderesources/slox/webdavhandler.cpp4
-rw-r--r--tderesources/slox/webdavhandler.h2
-rw-r--r--tderesources/tvanytime/kcal_resourcetvanytime.cpp12
-rw-r--r--tderesources/tvanytime/kcal_resourcetvanytime.h4
-rw-r--r--tderesources/tvanytime/kcal_resourcetvanytimeconfig.h4
-rw-r--r--tderesources/tvanytime/kcal_tvanytime.desktop45
-rw-r--r--tderesources/tvanytime/tvanytime.tdevelop2
-rw-r--r--translations/desktop_files/KOrn.desktop/KOrn.desktop.pot27
-rw-r--r--translations/desktop_files/KOrn.desktop/af.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/ar.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/bg.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/bs.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/ca.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/cs.po28
-rw-r--r--translations/desktop_files/KOrn.desktop/cy.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/da.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/de.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/el.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/eo.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/es.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/et.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/eu.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/fa.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/fi.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/fr.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/fy.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/ga.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/gl.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/hi.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/hr.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/hu.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/is.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/it.po28
-rw-r--r--translations/desktop_files/KOrn.desktop/ja.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/kk.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/km.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/lt.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/lv.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/mk.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/ms.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/mt.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/nb.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/nds.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/ne.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/nl.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/nn.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/pl.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/pt.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/pt_BR.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/ro.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/ru.po29
-rw-r--r--translations/desktop_files/KOrn.desktop/rw.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/sk.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/sl.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/sr.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/sr@Latn.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/sv.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/ta.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/tg.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/th.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/tr.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/uk.po29
-rw-r--r--translations/desktop_files/KOrn.desktop/uz.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/ven.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/xh.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/zh_CN.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/zh_TW.po27
-rw-r--r--translations/desktop_files/KOrn.desktop/zu.po27
-rw-r--r--translations/desktop_files/akregator-desktops/af.po48
-rw-r--r--translations/desktop_files/akregator-desktops/akregator-desktops.pot47
-rw-r--r--translations/desktop_files/akregator-desktops/be.po48
-rw-r--r--translations/desktop_files/akregator-desktops/bg.po48
-rw-r--r--translations/desktop_files/akregator-desktops/br.po48
-rw-r--r--translations/desktop_files/akregator-desktops/ca.po48
-rw-r--r--translations/desktop_files/akregator-desktops/cs.po48
-rw-r--r--translations/desktop_files/akregator-desktops/da.po48
-rw-r--r--translations/desktop_files/akregator-desktops/de.po48
-rw-r--r--translations/desktop_files/akregator-desktops/el.po48
-rw-r--r--translations/desktop_files/akregator-desktops/eo.po48
-rw-r--r--translations/desktop_files/akregator-desktops/es.po48
-rw-r--r--translations/desktop_files/akregator-desktops/et.po48
-rw-r--r--translations/desktop_files/akregator-desktops/eu.po48
-rw-r--r--translations/desktop_files/akregator-desktops/fa.po48
-rw-r--r--translations/desktop_files/akregator-desktops/fi.po48
-rw-r--r--translations/desktop_files/akregator-desktops/fr.po48
-rw-r--r--translations/desktop_files/akregator-desktops/fy.po48
-rw-r--r--translations/desktop_files/akregator-desktops/ga.po48
-rw-r--r--translations/desktop_files/akregator-desktops/gl.po48
-rw-r--r--translations/desktop_files/akregator-desktops/he.po48
-rw-r--r--translations/desktop_files/akregator-desktops/hu.po48
-rw-r--r--translations/desktop_files/akregator-desktops/is.po48
-rw-r--r--translations/desktop_files/akregator-desktops/it.po48
-rw-r--r--translations/desktop_files/akregator-desktops/ja.po48
-rw-r--r--translations/desktop_files/akregator-desktops/kk.po48
-rw-r--r--translations/desktop_files/akregator-desktops/km.po48
-rw-r--r--translations/desktop_files/akregator-desktops/ko.po48
-rw-r--r--translations/desktop_files/akregator-desktops/lt.po48
-rw-r--r--translations/desktop_files/akregator-desktops/mk.po48
-rw-r--r--translations/desktop_files/akregator-desktops/ms.po48
-rw-r--r--translations/desktop_files/akregator-desktops/nb.po48
-rw-r--r--translations/desktop_files/akregator-desktops/nds.po48
-rw-r--r--translations/desktop_files/akregator-desktops/ne.po48
-rw-r--r--translations/desktop_files/akregator-desktops/nl.po48
-rw-r--r--translations/desktop_files/akregator-desktops/nn.po48
-rw-r--r--translations/desktop_files/akregator-desktops/pa.po47
-rw-r--r--translations/desktop_files/akregator-desktops/pl.po49
-rw-r--r--translations/desktop_files/akregator-desktops/pt.po48
-rw-r--r--translations/desktop_files/akregator-desktops/pt_BR.po48
-rw-r--r--translations/desktop_files/akregator-desktops/ru.po49
-rw-r--r--translations/desktop_files/akregator-desktops/se.po48
-rw-r--r--translations/desktop_files/akregator-desktops/sk.po48
-rw-r--r--translations/desktop_files/akregator-desktops/sl.po48
-rw-r--r--translations/desktop_files/akregator-desktops/sr.po48
-rw-r--r--translations/desktop_files/akregator-desktops/sr@Latn.po48
-rw-r--r--translations/desktop_files/akregator-desktops/sv.po48
-rw-r--r--translations/desktop_files/akregator-desktops/ta.po48
-rw-r--r--translations/desktop_files/akregator-desktops/tr.po48
-rw-r--r--translations/desktop_files/akregator-desktops/uk.po49
-rw-r--r--translations/desktop_files/akregator-desktops/uz.po48
-rw-r--r--translations/desktop_files/akregator-desktops/zh_CN.po48
-rw-r--r--translations/desktop_files/akregator-desktops/zh_TW.po48
-rw-r--r--translations/desktop_files/akregator-eventsrc/af.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/akregator-eventsrc.pot42
-rw-r--r--translations/desktop_files/akregator-eventsrc/ar.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/be.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/bg.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/br.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/ca.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/cs.po43
-rw-r--r--translations/desktop_files/akregator-eventsrc/da.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/de.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/el.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/eo.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/es.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/et.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/eu.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/fa.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/fi.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/fr.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/fy.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/ga.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/gl.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/he.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/hu.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/is.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/it.po43
-rw-r--r--translations/desktop_files/akregator-eventsrc/ja.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/kk.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/km.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/ko.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/lt.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/mk.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/ms.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/nb.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/nds.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/ne.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/nl.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/nn.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/pl.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/pt.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/pt_BR.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/ru.po44
-rw-r--r--translations/desktop_files/akregator-eventsrc/se.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/sk.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/sl.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/sr.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/sr@Latn.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/sv.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/ta.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/tr.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/uk.po44
-rw-r--r--translations/desktop_files/akregator-eventsrc/uz.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/zh_CN.po42
-rw-r--r--translations/desktop_files/akregator-eventsrc/zh_TW.po42
-rw-r--r--translations/desktop_files/certmanager-desktops/af.po103
-rw-r--r--translations/desktop_files/certmanager-desktops/ar.po103
-rw-r--r--translations/desktop_files/certmanager-desktops/be.po103
-rw-r--r--translations/desktop_files/certmanager-desktops/bg.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/br.po104
-rw-r--r--translations/desktop_files/certmanager-desktops/bs.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/ca.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/ca@valencia.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/certmanager-desktops.pot102
-rw-r--r--translations/desktop_files/certmanager-desktops/cs.po103
-rw-r--r--translations/desktop_files/certmanager-desktops/cy.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/da.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/de.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/el.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/en_GB.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/eo.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/es.po103
-rw-r--r--translations/desktop_files/certmanager-desktops/et.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/eu.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/fa.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/fi.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/fr.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/fy.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/ga.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/gl.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/he.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/hr.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/hu.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/ia.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/is.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/it.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/ja.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/ka.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/kk.po104
-rw-r--r--translations/desktop_files/certmanager-desktops/km.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/ko.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/lt.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/lv.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/mk.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/mr.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/ms.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/nb.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/nds.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/ne.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/nl.po103
-rw-r--r--translations/desktop_files/certmanager-desktops/nn.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/oc.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/pa.po103
-rw-r--r--translations/desktop_files/certmanager-desktops/pl.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/pt.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/pt_BR.po103
-rw-r--r--translations/desktop_files/certmanager-desktops/ro.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/ru.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/rw.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/se.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/sk.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/sl.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/sr.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/sr@Latn.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/sr@ijekavian.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/sr@ijekavianlatin.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/sr@latin.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/sv.po103
-rw-r--r--translations/desktop_files/certmanager-desktops/ta.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/tg.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/tr.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/ug.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/uk.po104
-rw-r--r--translations/desktop_files/certmanager-desktops/uz.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/uz@cyrillic.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/wa.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/zh_CN.po102
-rw-r--r--translations/desktop_files/certmanager-desktops/zh_TW.po104
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/af.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/ar.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/bg.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/br.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/ca.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/cs.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/da.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/de.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/el.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/es.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/et.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/eu.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/fa.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/fi.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/fr.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/fy.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/ga.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/gl.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/groupwarewizard.desktop.pot22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/hu.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/is.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/it.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/ja.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/kk.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/km.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/ko.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/lt.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/nb.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/nds.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/ne.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/nl.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/nn.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/pl.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/pt.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/pt_BR.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/ru.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/sk.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/sl.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/sr.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/sr@Latn.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/sv.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/tr.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/uk.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/zh_CN.po22
-rw-r--r--translations/desktop_files/groupwarewizard.desktop/zh_TW.po22
-rw-r--r--translations/desktop_files/kaddressbook-desktops/af.po383
-rw-r--r--translations/desktop_files/kaddressbook-desktops/ar.po384
-rw-r--r--translations/desktop_files/kaddressbook-desktops/az.po375
-rw-r--r--translations/desktop_files/kaddressbook-desktops/be.po392
-rw-r--r--translations/desktop_files/kaddressbook-desktops/bg.po391
-rw-r--r--translations/desktop_files/kaddressbook-desktops/br.po389
-rw-r--r--translations/desktop_files/kaddressbook-desktops/bs.po388
-rw-r--r--translations/desktop_files/kaddressbook-desktops/ca.po385
-rw-r--r--translations/desktop_files/kaddressbook-desktops/cs.po376
-rw-r--r--translations/desktop_files/kaddressbook-desktops/cy.po383
-rw-r--r--translations/desktop_files/kaddressbook-desktops/da.po382
-rw-r--r--translations/desktop_files/kaddressbook-desktops/de.po381
-rw-r--r--translations/desktop_files/kaddressbook-desktops/el.po383
-rw-r--r--translations/desktop_files/kaddressbook-desktops/eo.po385
-rw-r--r--translations/desktop_files/kaddressbook-desktops/es.po387
-rw-r--r--translations/desktop_files/kaddressbook-desktops/et.po380
-rw-r--r--translations/desktop_files/kaddressbook-desktops/eu.po380
-rw-r--r--translations/desktop_files/kaddressbook-desktops/fa.po379
-rw-r--r--translations/desktop_files/kaddressbook-desktops/fi.po383
-rw-r--r--translations/desktop_files/kaddressbook-desktops/fo.po377
-rw-r--r--translations/desktop_files/kaddressbook-desktops/fr.po389
-rw-r--r--translations/desktop_files/kaddressbook-desktops/fy.po394
-rw-r--r--translations/desktop_files/kaddressbook-desktops/ga.po382
-rw-r--r--translations/desktop_files/kaddressbook-desktops/gl.po384
-rw-r--r--translations/desktop_files/kaddressbook-desktops/he.po382
-rw-r--r--translations/desktop_files/kaddressbook-desktops/hi.po383
-rw-r--r--translations/desktop_files/kaddressbook-desktops/hr.po377
-rw-r--r--translations/desktop_files/kaddressbook-desktops/hu.po382
-rw-r--r--translations/desktop_files/kaddressbook-desktops/id.po375
-rw-r--r--translations/desktop_files/kaddressbook-desktops/is.po383
-rw-r--r--translations/desktop_files/kaddressbook-desktops/it.po378
-rw-r--r--translations/desktop_files/kaddressbook-desktops/ja.po381
-rw-r--r--translations/desktop_files/kaddressbook-desktops/kaddressbook-desktops.pot375
-rw-r--r--translations/desktop_files/kaddressbook-desktops/kk.po380
-rw-r--r--translations/desktop_files/kaddressbook-desktops/km.po380
-rw-r--r--translations/desktop_files/kaddressbook-desktops/ko.po382
-rw-r--r--translations/desktop_files/kaddressbook-desktops/lt.po387
-rw-r--r--translations/desktop_files/kaddressbook-desktops/lv.po375
-rw-r--r--translations/desktop_files/kaddressbook-desktops/mk.po389
-rw-r--r--translations/desktop_files/kaddressbook-desktops/ms.po385
-rw-r--r--translations/desktop_files/kaddressbook-desktops/mt.po375
-rw-r--r--translations/desktop_files/kaddressbook-desktops/nb.po382
-rw-r--r--translations/desktop_files/kaddressbook-desktops/nds.po379
-rw-r--r--translations/desktop_files/kaddressbook-desktops/ne.po376
-rw-r--r--translations/desktop_files/kaddressbook-desktops/nl.po392
-rw-r--r--translations/desktop_files/kaddressbook-desktops/nn.po383
-rw-r--r--translations/desktop_files/kaddressbook-desktops/nso.po377
-rw-r--r--translations/desktop_files/kaddressbook-desktops/pa.po383
-rw-r--r--translations/desktop_files/kaddressbook-desktops/pl.po380
-rw-r--r--translations/desktop_files/kaddressbook-desktops/pt.po385
-rw-r--r--translations/desktop_files/kaddressbook-desktops/pt_BR.po386
-rw-r--r--translations/desktop_files/kaddressbook-desktops/ro.po388
-rw-r--r--translations/desktop_files/kaddressbook-desktops/ru.po379
-rw-r--r--translations/desktop_files/kaddressbook-desktops/rw.po375
-rw-r--r--translations/desktop_files/kaddressbook-desktops/se.po387
-rw-r--r--translations/desktop_files/kaddressbook-desktops/sk.po382
-rw-r--r--translations/desktop_files/kaddressbook-desktops/sl.po379
-rw-r--r--translations/desktop_files/kaddressbook-desktops/sr.po379
-rw-r--r--translations/desktop_files/kaddressbook-desktops/sr@Latn.po379
-rw-r--r--translations/desktop_files/kaddressbook-desktops/sv.po381
-rw-r--r--translations/desktop_files/kaddressbook-desktops/ta.po381
-rw-r--r--translations/desktop_files/kaddressbook-desktops/tg.po381
-rw-r--r--translations/desktop_files/kaddressbook-desktops/th.po375
-rw-r--r--translations/desktop_files/kaddressbook-desktops/tr.po380
-rw-r--r--translations/desktop_files/kaddressbook-desktops/uk.po380
-rw-r--r--translations/desktop_files/kaddressbook-desktops/uz.po390
-rw-r--r--translations/desktop_files/kaddressbook-desktops/ven.po377
-rw-r--r--translations/desktop_files/kaddressbook-desktops/vi.po375
-rw-r--r--translations/desktop_files/kaddressbook-desktops/xh.po375
-rw-r--r--translations/desktop_files/kaddressbook-desktops/zh_CN.po379
-rw-r--r--translations/desktop_files/kaddressbook-desktops/zh_TW.po381
-rw-r--r--translations/desktop_files/kaddressbook-desktops/zu.po375
-rw-r--r--translations/desktop_files/kalarm-desktops/af.po42
-rw-r--r--translations/desktop_files/kalarm-desktops/bg.po44
-rw-r--r--translations/desktop_files/kalarm-desktops/br.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/bs.po42
-rw-r--r--translations/desktop_files/kalarm-desktops/ca.po45
-rw-r--r--translations/desktop_files/kalarm-desktops/cs.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/cy.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/da.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/de.po44
-rw-r--r--translations/desktop_files/kalarm-desktops/el.po45
-rw-r--r--translations/desktop_files/kalarm-desktops/eo.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/es.po44
-rw-r--r--translations/desktop_files/kalarm-desktops/et.po44
-rw-r--r--translations/desktop_files/kalarm-desktops/eu.po44
-rw-r--r--translations/desktop_files/kalarm-desktops/fa.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/fi.po44
-rw-r--r--translations/desktop_files/kalarm-desktops/fr.po45
-rw-r--r--translations/desktop_files/kalarm-desktops/fy.po42
-rw-r--r--translations/desktop_files/kalarm-desktops/ga.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/gl.po44
-rw-r--r--translations/desktop_files/kalarm-desktops/he.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/hi.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/hu.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/is.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/it.po45
-rw-r--r--translations/desktop_files/kalarm-desktops/ja.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/kalarm-desktops.pot42
-rw-r--r--translations/desktop_files/kalarm-desktops/kk.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/km.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/ko.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/lt.po45
-rw-r--r--translations/desktop_files/kalarm-desktops/mk.po42
-rw-r--r--translations/desktop_files/kalarm-desktops/ms.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/nb.po45
-rw-r--r--translations/desktop_files/kalarm-desktops/nds.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/ne.po42
-rw-r--r--translations/desktop_files/kalarm-desktops/nl.po42
-rw-r--r--translations/desktop_files/kalarm-desktops/nn.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/nso.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/pl.po42
-rw-r--r--translations/desktop_files/kalarm-desktops/pt.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/pt_BR.po44
-rw-r--r--translations/desktop_files/kalarm-desktops/ru.po45
-rw-r--r--translations/desktop_files/kalarm-desktops/sk.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/sl.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/sr.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/sr@Latn.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/sv.po42
-rw-r--r--translations/desktop_files/kalarm-desktops/ta.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/tg.po44
-rw-r--r--translations/desktop_files/kalarm-desktops/th.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/tr.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/uk.po44
-rw-r--r--translations/desktop_files/kalarm-desktops/ven.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/zh_CN.po43
-rw-r--r--translations/desktop_files/kalarm-desktops/zh_TW.po42
-rw-r--r--translations/desktop_files/kandy.desktop/af.po32
-rw-r--r--translations/desktop_files/kandy.desktop/bg.po32
-rw-r--r--translations/desktop_files/kandy.desktop/bs.po32
-rw-r--r--translations/desktop_files/kandy.desktop/ca.po33
-rw-r--r--translations/desktop_files/kandy.desktop/cs.po33
-rw-r--r--translations/desktop_files/kandy.desktop/cy.po32
-rw-r--r--translations/desktop_files/kandy.desktop/da.po32
-rw-r--r--translations/desktop_files/kandy.desktop/de.po32
-rw-r--r--translations/desktop_files/kandy.desktop/el.po32
-rw-r--r--translations/desktop_files/kandy.desktop/eo.po32
-rw-r--r--translations/desktop_files/kandy.desktop/es.po34
-rw-r--r--translations/desktop_files/kandy.desktop/et.po32
-rw-r--r--translations/desktop_files/kandy.desktop/eu.po32
-rw-r--r--translations/desktop_files/kandy.desktop/fa.po32
-rw-r--r--translations/desktop_files/kandy.desktop/fi.po32
-rw-r--r--translations/desktop_files/kandy.desktop/fr.po34
-rw-r--r--translations/desktop_files/kandy.desktop/fy.po32
-rw-r--r--translations/desktop_files/kandy.desktop/gl.po34
-rw-r--r--translations/desktop_files/kandy.desktop/he.po32
-rw-r--r--translations/desktop_files/kandy.desktop/hi.po32
-rw-r--r--translations/desktop_files/kandy.desktop/hr.po32
-rw-r--r--translations/desktop_files/kandy.desktop/hu.po33
-rw-r--r--translations/desktop_files/kandy.desktop/is.po32
-rw-r--r--translations/desktop_files/kandy.desktop/it.po35
-rw-r--r--translations/desktop_files/kandy.desktop/ja.po32
-rw-r--r--translations/desktop_files/kandy.desktop/kandy.desktop.pot32
-rw-r--r--translations/desktop_files/kandy.desktop/kk.po32
-rw-r--r--translations/desktop_files/kandy.desktop/km.po32
-rw-r--r--translations/desktop_files/kandy.desktop/lt.po32
-rw-r--r--translations/desktop_files/kandy.desktop/lv.po32
-rw-r--r--translations/desktop_files/kandy.desktop/mk.po32
-rw-r--r--translations/desktop_files/kandy.desktop/ms.po32
-rw-r--r--translations/desktop_files/kandy.desktop/nb.po32
-rw-r--r--translations/desktop_files/kandy.desktop/nds.po32
-rw-r--r--translations/desktop_files/kandy.desktop/ne.po32
-rw-r--r--translations/desktop_files/kandy.desktop/nl.po33
-rw-r--r--translations/desktop_files/kandy.desktop/nn.po32
-rw-r--r--translations/desktop_files/kandy.desktop/nso.po32
-rw-r--r--translations/desktop_files/kandy.desktop/pl.po32
-rw-r--r--translations/desktop_files/kandy.desktop/pt.po32
-rw-r--r--translations/desktop_files/kandy.desktop/pt_BR.po34
-rw-r--r--translations/desktop_files/kandy.desktop/ro.po32
-rw-r--r--translations/desktop_files/kandy.desktop/ru.po34
-rw-r--r--translations/desktop_files/kandy.desktop/se.po32
-rw-r--r--translations/desktop_files/kandy.desktop/sk.po32
-rw-r--r--translations/desktop_files/kandy.desktop/sl.po32
-rw-r--r--translations/desktop_files/kandy.desktop/sr.po32
-rw-r--r--translations/desktop_files/kandy.desktop/sr@Latn.po32
-rw-r--r--translations/desktop_files/kandy.desktop/sv.po32
-rw-r--r--translations/desktop_files/kandy.desktop/ta.po32
-rw-r--r--translations/desktop_files/kandy.desktop/tg.po32
-rw-r--r--translations/desktop_files/kandy.desktop/th.po32
-rw-r--r--translations/desktop_files/kandy.desktop/tr.po32
-rw-r--r--translations/desktop_files/kandy.desktop/uk.po35
-rw-r--r--translations/desktop_files/kandy.desktop/uz.po32
-rw-r--r--translations/desktop_files/kandy.desktop/ven.po32
-rw-r--r--translations/desktop_files/kandy.desktop/vi.po32
-rw-r--r--translations/desktop_files/kandy.desktop/xh.po32
-rw-r--r--translations/desktop_files/kandy.desktop/zh_CN.po32
-rw-r--r--translations/desktop_files/kandy.desktop/zh_TW.po32
-rw-r--r--translations/desktop_files/kandy.desktop/zu.po32
-rw-r--r--translations/desktop_files/karm-desktops/af.po32
-rw-r--r--translations/desktop_files/karm-desktops/az.po32
-rw-r--r--translations/desktop_files/karm-desktops/bg.po32
-rw-r--r--translations/desktop_files/karm-desktops/br.po32
-rw-r--r--translations/desktop_files/karm-desktops/bs.po32
-rw-r--r--translations/desktop_files/karm-desktops/ca.po32
-rw-r--r--translations/desktop_files/karm-desktops/cs.po33
-rw-r--r--translations/desktop_files/karm-desktops/cy.po32
-rw-r--r--translations/desktop_files/karm-desktops/da.po32
-rw-r--r--translations/desktop_files/karm-desktops/de.po32
-rw-r--r--translations/desktop_files/karm-desktops/el.po32
-rw-r--r--translations/desktop_files/karm-desktops/eo.po32
-rw-r--r--translations/desktop_files/karm-desktops/es.po32
-rw-r--r--translations/desktop_files/karm-desktops/et.po32
-rw-r--r--translations/desktop_files/karm-desktops/eu.po32
-rw-r--r--translations/desktop_files/karm-desktops/fa.po32
-rw-r--r--translations/desktop_files/karm-desktops/fi.po32
-rw-r--r--translations/desktop_files/karm-desktops/fr.po32
-rw-r--r--translations/desktop_files/karm-desktops/fy.po32
-rw-r--r--translations/desktop_files/karm-desktops/gl.po32
-rw-r--r--translations/desktop_files/karm-desktops/he.po32
-rw-r--r--translations/desktop_files/karm-desktops/hi.po32
-rw-r--r--translations/desktop_files/karm-desktops/hr.po32
-rw-r--r--translations/desktop_files/karm-desktops/hu.po32
-rw-r--r--translations/desktop_files/karm-desktops/id.po32
-rw-r--r--translations/desktop_files/karm-desktops/is.po32
-rw-r--r--translations/desktop_files/karm-desktops/it.po33
-rw-r--r--translations/desktop_files/karm-desktops/karm-desktops.pot32
-rw-r--r--translations/desktop_files/karm-desktops/kk.po32
-rw-r--r--translations/desktop_files/karm-desktops/km.po32
-rw-r--r--translations/desktop_files/karm-desktops/ko.po32
-rw-r--r--translations/desktop_files/karm-desktops/lt.po32
-rw-r--r--translations/desktop_files/karm-desktops/lv.po32
-rw-r--r--translations/desktop_files/karm-desktops/mk.po32
-rw-r--r--translations/desktop_files/karm-desktops/ms.po32
-rw-r--r--translations/desktop_files/karm-desktops/mt.po32
-rw-r--r--translations/desktop_files/karm-desktops/nb.po32
-rw-r--r--translations/desktop_files/karm-desktops/nds.po32
-rw-r--r--translations/desktop_files/karm-desktops/ne.po32
-rw-r--r--translations/desktop_files/karm-desktops/nl.po32
-rw-r--r--translations/desktop_files/karm-desktops/nn.po32
-rw-r--r--translations/desktop_files/karm-desktops/nso.po32
-rw-r--r--translations/desktop_files/karm-desktops/pl.po32
-rw-r--r--translations/desktop_files/karm-desktops/pt.po32
-rw-r--r--translations/desktop_files/karm-desktops/pt_BR.po32
-rw-r--r--translations/desktop_files/karm-desktops/ro.po32
-rw-r--r--translations/desktop_files/karm-desktops/ru.po34
-rw-r--r--translations/desktop_files/karm-desktops/sk.po32
-rw-r--r--translations/desktop_files/karm-desktops/sl.po32
-rw-r--r--translations/desktop_files/karm-desktops/sr.po32
-rw-r--r--translations/desktop_files/karm-desktops/sr@Latn.po32
-rw-r--r--translations/desktop_files/karm-desktops/sv.po32
-rw-r--r--translations/desktop_files/karm-desktops/ta.po32
-rw-r--r--translations/desktop_files/karm-desktops/tg.po32
-rw-r--r--translations/desktop_files/karm-desktops/tr.po32
-rw-r--r--translations/desktop_files/karm-desktops/uk.po34
-rw-r--r--translations/desktop_files/karm-desktops/ven.po32
-rw-r--r--translations/desktop_files/karm-desktops/vi.po32
-rw-r--r--translations/desktop_files/karm-desktops/xh.po32
-rw-r--r--translations/desktop_files/karm-desktops/zh_CN.po32
-rw-r--r--translations/desktop_files/karm-desktops/zh_TW.po32
-rw-r--r--translations/desktop_files/karm-desktops/zu.po32
-rw-r--r--translations/desktop_files/kmail-desktops/af.po192
-rw-r--r--translations/desktop_files/kmail-desktops/ar.po191
-rw-r--r--translations/desktop_files/kmail-desktops/az.po187
-rw-r--r--translations/desktop_files/kmail-desktops/be.po190
-rw-r--r--translations/desktop_files/kmail-desktops/bg.po191
-rw-r--r--translations/desktop_files/kmail-desktops/br.po188
-rw-r--r--translations/desktop_files/kmail-desktops/bs.po188
-rw-r--r--translations/desktop_files/kmail-desktops/ca.po191
-rw-r--r--translations/desktop_files/kmail-desktops/cs.po188
-rw-r--r--translations/desktop_files/kmail-desktops/cy.po192
-rw-r--r--translations/desktop_files/kmail-desktops/da.po187
-rw-r--r--translations/desktop_files/kmail-desktops/de.po189
-rw-r--r--translations/desktop_files/kmail-desktops/el.po192
-rw-r--r--translations/desktop_files/kmail-desktops/en_GB.po187
-rw-r--r--translations/desktop_files/kmail-desktops/eo.po190
-rw-r--r--translations/desktop_files/kmail-desktops/es.po189
-rw-r--r--translations/desktop_files/kmail-desktops/et.po187
-rw-r--r--translations/desktop_files/kmail-desktops/eu.po188
-rw-r--r--translations/desktop_files/kmail-desktops/fa.po188
-rw-r--r--translations/desktop_files/kmail-desktops/fi.po190
-rw-r--r--translations/desktop_files/kmail-desktops/fr.po190
-rw-r--r--translations/desktop_files/kmail-desktops/fy.po187
-rw-r--r--translations/desktop_files/kmail-desktops/ga.po189
-rw-r--r--translations/desktop_files/kmail-desktops/gl.po190
-rw-r--r--translations/desktop_files/kmail-desktops/he.po187
-rw-r--r--translations/desktop_files/kmail-desktops/hi.po187
-rw-r--r--translations/desktop_files/kmail-desktops/hr.po189
-rw-r--r--translations/desktop_files/kmail-desktops/hu.po188
-rw-r--r--translations/desktop_files/kmail-desktops/id.po187
-rw-r--r--translations/desktop_files/kmail-desktops/is.po188
-rw-r--r--translations/desktop_files/kmail-desktops/it.po190
-rw-r--r--translations/desktop_files/kmail-desktops/ja.po189
-rw-r--r--translations/desktop_files/kmail-desktops/kk.po191
-rw-r--r--translations/desktop_files/kmail-desktops/km.po187
-rw-r--r--translations/desktop_files/kmail-desktops/kmail-desktops.pot187
-rw-r--r--translations/desktop_files/kmail-desktops/ko.po188
-rw-r--r--translations/desktop_files/kmail-desktops/lt.po187
-rw-r--r--translations/desktop_files/kmail-desktops/lv.po187
-rw-r--r--translations/desktop_files/kmail-desktops/mk.po190
-rw-r--r--translations/desktop_files/kmail-desktops/ms.po187
-rw-r--r--translations/desktop_files/kmail-desktops/mt.po187
-rw-r--r--translations/desktop_files/kmail-desktops/nb.po188
-rw-r--r--translations/desktop_files/kmail-desktops/nds.po187
-rw-r--r--translations/desktop_files/kmail-desktops/ne.po187
-rw-r--r--translations/desktop_files/kmail-desktops/nl.po189
-rw-r--r--translations/desktop_files/kmail-desktops/nn.po190
-rw-r--r--translations/desktop_files/kmail-desktops/pa.po190
-rw-r--r--translations/desktop_files/kmail-desktops/pl.po189
-rw-r--r--translations/desktop_files/kmail-desktops/pt.po189
-rw-r--r--translations/desktop_files/kmail-desktops/pt_BR.po188
-rw-r--r--translations/desktop_files/kmail-desktops/ro.po187
-rw-r--r--translations/desktop_files/kmail-desktops/ru.po193
-rw-r--r--translations/desktop_files/kmail-desktops/rw.po188
-rw-r--r--translations/desktop_files/kmail-desktops/se.po191
-rw-r--r--translations/desktop_files/kmail-desktops/sk.po189
-rw-r--r--translations/desktop_files/kmail-desktops/sl.po188
-rw-r--r--translations/desktop_files/kmail-desktops/sr.po188
-rw-r--r--translations/desktop_files/kmail-desktops/sr@Latn.po188
-rw-r--r--translations/desktop_files/kmail-desktops/sv.po188
-rw-r--r--translations/desktop_files/kmail-desktops/ta.po187
-rw-r--r--translations/desktop_files/kmail-desktops/tg.po192
-rw-r--r--translations/desktop_files/kmail-desktops/th.po187
-rw-r--r--translations/desktop_files/kmail-desktops/tr.po187
-rw-r--r--translations/desktop_files/kmail-desktops/uk.po190
-rw-r--r--translations/desktop_files/kmail-desktops/uz.po191
-rw-r--r--translations/desktop_files/kmail-desktops/ven.po191
-rw-r--r--translations/desktop_files/kmail-desktops/vi.po187
-rw-r--r--translations/desktop_files/kmail-desktops/xh.po190
-rw-r--r--translations/desktop_files/kmail-desktops/zh_CN.po187
-rw-r--r--translations/desktop_files/kmail-desktops/zh_TW.po190
-rw-r--r--translations/desktop_files/kmail-desktops/zu.po191
-rw-r--r--translations/desktop_files/kmail-eventsrc/af.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/ar.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/bg.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/br.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/bs.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/ca.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/cs.po33
-rw-r--r--translations/desktop_files/kmail-eventsrc/cy.po33
-rw-r--r--translations/desktop_files/kmail-eventsrc/da.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/de.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/el.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/eo.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/es.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/et.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/eu.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/fa.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/fi.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/fr.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/fy.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/gl.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/he.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/hi.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/hu.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/is.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/it.po33
-rw-r--r--translations/desktop_files/kmail-eventsrc/ja.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/kk.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/km.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/kmail-eventsrc.pot32
-rw-r--r--translations/desktop_files/kmail-eventsrc/lt.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/mk.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/ms.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/nb.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/nds.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/ne.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/nl.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/nn.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/pa.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/pl.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/pt.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/pt_BR.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/ru.po34
-rw-r--r--translations/desktop_files/kmail-eventsrc/se.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/sk.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/sl.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/sr.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/sr@Latn.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/sv.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/ta.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/tg.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/tr.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/uk.po34
-rw-r--r--translations/desktop_files/kmail-eventsrc/uz.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/zh_CN.po32
-rw-r--r--translations/desktop_files/kmail-eventsrc/zh_TW.po32
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/af.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/bg.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/br.po41
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/bs.po40
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/ca.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/cs.po40
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/da.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/de.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/el.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/eo.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/es.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/et.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/eu.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/fa.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/fi.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/fr.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/fy.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/gl.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/hu.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/is.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/it.po40
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/ja.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/kk.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/km.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/kmail-plugins-desktops.pot39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/lt.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/ms.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/nb.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/nds.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/ne.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/nl.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/nn.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/pl.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/pt.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/pt_BR.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/ru.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/sk.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/sl.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/sr.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/sr@Latn.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/sv.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/ta.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/tg.po40
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/tr.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/uk.po41
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/zh_CN.po39
-rw-r--r--translations/desktop_files/kmail-plugins-desktops/zh_TW.po39
-rw-r--r--translations/desktop_files/kmobile-desktops/af.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/ar.po106
-rw-r--r--translations/desktop_files/kmobile-desktops/be.po104
-rw-r--r--translations/desktop_files/kmobile-desktops/bg.po106
-rw-r--r--translations/desktop_files/kmobile-desktops/br.po106
-rw-r--r--translations/desktop_files/kmobile-desktops/bs.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/ca.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/cs.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/cy.po104
-rw-r--r--translations/desktop_files/kmobile-desktops/da.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/de.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/el.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/en_GB.po100
-rw-r--r--translations/desktop_files/kmobile-desktops/eo.po104
-rw-r--r--translations/desktop_files/kmobile-desktops/es.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/et.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/eu.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/fa.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/fi.po103
-rw-r--r--translations/desktop_files/kmobile-desktops/fr.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/fy.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/ga.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/gl.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/he.po102
-rw-r--r--translations/desktop_files/kmobile-desktops/hi.po104
-rw-r--r--translations/desktop_files/kmobile-desktops/hr.po100
-rw-r--r--translations/desktop_files/kmobile-desktops/hu.po106
-rw-r--r--translations/desktop_files/kmobile-desktops/is.po104
-rw-r--r--translations/desktop_files/kmobile-desktops/it.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/ja.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/kk.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/km.po101
-rw-r--r--translations/desktop_files/kmobile-desktops/kmobile-desktops.pot100
-rw-r--r--translations/desktop_files/kmobile-desktops/lt.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/mk.po104
-rw-r--r--translations/desktop_files/kmobile-desktops/ms.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/nb.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/nds.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/ne.po100
-rw-r--r--translations/desktop_files/kmobile-desktops/nl.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/nn.po104
-rw-r--r--translations/desktop_files/kmobile-desktops/pa.po108
-rw-r--r--translations/desktop_files/kmobile-desktops/pl.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/pt.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/pt_BR.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/ro.po104
-rw-r--r--translations/desktop_files/kmobile-desktops/ru.po106
-rw-r--r--translations/desktop_files/kmobile-desktops/se.po107
-rw-r--r--translations/desktop_files/kmobile-desktops/sk.po103
-rw-r--r--translations/desktop_files/kmobile-desktops/sl.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/sr.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/sr@Latn.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/sv.po104
-rw-r--r--translations/desktop_files/kmobile-desktops/ta.po101
-rw-r--r--translations/desktop_files/kmobile-desktops/tg.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/tr.po105
-rw-r--r--translations/desktop_files/kmobile-desktops/uk.po106
-rw-r--r--translations/desktop_files/kmobile-desktops/uz.po100
-rw-r--r--translations/desktop_files/kmobile-desktops/zh_CN.po101
-rw-r--r--translations/desktop_files/kmobile-desktops/zh_TW.po100
-rw-r--r--translations/desktop_files/knode-desktops/af.po87
-rw-r--r--translations/desktop_files/knode-desktops/ar.po88
-rw-r--r--translations/desktop_files/knode-desktops/az.po87
-rw-r--r--translations/desktop_files/knode-desktops/be.po88
-rw-r--r--translations/desktop_files/knode-desktops/bg.po88
-rw-r--r--translations/desktop_files/knode-desktops/br.po87
-rw-r--r--translations/desktop_files/knode-desktops/bs.po87
-rw-r--r--translations/desktop_files/knode-desktops/ca.po87
-rw-r--r--translations/desktop_files/knode-desktops/cs.po88
-rw-r--r--translations/desktop_files/knode-desktops/cy.po87
-rw-r--r--translations/desktop_files/knode-desktops/da.po88
-rw-r--r--translations/desktop_files/knode-desktops/de.po88
-rw-r--r--translations/desktop_files/knode-desktops/el.po88
-rw-r--r--translations/desktop_files/knode-desktops/en_GB.po87
-rw-r--r--translations/desktop_files/knode-desktops/eo.po87
-rw-r--r--translations/desktop_files/knode-desktops/es.po87
-rw-r--r--translations/desktop_files/knode-desktops/et.po87
-rw-r--r--translations/desktop_files/knode-desktops/eu.po87
-rw-r--r--translations/desktop_files/knode-desktops/fa.po87
-rw-r--r--translations/desktop_files/knode-desktops/fi.po87
-rw-r--r--translations/desktop_files/knode-desktops/fr.po89
-rw-r--r--translations/desktop_files/knode-desktops/fy.po88
-rw-r--r--translations/desktop_files/knode-desktops/ga.po87
-rw-r--r--translations/desktop_files/knode-desktops/gl.po87
-rw-r--r--translations/desktop_files/knode-desktops/he.po87
-rw-r--r--translations/desktop_files/knode-desktops/hi.po87
-rw-r--r--translations/desktop_files/knode-desktops/hr.po87
-rw-r--r--translations/desktop_files/knode-desktops/hu.po87
-rw-r--r--translations/desktop_files/knode-desktops/id.po87
-rw-r--r--translations/desktop_files/knode-desktops/is.po87
-rw-r--r--translations/desktop_files/knode-desktops/it.po88
-rw-r--r--translations/desktop_files/knode-desktops/ja.po87
-rw-r--r--translations/desktop_files/knode-desktops/kk.po87
-rw-r--r--translations/desktop_files/knode-desktops/km.po87
-rw-r--r--translations/desktop_files/knode-desktops/knode-desktops.pot87
-rw-r--r--translations/desktop_files/knode-desktops/ko.po87
-rw-r--r--translations/desktop_files/knode-desktops/lt.po87
-rw-r--r--translations/desktop_files/knode-desktops/lv.po87
-rw-r--r--translations/desktop_files/knode-desktops/mk.po87
-rw-r--r--translations/desktop_files/knode-desktops/ms.po88
-rw-r--r--translations/desktop_files/knode-desktops/mt.po87
-rw-r--r--translations/desktop_files/knode-desktops/nb.po87
-rw-r--r--translations/desktop_files/knode-desktops/nds.po89
-rw-r--r--translations/desktop_files/knode-desktops/ne.po87
-rw-r--r--translations/desktop_files/knode-desktops/nl.po87
-rw-r--r--translations/desktop_files/knode-desktops/nn.po87
-rw-r--r--translations/desktop_files/knode-desktops/pa.po87
-rw-r--r--translations/desktop_files/knode-desktops/pl.po88
-rw-r--r--translations/desktop_files/knode-desktops/pt.po87
-rw-r--r--translations/desktop_files/knode-desktops/pt_BR.po88
-rw-r--r--translations/desktop_files/knode-desktops/ro.po87
-rw-r--r--translations/desktop_files/knode-desktops/ru.po89
-rw-r--r--translations/desktop_files/knode-desktops/rw.po87
-rw-r--r--translations/desktop_files/knode-desktops/se.po87
-rw-r--r--translations/desktop_files/knode-desktops/sk.po87
-rw-r--r--translations/desktop_files/knode-desktops/sl.po87
-rw-r--r--translations/desktop_files/knode-desktops/sr.po87
-rw-r--r--translations/desktop_files/knode-desktops/sr@Latn.po87
-rw-r--r--translations/desktop_files/knode-desktops/sv.po87
-rw-r--r--translations/desktop_files/knode-desktops/ta.po87
-rw-r--r--translations/desktop_files/knode-desktops/tg.po87
-rw-r--r--translations/desktop_files/knode-desktops/th.po87
-rw-r--r--translations/desktop_files/knode-desktops/tr.po89
-rw-r--r--translations/desktop_files/knode-desktops/uk.po90
-rw-r--r--translations/desktop_files/knode-desktops/uz.po88
-rw-r--r--translations/desktop_files/knode-desktops/ven.po87
-rw-r--r--translations/desktop_files/knode-desktops/vi.po87
-rw-r--r--translations/desktop_files/knode-desktops/xh.po87
-rw-r--r--translations/desktop_files/knode-desktops/zh_CN.po87
-rw-r--r--translations/desktop_files/knode-desktops/zh_TW.po87
-rw-r--r--translations/desktop_files/knode-desktops/zu.po87
-rw-r--r--translations/desktop_files/knotes-desktops/af.po37
-rw-r--r--translations/desktop_files/knotes-desktops/ar.po38
-rw-r--r--translations/desktop_files/knotes-desktops/be.po38
-rw-r--r--translations/desktop_files/knotes-desktops/bg.po38
-rw-r--r--translations/desktop_files/knotes-desktops/br.po39
-rw-r--r--translations/desktop_files/knotes-desktops/bs.po38
-rw-r--r--translations/desktop_files/knotes-desktops/ca.po38
-rw-r--r--translations/desktop_files/knotes-desktops/cs.po38
-rw-r--r--translations/desktop_files/knotes-desktops/cy.po37
-rw-r--r--translations/desktop_files/knotes-desktops/da.po38
-rw-r--r--translations/desktop_files/knotes-desktops/de.po38
-rw-r--r--translations/desktop_files/knotes-desktops/el.po38
-rw-r--r--translations/desktop_files/knotes-desktops/eo.po37
-rw-r--r--translations/desktop_files/knotes-desktops/es.po38
-rw-r--r--translations/desktop_files/knotes-desktops/et.po38
-rw-r--r--translations/desktop_files/knotes-desktops/eu.po38
-rw-r--r--translations/desktop_files/knotes-desktops/fa.po38
-rw-r--r--translations/desktop_files/knotes-desktops/fi.po38
-rw-r--r--translations/desktop_files/knotes-desktops/fr.po38
-rw-r--r--translations/desktop_files/knotes-desktops/fy.po38
-rw-r--r--translations/desktop_files/knotes-desktops/ga.po39
-rw-r--r--translations/desktop_files/knotes-desktops/gl.po38
-rw-r--r--translations/desktop_files/knotes-desktops/he.po38
-rw-r--r--translations/desktop_files/knotes-desktops/hi.po37
-rw-r--r--translations/desktop_files/knotes-desktops/hr.po38
-rw-r--r--translations/desktop_files/knotes-desktops/hu.po38
-rw-r--r--translations/desktop_files/knotes-desktops/is.po38
-rw-r--r--translations/desktop_files/knotes-desktops/it.po38
-rw-r--r--translations/desktop_files/knotes-desktops/ja.po38
-rw-r--r--translations/desktop_files/knotes-desktops/kk.po38
-rw-r--r--translations/desktop_files/knotes-desktops/km.po38
-rw-r--r--translations/desktop_files/knotes-desktops/knotes-desktops.pot37
-rw-r--r--translations/desktop_files/knotes-desktops/lt.po38
-rw-r--r--translations/desktop_files/knotes-desktops/lv.po38
-rw-r--r--translations/desktop_files/knotes-desktops/mk.po37
-rw-r--r--translations/desktop_files/knotes-desktops/ms.po38
-rw-r--r--translations/desktop_files/knotes-desktops/mt.po38
-rw-r--r--translations/desktop_files/knotes-desktops/nb.po38
-rw-r--r--translations/desktop_files/knotes-desktops/nds.po38
-rw-r--r--translations/desktop_files/knotes-desktops/ne.po37
-rw-r--r--translations/desktop_files/knotes-desktops/nl.po38
-rw-r--r--translations/desktop_files/knotes-desktops/nn.po38
-rw-r--r--translations/desktop_files/knotes-desktops/nso.po38
-rw-r--r--translations/desktop_files/knotes-desktops/pl.po37
-rw-r--r--translations/desktop_files/knotes-desktops/pt.po38
-rw-r--r--translations/desktop_files/knotes-desktops/pt_BR.po38
-rw-r--r--translations/desktop_files/knotes-desktops/ro.po37
-rw-r--r--translations/desktop_files/knotes-desktops/ru.po39
-rw-r--r--translations/desktop_files/knotes-desktops/se.po39
-rw-r--r--translations/desktop_files/knotes-desktops/sk.po38
-rw-r--r--translations/desktop_files/knotes-desktops/sl.po37
-rw-r--r--translations/desktop_files/knotes-desktops/sr.po38
-rw-r--r--translations/desktop_files/knotes-desktops/sr@Latn.po38
-rw-r--r--translations/desktop_files/knotes-desktops/sv.po37
-rw-r--r--translations/desktop_files/knotes-desktops/ta.po37
-rw-r--r--translations/desktop_files/knotes-desktops/tg.po38
-rw-r--r--translations/desktop_files/knotes-desktops/th.po37
-rw-r--r--translations/desktop_files/knotes-desktops/tr.po38
-rw-r--r--translations/desktop_files/knotes-desktops/uk.po39
-rw-r--r--translations/desktop_files/knotes-desktops/uz.po39
-rw-r--r--translations/desktop_files/knotes-desktops/vi.po38
-rw-r--r--translations/desktop_files/knotes-desktops/xh.po38
-rw-r--r--translations/desktop_files/knotes-desktops/zh_CN.po38
-rw-r--r--translations/desktop_files/knotes-desktops/zh_TW.po37
-rw-r--r--translations/desktop_files/knotes-desktops/zu.po38
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/af.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/cs.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/de.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/eo.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/fy.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/hi.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/hu.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/it.po23
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/ja.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/konsolekalendar.desktop.pot22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/mk.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/ms.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/nb.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/nds.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/ne.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/nl.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/nn.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/pt.po20
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/ro.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/ru.po24
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/sr.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/sr@Latn.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/ta.po22
-rw-r--r--translations/desktop_files/konsolekalendar.desktop/uk.po22
-rw-r--r--translations/desktop_files/kontact-desktops/af.po363
-rw-r--r--translations/desktop_files/kontact-desktops/ar.po360
-rw-r--r--translations/desktop_files/kontact-desktops/az.po351
-rw-r--r--translations/desktop_files/kontact-desktops/be.po364
-rw-r--r--translations/desktop_files/kontact-desktops/bg.po365
-rw-r--r--translations/desktop_files/kontact-desktops/br.po362
-rw-r--r--translations/desktop_files/kontact-desktops/bs.po358
-rw-r--r--translations/desktop_files/kontact-desktops/ca.po365
-rw-r--r--translations/desktop_files/kontact-desktops/cs.po360
-rw-r--r--translations/desktop_files/kontact-desktops/cy.po356
-rw-r--r--translations/desktop_files/kontact-desktops/da.po368
-rw-r--r--translations/desktop_files/kontact-desktops/de.po364
-rw-r--r--translations/desktop_files/kontact-desktops/el.po365
-rw-r--r--translations/desktop_files/kontact-desktops/eo.po361
-rw-r--r--translations/desktop_files/kontact-desktops/es.po361
-rw-r--r--translations/desktop_files/kontact-desktops/et.po360
-rw-r--r--translations/desktop_files/kontact-desktops/eu.po361
-rw-r--r--translations/desktop_files/kontact-desktops/fa.po360
-rw-r--r--translations/desktop_files/kontact-desktops/fi.po360
-rw-r--r--translations/desktop_files/kontact-desktops/fr.po360
-rw-r--r--translations/desktop_files/kontact-desktops/fy.po363
-rw-r--r--translations/desktop_files/kontact-desktops/ga.po362
-rw-r--r--translations/desktop_files/kontact-desktops/gl.po361
-rw-r--r--translations/desktop_files/kontact-desktops/he.po365
-rw-r--r--translations/desktop_files/kontact-desktops/hi.po355
-rw-r--r--translations/desktop_files/kontact-desktops/hr.po353
-rw-r--r--translations/desktop_files/kontact-desktops/hu.po359
-rw-r--r--translations/desktop_files/kontact-desktops/id.po351
-rw-r--r--translations/desktop_files/kontact-desktops/is.po360
-rw-r--r--translations/desktop_files/kontact-desktops/it.po361
-rw-r--r--translations/desktop_files/kontact-desktops/ja.po355
-rw-r--r--translations/desktop_files/kontact-desktops/kk.po360
-rw-r--r--translations/desktop_files/kontact-desktops/km.po360
-rw-r--r--translations/desktop_files/kontact-desktops/kontact-desktops.pot349
-rw-r--r--translations/desktop_files/kontact-desktops/lt.po369
-rw-r--r--translations/desktop_files/kontact-desktops/lv.po351
-rw-r--r--translations/desktop_files/kontact-desktops/mk.po367
-rw-r--r--translations/desktop_files/kontact-desktops/ms.po360
-rw-r--r--translations/desktop_files/kontact-desktops/nb.po360
-rw-r--r--translations/desktop_files/kontact-desktops/nds.po361
-rw-r--r--translations/desktop_files/kontact-desktops/ne.po357
-rw-r--r--translations/desktop_files/kontact-desktops/nl.po365
-rw-r--r--translations/desktop_files/kontact-desktops/nn.po362
-rw-r--r--translations/desktop_files/kontact-desktops/nso.po351
-rw-r--r--translations/desktop_files/kontact-desktops/pa.po352
-rw-r--r--translations/desktop_files/kontact-desktops/pl.po363
-rw-r--r--translations/desktop_files/kontact-desktops/pt.po360
-rw-r--r--translations/desktop_files/kontact-desktops/pt_BR.po360
-rw-r--r--translations/desktop_files/kontact-desktops/ro.po357
-rw-r--r--translations/desktop_files/kontact-desktops/ru.po362
-rw-r--r--translations/desktop_files/kontact-desktops/rw.po352
-rw-r--r--translations/desktop_files/kontact-desktops/se.po356
-rw-r--r--translations/desktop_files/kontact-desktops/sk.po362
-rw-r--r--translations/desktop_files/kontact-desktops/sl.po360
-rw-r--r--translations/desktop_files/kontact-desktops/sr.po365
-rw-r--r--translations/desktop_files/kontact-desktops/sr@Latn.po365
-rw-r--r--translations/desktop_files/kontact-desktops/sv.po362
-rw-r--r--translations/desktop_files/kontact-desktops/ta.po358
-rw-r--r--translations/desktop_files/kontact-desktops/tg.po359
-rw-r--r--translations/desktop_files/kontact-desktops/th.po359
-rw-r--r--translations/desktop_files/kontact-desktops/tr.po359
-rw-r--r--translations/desktop_files/kontact-desktops/uk.po364
-rw-r--r--translations/desktop_files/kontact-desktops/uz.po359
-rw-r--r--translations/desktop_files/kontact-desktops/ven.po353
-rw-r--r--translations/desktop_files/kontact-desktops/vi.po351
-rw-r--r--translations/desktop_files/kontact-desktops/xh.po351
-rw-r--r--translations/desktop_files/kontact-desktops/zh_CN.po364
-rw-r--r--translations/desktop_files/kontact-desktops/zh_TW.po355
-rw-r--r--translations/desktop_files/kontact-desktops/zu.po351
-rw-r--r--translations/desktop_files/korganizer-desktops/af.po338
-rw-r--r--translations/desktop_files/korganizer-desktops/ar.po323
-rw-r--r--translations/desktop_files/korganizer-desktops/az.po318
-rw-r--r--translations/desktop_files/korganizer-desktops/be.po328
-rw-r--r--translations/desktop_files/korganizer-desktops/bg.po325
-rw-r--r--translations/desktop_files/korganizer-desktops/br.po330
-rw-r--r--translations/desktop_files/korganizer-desktops/bs.po319
-rw-r--r--translations/desktop_files/korganizer-desktops/ca.po335
-rw-r--r--translations/desktop_files/korganizer-desktops/cs.po325
-rw-r--r--translations/desktop_files/korganizer-desktops/cy.po320
-rw-r--r--translations/desktop_files/korganizer-desktops/da.po328
-rw-r--r--translations/desktop_files/korganizer-desktops/de.po333
-rw-r--r--translations/desktop_files/korganizer-desktops/el.po335
-rw-r--r--translations/desktop_files/korganizer-desktops/en_GB.po331
-rw-r--r--translations/desktop_files/korganizer-desktops/eo.po319
-rw-r--r--translations/desktop_files/korganizer-desktops/es.po334
-rw-r--r--translations/desktop_files/korganizer-desktops/et.po327
-rw-r--r--translations/desktop_files/korganizer-desktops/eu.po337
-rw-r--r--translations/desktop_files/korganizer-desktops/fa.po331
-rw-r--r--translations/desktop_files/korganizer-desktops/fi.po334
-rw-r--r--translations/desktop_files/korganizer-desktops/fr.po327
-rw-r--r--translations/desktop_files/korganizer-desktops/fy.po334
-rw-r--r--translations/desktop_files/korganizer-desktops/ga.po332
-rw-r--r--translations/desktop_files/korganizer-desktops/gl.po331
-rw-r--r--translations/desktop_files/korganizer-desktops/he.po329
-rw-r--r--translations/desktop_files/korganizer-desktops/hi.po321
-rw-r--r--translations/desktop_files/korganizer-desktops/hr.po321
-rw-r--r--translations/desktop_files/korganizer-desktops/hu.po327
-rw-r--r--translations/desktop_files/korganizer-desktops/id.po314
-rw-r--r--translations/desktop_files/korganizer-desktops/is.po330
-rw-r--r--translations/desktop_files/korganizer-desktops/it.po331
-rw-r--r--translations/desktop_files/korganizer-desktops/ja.po332
-rw-r--r--translations/desktop_files/korganizer-desktops/ka.po325
-rw-r--r--translations/desktop_files/korganizer-desktops/kk.po326
-rw-r--r--translations/desktop_files/korganizer-desktops/km.po325
-rw-r--r--translations/desktop_files/korganizer-desktops/ko.po316
-rw-r--r--translations/desktop_files/korganizer-desktops/korganizer-desktops.pot314
-rw-r--r--translations/desktop_files/korganizer-desktops/lt.po328
-rw-r--r--translations/desktop_files/korganizer-desktops/lv.po323
-rw-r--r--translations/desktop_files/korganizer-desktops/mk.po326
-rw-r--r--translations/desktop_files/korganizer-desktops/ms.po335
-rw-r--r--translations/desktop_files/korganizer-desktops/mt.po319
-rw-r--r--translations/desktop_files/korganizer-desktops/nb.po329
-rw-r--r--translations/desktop_files/korganizer-desktops/nds.po329
-rw-r--r--translations/desktop_files/korganizer-desktops/ne.po328
-rw-r--r--translations/desktop_files/korganizer-desktops/nl.po332
-rw-r--r--translations/desktop_files/korganizer-desktops/nn.po332
-rw-r--r--translations/desktop_files/korganizer-desktops/nso.po323
-rw-r--r--translations/desktop_files/korganizer-desktops/pl.po325
-rw-r--r--translations/desktop_files/korganizer-desktops/pt.po332
-rw-r--r--translations/desktop_files/korganizer-desktops/pt_BR.po331
-rw-r--r--translations/desktop_files/korganizer-desktops/ro.po328
-rw-r--r--translations/desktop_files/korganizer-desktops/ru.po325
-rw-r--r--translations/desktop_files/korganizer-desktops/rw.po314
-rw-r--r--translations/desktop_files/korganizer-desktops/se.po324
-rw-r--r--translations/desktop_files/korganizer-desktops/sk.po327
-rw-r--r--translations/desktop_files/korganizer-desktops/sl.po329
-rw-r--r--translations/desktop_files/korganizer-desktops/sr.po331
-rw-r--r--translations/desktop_files/korganizer-desktops/sr@Latn.po332
-rw-r--r--translations/desktop_files/korganizer-desktops/sv.po331
-rw-r--r--translations/desktop_files/korganizer-desktops/ta.po336
-rw-r--r--translations/desktop_files/korganizer-desktops/tg.po319
-rw-r--r--translations/desktop_files/korganizer-desktops/th.po315
-rw-r--r--translations/desktop_files/korganizer-desktops/tr.po331
-rw-r--r--translations/desktop_files/korganizer-desktops/uk.po329
-rw-r--r--translations/desktop_files/korganizer-desktops/uz.po320
-rw-r--r--translations/desktop_files/korganizer-desktops/ven.po323
-rw-r--r--translations/desktop_files/korganizer-desktops/vi.po317
-rw-r--r--translations/desktop_files/korganizer-desktops/xh.po321
-rw-r--r--translations/desktop_files/korganizer-desktops/zh_CN.po322
-rw-r--r--translations/desktop_files/korganizer-desktops/zh_TW.po325
-rw-r--r--translations/desktop_files/korganizer-desktops/zu.po321
-rw-r--r--translations/desktop_files/ktnef-desktops/af.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/be.po38
-rw-r--r--translations/desktop_files/ktnef-desktops/bg.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/br.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/bs.po38
-rw-r--r--translations/desktop_files/ktnef-desktops/ca.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/cs.po38
-rw-r--r--translations/desktop_files/ktnef-desktops/cy.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/da.po38
-rw-r--r--translations/desktop_files/ktnef-desktops/de.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/el.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/eo.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/es.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/et.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/eu.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/fa.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/fi.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/fr.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/fy.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/ga.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/gl.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/he.po38
-rw-r--r--translations/desktop_files/ktnef-desktops/hi.po38
-rw-r--r--translations/desktop_files/ktnef-desktops/hr.po38
-rw-r--r--translations/desktop_files/ktnef-desktops/hu.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/is.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/it.po38
-rw-r--r--translations/desktop_files/ktnef-desktops/ja.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/kk.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/km.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/ktnef-desktops.pot37
-rw-r--r--translations/desktop_files/ktnef-desktops/lt.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/mk.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/ms.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/nb.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/nds.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/ne.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/nl.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/nn.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/pl.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/pt.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/pt_BR.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/ro.po38
-rw-r--r--translations/desktop_files/ktnef-desktops/ru.po39
-rw-r--r--translations/desktop_files/ktnef-desktops/sk.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/sl.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/sr.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/sr@Latn.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/sv.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/ta.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/tg.po38
-rw-r--r--translations/desktop_files/ktnef-desktops/tr.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/uk.po39
-rw-r--r--translations/desktop_files/ktnef-desktops/uz.po38
-rw-r--r--translations/desktop_files/ktnef-desktops/zh_CN.po37
-rw-r--r--translations/desktop_files/ktnef-desktops/zh_TW.po37
-rw-r--r--translations/desktop_files/libkcal-desktops/af.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/ar.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/be.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/bg.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/br.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/bs.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/ca.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/cs.po33
-rw-r--r--translations/desktop_files/libkcal-desktops/cy.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/da.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/de.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/el.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/eo.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/es.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/et.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/eu.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/fa.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/fi.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/fr.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/fy.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/ga.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/gl.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/he.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/hi.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/hu.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/is.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/it.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/ja.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/kk.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/km.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/libkcal-desktops.pot32
-rw-r--r--translations/desktop_files/libkcal-desktops/lt.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/mk.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/ms.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/nb.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/nds.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/ne.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/nl.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/nn.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/pa.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/pl.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/pt.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/pt_BR.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/ro.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/ru.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/se.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/sk.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/sl.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/sr.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/sr@Latn.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/sv.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/ta.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/tg.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/th.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/tr.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/uk.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/uz.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/zh_CN.po32
-rw-r--r--translations/desktop_files/libkcal-desktops/zh_TW.po32
-rw-r--r--translations/desktop_files/libtdepim-desktops/af.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/bg.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/br.po52
-rw-r--r--translations/desktop_files/libtdepim-desktops/bs.po51
-rw-r--r--translations/desktop_files/libtdepim-desktops/ca.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/cs.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/cy.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/da.po49
-rw-r--r--translations/desktop_files/libtdepim-desktops/de.po51
-rw-r--r--translations/desktop_files/libtdepim-desktops/el.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/eo.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/es.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/et.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/eu.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/fa.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/fi.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/fr.po51
-rw-r--r--translations/desktop_files/libtdepim-desktops/fy.po51
-rw-r--r--translations/desktop_files/libtdepim-desktops/ga.po51
-rw-r--r--translations/desktop_files/libtdepim-desktops/gl.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/he.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/hi.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/hu.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/is.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/it.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/ja.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/kk.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/km.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/ko.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/libtdepim-desktops.pot49
-rw-r--r--translations/desktop_files/libtdepim-desktops/lt.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/ms.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/nb.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/nds.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/ne.po49
-rw-r--r--translations/desktop_files/libtdepim-desktops/nl.po52
-rw-r--r--translations/desktop_files/libtdepim-desktops/nn.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/pl.po51
-rw-r--r--translations/desktop_files/libtdepim-desktops/pt.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/pt_BR.po51
-rw-r--r--translations/desktop_files/libtdepim-desktops/ro.po51
-rw-r--r--translations/desktop_files/libtdepim-desktops/ru.po51
-rw-r--r--translations/desktop_files/libtdepim-desktops/sk.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/sl.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/sr.po51
-rw-r--r--translations/desktop_files/libtdepim-desktops/sr@Latn.po51
-rw-r--r--translations/desktop_files/libtdepim-desktops/sv.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/ta.po49
-rw-r--r--translations/desktop_files/libtdepim-desktops/tg.po51
-rw-r--r--translations/desktop_files/libtdepim-desktops/tr.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/uk.po51
-rw-r--r--translations/desktop_files/libtdepim-desktops/zh_CN.po50
-rw-r--r--translations/desktop_files/libtdepim-desktops/zh_TW.po50
-rw-r--r--translations/desktop_files/tdeabc-desktops/cs.po28
-rw-r--r--translations/desktop_files/tdeabc-desktops/it.po29
-rw-r--r--translations/desktop_files/tdeabc-desktops/pt.po25
-rw-r--r--translations/desktop_files/tdeabc-desktops/ru.po29
-rw-r--r--translations/desktop_files/tdeabc-desktops/tdeabc-desktops.pot27
-rw-r--r--translations/desktop_files/tdeabc-desktops/uk.po29
-rw-r--r--translations/desktop_files/tdefile-desktops/af.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/be.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/bg.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/br.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/bs.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/ca.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/cs.po38
-rw-r--r--translations/desktop_files/tdefile-desktops/cy.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/da.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/de.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/el.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/eo.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/es.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/et.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/eu.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/fa.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/fi.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/fr.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/fy.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/ga.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/gl.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/he.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/hi.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/hr.po38
-rw-r--r--translations/desktop_files/tdefile-desktops/hu.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/is.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/it.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/ja.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/kk.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/km.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/lt.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/mk.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/ms.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/mt.po38
-rw-r--r--translations/desktop_files/tdefile-desktops/nb.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/nds.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/ne.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/nl.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/nn.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/nso.po38
-rw-r--r--translations/desktop_files/tdefile-desktops/pa.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/pl.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/pt.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/pt_BR.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/ro.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/ru.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/se.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/sk.po38
-rw-r--r--translations/desktop_files/tdefile-desktops/sl.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/sr.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/sr@Latn.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/sv.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/ta.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/tdefile-desktops.pot37
-rw-r--r--translations/desktop_files/tdefile-desktops/tg.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/tr.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/uk.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/ven.po38
-rw-r--r--translations/desktop_files/tdefile-desktops/xh.po38
-rw-r--r--translations/desktop_files/tdefile-desktops/zh_CN.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/zh_TW.po37
-rw-r--r--translations/desktop_files/tdefile-desktops/zu.po38
-rw-r--r--translations/desktop_files/tdeioslave-desktops/af.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/ca.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/cs.po23
-rw-r--r--translations/desktop_files/tdeioslave-desktops/da.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/de.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/el.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/es.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/et.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/eu.po23
-rw-r--r--translations/desktop_files/tdeioslave-desktops/fa.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/fi.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/fr.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/fy.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/gl.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/hu.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/is.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/it.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/ja.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/kk.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/km.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/ms.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/nb.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/nds.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/ne.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/nl.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/nn.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/pl.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/pt.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/pt_BR.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/ru.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/sk.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/sl.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/sr.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/sr@Latn.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/sv.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/ta.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/tdeioslave-desktops.pot22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/tr.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/uk.po22
-rw-r--r--translations/desktop_files/tdeioslave-desktops/zh_CN.po22
-rw-r--r--translations/desktop_files/tderesources-desktops/af.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/ar.po145
-rw-r--r--translations/desktop_files/tderesources-desktops/be.po147
-rw-r--r--translations/desktop_files/tderesources-desktops/bg.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/br.po149
-rw-r--r--translations/desktop_files/tderesources-desktops/bs.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/ca.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/cs.po144
-rw-r--r--translations/desktop_files/tderesources-desktops/cy.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/da.po144
-rw-r--r--translations/desktop_files/tderesources-desktops/de.po145
-rw-r--r--translations/desktop_files/tderesources-desktops/el.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/eo.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/es.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/et.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/eu.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/fa.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/fi.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/fr.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/fy.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/ga.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/gl.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/he.po148
-rw-r--r--translations/desktop_files/tderesources-desktops/hi.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/hu.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/is.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/it.po144
-rw-r--r--translations/desktop_files/tderesources-desktops/ja.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/ka.po144
-rw-r--r--translations/desktop_files/tderesources-desktops/kk.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/km.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/lt.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/mk.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/ms.po147
-rw-r--r--translations/desktop_files/tderesources-desktops/nb.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/nds.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/ne.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/nl.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/nn.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/pl.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/pt.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/pt_BR.po145
-rw-r--r--translations/desktop_files/tderesources-desktops/ro.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/ru.po145
-rw-r--r--translations/desktop_files/tderesources-desktops/sk.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/sl.po146
-rw-r--r--translations/desktop_files/tderesources-desktops/sr.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/sr@Latn.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/sv.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/ta.po147
-rw-r--r--translations/desktop_files/tderesources-desktops/tderesources-desktops.pot143
-rw-r--r--translations/desktop_files/tderesources-desktops/tg.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/tr.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/uk.po145
-rw-r--r--translations/desktop_files/tderesources-desktops/zh_CN.po143
-rw-r--r--translations/desktop_files/tderesources-desktops/zh_TW.po143
-rw-r--r--wizards/CMakeL10n.txt6
-rw-r--r--wizards/CMakeLists.txt4
-rw-r--r--wizards/egroupwarewizard.h2
-rw-r--r--wizards/exchangewizard.h2
-rw-r--r--wizards/groupwarewizard.cpp4
-rw-r--r--wizards/groupwarewizard.desktop45
-rw-r--r--wizards/groupwarewizard.h2
-rw-r--r--wizards/groupwisewizard.cpp10
-rw-r--r--wizards/groupwisewizard.h4
-rw-r--r--wizards/kolabwizard.h2
-rw-r--r--wizards/overviewpage.cpp10
-rw-r--r--wizards/overviewpage.h2
-rw-r--r--wizards/scalixwizard.h2
-rw-r--r--wizards/servertypemanager.h2
-rw-r--r--wizards/sloxwizard.h2
4035 files changed, 176273 insertions, 61690 deletions
diff --git a/.gitmodules b/.gitmodules
index bdec8fca..934def7f 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,3 @@
[submodule "admin"]
path = admin
url = https://system@scm.trinitydesktop.org/scm/git/tde-common-admin
-[submodule "cmake"]
- path = cmake
- url = https://system@scm.trinitydesktop.org/scm/git/tde-common-cmake
diff --git a/CMakeL10n.txt b/CMakeL10n.txt
index d1857d32..9a2066a1 100644
--- a/CMakeL10n.txt
+++ b/CMakeL10n.txt
@@ -9,12 +9,15 @@
#
#################################################
-cmake_minimum_required( VERSION 2.8 )
+
+##### set project version ########################
+
+include( TDEVersion )
+cmake_minimum_required( VERSION ${TDE_CMAKE_MINIMUM_VERSION} )
##### include our cmake modules #################
-set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" )
include( TDEL10n )
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 88cc5427..ca0b5652 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,14 +9,18 @@
#
#################################################
-cmake_minimum_required( VERSION 2.8 )
+
+##### set project version ########################
+
+include( TDEVersion )
+cmake_minimum_required( VERSION ${TDE_CMAKE_MINIMUM_VERSION} )
+tde_set_project_version( )
##### general package setup #####################
project( tdepim )
set( PACKAGE tdepim )
-set( VERSION R14.1.0 )
##### include essential cmake modules ###########
@@ -33,7 +37,6 @@ enable_testing( )
##### include our cmake modules #################
-set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" )
include( TDEMacros )
@@ -45,13 +48,36 @@ tde_setup_paths( )
##### add apidox targets ############
-add_custom_target(apidox
- COMMAND "./generate_apidox" "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${HTML_INSTALL_DIR}" "/usr/share/qt3/doc/html"
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/cmake/")
+add_custom_target( apidox
+ COMMAND ${CMAKE_COMMAND} -E env
+ "TQTDOCDIR=/usr/share/tqt3/doc/html"
+ "DOXDATA=${HTML_INSTALL_DIR}/en/common"
+ ${CMAKE_SOURCE_DIR}/admin/doxygen.sh
+ --no-modulename
+ ${CMAKE_SOURCE_DIR}
+ COMMAND
+ find ${CMAKE_BINARY_DIR}/apidocs -name '*.html' |
+ xargs -r sed -i 's|${CMAKE_BINARY_DIR}/apidocs|${HTML_INSTALL_DIR}/en/${PROJECT_NAME}-apidocs|g'
+ COMMAND
+ find ${CMAKE_BINARY_DIR}/apidocs -name '*.tag' |
+ xargs -r sed -i 's|${CMAKE_SOURCE_DIR}/|${PROJECT_NAME}/|g'
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+)
-add_custom_target(install-apidox
- COMMAND "./install_apidox" "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" "${HTML_INSTALL_DIR}" "${CMAKE_INSTALL_PREFIX}"
- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/cmake/")
+add_custom_target( install-apidox
+ COMMAND ${CMAKE_COMMAND} -E echo Apidox installed in ${HTML_INSTALL_DIR}/en/${PROJECT_NAME}-apidocs
+)
+
+install( CODE "
+ if( EXISTS ${CMAKE_BINARY_DIR}/apidocs )
+ file(
+ INSTALL ${CMAKE_BINARY_DIR}/apidocs/
+ DESTINATION ${HTML_INSTALL_DIR}/en/${PROJECT_NAME}-apidocs
+ PATTERN doxygen_sqlite3.db EXCLUDE
+ PATTERN installdox-slow EXCLUDE
+ )
+ endif()"
+)
##### optional stuff ############################
@@ -165,9 +191,6 @@ option( BUILD_KMOBILE "Build kmobile" ${BUILD_ALL} )
option( BUILD_DOC "Build doc" ${BUILD_ALL} )
option( BUILD_KONTACT "Build kontact" ${BUILD_ALL} )
-# deprecated
-option( BUILD_KITCHENSYNC "Build kitchensync" OFF )
-
##### configure checks ##########################
@@ -237,8 +260,6 @@ tde_conditional_add_subdirectory( BUILD_KMOBILE kmobile )
tde_conditional_add_subdirectory( BUILD_DOC doc )
tde_conditional_add_subdirectory( BUILD_KONTACT kontact )
-# deprecated
-tde_conditional_add_subdirectory( BUILD_KITCHENSYNC kitchensync )
##### write configure files #####################
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index 1496b0d5..67500f42 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -59,95 +59,99 @@ if( WITH_GNOKII AND (BUILD_KADDRESSBOOK OR BUILD_KMOBILE) )
pkg_search_module( GNOKII gnokii )
if( NOT GNOKII_FOUND )
tde_message_fatal( "gnokii are requested, but was not found on your system" )
+ else( )
+ tde_save_and_set( CMAKE_REQUIRED_INCLUDES "${GNOKII_INCLUDE_DIRS}" )
+ check_include_file( "gnokii.h" HAVE_GNOKII_H )
+ tde_restore( CMAKE_REQUIRED_INCLUDES )
endif( )
endif( )
-if( BUILD_LIBTDENETWORK OR BUILD_CERTMANAGER OR BUILD_KMAIL OR BUILD_KADDRESSBOOK OR BUILD_KONTACT )
+if( (BUILD_LIBTDENETWORK OR BUILD_CERTMANAGER OR BUILD_KMAIL OR BUILD_KADDRESSBOOK OR BUILD_KONTACT) AND NOT HAVE_GPGME_0_4_BRANCH )
- if( NOT HAVE_GPGME_0_4_BRANCH )
- message( STATUS "checking for 'gpgme'" )
- endif( )
+ message( STATUS "checking for 'gpgme'" )
- # find gpgme-config
- find_program( GPGME_EXECUTABLE NAMES gpgme-config )
- if( NOT GPGME_EXECUTABLE )
- tde_message_fatal( "gpgme-config was NOT found.\n gpgme library is installed?" )
- endif( )
+ # check for gpgme
+ pkg_search_module( GPGME gpgme )
+ if( NOT GPGME_FOUND )
- # find gpg-error-config
- find_program( GPG_ERR_EXECUTABLE NAMES gpg-error-config )
- if( NOT GPG_ERR_EXECUTABLE )
- tde_message_fatal( "gpg-error-config was NOT found.\n gpg-error library is installed?" )
- endif( )
+ # find gpgme-config
+ find_program( GPGME_EXECUTABLE NAMES gpgme-config )
+ if( NOT GPGME_EXECUTABLE )
+ tde_message_fatal( "gpgme-config was NOT found.\n gpgme library is installed?" )
+ endif( )
- macro( __run_gpgme_config __type __var )
- execute_process(
- COMMAND ${GPGME_EXECUTABLE} --${__type}
- OUTPUT_VARIABLE ${__var}
- RESULT_VARIABLE __result
- OUTPUT_STRIP_TRAILING_WHITESPACE )
- if( _result )
- tde_message_fatal( "Unable to run ${GPGME_EXECUTABLE}!\n gpgme library incorrectly installed?\n Path to gpgme-config incorrect?" )
+ macro( __run_gpgme_config __type __var )
+ execute_process(
+ COMMAND ${GPGME_EXECUTABLE} --${__type}
+ OUTPUT_VARIABLE ${__var}
+ RESULT_VARIABLE __result
+ OUTPUT_STRIP_TRAILING_WHITESPACE )
+ if( _result )
+ tde_message_fatal( "Unable to run ${GPGME_EXECUTABLE}!\n gpgme library incorrectly installed?\n Path to gpgme-config incorrect?" )
+ endif( )
+ endmacro( )
+
+ __run_gpgme_config( version GPGME_VERSION )
+ __run_gpgme_config( cflags GPGME_INCLUDE_DIRS )
+ __run_gpgme_config( libs GPGME_LIBRARIES )
+
+ if( GPGME_INCLUDE_DIRS )
+ string( REGEX REPLACE "(^| +)-I" ";" GPGME_INCLUDE_DIRS "${GPGME_INCLUDE_DIRS}" )
endif( )
- endmacro( )
-
- macro( __run_gpgerr_config __type __var )
- execute_process(
- COMMAND ${GPG_ERR_EXECUTABLE} --${__type}
- OUTPUT_VARIABLE ${__var}
- RESULT_VARIABLE __result
- OUTPUT_STRIP_TRAILING_WHITESPACE )
- if( _result )
- tde_message_fatal( "Unable to run ${GPG_ERR_EXECUTABLE}!\n gpg-error library incorrectly installed?\n Path to gpgme-config are incorrect?" )
+ if( GPGME_LIBRARIES )
+ string( REGEX REPLACE "(^| +)-l" ";" GPGME_LIBRARIES "${GPGME_LIBRARIES}" )
endif( )
- endmacro( )
- __run_gpgme_config( version GPGME_VERSION )
- __run_gpgme_config( cflags GPGME_INCLUDE_DIRS )
- __run_gpgme_config( libs GPGME_LIBRARIES )
+ endif()
- __run_gpgerr_config( version GPGERR_VERSION )
- __run_gpgerr_config( cflags GPGERR_INCLUDE_DIRS )
- __run_gpgerr_config( libs GPGERR_LIBRARIES )
+ # check for gpg-error
+ pkg_search_module( GPGERR gpg-error )
+ if( NOT GPGERR_FOUND )
- # cleanup
- if( GPGME_INCLUDE_DIRS )
- string( REGEX REPLACE "(^| )-I" ";" GPGME_INCLUDE_DIRS "${GPGME_INCLUDE_DIRS}" )
- endif( )
- if( GPGME_LIBRARIES )
- string( REGEX REPLACE "(^| )-l" ";" GPGME_LIBRARIES "${GPGME_LIBRARIES}" )
- endif( )
- if( GPGERR_INCLUDE_DIRS )
- string( REGEX REPLACE "(^| )-I" ";" GPGERR_INCLUDE_DIRS "${GPGERR_INCLUDE_DIRS}" )
- endif( )
- if( GPGERR_LIBRARIES )
- string( REGEX REPLACE "(^| )-l" ";" GPGERR_LIBRARIES "${GPGERR_LIBRARIES}" )
- endif( )
- set( GPGME_INCLUDE_DIRS "${GPGME_INCLUDE_DIRS} ${GPGERR_INCLUDE_DIRS}" CACHE INTERNAL "" FORCE )
- set( GPGME_LIBRARIES "${GPGME_LIBRARIES} ${GPGERR_LIBRARIES}" CACHE INTERNAL "" FORCE )
- string( REGEX REPLACE " ;" ";" GPGME_INCLUDE_DIRS "${GPGME_INCLUDE_DIRS}" )
- string( REGEX REPLACE " ;" ";" GPGME_LIBRARIES "${GPGME_LIBRARIES}" )
- set( GPGME_INCLUDE_DIRS "${GPGME_INCLUDE_DIRS}" CACHE INTERNAL "" FORCE )
- set( GPGME_LIBRARIES "${GPGME_LIBRARIES}" CACHE INTERNAL "" FORCE )
+ # find gpg-error-config
+ find_program( GPG_ERR_EXECUTABLE NAMES gpgrt-config gpg-error-config )
+ if( NOT GPG_ERR_EXECUTABLE )
+ tde_message_fatal( "gpgrt-config or gpg-error-config was NOT found.\n gpg-error library is installed?" )
+ endif( )
- # assuming that all newer system have gpgme >= 0.4
- set( HAVE_GPGME_0_4_BRANCH 1 CACHE INTERNAL "" )
+ macro( __run_gpgerr_config __type __var )
+ execute_process(
+ COMMAND ${GPG_ERR_EXECUTABLE} --${__type}
+ OUTPUT_VARIABLE ${__var}
+ RESULT_VARIABLE __result
+ OUTPUT_STRIP_TRAILING_WHITESPACE )
+ if( _result )
+ tde_message_fatal( "Unable to run ${GPG_ERR_EXECUTABLE}!\n gpg-error library incorrectly installed?\n Path to gpgme-config are incorrect?" )
+ endif( )
+ endmacro( )
+
+ __run_gpgerr_config( version GPGERR_VERSION )
+ __run_gpgerr_config( cflags GPGERR_INCLUDE_DIRS )
+ __run_gpgerr_config( libs GPGERR_LIBRARIES )
+
+ if( GPGERR_INCLUDE_DIRS )
+ string( REGEX REPLACE "(^| +)-I" ";" GPGERR_INCLUDE_DIRS "${GPGERR_INCLUDE_DIRS}" )
+ endif( )
+ if( GPGERR_LIBRARIES )
+ string( REGEX REPLACE "(^| +)-l" ";" GPGERR_LIBRARIES "${GPGERR_LIBRARIES}" )
+ endif( )
- # NOTE: assume we have largefile support (need for gpgme)
- # FIXME: to be sure, we must check it
- add_definitions( -D_FILE_OFFSET_BITS=64 )
+ endif()
- if( NOT HAVE_GPGME_0_4_BRANCH )
- message( STATUS " found 'gpgme', version ${GPGME_VERSION}" )
- endif( )
+ # assuming that all newer system have gpgme >= 0.4
+ set( GPGME_INCLUDE_DIRS "${GPGME_INCLUDE_DIRS};${GPGERR_INCLUDE_DIRS}" CACHE INTERNAL "" FORCE )
+ set( GPGME_LIBRARIES "${GPGME_LIBRARIES};${GPGERR_LIBRARIES}" CACHE INTERNAL "" FORCE )
+ set( HAVE_GPGME_0_4_BRANCH 1 CACHE INTERNAL "" )
+ message( STATUS " found 'gpgme', version ${GPGME_VERSION}" )
# check for various GPGME features
tde_save( CMAKE_CXX_FLAGS )
+ tde_save( CMAKE_REQUIRED_INCLUDES )
tde_save( CMAKE_REQUIRED_LIBRARIES )
string( REGEX REPLACE "-include tqt.h" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" )
- # See FIXME above regarding -D_FILE_OFFSET_BITS=64
- set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GPGME_INCLUDE_DIRS} -D_FILE_OFFSET_BITS=64")
+ set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LARGEFILES_DEFINITIONS}")
+ set( CMAKE_REQUIRED_INCLUDES "${GPGME_INCLUDE_DIRS}")
set( CMAKE_REQUIRED_LIBRARIES "${GPGME_LIBRARIES}")
# check for GPGME_KEYLIST_MODE_VALIDATE
@@ -206,21 +210,30 @@ if( BUILD_LIBTDENETWORK OR BUILD_CERTMANAGER OR BUILD_KMAIL OR BUILD_KADDRESSBOO
# done checking for GPGME features
tde_restore( CMAKE_CXX_FLAGS )
+ tde_restore( CMAKE_REQUIRED_INCLUDES )
tde_restore( CMAKE_REQUIRED_LIBRARIES )
endif( )
if( BUILD_KARM AND WITH_XSCREENSAVER )
- check_library_exists( Xss XScreenSaverQueryInfo "" HAVE_XSSLIB )
- if( HAVE_XSSLIB )
- pkg_search_module( XSS xscrnsaver )
- else( )
- check_library_exists( Xext XScreenSaverQueryInfo "" HAVE_XSSLIB )
+ pkg_search_module( XSS xscrnsaver )
+
+ if( XSS_FOUND )
+ tde_save_and_set( CMAKE_REQUIRED_INCLUDES "${XSS_INCLUDE_DIRS}" )
+ check_library_exists( Xss XScreenSaverQueryInfo "${XSS_LIBRARY_DIRS}" HAVE_XSSLIB )
+ tde_restore( CMAKE_REQUIRED_INCLUDES )
+ else( XSS_FOUND )
+ check_library_exists( Xss XScreenSaverQueryInfo "" HAVE_XSSLIB )
+ endif( XSS_FOUND )
+
+ if( NOT HAVE_XSSLIB )
+ check_library_exists( Xext XScreenSaverQueryInfo "$(XEXT_LIBRARY_DIRS}" HAVE_XSSLIB )
if( HAVE_XSSLIB )
pkg_search_module( XSS xext )
endif( )
endif( )
+
check_include_file( X11/extensions/scrnsaver.h HAVE_XSCREENSAVER_H )
if( HAVE_XSSLIB AND HAVE_XSCREENSAVER_H )
set( HAVE_LIBXSS 1 )
@@ -229,6 +242,25 @@ if( BUILD_KARM AND WITH_XSCREENSAVER )
endif( )
endif( )
+if( BUILD_TDERESOURCES AND WITH_GROUPWISE )
+ check_symbol_exists( strrchr "string.h" HAVE_STRRCHR )
+ check_symbol_exists( strtod "stdlib.h" HAVE_STRTOD )
+ check_symbol_exists( sscanf "stdio.h" HAVE_SSCANF )
+ check_symbol_exists( strtol "stdlib.h" HAVE_STRTOL )
+ check_symbol_exists( strtoul "stdlib.h" HAVE_STRTOUL )
+ check_symbol_exists( strtoll "stdlib.h" HAVE_STRTOLL )
+ check_symbol_exists( strtoull "stdlib.h" HAVE_STRTOULL )
+ check_symbol_exists( gettimeofday "sys/time.h" HAVE_GETTIMEOFDAY )
+ check_include_file( "sys/timeb.h" HAVE_SYS_TIMEB_H )
+ check_symbol_exists( ftime "sys/timeb.h" HAVE_FTIME )
+ check_symbol_exists( rand_r "stdlib.h" HAVE_RAND_R )
+ check_symbol_exists( gmtime_r "time.h" HAVE_GMTIME_R )
+ check_symbol_exists( localtime_r "time.h" HAVE_LOCALTIME_R )
+ check_symbol_exists( timegm "time.h" HAVE_TIMEGM )
+ check_symbol_exists( wctomb "stdlib.h" HAVE_WCTOMB )
+ check_symbol_exists( mbtowc "stdlib.h" HAVE_MBTOWC )
+ check_symbol_exists( isnan "math.h" HAVE_ISNAN )
+endif ( )
# required stuff
find_package( TQt )
diff --git a/MAINTAINERS b/MAINTAINERS
index 3a2dc538..02a29d9f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -10,8 +10,6 @@ kdgantt Kalle Dalheimer <kalle@klaralvdalens-datakonsult.se>
tdefile-plugins ?
kgantt ? Jochen Hanff <jochen@ifb.bv.tu-berlin.de>
tdeioslaves ? Marc Mutz <mutz@kde.org>
-kitchensync Cornelius Schumacher <schumacher@kde.org>
- Holger Freyther <freyther@kde.org>
kmail Ingo Kloecker <kloecker@kde.org>
Don Sanders <sanders@kde.org>
kmailcvt Danny Kukawka <danny.kukawka@web.de>
diff --git a/Mainpage.dox b/Mainpage.dox
index cd48b5e7..7cc18a94 100644
--- a/Mainpage.dox
+++ b/Mainpage.dox
@@ -34,9 +34,6 @@
* - <a href="kgantt/html/index.html"><b>kgantt</b></a>
* (<a href="kgantt/html/classes.html">classes</a>)\n
* <i></i>
- * - <a href="kitchensync/html/index.html"><b>kitchensync</b></a>
- * (<a href="kitchensync/html/classes.html">classes</a>)\n
- * <i>Generic Syncing.</i>
* - <a href="kmail/html/index.html"><b>kmail</b></a>
* (<a href="kmail/html/classes.html">classes</a>)\n
* <i>A fully-featured email client.</i>
diff --git a/Makefile.am.in b/Makefile.am.in
index 929b518c..c0c3b35e 100644
--- a/Makefile.am.in
+++ b/Makefile.am.in
@@ -11,7 +11,7 @@
COMPILE_AFTER_libkmime = libemailfunctions
COMPILE_AFTER_libemailfunctions = libkcal libkpimidentities kmail korganizer
COMPILE_AFTER_libkholidays = korganizer kontact
-COMPILE_AFTER_libkcal = kalarm kitchensync konsolekalendar korganizer libkpimexchange libtdepim karm knotes tderesources tdefile-plugins
+COMPILE_AFTER_libkcal = kalarm konsolekalendar korganizer libkpimexchange libtdepim karm knotes tderesources tdefile-plugins
COMPILE_AFTER_mimelib = korn kmail
COMPILE_AFTER_libtdenetwork = kmail knode
COMPILE_AFTER_libksieve = kmail
@@ -34,7 +34,6 @@ COMPILE_BEFORE_kalarm = libtdepim libkmime
COMPILE_BEFORE_tderesources = libkpimexchange knotes kaddressbook kode
COMPILE_BEFORE_wizards = libtdepim tderesources korganizer kaddressbook kmail
COMPILE_BEFORE_korn = libtdenetwork
-COMPILE_BEFORE_kitchensync = libtdepim
COMPILE_BEFORE_akregator = libtdepim
COMPILE_BEFORE_knotes = libtdepim
COMPILE_BEFORE_konsolekalendar = libtdepim
diff --git a/README b/README
index 7d71a059..f4443fd6 100644
--- a/README
+++ b/README
@@ -31,7 +31,6 @@ What it is
* kalarmd: alarm monitoring daemon, shared by korganizer and kalarm.
* kontact: Integrated PIM application
* karm: Time tracker.
-* kitchensync: Synchronization framework, still under heavy development.
* tdefile-plugins: vCard KFIleItem plugin.
* knotes: yellow notes application
* konsolecalendar: Command line tool for accessing calendar files.
diff --git a/README.Kolab b/README.Kolab
index 97e2c5ba..98810c0f 100644
--- a/README.Kolab
+++ b/README.Kolab
@@ -59,11 +59,6 @@ KPilot:
TODO
-KitchenSync:
-
-TODO
-
-
kalarmd:
TODO
diff --git a/admin b/admin
-Subproject 68f23556e638353e46b444d3a4863a64936bd36
+Subproject 59a8bf7c09f87fbccd6dc2987145c7216e043e7
diff --git a/akregator/HACKING b/akregator/HACKING
index 7ff48118..3dc85fbd 100644
--- a/akregator/HACKING
+++ b/akregator/HACKING
@@ -87,17 +87,17 @@ class should be roughly as follows:
public typedefs:
public ctors:
public methods:
-public Q_SLOTS:
-Q_SIGNALS:
+public slots:
+signals:
protected methods:
-protected Q_SLOTS:
+protected slots:
protected fields:
private methods:
-private Q_SLOTS:
+private slots:
private fields:
private ctors: // if you define ctors/dtor as private, put them at end
-If there are no private Q_SLOTS there is no need for two private sections, however
+If there are no private slots there is no need for two private sections, however
private functions and private variables should be clearly separated.
The implementations files -- .cpp files -- should follow (when possible) the
@@ -145,15 +145,15 @@ class QSomething;
namespace Akregator {
-class Test : public QObject
+class Test : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
typedef QValueList<Test> list;
Test();
- Test(QString someString);
+ Test(TQString someString);
explicit Test(int i = 0);
virtual ~Test();
@@ -163,10 +163,10 @@ class Test : public QObject
static Test *instance() { return m_instance; }
- public Q_SLOTS:
+ public slots:
void receive(QSomething &);
- Q_SIGNALS:
+ signals:
void send(QSomething &);
protected:
@@ -174,7 +174,7 @@ class Test : public QObject
static void someProtectedStaticFunc();
- protected Q_SLOTS:
+ protected slots:
void protectedSlot();
protected:
@@ -185,7 +185,7 @@ class Test : public QObject
static int staticPrivateMethod();
- private Q_SLOTS:
+ private slots:
void privateSlotIndeed(int youWonder);
private:
@@ -212,7 +212,7 @@ test.cpp:
namespace Akregator {
Test::Test()
- : QObject()
+ : TQObject()
, m_protectedVar(0)
, m_privateVar(0)
, m_tastyThing(0)
@@ -220,8 +220,8 @@ Test::Test()
{
}
-Test::Test(QString someString)
- : QObject()
+Test::Test(TQString someString)
+ : TQObject()
, m_protectedVar(0)
, m_privateVar(0)
, m_tastyThing(someString)
@@ -230,7 +230,7 @@ Test::Test(QString someString)
}
Test::Test(int i);
- : QObject()
+ : TQObject()
, m_protectedVar(0)
, m_privateVar(0)
, m_tastyThing(i)
diff --git a/akregator/src/CMakeL10n.txt b/akregator/src/CMakeL10n.txt
index 0a4bcd80..ce9c5230 100644
--- a/akregator/src/CMakeL10n.txt
+++ b/akregator/src/CMakeL10n.txt
@@ -1,3 +1,15 @@
##### create translation templates ##############
tde_l10n_create_template( "akregator" )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/akregator-desktops/"
+ SOURCES *.desktop *.protocol
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/akregator-eventsrc/"
+ SOURCES eventsrc
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/akregator/src/CMakeLists.txt b/akregator/src/CMakeLists.txt
index b1bb367d..557d2acf 100644
--- a/akregator/src/CMakeLists.txt
+++ b/akregator/src/CMakeLists.txt
@@ -46,26 +46,39 @@ install( FILES
tde_install_icons( )
-install( FILES
- akregator.desktop
- DESTINATION ${XDG_APPS_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE akregator.desktop
+ PO_DIR akregator-desktops
+)
install( FILES
akregator.kcfg
DESTINATION ${KCFG_INSTALL_DIR} )
-install( FILES
- akregator_part.desktop feed.protocol
- DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE akregator_part.desktop feed.protocol
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR akregator-desktops
+)
-install( FILES
- akregator_plugin.desktop
- DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE akregator_plugin.desktop
+ DESTINATION ${SERVICETYPES_INSTALL_DIR}
+ PO_DIR akregator-desktops
+)
-install( FILES
- akregator_shell.rc articleviewer.rc eventsrc
+tde_create_translated_desktop(
+ SOURCE eventsrc
+ DESTINATION ${DATA_INSTALL_DIR}/akregator
+ PO_DIR akregator-eventsrc
+)
+
+install(
+ FILES
+ akregator_shell.rc articleviewer.rc
pageviewer.rc akregator_part.rc
- DESTINATION ${DATA_INSTALL_DIR}/akregator )
+ DESTINATION ${DATA_INSTALL_DIR}/akregator
+)
##### akregatorprivate (shared) #################
diff --git a/akregator/src/about/akregator.css b/akregator/src/about/akregator.css
index 9c31cfe3..ab0bb774 100644
--- a/akregator/src/about/akregator.css
+++ b/akregator/src/about/akregator.css
@@ -15,6 +15,3 @@
background-position: bottom right;
}
*/
-
-/* vim:set sw=2 et nocindent smartindent: */
-
diff --git a/akregator/src/about/main.html b/akregator/src/about/main.html
index 5bcca3d4..52cfe4ad 100644
--- a/akregator/src/about/main.html
+++ b/akregator/src/about/main.html
@@ -64,4 +64,3 @@
<div id="footer"><div id="footerL"/><div id="footerR"/></div>
</body>
</html>
-<!-- vim:set sw=2 et nocindent smartindent: -->
diff --git a/akregator/src/aboutdata.h b/akregator/src/aboutdata.h
index aa461134..9b57d201 100644
--- a/akregator/src/aboutdata.h
+++ b/akregator/src/aboutdata.h
@@ -26,7 +26,7 @@
#define ABOUTDATA_H
#include <tdeaboutdata.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#define AKREGATOR_VERSION "1.2.9"
diff --git a/akregator/src/actionmanagerimpl.cpp b/akregator/src/actionmanagerimpl.cpp
index 7fa61cdc..6c7b3cee 100644
--- a/akregator/src/actionmanagerimpl.cpp
+++ b/akregator/src/actionmanagerimpl.cpp
@@ -161,16 +161,16 @@ void ActionManagerImpl::setTagSet(TagSet* tagSet)
if (d->tagSet != 0)
{
- disconnect(d->tagSet, TQT_SIGNAL(signalTagAdded(const Tag&)), this, TQT_SLOT(slotTagAdded(const Tag&)));
- disconnect(d->tagSet, TQT_SIGNAL(signalTagRemoved(const Tag&)), this, TQT_SLOT(slotTagRemoved(const Tag&)));
+ disconnect(d->tagSet, TQ_SIGNAL(signalTagAdded(const Tag&)), this, TQ_SLOT(slotTagAdded(const Tag&)));
+ disconnect(d->tagSet, TQ_SIGNAL(signalTagRemoved(const Tag&)), this, TQ_SLOT(slotTagRemoved(const Tag&)));
}
d->tagSet = tagSet;
if (tagSet != 0)
{
- connect(d->tagSet, TQT_SIGNAL(signalTagAdded(const Tag&)), this, TQT_SLOT(slotTagAdded(const Tag&)));
- connect(d->tagSet, TQT_SIGNAL(signalTagRemoved(const Tag&)), this, TQT_SLOT(slotTagRemoved(const Tag&)));
+ connect(d->tagSet, TQ_SIGNAL(signalTagAdded(const Tag&)), this, TQ_SLOT(slotTagAdded(const Tag&)));
+ connect(d->tagSet, TQ_SIGNAL(signalTagRemoved(const Tag&)), this, TQ_SLOT(slotTagRemoved(const Tag&)));
}
TQValueList<TagAction*> actions = d->tagActions.values();
@@ -200,7 +200,7 @@ void ActionManagerImpl::slotTagAdded(const Tag& tag)
if (!d->tagActions.contains(tag.id()))
{
- d->tagActions[tag.id()] = new TagAction(tag, TQT_TQOBJECT(d->view), TQT_SLOT(slotAssignTag(const Tag&, bool)), d->tagMenu);
+ d->tagActions[tag.id()] = new TagAction(tag, d->view, TQ_SLOT(slotAssignTag(const Tag&, bool)), d->tagMenu);
d->tagMenu->insert(d->tagActions[tag.id()]);
}
}
@@ -263,15 +263,15 @@ void ActionManagerImpl::initTrayIcon(TrayIcon* trayIcon)
void ActionManagerImpl::initPart()
{
- new TDEAction(i18n("&Import Feeds..."), "", "", d->part, TQT_SLOT(fileImport()), d->actionCollection, "file_import");
- new TDEAction(i18n("&Export Feeds..."), "", "", d->part, TQT_SLOT(fileExport()), d->actionCollection, "file_export");
- //new TDEAction(i18n("&Get Feeds From Web..."), "", "", d->part, TQT_SLOT(fileGetFeeds()), d->actionCollection, "file_getfromweb");
+ new TDEAction(i18n("&Import Feeds..."), "", "", d->part, TQ_SLOT(fileImport()), d->actionCollection, "file_import");
+ new TDEAction(i18n("&Export Feeds..."), "", "", d->part, TQ_SLOT(fileExport()), d->actionCollection, "file_export");
+ //new TDEAction(i18n("&Get Feeds From Web..."), "", "", d->part, TQ_SLOT(fileGetFeeds()), d->actionCollection, "file_getfromweb");
- new TDEAction(i18n("Send &Link Address..."), "mail_generic", "", d->part, TQT_SLOT(fileSendLink()), d->actionCollection, "file_sendlink");
- new TDEAction(i18n("Send &File..."), "mail_generic", "", d->part, TQT_SLOT(fileSendFile()), d->actionCollection, "file_sendfile");
+ new TDEAction(i18n("Send &Link Address..."), "mail_generic", "", d->part, TQ_SLOT(fileSendLink()), d->actionCollection, "file_sendlink");
+ new TDEAction(i18n("Send &File..."), "mail_generic", "", d->part, TQ_SLOT(fileSendFile()), d->actionCollection, "file_sendfile");
- KStdAction::configureNotifications(d->part, TQT_SLOT(showKNotifyOptions()), d->actionCollection); // options_configure_notifications
- new TDEAction( i18n("Configure &Akregator..."), "configure", "", d->part, TQT_SLOT(showOptions()), d->actionCollection, "akregator_configure_akregator" );
+ KStdAction::configureNotifications(d->part, TQ_SLOT(showKNotifyOptions()), d->actionCollection); // options_configure_notifications
+ new TDEAction( i18n("Configure &Akregator..."), "configure", "", d->part, TQ_SLOT(showOptions()), d->actionCollection, "akregator_configure_akregator" );
}
void ActionManagerImpl::initView(View* view)
@@ -282,51 +282,51 @@ void ActionManagerImpl::initView(View* view)
d->view = view;
// tag actions
- new TDEAction(i18n("&New Tag..."), "", "", TQT_TQOBJECT(d->view), TQT_SLOT(slotNewTag()), actionCollection(), "tag_new");
+ new TDEAction(i18n("&New Tag..."), "", "", d->view, TQ_SLOT(slotNewTag()), actionCollection(), "tag_new");
// Feed/Feed Group popup menu
- new TDEAction(i18n("&Open Homepage"), "", "Ctrl+H", TQT_TQOBJECT(d->view), TQT_SLOT(slotOpenHomepage()), actionCollection(), "feed_homepage");
- new TDEAction(i18n("&Add Feed..."), "bookmark_add", "Insert", TQT_TQOBJECT(d->view), TQT_SLOT(slotFeedAdd()), actionCollection(), "feed_add");
- new TDEAction(i18n("Ne&w Folder..."), "folder-new", "Shift+Insert", TQT_TQOBJECT(d->view), TQT_SLOT(slotFeedAddGroup()), actionCollection(), "feed_add_group");
- new TDEAction(i18n("&Delete Feed"), "edit-delete", "Alt+Delete", TQT_TQOBJECT(d->view), TQT_SLOT(slotFeedRemove()), actionCollection(), "feed_remove");
- new TDEAction(i18n("&Edit Feed..."), "edit", "F2", TQT_TQOBJECT(d->view), TQT_SLOT(slotFeedModify()), actionCollection(), "feed_modify");
+ new TDEAction(i18n("&Open Homepage"), "", "Ctrl+H", d->view, TQ_SLOT(slotOpenHomepage()), actionCollection(), "feed_homepage");
+ new TDEAction(i18n("&Add Feed..."), "bookmark_add", "Insert", d->view, TQ_SLOT(slotFeedAdd()), actionCollection(), "feed_add");
+ new TDEAction(i18n("Ne&w Folder..."), "folder-new", "Shift+Insert", d->view, TQ_SLOT(slotFeedAddGroup()), actionCollection(), "feed_add_group");
+ new TDEAction(i18n("&Delete Feed"), "edit-delete", "Alt+Delete", d->view, TQ_SLOT(slotFeedRemove()), actionCollection(), "feed_remove");
+ new TDEAction(i18n("&Edit Feed..."), "edit", "F2", d->view, TQ_SLOT(slotFeedModify()), actionCollection(), "feed_modify");
TDEActionMenu* vm = new TDEActionMenu( i18n( "&View Mode" ), actionCollection(), "view_mode" );
- TDERadioAction *ra = new TDERadioAction(i18n("&Normal View"), "view_top_bottom", "Ctrl+Shift+1", TQT_TQOBJECT(d->view), TQT_SLOT(slotNormalView()), actionCollection(), "normal_view");
+ TDERadioAction *ra = new TDERadioAction(i18n("&Normal View"), "view_top_bottom", "Ctrl+Shift+1", d->view, TQ_SLOT(slotNormalView()), actionCollection(), "normal_view");
ra->setExclusiveGroup( "ViewMode" );
vm->insert(ra);
- ra = new TDERadioAction(i18n("&Widescreen View"), "view_left_right", "Ctrl+Shift+2", TQT_TQOBJECT(d->view), TQT_SLOT(slotWidescreenView()), actionCollection(), "widescreen_view");
+ ra = new TDERadioAction(i18n("&Widescreen View"), "view_left_right", "Ctrl+Shift+2", d->view, TQ_SLOT(slotWidescreenView()), actionCollection(), "widescreen_view");
ra->setExclusiveGroup( "ViewMode" );
vm->insert(ra);
- ra = new TDERadioAction(i18n("C&ombined View"), "view_text", "Ctrl+Shift+3", TQT_TQOBJECT(d->view), TQT_SLOT(slotCombinedView()), actionCollection(), "combined_view");
+ ra = new TDERadioAction(i18n("C&ombined View"), "view_text", "Ctrl+Shift+3", d->view, TQ_SLOT(slotCombinedView()), actionCollection(), "combined_view");
ra->setExclusiveGroup( "ViewMode" );
vm->insert(ra);
// toolbar / feed menu
- new TDEAction(i18n("&Fetch Feed"), "go-down", TDEStdAccel::shortcut(TDEStdAccel::Reload), TQT_TQOBJECT(d->view), TQT_SLOT(slotFetchCurrentFeed()), actionCollection(), "feed_fetch");
- new TDEAction(i18n("Fe&tch All Feeds"), "go-bottom", "Ctrl+L", TQT_TQOBJECT(d->view), TQT_SLOT(slotFetchAllFeeds()), actionCollection(), "feed_fetch_all");
+ new TDEAction(i18n("&Fetch Feed"), "go-down", TDEStdAccel::shortcut(TDEStdAccel::Reload), d->view, TQ_SLOT(slotFetchCurrentFeed()), actionCollection(), "feed_fetch");
+ new TDEAction(i18n("Fe&tch All Feeds"), "go-bottom", "Ctrl+L", d->view, TQ_SLOT(slotFetchAllFeeds()), actionCollection(), "feed_fetch_all");
- TDEAction* stopAction = new TDEAction(i18n( "&Abort Fetches" ), "process-stop", Key_Escape, Kernel::self()->fetchQueue(), TQT_SLOT(slotAbort()), actionCollection(), "feed_stop");
+ TDEAction* stopAction = new TDEAction(i18n( "&Abort Fetches" ), "process-stop", Key_Escape, Kernel::self()->fetchQueue(), TQ_SLOT(slotAbort()), actionCollection(), "feed_stop");
stopAction->setEnabled(false);
- new TDEAction(i18n("&Mark Feed as Read"), "goto", "Ctrl+R", TQT_TQOBJECT(d->view), TQT_SLOT(slotMarkAllRead()), actionCollection(), "feed_mark_all_as_read");
- new TDEAction(i18n("Ma&rk All Feeds as Read"), "goto", "Ctrl+Shift+R", TQT_TQOBJECT(d->view), TQT_SLOT(slotMarkAllFeedsRead()), actionCollection(), "feed_mark_all_feeds_as_read");
+ new TDEAction(i18n("&Mark Feed as Read"), "goto", "Ctrl+R", d->view, TQ_SLOT(slotMarkAllRead()), actionCollection(), "feed_mark_all_as_read");
+ new TDEAction(i18n("Ma&rk All Feeds as Read"), "goto", "Ctrl+Shift+R", d->view, TQ_SLOT(slotMarkAllFeedsRead()), actionCollection(), "feed_mark_all_feeds_as_read");
// Settings menu
- TDEToggleAction* sqf = new TDEToggleAction(i18n("Show Quick Filter"), TQString(), 0, TQT_TQOBJECT(d->view), TQT_SLOT(slotToggleShowQuickFilter()), actionCollection(), "show_quick_filter");
+ TDEToggleAction* sqf = new TDEToggleAction(i18n("Show Quick Filter"), TQString(), 0, d->view, TQ_SLOT(slotToggleShowQuickFilter()), actionCollection(), "show_quick_filter");
sqf->setChecked( Settings::showQuickFilter() );
- new TDEAction( i18n("Open in Tab"), "tab_new", "Shift+Return", TQT_TQOBJECT(d->view), TQT_SLOT(slotOpenCurrentArticle()), actionCollection(), "article_open" );
- new TDEAction( i18n("Open in Background Tab"), TQString(), "tab_new", TQT_TQOBJECT(d->view), TQT_SLOT(slotOpenCurrentArticleBackgroundTab()), actionCollection(), "article_open_background_tab" );
- new TDEAction( i18n("Open in External Browser"), "window-new", "Ctrl+Shift+Return", TQT_TQOBJECT(d->view), TQT_SLOT(slotOpenCurrentArticleExternal()), actionCollection(), "article_open_external" );
- new TDEAction( i18n("Copy Link Address"), TQString(), TQString(), TQT_TQOBJECT(d->view), TQT_SLOT(slotCopyLinkAddress()), actionCollection(), "article_copy_link_address" );
+ new TDEAction( i18n("Open in Tab"), "tab_new", "Shift+Return", d->view, TQ_SLOT(slotOpenCurrentArticle()), actionCollection(), "article_open" );
+ new TDEAction( i18n("Open in Background Tab"), TQString(), "tab_new", d->view, TQ_SLOT(slotOpenCurrentArticleBackgroundTab()), actionCollection(), "article_open_background_tab" );
+ new TDEAction( i18n("Open in External Browser"), "window-new", "Ctrl+Shift+Return", d->view, TQ_SLOT(slotOpenCurrentArticleExternal()), actionCollection(), "article_open_external" );
+ new TDEAction( i18n("Copy Link Address"), TQString(), TQString(), d->view, TQ_SLOT(slotCopyLinkAddress()), actionCollection(), "article_copy_link_address" );
- new TDEAction(i18n("Pre&vious Unread Article"), "", Key_Minus, TQT_TQOBJECT(d->view), TQT_SLOT(slotPrevUnreadArticle()),actionCollection(), "go_prev_unread_article");
- new TDEAction(i18n("Ne&xt Unread Article"), "", Key_Plus, TQT_TQOBJECT(d->view), TQT_SLOT(slotNextUnreadArticle()),actionCollection(), "go_next_unread_article");
+ new TDEAction(i18n("Pre&vious Unread Article"), "", Key_Minus, d->view, TQ_SLOT(slotPrevUnreadArticle()),actionCollection(), "go_prev_unread_article");
+ new TDEAction(i18n("Ne&xt Unread Article"), "", Key_Plus, d->view, TQ_SLOT(slotNextUnreadArticle()),actionCollection(), "go_next_unread_article");
- new TDEAction(i18n("&Delete"), "edit-delete", "Delete", TQT_TQOBJECT(d->view), TQT_SLOT(slotArticleDelete()), actionCollection(), "article_delete");
+ new TDEAction(i18n("&Delete"), "edit-delete", "Delete", d->view, TQ_SLOT(slotArticleDelete()), actionCollection(), "article_delete");
if (Settings::showTaggingGUI())
{
@@ -336,39 +336,39 @@ void ActionManagerImpl::initView(View* view)
TDEActionMenu* statusMenu = new TDEActionMenu ( i18n( "&Mark As" ),
actionCollection(), "article_set_status" );
- d->speakSelectedArticlesAction = new TDEAction(i18n("&Speak Selected Articles"), "kttsd", "", TQT_TQOBJECT(d->view), TQT_SLOT(slotTextToSpeechRequest()), actionCollection(), "akr_texttospeech");
+ d->speakSelectedArticlesAction = new TDEAction(i18n("&Speak Selected Articles"), "kttsd", "", d->view, TQ_SLOT(slotTextToSpeechRequest()), actionCollection(), "akr_texttospeech");
- TDEAction* abortTTS = new TDEAction(i18n( "&Stop Speaking" ), "media-playback-stop", Key_Escape, SpeechClient::self(), TQT_SLOT(slotAbortJobs()), actionCollection(), "akr_aborttexttospeech");
+ TDEAction* abortTTS = new TDEAction(i18n( "&Stop Speaking" ), "media-playback-stop", Key_Escape, SpeechClient::self(), TQ_SLOT(slotAbortJobs()), actionCollection(), "akr_aborttexttospeech");
abortTTS->setEnabled(false);
- connect(SpeechClient::self(), TQT_SIGNAL(signalActivated(bool)),
- abortTTS, TQT_SLOT(setEnabled(bool)));
+ connect(SpeechClient::self(), TQ_SIGNAL(signalActivated(bool)),
+ abortTTS, TQ_SLOT(setEnabled(bool)));
statusMenu->insert(new TDEAction(KGuiItem(i18n("as in: mark as read","&Read"), "",
i18n("Mark selected article as read")),
- "Ctrl+E", TQT_TQOBJECT(d->view), TQT_SLOT(slotSetSelectedArticleRead()),
+ "Ctrl+E", d->view, TQ_SLOT(slotSetSelectedArticleRead()),
actionCollection(), "article_set_status_read"));
statusMenu->insert(new TDEAction(KGuiItem(i18n("&New"), "",
i18n("Mark selected article as new")),
- "Ctrl+N", TQT_TQOBJECT(d->view), TQT_SLOT(slotSetSelectedArticleNew()),
+ "Ctrl+N", d->view, TQ_SLOT(slotSetSelectedArticleNew()),
actionCollection(), "article_set_status_new" ));
statusMenu->insert(new TDEAction(KGuiItem(i18n("&Unread"), "",
i18n("Mark selected article as unread")),
- "Ctrl+U", TQT_TQOBJECT(d->view), TQT_SLOT(slotSetSelectedArticleUnread()),
+ "Ctrl+U", d->view, TQ_SLOT(slotSetSelectedArticleUnread()),
actionCollection(), "article_set_status_unread"));
TDEToggleAction* importantAction = new TDEToggleAction(i18n("&Mark as Important"), "flag", "Ctrl+I", actionCollection(), "article_set_status_important");
importantAction->setCheckedState(i18n("Remove &Important Mark"));
- connect(importantAction, TQT_SIGNAL(toggled(bool)), TQT_TQOBJECT(d->view), TQT_SLOT(slotArticleToggleKeepFlag(bool)));
+ connect(importantAction, TQ_SIGNAL(toggled(bool)), d->view, TQ_SLOT(slotArticleToggleKeepFlag(bool)));
- new TDEAction( i18n("Move Node Up"), TQString(), "Shift+Alt+Up", TQT_TQOBJECT(view), TQT_SLOT(slotMoveCurrentNodeUp()), d->actionCollection, "feedstree_move_up" );
- new TDEAction( i18n("Move Node Down"), TQString(), "Shift+Alt+Down", TQT_TQOBJECT(view), TQT_SLOT(slotMoveCurrentNodeDown()), d->actionCollection, "feedstree_move_down" );
- new TDEAction( i18n("Move Node Left"), TQString(), "Shift+Alt+Left", TQT_TQOBJECT(view), TQT_SLOT(slotMoveCurrentNodeLeft()), d->actionCollection, "feedstree_move_left" );
- new TDEAction( i18n("Move Node Right"), TQString(), "Shift+Alt+Right", TQT_TQOBJECT(view), TQT_SLOT(slotMoveCurrentNodeRight()), d->actionCollection, "feedstree_move_right");
+ new TDEAction( i18n("Move Node Up"), TQString(), "Shift+Alt+Up", view, TQ_SLOT(slotMoveCurrentNodeUp()), d->actionCollection, "feedstree_move_up" );
+ new TDEAction( i18n("Move Node Down"), TQString(), "Shift+Alt+Down", view, TQ_SLOT(slotMoveCurrentNodeDown()), d->actionCollection, "feedstree_move_down" );
+ new TDEAction( i18n("Move Node Left"), TQString(), "Shift+Alt+Left", view, TQ_SLOT(slotMoveCurrentNodeLeft()), d->actionCollection, "feedstree_move_left" );
+ new TDEAction( i18n("Move Node Right"), TQString(), "Shift+Alt+Right", view, TQ_SLOT(slotMoveCurrentNodeRight()), d->actionCollection, "feedstree_move_right");
}
void ActionManagerImpl::initArticleViewer(ArticleViewer* articleViewer)
@@ -386,8 +386,8 @@ void ActionManagerImpl::initArticleListView(ArticleListView* articleList)
else
d->articleList = articleList;
- new TDEAction( i18n("&Previous Article"), TQString(), "Left", TQT_TQOBJECT(articleList), TQT_SLOT(slotPreviousArticle()), actionCollection(), "go_previous_article" );
- new TDEAction( i18n("&Next Article"), TQString(), "Right", TQT_TQOBJECT(articleList), TQT_SLOT(slotNextArticle()), actionCollection(), "go_next_article" );
+ new TDEAction( i18n("&Previous Article"), TQString(), "Left", articleList, TQ_SLOT(slotPreviousArticle()), actionCollection(), "go_previous_article" );
+ new TDEAction( i18n("&Next Article"), TQString(), "Right", articleList, TQ_SLOT(slotNextArticle()), actionCollection(), "go_next_article" );
}
void ActionManagerImpl::initListTabWidget(ListTabWidget* listTabWidget)
@@ -397,17 +397,17 @@ void ActionManagerImpl::initListTabWidget(ListTabWidget* listTabWidget)
else
d->listTabWidget = listTabWidget;
- new TDEAction(i18n("&Previous Feed"), "", "P", TQT_TQOBJECT(listTabWidget), TQT_SLOT(slotPrevFeed()),actionCollection(), "go_prev_feed");
- new TDEAction(i18n("&Next Feed"), "", "N", TQT_TQOBJECT(listTabWidget), TQT_SLOT(slotNextFeed()),actionCollection(), "go_next_feed");
- new TDEAction(i18n("N&ext Unread Feed"), "", "Alt+Plus", TQT_TQOBJECT(listTabWidget), TQT_SLOT(slotNextUnreadFeed()),actionCollection(), "go_next_unread_feed");
- new TDEAction(i18n("Prev&ious Unread Feed"), "", "Alt+Minus", TQT_TQOBJECT(listTabWidget), TQT_SLOT(slotPrevUnreadFeed()),actionCollection(), "go_prev_unread_feed");
-
- new TDEAction( i18n("Go to Top of Tree"), TQString(), "Ctrl+Home", TQT_TQOBJECT(listTabWidget), TQT_SLOT(slotItemBegin()), d->actionCollection, "feedstree_home" );
- new TDEAction( i18n("Go to Bottom of Tree"), TQString(), "Ctrl+End", TQT_TQOBJECT(listTabWidget), TQT_SLOT(slotItemEnd()), d->actionCollection, "feedstree_end" );
- new TDEAction( i18n("Go Left in Tree"), TQString(), "Ctrl+Left", TQT_TQOBJECT(listTabWidget), TQT_SLOT(slotItemLeft()), d->actionCollection, "feedstree_left" );
- new TDEAction( i18n("Go Right in Tree"), TQString(), "Ctrl+Right", TQT_TQOBJECT(listTabWidget), TQT_SLOT(slotItemRight()), d->actionCollection, "feedstree_right" );
- new TDEAction( i18n("Go Up in Tree"), TQString(), "Ctrl+Up", TQT_TQOBJECT(listTabWidget), TQT_SLOT(slotItemUp()), d->actionCollection, "feedstree_up" );
- new TDEAction( i18n("Go Down in Tree"), TQString(), "Ctrl+Down", TQT_TQOBJECT(listTabWidget), TQT_SLOT(slotItemDown()), d->actionCollection, "feedstree_down" );
+ new TDEAction(i18n("&Previous Feed"), "", "P", listTabWidget, TQ_SLOT(slotPrevFeed()),actionCollection(), "go_prev_feed");
+ new TDEAction(i18n("&Next Feed"), "", "N", listTabWidget, TQ_SLOT(slotNextFeed()),actionCollection(), "go_next_feed");
+ new TDEAction(i18n("N&ext Unread Feed"), "", "Alt+Plus", listTabWidget, TQ_SLOT(slotNextUnreadFeed()),actionCollection(), "go_next_unread_feed");
+ new TDEAction(i18n("Prev&ious Unread Feed"), "", "Alt+Minus", listTabWidget, TQ_SLOT(slotPrevUnreadFeed()),actionCollection(), "go_prev_unread_feed");
+
+ new TDEAction( i18n("Go to Top of Tree"), TQString(), "Ctrl+Home", listTabWidget, TQ_SLOT(slotItemBegin()), d->actionCollection, "feedstree_home" );
+ new TDEAction( i18n("Go to Bottom of Tree"), TQString(), "Ctrl+End", listTabWidget, TQ_SLOT(slotItemEnd()), d->actionCollection, "feedstree_end" );
+ new TDEAction( i18n("Go Left in Tree"), TQString(), "Ctrl+Left", listTabWidget, TQ_SLOT(slotItemLeft()), d->actionCollection, "feedstree_left" );
+ new TDEAction( i18n("Go Right in Tree"), TQString(), "Ctrl+Right", listTabWidget, TQ_SLOT(slotItemRight()), d->actionCollection, "feedstree_right" );
+ new TDEAction( i18n("Go Up in Tree"), TQString(), "Ctrl+Up", listTabWidget, TQ_SLOT(slotItemUp()), d->actionCollection, "feedstree_up" );
+ new TDEAction( i18n("Go Down in Tree"), TQString(), "Ctrl+Down", listTabWidget, TQ_SLOT(slotItemDown()), d->actionCollection, "feedstree_down" );
}
void ActionManagerImpl::initTabWidget(TabWidget* tabWidget)
@@ -417,11 +417,11 @@ void ActionManagerImpl::initTabWidget(TabWidget* tabWidget)
else
d->tabWidget = tabWidget;
- new TDEAction(i18n("Select Next Tab"), "", "Ctrl+Period", TQT_TQOBJECT(d->tabWidget), TQT_SLOT(slotNextTab()),actionCollection(), "select_next_tab");
- new TDEAction(i18n("Select Previous Tab"), "", "Ctrl+Comma", TQT_TQOBJECT(d->tabWidget), TQT_SLOT(slotPreviousTab()),actionCollection(), "select_previous_tab");
- new TDEAction( i18n("Detach Tab"), "tab_breakoff", CTRL+SHIFT+Key_B, TQT_TQOBJECT(d->tabWidget), TQT_SLOT(slotDetachTab()), actionCollection(), "tab_detach" );
- new TDEAction( i18n("Copy Link Address"), TQString(), TQString(), TQT_TQOBJECT(d->tabWidget), TQT_SLOT(slotCopyLinkAddress()), actionCollection(), "tab_copylinkaddress" );
- new TDEAction( i18n("&Close Tab"), "tab_remove", TDEStdAccel::close(), TQT_TQOBJECT(d->tabWidget), TQT_SLOT(slotCloseTab()), actionCollection(), "tab_remove" );
+ new TDEAction(i18n("Select Next Tab"), "", "Ctrl+Period", d->tabWidget, TQ_SLOT(slotNextTab()),actionCollection(), "select_next_tab");
+ new TDEAction(i18n("Select Previous Tab"), "", "Ctrl+Comma", d->tabWidget, TQ_SLOT(slotPreviousTab()),actionCollection(), "select_previous_tab");
+ new TDEAction( i18n("Detach Tab"), "tab_breakoff", CTRL+SHIFT+Key_B, d->tabWidget, TQ_SLOT(slotDetachTab()), actionCollection(), "tab_detach" );
+ new TDEAction( i18n("Copy Link Address"), TQString(), TQString(), d->tabWidget, TQ_SLOT(slotCopyLinkAddress()), actionCollection(), "tab_copylinkaddress" );
+ new TDEAction( i18n("&Close Tab"), "tab_remove", TDEStdAccel::close(), d->tabWidget, TQ_SLOT(slotCloseTab()), actionCollection(), "tab_remove" );
}
TQWidget* ActionManagerImpl::container(const char* name)
diff --git a/akregator/src/actionmanagerimpl.h b/akregator/src/actionmanagerimpl.h
index adbb6627..6b192986 100644
--- a/akregator/src/actionmanagerimpl.h
+++ b/akregator/src/actionmanagerimpl.h
@@ -49,7 +49,7 @@ class TabWidget;
/** Akregator-specific implementation of the ActionManager interface */
class ActionManagerImpl : public ActionManager
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/addfeeddialog.cpp b/akregator/src/addfeeddialog.cpp
index 05a6a8e0..a7b88a11 100644
--- a/akregator/src/addfeeddialog.cpp
+++ b/akregator/src/addfeeddialog.cpp
@@ -53,7 +53,7 @@ AddFeedDialog::AddFeedDialog(TQWidget *parent, const char *name)
: KDialogBase(KDialogBase::Swallow, TQt::WStyle_DialogBorder, parent, name, true, i18n("Add Feed"), KDialogBase::Ok|KDialogBase::Cancel)
{
widget = new AddFeedWidget(this);
- connect(widget->urlEdit, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(textChanged(const TQString&)));
+ connect(widget->urlEdit, TQ_SIGNAL(textChanged(const TQString&)), this, TQ_SLOT(textChanged(const TQString&)));
enableButtonOK(false);
setMainWidget(widget);
}
@@ -85,12 +85,12 @@ void AddFeedDialog::slotOk( )
widget->statusLabel->setText( i18n("Downloading %1").arg(feedURL) );
- connect( feed, TQT_SIGNAL(fetched(Feed* )),
- this, TQT_SLOT(fetchCompleted(Feed *)) );
- connect( feed, TQT_SIGNAL(fetchError(Feed* )),
- this, TQT_SLOT(fetchError(Feed *)) );
- connect( feed, TQT_SIGNAL(fetchDiscovery(Feed* )),
- this, TQT_SLOT(fetchDiscovery(Feed *)) );
+ connect( feed, TQ_SIGNAL(fetched(Feed* )),
+ this, TQ_SLOT(fetchCompleted(Feed *)) );
+ connect( feed, TQ_SIGNAL(fetchError(Feed* )),
+ this, TQ_SLOT(fetchError(Feed *)) );
+ connect( feed, TQ_SIGNAL(fetchDiscovery(Feed* )),
+ this, TQ_SLOT(fetchDiscovery(Feed *)) );
f->fetch(true);
}
@@ -120,4 +120,3 @@ void AddFeedDialog::textChanged(const TQString& text)
} // namespace Akregator
#include "addfeeddialog.moc"
-// vim: ts=4 sw=4 et
diff --git a/akregator/src/addfeeddialog.h b/akregator/src/addfeeddialog.h
index 51d93ba2..b81948de 100644
--- a/akregator/src/addfeeddialog.h
+++ b/akregator/src/addfeeddialog.h
@@ -40,7 +40,7 @@ namespace Akregator
class AddFeedWidget : public AddFeedWidgetBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
AddFeedWidget(TQWidget *parent = 0, const char *name = 0);
@@ -49,7 +49,7 @@ namespace Akregator
class AddFeedDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
AddFeedDialog(TQWidget *parent = 0, const char *name = 0);
diff --git a/akregator/src/akregator.desktop b/akregator/src/akregator.desktop
index 5b292858..ddd35685 100644
--- a/akregator/src/akregator.desktop
+++ b/akregator/src/akregator.desktop
@@ -1,107 +1,14 @@
[Desktop Entry]
Name=Akregator
-Name[ne]=एक्रिगेटर
+
+GenericName=RSS Feed Reader
+
+Comment=An RSS Aggregator for TDE
+
Exec=akregator %i %m -caption "%c"
Icon=akregator
Type=Application
X-DocPath=akregator/index.html
-GenericName=RSS Feed Reader
-GenericName[af]=RSS stroom leser
-GenericName[bg]=Четец на новости RSS
-GenericName[ca]=Lector d'enllaços RSS
-GenericName[cs]=Čtení RSS kanálů
-GenericName[da]=RSS-Kildelæser
-GenericName[de]=Anzeige von RSS-Nachrichtenquellen
-GenericName[el]=Αναγνώστης ροών RSS
-GenericName[eo]=RSS-flulegilo por diskutrondoj
-GenericName[es]=Lector de orígenes RSS
-GenericName[et]=RSS-uudistevoogude lugemisvahend
-GenericName[eu]=RSS iturri Irakurlea
-GenericName[fa]=خوانندۀ خوراندن RSS
-GenericName[fi]=RSS-syötelukija
-GenericName[fr]=Lecteur de flux RSS
-GenericName[fy]=RSS-nijsoanfierlêzer
-GenericName[ga]=Léitheoir na bhFothaí RSS
-GenericName[gl]=Lector de Novas por RSS
-GenericName[he]=קורא חדשות (RSS)
-GenericName[hu]=RSS hírolvasó
-GenericName[is]=RSS fréttaforrit
-GenericName[it]=Lettore Fonti RSS
-GenericName[ja]=RSS ニュースリーダー
-GenericName[kk]=RSS жаңалықтарын оқу
-GenericName[km]=កម្មវិធី​អាន​មតិព័ត៌មាន RSS
-GenericName[ko]=RSS 피드 리더
-GenericName[lt]=RSS kanalų skaitytuvė
-GenericName[ms]= Pembaca Suapan RSS
-GenericName[nb]=Leser for RSS-kanal
-GenericName[nds]=Kieker för RSS-Mellenströöm
-GenericName[ne]=आरएसएस फिड रिडर
-GenericName[nl]=RSS-feedlezer
-GenericName[nn]=RSS-lesar
-GenericName[pa]=RSS ਫੀਡ ਰੀਡਰ
-GenericName[pl]=Program do przeglądania kanałów RSS
-GenericName[pt]=Leitor de Fontes RSS
-GenericName[pt_BR]=Leitor de Fontes de Notícias RSS
-GenericName[ru]=Чтение лент новостей
-GenericName[se]=RSS-gáldu logan
-GenericName[sk]=Prehliadač RSS kŕmitok
-GenericName[sl]=Bralnik virov RSS
-GenericName[sr]=Читач RSS довода
-GenericName[sr@Latn]=Čitač RSS dovoda
-GenericName[sv]=Läsare av RSS-kanaler
-GenericName[ta]=RSS பீஃட் வாசிப்பான்
-GenericName[tr]=RSS Haber Kaynağı Okuyucu
-GenericName[uk]=Програма для читання подач RSS
-GenericName[uz]=RSS янгиликларни ўқувчи
-GenericName[zh_CN]=RSS 种子阅读器
-GenericName[zh_TW]=RSS Feed 閱讀器
-Comment=An RSS Aggregator for TDE
-Comment[af]='n RSS leser vir TDE
-Comment[bg]=Четец на новости във формат RSS
-Comment[ca]=Un lector RSS per TDE
-Comment[cs]=RSS agregátor pro TDE
-Comment[da]=En RSS Aggregator for TDE
-Comment[de]=Ein RSS-Nachrichtensammler für TDE
-Comment[el]=Ένας συσσωρευτής RSS για το TDE
-Comment[eo]=RSS-akumulilo por TDE
-Comment[es]=Un agregador de RSS para TDE
-Comment[et]=TDE RSS-uudistevoogude lugemisvahend
-Comment[eu]=TDE-ren RSS gehitzailea
-Comment[fa]=انبوهه‌ساز RSSای برای TDE
-Comment[fi]=RSS-syötelukija
-Comment[fr]=Un lecteur de flux RSS pour TDE
-Comment[fy]=In RSS-agregator foar TDE
-Comment[ga]=Comhbhailitheoir RSS le haghaidh TDE
-Comment[gl]=Un agregador de RSS para TDE
-Comment[hu]=TDE-s hírolvasó RSS hírcsatornákhoz
-Comment[is]=RSS fréttaforrit fyrir TDE
-Comment[it]=Un concentratore TDE per RSS
-Comment[ja]=TDE 用 RSS アグリゲータ
-Comment[kk]=TDE-нің RSS жаңалық агрегаторы
-Comment[km]=កម្មវិធី​អាន RSS សម្រាប់ TDE
-Comment[ko]=TDE용 RSS 리더
-Comment[ms]=Pengagregat RSS untuk TDE
-Comment[nb]=En RSS-oppsamler for TDE
-Comment[nds]=Tosamensteller för RSS-Mellenströöm vun TDE
-Comment[ne]=केडीई का लागि एउटा आरएसएस एक्रिगेटर
-Comment[nl]=Een RSS-agregator voor TDE
-Comment[nn]=Ein RSS-lesar for TDE
-Comment[pl]=Program podsumowujący kanały RSS dla TDE
-Comment[pt]=Um Agregador RSS do TDE
-Comment[pt_BR]=Um Agregador RSS para o TDE
-Comment[ru]=Чтение лент новостей RSS
-Comment[se]=TDE:a RSS-logan
-Comment[sk]=Zhromažďovač RSS pre TDE
-Comment[sl]=Zbiralnik RSS za TDE
-Comment[sr]=Сакупљач RSS довода за TDE
-Comment[sr@Latn]=Sakupljač RSS dovoda za TDE
-Comment[sv]=En RSS-samlare för TDE
-Comment[ta]=கேடியிக்கான ஒரு RSS சேர்ப்பான்
-Comment[tr]=Bir TDE RSS Okuyucusu
-Comment[uk]=Агрегатор RSS для TDE
-Comment[uz]=TDE учун RSS янгиликларни ўқувчи
-Comment[zh_CN]=TDE RSS 新闻收集器
-Comment[zh_TW]=TDE 的 RSS 收集器
Terminal=false
Categories=Qt;TDE;Network;News;
X-DCOP-ServiceType=Unique
diff --git a/akregator/src/akregator_export.h b/akregator/src/akregator_export.h
index 00fead92..d389c0d9 100644
--- a/akregator/src/akregator_export.h
+++ b/akregator/src/akregator_export.h
@@ -21,7 +21,7 @@
#ifndef AKREGATOR_AKREGATOREXPORT_H
#define AKREGATOR_AKREGATOREXPORT_H
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#define AKREGATOR_EXPORT KDE_EXPORT
diff --git a/akregator/src/akregator_part.cpp b/akregator/src/akregator_part.cpp
index d7ca0d44..b69d0736 100644
--- a/akregator/src/akregator_part.cpp
+++ b/akregator/src/akregator_part.cpp
@@ -195,12 +195,12 @@ Part::Part( TQWidget *parentWidget, const char * /*widgetName*/,
m_extension = new BrowserExtension(this, "ak_extension");
- connect(m_view, TQT_SIGNAL(setWindowCaption(const TQString&)), this, TQT_SIGNAL(setWindowCaption(const TQString&)));
- connect(m_view, TQT_SIGNAL(setStatusBarText(const TQString&)), this, TQT_SIGNAL(setStatusBarText(const TQString&)));
- connect(m_view, TQT_SIGNAL(setProgress(int)), m_extension, TQT_SIGNAL(loadingProgress(int)));
- connect(m_view, TQT_SIGNAL(signalCanceled(const TQString&)), this, TQT_SIGNAL(canceled(const TQString&)));
- connect(m_view, TQT_SIGNAL(signalStarted(TDEIO::Job*)), this, TQT_SIGNAL(started(TDEIO::Job*)));
- connect(m_view, TQT_SIGNAL(signalCompleted()), this, TQT_SIGNAL(completed()));
+ connect(m_view, TQ_SIGNAL(setWindowCaption(const TQString&)), this, TQ_SIGNAL(setWindowCaption(const TQString&)));
+ connect(m_view, TQ_SIGNAL(setStatusBarText(const TQString&)), this, TQ_SIGNAL(setStatusBarText(const TQString&)));
+ connect(m_view, TQ_SIGNAL(setProgress(int)), m_extension, TQ_SIGNAL(loadingProgress(int)));
+ connect(m_view, TQ_SIGNAL(signalCanceled(const TQString&)), this, TQ_SIGNAL(canceled(const TQString&)));
+ connect(m_view, TQ_SIGNAL(signalStarted(TDEIO::Job*)), this, TQ_SIGNAL(started(TDEIO::Job*)));
+ connect(m_view, TQ_SIGNAL(signalCompleted()), this, TQ_SIGNAL(completed()));
// notify the part that this is our internal widget
setWidget(m_view);
@@ -209,7 +209,7 @@ Part::Part( TQWidget *parentWidget, const char * /*widgetName*/,
TrayIcon::setInstance(trayIcon);
m_actionManager->initTrayIcon(trayIcon);
- connect(trayIcon, TQT_SIGNAL(showPart()), this, TQT_SIGNAL(showPart()));
+ connect(trayIcon, TQ_SIGNAL(showPart()), this, TQ_SIGNAL(showPart()));
if ( isTrayIconEnabled() )
{
@@ -219,15 +219,15 @@ Part::Part( TQWidget *parentWidget, const char * /*widgetName*/,
else
NotificationManager::self()->setWidget(getMainWindow(), instance());
- connect( trayIcon, TQT_SIGNAL(quitSelected()),
- kapp, TQT_SLOT(quit())) ;
+ connect( trayIcon, TQ_SIGNAL(quitSelected()),
+ kapp, TQ_SLOT(quit())) ;
- connect( m_view, TQT_SIGNAL(signalUnreadCountChanged(int)), trayIcon, TQT_SLOT(slotSetUnread(int)) );
+ connect( m_view, TQ_SIGNAL(signalUnreadCountChanged(int)), trayIcon, TQ_SLOT(slotSetUnread(int)) );
- connect(kapp, TQT_SIGNAL(shutDown()), this, TQT_SLOT(slotOnShutdown()));
+ connect(kapp, TQ_SIGNAL(shutDown()), this, TQ_SLOT(slotOnShutdown()));
m_autosaveTimer = new TQTimer(this);
- connect(m_autosaveTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotSaveFeedList()));
+ connect(m_autosaveTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(slotSaveFeedList()));
m_autosaveTimer->start(5*60*1000); // 5 minutes
setXMLFile("akregator_part.rc", true);
@@ -782,10 +782,10 @@ void Part::showOptions()
TDEConfigDialog* dialog = new ConfigDialog( m_view, "settings", Settings::self() );
- connect( dialog, TQT_SIGNAL(settingsChanged()),
- this, TQT_SLOT(slotSettingsChanged()) );
- connect( dialog, TQT_SIGNAL(settingsChanged()),
- TrayIcon::getInstance(), TQT_SLOT(settingsChanged()) );
+ connect( dialog, TQ_SIGNAL(settingsChanged()),
+ this, TQ_SLOT(slotSettingsChanged()) );
+ connect( dialog, TQ_SIGNAL(settingsChanged()),
+ TrayIcon::getInstance(), TQ_SLOT(settingsChanged()) );
dialog->show();
}
diff --git a/akregator/src/akregator_part.desktop b/akregator/src/akregator_part.desktop
index 87189604..b83f182a 100644
--- a/akregator/src/akregator_part.desktop
+++ b/akregator/src/akregator_part.desktop
@@ -1,12 +1,6 @@
[Desktop Entry]
Name=aKregatorPart
-Name[cs]=Komponenta aKregator
-Name[da]=AkregatorPart
-Name[de]=aKregator-Komponente
-Name[nds]=aKregator-Komponent
-Name[pt_BR]=Componente do aKregator
-Name[sv]=aKregator-delprogram
-Name[ta]=aKregatorபகுதி
+
X-TDE-ServiceTypes=KParts/ReadOnlyPart
X-TDE-Library=libakregatorpart
Type=Service
diff --git a/akregator/src/akregator_part.h b/akregator/src/akregator_part.h
index 1e17c05f..d84f2f90 100644
--- a/akregator/src/akregator_part.h
+++ b/akregator/src/akregator_part.h
@@ -59,7 +59,7 @@ namespace Akregator
class BrowserExtension : public KParts::BrowserExtension
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -76,7 +76,7 @@ namespace Akregator
*/
class Part : public MyBasePart, virtual public AkregatorPartIface
{
- Q_OBJECT
+ TQ_OBJECT
public:
typedef MyBasePart inherited;
@@ -220,5 +220,3 @@ namespace Akregator
}
#endif // _AKREGATORPART_H_
-
-// vim: set et ts=4 sts=4 sw=4:
diff --git a/akregator/src/akregator_plugin.desktop b/akregator/src/akregator_plugin.desktop
index 096e655c..52635e09 100644
--- a/akregator/src/akregator_plugin.desktop
+++ b/akregator/src/akregator_plugin.desktop
@@ -1,57 +1,8 @@
[Desktop Entry]
-Type=ServiceType
-X-TDE-ServiceType=Akregator/Plugin
Comment=Plugin for Akregator
-Comment[af]=Inprop module vir Akregator
-Comment[be]=Утулка для Akregator
-Comment[bg]=Приставка за Akregator
-Comment[br]=Lugent evit Akregator
-Comment[ca]=Endollable per a l'Akregator
-Comment[cs]=Modul pro Akregator
-Comment[de]=Modul für Akregator
-Comment[el]=Πρόσθετο για το Akregator
-Comment[eo]=Kromprogramo por Akregator
-Comment[es]=Extensión para Akregator
-Comment[et]=Akregatori plugin
-Comment[eu]=Akregator-en plugina
-Comment[fa]=وصله برای Akregator
-Comment[fi]=Liitännäinen Akregatoriin
-Comment[fr]=Module pour Akregator
-Comment[fy]=Plugin foar Akregator
-Comment[ga]=Breiseán Akregator
-Comment[gl]=Extensión para Akregator
-Comment[he]=תוסף עבור Akregator
-Comment[hu]=Akregator bővítőmodul
-Comment[is]=Íforrit fyrir Akregator
-Comment[it]=Plugin per Akregator
-Comment[ja]=Akregator 用プラグイン
-Comment[kk]=Akregator-дың плагин модулі
-Comment[km]=កម្មវិធី​ជំនួយ Akregator
-Comment[ko]=Akregator 플러그인
-Comment[lt]=Akregator skirtas priedas
-Comment[mk]=Приклучок за Akregator
-Comment[ms]=Plugin untuk Akregator
-Comment[nb]=Programtillegg for Akregator
-Comment[nds]=Moduul för Akregator
-Comment[ne]=एक्रिगेटरका लागि प्लगइन
-Comment[nl]=Plugin voor Akregator
-Comment[nn]=Programtillegg til Akregator
-Comment[pl]=Wtyczka dla Akregatora
-Comment[pt]='Plugin' para o Akregator
-Comment[pt_BR]=Plug-in para o Akregator
-Comment[ru]=Модуль Akregator
-Comment[se]=Lassemoduvla Akregatorii
-Comment[sk]=Modul pre Akregator
-Comment[sl]=Vstavek za Akregator
-Comment[sr]=Прикључак за Akregator
-Comment[sr@Latn]=Priključak za Akregator
-Comment[sv]=Insticksprogram för Akregator
-Comment[tr]=Akregator Eklentisi
-Comment[uk]=Втулок для Akregator
-Comment[uz]=Akregator учун плагин
-Comment[zh_CN]=Akregator 插件
-Comment[zh_TW]=Akregator 外掛程式
+Type=ServiceType
+X-TDE-ServiceType=Akregator/Plugin
# Type of plugin, e.g. "storage".
[PropertyDef::X-TDE-akregator-plugintype]
diff --git a/akregator/src/akregator_run.cpp b/akregator/src/akregator_run.cpp
index 84fd6572..d22f2f61 100644
--- a/akregator/src/akregator_run.cpp
+++ b/akregator/src/akregator_run.cpp
@@ -38,7 +38,7 @@ BrowserRun::BrowserRun(TQWidget* mainWindow, Viewer* currentViewer, const KURL&
if (mode == CURRENT_TAB)
{
- connect(m_currentViewer, TQT_SIGNAL(destroyed()), this, TQT_SLOT(slotViewerDeleted()));
+ connect(m_currentViewer, TQ_SIGNAL(destroyed()), this, TQ_SLOT(slotViewerDeleted()));
}
setEnableExternalBrowser(false);
}
@@ -68,5 +68,3 @@ void BrowserRun::slotViewerDeleted()
} // namespace Akregator
#include "akregator_run.moc"
-
-// vim: set et ts=4 sts=4 sw=4:
diff --git a/akregator/src/akregator_run.h b/akregator/src/akregator_run.h
index e819dc13..82b46db9 100644
--- a/akregator/src/akregator_run.h
+++ b/akregator/src/akregator_run.h
@@ -34,7 +34,7 @@ class Viewer;
class BrowserRun : public KParts::BrowserRun
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** indicates how HTML pages should be opened. It is passed in the constructor and sent back via the openInViewer signal. This is a workaround to fix opening of non-HTML mimetypes in 3.5, which will be refactored for KDE4 anyway. For 3.5.x it's the easiest way to fix the problem without changing too much code TODO KDE4: refactor, remove this enum */
@@ -67,5 +67,3 @@ class BrowserRun : public KParts::BrowserRun
}
#endif
-
-// vim: set et ts=4 sts=4 sw=4:
diff --git a/akregator/src/akregator_view.cpp b/akregator/src/akregator_view.cpp
index a65adf39..bcda5d16 100644
--- a/akregator/src/akregator_view.cpp
+++ b/akregator/src/akregator_view.cpp
@@ -224,26 +224,26 @@ View::View( Part *part, TQWidget *parent, ActionManagerImpl* actionManager, cons
m_shuttingDown = false;
m_displayingAboutPage = false;
m_currentFrame = 0L;
- setFocusPolicy(TQ_StrongFocus);
+ setFocusPolicy(TQWidget::StrongFocus);
TQVBoxLayout *lt = new TQVBoxLayout( this );
- m_horizontalSplitter = new TQSplitter(Qt::Horizontal, this);
+ m_horizontalSplitter = new TQSplitter(TQt::Horizontal, this);
m_horizontalSplitter->setOpaqueResize(true);
lt->addWidget(m_horizontalSplitter);
- connect (Kernel::self()->fetchQueue(), TQT_SIGNAL(fetched(Feed*)), this, TQT_SLOT(slotFeedFetched(Feed*)));
- connect (Kernel::self()->fetchQueue(), TQT_SIGNAL(signalStarted()), this, TQT_SLOT(slotFetchingStarted()));
- connect (Kernel::self()->fetchQueue(), TQT_SIGNAL(signalStopped()), this, TQT_SLOT(slotFetchingStopped()));
+ connect (Kernel::self()->fetchQueue(), TQ_SIGNAL(fetched(Feed*)), this, TQ_SLOT(slotFeedFetched(Feed*)));
+ connect (Kernel::self()->fetchQueue(), TQ_SIGNAL(signalStarted()), this, TQ_SLOT(slotFetchingStarted()));
+ connect (Kernel::self()->fetchQueue(), TQ_SIGNAL(signalStopped()), this, TQ_SLOT(slotFetchingStopped()));
- connect(Kernel::self()->tagSet(), TQT_SIGNAL(signalTagAdded(const Tag&)), this, TQT_SLOT(slotTagCreated(const Tag&)));
- connect(Kernel::self()->tagSet(), TQT_SIGNAL(signalTagRemoved(const Tag&)), this, TQT_SLOT(slotTagRemoved(const Tag&)));
+ connect(Kernel::self()->tagSet(), TQ_SIGNAL(signalTagAdded(const Tag&)), this, TQ_SLOT(slotTagCreated(const Tag&)));
+ connect(Kernel::self()->tagSet(), TQ_SIGNAL(signalTagRemoved(const Tag&)), this, TQ_SLOT(slotTagRemoved(const Tag&)));
m_listTabWidget = new ListTabWidget(m_horizontalSplitter);
m_actionManager->initListTabWidget(m_listTabWidget);
- connect(m_listTabWidget, TQT_SIGNAL(signalNodeSelected(TreeNode*)), this, TQT_SLOT(slotNodeSelected(TreeNode*)));
+ connect(m_listTabWidget, TQ_SIGNAL(signalNodeSelected(TreeNode*)), this, TQ_SLOT(slotNodeSelected(TreeNode*)));
if (!Settings::showTaggingGUI())
m_listTabWidget->setViewMode(ListTabWidget::single);
@@ -251,16 +251,16 @@ View::View( Part *part, TQWidget *parent, ActionManagerImpl* actionManager, cons
m_feedListView = new NodeListView( this, "feedtree" );
m_listTabWidget->addView(m_feedListView, i18n("Feeds"), TDEGlobal::iconLoader()->loadIcon("folder", TDEIcon::Small));
- connect(m_feedListView, TQT_SIGNAL(signalContextMenu(TDEListView*, TreeNode*, const TQPoint&)), this, TQT_SLOT(slotFeedTreeContextMenu(TDEListView*, TreeNode*, const TQPoint&)));
+ connect(m_feedListView, TQ_SIGNAL(signalContextMenu(TDEListView*, TreeNode*, const TQPoint&)), this, TQ_SLOT(slotFeedTreeContextMenu(TDEListView*, TreeNode*, const TQPoint&)));
- connect(m_feedListView, TQT_SIGNAL(signalDropped (KURL::List &, TreeNode*,
- Folder*)), this, TQT_SLOT(slotFeedURLDropped (KURL::List &,
+ connect(m_feedListView, TQ_SIGNAL(signalDropped (KURL::List &, TreeNode*,
+ Folder*)), this, TQ_SLOT(slotFeedURLDropped (KURL::List &,
TreeNode*, Folder*)));
m_tagNodeListView = new NodeListView(this);
m_listTabWidget->addView(m_tagNodeListView, i18n("Tags"), TDEGlobal::iconLoader()->loadIcon("rss_tag", TDEIcon::Small));
- connect(m_tagNodeListView, TQT_SIGNAL(signalContextMenu(TDEListView*, TreeNode*, const TQPoint&)), this, TQT_SLOT(slotFeedTreeContextMenu(TDEListView*, TreeNode*, const TQPoint&)));
+ connect(m_tagNodeListView, TQ_SIGNAL(signalContextMenu(TDEListView*, TreeNode*, const TQPoint&)), this, TQ_SLOT(slotFeedTreeContextMenu(TDEListView*, TreeNode*, const TQPoint&)));
ProgressManager::self()->setFeedList(m_feedList);
@@ -268,10 +268,10 @@ View::View( Part *part, TQWidget *parent, ActionManagerImpl* actionManager, cons
m_tabs = new TabWidget(m_horizontalSplitter);
m_actionManager->initTabWidget(m_tabs);
- connect( m_part, TQT_SIGNAL(signalSettingsChanged()), m_tabs, TQT_SLOT(slotSettingsChanged()));
+ connect( m_part, TQ_SIGNAL(signalSettingsChanged()), m_tabs, TQ_SLOT(slotSettingsChanged()));
- connect( m_tabs, TQT_SIGNAL( currentFrameChanged(Frame *) ), this,
- TQT_SLOT( slotFrameChanged(Frame *) ) );
+ connect( m_tabs, TQ_SIGNAL( currentFrameChanged(Frame *) ), this,
+ TQ_SLOT( slotFrameChanged(Frame *) ) );
TQWhatsThis::add(m_tabs, i18n("You can view multiple articles in several open tabs."));
@@ -287,39 +287,39 @@ View::View( Part *part, TQWidget *parent, ActionManagerImpl* actionManager, cons
mainTabLayout->addWidget(m_searchBar);
- m_articleSplitter = new TQSplitter(Qt::Vertical, m_mainTab, "panner2");
+ m_articleSplitter = new TQSplitter(TQt::Vertical, m_mainTab, "panner2");
m_articleList = new ArticleListView( m_articleSplitter, "articles" );
m_actionManager->initArticleListView(m_articleList);
- connect( m_articleList, TQT_SIGNAL(signalMouseButtonPressed(int, const Article&, const TQPoint &, int)), this, TQT_SLOT(slotMouseButtonPressed(int, const Article&, const TQPoint &, int)));
+ connect( m_articleList, TQ_SIGNAL(signalMouseButtonPressed(int, const Article&, const TQPoint &, int)), this, TQ_SLOT(slotMouseButtonPressed(int, const Article&, const TQPoint &, int)));
// use selectionChanged instead of clicked
- connect( m_articleList, TQT_SIGNAL(signalArticleChosen(const Article&)),
- this, TQT_SLOT( slotArticleSelected(const Article&)) );
- connect( m_articleList, TQT_SIGNAL(signalDoubleClicked(const Article&, const TQPoint&, int)),
- this, TQT_SLOT( slotOpenArticleExternal(const Article&, const TQPoint&, int)) );
+ connect( m_articleList, TQ_SIGNAL(signalArticleChosen(const Article&)),
+ this, TQ_SLOT( slotArticleSelected(const Article&)) );
+ connect( m_articleList, TQ_SIGNAL(signalDoubleClicked(const Article&, const TQPoint&, int)),
+ this, TQ_SLOT( slotOpenArticleExternal(const Article&, const TQPoint&, int)) );
m_articleViewer = new ArticleViewer(m_articleSplitter, "article_viewer");
m_articleViewer->setSafeMode(); // disable JS, Java, etc...
m_actionManager->initArticleViewer(m_articleViewer);
- connect(m_searchBar, TQT_SIGNAL(signalSearch(const Akregator::Filters::ArticleMatcher&, const Akregator::Filters::ArticleMatcher&)), m_articleList, TQT_SLOT(slotSetFilter(const Akregator::Filters::ArticleMatcher&, const Akregator::Filters::ArticleMatcher&)));
+ connect(m_searchBar, TQ_SIGNAL(signalSearch(const Akregator::Filters::ArticleMatcher&, const Akregator::Filters::ArticleMatcher&)), m_articleList, TQ_SLOT(slotSetFilter(const Akregator::Filters::ArticleMatcher&, const Akregator::Filters::ArticleMatcher&)));
- connect(m_searchBar, TQT_SIGNAL(signalSearch(const Akregator::Filters::ArticleMatcher&, const Akregator::Filters::ArticleMatcher&)), m_articleViewer, TQT_SLOT(slotSetFilter(const Akregator::Filters::ArticleMatcher&, const Akregator::Filters::ArticleMatcher&)));
+ connect(m_searchBar, TQ_SIGNAL(signalSearch(const Akregator::Filters::ArticleMatcher&, const Akregator::Filters::ArticleMatcher&)), m_articleViewer, TQ_SLOT(slotSetFilter(const Akregator::Filters::ArticleMatcher&, const Akregator::Filters::ArticleMatcher&)));
- connect( m_articleViewer, TQT_SIGNAL(urlClicked(const KURL&, Viewer*, bool, bool)),
- this, TQT_SLOT(slotUrlClickedInViewer(const KURL&, Viewer*, bool, bool)) );
+ connect( m_articleViewer, TQ_SIGNAL(urlClicked(const KURL&, Viewer*, bool, bool)),
+ this, TQ_SLOT(slotUrlClickedInViewer(const KURL&, Viewer*, bool, bool)) );
- connect( m_articleViewer->browserExtension(), TQT_SIGNAL(mouseOverInfo(const KFileItem *)),
- this, TQT_SLOT(slotMouseOverInfo(const KFileItem *)) );
+ connect( m_articleViewer->browserExtension(), TQ_SIGNAL(mouseOverInfo(const KFileItem *)),
+ this, TQ_SLOT(slotMouseOverInfo(const KFileItem *)) );
- connect( m_part, TQT_SIGNAL(signalSettingsChanged()), m_articleViewer, TQT_SLOT(slotPaletteOrFontChanged()));
+ connect( m_part, TQ_SIGNAL(signalSettingsChanged()), m_articleViewer, TQ_SLOT(slotPaletteOrFontChanged()));
TQWhatsThis::add(m_articleViewer->widget(), i18n("Browsing area."));
mainTabLayout->addWidget( m_articleSplitter );
- m_mainFrame=new Frame(TQT_TQOBJECT(this), m_part, m_mainTab, i18n("Articles"), false);
+ m_mainFrame=new Frame(this, m_part, m_mainTab, i18n("Articles"), false);
connectFrame(m_mainFrame);
m_tabs->addFrame(m_mainFrame);
@@ -342,17 +342,17 @@ View::View( Part *part, TQWidget *parent, ActionManagerImpl* actionManager, cons
}
m_fetchTimer = new TQTimer(this);
- connect( m_fetchTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotDoIntervalFetches()) );
+ connect( m_fetchTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(slotDoIntervalFetches()) );
m_fetchTimer->start(1000*60);
// delete expired articles once per hour
m_expiryTimer = new TQTimer(this);
- connect(m_expiryTimer, TQT_SIGNAL(timeout()), this,
- TQT_SLOT(slotDeleteExpiredArticles()) );
+ connect(m_expiryTimer, TQ_SIGNAL(timeout()), this,
+ TQ_SLOT(slotDeleteExpiredArticles()) );
m_expiryTimer->start(3600*1000);
m_markReadTimer = new TQTimer(this);
- connect(m_markReadTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotSetCurrentArticleReadDelayed()) );
+ connect(m_markReadTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(slotSetCurrentArticleReadDelayed()) );
switch (Settings::viewMode())
{
@@ -372,7 +372,7 @@ View::View( Part *part, TQWidget *parent, ActionManagerImpl* actionManager, cons
m_searchBar->slotSetText(Settings::textFilter());
}
- TQTimer::singleShot(1000, this, TQT_SLOT(slotDeleteExpiredArticles()) );
+ TQTimer::singleShot(1000, this, TQ_SLOT(slotDeleteExpiredArticles()) );
m_part->mergePart(m_articleViewer);
}
@@ -433,17 +433,17 @@ void View::slotOpenNewTab(const KURL& url, bool background)
{
PageViewer* page = new PageViewer(this, "page");
- connect( m_part, TQT_SIGNAL(signalSettingsChanged()), page, TQT_SLOT(slotPaletteOrFontChanged()));
+ connect( m_part, TQ_SIGNAL(signalSettingsChanged()), page, TQ_SLOT(slotPaletteOrFontChanged()));
- connect( page, TQT_SIGNAL(setTabIcon(const TQPixmap&)),
- this, TQT_SLOT(setTabIcon(const TQPixmap&)));
- connect( page, TQT_SIGNAL(urlClicked(const KURL &, Viewer*, bool, bool)),
- this, TQT_SLOT(slotUrlClickedInViewer(const KURL &, Viewer*, bool, bool)) );
+ connect( page, TQ_SIGNAL(setTabIcon(const TQPixmap&)),
+ this, TQ_SLOT(setTabIcon(const TQPixmap&)));
+ connect( page, TQ_SIGNAL(urlClicked(const KURL &, Viewer*, bool, bool)),
+ this, TQ_SLOT(slotUrlClickedInViewer(const KURL &, Viewer*, bool, bool)) );
- Frame* frame = new Frame(TQT_TQOBJECT(this), page, page->widget(), i18n("Untitled"));
+ Frame* frame = new Frame(this, page, page->widget(), i18n("Untitled"));
frame->setAutoDeletePart(true); // delete page viewer when removing the tab
- connect(page, TQT_SIGNAL(setWindowCaption (const TQString &)), frame, TQT_SLOT(setTitle (const TQString &)));
+ connect(page, TQ_SIGNAL(setWindowCaption (const TQString &)), frame, TQ_SLOT(setTitle (const TQString &)));
connectFrame(frame);
m_tabs->addFrame(frame);
@@ -466,12 +466,12 @@ void View::setTabIcon(const TQPixmap& icon)
void View::connectFrame(Frame *f)
{
- connect(f, TQT_SIGNAL(statusText(const TQString &)), this, TQT_SLOT(slotStatusText(const TQString&)));
- connect(f, TQT_SIGNAL(captionChanged (const TQString &)), this, TQT_SLOT(slotCaptionChanged (const TQString &)));
- connect(f, TQT_SIGNAL(loadingProgress(int)), this, TQT_SLOT(slotLoadingProgress(int)) );
- connect(f, TQT_SIGNAL(started()), this, TQT_SLOT(slotStarted()));
- connect(f, TQT_SIGNAL(completed()), this, TQT_SLOT(slotCompleted()));
- connect(f, TQT_SIGNAL(canceled(const TQString &)), this, TQT_SLOT(slotCanceled(const TQString&)));
+ connect(f, TQ_SIGNAL(statusText(const TQString &)), this, TQ_SLOT(slotStatusText(const TQString&)));
+ connect(f, TQ_SIGNAL(captionChanged (const TQString &)), this, TQ_SLOT(slotCaptionChanged (const TQString &)));
+ connect(f, TQ_SIGNAL(loadingProgress(int)), this, TQ_SLOT(slotLoadingProgress(int)) );
+ connect(f, TQ_SIGNAL(started()), this, TQ_SLOT(slotStarted()));
+ connect(f, TQ_SIGNAL(completed()), this, TQ_SLOT(slotCompleted()));
+ connect(f, TQ_SIGNAL(canceled(const TQString &)), this, TQ_SLOT(slotCanceled(const TQString&)));
}
void View::slotStatusText(const TQString &c)
@@ -647,7 +647,7 @@ void View::slotNormalView()
m_articleViewer->slotShowSummary(m_listTabWidget->activeView()->selectedNode());
}
- m_articleSplitter->setOrientation(Qt::Vertical);
+ m_articleSplitter->setOrientation(TQt::Vertical);
m_viewMode = NormalView;
Settings::setViewMode( m_viewMode );
@@ -671,7 +671,7 @@ void View::slotWidescreenView()
m_articleViewer->slotShowSummary(m_listTabWidget->activeView()->selectedNode());
}
- m_articleSplitter->setOrientation(Qt::Horizontal);
+ m_articleSplitter->setOrientation(TQt::Horizontal);
m_viewMode = WidescreenView;
Settings::setViewMode( m_viewMode );
@@ -841,8 +841,8 @@ void View::slotOpenURL(const KURL& url, Viewer* currentViewer, BrowserRun::Openi
KParts::URLArgs args = currentViewer ? currentViewer->browserExtension()->urlArgs() : KParts::URLArgs();
BrowserRun* r = new BrowserRun(this, currentViewer, url, args, mode);
- connect(r, TQT_SIGNAL(signalOpenInViewer(const KURL&, Akregator::Viewer*, Akregator::BrowserRun::OpeningMode)),
- this, TQT_SLOT(slotOpenURLReply(const KURL&, Akregator::Viewer*, Akregator::BrowserRun::OpeningMode)));
+ connect(r, TQ_SIGNAL(signalOpenInViewer(const KURL&, Akregator::Viewer*, Akregator::BrowserRun::OpeningMode)),
+ this, TQ_SLOT(slotOpenURLReply(const KURL&, Akregator::Viewer*, Akregator::BrowserRun::OpeningMode)));
}
}
@@ -1109,7 +1109,7 @@ void View::slotFeedFetched(Feed *feed)
void View::slotMouseButtonPressed(int button, const Article& article, const TQPoint &, int)
{
- if (button == Qt::MidButton)
+ if (button == TQt::MidButton)
{
KURL link = article.link();
switch (Settings::mMBBehaviour())
@@ -1518,13 +1518,13 @@ void View::saveProperties(TDEConfig* config)
void View::connectToFeedList(FeedList* feedList)
{
- connect(feedList->rootNode(), TQT_SIGNAL(signalChanged(TreeNode*)), this, TQT_SLOT(slotSetTotalUnread()));
+ connect(feedList->rootNode(), TQ_SIGNAL(signalChanged(TreeNode*)), this, TQ_SLOT(slotSetTotalUnread()));
slotSetTotalUnread();
}
void View::disconnectFromFeedList(FeedList* feedList)
{
- disconnect(feedList->rootNode(), TQT_SIGNAL(signalChanged(TreeNode*)), this, TQT_SLOT(slotSetTotalUnread()));
+ disconnect(feedList->rootNode(), TQ_SIGNAL(signalChanged(TreeNode*)), this, TQ_SLOT(slotSetTotalUnread()));
}
void View::updateTagActions()
diff --git a/akregator/src/akregator_view.h b/akregator/src/akregator_view.h
index bfc08df4..629f9057 100644
--- a/akregator/src/akregator_view.h
+++ b/akregator/src/akregator_view.h
@@ -79,7 +79,7 @@ namespace Akregator {
*/
class View : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/articlelistview.cpp b/akregator/src/articlelistview.cpp
index a0e5c8b7..7731c768 100644
--- a/akregator/src/articlelistview.cpp
+++ b/akregator/src/articlelistview.cpp
@@ -271,13 +271,13 @@ ArticleListView::ArticleListView(TQWidget *parent, const char *name)
"You can also manage articles, as marking them as persistent (\"Keep Article\") or delete them, using the right mouse button menu."
"To view the web page of the article, you can open the article internally in a tab or in an external browser window."));
- connect(this, TQT_SIGNAL(currentChanged(TQListViewItem*)), this, TQT_SLOT(slotCurrentChanged(TQListViewItem* )));
- connect(this, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(slotSelectionChanged()));
- connect(this, TQT_SIGNAL(doubleClicked(TQListViewItem*, const TQPoint&, int)), this, TQT_SLOT(slotDoubleClicked(TQListViewItem*, const TQPoint&, int)) );
- connect(this, TQT_SIGNAL(contextMenu(TDEListView*, TQListViewItem*, const TQPoint&)),
- this, TQT_SLOT(slotContextMenu(TDEListView*, TQListViewItem*, const TQPoint&)));
+ connect(this, TQ_SIGNAL(currentChanged(TQListViewItem*)), this, TQ_SLOT(slotCurrentChanged(TQListViewItem* )));
+ connect(this, TQ_SIGNAL(selectionChanged()), this, TQ_SLOT(slotSelectionChanged()));
+ connect(this, TQ_SIGNAL(doubleClicked(TQListViewItem*, const TQPoint&, int)), this, TQ_SLOT(slotDoubleClicked(TQListViewItem*, const TQPoint&, int)) );
+ connect(this, TQ_SIGNAL(contextMenu(TDEListView*, TQListViewItem*, const TQPoint&)),
+ this, TQ_SLOT(slotContextMenu(TDEListView*, TQListViewItem*, const TQPoint&)));
- connect(this, TQT_SIGNAL(mouseButtonPressed(int, TQListViewItem *, const TQPoint &, int)), this, TQT_SLOT(slotMouseButtonPressed(int, TQListViewItem *, const TQPoint &, int)));
+ connect(this, TQ_SIGNAL(mouseButtonPressed(int, TQListViewItem *, const TQPoint &, int)), this, TQ_SLOT(slotMouseButtonPressed(int, TQListViewItem *, const TQPoint &, int)));
}
Article ArticleListView::currentArticle() const
@@ -482,18 +482,18 @@ void ArticleListView::slotArticlesRemoved(TreeNode* /*node*/, const TQValueList<
void ArticleListView::connectToNode(TreeNode* node)
{
- connect(node, TQT_SIGNAL(signalDestroyed(TreeNode*)), this, TQT_SLOT(slotClear()) );
- connect(node, TQT_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesAdded(TreeNode*, const TQValueList<Article>&)) );
- connect(node, TQT_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesUpdated(TreeNode*, const TQValueList<Article>&)) );
- connect(node, TQT_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesRemoved(TreeNode*, const TQValueList<Article>&)) );
+ connect(node, TQ_SIGNAL(signalDestroyed(TreeNode*)), this, TQ_SLOT(slotClear()) );
+ connect(node, TQ_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesAdded(TreeNode*, const TQValueList<Article>&)) );
+ connect(node, TQ_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesUpdated(TreeNode*, const TQValueList<Article>&)) );
+ connect(node, TQ_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesRemoved(TreeNode*, const TQValueList<Article>&)) );
}
void ArticleListView::disconnectFromNode(TreeNode* node)
{
- disconnect(node, TQT_SIGNAL(signalDestroyed(TreeNode*)), this, TQT_SLOT(slotClear()) );
- disconnect(node, TQT_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesAdded(TreeNode*, const TQValueList<Article>&)) );
- disconnect(node, TQT_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesUpdated(TreeNode*, const TQValueList<Article>&)) );
- disconnect(node, TQT_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesRemoved(TreeNode*, const TQValueList<Article>&)) );
+ disconnect(node, TQ_SIGNAL(signalDestroyed(TreeNode*)), this, TQ_SLOT(slotClear()) );
+ disconnect(node, TQ_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesAdded(TreeNode*, const TQValueList<Article>&)) );
+ disconnect(node, TQ_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesUpdated(TreeNode*, const TQValueList<Article>&)) );
+ disconnect(node, TQ_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesRemoved(TreeNode*, const TQValueList<Article>&)) );
}
void ArticleListView::applyFilters()
@@ -809,4 +809,3 @@ TQValueList<Article> ArticleListView::selectedArticles() const
} // namespace Akregator
#include "articlelistview.moc"
-// vim: ts=4 sw=4 et
diff --git a/akregator/src/articlelistview.h b/akregator/src/articlelistview.h
index caf1258b..6455aead 100644
--- a/akregator/src/articlelistview.h
+++ b/akregator/src/articlelistview.h
@@ -42,7 +42,7 @@ namespace Akregator
class ArticleListView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
ArticleListView(TQWidget *parent = 0, const char *name = 0);
diff --git a/akregator/src/articleviewer.cpp b/akregator/src/articleviewer.cpp
index 8067b732..8da54096 100644
--- a/akregator/src/articleviewer.cpp
+++ b/akregator/src/articleviewer.cpp
@@ -170,13 +170,13 @@ ArticleViewer::ArticleViewer(TQWidget *parent, const char *name)
generateNormalModeCSS();
generateCombinedModeCSS();
- new TDEAction( i18n("&Scroll Up"), TQString(), "Up", this, TQT_SLOT(slotScrollUp()), actionCollection(), "articleviewer_scroll_up" );
- new TDEAction( i18n("&Scroll Down"), TQString(), "Down", this, TQT_SLOT(slotScrollDown()), actionCollection(), "articleviewer_scroll_down" );
+ new TDEAction( i18n("&Scroll Up"), TQString(), "Up", this, TQ_SLOT(slotScrollUp()), actionCollection(), "articleviewer_scroll_up" );
+ new TDEAction( i18n("&Scroll Down"), TQString(), "Down", this, TQ_SLOT(slotScrollDown()), actionCollection(), "articleviewer_scroll_down" );
- connect(this, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(slotSelectionChanged()));
+ connect(this, TQ_SIGNAL(selectionChanged()), this, TQ_SLOT(slotSelectionChanged()));
- connect(kapp, TQT_SIGNAL(tdedisplayPaletteChanged()), this, TQT_SLOT(slotPaletteOrFontChanged()) );
- connect(kapp, TQT_SIGNAL(tdedisplayFontChanged()), this, TQT_SLOT(slotPaletteOrFontChanged()) );
+ connect(kapp, TQ_SIGNAL(tdedisplayPaletteChanged()), this, TQ_SLOT(slotPaletteOrFontChanged()) );
+ connect(kapp, TQ_SIGNAL(tdedisplayFontChanged()), this, TQ_SLOT(slotPaletteOrFontChanged()) );
m_imageDir.setPath(TDEGlobal::dirs()->saveLocation("cache", "akregator/Media/"));
m_htmlFooter = "</body></html>";
@@ -767,15 +767,15 @@ void ArticleViewer::connectToNode(TreeNode* node)
{
if (m_viewMode == CombinedView)
{
-// connect( node, TQT_SIGNAL(signalChanged(TreeNode*)), this, TQT_SLOT(slotUpdateCombinedView() ) );
- connect( node, TQT_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesAdded(TreeNode*, const TQValueList<Article>&)));
- connect( node, TQT_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesRemoved(TreeNode*, const TQValueList<Article>&)));
- connect( node, TQT_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesUpdated(TreeNode*, const TQValueList<Article>&)));
+// connect( node, TQ_SIGNAL(signalChanged(TreeNode*)), this, TQ_SLOT(slotUpdateCombinedView() ) );
+ connect( node, TQ_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesAdded(TreeNode*, const TQValueList<Article>&)));
+ connect( node, TQ_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesRemoved(TreeNode*, const TQValueList<Article>&)));
+ connect( node, TQ_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesUpdated(TreeNode*, const TQValueList<Article>&)));
}
if (m_viewMode == SummaryView)
- connect( node, TQT_SIGNAL(signalChanged(TreeNode*)), this, TQT_SLOT(slotShowSummary(TreeNode*) ) );
+ connect( node, TQ_SIGNAL(signalChanged(TreeNode*)), this, TQ_SLOT(slotShowSummary(TreeNode*) ) );
- connect( node, TQT_SIGNAL(signalDestroyed(TreeNode*)), this, TQT_SLOT(slotClear() ) );
+ connect( node, TQ_SIGNAL(signalDestroyed(TreeNode*)), this, TQ_SLOT(slotClear() ) );
}
}
@@ -783,12 +783,12 @@ void ArticleViewer::disconnectFromNode(TreeNode* node)
{
if (node)
{
-// disconnect( node, TQT_SIGNAL(signalChanged(TreeNode*)), this, TQT_SLOT(slotUpdateCombinedView() ) );
- disconnect( node, TQT_SIGNAL(signalDestroyed(TreeNode*)), this, TQT_SLOT(slotClear() ) );
- disconnect( node, TQT_SIGNAL(signalChanged(TreeNode*)), this, TQT_SLOT(slotShowSummary(TreeNode*) ) );
- disconnect( node, TQT_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesAdded(TreeNode*, const TQValueList<Article>&)));
- disconnect( node, TQT_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesRemoved(TreeNode*, const TQValueList<Article>&)));
- disconnect( node, TQT_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesUpdated(TreeNode*, const TQValueList<Article>&)));
+// disconnect( node, TQ_SIGNAL(signalChanged(TreeNode*)), this, TQ_SLOT(slotUpdateCombinedView() ) );
+ disconnect( node, TQ_SIGNAL(signalDestroyed(TreeNode*)), this, TQ_SLOT(slotClear() ) );
+ disconnect( node, TQ_SIGNAL(signalChanged(TreeNode*)), this, TQ_SLOT(slotShowSummary(TreeNode*) ) );
+ disconnect( node, TQ_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesAdded(TreeNode*, const TQValueList<Article>&)));
+ disconnect( node, TQ_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesRemoved(TreeNode*, const TQValueList<Article>&)));
+ disconnect( node, TQ_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesUpdated(TreeNode*, const TQValueList<Article>&)));
}
}
diff --git a/akregator/src/articleviewer.h b/akregator/src/articleviewer.h
index 44443f7d..e74a86ce 100644
--- a/akregator/src/articleviewer.h
+++ b/akregator/src/articleviewer.h
@@ -47,7 +47,7 @@ namespace Akregator
Use the high-level interface provided by the public slots whereever possible (and extend them when necessary instead of using low-level methods).*/
class ArticleViewer : public Viewer
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constructor */
diff --git a/akregator/src/configdialog.h b/akregator/src/configdialog.h
index 3fd7c8f2..d165e094 100644
--- a/akregator/src/configdialog.h
+++ b/akregator/src/configdialog.h
@@ -34,7 +34,7 @@ class SettingsAppearance;
class ConfigDialog : public TDEConfigDialog
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/eventsrc b/akregator/src/eventsrc
index 6615ce17..56a99ab0 100644
--- a/akregator/src/eventsrc
+++ b/akregator/src/eventsrc
@@ -1,212 +1,13 @@
[!Global!]
IconName=akregator
Comment=Akregator
-Comment[da]=Akregator Plugin
-Comment[ne]=एक्रिगेटर
-Comment[sv]=aKregator
[feed_added]
Name=Feed added
-Name[af]=Stroom bygevoeg
-Name[bg]=Добавена е новина
-Name[ca]=Enllaç afegit
-Name[cs]=Přidán kanál
-Name[da]=Kilde tilføjet
-Name[de]=Nachrichtenquelle hinzugefügt
-Name[el]=Προστέθηκε ροή
-Name[eo]=Fluo aldonita
-Name[es]=Origen añadido
-Name[et]=Uudisevoog lisatud
-Name[eu]=Iturria gehituta
-Name[fa]=خوراندن اضافه‌شده
-Name[fi]=Syöte lisätty
-Name[fr]=Flux ajouté
-Name[fy]=Nijsoanfier taheakke
-Name[ga]=Cuireadh fotha leis
-Name[gl]=Engadiuse unha fonte
-Name[he]=נוסף ערוץ
-Name[hu]=Hírforrás felvéve
-Name[is]=Straum bætt við
-Name[it]=Aggiunta fonte
-Name[ja]=フィード追加
-Name[kk]=Қор қосылды
-Name[km]=បាន​បន្ថែម​មតិព័ត៌មាន
-Name[ko]=피드 추가됨
-Name[lt]=Kanalas pridėtas
-Name[ms]=Suapan ditambah
-Name[nb]=Kanal lagt til
-Name[nds]=Narichtenstroom toföögt
-Name[ne]=फिड थपियो
-Name[nl]=Feed toegevoegd
-Name[nn]=Kanal lagd til
-Name[pl]=Kanał dodany
-Name[pt]=Fonte adicionada
-Name[pt_BR]=Fonte de notícias adicionada
-Name[ru]=Лента новостей добавлена
-Name[se]=Gáldu lasihuvvon
-Name[sk]=Kŕmitko pridané
-Name[sl]=Vir je dodan
-Name[sr]=Довод је додат
-Name[sr@Latn]=Dovod je dodat
-Name[sv]=Kanal tillagd
-Name[ta]=பீஃட் சேர்க்கப்பட்டது
-Name[tr]=Haber kaynağı eklendi
-Name[uk]=Подачу додано
-Name[uz]=Янгиликлар тасмаси қўшилди
-Name[zh_CN]=添加了新闻源
-Name[zh_TW]=已加入 Feed
Comment=A new feed was remotely added to Akregator
-Comment[af]='n Nuwe stroom was vanaf 'n afgeleë ligging by Akregator bygevoeg.
-Comment[bg]=Отдалечено е добавена нова новина към Akregator
-Comment[ca]=S'ha afegit remotament un enllaç a l'Akregator
-Comment[cs]=Byl přidán nový kanál do Akregatoru
-Comment[da]=En ny kilde blev tilføjet eksternt til Akregator
-Comment[de]=Eine neue Nachrichtenquelle wurde von extern zu Akregator hinzugefügt
-Comment[el]=Μια νέα ροή προστέθηκε απομακρυσμένα στο Akregator
-Comment[es]=Se ha añadido remotamente un origen a Akregator
-Comment[et]=Akregatorile lisati väljastpoolt uus uudisevoog
-Comment[eu]=Iturri berri bat gehitu da urrunetik Akregator-era
-Comment[fa]=خوراندن جدیدی که به صورت دور به Akregator اضافه شد
-Comment[fi]=Uusi syöte lisättiin Akregatoriin ulkopuolelta
-Comment[fr]=Un flux a été ajouté à distance à Akregator
-Comment[fy]=Der wie ekstern nije nijsoanfier taheakke oan Akregator
-Comment[gl]=Engadiuse remotamente unha nova fonte a Akregator
-Comment[he]=נוסף ערוץ ל־Akregator מרחוק
-Comment[hu]=Egy hírforrást távolról felvettek az Akregatorba
-Comment[is]=Nýjum straum var bætt við Akregator
-Comment[it]=Una nuova fonte è stata aggiunta ad Akregator da remoto
-Comment[ja]=新規フィードがリモートで Akregator に追加されました
-Comment[kk]=Akregator-ға қашықтан жаңа қор қосылды
-Comment[km]=បាន​បន្ថែម​មតិព័ត៌មាន​ថ្មី​មួយ​ពី​ចម្ងាយ​ទៅ Akregator
-Comment[ko]=Akregator에 피드가 원격으로 추가됨
-Comment[lt]=Naujas nutolęs naujienų kanalas buvo įdėtas į Akregator
-Comment[ms]=Suapan baru ditambah dari jauh kepada Akregator
-Comment[nb]=En ny kanal ble lagt til Akgregator utenfra
-Comment[nds]=En nieg Stroom wöör Akregator vun buten toföögt
-Comment[ne]=एक्रिगेटरमा एउटा नयाँ फिड टाढाबाट थपिएको थियो
-Comment[nl]=Er was extern een nieuwe feed toegevoegd aan Akregator
-Comment[nn]=Ein ny kanal vart lagd til Akregator
-Comment[pl]=Nowy kanał został zdalnie dodany do Akregatora
-Comment[pt]=Foi adicionada remotamente uma nova fonte ao Akregator
-Comment[pt_BR]=Uma nova fonte de notícias foi adicionada remotamente ao Akregator
-Comment[ru]=Новая лента новостей добавлена в список Akregator
-Comment[se]=Ođđa gáldu lasihuvvui Akregatorii
-Comment[sk]=Nové kŕmitko bolo vzdialene pridané do Akregator
-Comment[sl]=Nov vir je bil oddaljeno dodan v Akregator
-Comment[sr]=Нови довод је удаљено додат у Akregator
-Comment[sr@Latn]=Novi dovod je udaljeno dodat u Akregator
-Comment[sv]=En ny kanal har lagts till i aKregator utifrån
-Comment[ta]=Akregatorக்கு ஒரு புதிய உள்ளீடு சேர்க்கப்பட்டது
-Comment[tr]=Akregator'a yeni bir haber kaynağı eklendi
-Comment[uk]=Нову подачу було віддалено додано до Akregator
-Comment[uz]=Akregator дастурига янги янгиликлар тасмаси қўшилди
-Comment[zh_CN]=新闻源远程添加进了 Akregator
-Comment[zh_TW]=已從遠端加入新的 feed 到 Akregator
default_presentation=4
[new_articles]
Name=New Articles
-Name[af]=Nuwe Artikels
-Name[ar]=المقالات الجديدة
-Name[be]=Новыя артыкулы
-Name[bg]=Нови статии
-Name[br]=Pennadoù nevez
-Name[ca]=Nous articles
-Name[cs]=Nové články
-Name[da]=Nye artikler
-Name[de]=Neue Artikel
-Name[el]=Άρθρα νέων
-Name[eo]=Novaj Artikoloj
-Name[es]=Artículos nuevos
-Name[et]=Uued artiklid
-Name[eu]=Artikulu berriak
-Name[fa]=مقالات جدید
-Name[fi]=Uudet artikkelit
-Name[fr]=Nouveaux articles
-Name[fy]=Nije artikels
-Name[ga]=Altanna Nua
-Name[gl]=Novos Artigos
-Name[he]=מאמרים חדשים
-Name[hu]=Hírekk
-Name[is]=Nýjar greinar
-Name[it]=Nuovi articoli
-Name[ja]=新規記事
-Name[kk]=Жаңа мақалалар
-Name[km]=អត្ថបទ​ថ្មី
-Name[ko]=새 글
-Name[lt]=Nauji straipsniai
-Name[mk]=Нови написи
-Name[ms]=Artikel Baru
-Name[nb]=Nye artikler
-Name[nds]=Niege Artikeln
-Name[ne]=नयाँ लेख
-Name[nl]=Nieuwe artikelen
-Name[nn]=Nye artiklar
-Name[pl]=Nowe artykuły
-Name[pt]=Novos Artigos
-Name[pt_BR]=Novos Artigos
-Name[ru]=Новые статьи
-Name[se]=Ođđa artihkkalat
-Name[sk]=Nový článok
-Name[sl]=Novi članki
-Name[sr]=Нови чланци
-Name[sr@Latn]=Novi članci
-Name[sv]=Nya artiklar
-Name[ta]= புதிய செய்திகள்
-Name[tr]=Yeni Haberler
-Name[uk]=Нові статті
-Name[uz]=Янги мақолалар
-Name[zh_CN]=新闻文章
-Name[zh_TW]=新文章
Comment=New articles were fetched
-Comment[af]=Nuwe artikels was afgelaai
-Comment[ar]=تمّ جلب المقالات الجديدة
-Comment[bg]=Пристигнали са нови статии
-Comment[ca]=S'han obtingut nous articles
-Comment[cs]=Byly staženy nové články
-Comment[da]=Nye artikler blev hentet
-Comment[de]=Neue Artikel wurden abgeholt
-Comment[el]=Έφτασαν νέα άρθρα
-Comment[eo]=Novaj artikoloj estis alprenataj
-Comment[es]=Se obtuvieron los artículos nuevos
-Comment[et]=Tõmmati uued artiklid
-Comment[eu]=Artikulu berriak eskuratu dira
-Comment[fa]=مقالات جدید واکشی شدند
-Comment[fi]=Uutta postia saapunut
-Comment[fr]=Les nouveaux articles ont été relevés
-Comment[fy]=Nije artikels binne ophelle
-Comment[ga]=Fuarthas ailt nua
-Comment[gl]=Obtivéronse novos artigos
-Comment[he]=הורדו מאמרים נוספים
-Comment[hu]=Új hírek lettek letöltve
-Comment[is]=Nýjar greinar voru sóttar
-Comment[it]=I nuovi articoli sono stati recuperati
-Comment[ja]=新規記事を取得しました
-Comment[kk]=Жаңа мақалалар қабылданды
-Comment[km]=បាន​ប្រមូល​អត្ថបទ​ថ្មី
-Comment[ko]=새 글을 가져옴
-Comment[lt]=Nauji straipsniai parsiųsti
-Comment[mk]=Беа земени нови написи
-Comment[ms]=Artikel baru telah dikutip
-Comment[nb]=Nye artikler ble hentet
-Comment[nds]=Niege Artikeln wöörn haalt
-Comment[ne]=नयाँ लेख तानिएका थिय
-Comment[nl]=Nieuw artikelen zijn opgehaald
-Comment[nn]=Nye artiklar vart henta
-Comment[pl]=Pobrano nowe artykuły
-Comment[pt]=Foram recebidos novos artigos
-Comment[pt_BR]=Há novos artigos disponíveis
-Comment[ru]=Получены новые статьи
-Comment[se]=Ođđa artihkkalat vižžon
-Comment[sk]=Získali sa nové články
-Comment[sl]=Povlečeni so bili novi članki
-Comment[sr]=Добављени су нови чланци
-Comment[sr@Latn]=Dobavljeni su novi članci
-Comment[sv]=Nya artiklar har hämtats
-Comment[ta]=புதிய கட்டுரைகள் கொண்டுவரப்பட்டது
-Comment[tr]=Yeni haberler alındı
-Comment[uk]=Отримано нові статті
-Comment[zh_CN]=获取了新文章
-Comment[zh_TW]=已抓到新文章
default_presentation=4
-
diff --git a/akregator/src/feed.cpp b/akregator/src/feed.cpp
index 7e7f59e8..53b38f65 100644
--- a/akregator/src/feed.cpp
+++ b/akregator/src/feed.cpp
@@ -579,8 +579,8 @@ void Feed::tryFetch()
{
d->fetchError = false;
- d->loader = RSS::Loader::create( this, TQT_SLOT(fetchCompleted(Loader *, Document, Status)) );
- //connect(d->loader, TQT_SIGNAL(progress(unsigned long)), this, TQT_SLOT(slotSetProgress(unsigned long)));
+ d->loader = RSS::Loader::create( this, TQ_SLOT(fetchCompleted(Loader *, Document, Status)) );
+ //connect(d->loader, TQ_SIGNAL(progress(unsigned long)), this, TQ_SLOT(slotSetProgress(unsigned long)));
d->loader->loadFrom( d->xmlUrl, new RSS::FileRetriever );
}
@@ -635,7 +635,7 @@ void Feed::fetchCompleted(RSS::Loader *l, RSS::Document doc, RSS::Status status)
if (doc.image() && d->imagePixmap.isNull())
{
d->image = *doc.image();
- connect(&d->image, TQT_SIGNAL(gotPixmap(const TQPixmap&)), this, TQT_SLOT(slotImageFetched(const TQPixmap&)));
+ connect(&d->image, TQ_SIGNAL(gotPixmap(const TQPixmap&)), this, TQ_SLOT(slotImageFetched(const TQPixmap&)));
d->image.getPixmap();
}
diff --git a/akregator/src/feed.h b/akregator/src/feed.h
index 2a6c5639..7a376386 100644
--- a/akregator/src/feed.h
+++ b/akregator/src/feed.h
@@ -63,7 +63,7 @@ namespace Akregator
{
friend class Article;
- Q_OBJECT
+ TQ_OBJECT
public:
/** the archiving modes:
diff --git a/akregator/src/feediconmanager.cpp b/akregator/src/feediconmanager.cpp
index 2167abf4..513f845f 100644
--- a/akregator/src/feediconmanager.cpp
+++ b/akregator/src/feediconmanager.cpp
@@ -62,7 +62,7 @@ void FeedIconManager::fetchIcon(Feed* feed)
if (!d->registeredFeeds.contains(feed))
{
d->registeredFeeds.append(feed);
- connect(feed, TQT_SIGNAL(signalDestroyed(TreeNode*)), this, TQT_SLOT(slotFeedDestroyed(TreeNode*)));
+ connect(feed, TQ_SIGNAL(signalDestroyed(TreeNode*)), this, TQ_SLOT(slotFeedDestroyed(TreeNode*)));
}
TQString iconURL = getIconURL(KURL(feed->xmlUrl()));
d->urlDict.insert(iconURL, feed);
@@ -119,7 +119,7 @@ TQString FeedIconManager::iconLocation(const KURL & url) const
kapp->dcopClient()->call("kded", "favicons", "iconForURL(KURL)", data,
replyType, reply);
- if (replyType == TQSTRING_OBJECT_NAME_STRING) {
+ if (replyType == "TQString") {
TQDataStream replyStream(reply, IO_ReadOnly);
TQString result;
replyStream >> result;
diff --git a/akregator/src/feediconmanager.h b/akregator/src/feediconmanager.h
index 83df9d35..55adb33e 100644
--- a/akregator/src/feediconmanager.h
+++ b/akregator/src/feediconmanager.h
@@ -44,7 +44,7 @@ namespace Akregator
class FeedIconManager:public TQObject, public DCOPObject
{
- Q_OBJECT
+ TQ_OBJECT
//
K_DCOP
diff --git a/akregator/src/feedlist.h b/akregator/src/feedlist.h
index 0587e498..cc3473d6 100644
--- a/akregator/src/feedlist.h
+++ b/akregator/src/feedlist.h
@@ -43,7 +43,7 @@ class TreeNode;
class FeedList : public NodeList
{
-Q_OBJECT
+TQ_OBJECT
public:
diff --git a/akregator/src/feedlistview.cpp b/akregator/src/feedlistview.cpp
index f0a37363..34aa6825 100644
--- a/akregator/src/feedlistview.cpp
+++ b/akregator/src/feedlistview.cpp
@@ -82,16 +82,16 @@ class NodeListView::ConnectNodeVisitor : public TreeNodeVisitor
virtual bool visitTreeNode(TreeNode* node)
{
- connect(node, TQT_SIGNAL(signalDestroyed(TreeNode*)), m_view, TQT_SLOT(slotNodeDestroyed(TreeNode*) ));
- connect(node, TQT_SIGNAL(signalChanged(TreeNode*)), m_view, TQT_SLOT(slotNodeChanged(TreeNode*) ));
+ connect(node, TQ_SIGNAL(signalDestroyed(TreeNode*)), m_view, TQ_SLOT(slotNodeDestroyed(TreeNode*) ));
+ connect(node, TQ_SIGNAL(signalChanged(TreeNode*)), m_view, TQ_SLOT(slotNodeChanged(TreeNode*) ));
return true;
}
virtual bool visitFolder(Folder* node)
{
visitTreeNode(node);
- connect(node, TQT_SIGNAL(signalChildAdded(TreeNode*)), m_view, TQT_SLOT(slotNodeAdded(TreeNode*) ));
- connect(node, TQT_SIGNAL(signalChildRemoved(Folder*, TreeNode*)), m_view, TQT_SLOT(slotNodeRemoved(Folder*, TreeNode*) ));
+ connect(node, TQ_SIGNAL(signalChildAdded(TreeNode*)), m_view, TQ_SLOT(slotNodeAdded(TreeNode*) ));
+ connect(node, TQ_SIGNAL(signalChildRemoved(Folder*, TreeNode*)), m_view, TQ_SLOT(slotNodeRemoved(Folder*, TreeNode*) ));
return true;
}
@@ -99,10 +99,10 @@ class NodeListView::ConnectNodeVisitor : public TreeNodeVisitor
{
visitTreeNode(node);
- connect(node, TQT_SIGNAL(fetchStarted(Feed*)), m_view, TQT_SLOT(slotFeedFetchStarted(Feed*)));
- connect(node, TQT_SIGNAL(fetchAborted(Feed*)), m_view, TQT_SLOT(slotFeedFetchAborted(Feed*)));
- connect(node, TQT_SIGNAL(fetchError(Feed*)), m_view, TQT_SLOT(slotFeedFetchError(Feed*)));
- connect(node, TQT_SIGNAL(fetched(Feed*)), m_view, TQT_SLOT(slotFeedFetchCompleted(Feed*)));
+ connect(node, TQ_SIGNAL(fetchStarted(Feed*)), m_view, TQ_SLOT(slotFeedFetchStarted(Feed*)));
+ connect(node, TQ_SIGNAL(fetchAborted(Feed*)), m_view, TQ_SLOT(slotFeedFetchAborted(Feed*)));
+ connect(node, TQ_SIGNAL(fetchError(Feed*)), m_view, TQ_SLOT(slotFeedFetchError(Feed*)));
+ connect(node, TQ_SIGNAL(fetched(Feed*)), m_view, TQ_SLOT(slotFeedFetchCompleted(Feed*)));
return true;
}
private:
@@ -119,30 +119,30 @@ class NodeListView::DisconnectNodeVisitor : public TreeNodeVisitor
virtual bool visitTagNode(TagNode* node)
{
- disconnect(node, TQT_SIGNAL(signalDestroyed(TreeNode*)), m_view, TQT_SLOT(slotNodeDestroyed(TreeNode*) ));
- disconnect(node, TQT_SIGNAL(signalChanged(TreeNode*)), m_view, TQT_SLOT(slotNodeChanged(TreeNode*) ));
+ disconnect(node, TQ_SIGNAL(signalDestroyed(TreeNode*)), m_view, TQ_SLOT(slotNodeDestroyed(TreeNode*) ));
+ disconnect(node, TQ_SIGNAL(signalChanged(TreeNode*)), m_view, TQ_SLOT(slotNodeChanged(TreeNode*) ));
return true;
}
virtual bool visitFolder(Folder* node)
{
- disconnect(node, TQT_SIGNAL(signalChildAdded(TreeNode*)), m_view, TQT_SLOT(slotNodeAdded(TreeNode*) ));
- disconnect(node, TQT_SIGNAL(signalChildRemoved(Folder*, TreeNode*)), m_view, TQT_SLOT(slotNodeRemoved(Folder*, TreeNode*) ));
+ disconnect(node, TQ_SIGNAL(signalChildAdded(TreeNode*)), m_view, TQ_SLOT(slotNodeAdded(TreeNode*) ));
+ disconnect(node, TQ_SIGNAL(signalChildRemoved(Folder*, TreeNode*)), m_view, TQ_SLOT(slotNodeRemoved(Folder*, TreeNode*) ));
- disconnect(node, TQT_SIGNAL(signalDestroyed(TreeNode*)), m_view, TQT_SLOT(slotNodeDestroyed(TreeNode*) ));
- disconnect(node, TQT_SIGNAL(signalChanged(TreeNode*)), m_view, TQT_SLOT(slotNodeChanged(TreeNode*) ));
+ disconnect(node, TQ_SIGNAL(signalDestroyed(TreeNode*)), m_view, TQ_SLOT(slotNodeDestroyed(TreeNode*) ));
+ disconnect(node, TQ_SIGNAL(signalChanged(TreeNode*)), m_view, TQ_SLOT(slotNodeChanged(TreeNode*) ));
return true;
}
virtual bool visitFeed(Feed* node)
{
- disconnect(node, TQT_SIGNAL(signalDestroyed(TreeNode*)), m_view, TQT_SLOT(slotNodeDestroyed(TreeNode*) ));
- disconnect(node, TQT_SIGNAL(signalChanged(TreeNode*)), m_view, TQT_SLOT(slotNodeChanged(TreeNode*) ));
- disconnect(node, TQT_SIGNAL(fetchStarted(Feed*)), m_view, TQT_SLOT(slotFeedFetchStarted(Feed*)));
- disconnect(node, TQT_SIGNAL(fetchAborted(Feed*)), m_view, TQT_SLOT(slotFeedFetchAborted(Feed*)));
- disconnect(node, TQT_SIGNAL(fetchError(Feed*)), m_view, TQT_SLOT(slotFeedFetchError(Feed*)));
- disconnect(node, TQT_SIGNAL(fetched(Feed*)), m_view, TQT_SLOT(slotFeedFetchCompleted(Feed*)));
+ disconnect(node, TQ_SIGNAL(signalDestroyed(TreeNode*)), m_view, TQ_SLOT(slotNodeDestroyed(TreeNode*) ));
+ disconnect(node, TQ_SIGNAL(signalChanged(TreeNode*)), m_view, TQ_SLOT(slotNodeChanged(TreeNode*) ));
+ disconnect(node, TQ_SIGNAL(fetchStarted(Feed*)), m_view, TQ_SLOT(slotFeedFetchStarted(Feed*)));
+ disconnect(node, TQ_SIGNAL(fetchAborted(Feed*)), m_view, TQ_SLOT(slotFeedFetchAborted(Feed*)));
+ disconnect(node, TQ_SIGNAL(fetchError(Feed*)), m_view, TQ_SLOT(slotFeedFetchError(Feed*)));
+ disconnect(node, TQ_SIGNAL(fetched(Feed*)), m_view, TQ_SLOT(slotFeedFetchCompleted(Feed*)));
return true;
}
private:
@@ -381,11 +381,11 @@ NodeListView::NodeListView( TQWidget *parent, const char *name)
setAcceptDrops(true);
setItemsMovable(true);
- connect( this, TQT_SIGNAL(dropped(TQDropEvent*, TQListViewItem*)), this, TQT_SLOT(slotDropped(TQDropEvent*, TQListViewItem*)) );
- connect( this, TQT_SIGNAL(selectionChanged(TQListViewItem*)), this, TQT_SLOT(slotSelectionChanged(TQListViewItem*)) );
- connect( this, TQT_SIGNAL(itemRenamed(TQListViewItem*, int, const TQString&)), this, TQT_SLOT(slotItemRenamed(TQListViewItem*, int, const TQString&)) );
- connect( this, TQT_SIGNAL(contextMenu(TDEListView*, TQListViewItem*, const TQPoint&)), this, TQT_SLOT(slotContextMenu(TDEListView*, TQListViewItem*, const TQPoint&)) );
- connect( &(d->autoopentimer), TQT_SIGNAL( timeout() ), this, TQT_SLOT( openFolder() ) );
+ connect( this, TQ_SIGNAL(dropped(TQDropEvent*, TQListViewItem*)), this, TQ_SLOT(slotDropped(TQDropEvent*, TQListViewItem*)) );
+ connect( this, TQ_SIGNAL(selectionChanged(TQListViewItem*)), this, TQ_SLOT(slotSelectionChanged(TQListViewItem*)) );
+ connect( this, TQ_SIGNAL(itemRenamed(TQListViewItem*, int, const TQString&)), this, TQ_SLOT(slotItemRenamed(TQListViewItem*, int, const TQString&)) );
+ connect( this, TQ_SIGNAL(contextMenu(TDEListView*, TQListViewItem*, const TQPoint&)), this, TQ_SLOT(slotContextMenu(TDEListView*, TQListViewItem*, const TQPoint&)) );
+ connect( &(d->autoopentimer), TQ_SIGNAL( timeout() ), this, TQ_SLOT( openFolder() ) );
clear();
@@ -948,8 +948,8 @@ void NodeListView::connectToNodeList(NodeList* list)
if (!list)
return;
- connect(list, TQT_SIGNAL(signalDestroyed(NodeList*)), this, TQT_SLOT(slotNodeListDestroyed(NodeList*)) );
- connect(list->rootNode(), TQT_SIGNAL(signalChanged(TreeNode*)), this, TQT_SLOT(slotRootNodeChanged(TreeNode*)));
+ connect(list, TQ_SIGNAL(signalDestroyed(NodeList*)), this, TQ_SLOT(slotNodeListDestroyed(NodeList*)) );
+ connect(list->rootNode(), TQ_SIGNAL(signalChanged(TreeNode*)), this, TQ_SLOT(slotRootNodeChanged(TreeNode*)));
}
void NodeListView::disconnectFromNodeList(NodeList* list)
@@ -957,8 +957,8 @@ void NodeListView::disconnectFromNodeList(NodeList* list)
if (!list)
return;
- disconnect(list, TQT_SIGNAL(signalDestroyed(NodeList*)), this, TQT_SLOT(slotNodeListDestroyed(NodeList*)) );
- disconnect(list->rootNode(), TQT_SIGNAL(signalChanged(TreeNode*)), this, TQT_SLOT(slotRootNodeChanged(TreeNode*)));
+ disconnect(list, TQ_SIGNAL(signalDestroyed(NodeList*)), this, TQ_SLOT(slotNodeListDestroyed(NodeList*)) );
+ disconnect(list->rootNode(), TQ_SIGNAL(signalChanged(TreeNode*)), this, TQ_SLOT(slotRootNodeChanged(TreeNode*)));
}
void NodeListView::disconnectFromNode(TreeNode* node)
diff --git a/akregator/src/feedlistview.h b/akregator/src/feedlistview.h
index 28d79d09..d7aff329 100644
--- a/akregator/src/feedlistview.h
+++ b/akregator/src/feedlistview.h
@@ -38,7 +38,7 @@ class TagNodeList;
class NodeListView : public TDEListView
{
-Q_OBJECT
+TQ_OBJECT
public:
NodeListView( TQWidget *parent = 0, const char *name = 0 );
@@ -192,7 +192,7 @@ public: // compat with KDE-3.x assertions, remove for KDE 4
class TagNodeListView : public NodeListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
TagNodeListView(TQWidget *parent = 0, const char *name = 0) {}
diff --git a/akregator/src/fetchqueue.cpp b/akregator/src/fetchqueue.cpp
index c78d9a48..0bc7b38e 100644
--- a/akregator/src/fetchqueue.cpp
+++ b/akregator/src/fetchqueue.cpp
@@ -129,18 +129,18 @@ void FetchQueue::feedDone(Feed *f)
void FetchQueue::connectToFeed(Feed* feed)
{
- connect (feed, TQT_SIGNAL(fetched(Feed*)), this, TQT_SLOT(slotFeedFetched(Feed*)));
- connect (feed, TQT_SIGNAL(fetchError(Feed*)), this, TQT_SLOT(slotFetchError(Feed*)));
- connect (feed, TQT_SIGNAL(fetchAborted(Feed*)), this, TQT_SLOT(slotFetchAborted(Feed*)));
- connect (feed, TQT_SIGNAL(signalDestroyed(TreeNode*)), this, TQT_SLOT(slotNodeDestroyed(TreeNode*)));
+ connect (feed, TQ_SIGNAL(fetched(Feed*)), this, TQ_SLOT(slotFeedFetched(Feed*)));
+ connect (feed, TQ_SIGNAL(fetchError(Feed*)), this, TQ_SLOT(slotFetchError(Feed*)));
+ connect (feed, TQ_SIGNAL(fetchAborted(Feed*)), this, TQ_SLOT(slotFetchAborted(Feed*)));
+ connect (feed, TQ_SIGNAL(signalDestroyed(TreeNode*)), this, TQ_SLOT(slotNodeDestroyed(TreeNode*)));
}
void FetchQueue::disconnectFromFeed(Feed* feed)
{
- disconnect (feed, TQT_SIGNAL(fetched(Feed*)), this, TQT_SLOT(slotFeedFetched(Feed*)));
- disconnect (feed, TQT_SIGNAL(fetchError(Feed*)), this, TQT_SLOT(slotFetchError(Feed*)));
- disconnect (feed, TQT_SIGNAL(fetchAborted(Feed*)), this, TQT_SLOT(slotFetchAborted(Feed*)));
- disconnect (feed, TQT_SIGNAL(signalDestroyed(TreeNode*)), this, TQT_SLOT(slotNodeDestroyed(TreeNode*)));
+ disconnect (feed, TQ_SIGNAL(fetched(Feed*)), this, TQ_SLOT(slotFeedFetched(Feed*)));
+ disconnect (feed, TQ_SIGNAL(fetchError(Feed*)), this, TQ_SLOT(slotFetchError(Feed*)));
+ disconnect (feed, TQ_SIGNAL(fetchAborted(Feed*)), this, TQ_SLOT(slotFetchAborted(Feed*)));
+ disconnect (feed, TQ_SIGNAL(signalDestroyed(TreeNode*)), this, TQ_SLOT(slotNodeDestroyed(TreeNode*)));
}
diff --git a/akregator/src/fetchqueue.h b/akregator/src/fetchqueue.h
index 1a0f449e..d93b955f 100644
--- a/akregator/src/fetchqueue.h
+++ b/akregator/src/fetchqueue.h
@@ -35,7 +35,7 @@ class TreeNode;
class FetchQueue : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -86,6 +86,3 @@ class FetchQueue : public TQObject
} // namespace Akregator
#endif
-
-// vim: set et ts=4 sts=4 sw=4:
-
diff --git a/akregator/src/folder.cpp b/akregator/src/folder.cpp
index 739b0cf1..57105f4f 100644
--- a/akregator/src/folder.cpp
+++ b/akregator/src/folder.cpp
@@ -308,20 +308,20 @@ void Folder::doArticleNotification()
void Folder::connectToNode(TreeNode* child)
{
- connect(child, TQT_SIGNAL(signalChanged(TreeNode*)), this, TQT_SLOT(slotChildChanged(TreeNode*)));
- connect(child, TQT_SIGNAL(signalDestroyed(TreeNode*)), this, TQT_SLOT(slotChildDestroyed(TreeNode*)));
- connect(child, TQT_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)), this, TQT_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)));
- connect(child, TQT_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)), this, TQT_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)));
- connect(child, TQT_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)), this, TQT_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)));
+ connect(child, TQ_SIGNAL(signalChanged(TreeNode*)), this, TQ_SLOT(slotChildChanged(TreeNode*)));
+ connect(child, TQ_SIGNAL(signalDestroyed(TreeNode*)), this, TQ_SLOT(slotChildDestroyed(TreeNode*)));
+ connect(child, TQ_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)), this, TQ_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)));
+ connect(child, TQ_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)), this, TQ_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)));
+ connect(child, TQ_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)), this, TQ_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)));
}
void Folder::disconnectFromNode(TreeNode* child)
{
- disconnect(child, TQT_SIGNAL(signalChanged(TreeNode*)), this, TQT_SLOT(slotChildChanged(TreeNode*)));
- disconnect(child, TQT_SIGNAL(signalDestroyed(TreeNode*)), this, TQT_SLOT(slotChildDestroyed(TreeNode*)));
- disconnect(child, TQT_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)), this, TQT_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)));
- disconnect(child, TQT_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)), this, TQT_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)));
- disconnect(child, TQT_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)), this, TQT_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)));
+ disconnect(child, TQ_SIGNAL(signalChanged(TreeNode*)), this, TQ_SLOT(slotChildChanged(TreeNode*)));
+ disconnect(child, TQ_SIGNAL(signalDestroyed(TreeNode*)), this, TQ_SLOT(slotChildDestroyed(TreeNode*)));
+ disconnect(child, TQ_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)), this, TQ_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)));
+ disconnect(child, TQ_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)), this, TQ_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)));
+ disconnect(child, TQ_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)), this, TQ_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)));
}
TreeNode* Folder::next()
diff --git a/akregator/src/folder.h b/akregator/src/folder.h
index d8060386..504b457f 100644
--- a/akregator/src/folder.h
+++ b/akregator/src/folder.h
@@ -43,7 +43,7 @@ namespace Akregator
*/
class Folder : public TreeNode
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** creates a feed group parsed from a XML dom element.
diff --git a/akregator/src/frame.cpp b/akregator/src/frame.cpp
index 6e27b915..64e0e37f 100644
--- a/akregator/src/frame.cpp
+++ b/akregator/src/frame.cpp
@@ -50,25 +50,25 @@ Frame::Frame(TQObject * parent, KParts::ReadOnlyPart *p, TQWidget *visWidget, co
if (watchSignals) // e.g, articles tab has no part
{
- connect(m_part, TQT_SIGNAL(setWindowCaption (const TQString &)), this, TQT_SLOT(setCaption (const TQString &)));
- connect(m_part, TQT_SIGNAL(setStatusBarText (const TQString &)), this, TQT_SLOT(setStatusText (const TQString &)));
+ connect(m_part, TQ_SIGNAL(setWindowCaption (const TQString &)), this, TQ_SLOT(setCaption (const TQString &)));
+ connect(m_part, TQ_SIGNAL(setStatusBarText (const TQString &)), this, TQ_SLOT(setStatusText (const TQString &)));
KParts::BrowserExtension *ext=KParts::BrowserExtension::childObject( p );
if (ext)
- connect( ext, TQT_SIGNAL(loadingProgress(int)), this, TQT_SLOT(setProgress(int)) );
+ connect( ext, TQ_SIGNAL(loadingProgress(int)), this, TQ_SLOT(setProgress(int)) );
- connect(p, TQT_SIGNAL(started(TDEIO::Job*)), this, TQT_SLOT(setStarted()));
- connect(p, TQT_SIGNAL(completed()), this, TQT_SLOT(setCompleted()));
- connect(p, TQT_SIGNAL(canceled(const TQString &)), this, TQT_SLOT(setCanceled(const TQString&)));
- connect(p, TQT_SIGNAL(completed(bool)), this, TQT_SLOT(setCompleted()));
+ connect(p, TQ_SIGNAL(started(TDEIO::Job*)), this, TQ_SLOT(setStarted()));
+ connect(p, TQ_SIGNAL(completed()), this, TQ_SLOT(setCompleted()));
+ connect(p, TQ_SIGNAL(canceled(const TQString &)), this, TQ_SLOT(setCanceled(const TQString&)));
+ connect(p, TQ_SIGNAL(completed(bool)), this, TQ_SLOT(setCompleted()));
/* TDEActionCollection *coll=p->actionCollection();
if (coll)
{
- connect( coll, TQT_SIGNAL( actionStatusText( const TQString & ) ),
- this, TQT_SLOT( slotActionStatusText( const TQString & ) ) );
- connect( coll, TQT_SIGNAL( clearStatusText() ),
- this, TQT_SLOT( slotClearStatusText() ) );
+ connect( coll, TQ_SIGNAL( actionStatusText( const TQString & ) ),
+ this, TQ_SLOT( slotActionStatusText( const TQString & ) ) );
+ connect( coll, TQ_SIGNAL( clearStatusText() ),
+ this, TQ_SLOT( slotClearStatusText() ) );
}
*/
}
@@ -176,7 +176,7 @@ void Frame::setStarted()
if(m_progressId.isNull() || m_progressId.isEmpty()) m_progressId = KPIM::ProgressManager::getUniqueID();
m_progressItem = KPIM::ProgressManager::createProgressItem(m_progressId, TQStyleSheet::escape( title() ), TQString(), false);
m_progressItem->setStatus(i18n("Loading..."));
- //connect(m_progressItem, TQT_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)), TQT_SLOT(slotAbortFetch()));
+ //connect(m_progressItem, TQ_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)), TQ_SLOT(slotAbortFetch()));
m_state=Started;
emit started();
}
diff --git a/akregator/src/frame.h b/akregator/src/frame.h
index 4a0cb36d..1cecfd52 100644
--- a/akregator/src/frame.h
+++ b/akregator/src/frame.h
@@ -42,7 +42,7 @@ namespace Akregator
class Frame : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -96,6 +96,3 @@ namespace Akregator
}
#endif
-
-
-// vim: set et ts=4 sts=4 sw=4:
diff --git a/akregator/src/librss/article.cpp b/akregator/src/librss/article.cpp
index 24413053..18522fe3 100644
--- a/akregator/src/librss/article.cpp
+++ b/akregator/src/librss/article.cpp
@@ -286,5 +286,3 @@ bool Article::operator==(const Article &other) const
{
return d->guid == other.guid();
}
-
-// vim:noet:ts=4
diff --git a/akregator/src/librss/article.h b/akregator/src/librss/article.h
index 7656eeed..c27fdfe7 100644
--- a/akregator/src/librss/article.h
+++ b/akregator/src/librss/article.h
@@ -169,4 +169,3 @@ namespace RSS
}
#endif // LIBRSS_ARTICLE_H
-// vim: noet:ts=4
diff --git a/akregator/src/librss/document.cpp b/akregator/src/librss/document.cpp
index 6d6e1057..3bc64d00 100644
--- a/akregator/src/librss/document.cpp
+++ b/akregator/src/librss/document.cpp
@@ -649,5 +649,3 @@ Document &Document::operator=(const Document &other)
}
return *this;
}
-
-// vim:noet:ts=4
diff --git a/akregator/src/librss/document.h b/akregator/src/librss/document.h
index 7a94e59d..8d098e7d 100644
--- a/akregator/src/librss/document.h
+++ b/akregator/src/librss/document.h
@@ -234,4 +234,3 @@ namespace RSS
}
#endif // LIBRSS_DOCUMENT_H
-// vim: noet:ts=4
diff --git a/akregator/src/librss/global.h b/akregator/src/librss/global.h
index 091018cb..966521cc 100644
--- a/akregator/src/librss/global.h
+++ b/akregator/src/librss/global.h
@@ -11,7 +11,7 @@
#ifndef LIBRSS_GLOBAL_H
#define LIBRSS_GLOBAL_H
-#include <tdepimmacros.h>
+#include <kdemacros.h>
template <class>
class TQValueList;
@@ -145,4 +145,3 @@ namespace RSS
}
#endif // LIBRSS_GLOBAL_H
-// vim: noet:ts=4
diff --git a/akregator/src/librss/image.cpp b/akregator/src/librss/image.cpp
index 383d76b9..65aaf539 100644
--- a/akregator/src/librss/image.cpp
+++ b/akregator/src/librss/image.cpp
@@ -112,9 +112,9 @@ void Image::getPixmap()
d->pixmapBuffer->open(IO_WriteOnly);
d->job = TDEIO::get(d->url, false, false);
- connect(d->job, TQT_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
- this, TQT_SLOT(slotData(TDEIO::Job *, const TQByteArray &)));
- connect(d->job, TQT_SIGNAL(result(TDEIO::Job *)), this, TQT_SLOT(slotResult(TDEIO::Job *)));
+ connect(d->job, TQ_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
+ this, TQ_SLOT(slotData(TDEIO::Job *, const TQByteArray &)));
+ connect(d->job, TQ_SIGNAL(result(TDEIO::Job *)), this, TQ_SLOT(slotResult(TDEIO::Job *)));
}
void Image::slotData(TDEIO::Job *, const TQByteArray &data)
@@ -164,4 +164,3 @@ bool Image::operator==(const Image &other) const
}
#include "image.moc"
-// vim:noet:ts=4
diff --git a/akregator/src/librss/image.h b/akregator/src/librss/image.h
index ab0cf687..4c99c7f3 100644
--- a/akregator/src/librss/image.h
+++ b/akregator/src/librss/image.h
@@ -33,7 +33,7 @@ namespace RSS
*/
class KDE_EXPORT Image : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
@@ -171,4 +171,3 @@ namespace RSS
}
#endif // LIBRSS_IMAGE_H
-// vim: noet:ts=4
diff --git a/akregator/src/librss/librss.h b/akregator/src/librss/librss.h
index b99556b1..877d06f2 100644
--- a/akregator/src/librss/librss.h
+++ b/akregator/src/librss/librss.h
@@ -21,4 +21,3 @@
#include "textinput.h"
#endif // LIBRSS_LIBRSS_H
-// vim: noet:ts=4
diff --git a/akregator/src/librss/loader.cpp b/akregator/src/librss/loader.cpp
index ea0134e6..5cc6aa22 100644
--- a/akregator/src/librss/loader.cpp
+++ b/akregator/src/librss/loader.cpp
@@ -111,13 +111,13 @@ void FileRetriever::retrieveData(const KURL &url)
d->job->addMetaData("UserAgent", ua);
- TQTimer::singleShot(1000*90, this, TQT_SLOT(slotTimeout()));
+ TQTimer::singleShot(1000*90, this, TQ_SLOT(slotTimeout()));
- connect(d->job, TQT_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
- TQT_SLOT(slotData(TDEIO::Job *, const TQByteArray &)));
- connect(d->job, TQT_SIGNAL(result(TDEIO::Job *)), TQT_SLOT(slotResult(TDEIO::Job *)));
- connect(d->job, TQT_SIGNAL(permanentRedirection(TDEIO::Job *, const KURL &, const KURL &)),
- TQT_SLOT(slotPermanentRedirection(TDEIO::Job *, const KURL &, const KURL &)));
+ connect(d->job, TQ_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
+ TQ_SLOT(slotData(TDEIO::Job *, const TQByteArray &)));
+ connect(d->job, TQ_SIGNAL(result(TDEIO::Job *)), TQ_SLOT(slotResult(TDEIO::Job *)));
+ connect(d->job, TQ_SIGNAL(permanentRedirection(TDEIO::Job *, const KURL &, const KURL &)),
+ TQ_SLOT(slotPermanentRedirection(TDEIO::Job *, const KURL &, const KURL &)));
}
void FileRetriever::slotTimeout()
@@ -207,10 +207,10 @@ void OutputRetriever::retrieveData(const KURL &url)
d->buffer->open(IO_WriteOnly);
d->process = new KShellProcess();
- connect(d->process, TQT_SIGNAL(processExited(TDEProcess *)),
- TQT_SLOT(slotExited(TDEProcess *)));
- connect(d->process, TQT_SIGNAL(receivedStdout(TDEProcess *, char *, int)),
- TQT_SLOT(slotOutput(TDEProcess *, char *, int)));
+ connect(d->process, TQ_SIGNAL(processExited(TDEProcess *)),
+ TQ_SLOT(slotExited(TDEProcess *)));
+ connect(d->process, TQ_SIGNAL(receivedStdout(TDEProcess *, char *, int)),
+ TQ_SLOT(slotOutput(TDEProcess *, char *, int)));
*d->process << url.path();
d->process->start(TDEProcess::NotifyOnExit, TDEProcess::Stdout);
}
@@ -268,7 +268,7 @@ Loader *Loader::create()
Loader *Loader::create(TQObject *object, const char *slot)
{
Loader *loader = create();
- connect(loader, TQT_SIGNAL(loadingComplete(Loader *, Document, Status)),
+ connect(loader, TQ_SIGNAL(loadingComplete(Loader *, Document, Status)),
object, slot);
return loader;
}
@@ -290,8 +290,8 @@ void Loader::loadFrom(const KURL &url, DataRetriever *retriever)
d->url=url;
d->retriever = retriever;
- connect(d->retriever, TQT_SIGNAL(dataRetrieved(const TQByteArray &, bool)),
- this, TQT_SLOT(slotRetrieverDone(const TQByteArray &, bool)));
+ connect(d->retriever, TQ_SIGNAL(dataRetrieved(const TQByteArray &, bool)),
+ this, TQ_SLOT(slotRetrieverDone(const TQByteArray &, bool)));
d->retriever->retrieveData(url);
}
@@ -410,4 +410,3 @@ void Loader::discoverFeeds(const TQByteArray &data)
}
#include "loader.moc"
-// vim:noet:ts=4
diff --git a/akregator/src/librss/loader.h b/akregator/src/librss/loader.h
index 670ed9d3..ea81a0a6 100644
--- a/akregator/src/librss/loader.h
+++ b/akregator/src/librss/loader.h
@@ -34,7 +34,7 @@ namespace RSS
*/
class KDE_EXPORT DataRetriever : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
@@ -89,7 +89,7 @@ namespace RSS
*/
class KDE_EXPORT FileRetriever : public DataRetriever
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
@@ -161,7 +161,7 @@ namespace RSS
*/
class OutputRetriever : public DataRetriever
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
@@ -211,8 +211,8 @@ namespace RSS
*
* \code
* Loader *loader = Loader::create();
- * connect(loader, TQT_SIGNAL(loadingComplete(Loader *, Document, Status)),
- * this, TQT_SLOT(slotLoadingComplete(Loader *, Document, Status)));
+ * connect(loader, TQ_SIGNAL(loadingComplete(Loader *, Document, Status)),
+ * this, TQ_SLOT(slotLoadingComplete(Loader *, Document, Status)));
* loader->loadFrom("http://www.blah.org/foobar.rdf", new FileRetriever);
* \endcode
*
@@ -256,7 +256,7 @@ namespace RSS
*/
class KDE_EXPORT Loader : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
friend class someClassWhichDoesNotExist;
public:
@@ -342,4 +342,3 @@ namespace RSS
}
#endif // LIBRSS_LOADER_H
-// vim: noet:ts=4
diff --git a/akregator/src/librss/testlibrss.cpp b/akregator/src/librss/testlibrss.cpp
index bef989c6..4515cf7e 100644
--- a/akregator/src/librss/testlibrss.cpp
+++ b/akregator/src/librss/testlibrss.cpp
@@ -19,8 +19,8 @@ static const TDECmdLineOptions options[] =
void Tester::test( const TQString &url )
{
Loader *loader = Loader::create();
- connect( loader, TQT_SIGNAL( loadingComplete( Loader *, Document, Status ) ),
- this, TQT_SLOT( slotLoadingComplete( Loader *, Document, Status ) ) );
+ connect( loader, TQ_SIGNAL( loadingComplete( Loader *, Document, Status ) ),
+ this, TQ_SLOT( slotLoadingComplete( Loader *, Document, Status ) ) );
loader->loadFrom( url, new FileRetriever );
}
diff --git a/akregator/src/librss/testlibrss.h b/akregator/src/librss/testlibrss.h
index 222943a6..2a918a5b 100644
--- a/akregator/src/librss/testlibrss.h
+++ b/akregator/src/librss/testlibrss.h
@@ -14,7 +14,7 @@ using RSS::Status;
class Tester : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
void test( const TQString &url );
diff --git a/akregator/src/librss/textinput.cpp b/akregator/src/librss/textinput.cpp
index 04799fca..a32c9f58 100644
--- a/akregator/src/librss/textinput.cpp
+++ b/akregator/src/librss/textinput.cpp
@@ -92,5 +92,3 @@ bool TextInput::operator==(const TextInput &other) const
d->name == other.name() &&
d->link == other.link();
}
-
-// vim:noet:ts=4
diff --git a/akregator/src/librss/textinput.h b/akregator/src/librss/textinput.h
index cbf5bdb6..dd46d176 100644
--- a/akregator/src/librss/textinput.h
+++ b/akregator/src/librss/textinput.h
@@ -118,4 +118,3 @@ namespace RSS
}
#endif // LIBRSS_TEXTINPUT_H
-// vim: noet:ts=4
diff --git a/akregator/src/librss/tools_p.cpp b/akregator/src/librss/tools_p.cpp
index bd8ce39b..9303bdf5 100644
--- a/akregator/src/librss/tools_p.cpp
+++ b/akregator/src/librss/tools_p.cpp
@@ -245,5 +245,3 @@ TQString parseItemAuthor(const TQDomElement& element, Format format, Version ver
}
} // namespace RSS
-
-// vim:noet:ts=4
diff --git a/akregator/src/librss/tools_p.h b/akregator/src/librss/tools_p.h
index 47be905d..0ec9013f 100644
--- a/akregator/src/librss/tools_p.h
+++ b/akregator/src/librss/tools_p.h
@@ -37,4 +37,3 @@ namespace RSS
}
#endif // LIBRSS_TOOLS_P_H
-// vim:noet:ts=4
diff --git a/akregator/src/listtabwidget.cpp b/akregator/src/listtabwidget.cpp
index 1920a5ff..8349f28a 100644
--- a/akregator/src/listtabwidget.cpp
+++ b/akregator/src/listtabwidget.cpp
@@ -170,7 +170,7 @@ ListTabWidget::ListTabWidget(TQWidget* parent, const char* name) : TQWidget(pare
d->stack = new TQWidgetStack(this);
d->layout->addWidget(d->stack/*, 0, 1*/);
-// connect(d->tabBar, TQT_SIGNAL(currentChanged(TQWidget*)), this, TQT_SLOT(slotCurrentChanged(TQWidget*)));
+// connect(d->tabBar, TQ_SIGNAL(currentChanged(TQWidget*)), this, TQ_SLOT(slotCurrentChanged(TQWidget*)));
}
ListTabWidget::~ListTabWidget()
@@ -206,11 +206,11 @@ void ListTabWidget::addView(NodeListView* view, const TQString& caption, const T
int tabId = d->idCounter++;
d->tabBar->appendTab(icon, tabId, caption);
d->idToView[tabId] = view;
- connect(d->tabBar->tab(tabId), TQT_SIGNAL(clicked(int)), this, TQT_SLOT(slotTabClicked(int)));
+ connect(d->tabBar->tab(tabId), TQ_SIGNAL(clicked(int)), this, TQ_SLOT(slotTabClicked(int)));
- connect(view, TQT_SIGNAL(signalNodeSelected(TreeNode*)), this, TQT_SIGNAL(signalNodeSelected(TreeNode*)));
- connect(view, TQT_SIGNAL(signalRootNodeChanged(NodeListView*, TreeNode*)), this, TQT_SLOT(slotRootNodeChanged(NodeListView*, TreeNode*)));
+ connect(view, TQ_SIGNAL(signalNodeSelected(TreeNode*)), this, TQ_SIGNAL(signalNodeSelected(TreeNode*)));
+ connect(view, TQ_SIGNAL(signalRootNodeChanged(NodeListView*, TreeNode*)), this, TQ_SLOT(slotRootNodeChanged(NodeListView*, TreeNode*)));
if (tabId == 0) // first widget
diff --git a/akregator/src/listtabwidget.h b/akregator/src/listtabwidget.h
index 7e395167..4038f9a2 100644
--- a/akregator/src/listtabwidget.h
+++ b/akregator/src/listtabwidget.h
@@ -45,7 +45,7 @@ class TreeNode;
class ListTabWidget : public TQWidget
{
-Q_OBJECT
+TQ_OBJECT
public:
diff --git a/akregator/src/mainwindow.cpp b/akregator/src/mainwindow.cpp
index c4e47338..aa10eb70 100644
--- a/akregator/src/mainwindow.cpp
+++ b/akregator/src/mainwindow.cpp
@@ -62,7 +62,7 @@
namespace Akregator {
BrowserInterface::BrowserInterface( MainWindow *shell, const char *name )
- : KParts::BrowserInterface( TQT_TQOBJECT(shell), name )
+ : KParts::BrowserInterface( shell, name )
{
m_shell = shell;
}
@@ -104,16 +104,16 @@ bool MainWindow::loadPart()
{
// now that the Part is loaded, we cast it to a Part to get
// our hands on it
- m_part = static_cast<Akregator::Part*>(factory->create(TQT_TQOBJECT(this), "akregator_part", "KParts::ReadOnlyPart" ));
+ m_part = static_cast<Akregator::Part*>(factory->create(this, "akregator_part", "KParts::ReadOnlyPart" ));
if (m_part)
{
// tell the KParts::MainWindow that this is indeed the main widget
setCentralWidget(m_part->widget());
- connect(m_part, TQT_SIGNAL(setWindowCaption (const TQString &)), this, TQT_SLOT(setCaption (const TQString &)));
+ connect(m_part, TQ_SIGNAL(setWindowCaption (const TQString &)), this, TQ_SLOT(setCaption (const TQString &)));
- connect(TrayIcon::getInstance(), TQT_SIGNAL(quitSelected()), this, TQT_SLOT(slotQuit()));
+ connect(TrayIcon::getInstance(), TQ_SIGNAL(quitSelected()), this, TQ_SLOT(slotQuit()));
// and integrate the part's GUI with the shell's
connectActionCollection(m_part->actionCollection());
createGUI(m_part);
@@ -154,13 +154,13 @@ void MainWindow::setupActions()
{
connectActionCollection(actionCollection());
- KStdAction::quit(TQT_TQOBJECT(kapp), TQT_SLOT(quit()), actionCollection());
+ KStdAction::quit(kapp, TQ_SLOT(quit()), actionCollection());
setStandardToolBarMenuEnabled(true);
createStandardStatusBarAction();
- KStdAction::keyBindings(TQT_TQOBJECT(this), TQT_SLOT(optionsConfigureKeys()), actionCollection());
- KStdAction::configureToolbars(TQT_TQOBJECT(this), TQT_SLOT(optionsConfigureToolbars()), actionCollection());
+ KStdAction::keyBindings(this, TQ_SLOT(optionsConfigureKeys()), actionCollection());
+ KStdAction::configureToolbars(this, TQ_SLOT(optionsConfigureToolbars()), actionCollection());
}
void MainWindow::saveProperties(TDEConfig* config)
@@ -203,8 +203,8 @@ void MainWindow::optionsConfigureToolbars()
// use the standard toolbar editor
KEditToolbar dlg(factory());
- connect(&dlg, TQT_SIGNAL(newToolbarConfig()),
- this, TQT_SLOT(applyNewToolbarConfig()));
+ connect(&dlg, TQ_SIGNAL(newToolbarConfig()),
+ this, TQ_SLOT(applyNewToolbarConfig()));
dlg.exec();
}
@@ -226,10 +226,10 @@ KParts::BrowserExtension *MainWindow::browserExtension(KParts::ReadOnlyPart *p)
void MainWindow::connectActionCollection( TDEActionCollection *coll )
{
if (!coll) return;
- connect( coll, TQT_SIGNAL( actionStatusText( const TQString & ) ),
- m_statusLabel, TQT_SLOT( setText( const TQString & ) ) );
- connect( coll, TQT_SIGNAL( clearStatusText() ),
- this, TQT_SLOT( slotClearStatusText() ) );
+ connect( coll, TQ_SIGNAL( actionStatusText( const TQString & ) ),
+ m_statusLabel, TQ_SLOT( setText( const TQString & ) ) );
+ connect( coll, TQ_SIGNAL( clearStatusText() ),
+ this, TQ_SLOT( slotClearStatusText() ) );
}
bool MainWindow::queryExit()
@@ -285,6 +285,3 @@ void MainWindow::slotSetStatusBarText( const TQString & text )
} // namespace Akregator
#include "mainwindow.moc"
-
-
-// vim: set et ts=4 sts=4 sw=4:
diff --git a/akregator/src/mainwindow.h b/akregator/src/mainwindow.h
index c5d9529b..23d5d0c0 100644
--- a/akregator/src/mainwindow.h
+++ b/akregator/src/mainwindow.h
@@ -53,7 +53,7 @@ class MainWindow;
class BrowserInterface : public KParts::BrowserInterface
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -72,7 +72,7 @@ private:
*/
class MainWindow : public KParts::MainWindow
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/mk4storage/CMakeLists.txt b/akregator/src/mk4storage/CMakeLists.txt
index c229d6ec..a1c78613 100644
--- a/akregator/src/mk4storage/CMakeLists.txt
+++ b/akregator/src/mk4storage/CMakeLists.txt
@@ -27,7 +27,12 @@ link_directories(
##### other data ################################
-install( FILES akregator_mk4storage_plugin.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE akregator_mk4storage_plugin.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR akregator-desktops
+)
+
install( FILES mk4config.kcfg DESTINATION ${KCFG_INSTALL_DIR} )
diff --git a/akregator/src/mk4storage/akregator_mk4storage_plugin.desktop b/akregator/src/mk4storage/akregator_mk4storage_plugin.desktop
index 4d932dcf..28d3cb0e 100644
--- a/akregator/src/mk4storage/akregator_mk4storage_plugin.desktop
+++ b/akregator/src/mk4storage/akregator_mk4storage_plugin.desktop
@@ -1,99 +1,10 @@
[Desktop Entry]
-Type=Service
Name=Metakit storage backend
-Name[af]=Metakit stoor agterkant
-Name[bg]=Приставка за архивиране Metakit
-Name[ca]=Dorsal de emmagatzematge Metakit
-Name[cs]=Metakit úložiště
-Name[da]=Metakit lagringsgrænseflade
-Name[de]=Metakit Archiv-Modul
-Name[el]=Σύστημα υποστήριξης αποθήκευσης Metakit
-Name[eo]=Metakit datumstora maŝino
-Name[es]=Dorsal de almacenamiento Metakit
-Name[et]=Metakiti salvestamisrakendus
-Name[eu]=Metakit-en biltegiratze euskarria
-Name[fa]=پشتیبان ذخیره‌گاه Metakit
-Name[fi]=Metakit-tallennusajuri
-Name[fr]=Stockage avec Metakit
-Name[fy]=Metakit-opslachefterein
-Name[gl]=Manexador do almacenador Metakit
-Name[hu]=Metakit tároló
-Name[is]=Metakit geymslu bakendi
-Name[it]=Backend archiviazione metakit
-Name[ja]=メタキットストレージバックエンド
-Name[kk]=Metakit архивтеу бағдарламасы
-Name[km]=កម្មវិធី​ខាង​ក្រោយ​សម្រាប់​រក្សាទុក (Metakit)
-Name[ko]=Metakit 저장소 백엔드
-Name[lt]=Metakit saugojimo programinė sąsaja
-Name[ms]=Hujung belakang storan Metakit
-Name[nb]=Metakit lagringsbakstykke
-Name[nds]=Metakit-Archivmoduul
-Name[ne]=मेटाकिट भण्डारण ब्याकइन्ड
-Name[nl]=Metakit-opslagbackend
-Name[nn]=Metakit-lagringsbakstykke
-Name[pl]=System przechowywania Metakit
-Name[pt]=Infra-estrutura de armazenamento Metakit
-Name[pt_BR]=Mecanismo de armazenamento Metakit
-Name[ru]=Движок Metakit
-Name[sl]=Shranjevanje Metakit
-Name[sr]=Систем за смештање Мета комплета
-Name[sr@Latn]=Sistem za smeštanje Meta kompleta
-Name[sv]=Metakit lagringsgränssnitt
-Name[tr]=Metakit depolama arka ucu
-Name[uk]=Програма зберігання Metakit
-Name[zh_CN]=Metakit 存储后端
-Name[zh_TW]=Metakit 儲存後端介面
-X-TDE-Library=libakregator_mk4storage_plugin
+
Comment=Plugin for Akregator
-Comment[af]=Inprop module vir Akregator
-Comment[be]=Утулка для Akregator
-Comment[bg]=Приставка за Akregator
-Comment[br]=Lugent evit Akregator
-Comment[ca]=Endollable per a l'Akregator
-Comment[cs]=Modul pro Akregator
-Comment[de]=Modul für Akregator
-Comment[el]=Πρόσθετο για το Akregator
-Comment[eo]=Kromprogramo por Akregator
-Comment[es]=Extensión para Akregator
-Comment[et]=Akregatori plugin
-Comment[eu]=Akregator-en plugina
-Comment[fa]=وصله برای Akregator
-Comment[fi]=Liitännäinen Akregatoriin
-Comment[fr]=Module pour Akregator
-Comment[fy]=Plugin foar Akregator
-Comment[ga]=Breiseán Akregator
-Comment[gl]=Extensión para Akregator
-Comment[he]=תוסף עבור Akregator
-Comment[hu]=Akregator bővítőmodul
-Comment[is]=Íforrit fyrir Akregator
-Comment[it]=Plugin per Akregator
-Comment[ja]=Akregator 用プラグイン
-Comment[kk]=Akregator-дың плагин модулі
-Comment[km]=កម្មវិធី​ជំនួយ Akregator
-Comment[ko]=Akregator 플러그인
-Comment[lt]=Akregator skirtas priedas
-Comment[mk]=Приклучок за Akregator
-Comment[ms]=Plugin untuk Akregator
-Comment[nb]=Programtillegg for Akregator
-Comment[nds]=Moduul för Akregator
-Comment[ne]=एक्रिगेटरका लागि प्लगइन
-Comment[nl]=Plugin voor Akregator
-Comment[nn]=Programtillegg til Akregator
-Comment[pl]=Wtyczka dla Akregatora
-Comment[pt]='Plugin' para o Akregator
-Comment[pt_BR]=Plug-in para o Akregator
-Comment[ru]=Модуль Akregator
-Comment[se]=Lassemoduvla Akregatorii
-Comment[sk]=Modul pre Akregator
-Comment[sl]=Vstavek za Akregator
-Comment[sr]=Прикључак за Akregator
-Comment[sr@Latn]=Priključak za Akregator
-Comment[sv]=Insticksprogram för Akregator
-Comment[tr]=Akregator Eklentisi
-Comment[uk]=Втулок для Akregator
-Comment[uz]=Akregator учун плагин
-Comment[zh_CN]=Akregator 插件
-Comment[zh_TW]=Akregator 外掛程式
+
+Type=Service
+X-TDE-Library=libakregator_mk4storage_plugin
X-TDE-ServiceTypes=Akregator/Plugin
X-TDE-akregator-plugintype=storage
@@ -103,4 +14,3 @@ X-TDE-akregator-email=frank.osterfeld@kdemail.net
X-TDE-akregator-rank=255
X-TDE-akregator-version=1
X-TDE-akregator-framework-version=1
-
diff --git a/akregator/src/mk4storage/metakit/CHANGES b/akregator/src/mk4storage/metakit/CHANGES
index 160c4bad..edd5f861 100644
--- a/akregator/src/mk4storage/metakit/CHANGES
+++ b/akregator/src/mk4storage/metakit/CHANGES
@@ -1686,5 +1686,3 @@ ALSO LISTED IN THE RELEASE HISTORY
Moves do not involve any data copying w.r.t. subviews and memo's.
The old release history is at http://www.equi4.com/metakit/history.html
-
-# vim: tw=72
diff --git a/akregator/src/mk4storage/mk4confwidget.cpp b/akregator/src/mk4storage/mk4confwidget.cpp
index c028b156..09b4c2de 100644
--- a/akregator/src/mk4storage/mk4confwidget.cpp
+++ b/akregator/src/mk4storage/mk4confwidget.cpp
@@ -52,7 +52,7 @@ MK4ConfWidget::MK4ConfWidget() : MK4ConfWidgetBase()
label->setEnabled(true);
}
filereq->setURL(MK4Config::archivePath());
- connect(cbUseDefault, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotChkBoxUseDefault(bool)));
+ connect(cbUseDefault, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(slotChkBoxUseDefault(bool)));
}
diff --git a/akregator/src/mk4storage/mk4confwidget.h b/akregator/src/mk4storage/mk4confwidget.h
index 194295de..797ad5c0 100644
--- a/akregator/src/mk4storage/mk4confwidget.h
+++ b/akregator/src/mk4storage/mk4confwidget.h
@@ -32,7 +32,7 @@ namespace Backend {
class MK4ConfWidget : public MK4ConfWidgetBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/mk4storage/mk4confwidgetbase.ui b/akregator/src/mk4storage/mk4confwidgetbase.ui
index c5c837a5..9eea1d7d 100644
--- a/akregator/src/mk4storage/mk4confwidgetbase.ui
+++ b/akregator/src/mk4storage/mk4confwidgetbase.ui
@@ -104,9 +104,6 @@
<property name="text">
<string>&amp;OK</string>
</property>
- <property name="accel">
- <string></string>
- </property>
<property name="autoDefault">
<bool>true</bool>
</property>
@@ -132,9 +129,6 @@
<property name="text">
<string>&amp;Cancel</string>
</property>
- <property name="accel">
- <string></string>
- </property>
<property name="autoDefault">
<bool>true</bool>
</property>
@@ -170,9 +164,9 @@
</connection>
</connections>
<layoutdefaults spacing="6" margin="11"/>
-<includehints>
- <includehint>kurlrequester.h</includehint>
- <includehint>klineedit.h</includehint>
- <includehint>kpushbutton.h</includehint>
-</includehints>
+<includes>
+ <include location="global" impldecl="in implementation">klineedit.h</include>
+ <include location="global" impldecl="in implementation">kpushbutton.h</include>
+ <include location="global" impldecl="in implementation">kurlrequester.h</include>
+</includes>
</UI>
diff --git a/akregator/src/mk4storage/storagemk4impl.cpp b/akregator/src/mk4storage/storagemk4impl.cpp
index 1e104bd3..0331e0f1 100644
--- a/akregator/src/mk4storage/storagemk4impl.cpp
+++ b/akregator/src/mk4storage/storagemk4impl.cpp
@@ -263,7 +263,7 @@ void StorageMK4Impl::markDirty()
{
d->modified = true;
// commit changes after 3 seconds
- TQTimer::singleShot(3000, this, TQT_SLOT(slotCommit()));
+ TQTimer::singleShot(3000, this, TQ_SLOT(slotCommit()));
}
}
diff --git a/akregator/src/mk4storage/storagemk4impl.h b/akregator/src/mk4storage/storagemk4impl.h
index d6c4a59c..8fcde1ea 100644
--- a/akregator/src/mk4storage/storagemk4impl.h
+++ b/akregator/src/mk4storage/storagemk4impl.h
@@ -36,7 +36,7 @@ namespace Backend {
*/
class StorageMK4Impl : public Storage
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/nodelist.cpp b/akregator/src/nodelist.cpp
index 8a4123dc..40a8d622 100644
--- a/akregator/src/nodelist.cpp
+++ b/akregator/src/nodelist.cpp
@@ -60,15 +60,15 @@ class NodeList::AddNodeVisitor : public TreeNodeVisitor
m_list->d->idMap[node->id()] = node;
m_list->d->flatList.append(node);
- connect(node, TQT_SIGNAL(signalDestroyed(TreeNode*)), m_list, TQT_SLOT(slotNodeDestroyed(TreeNode*) ));
+ connect(node, TQ_SIGNAL(signalDestroyed(TreeNode*)), m_list, TQ_SLOT(slotNodeDestroyed(TreeNode*) ));
m_list->signalNodeAdded(node); // emit
return true;
}
virtual bool visitFolder(Folder* node)
{
- connect(node, TQT_SIGNAL(signalChildAdded(TreeNode*)), m_list, TQT_SLOT(slotNodeAdded(TreeNode*) ));
- connect(node, TQT_SIGNAL(signalChildRemoved(Folder*, TreeNode*)), m_list, TQT_SLOT(slotNodeRemoved(Folder*, TreeNode*) ));
+ connect(node, TQ_SIGNAL(signalChildAdded(TreeNode*)), m_list, TQ_SLOT(slotNodeAdded(TreeNode*) ));
+ connect(node, TQ_SIGNAL(signalChildRemoved(Folder*, TreeNode*)), m_list, TQ_SLOT(slotNodeRemoved(Folder*, TreeNode*) ));
visitTreeNode(node);
@@ -99,7 +99,7 @@ class NodeList::RemoveNodeVisitor : public TreeNodeVisitor
m_list->d->idMap.remove(node->id());
m_list->d->flatList.remove(node);
- disconnect(node, TQT_SIGNAL(signalDestroyed(TreeNode*)), m_list, TQT_SLOT(slotNodeDestroyed(TreeNode*) ));
+ disconnect(node, TQ_SIGNAL(signalDestroyed(TreeNode*)), m_list, TQ_SLOT(slotNodeDestroyed(TreeNode*) ));
m_list->signalNodeRemoved(node); // emit signal
return true;
@@ -108,8 +108,8 @@ class NodeList::RemoveNodeVisitor : public TreeNodeVisitor
virtual bool visitFolder(Folder* node)
{
- disconnect(node, TQT_SIGNAL(signalChildAdded(TreeNode*)), m_list, TQT_SLOT(slotNodeAdded(TreeNode*) ));
- disconnect(node, TQT_SIGNAL(signalChildRemoved(Folder*, TreeNode*)), m_list, TQT_SLOT(slotNodeRemoved(Folder*, TreeNode*) ));
+ disconnect(node, TQ_SIGNAL(signalChildAdded(TreeNode*)), m_list, TQ_SLOT(slotNodeAdded(TreeNode*) ));
+ disconnect(node, TQ_SIGNAL(signalChildRemoved(Folder*, TreeNode*)), m_list, TQ_SLOT(slotNodeRemoved(Folder*, TreeNode*) ));
visitTreeNode(node);
return true;
@@ -184,8 +184,8 @@ void NodeList::setRootNode(Folder* folder)
if (d->rootNode)
{
d->rootNode->setOpen(true);
- connect(d->rootNode, TQT_SIGNAL(signalChildAdded(TreeNode*)), this, TQT_SLOT(slotNodeAdded(TreeNode*)));
- connect(d->rootNode, TQT_SIGNAL(signalChildRemoved(Folder*, TreeNode*)), this, TQT_SLOT(slotNodeRemoved(Folder*, TreeNode*)));
+ connect(d->rootNode, TQ_SIGNAL(signalChildAdded(TreeNode*)), this, TQ_SLOT(slotNodeAdded(TreeNode*)));
+ connect(d->rootNode, TQ_SIGNAL(signalChildRemoved(Folder*, TreeNode*)), this, TQ_SLOT(slotNodeRemoved(Folder*, TreeNode*)));
}
}
diff --git a/akregator/src/nodelist.h b/akregator/src/nodelist.h
index 48703d7e..e023e12b 100644
--- a/akregator/src/nodelist.h
+++ b/akregator/src/nodelist.h
@@ -48,7 +48,7 @@ class TreeNode;
class NodeList : public TQObject
{
-Q_OBJECT
+TQ_OBJECT
public:
diff --git a/akregator/src/notificationmanager.cpp b/akregator/src/notificationmanager.cpp
index 5a144681..23a3a3a8 100644
--- a/akregator/src/notificationmanager.cpp
+++ b/akregator/src/notificationmanager.cpp
@@ -67,7 +67,7 @@ void NotificationManager::slotNotifyArticle(const Article& article)
else if (!m_running)
{
m_running = true;
- TQTimer::singleShot(m_checkInterval, this, TQT_SLOT(slotIntervalCheck()));
+ TQTimer::singleShot(m_checkInterval, this, TQ_SLOT(slotIntervalCheck()));
}
}
@@ -123,7 +123,7 @@ void NotificationManager::slotIntervalCheck()
else
{
m_addedInLastInterval = false;
- TQTimer::singleShot(m_checkInterval, this, TQT_SLOT(slotIntervalCheck()));
+ TQTimer::singleShot(m_checkInterval, this, TQ_SLOT(slotIntervalCheck()));
}
}
diff --git a/akregator/src/notificationmanager.h b/akregator/src/notificationmanager.h
index 1ff1d888..74b3c784 100644
--- a/akregator/src/notificationmanager.h
+++ b/akregator/src/notificationmanager.h
@@ -35,7 +35,7 @@ namespace Akregator
/** this class collects notification requests (new articles etc.) and processes them using KNotify. */
class NotificationManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** singleton instance of notification manager */
diff --git a/akregator/src/pageviewer.cpp b/akregator/src/pageviewer.cpp
index 14e702aa..1962824f 100644
--- a/akregator/src/pageviewer.cpp
+++ b/akregator/src/pageviewer.cpp
@@ -109,44 +109,44 @@ PageViewer::PageViewer(TQWidget *parent, const char *name)
d->backAction = new TDEToolBarPopupAction(backForward.first,
TDEStdAccel::shortcut(TDEStdAccel::Back), this,
- TQT_SLOT(slotBack()), actionCollection(),
+ TQ_SLOT(slotBack()), actionCollection(),
"pageviewer_back");
- connect(d->backAction->popupMenu(), TQT_SIGNAL(aboutToShow()),
- this, TQT_SLOT(slotBackAboutToShow()));
- connect(d->backAction->popupMenu(), TQT_SIGNAL(activated(int)),
- this, TQT_SLOT(slotPopupActivated(int)));
+ connect(d->backAction->popupMenu(), TQ_SIGNAL(aboutToShow()),
+ this, TQ_SLOT(slotBackAboutToShow()));
+ connect(d->backAction->popupMenu(), TQ_SIGNAL(activated(int)),
+ this, TQ_SLOT(slotPopupActivated(int)));
d->forwardAction = new TDEToolBarPopupAction(backForward.second,
TDEStdAccel::shortcut(TDEStdAccel::Forward),this,
- TQT_SLOT(slotForward()), actionCollection(),
+ TQ_SLOT(slotForward()), actionCollection(),
"pageviewer_forward");
- connect(d->forwardAction->popupMenu(), TQT_SIGNAL(aboutToShow()),
- this, TQT_SLOT(slotForwardAboutToShow()));
- connect(d->forwardAction->popupMenu(), TQT_SIGNAL(activated(int)),
- this, TQT_SLOT(slotPopupActivated(int)));
+ connect(d->forwardAction->popupMenu(), TQ_SIGNAL(aboutToShow()),
+ this, TQ_SLOT(slotForwardAboutToShow()));
+ connect(d->forwardAction->popupMenu(), TQ_SIGNAL(activated(int)),
+ this, TQ_SLOT(slotPopupActivated(int)));
d->reloadAction = new TDEAction(i18n("Reload"), "reload", 0,
- this, TQT_SLOT(slotReload()),
+ this, TQ_SLOT(slotReload()),
actionCollection(), "pageviewer_reload");
d->stopAction = new TDEAction(KStdGuiItem::guiItem(KStdGuiItem::Stop), 0,
- this, TQT_SLOT(slotStop()),
+ this, TQ_SLOT(slotStop()),
actionCollection(), "pageviewer_stop");
- //connect( this, TQT_SIGNAL(popupMenu(const TQString &, const TQPoint &)), this, TQT_SLOT(slotPopupMenu(const TQString &, const TQPoint &)));
+ //connect( this, TQ_SIGNAL(popupMenu(const TQString &, const TQPoint &)), this, TQ_SLOT(slotPopupMenu(const TQString &, const TQPoint &)));
d->backAction->setEnabled(false);
d->forwardAction->setEnabled(false);
d->stopAction->setEnabled(false);
- connect( this, TQT_SIGNAL(setWindowCaption (const TQString &)),
- this, TQT_SLOT(slotSetCaption (const TQString &)) );
+ connect( this, TQ_SIGNAL(setWindowCaption (const TQString &)),
+ this, TQ_SLOT(slotSetCaption (const TQString &)) );
- connect(this, TQT_SIGNAL(started(TDEIO::Job *)), this, TQT_SLOT(slotStarted(TDEIO::Job* )));
- connect(this, TQT_SIGNAL(completed()), this, TQT_SLOT(slotCompleted()));
- connect(this, TQT_SIGNAL(canceled(const TQString &)), this, TQT_SLOT(slotCancelled(const TQString &)));
+ connect(this, TQ_SIGNAL(started(TDEIO::Job *)), this, TQ_SLOT(slotStarted(TDEIO::Job* )));
+ connect(this, TQ_SIGNAL(completed()), this, TQ_SLOT(slotCompleted()));
+ connect(this, TQ_SIGNAL(canceled(const TQString &)), this, TQ_SLOT(slotCancelled(const TQString &)));
d->current = d->history.end();
@@ -362,7 +362,7 @@ void PageViewer::urlSelected(const TQString &url, int button, int state, const T
}
else
{
- if (button == Qt::LeftButton)
+ if (button == TQt::LeftButton)
{
m_url = completeURL(url);
browserExtension()->setURLArgs(args);
@@ -384,7 +384,7 @@ void PageViewer::slotSetCaption(const TQString& cap)
void PageViewer::slotPaletteOrFontChanged()
{
kdDebug() << "PageViewer::slotPaletteOrFontChanged()" << endl;
- // taken from KonqView (tdebase/konqueror/konq_view.cc)
+ // taken from KonqView (tdebase/konqueror/konq_view.cpp)
TQObject *obj = KParts::BrowserExtension::childObject(this);
if ( !obj ) // not all views have a browser extension !
@@ -429,9 +429,9 @@ void PageViewer::slotPopupMenu(KXMLGUIClient*, const TQPoint& p, const KURL& kur
int idNewWindow = -2;
if (isLink)
{
- idNewWindow = popup.insertItem(SmallIcon("tab_new"),i18n("Open Link in New &Tab"), this, TQT_SLOT(slotOpenLinkInForegroundTab()));
+ idNewWindow = popup.insertItem(SmallIcon("tab_new"),i18n("Open Link in New &Tab"), this, TQ_SLOT(slotOpenLinkInForegroundTab()));
popup.setWhatsThis(idNewWindow, i18n("<b>Open Link in New Tab</b><p>Opens current link in a new tab."));
- popup.insertItem(SmallIcon("window-new"), i18n("Open Link in External &Browser"), this, TQT_SLOT(slotOpenLinkInBrowser()));
+ popup.insertItem(SmallIcon("window-new"), i18n("Open Link in External &Browser"), this, TQ_SLOT(slotOpenLinkInBrowser()));
popup.insertSeparator();
action("savelinkas")->plug(&popup);
@@ -472,7 +472,7 @@ void PageViewer::slotPopupMenu(KXMLGUIClient*, const TQPoint& p, const KURL& kur
popup.insertSeparator();
}
- popup.insertItem(SmallIcon("window-new"), i18n("Open Page in External Browser"), this, TQT_SLOT(slotOpenLinkInBrowser()));
+ popup.insertItem(SmallIcon("window-new"), i18n("Open Page in External Browser"), this, TQ_SLOT(slotOpenLinkInBrowser()));
action("viewer_print")->plug(&popup);
popup.insertSeparator();
@@ -480,7 +480,7 @@ void PageViewer::slotPopupMenu(KXMLGUIClient*, const TQPoint& p, const KURL& kur
TDEAction *ac = action("setEncoding");
if (ac)
ac->plug(&popup);
- popup.insertItem(SmallIcon("bookmark_add"),i18n("Add to Konqueror Bookmarks"), this, TQT_SLOT(slotGlobalBookmarkArticle()));
+ popup.insertItem(SmallIcon("bookmark_add"),i18n("Add to Konqueror Bookmarks"), this, TQ_SLOT(slotGlobalBookmarkArticle()));
}
int r = popup.exec(p);
diff --git a/akregator/src/pageviewer.h b/akregator/src/pageviewer.h
index d337779a..ba385674 100644
--- a/akregator/src/pageviewer.h
+++ b/akregator/src/pageviewer.h
@@ -39,7 +39,7 @@ namespace Akregator
// the back/forward navigation was taken from KDevelop. Kudos to the KDevelop team!
class PageViewer : public Viewer
{
- Q_OBJECT
+ TQ_OBJECT
public:
PageViewer(TQWidget* parent, const char* name);
diff --git a/akregator/src/progressmanager.cpp b/akregator/src/progressmanager.cpp
index dd27fbe9..1e205c8e 100644
--- a/akregator/src/progressmanager.cpp
+++ b/akregator/src/progressmanager.cpp
@@ -80,8 +80,8 @@ void ProgressManager::setFeedList(FeedList* feedList)
delete *it;
d->handlers.clear();
- disconnect(d->feedList, TQT_SIGNAL(signalNodeAdded(TreeNode*)), this, TQT_SLOT(slotNodeAdded(TreeNode*)));
- disconnect(d->feedList, TQT_SIGNAL(signalNodeRemoved(TreeNode*)), this, TQT_SLOT(slotNodeRemoved(TreeNode*)));
+ disconnect(d->feedList, TQ_SIGNAL(signalNodeAdded(TreeNode*)), this, TQ_SLOT(slotNodeAdded(TreeNode*)));
+ disconnect(d->feedList, TQ_SIGNAL(signalNodeRemoved(TreeNode*)), this, TQ_SLOT(slotNodeRemoved(TreeNode*)));
}
d->feedList = feedList;
@@ -92,8 +92,8 @@ void ProgressManager::setFeedList(FeedList* feedList)
for (TQValueList<TreeNode*>::ConstIterator it = list.begin(); it != list.end(); ++it)
slotNodeAdded(*it);
- connect(feedList, TQT_SIGNAL(signalNodeAdded(TreeNode*)), this, TQT_SLOT(slotNodeAdded(TreeNode*)));
- connect(feedList, TQT_SIGNAL(signalNodeRemoved(TreeNode*)), this, TQT_SLOT(slotNodeRemoved(TreeNode*)));
+ connect(feedList, TQ_SIGNAL(signalNodeAdded(TreeNode*)), this, TQ_SLOT(slotNodeAdded(TreeNode*)));
+ connect(feedList, TQ_SIGNAL(signalNodeRemoved(TreeNode*)), this, TQ_SLOT(slotNodeRemoved(TreeNode*)));
}
}
@@ -104,7 +104,7 @@ void ProgressManager::slotNodeAdded(TreeNode* node)
{
if (!d->handlers.contains(feed))
d->handlers[feed] = new ProgressItemHandler(feed);
- connect(feed, TQT_SIGNAL(signalDestroyed(TreeNode*)), this, TQT_SLOT(slotNodeDestroyed(TreeNode*)));
+ connect(feed, TQ_SIGNAL(signalDestroyed(TreeNode*)), this, TQ_SLOT(slotNodeDestroyed(TreeNode*)));
}
}
@@ -113,7 +113,7 @@ void ProgressManager::slotNodeRemoved(TreeNode* node)
Feed* feed = dynamic_cast<Feed*>(node);
if (feed)
{
- disconnect(feed, TQT_SIGNAL(signalDestroyed(TreeNode*)), this, TQT_SLOT(slotNodeDestroyed(TreeNode*)));
+ disconnect(feed, TQ_SIGNAL(signalDestroyed(TreeNode*)), this, TQ_SLOT(slotNodeDestroyed(TreeNode*)));
delete d->handlers[feed];
d->handlers.remove(feed);
}
@@ -142,10 +142,10 @@ ProgressItemHandler::ProgressItemHandler(Feed* feed) : d(new ProgressItemHandler
d->feed = feed;
d->progressItem = 0;
- connect(feed, TQT_SIGNAL(fetchStarted(Feed*)), this, TQT_SLOT(slotFetchStarted()));
- connect(feed, TQT_SIGNAL(fetched(Feed*)), this, TQT_SLOT(slotFetchCompleted()));
- connect(feed, TQT_SIGNAL(fetchError(Feed*)), this, TQT_SLOT(slotFetchError()));
- connect(feed, TQT_SIGNAL(fetchAborted(Feed*)), this, TQT_SLOT(slotFetchAborted()));
+ connect(feed, TQ_SIGNAL(fetchStarted(Feed*)), this, TQ_SLOT(slotFetchStarted()));
+ connect(feed, TQ_SIGNAL(fetched(Feed*)), this, TQ_SLOT(slotFetchCompleted()));
+ connect(feed, TQ_SIGNAL(fetchError(Feed*)), this, TQ_SLOT(slotFetchError()));
+ connect(feed, TQ_SIGNAL(fetchAborted(Feed*)), this, TQ_SLOT(slotFetchAborted()));
}
ProgressItemHandler::~ProgressItemHandler()
@@ -170,7 +170,7 @@ void ProgressItemHandler::slotFetchStarted()
d->progressItem = KPIM::ProgressManager::createProgressItem(KPIM::ProgressManager::getUniqueID(), TQStyleSheet::escape( d->feed->title() ), TQString(), true);
- connect(d->progressItem, TQT_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)), d->feed, TQT_SLOT(slotAbortFetch()));
+ connect(d->progressItem, TQ_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)), d->feed, TQ_SLOT(slotAbortFetch()));
}
diff --git a/akregator/src/progressmanager.h b/akregator/src/progressmanager.h
index 2b5598f3..361c326b 100644
--- a/akregator/src/progressmanager.h
+++ b/akregator/src/progressmanager.h
@@ -35,7 +35,7 @@ class ProgressItemHandler;
class ProgressManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -66,7 +66,7 @@ class ProgressManager : public TQObject
class ProgressItemHandler : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
ProgressItemHandler(Feed* feed);
diff --git a/akregator/src/propertiesdialog.cpp b/akregator/src/propertiesdialog.cpp
index 149eb480..7bea6f53 100644
--- a/akregator/src/propertiesdialog.cpp
+++ b/akregator/src/propertiesdialog.cpp
@@ -72,7 +72,7 @@ FeedPropertiesDialog::FeedPropertiesDialog(TQWidget *parent, const char *name)
setMainWidget(widget);
widget->feedNameEdit->setFocus();
- connect(widget->feedNameEdit, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(slotSetCaption(const TQString&)));
+ connect(widget->feedNameEdit, TQ_SIGNAL(textChanged(const TQString&)), this, TQ_SLOT(slotSetCaption(const TQString&)));
}
FeedPropertiesDialog::~FeedPropertiesDialog()
@@ -321,4 +321,3 @@ void FeedPropertiesDialog::selectFeedName()
} // namespace Akregator
#include "propertiesdialog.moc"
-// vim: ts=4 sw=4 et
diff --git a/akregator/src/propertiesdialog.h b/akregator/src/propertiesdialog.h
index b9652221..6734a565 100644
--- a/akregator/src/propertiesdialog.h
+++ b/akregator/src/propertiesdialog.h
@@ -32,7 +32,7 @@ namespace Akregator
{
class FeedPropertiesWidget : public FeedPropertiesWidgetBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
FeedPropertiesWidget(TQWidget *parent = 0, const char *name = 0);
@@ -44,7 +44,7 @@ namespace Akregator
class FeedPropertiesDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
FeedPropertiesDialog(TQWidget *parent = 0, const char *name = 0);
diff --git a/akregator/src/propertieswidgetbase.ui b/akregator/src/propertieswidgetbase.ui
index fae011b0..073c46b4 100644
--- a/akregator/src/propertieswidgetbase.ui
+++ b/akregator/src/propertieswidgetbase.ui
@@ -452,10 +452,10 @@
<slot>setEnabled(bool)</slot>
</connection>
</connections>
-<Q_SLOTS>
+<slots>
<slot access="protected" specifier="pure virtual">slotUpdateComboBoxActivated( int )</slot>
<slot access="protected" specifier="pure virtual">slotUpdateCheckBoxToggled( bool )</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
<includes>
<include location="global" impldecl="in implementation">klineedit.h</include>
diff --git a/akregator/src/searchbar.cpp b/akregator/src/searchbar.cpp
index ff163993..9e705ec5 100644
--- a/akregator/src/searchbar.cpp
+++ b/akregator/src/searchbar.cpp
@@ -75,8 +75,8 @@ SearchBar::SearchBar(TQWidget* parent, const char* name) : TQHBox(parent, name),
searchLabel->setText( i18n("S&earch:") );
d->searchLine = new KLineEdit(this, "searchline");
- connect(d->searchLine, TQT_SIGNAL(textChanged(const TQString &)),
- this, TQT_SLOT(slotSearchStringChanged(const TQString &)));
+ connect(d->searchLine, TQ_SIGNAL(textChanged(const TQString &)),
+ this, TQ_SLOT(slotSearchStringChanged(const TQString &)));
searchLabel->setBuddy(d->searchLine);
@@ -98,13 +98,13 @@ SearchBar::SearchBar(TQWidget* parent, const char* name) : TQHBox(parent, name),
TQToolTip::add( d->searchLine, i18n( "Enter space-separated terms to filter article list" ) );
TQToolTip::add( d->searchCombo, i18n( "Choose what kind of articles to show in article list" ) );
- connect(clearButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT(slotClearSearch()) );
+ connect(clearButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT(slotClearSearch()) );
- connect(d->searchCombo, TQT_SIGNAL(activated(int)),
- this, TQT_SLOT(slotSearchComboChanged(int)));
+ connect(d->searchCombo, TQ_SIGNAL(activated(int)),
+ this, TQ_SLOT(slotSearchComboChanged(int)));
- connect(&(d->timer), TQT_SIGNAL(timeout()), this, TQT_SLOT(slotActivateSearch()));
+ connect(&(d->timer), TQ_SIGNAL(timeout()), this, TQ_SLOT(slotActivateSearch()));
}
SearchBar::~SearchBar()
diff --git a/akregator/src/searchbar.h b/akregator/src/searchbar.h
index cbb01a6b..113da699 100644
--- a/akregator/src/searchbar.h
+++ b/akregator/src/searchbar.h
@@ -39,7 +39,7 @@ namespace Filters
class SearchBar : public TQHBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/settings_advanced.cpp b/akregator/src/settings_advanced.cpp
index 7a849ff9..44106cfa 100644
--- a/akregator/src/settings_advanced.cpp
+++ b/akregator/src/settings_advanced.cpp
@@ -25,8 +25,8 @@ SettingsAdvanced::SettingsAdvanced(TQWidget* parent, const char* name) : Setting
cbBackend->insertItem(m_factories[i]->name());
i++;
}
- connect(pbBackendConfigure, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotConfigureStorage()));
- connect(cbBackend, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotFactorySelected(int)));
+ connect(pbBackendConfigure, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotConfigureStorage()));
+ connect(cbBackend, TQ_SIGNAL(activated(int)), this, TQ_SLOT(slotFactorySelected(int)));
}
TQString SettingsAdvanced::selectedFactory() const
diff --git a/akregator/src/settings_advanced.h b/akregator/src/settings_advanced.h
index cbb7b7f5..e2e14fe7 100644
--- a/akregator/src/settings_advanced.h
+++ b/akregator/src/settings_advanced.h
@@ -17,7 +17,7 @@ namespace Backend
class SettingsAdvanced : public SettingsAdvancedBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/simplenodeselector.cpp b/akregator/src/simplenodeselector.cpp
index a4f1d4be..ddb54505 100644
--- a/akregator/src/simplenodeselector.cpp
+++ b/akregator/src/simplenodeselector.cpp
@@ -50,7 +50,7 @@ SelectNodeDialog::SelectNodeDialog(FeedList* feedList, TQWidget* parent, char* n
{
d->widget = new SimpleNodeSelector(feedList, this);
- connect(d->widget, TQT_SIGNAL(signalNodeSelected(TreeNode*)), this, TQT_SLOT(slotNodeSelected(TreeNode*)));
+ connect(d->widget, TQ_SIGNAL(signalNodeSelected(TreeNode*)), this, TQ_SLOT(slotNodeSelected(TreeNode*)));
setMainWidget(d->widget);
enableButtonOK(false);
@@ -122,7 +122,7 @@ class SimpleNodeSelector::NodeVisitor : public TreeNodeVisitor
item->setExpandable(false);
m_view->d->nodeToItem.insert(node, item);
m_view->d->itemToNode.insert(item, node);
- connect(node, TQT_SIGNAL(signalDestroyed(TreeNode*)), m_view, TQT_SLOT(slotNodeDestroyed(TreeNode*)));
+ connect(node, TQ_SIGNAL(signalDestroyed(TreeNode*)), m_view, TQ_SLOT(slotNodeDestroyed(TreeNode*)));
return true;
}
@@ -135,13 +135,13 @@ class SimpleNodeSelector::NodeVisitor : public TreeNodeVisitor
SimpleNodeSelector::SimpleNodeSelector(FeedList* feedList, TQWidget* parent, const char* name) : TQWidget(parent, name), d(new SimpleNodeSelectorPrivate)
{
d->list = feedList;
- connect(feedList, TQT_SIGNAL(signalDestroyed(FeedList*)), this, TQT_SLOT(slotFeedListDestroyed(FeedList*)));
+ connect(feedList, TQ_SIGNAL(signalDestroyed(FeedList*)), this, TQ_SLOT(slotFeedListDestroyed(FeedList*)));
d->view = new TDEListView(this);
d->view->setRootIsDecorated(true);
d->view->addColumn(i18n("Feeds"));
- connect(d->view, TQT_SIGNAL(selectionChanged(TQListViewItem*)), this, TQT_SLOT(slotItemSelected(TQListViewItem*)));
+ connect(d->view, TQ_SIGNAL(selectionChanged(TQListViewItem*)), this, TQ_SLOT(slotItemSelected(TQListViewItem*)));
TQGridLayout* layout = new TQGridLayout(this, 1, 1);
layout->addWidget(d->view, 0, 0);
diff --git a/akregator/src/simplenodeselector.h b/akregator/src/simplenodeselector.h
index 1ac25b37..e0578d15 100644
--- a/akregator/src/simplenodeselector.h
+++ b/akregator/src/simplenodeselector.h
@@ -43,7 +43,7 @@ class SimpleNodeSelector;
class SelectNodeDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
SelectNodeDialog(FeedList* feedList, TQWidget* parent=0, char* name=0);
@@ -66,7 +66,7 @@ class SelectNodeDialog : public KDialogBase
class SimpleNodeSelector : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/speechclient.h b/akregator/src/speechclient.h
index d4fe8f6f..bc097a9f 100644
--- a/akregator/src/speechclient.h
+++ b/akregator/src/speechclient.h
@@ -41,7 +41,7 @@ class Article;
class SpeechClient : public TQObject, public KSpeech_stub, virtual public KSpeechSink
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/storagedummyimpl.h b/akregator/src/storagedummyimpl.h
index 3288737a..d39fc3c1 100644
--- a/akregator/src/storagedummyimpl.h
+++ b/akregator/src/storagedummyimpl.h
@@ -36,7 +36,7 @@ namespace Backend {
*/
class StorageDummyImpl : public Storage
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/tabwidget.cpp b/akregator/src/tabwidget.cpp
index 76c8b198..b1cbf9c5 100644
--- a/akregator/src/tabwidget.cpp
+++ b/akregator/src/tabwidget.cpp
@@ -70,15 +70,15 @@ TabWidget::TabWidget(TQWidget * parent, const char *name)
d->currentItem = 0;
setMinimumSize(250,150);
setTabReorderingEnabled(false);
- connect( this, TQT_SIGNAL( currentChanged(TQWidget *) ), this,
- TQT_SLOT( slotTabChanged(TQWidget *) ) );
- connect(this, TQT_SIGNAL(closeRequest(TQWidget*)), this, TQT_SLOT(slotCloseRequest(TQWidget*)));
+ connect( this, TQ_SIGNAL( currentChanged(TQWidget *) ), this,
+ TQ_SLOT( slotTabChanged(TQWidget *) ) );
+ connect(this, TQ_SIGNAL(closeRequest(TQWidget*)), this, TQ_SLOT(slotCloseRequest(TQWidget*)));
setHoverCloseButton(Settings::closeButtonOnTabs());
d->tabsClose = new TQToolButton(this);
d->tabsClose->setAccel(TQKeySequence("Ctrl+W"));
- connect( d->tabsClose, TQT_SIGNAL( clicked() ), this,
- TQT_SLOT( slotRemoveCurrentFrame() ) );
+ connect( d->tabsClose, TQ_SIGNAL( clicked() ), this,
+ TQ_SLOT( slotRemoveCurrentFrame() ) );
d->tabsClose->setIconSet( SmallIconSet( "tab_remove" ) );
d->tabsClose->adjustSize();
@@ -117,7 +117,7 @@ void TabWidget::addFrame(Frame *f)
return;
d->frames.insert(f->widget(), f);
addTab(f->widget(), f->title());
- connect(f, TQT_SIGNAL(titleChanged(Frame*, const TQString& )), this, TQT_SLOT(slotSetTitle(Frame*, const TQString& )));
+ connect(f, TQ_SIGNAL(titleChanged(Frame*, const TQString& )), this, TQ_SLOT(slotSetTitle(Frame*, const TQString& )));
slotSetTitle(f, f->title());
}
@@ -183,7 +183,7 @@ uint TabWidget::tabBarWidthForMaxChars( uint maxLength )
if ( tab->iconSet() )
iw = tab->iconSet()->pixmap( TQIconSet::Small, TQIconSet::Normal ).width() + 4;
- x += ( tabBar()->style().tqsizeFromContents( TQStyle::CT_TabBarTab, this, TQSize( TQMAX( lw + hframe + iw, TQApplication::globalStrut().width() ), 0 ), TQStyleOption( tab ) ) ).width();
+ x += ( tabBar()->style().sizeFromContents( TQStyle::CT_TabBarTab, this, TQSize( TQMAX( lw + hframe + iw, TQApplication::globalStrut().width() ), 0 ), TQStyleOption( tab ) ) ).width();
}
return x;
}
diff --git a/akregator/src/tabwidget.h b/akregator/src/tabwidget.h
index 70fdca04..e190f51d 100644
--- a/akregator/src/tabwidget.h
+++ b/akregator/src/tabwidget.h
@@ -37,7 +37,7 @@ class Frame;
class TabWidget : public KTabWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/tagaction.cpp b/akregator/src/tagaction.cpp
index f987409c..728bf0ab 100644
--- a/akregator/src/tagaction.cpp
+++ b/akregator/src/tagaction.cpp
@@ -49,8 +49,8 @@ TagAction::TagAction(const Tag& tag, const TQObject *receiver, const char *slot,
: TDEToggleAction(tag.name(), TDEShortcut(), 0, 0, parent), d(new TagActionPrivate)
{
d->tag = tag;
- connect(this, TQT_SIGNAL(toggled(const Tag&, bool)), receiver, slot);
- connect(this, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotToggled(bool)));
+ connect(this, TQ_SIGNAL(toggled(const Tag&, bool)), receiver, slot);
+ connect(this, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(slotToggled(bool)));
}
TagAction::~TagAction()
@@ -93,7 +93,7 @@ int TagAction::plug(TQWidget* widget, int index)
int id = popup->insertItem(TagMenuItem::checkBoxIconSet(isChecked(), popup->colorGroup()), item, -1, index);
- popup->connectItem (id, this, TQT_SLOT(slotActivated()));
+ popup->connectItem (id, this, TQ_SLOT(slotActivated()));
d->popupToId[popup] = id;
d->idToPopup[id] = popup;
diff --git a/akregator/src/tagaction.h b/akregator/src/tagaction.h
index 26abb636..5837944b 100644
--- a/akregator/src/tagaction.h
+++ b/akregator/src/tagaction.h
@@ -37,7 +37,7 @@ class Tag;
/** a TDEToggleAction for assigning and removing tags. Displays the tag name and emits the tag when activated */
class TagAction : public TDEToggleAction
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/tagnode.cpp b/akregator/src/tagnode.cpp
index 1f5743fd..af64e546 100644
--- a/akregator/src/tagnode.cpp
+++ b/akregator/src/tagnode.cpp
@@ -60,10 +60,10 @@ TagNode::TagNode(const Tag& tag, TreeNode* observed) : d(new TagNodePrivate)
d->observed = observed;
d->unread = 0;
- connect(observed, TQT_SIGNAL(signalDestroyed(TreeNode*)), this, TQT_SLOT(slotObservedDestroyed(TreeNode*)));
- connect(observed, TQT_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesAdded(TreeNode*, const TQValueList<Article>&)) );
- connect(observed, TQT_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesUpdated(TreeNode*, const TQValueList<Article>&)) );
- connect(observed, TQT_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)), this, TQT_SLOT(slotArticlesRemoved(TreeNode*, const TQValueList<Article>&)) );
+ connect(observed, TQ_SIGNAL(signalDestroyed(TreeNode*)), this, TQ_SLOT(slotObservedDestroyed(TreeNode*)));
+ connect(observed, TQ_SIGNAL(signalArticlesAdded(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesAdded(TreeNode*, const TQValueList<Article>&)) );
+ connect(observed, TQ_SIGNAL(signalArticlesUpdated(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesUpdated(TreeNode*, const TQValueList<Article>&)) );
+ connect(observed, TQ_SIGNAL(signalArticlesRemoved(TreeNode*, const TQValueList<Article>&)), this, TQ_SLOT(slotArticlesRemoved(TreeNode*, const TQValueList<Article>&)) );
d->articles = observed->articles(tag.id());
calcUnread();
diff --git a/akregator/src/tagnode.h b/akregator/src/tagnode.h
index a41439fc..2266fd0f 100644
--- a/akregator/src/tagnode.h
+++ b/akregator/src/tagnode.h
@@ -44,7 +44,7 @@ class TreeNodeVisitor;
class TagNode : public TreeNode
{
-Q_OBJECT
+TQ_OBJECT
public:
diff --git a/akregator/src/tagnodelist.cpp b/akregator/src/tagnodelist.cpp
index 6d60da63..288ecc77 100644
--- a/akregator/src/tagnodelist.cpp
+++ b/akregator/src/tagnodelist.cpp
@@ -58,9 +58,9 @@ TagNodeList::TagNodeList(FeedList* feedList, TagSet* tagSet) : NodeList(), d(ne
d->feedList = feedList;
d->tagSet = tagSet;
- connect(d->tagSet, TQT_SIGNAL(signalTagAdded(const Tag&)), this, TQT_SLOT(slotTagAdded(const Tag&)));
- connect(d->tagSet, TQT_SIGNAL(signalTagRemoved(const Tag&)), this, TQT_SLOT(slotTagRemoved(const Tag&)));
- connect(d->tagSet, TQT_SIGNAL(signalTagUpdated(const Tag&)), this, TQT_SLOT(slotTagUpdated(const Tag&)));
+ connect(d->tagSet, TQ_SIGNAL(signalTagAdded(const Tag&)), this, TQ_SLOT(slotTagAdded(const Tag&)));
+ connect(d->tagSet, TQ_SIGNAL(signalTagRemoved(const Tag&)), this, TQ_SLOT(slotTagRemoved(const Tag&)));
+ connect(d->tagSet, TQ_SIGNAL(signalTagUpdated(const Tag&)), this, TQ_SLOT(slotTagUpdated(const Tag&)));
setRootNode(new TagFolder(i18n("My Tags")));
diff --git a/akregator/src/tagnodelist.h b/akregator/src/tagnodelist.h
index be85e7e8..c31ee69f 100644
--- a/akregator/src/tagnodelist.h
+++ b/akregator/src/tagnodelist.h
@@ -43,7 +43,7 @@ namespace Akregator {
class TagNodeList : public NodeList
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/tagpropertiesdialog.cpp b/akregator/src/tagpropertiesdialog.cpp
index 4f73467e..b21f1d03 100644
--- a/akregator/src/tagpropertiesdialog.cpp
+++ b/akregator/src/tagpropertiesdialog.cpp
@@ -47,7 +47,7 @@ TagPropertiesDialog::TagPropertiesDialog(TQWidget *parent, const char *name) : K
d->widget->le_title->setFocus();
enableButtonOK(false);
enableButtonApply(false);
- connect(d->widget->le_title, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(slotTextChanged(const TQString& )));
+ connect(d->widget->le_title, TQ_SIGNAL(textChanged(const TQString&)), this, TQ_SLOT(slotTextChanged(const TQString& )));
}
TagPropertiesDialog::~TagPropertiesDialog()
diff --git a/akregator/src/tagpropertiesdialog.h b/akregator/src/tagpropertiesdialog.h
index 24e6788d..347f1f03 100644
--- a/akregator/src/tagpropertiesdialog.h
+++ b/akregator/src/tagpropertiesdialog.h
@@ -33,7 +33,7 @@ class Tag;
class TagPropertiesDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/tagset.h b/akregator/src/tagset.h
index f0814834..12a4247e 100644
--- a/akregator/src/tagset.h
+++ b/akregator/src/tagset.h
@@ -47,7 +47,7 @@ class Tag;
class TagSet : public TQObject
{
friend class Tag;
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/akregator/src/trayicon.cpp b/akregator/src/trayicon.cpp
index 9cab8b3b..5d04d549 100644
--- a/akregator/src/trayicon.cpp
+++ b/akregator/src/trayicon.cpp
@@ -74,7 +74,7 @@ TrayIcon::~TrayIcon()
void TrayIcon::mousePressEvent(TQMouseEvent *e) {
- if (e->button() == Qt::LeftButton) {
+ if (e->button() == TQt::LeftButton) {
emit showPart();
}
@@ -200,7 +200,7 @@ void TrayIcon::setUnread(int unread, bool force)
void TrayIcon::viewButtonClicked()
{
- TQWidget *p=TQT_TQWIDGET(parent());
+ TQWidget *p=static_cast<TQWidget*>(parent());
KWin::forceActiveWindow(p->winId());
}
diff --git a/akregator/src/trayicon.h b/akregator/src/trayicon.h
index 7c854666..5d9f4fea 100644
--- a/akregator/src/trayicon.h
+++ b/akregator/src/trayicon.h
@@ -34,7 +34,7 @@ namespace Akregator
{
class TrayIcon : public KSystemTray
{
- Q_OBJECT
+ TQ_OBJECT
public:
static TrayIcon* getInstance();
diff --git a/akregator/src/treenode.h b/akregator/src/treenode.h
index 02b64614..1a804440 100644
--- a/akregator/src/treenode.h
+++ b/akregator/src/treenode.h
@@ -50,7 +50,7 @@ class FetchQueue;
*/
class TreeNode : public TQObject
{
-Q_OBJECT
+TQ_OBJECT
public:
diff --git a/akregator/src/viewer.cpp b/akregator/src/viewer.cpp
index 0588a429..603f4efc 100644
--- a/akregator/src/viewer.cpp
+++ b/akregator/src/viewer.cpp
@@ -57,28 +57,28 @@ Viewer::Viewer(TQWidget *parent, const char *name)
setStatusMessagesEnabled(true);
// change the cursor when loading stuff...
- connect( this, TQT_SIGNAL(started(TDEIO::Job *)),
- this, TQT_SLOT(slotStarted(TDEIO::Job *)));
- connect( this, TQT_SIGNAL(completed()),
- this, TQT_SLOT(slotCompleted()));
+ connect( this, TQ_SIGNAL(started(TDEIO::Job *)),
+ this, TQ_SLOT(slotStarted(TDEIO::Job *)));
+ connect( this, TQ_SIGNAL(completed()),
+ this, TQ_SLOT(slotCompleted()));
- connect( browserExtension(), TQT_SIGNAL(popupMenu (KXMLGUIClient*, const TQPoint&, const KURL&, const KParts::URLArgs&, KParts::BrowserExtension::PopupFlags, mode_t)), this, TQT_SLOT(slotPopupMenu(KXMLGUIClient*, const TQPoint&, const KURL&, const KParts::URLArgs&, KParts::BrowserExtension::PopupFlags, mode_t)));
+ connect( browserExtension(), TQ_SIGNAL(popupMenu (KXMLGUIClient*, const TQPoint&, const KURL&, const KParts::URLArgs&, KParts::BrowserExtension::PopupFlags, mode_t)), this, TQ_SLOT(slotPopupMenu(KXMLGUIClient*, const TQPoint&, const KURL&, const KParts::URLArgs&, KParts::BrowserExtension::PopupFlags, mode_t)));
- KStdAction::print(this, TQT_SLOT(slotPrint()), actionCollection(), "viewer_print");
- KStdAction::copy(this, TQT_SLOT(slotCopy()), actionCollection(), "viewer_copy");
+ KStdAction::print(this, TQ_SLOT(slotPrint()), actionCollection(), "viewer_print");
+ KStdAction::copy(this, TQ_SLOT(slotCopy()), actionCollection(), "viewer_copy");
- new TDEAction( i18n("&Increase Font Sizes"), "zoom-in", "Ctrl+Plus", this, TQT_SLOT(slotZoomIn()), actionCollection(), "incFontSizes" );
- new TDEAction( i18n("&Decrease Font Sizes"), "zoom-out", "Ctrl+Minus", this, TQT_SLOT(slotZoomOut()), actionCollection(), "decFontSizes" );
+ new TDEAction( i18n("&Increase Font Sizes"), "zoom-in", "Ctrl+Plus", this, TQ_SLOT(slotZoomIn()), actionCollection(), "incFontSizes" );
+ new TDEAction( i18n("&Decrease Font Sizes"), "zoom-out", "Ctrl+Minus", this, TQ_SLOT(slotZoomOut()), actionCollection(), "decFontSizes" );
- connect(this, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(slotSelectionChanged()));
+ connect(this, TQ_SIGNAL(selectionChanged()), this, TQ_SLOT(slotSelectionChanged()));
- connect( browserExtension(), TQT_SIGNAL(openURLRequestDelayed(const KURL&, const KParts::URLArgs&)), this, TQT_SLOT(slotOpenURLRequest(const KURL&, const KParts::URLArgs& )) );
+ connect( browserExtension(), TQ_SIGNAL(openURLRequestDelayed(const KURL&, const KParts::URLArgs&)), this, TQ_SLOT(slotOpenURLRequest(const KURL&, const KParts::URLArgs& )) );
new TDEAction(i18n("Copy &Link Address"), "", 0,
- this, TQT_SLOT(slotCopyLinkAddress()),
+ this, TQ_SLOT(slotCopyLinkAddress()),
actionCollection(), "copylinkaddress");
new TDEAction(i18n("&Save Link As..."), "", 0,
- this, TQT_SLOT(slotSaveLinkAs()),
+ this, TQ_SLOT(slotSaveLinkAs()),
actionCollection(), "savelinkas");
}
@@ -130,7 +130,7 @@ void Viewer::urlSelected(const TQString &url, int button, int state, const TQStr
{
m_url = completeURL(url);
browserExtension()->setURLArgs(args);
- if (button == Qt::LeftButton)
+ if (button == TQt::LeftButton)
{
switch (Settings::lMBBehaviour())
{
@@ -146,7 +146,7 @@ void Viewer::urlSelected(const TQString &url, int button, int state, const TQStr
}
return;
}
- else if (button == Qt::MidButton)
+ else if (button == TQt::MidButton)
{
switch (Settings::mMBBehaviour())
{
@@ -177,8 +177,8 @@ void Viewer::slotPopupMenu(KXMLGUIClient*, const TQPoint& p, const KURL& kurl, c
if (isLink && !isSelection)
{
- popup.insertItem(SmallIcon("tab_new"), i18n("Open Link in New &Tab"), this, TQT_SLOT(slotOpenLinkInForegroundTab()));
- popup.insertItem(SmallIcon("window-new"), i18n("Open Link in External &Browser"), this, TQT_SLOT(slotOpenLinkInBrowser()));
+ popup.insertItem(SmallIcon("tab_new"), i18n("Open Link in New &Tab"), this, TQ_SLOT(slotOpenLinkInForegroundTab()));
+ popup.insertItem(SmallIcon("window-new"), i18n("Open Link in External &Browser"), this, TQ_SLOT(slotOpenLinkInBrowser()));
popup.insertSeparator();
action("savelinkas")->plug(&popup);
action("copylinkaddress")->plug(&popup);
@@ -204,9 +204,9 @@ void Viewer::slotCopy()
TQString text = selectedText();
text.replace( TQChar( 0xa0 ), ' ' );
TQClipboard *cb = TQApplication::clipboard();
- disconnect( cb, TQT_SIGNAL( selectionChanged() ), this, TQT_SLOT( slotClearSelection() ) );
+ disconnect( cb, TQ_SIGNAL( selectionChanged() ), this, TQ_SLOT( slotClearSelection() ) );
cb->setText(text);
- connect( cb, TQT_SIGNAL( selectionChanged() ), this, TQT_SLOT( slotClearSelection() ) );
+ connect( cb, TQ_SIGNAL( selectionChanged() ), this, TQ_SLOT( slotClearSelection() ) );
}
void Viewer::slotCopyLinkAddress()
@@ -332,5 +332,3 @@ void Viewer::setSafeMode()
} // namespace Akregator
#include "viewer.moc"
-
-// vim: set et ts=4 sts=4 sw=4:
diff --git a/akregator/src/viewer.h b/akregator/src/viewer.h
index af89fee2..3e6fabb1 100644
--- a/akregator/src/viewer.h
+++ b/akregator/src/viewer.h
@@ -38,7 +38,7 @@ namespace Akregator
{
class Viewer : public TDEHTMLPart
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -121,4 +121,3 @@ namespace Akregator
}
#endif // VIEWER_H
-// vim: ts=4 sw=4 et
diff --git a/certmanager/CMakeL10n.txt b/certmanager/CMakeL10n.txt
index 210b1fab..963caa2f 100644
--- a/certmanager/CMakeL10n.txt
+++ b/certmanager/CMakeL10n.txt
@@ -8,3 +8,9 @@ tde_l10n_create_template(
)
tde_l10n_auto_add_subdirectories( )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/certmanager-desktops/"
+ SOURCES *.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/certmanager/CMakeLists.txt b/certmanager/CMakeLists.txt
index 91151b69..1f331750 100644
--- a/certmanager/CMakeLists.txt
+++ b/certmanager/CMakeLists.txt
@@ -39,7 +39,11 @@ link_directories(
##### other data ################################
-install( FILES kleopatra.desktop kleopatra_import.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE kleopatra.desktop kleopatra_import.desktop
+ PO_DIR certmanager-desktops
+)
+
install( FILES kleopatraui.rc DESTINATION ${DATA_INSTALL_DIR}/kleopatra )
diff --git a/certmanager/certificateinfowidgetimpl.cpp b/certmanager/certificateinfowidgetimpl.cpp
index 79b02b24..9ff6b15a 100644
--- a/certmanager/certificateinfowidgetimpl.cpp
+++ b/certmanager/certificateinfowidgetimpl.cpp
@@ -84,17 +84,17 @@ CertificateInfoWidgetImpl::CertificateInfoWidgetImpl( const GpgME::Key & key, bo
listView->header()->setClickEnabled( false );
listView->setSorting( -1 );
- connect( listView, TQT_SIGNAL( selectionChanged( TQListViewItem* ) ),
- this, TQT_SLOT( slotShowInfo( TQListViewItem* ) ) );
+ connect( listView, TQ_SIGNAL( selectionChanged( TQListViewItem* ) ),
+ this, TQ_SLOT( slotShowInfo( TQListViewItem* ) ) );
pathView->setColumnWidthMode( 0, TQListView::Maximum );
pathView->header()->hide();
- connect( pathView, TQT_SIGNAL( doubleClicked( TQListViewItem* ) ),
- this, TQT_SLOT( slotShowCertPathDetails( TQListViewItem* ) ) );
- connect( pathView, TQT_SIGNAL( returnPressed( TQListViewItem* ) ),
- this, TQT_SLOT( slotShowCertPathDetails( TQListViewItem* ) ) );
- connect( importButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotImportCertificate() ) );
+ connect( pathView, TQ_SIGNAL( doubleClicked( TQListViewItem* ) ),
+ this, TQ_SLOT( slotShowCertPathDetails( TQListViewItem* ) ) );
+ connect( pathView, TQ_SIGNAL( returnPressed( TQListViewItem* ) ),
+ this, TQ_SLOT( slotShowCertPathDetails( TQListViewItem* ) ) );
+ connect( importButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotImportCertificate() ) );
dumpView->setFont( TDEGlobalSettings::fixedFont() );
@@ -232,10 +232,10 @@ void CertificateInfoWidgetImpl::startCertificateChainListing() {
Kleo::CryptoBackendFactory::instance()->smime()->keyListJob( false );
assert( job );
- connect( job, TQT_SIGNAL(result(const GpgME::KeyListResult&)),
- TQT_SLOT(slotCertificateChainListingResult(const GpgME::KeyListResult&)) );
- connect( job, TQT_SIGNAL(nextKey(const GpgME::Key&)),
- TQT_SLOT(slotNextKey(const GpgME::Key&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::KeyListResult&)),
+ TQ_SLOT(slotCertificateChainListingResult(const GpgME::KeyListResult&)) );
+ connect( job, TQ_SIGNAL(nextKey(const GpgME::Key&)),
+ TQ_SLOT(slotNextKey(const GpgME::Key&)) );
kdDebug() << "Going to fetch" << endl
<< " issuer : \"" << mChain.front().issuerName() << "\"" << endl
@@ -253,17 +253,17 @@ void CertificateInfoWidgetImpl::startCertificateChainListing() {
}
void CertificateInfoWidgetImpl::startCertificateDump() {
- TDEProcess* proc = new TDEProcess( TQT_TQOBJECT(this) );
+ TDEProcess* proc = new TDEProcess( this );
(*proc) << "gpgsm"; // must be in the PATH
(*proc) << "--dump-keys";
(*proc) << mChain.front().primaryFingerprint();
- TQObject::connect( proc, TQT_SIGNAL( receivedStdout(TDEProcess *, char *, int) ),
- this, TQT_SLOT( slotCollectStdout(TDEProcess *, char *, int) ) );
- TQObject::connect( proc, TQT_SIGNAL( receivedStderr(TDEProcess *, char *, int) ),
- this, TQT_SLOT( slotCollectStderr(TDEProcess *, char *, int) ) );
- TQObject::connect( proc, TQT_SIGNAL( processExited(TDEProcess*) ),
- this, TQT_SLOT( slotDumpProcessExited(TDEProcess*) ) );
+ TQObject::connect( proc, TQ_SIGNAL( receivedStdout(TDEProcess *, char *, int) ),
+ this, TQ_SLOT( slotCollectStdout(TDEProcess *, char *, int) ) );
+ TQObject::connect( proc, TQ_SIGNAL( receivedStderr(TDEProcess *, char *, int) ),
+ this, TQ_SLOT( slotCollectStderr(TDEProcess *, char *, int) ) );
+ TQObject::connect( proc, TQ_SIGNAL( processExited(TDEProcess*) ),
+ this, TQ_SLOT( slotDumpProcessExited(TDEProcess*) ) );
if ( !proc->start( TDEProcess::NotifyOnExit, (TDEProcess::Communication)(TDEProcess::Stdout | TDEProcess::Stderr) ) ) {
TQString wmsg = i18n("Failed to execute gpgsm:\n%1").arg( i18n( "program not found" ) );
@@ -383,8 +383,8 @@ void CertificateInfoWidgetImpl::slotShowCertPathDetails( TQListViewItem * item )
new CertificateInfoWidgetImpl( mChain[itemIndex], mExternal, dialog );
dialog->setMainWidget( top );
// proxy the signal to our receiver:
- connect( top, TQT_SIGNAL(requestCertificateDownload(const TQString&, const TQString&)),
- TQT_SIGNAL(requestCertificateDownload(const TQString&, const TQString&)) );
+ connect( top, TQ_SIGNAL(requestCertificateDownload(const TQString&, const TQString&)),
+ TQ_SIGNAL(requestCertificateDownload(const TQString&, const TQString&)) );
dialog->show();
}
@@ -415,10 +415,10 @@ void CertificateInfoWidgetImpl::startKeyExistanceCheck() {
Kleo::CryptoBackendFactory::instance()->smime()->keyListJob( false );
assert( job );
- connect( job, TQT_SIGNAL(nextKey(const GpgME::Key&)),
- TQT_SLOT(slotKeyExistanceCheckNextCandidate(const GpgME::Key&)) );
- connect( job, TQT_SIGNAL(result(const GpgME::KeyListResult&)),
- TQT_SLOT(slotKeyExistanceCheckFinished()) );
+ connect( job, TQ_SIGNAL(nextKey(const GpgME::Key&)),
+ TQ_SLOT(slotKeyExistanceCheckNextCandidate(const GpgME::Key&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::KeyListResult&)),
+ TQ_SLOT(slotKeyExistanceCheckFinished()) );
// nor to check for errors:
job->start( fingerprint );
}
diff --git a/certmanager/certificateinfowidgetimpl.h b/certmanager/certificateinfowidgetimpl.h
index 9536ddb3..5838ec84 100644
--- a/certmanager/certificateinfowidgetimpl.h
+++ b/certmanager/certificateinfowidgetimpl.h
@@ -47,7 +47,7 @@ namespace GpgME {
}
class CertificateInfoWidgetImpl : public CertificateInfoWidget {
- Q_OBJECT
+ TQ_OBJECT
public:
CertificateInfoWidgetImpl( const GpgME::Key & key, bool external,
diff --git a/certmanager/certificatewizard.ui b/certmanager/certificatewizard.ui
index cb544807..3fdeb600 100644
--- a/certmanager/certificatewizard.ui
+++ b/certmanager/certificatewizard.ui
@@ -546,16 +546,14 @@ If you want to change anything, press Back and make your changes; otherwise, pre
<tabstop>certificateTE</tabstop>
<tabstop>generatePB</tabstop>
</tabstops>
-<Q_SLOTS>
+<slots>
<slot access="protected">slotEmailAddressChanged(const TQString&amp;)</slot>
<slot access="protected">slotGenerateCertificate()</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
<includes>
+ <include location="global" impldecl="in implementation">klineedit.h</include>
+ <include location="global" impldecl="in implementation">kpushbutton.h</include>
<include location="global" impldecl="in implementation">kurlrequester.h</include>
</includes>
-<includehints>
- <includehint>klineedit.h</includehint>
- <includehint>kpushbutton.h</includehint>
-</includehints>
</UI>
diff --git a/certmanager/certificatewizardimpl.cpp b/certmanager/certificatewizardimpl.cpp
index e1d47f99..f5dd08ad 100644
--- a/certmanager/certificatewizardimpl.cpp
+++ b/certmanager/certificatewizardimpl.cpp
@@ -126,16 +126,16 @@ CertificateWizardImpl::CertificateWizardImpl( TQWidget* parent, const char* nam
// Allow to select remote URLs
storeUR->setMode( KFile::File );
storeUR->setFilter( "application/pkcs10" );
- connect( storeUR, TQT_SIGNAL( urlSelected( const TQString& ) ),
- this, TQT_SLOT( slotURLSelected( const TQString& ) ) );
+ connect( storeUR, TQ_SIGNAL( urlSelected( const TQString& ) ),
+ this, TQ_SLOT( slotURLSelected( const TQString& ) ) );
const TDEConfigGroup config( TDEGlobal::config(), "CertificateCreationWizard" );
caEmailED->setText( config.readEntry( "CAEmailAddress" ) );
- connect( this, TQT_SIGNAL( helpClicked() ),
- this, TQT_SLOT( slotHelpClicked() ) );
- connect( insertAddressButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotSetValuesFromWhoAmI() ) );
+ connect( this, TQ_SIGNAL( helpClicked() ),
+ this, TQ_SLOT( slotHelpClicked() ) );
+ connect( insertAddressButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotSetValuesFromWhoAmI() ) );
for ( unsigned int i = 0 ; i < numKeyLengths ; ++i )
keyLengthCB->insertItem( i18n("%n bit", "%n bits", keyLengths[i] ) );
@@ -246,8 +246,8 @@ void CertificateWizardImpl::slotGenerateCertificate()
Kleo::CryptoBackendFactory::instance()->smime()->keyGenerationJob();
assert( job );
- connect( job, TQT_SIGNAL(result(const GpgME::KeyGenerationResult&,const TQByteArray&)),
- TQT_SLOT(slotResult(const GpgME::KeyGenerationResult&,const TQByteArray&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::KeyGenerationResult&,const TQByteArray&)),
+ TQ_SLOT(slotResult(const GpgME::KeyGenerationResult&,const TQByteArray&)) );
certificateTE->setText( certParms );
@@ -362,10 +362,10 @@ void CertificateWizardImpl::createPersonalDataPage()
if ( config.entryIsImmutable( attr ) )
le->setEnabled( false );
- _attrPairList.append(tqMakePair(key, le));
+ _attrPairList.append(qMakePair(key, le));
- connect( le, TQT_SIGNAL(textChanged(const TQString&)),
- TQT_SLOT(slotEnablePersonalDataPageExit()) );
+ connect( le, TQ_SIGNAL(textChanged(const TQString&)),
+ TQ_SLOT(slotEnablePersonalDataPageExit()) );
}
// enable button only if administrator wants to allow it
@@ -490,8 +490,8 @@ void CertificateWizardImpl::accept()
TDEIO::Job* uploadJob = TDEIOext::put( _keyData, url, -1, overwrite, false /*resume*/ );
uploadJob->setWindow( this );
- connect( uploadJob, TQT_SIGNAL( result( TDEIO::Job* ) ),
- this, TQT_SLOT( slotUploadResult( TDEIO::Job* ) ) );
+ connect( uploadJob, TQ_SIGNAL( result( TDEIO::Job* ) ),
+ this, TQ_SLOT( slotUploadResult( TDEIO::Job* ) ) );
// Can't press finish again during the upload
setFinishEnabled( finishPage, false );
}
diff --git a/certmanager/certificatewizardimpl.h b/certmanager/certificatewizardimpl.h
index 9ac52f7a..844f39ed 100644
--- a/certmanager/certificatewizardimpl.h
+++ b/certmanager/certificatewizardimpl.h
@@ -48,7 +48,7 @@ namespace TDEIO {
class CertificateWizardImpl : public CertificateWizard
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/certmanager/certlistview.h b/certmanager/certlistview.h
index 63154d9f..dd488691 100644
--- a/certmanager/certlistview.h
+++ b/certmanager/certlistview.h
@@ -6,7 +6,7 @@
/// We need to derive from Kleo::KeyListView simply to add support for drop events
class CertKeyListView : public Kleo::KeyListView {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/certmanager/certmanager.cpp b/certmanager/certmanager.cpp
index 86ee531a..ddcdb8a4 100644
--- a/certmanager/certmanager.cpp
+++ b/certmanager/certmanager.cpp
@@ -96,7 +96,7 @@
// other
#include <algorithm>
#include <assert.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <kinputdialog.h>
namespace {
@@ -187,17 +187,17 @@ CertManager::CertManager( bool remote, const TQString& query, const TQString & i
mKeyListView->setSelectionMode( TQListView::Extended );
setCentralWidget( mKeyListView );
- connect( mKeyListView, TQT_SIGNAL(doubleClicked(Kleo::KeyListViewItem*,const TQPoint&,int)),
- TQT_SLOT(slotViewDetails(Kleo::KeyListViewItem*)) );
- connect( mKeyListView, TQT_SIGNAL(returnPressed(Kleo::KeyListViewItem*)),
- TQT_SLOT(slotViewDetails(Kleo::KeyListViewItem*)) );
- connect( mKeyListView, TQT_SIGNAL(selectionChanged()),
- TQT_SLOT(slotSelectionChanged()) );
- connect( mKeyListView, TQT_SIGNAL(contextMenu(Kleo::KeyListViewItem*, const TQPoint&)),
- TQT_SLOT(slotContextMenu(Kleo::KeyListViewItem*, const TQPoint&)) );
+ connect( mKeyListView, TQ_SIGNAL(doubleClicked(Kleo::KeyListViewItem*,const TQPoint&,int)),
+ TQ_SLOT(slotViewDetails(Kleo::KeyListViewItem*)) );
+ connect( mKeyListView, TQ_SIGNAL(returnPressed(Kleo::KeyListViewItem*)),
+ TQ_SLOT(slotViewDetails(Kleo::KeyListViewItem*)) );
+ connect( mKeyListView, TQ_SIGNAL(selectionChanged()),
+ TQ_SLOT(slotSelectionChanged()) );
+ connect( mKeyListView, TQ_SIGNAL(contextMenu(Kleo::KeyListViewItem*, const TQPoint&)),
+ TQ_SLOT(slotContextMenu(Kleo::KeyListViewItem*, const TQPoint&)) );
- connect( mKeyListView, TQT_SIGNAL(dropped(const KURL::List&) ),
- TQT_SLOT( slotDropped(const KURL::List&) ) );
+ connect( mKeyListView, TQ_SIGNAL(dropped(const KURL::List&) ),
+ TQ_SLOT( slotDropped(const KURL::List&) ) );
mLineEditAction->setText(query);
if ( !mRemote && !mNextFindRemote || !query.isEmpty() )
@@ -244,132 +244,132 @@ void CertManager::createStatusBar() {
}
static inline void connectEnableOperationSignal( TQObject * s, TQObject * d ) {
- TQObject::connect( s, TQT_SIGNAL(enableOperations(bool)),
- d, TQT_SLOT(setEnabled(bool)) );
+ TQObject::connect( s, TQ_SIGNAL(enableOperations(bool)),
+ d, TQ_SLOT(setEnabled(bool)) );
}
void CertManager::createActions() {
TDEAction * action = 0;
- (void)KStdAction::quit( TQT_TQOBJECT(this), TQT_SLOT(close()), actionCollection() );
+ (void)KStdAction::quit( this, TQ_SLOT(close()), actionCollection() );
- action = KStdAction::redisplay( TQT_TQOBJECT(this), TQT_SLOT(slotRedisplay()), actionCollection() );
+ action = KStdAction::redisplay( this, TQ_SLOT(slotRedisplay()), actionCollection() );
// work around the fact that the stdaction has no shortcut
TDEShortcut reloadShortcut = TDEStdAccel::shortcut(TDEStdAccel::Reload);
reloadShortcut.append(KKey(CTRL + Key_R));
action->setShortcut( reloadShortcut );
- connectEnableOperationSignal( TQT_TQOBJECT(this), action );
+ connectEnableOperationSignal( this, action );
action = new TDEAction( i18n("Stop Operation"), "process-stop", Key_Escape,
- TQT_TQOBJECT(this), TQT_SIGNAL(stopOperations()),
+ this, TQ_SIGNAL(stopOperations()),
actionCollection(), "view_stop_operations" );
action->setEnabled( false );
(void) new TDEAction( i18n("New Key Pair..."), "document-new", 0,
- TQT_TQOBJECT(this), TQT_SLOT(newCertificate()),
+ this, TQ_SLOT(newCertificate()),
actionCollection(), "file_new_certificate" );
connect( new TDEToggleAction( i18n("Hierarchical Key List"), 0,
actionCollection(), "view_hierarchical" ),
- TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotToggleHierarchicalView(bool)) );
+ TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotToggleHierarchicalView(bool)) );
action = new TDEAction( i18n("Expand All"), 0, CTRL+Key_Period,
- TQT_TQOBJECT(this), TQT_SLOT(slotExpandAll()),
+ this, TQ_SLOT(slotExpandAll()),
actionCollection(), "view_expandall" );
action = new TDEAction( i18n("Collapse All"), 0, CTRL+Key_Comma,
- TQT_TQOBJECT(this), TQT_SLOT(slotCollapseAll()),
+ this, TQ_SLOT(slotCollapseAll()),
actionCollection(), "view_collapseall" );
(void) new TDEAction( i18n("Refresh CRLs"), 0, 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotRefreshKeys()),
+ this, TQ_SLOT(slotRefreshKeys()),
actionCollection(), "certificates_refresh_clr" );
#ifdef NOT_IMPLEMENTED_ANYWAY
mRevokeCertificateAction = new TDEAction( i18n("Revoke"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(revokeCertificate()),
+ this, TQ_SLOT(revokeCertificate()),
actionCollection(), "edit_revoke_certificate" );
connectEnableOperationSignal( this, mRevokeCertificateAction );
mExtendCertificateAction = new TDEAction( i18n("Extend"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(extendCertificate()),
+ this, TQ_SLOT(extendCertificate()),
actionCollection(), "edit_extend_certificate" );
connectEnableOperationSignal( this, mExtendCertificateAction );
#endif
mDeleteCertificateAction = new TDEAction( i18n("Delete"), "edit-delete", Key_Delete,
- TQT_TQOBJECT(this), TQT_SLOT(slotDeleteCertificate()),
+ this, TQ_SLOT(slotDeleteCertificate()),
actionCollection(), "edit_delete_certificate" );
- connectEnableOperationSignal( TQT_TQOBJECT(this), mDeleteCertificateAction );
+ connectEnableOperationSignal( this, mDeleteCertificateAction );
mValidateCertificateAction = new TDEAction( i18n("Validate"), "reload", SHIFT + Key_F5,
- TQT_TQOBJECT(this), TQT_SLOT(slotValidate()),
+ this, TQ_SLOT(slotValidate()),
actionCollection(), "certificates_validate" );
- connectEnableOperationSignal( TQT_TQOBJECT(this), mValidateCertificateAction );
+ connectEnableOperationSignal( this, mValidateCertificateAction );
mImportCertFromFileAction = new TDEAction( i18n("Import Certificates..."), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotImportCertFromFile()),
+ this, TQ_SLOT(slotImportCertFromFile()),
actionCollection(), "file_import_certificates" );
- connectEnableOperationSignal( TQT_TQOBJECT(this), mImportCertFromFileAction );
+ connectEnableOperationSignal( this, mImportCertFromFileAction );
mImportCRLFromFileAction = new TDEAction( i18n("Import CRLs..."), 0,
- TQT_TQOBJECT(this), TQT_SLOT(importCRLFromFile()),
+ this, TQ_SLOT(importCRLFromFile()),
actionCollection(), "file_import_crls" );
- connectEnableOperationSignal( TQT_TQOBJECT(this), mImportCRLFromFileAction );
+ connectEnableOperationSignal( this, mImportCRLFromFileAction );
mExportCertificateAction = new TDEAction( i18n("Export Certificates..."), "export", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotExportCertificate()),
+ this, TQ_SLOT(slotExportCertificate()),
actionCollection(), "file_export_certificate" );
mExportSecretKeyAction = new TDEAction( i18n("Export Secret Key..."), "export", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotExportSecretKey()),
+ this, TQ_SLOT(slotExportSecretKey()),
actionCollection(), "file_export_secret_keys" );
- connectEnableOperationSignal( TQT_TQOBJECT(this), mExportSecretKeyAction );
+ connectEnableOperationSignal( this, mExportSecretKeyAction );
mViewCertDetailsAction = new TDEAction( i18n("Certificate Details..."), 0, 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotViewDetails()), actionCollection(),
+ this, TQ_SLOT(slotViewDetails()), actionCollection(),
"view_certificate_details" );
mDownloadCertificateAction = new TDEAction( i18n( "Download"), 0, 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotDownloadCertificate()), actionCollection(),
+ this, TQ_SLOT(slotDownloadCertificate()), actionCollection(),
"download_certificate" );
const TQString dirmngr = TDEStandardDirs::findExe( "gpgsm" );
mDirMngrFound = !dirmngr.isEmpty();
action = new TDEAction( i18n("Dump CRL Cache..."), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotViewCRLs()),
+ this, TQ_SLOT(slotViewCRLs()),
actionCollection(), "crl_dump_crl_cache" );
action->setEnabled( mDirMngrFound ); // we also need dirmngr for this
action = new TDEAction( i18n("Clear CRL Cache..."), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotClearCRLs()),
+ this, TQ_SLOT(slotClearCRLs()),
actionCollection(), "crl_clear_crl_cache" );
action->setEnabled( mDirMngrFound ); // we also need dirmngr for this
- action = new TDEAction( i18n("GnuPG Log Viewer..."), "pgp-keys", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotStartWatchGnuPG()), actionCollection(), "tools_start_kwatchgnupg");
+ action = new TDEAction( i18n("GnuPG Log Viewer..."), "pgp-keys", 0, this,
+ TQ_SLOT(slotStartWatchGnuPG()), actionCollection(), "tools_start_kwatchgnupg");
// disable action if no kwatchgnupg binary is around
if (TDEStandardDirs::findExe("kwatchgnupg").isEmpty()) action->setEnabled(false);
(void)new LabelAction( i18n("Search:"), actionCollection(), "label_action" );
- mLineEditAction = new LineEditAction( TQString(), actionCollection(), TQT_TQOBJECT(this),
- TQT_SLOT(slotSearch()),
+ mLineEditAction = new LineEditAction( TQString(), actionCollection(), this,
+ TQ_SLOT(slotSearch()),
"query_lineedit_action");
TQStringList lst;
lst << i18n("In Local Certificates") << i18n("In External Certificates");
- mComboAction = new ComboAction( lst, actionCollection(), TQT_TQOBJECT(this), TQT_SLOT( slotToggleRemote(int) ),
+ mComboAction = new ComboAction( lst, actionCollection(), this, TQ_SLOT( slotToggleRemote(int) ),
"location_combo_action", mNextFindRemote? 1 : 0 );
- mFindAction = new TDEAction( i18n("Find"), "edit-find", 0, TQT_TQOBJECT(this), TQT_SLOT(slotSearch()),
+ mFindAction = new TDEAction( i18n("Find"), "edit-find", 0, this, TQ_SLOT(slotSearch()),
actionCollection(), "find" );
- KStdAction::keyBindings( TQT_TQOBJECT(this), TQT_SLOT(slotEditKeybindings()), actionCollection() );
- KStdAction::preferences( TQT_TQOBJECT(this), TQT_SLOT(slotShowConfigurationDialog()), actionCollection() );
+ KStdAction::keyBindings( this, TQ_SLOT(slotEditKeybindings()), actionCollection() );
+ KStdAction::preferences( this, TQ_SLOT(slotShowConfigurationDialog()), actionCollection() );
- new TDEAction( i18n( "Configure &GpgME Backend" ), 0, 0, TQT_TQOBJECT(this), TQT_SLOT(slotConfigureGpgME()),
+ new TDEAction( i18n( "Configure &GpgME Backend" ), 0, 0, this, TQ_SLOT(slotConfigureGpgME()),
actionCollection(), "configure_gpgme" );
createStandardStatusBarAction();
@@ -387,7 +387,7 @@ void CertManager::slotEditKeybindings() {
void CertManager::slotShowConfigurationDialog() {
ConfigureDialog dlg( this );
- connect( &dlg, TQT_SIGNAL( configCommitted() ), TQT_SLOT( slotRepaint() ) );
+ connect( &dlg, TQ_SIGNAL( configCommitted() ), TQ_SLOT( slotRepaint() ) );
dlg.exec();
}
@@ -451,10 +451,10 @@ void CertManager::connectJobToStatusBarProgress( Kleo::Job * job, const TQString
return;
if ( !initialText.isEmpty() )
statusBar()->message( initialText );
- connect( job, TQT_SIGNAL(progress(const TQString&,int,int)),
- mProgressBar, TQT_SLOT(slotProgress(const TQString&,int,int)) );
- connect( job, TQT_SIGNAL(done()), mProgressBar, TQT_SLOT(reset()) );
- connect( this, TQT_SIGNAL(stopOperations()), job, TQT_SLOT(slotCancel()) );
+ connect( job, TQ_SIGNAL(progress(const TQString&,int,int)),
+ mProgressBar, TQ_SLOT(slotProgress(const TQString&,int,int)) );
+ connect( job, TQ_SIGNAL(done()), mProgressBar, TQ_SLOT(reset()) );
+ connect( this, TQ_SIGNAL(stopOperations()), job, TQ_SLOT(slotCancel()) );
action("view_stop_operations")->setEnabled( true );
emit enableOperations( false );
@@ -509,8 +509,8 @@ void CertManager::slotRefreshKeys() {
Kleo::RefreshKeysJob * job = Kleo::CryptoBackendFactory::instance()->smime()->refreshKeysJob();
assert( job );
- connect( job, TQT_SIGNAL(result(const GpgME::Error&)),
- this, TQT_SLOT(slotRefreshKeysResult(const GpgME::Error&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::Error&)),
+ this, TQ_SLOT(slotRefreshKeysResult(const GpgME::Error&)) );
connectJobToStatusBarProgress( job, i18n("Refreshing keys...") );
if ( const GpgME::Error err = job->start( keys ) )
@@ -571,10 +571,10 @@ void CertManager::startKeyListing( bool validating, bool refresh, const TQString
job = Kleo::CryptoBackendFactory::instance()->smime()->keyListJob( mRemote, false, validating );
assert( job );
- connect( job, TQT_SIGNAL(nextKey(const GpgME::Key&)),
- mKeyListView, refresh ? TQT_SLOT(slotRefreshKey(const GpgME::Key&)) : TQT_SLOT(slotAddKey(const GpgME::Key&)) );
- connect( job, TQT_SIGNAL(result(const GpgME::KeyListResult&)),
- this, TQT_SLOT(slotKeyListResult(const GpgME::KeyListResult&)) );
+ connect( job, TQ_SIGNAL(nextKey(const GpgME::Key&)),
+ mKeyListView, refresh ? TQ_SLOT(slotRefreshKey(const GpgME::Key&)) : TQ_SLOT(slotAddKey(const GpgME::Key&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::KeyListResult&)),
+ this, TQ_SLOT(slotKeyListResult(const GpgME::KeyListResult&)) );
connectJobToStatusBarProgress( job, i18n("Fetching keys...") );
@@ -685,7 +685,7 @@ void CertManager::slotImportCertFromFile( const KURL & certURL )
// Download the cert
TDEIOext::StoredTransferJob* importJob = TDEIOext::storedGet( certURL );
importJob->setWindow( this );
- connect( importJob, TQT_SIGNAL(result(TDEIO::Job*)), TQT_SLOT(slotImportResult(TDEIO::Job*)) );
+ connect( importJob, TQ_SIGNAL(result(TDEIO::Job*)), TQ_SLOT(slotImportResult(TDEIO::Job*)) );
}
void CertManager::slotImportResult( TDEIO::Job* job )
@@ -729,8 +729,8 @@ void CertManager::slotStartCertificateDownload( const TQString& fingerprint, con
Kleo::CryptoBackendFactory::instance()->smime()->downloadJob( false /* no armor */ );
assert( job );
- connect( job, TQT_SIGNAL(result(const GpgME::Error&,const TQByteArray&)),
- TQT_SLOT(slotCertificateDownloadResult(const GpgME::Error&,const TQByteArray&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::Error&,const TQByteArray&)),
+ TQ_SLOT(slotCertificateDownloadResult(const GpgME::Error&,const TQByteArray&)) );
connectJobToStatusBarProgress( job, i18n("Fetching certificate from server...") );
@@ -782,8 +782,8 @@ void CertManager::startCertificateImport( const TQByteArray & keyData, const TQS
Kleo::ImportJob * job = Kleo::CryptoBackendFactory::instance()->smime()->importJob();
assert( job );
- connect( job, TQT_SIGNAL(result(const GpgME::ImportResult&)),
- TQT_SLOT(slotCertificateImportResult(const GpgME::ImportResult&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::ImportResult&)),
+ TQ_SLOT(slotCertificateImportResult(const GpgME::ImportResult&)) );
connectJobToStatusBarProgress( job, i18n("Importing certificates...") );
@@ -906,8 +906,8 @@ void CertManager::importCRLFromFile() {
destURL.setPath( tempFile.name() );
TDEIO::Job* copyJob = TDEIO::file_copy( url, destURL, 0600, true, false );
copyJob->setWindow( this );
- connect( copyJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotImportCRLJobFinished( TDEIO::Job * ) ) );
+ connect( copyJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotImportCRLJobFinished( TDEIO::Job * ) ) );
}
}
}
@@ -930,9 +930,9 @@ bool CertManager::connectAndStartDirmngr( const char * slot, const char * proces
assert( processname );
assert( mDirmngrProc );
mErrorbuffer = TQString();
- connect( mDirmngrProc, TQT_SIGNAL(processExited(TDEProcess*)), slot );
- connect( mDirmngrProc, TQT_SIGNAL(receivedStderr(TDEProcess*,char*,int) ),
- this, TQT_SLOT(slotStderr(TDEProcess*,char*,int)) );
+ connect( mDirmngrProc, TQ_SIGNAL(processExited(TDEProcess*)), slot );
+ connect( mDirmngrProc, TQ_SIGNAL(receivedStderr(TDEProcess*,char*,int) ),
+ this, TQ_SLOT(slotStderr(TDEProcess*,char*,int)) );
if( !mDirmngrProc->start( TDEProcess::NotifyOnExit, TDEProcess::Stderr ) ) {
delete mDirmngrProc; mDirmngrProc = 0;
KMessageBox::error( this, i18n( "Unable to start %1 process. Please check your installation." ).arg( processname ), i18n( "Certificate Manager Error" ) );
@@ -947,7 +947,7 @@ void CertManager::startImportCRL( const TQString& filename, bool isTempFile )
mImportCRLTempFile = isTempFile ? filename : TQString();
mDirmngrProc = new TDEProcess();
*mDirmngrProc << "gpgsm" << "--call-dirmngr" << "loadcrl" << filename;
- if ( !connectAndStartDirmngr( TQT_SLOT(slotDirmngrExited()), "gpgsm" ) ) {
+ if ( !connectAndStartDirmngr( TQ_SLOT(slotDirmngrExited()), "gpgsm" ) ) {
updateImportActions( true );
if ( isTempFile )
TQFile::remove( mImportCRLTempFile ); // unlink tempfile
@@ -959,7 +959,7 @@ void CertManager::startClearCRLs() {
mDirmngrProc = new TDEProcess();
*mDirmngrProc << "dirmngr" << "--flush";
//*mDirmngrProc << "gpgsm" << "--call-dimngr" << "flush"; // use this once it's implemented!
- connectAndStartDirmngr( TQT_SLOT(slotClearCRLsResult()), "dirmngr" );
+ connectAndStartDirmngr( TQ_SLOT(slotClearCRLsResult()), "dirmngr" );
}
void CertManager::slotStderr( TDEProcess*, char* buf, int len ) {
@@ -1031,13 +1031,13 @@ void CertManager::slotDeleteCertificate() {
return;
if ( !mHierarchyAnalyser ) {
- mHierarchyAnalyser = new HierarchyAnalyser( TQT_TQOBJECT(this), "mHierarchyAnalyser" );
+ mHierarchyAnalyser = new HierarchyAnalyser( this, "mHierarchyAnalyser" );
Kleo::KeyListJob * job = Kleo::CryptoBackendFactory::instance()->smime()->keyListJob();
assert( job );
- connect( job, TQT_SIGNAL(nextKey(const GpgME::Key&)),
- mHierarchyAnalyser, TQT_SLOT(slotNextKey(const GpgME::Key&)) );
- connect( job, TQT_SIGNAL(result(const GpgME::KeyListResult&)),
- this, TQT_SLOT(slotDeleteCertificate()) );
+ connect( job, TQ_SIGNAL(nextKey(const GpgME::Key&)),
+ mHierarchyAnalyser, TQ_SLOT(slotNextKey(const GpgME::Key&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::KeyListResult&)),
+ this, TQ_SLOT(slotDeleteCertificate()) );
connectJobToStatusBarProgress( job, i18n("Checking key dependencies...") );
if ( const GpgME::Error error = job->start( TQStringList() ) ) {
showKeyListError( this, error );
@@ -1110,8 +1110,8 @@ void CertManager::slotDeleteCertificate() {
Kleo::MultiDeleteJob * job = new Kleo::MultiDeleteJob( Kleo::CryptoBackendFactory::instance()->smime() );
assert( job );
- connect( job, TQT_SIGNAL(result(const GpgME::Error&,const GpgME::Key&)),
- TQT_SLOT(slotDeleteResult(const GpgME::Error&,const GpgME::Key&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::Error&,const GpgME::Key&)),
+ TQ_SLOT(slotDeleteResult(const GpgME::Error&,const GpgME::Key&)) );
connectJobToStatusBarProgress( job, i18n("Deleting keys...") );
@@ -1156,8 +1156,8 @@ void CertManager::slotViewDetails( Kleo::KeyListViewItem * item ) {
CertificateInfoWidgetImpl * top = new CertificateInfoWidgetImpl( item->key(), isRemote(), dialog );
dialog->setMainWidget( top );
// </UGH>
- connect( top, TQT_SIGNAL(requestCertificateDownload(const TQString&, const TQString&)),
- TQT_SLOT(slotStartCertificateDownload(const TQString&, const TQString&)) );
+ connect( top, TQ_SIGNAL(requestCertificateDownload(const TQString&, const TQString&)),
+ TQ_SLOT(slotStartCertificateDownload(const TQString&, const TQString&)) );
dialog->show();
}
@@ -1219,8 +1219,8 @@ void CertManager::startCertificateExport( const TQStringList & fingerprints ) {
Kleo::ExportJob * job = Kleo::CryptoBackendFactory::instance()->smime()->publicKeyExportJob( true );
assert( job );
- connect( job, TQT_SIGNAL(result(const GpgME::Error&,const TQByteArray&)),
- TQT_SLOT(slotCertificateExportResult(const GpgME::Error&,const TQByteArray&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::Error&,const TQByteArray&)),
+ TQ_SLOT(slotCertificateExportResult(const GpgME::Error&,const TQByteArray&)) );
connectJobToStatusBarProgress( job, i18n("Exporting certificate...") );
@@ -1271,8 +1271,8 @@ void CertManager::slotCertificateExportResult( const GpgME::Error & err, const T
TDEIO::Job* uploadJob = TDEIOext::put( data, url, -1, overwrite, false /*resume*/ );
uploadJob->setWindow( this );
- connect( uploadJob, TQT_SIGNAL( result( TDEIO::Job* ) ),
- this, TQT_SLOT( slotUploadResult( TDEIO::Job* ) ) );
+ connect( uploadJob, TQ_SIGNAL( result( TDEIO::Job* ) ),
+ this, TQ_SLOT( slotUploadResult( TDEIO::Job* ) ) );
}
@@ -1356,8 +1356,8 @@ void CertManager::startSecretKeyExport( const TQString & fingerprint ) {
Kleo::ExportJob * job = Kleo::CryptoBackendFactory::instance()->smime()->secretKeyExportJob( false, charset );
assert( job );
- connect( job, TQT_SIGNAL(result(const GpgME::Error&,const TQByteArray&)),
- TQT_SLOT(slotSecretKeyExportResult(const GpgME::Error&,const TQByteArray&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::Error&,const TQByteArray&)),
+ TQ_SLOT(slotSecretKeyExportResult(const GpgME::Error&,const TQByteArray&)) );
connectJobToStatusBarProgress( job, i18n("Exporting secret key...") );
@@ -1390,8 +1390,8 @@ void CertManager::slotSecretKeyExportResult( const GpgME::Error & err, const TQB
TDEIO::Job* uploadJob = TDEIOext::put( data, url, -1, overwrite, false /*resume*/ );
uploadJob->setWindow( this );
- connect( uploadJob, TQT_SIGNAL( result( TDEIO::Job* ) ),
- this, TQT_SLOT( slotUploadResult( TDEIO::Job* ) ) );
+ connect( uploadJob, TQ_SIGNAL( result( TDEIO::Job* ) ),
+ this, TQ_SLOT( slotUploadResult( TDEIO::Job* ) ) );
}
void CertManager::slotUploadResult( TDEIO::Job* job )
diff --git a/certmanager/certmanager.h b/certmanager/certmanager.h
index c61ce7db..8a893b36 100644
--- a/certmanager/certmanager.h
+++ b/certmanager/certmanager.h
@@ -1,4 +1,4 @@
-/* -*- mode: c++; c-basic-offset:4 -*-
+/*
certmanager.h
This file is part of Kleopatra, the KDE keymanager
@@ -36,7 +36,7 @@
//#include <gpgme.h>
#include <tdemainwindow.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <kurl.h>
#include <tqcstring.h>
#include <tqptrlist.h>
@@ -77,7 +77,7 @@ namespace GpgME {
}
class KDE_EXPORT CertManager : public TDEMainWindow {
- Q_OBJECT
+ TQ_OBJECT
public:
CertManager( bool remote = false, const TQString& query = TQString(),
diff --git a/certmanager/conf/CMakeLists.txt b/certmanager/conf/CMakeLists.txt
index 506f72d3..37eee758 100644
--- a/certmanager/conf/CMakeLists.txt
+++ b/certmanager/conf/CMakeLists.txt
@@ -29,11 +29,14 @@ link_directories(
##### other data ################################
-install( FILES
+tde_create_translated_desktop(
+ SOURCE
kleopatra_config_dirserv.desktop
kleopatra_config_appear.desktop
kleopatra_config_dnorder.desktop
- DESTINATION ${SERVICES_INSTALL_DIR} )
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR certmanager-desktops
+)
##### kcm_kleopatra (module) ####################
diff --git a/certmanager/conf/appearanceconfigpage.cpp b/certmanager/conf/appearanceconfigpage.cpp
index c31fa900..49723f4d 100644
--- a/certmanager/conf/appearanceconfigpage.cpp
+++ b/certmanager/conf/appearanceconfigpage.cpp
@@ -36,7 +36,7 @@
#include <tdelocale.h>
#include <kdebug.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
AppearanceConfigurationPage::AppearanceConfigurationPage( TQWidget * parent, const char * name )
: TDECModule( parent, name )
@@ -44,7 +44,7 @@ AppearanceConfigurationPage::AppearanceConfigurationPage( TQWidget * parent, con
TQVBoxLayout* lay = new TQVBoxLayout( this );
mWidget = new Kleo::AppearanceConfigWidget( this );
lay->addWidget( mWidget );
- connect( mWidget, TQT_SIGNAL( changed() ), this, TQT_SLOT( slotChanged() ) );
+ connect( mWidget, TQ_SIGNAL( changed() ), this, TQ_SLOT( slotChanged() ) );
#ifndef HAVE_UNBROKEN_KCMULTIDIALOG
load();
diff --git a/certmanager/conf/appearanceconfigpage.h b/certmanager/conf/appearanceconfigpage.h
index 6b6848c4..c8cd8e22 100644
--- a/certmanager/conf/appearanceconfigpage.h
+++ b/certmanager/conf/appearanceconfigpage.h
@@ -42,7 +42,7 @@ namespace Kleo {
* "Appearance" configuration page for kleopatra's configuration dialog
*/
class AppearanceConfigurationPage : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
AppearanceConfigurationPage( TQWidget * parent=0, const char * name=0 );
diff --git a/certmanager/conf/appearanceconfigwidget.h b/certmanager/conf/appearanceconfigwidget.h
index f6ca9c8e..2609f5dc 100644
--- a/certmanager/conf/appearanceconfigwidget.h
+++ b/certmanager/conf/appearanceconfigwidget.h
@@ -41,7 +41,7 @@ class TDEConfig;
namespace Kleo {
class AppearanceConfigWidget : public AppearanceConfigWidgetBase {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/certmanager/conf/appearanceconfigwidgetbase.ui b/certmanager/conf/appearanceconfigwidgetbase.ui
index 57029201..462963f2 100644
--- a/certmanager/conf/appearanceconfigwidgetbase.ui
+++ b/certmanager/conf/appearanceconfigwidgetbase.ui
@@ -201,7 +201,7 @@
<tabstop>strikeoutCB</tabstop>
<tabstop>defaultLookPB</tabstop>
</tabstops>
-<Q_SLOTS>
+<slots>
<slot access="protected">slotForegroundClicked()</slot>
<slot access="protected">slotBackgroundClicked()</slot>
<slot access="protected">slotFontClicked()</slot>
@@ -210,6 +210,6 @@
<slot access="protected">slotItalicClicked()</slot>
<slot access="protected">slotBoldClicked()</slot>
<slot access="protected">slotStrikeoutClicked()</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
</UI>
diff --git a/certmanager/conf/configuredialog.h b/certmanager/conf/configuredialog.h
index 95d20d53..8216cbe8 100644
--- a/certmanager/conf/configuredialog.h
+++ b/certmanager/conf/configuredialog.h
@@ -38,7 +38,7 @@
class ConfigureDialog : public KCMultiDialog
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/certmanager/conf/dirservconfigpage.cpp b/certmanager/conf/dirservconfigpage.cpp
index 7a19d451..ad2e6099 100644
--- a/certmanager/conf/dirservconfigpage.cpp
+++ b/certmanager/conf/dirservconfigpage.cpp
@@ -47,7 +47,7 @@
#include <tqcheckbox.h>
#include <tqlayout.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#if 0 // disabled, since it is apparently confusing
// For sync'ing kabldaprc
@@ -146,7 +146,7 @@ DirectoryServicesConfigurationPage::DirectoryServicesConfigurationPage( TQWidget
Kleo::CryptoConfigEntry::ArgType_LDAPURL, true );
mWidget = new Kleo::DirectoryServicesWidget( entry, this );
lay->addWidget( mWidget );
- connect( mWidget, TQT_SIGNAL( changed() ), this, TQT_SLOT( slotChanged() ) );
+ connect( mWidget, TQ_SIGNAL( changed() ), this, TQ_SLOT( slotChanged() ) );
// LDAP timeout
TQHBox* box = new TQHBox( this );
@@ -155,7 +155,7 @@ DirectoryServicesConfigurationPage::DirectoryServicesConfigurationPage( TQWidget
TQLabel* label = new TQLabel( i18n( "LDAP &timeout (minutes:seconds)" ), box );
mTimeout = new TQTimeEdit( box );
mTimeout->setDisplay( TQTimeEdit::Minutes | TQTimeEdit::Seconds );
- connect( mTimeout, TQT_SIGNAL( valueChanged( const TQTime& ) ), this, TQT_SLOT( slotChanged() ) );
+ connect( mTimeout, TQ_SIGNAL( valueChanged( const TQTime& ) ), this, TQ_SLOT( slotChanged() ) );
label->setBuddy( mTimeout );
TQWidget* stretch = new TQWidget( box );
box->setStretchFactor( stretch, 2 );
@@ -167,13 +167,13 @@ DirectoryServicesConfigurationPage::DirectoryServicesConfigurationPage( TQWidget
mMaxItems = new KIntNumInput( box );
mMaxItems->setLabel( i18n( "&Maximum number of items returned by query" ), TQt::AlignLeft | TQt::AlignVCenter );
mMaxItems->setMinValue( 0 );
- connect( mMaxItems, TQT_SIGNAL( valueChanged(int) ), this, TQT_SLOT( slotChanged() ) );
+ connect( mMaxItems, TQ_SIGNAL( valueChanged(int) ), this, TQ_SLOT( slotChanged() ) );
stretch = new TQWidget( box );
box->setStretchFactor( stretch, 2 );
#ifdef NOT_USEFUL_CURRENTLY
mAddNewServersCB = new TQCheckBox( i18n( "Automatically add &new servers discovered in CRL distribution points" ), this );
- connect( mAddNewServersCB, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotChanged() ) );
+ connect( mAddNewServersCB, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotChanged() ) );
lay->addWidget( mAddNewServersCB );
#endif
diff --git a/certmanager/conf/dirservconfigpage.h b/certmanager/conf/dirservconfigpage.h
index f6a32301..b717b4eb 100644
--- a/certmanager/conf/dirservconfigpage.h
+++ b/certmanager/conf/dirservconfigpage.h
@@ -34,7 +34,7 @@
#include <tdecmodule.h>
#include <kleo/cryptoconfig.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQCheckBox;
class TQTimeEdit;
@@ -51,7 +51,7 @@ namespace Kleo {
* remote certificates in kleopatra.
*/
class KDE_EXPORT DirectoryServicesConfigurationPage : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
DirectoryServicesConfigurationPage( TQWidget * parent=0, const char * name=0 );
diff --git a/certmanager/conf/dnorderconfigpage.cpp b/certmanager/conf/dnorderconfigpage.cpp
index a802a06f..5c2d6c20 100644
--- a/certmanager/conf/dnorderconfigpage.cpp
+++ b/certmanager/conf/dnorderconfigpage.cpp
@@ -34,7 +34,7 @@
#include <ui/dnattributeorderconfigwidget.h>
#include <kleo/dn.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqlayout.h>
@@ -45,7 +45,7 @@ DNOrderConfigPage::DNOrderConfigPage( TQWidget * parent, const char * name )
mWidget = Kleo::DNAttributeMapper::instance()->configWidget( this, "mWidget" );
vlay->addWidget( mWidget );
- connect( mWidget, TQT_SIGNAL(changed()), TQT_SLOT(slotChanged()) );
+ connect( mWidget, TQ_SIGNAL(changed()), TQ_SLOT(slotChanged()) );
#ifndef HAVE_UNBROKEN_KCMULTIDIALOG
load();
diff --git a/certmanager/conf/dnorderconfigpage.h b/certmanager/conf/dnorderconfigpage.h
index 0830acbc..9c42d5c8 100644
--- a/certmanager/conf/dnorderconfigpage.h
+++ b/certmanager/conf/dnorderconfigpage.h
@@ -42,7 +42,7 @@ namespace Kleo {
* "DN Order" configuration page for kleopatra's configuration dialog
*/
class DNOrderConfigPage : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
DNOrderConfigPage( TQWidget * parent=0, const char * name=0 );
diff --git a/certmanager/conf/kleopatra_config_appear.desktop b/certmanager/conf/kleopatra_config_appear.desktop
index a216a8dc..1bc5b147 100644
--- a/certmanager/conf/kleopatra_config_appear.desktop
+++ b/certmanager/conf/kleopatra_config_appear.desktop
@@ -13,165 +13,7 @@ X-TDE-ParentComponents=kleopatra
X-TDE-CfgDlgHierarchy=Kleopatra
Name=Appearance
-Name[ar]=المظهر
-Name[be]=Знешні выгляд
-Name[bg]=Външен вид
-Name[br]=Neuziadur
-Name[bs]=Izgled
-Name[ca]=Aparença
-Name[cs]=Vzhled
-Name[cy]=Golwg
-Name[da]=Udseende
-Name[de]=Erscheinungsbild
-Name[el]=Εμφάνιση
-Name[eo]=Prezentado
-Name[es]=Apariencia
-Name[et]=Välimus
-Name[eu]=Itxura
-Name[fa]=ظاهر
-Name[fi]=Ulkoasu
-Name[fr]=Apparence
-Name[fy]=Uterlik
-Name[ga]=Cuma
-Name[gl]=Apariencia
-Name[he]=מראה
-Name[hr]=Izgled
-Name[hu]=Megjelenés
-Name[is]=Útlit
-Name[it]=Aspetto
-Name[ja]=外観
-Name[kk]=Сыртқы көрінісі
-Name[km]=រូបរាង
-Name[ko]=모양
-Name[lt]=Išvaizda
-Name[mk]=Изглед
-Name[ms]=Rupa
-Name[nb]=Utseende
-Name[nds]=Utsehn
-Name[ne]=मोहडा
-Name[nl]=Uiterlijk
-Name[nn]=Utsjånad
-Name[pl]=Wygląd
-Name[pt]=Aparência
-Name[pt_BR]=Aparência
-Name[ru]=Внешний вид
-Name[rw]=Imigaragarire
-Name[se]=Fárda
-Name[sk]=Vzhľad
-Name[sl]=Videz
-Name[sr]=Изглед
-Name[sr@Latn]=Izgled
-Name[sv]=Uppträdande
-Name[ta]=தோற்றம்
-Name[tg]=Намуди зоҳирӣ
-Name[tr]=Görünüm
-Name[uk]=Вигляд
-Name[uz]=Кўриниши
-Name[zh_CN]=外观
+
Comment=Colors & Fonts Configuration
-Comment[af]=Kleur en skrif tipe opstelling
-Comment[ar]=إعدادات الألوان و المحارف
-Comment[be]=Настаўленні колераў і шрыфтоў
-Comment[bg]=Настройки на цветовете и шрифтовете
-Comment[bs]=Podešavanje boja i fontova
-Comment[ca]=Configuració de colors i lletres
-Comment[cs]=Nastavení barev a písem
-Comment[da]=Indstilling af farver & skrifttype
-Comment[de]=Farb- & Schrifteneinrichtung
-Comment[el]=Ρύθμιση χρωμάτων & γραμματοσειρών
-Comment[en_GB]=Colours & Fonts Configuration
-Comment[eo]=Kolora kaj Tipara Agordo
-Comment[es]=Configuración de colores y tipografías
-Comment[et]=Värvide ja fontide seadistamine
-Comment[eu]=Kolore eta letra-tipoen konfigurazioa
-Comment[fa]=پیکربندی رنگها و قلمها
-Comment[fi]=Värien ja kirjasinten asetukset
-Comment[fr]=Configuration des polices et des couleurs
-Comment[fy]=Kleur- en lettertype-ynstellings
-Comment[ga]=Cumraíocht na nDathanna/gClófhoirne
-Comment[gl]=Configuración de Cores e Fontes
-Comment[he]=תצורת צבעים וגופנים
-Comment[hu]=A színek és betűtípusok beállítása
-Comment[is]=Stilling lita & leturgerða
-Comment[it]=Configurazione tipi di carattere e colori
-Comment[ja]=色とフォントの設定
-Comment[kk]=Түс & Қаріп параметрлері
-Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​ពណ៌ & ពុម្ពអក្សរ
-Comment[ko]=색과 글꼴 설정
-Comment[lt]=Spalvų ir šriftų konfigūravimas
-Comment[mk]=Конфигурација на бои и фонтови
-Comment[ms]=Warna & Konfigurasi fon
-Comment[nb]=Oppsett av farger og skrifttyper
-Comment[nds]=Klören un Schriftoorden instellen
-Comment[ne]=रङ र फन्ट कन्फिगरेसन
-Comment[nl]=Kleur- en lettertype-instellingen
-Comment[nn]=Oppsett av fargar og skrifter
-Comment[pl]=Konfiguracja czcionek i kolorów
-Comment[pt]=Configuração das Cores e Tipos de Letra
-Comment[pt_BR]=Configuração de Cores & Fontes
-Comment[ru]=Настройка цветов и шрифтов
-Comment[se]=Heivet ivnniid ja fonttaid
-Comment[sk]=Nastavenie písiem a farieb
-Comment[sl]=Nastavitev pisav in barv
-Comment[sr]=Подешавање боја и фонтова
-Comment[sr@Latn]=Podešavanje boja i fontova
-Comment[sv]=Inställning av färger och teckensnitt
-Comment[ta]=வண்ணங்கள்& எழுத்துருக்கள் கட்டமைப்பு
-Comment[tg]=Танзимоти ранг ва ҳуруф
-Comment[tr]=Renkler ve Yazı Tipleri Yapılandırması
-Comment[uk]=Налаштування кольорів і шрифтів
-Comment[zh_CN]=颜色和字体配置
-Comment[zh_TW]=設定顏色與字型
+
Keywords=color;font; configuration;
-Keywords[af]=kleur;skrif tipe;opstelling;color;font;
-Keywords[ar]=لون;حرف; إعدادات;محرف;ألوان;
-Keywords[be]=колер; шрыфт; канфігурацыя; color; font; configuration;
-Keywords[bg]=цвят; шрифт; настройване; настройки color; font; configuration;
-Keywords[br]=liv;nodrezh; kefluniadur;
-Keywords[bs]=color;font; configuration;boja;boje;font;podešavanje;
-Keywords[ca]=color;lletres; configuració;
-Keywords[cs]=barva;písmo;nastavení;
-Keywords[da]=farve;skrifttype;indstilling;
-Keywords[de]=Farben;Schriftarten;Konfiguration;Einrichtung;Einstellungen;
-Keywords[el]=χρώμα;γραμματοσειρά; ρύθμιση;
-Keywords[en_GB]=colour;font; configuration;
-Keywords[eo]=koloro;tiparo; agordo;
-Keywords[es]=color; tipografía; configuración;
-Keywords[et]=värv; font; seadistamine;
-Keywords[eu]=kolore;letra-tipo; konfigurazioa;
-Keywords[fa]=رنگ، قلم، پیکربندی;
-Keywords[fi]=värit;kirjasimet;asetukset;
-Keywords[fr]=couleur;police;configuration;paramètres;réglages;couleurs;polices;
-Keywords[fy]=kleur;kleuren;font;lettertype;konfiguraasje;ynstellings;setup;opset;
-Keywords[ga]=dath;cló;cumraíocht;
-Keywords[gl]=cor;fonte; configuración;
-Keywords[he]=color;font; configuration;צבע;צבעים; גופנים; גופן; תצורה; הגדרה;
-Keywords[hu]=szín;betűtípus;beállítások;
-Keywords[is]=litir;letur; stillingar;
-Keywords[it]=colori; font; caratteri; configurazione;
-Keywords[ja]=色;フォント;設定;
-Keywords[km]=ពណ៌;ពុម្ពអក្សរ;ការ​កំណត់​រចនាសម្ព័ន្ធ;
-Keywords[ko]=색;글꼴;설정;
-Keywords[lt]=color;font; configuration; spalvų; šriftų konfigūravimas;
-Keywords[mk]=color;font;configuration;боја;фонт;конфигурација;
-Keywords[ms]=warna;fon; konfigurasi;
-Keywords[nb]=farge;skrifttype;oppsett;
-Keywords[nds]=Klöör;Schriftoort;instellen;
-Keywords[ne]=रङ; फन्ट; कन्फिगरेसन;
-Keywords[nl]=kleur;kleuren;font;lettertype;configuratie;instellingen;setup;
-Keywords[nn]=farge;skrift;oppsett;
-Keywords[pl]=kolor;czcionki;kolory;konfiguracja;
-Keywords[pt]=cor;tipo de letra; configuração;
-Keywords[pt_BR]=cor;fonte;configurar;configurações;
-Keywords[ru]=цвета;шрифты;настройка;
-Keywords[se]=ivdni;fonta;heivehus;
-Keywords[sk]=farba;písmo;nastavenie;
-Keywords[sl]=barva;barve;pisava;pisave;nastavi;nastavitve;
-Keywords[sr]=боја;фонт;подешавања;
-Keywords[sr@Latn]=boja;font;podešavanja;
-Keywords[sv]=färger;teckensnitt; inställningar;
-Keywords[ta]=Comment=வண்ணம்;எழுத்துரு; கட்டமைப்பு;
-Keywords[tg]=рангҳо;ҳуруфҳо;танзимот;
-Keywords[tr]=renk;yazı tipi; yapılandırma;
-Keywords[uk]=колір; шрифт; налаштування;
-Keywords[zh_CN]=color;font;configuration;颜色;字体;配置;
diff --git a/certmanager/conf/kleopatra_config_dirserv.desktop b/certmanager/conf/kleopatra_config_dirserv.desktop
index ab7ff0c0..6f1023b3 100644
--- a/certmanager/conf/kleopatra_config_dirserv.desktop
+++ b/certmanager/conf/kleopatra_config_dirserv.desktop
@@ -13,154 +13,7 @@ X-TDE-ParentComponents=kleopatra
X-TDE-CfgDlgHierarchy=Kleopatra
Name=Directory Services
-Name[ar]=خدمات الدليل
-Name[bg]=Директорийни услуги
-Name[bs]=Imenički servisi
-Name[ca]=Serveis de directori
-Name[cs]=Adresářové služby
-Name[da]=Opslagstjeneste
-Name[de]=Verzeichnisdienste
-Name[el]=Υπηρεσίες καταλόγου
-Name[eo]=Dosierujaj Servoj
-Name[es]=Servicios de directorio
-Name[et]=Kataloogiteenused
-Name[eu]=Direktorio zerbitzuak
-Name[fa]=خدمات فهرست راهنما
-Name[fi]=Hakemistopalvelut
-Name[fr]=Services de répertoires
-Name[fy]=Maptsjinsten
-Name[ga]=Seirbhísí Eolaire
-Name[gl]=Servicios de Directorio
-Name[he]=שירותי ספרייה
-Name[hu]=Címtárszolgáltatások
-Name[is]=Nafnaþjónustur
-Name[it]=Servizi Directory
-Name[ja]=ディレクトリサービス
-Name[kk]=Каталог қызметтері
-Name[km]=សេវា​ថត
-Name[ko]=디렉터리 서비스
-Name[lt]=Aplankų tarnybos
-Name[mk]=Именички сервиси
-Name[ms]=Servis Direktori
-Name[nb]=Katalogtjenere
-Name[nds]=Vertekendeensten
-Name[ne]=डाइरेक्टरी कार्य
-Name[nl]=Mapdiensten
-Name[nn]=Katalogtenester
-Name[pa]=ਡਾਇਰੈਕਟਰੀ ਸੇਵਾਵਾਂ
-Name[pl]=Usługi katalogowe
-Name[pt]=Serviços de Directório
-Name[pt_BR]=Serviços de Diretório
-Name[ru]=Службы каталогов
-Name[se]=Ohcobálvalusat
-Name[sk]=Adresárové služby
-Name[sl]=Imeniške storitve
-Name[sr]=Сервис директоријума
-Name[sr@Latn]=Servis direktorijuma
-Name[sv]=Katalogtjänster
-Name[ta]= அடைவு சேவைகள்
-Name[tg]=Кӯмакҳои каталог
-Name[tr]=Dizin Servisleri
-Name[uk]=Служби каталогів
-Name[zh_CN]=目录服务
-Name[zh_TW]=目錄服務
+
Comment=Configuration of LDAP directory services
-Comment[af]=Opstelling van LDAP gids diens
-Comment[bg]=Настройки на директорийните услуги LDAP
-Comment[bs]=Podešavanje LDAP usluge imenika
-Comment[ca]=Configuració dels serveis de directori LDAP
-Comment[cs]=Nastavení adresářových služeb LDAP
-Comment[da]=Indstilling af LDAP opslagstjeneste
-Comment[de]=Einrichtung von LDAP-Verzeichnisdiensten
-Comment[el]=Ρυθμίσεις των υπηρεσιών καταλόγου LDAP
-Comment[eo]=Agordo de LDAP dosierujaj servoj
-Comment[es]=Configuración de los servicios de directorio LDAP
-Comment[et]=LDAP kataloogiteenuste seadistused
-Comment[eu]=LDAP direktorio zerbitzuen konfigurazioa
-Comment[fa]=پیکربندی خدمات فهرست راهنمای LDAP
-Comment[fi]=Hakemistopalveluiden asetukset
-Comment[fr]=Configuration des répertoires LDAP
-Comment[fy]=Konfiguraasje foar LDAP-tsjinsten
-Comment[gl]=Configuración dos servicios de directorio LDAP
-Comment[he]=תצורה של שירותי ספרייה עבור LDAP
-Comment[hu]=Az LDAP címtárszolgáltatások beállításai
-Comment[is]=Stillingar LDAP uppflettingaþjónustunnar
-Comment[it]=Configurazione servizi LDAP
-Comment[ja]=LDAP ディレクトリサービスの設定
-Comment[kk]=LDAP каталог қызметтер параметрлері
-Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​របស់​សេវា​ថត LDAP
-Comment[ko]=LDAP 디렉터리 서비스 설정
-Comment[lt]=LDAP aplankų tarnybų konfigūravimas
-Comment[mk]=Конфигурација на LDAP-именички сервиси
-Comment[ms]=Konfigurasi LDAP servis direktori
-Comment[nb]=Oppsett av LDAP katalogtjenester
-Comment[nds]=LDAP-Vertekendeensten instellen
-Comment[ne]=LDAP डाइरेक्टरी कार्यको कन्फिगरेसन
-Comment[nl]=Configuratie voor LDAP-diensten
-Comment[nn]=Oppsett av LDAP-katalogtenester
-Comment[pl]=Konfiguracja usług katalogowych LDAP
-Comment[pt]=Configuração dos serviços de directório LDAP
-Comment[pt_BR]=Configuração dos serviços de diretório LDAP
-Comment[ru]=Настройка служб каталогов LDAP
-Comment[se]=Heivet LDAP-ohcobálvalusaid
-Comment[sk]=Nastavenie adresárových služieb LDAP
-Comment[sl]=Nastavitve imeniških storitev LDAP
-Comment[sr]= Подешавања LDAP сервиса директоријума
-Comment[sr@Latn]= Podešavanja LDAP servisa direktorijuma
-Comment[sv]=Inställning av LDAP-katalogtjänster
-Comment[ta]= LDAP அடைவு சேவைகளின் கட்டமைப்பு
-Comment[tg]=Танзимоти кӯмакҳои каталоги LDAP
-Comment[tr]=LDAP dizin servislerinin yapılandırması
-Comment[uk]=Налаштування служб каталогів LDAP
-Comment[zh_CN]=LDAP 目录服务配置
-Comment[zh_TW]=設定 LDAP 目錄服務
+
Keywords=ldap;directory;services;
-Keywords[af]=ldap;directory;services;gids;
-Keywords[be]=каталёг;сэрвісы;ldap;directory;services;
-Keywords[bg]=директорийни; услуги; ldap; directory; services;
-Keywords[br]=ldap;renkell;servijeroù;
-Keywords[bs]=ldap;directory;services;imenik;servis;usluga;imenički;imeničke;usluge;
-Keywords[ca]=ldap;directori;serveis;
-Keywords[cs]=LDAP;adresář;služby;
-Keywords[da]=ldap;opslag;tjenester;
-Keywords[de]=LDAP;Verzeichnis;Dienste;Verzeichnisdienst;
-Keywords[el]=ldap;κατάλογος;υπηρεσίες;
-Keywords[eo]=ldap;dosierujo;servoj;
-Keywords[es]=ldap;directorio;servicios;
-Keywords[et]=ldap;kataloog;teenused;
-Keywords[eu]=Idap; direktorio; zerbitzuak;
-Keywords[fa]=ldap، فهرست راهنما، خدمات;
-Keywords[fi]=ldap;hakemisto;palvelut;
-Keywords[fr]=ldap;dossier;dossiers;service;services;
-Keywords[fy]=ldap;directory;services;triemtafel;tsjinsten;
-Keywords[ga]=ldap;eolaire;seirbhísí;
-Keywords[gl]=ldap;directorio;servicios;
-Keywords[he]=ldap;directory;services;ספרייה;שירותים;
-Keywords[hu]=ldap;címtár;szolgáltatások;
-Keywords[is]=ldap;directory;services;nafnaþjónusta;
-Keywords[it]=ldap; servizi; directory;
-Keywords[ja]=ldap;ディレクトリ;サービス;
-Keywords[km]=ldap;ថត;សេវា;
-Keywords[ko]=ldap;디렉터리;서비스;
-Keywords[lt]=ldap;directory;services;aplankai;tarnybos;
-Keywords[mk]=ldap;directory;services;именик;сервиси;
-Keywords[ms]=ldap;direktori;servis;
-Keywords[nb]=ldap;mappe;tjenester;
-Keywords[nds]=LDAP;Verteken;Deensten;
-Keywords[ne]=ldap;डाइरेक्टरी;कार्य;
-Keywords[nn]=ldap;katalog;tenester;
-Keywords[pl]=ldap;katalog;usługi katalogowe;usługi;LDAP;
-Keywords[pt]=ldap;directório;serviços;
-Keywords[pt_BR]=ldap;diretório;serviços;
-Keywords[ru]=LDAP;службы каталогов;
-Keywords[se]=ldap;ohcu;bálvalusat;
-Keywords[sk]=ldap;adresár;služby;
-Keywords[sl]=ldap;imenik;storitve;
-Keywords[sr]=ldap;директоријум;сервиси;
-Keywords[sr@Latn]=ldap;direktorijum;servisi;
-Keywords[sv]=ldap;katalog;tjänster;
-Keywords[ta]=ldap; அடைவு; சேவைகள்;
-Keywords[tg]=ldap;кӯмакҳои каталог;
-Keywords[tr]=ldap;dizin;servisler;
-Keywords[uk]=ldap;служби;каталогів;
-Keywords[zh_CN]=ldap;directory;services;目录;服务;
diff --git a/certmanager/conf/kleopatra_config_dnorder.desktop b/certmanager/conf/kleopatra_config_dnorder.desktop
index 445ed261..31a24feb 100644
--- a/certmanager/conf/kleopatra_config_dnorder.desktop
+++ b/certmanager/conf/kleopatra_config_dnorder.desktop
@@ -13,149 +13,7 @@ X-TDE-ParentComponents=kleopatra
X-TDE-CfgDlgHierarchy=Kleopatra
Name=DN-Attribute Order
-Name[bg]=Подредба
-Name[bs]=Redoslijed DN atributa
-Name[ca]=Ordre d'atributs DN
-Name[cs]=Pořadí DN atributů
-Name[da]=DN-Attributrækkefølge
-Name[de]=DN-Attribut-Ordnung
-Name[el]=Σειρά ιδιότητας DN
-Name[eo]=DN-Atributa Sinsekvo
-Name[es]=Orden de atributos DN
-Name[et]=DN-atribuutide järjekord
-Name[eu]=DN-atributu ordena
-Name[fa]=ترتیب خصیصۀ DN
-Name[fi]=DN-attribuuttien järjestys
-Name[fr]=Ordre des attributs DN
-Name[fy]=DN-Attribuutoarder
-Name[gl]=Orde de DN-Attribute
-Name[he]=סדר של מאפייני DN
-Name[hu]=DN-attribútumsorrend
-Name[is]=DN eiginleikaröðun
-Name[it]=Attributi DN, ordine
-Name[ja]=DN 属性順位
-Name[kk]=DN-атрибуттер реті
-Name[km]=លំដាប់​គុណលក្ខណៈ DN
-Name[ko]=DN 분배 순서
-Name[lt]=DN-Savybių tvarka
-Name[mk]=Редослед на DN-атрибути
-Name[ms]=Tertib atribut DN
-Name[nb]=DN-Attributtrekkefølge
-Name[nds]=DN-Egenschappenreeg
-Name[ne]=डीएन विशेषता आदेश
-Name[nl]=DN-Attribuutvolgorde
-Name[nn]=DN-attributtrekkjefølgje
-Name[pl]=Porządek atrybutów DN
-Name[pt]=Ordem de Atributos DN
-Name[pt_BR]=Ordem do Atributo DN
-Name[ru]=Порядок атрибутов DN
-Name[se]=DN-attribuhttaortnet
-Name[sk]=Poradie atribútov DN
-Name[sl]=Vrstni red atributov DN
-Name[sr]=DN-Атрибут ред
-Name[sr@Latn]=DN-Atribut red
-Name[sv]=DN-egenskapsordning
-Name[ta]=DN-பண்புக்கூறு வரிசை
-Name[tg]=Тартиби мушаххасияти DN
-Name[tr]=DN-Öznitelik Sırası
-Name[uk]=Порядок атрибутів DN
-Name[zh_CN]=DN 属性顺序
-Name[zh_TW]=DN-屬性順序
+
Comment=Configure the order in which DN attributes are shown
-Comment[af]=Stel die volgorde op waarin DN eienskappe vertoon word
-Comment[bg]=Настройки на подредбата на атрибутите на индекса (DN)
-Comment[bs]=Podesite redoslijed kojim će biti prikazani DN atributi
-Comment[ca]=Configura l'ordre en què es mostren els atributs DN
-Comment[cs]=Nastavení pořadí zobrazení DN atributů
-Comment[da]=Indstil rækkefølgen i hvilken DN-attributter vises
-Comment[de]=Einrichtung für die Anzeigereihenfolge der DN-Attribute
-Comment[el]=Ρύθμιση της σειράς εμφάνισης των ιδιοτήτων DN
-Comment[eo]=Agordi la sinsekvon en kiu DN-atributoj aperas
-Comment[es]=Configura el orden en el que se muestran los atributos DN
-Comment[et]=DN-atribuutide näitamise järjekorra seadistamine
-Comment[eu]=Konfiguratu DN atributuak zein ordenetan erakutsiko diren
-Comment[fa]=پیکربندی ترتیبی که خصیصه‌های DN طبق آن نمایش داده می‌شوند
-Comment[fi]=Määrittele missä järjestyksessä DN-attribuutit näytetään
-Comment[fr]=Configurer l'ordre dans lequel les attributs DN sont affichés
-Comment[fy]=De folchoarder fan de DN-atributen ynstelle
-Comment[gl]=Configurar a orde en que se amosan os atributos DN
-Comment[he]=הגדרה של הסדר שבהם מאפייני DN מוצגים
-Comment[hu]=A DN-attribútumok megjelenítési sorrendjének beállítása
-Comment[is]=Stilla röð DN eiginleikanna
-Comment[it]=Configura l'ordine in cui sono mostrati gli attributi DN
-Comment[ja]=DN 属性を表示する順位を設定
-Comment[kk]=DN атрибуттерді көрсету ретін баптау
-Comment[km]=កំណត់​រចនាសម្ព័ន្ធ​លំដាប់ ដែល​ត្រូវ​បង្ហាញ​គុណលក្ខណៈ DN
-Comment[lt]=Konfigūruoti DN savybių rodymo tvarką
-Comment[mk]=Конфигурирајте го редоследот по кој се покажуваат DN-атрибутите
-Comment[ms]=Konfigur tertib yang atribut DN dipaparkan
-Comment[nb]=Still inn rekkefølgen DN-attributtene er sortert i
-Comment[nds]=De Reeg bi't Wiesen vun DN-Egenschappen fastleggen
-Comment[ne]=डीएन विशेषता देखिने आदेश कन्फिगर गर्नुहोस्
-Comment[nl]=Stel de volgorde in van de DN-attributen
-Comment[nn]=Vel kva rekkjefølgje DN-attributtane er sorterte i
-Comment[pl]=Konfiguracja kolejności wyświetlania atrybutów DN
-Comment[pt]=Configuração da ordem em que os atributos DN são mostrados
-Comment[pt_BR]=Configura a ordem na qual os atributos DN são mostrados
-Comment[ru]=Настройка порядка показываемых атрибутов DN
-Comment[se]=Vállje makkár ortnegis DN-attribuhttat sorterejuvvojit
-Comment[sk]=Nastavenie poradia, v ktorom sú zobrazené atribúty DN
-Comment[sl]=Nastavite vrstni red, v katerem so prikazani atributi DN
-Comment[sr]=Подешава ред којим су приказани DN атрибути
-Comment[sr@Latn]=Podešava red kojim su prikazani DN atributi
-Comment[sv]=Anpassa ordningen som DN-egenskaper visas
-Comment[ta]= DN விவரங்கள் எந்த வரிசையில் உள்ளதோ அப்படியே அமை
-Comment[tg]=Танзимоти мушаххасиятҳои намоишшавандаи тартибии DN
-Comment[tr]=DN özniteliklerinin hangi sıralama ile gösterileceğini yapılandır
-Comment[uk]=Налаштування порядку показу атрибутів DN
-Comment[zh_CN]=配置 DN 属性显示的顺序
-Comment[zh_TW]=設定 DN 屬性顯示順序
+
Keywords=DN;order;RDN;attribute;
-Keywords[af]=DN;order;RDN;attribute;volgorde;eienskap;
-Keywords[be]=парадак;атрыбут;DN;order;RDN;attribute;
-Keywords[bg]=индекс; ред; подредба; атрибут DN; order; RDN; attribute;
-Keywords[bs]=DN;order;RDN;attribute;redoslijed;atribut;
-Keywords[ca]=DN;ordre;RDN;atribut;
-Keywords[cs]=DN;pořadí;RDN;atribut;
-Keywords[da]=DN;rækkefølge;RDN;attribut;
-Keywords[de]=DN;Ordnung;RDN;Attribut;
-Keywords[el]=DN;σειρά;RDN;ιδιότητα;
-Keywords[eo]=DN;sinsekvo;ordo;RDN;atributo;
-Keywords[es]=DN;orden;RDN;atributo;
-Keywords[et]=DN;järjekord;RDN;atribuut;
-Keywords[eu]=DN; ordena; RDN; atributua;
-Keywords[fa]=DN، ترتیب، RDN، خصیصه;
-Keywords[fi]=DN;järjestys;RDN;attribuutti;
-Keywords[fr]=DN;ordre;RDN;attribut;
-Keywords[fy]=DN;Fochoarder;RDN;attribuut;
-Keywords[ga]=DN;ord;RDN;aitreabúid;
-Keywords[gl]=DN;orde;RDN;atributo;
-Keywords[he]=DN;order;RDN;attribute; סדר; מאפיין;
-Keywords[hu]=DN;sorrend;RDN;attribútum;
-Keywords[is]=DN;röð;order;RDN;attribute;
-Keywords[it]=DN;ordine;RDN;attributi;
-Keywords[ja]=DN;順位;RDN;属性;
-Keywords[km]=DN;លំដាប់;RDN;គុណលក្ខណៈ;
-Keywords[lt]=DN;order;RDN;attribute;savybė;tvarka;
-Keywords[mk]=DN;order;RDN;attribute;редослед;атрибут;
-Keywords[ms]=DN;susunan;RDN;atribut;
-Keywords[nb]=DN;orden;RDN;attributt;
-Keywords[nds]=DN;Reeg;RDN;Egenschap;
-Keywords[ne]=डीएन;क्रम;आरडीएन; विशेषता;
-Keywords[nl]=DN;volgorde;RDN;attribuut;
-Keywords[nn]=DN;rekkjefølgje;RDN;attributt;
-Keywords[pl]=DN;kolejność;RDN;atrybuty;
-Keywords[pt]=DN;ordem;RDN;atributo;
-Keywords[pt_BR]=DN; ordem; RDN;atributo;
-Keywords[ru]=DN;порядок;RDN;атрибут;
-Keywords[se]=DN;ortnet;RDN;attribuhtta;
-Keywords[sk]=DN;poradie;RDN;atribút;
-Keywords[sl]=DN;vrstni red;RDN;atribut;
-Keywords[sr]=DN;ред;RDN;атрибут;
-Keywords[sr@Latn]=DN;red;RDN;atribut;
-Keywords[sv]=DN;ordning;RDN;egenskap;
-Keywords[ta]=DN;வரிசை;RDN;குணம்;
-Keywords[tg]=DN;тартибот;RDN;мушаххасот;
-Keywords[tr]=DN;sıralama;RDN;öznitelik;
-Keywords[uk]=DN;порядок;RDN;атрибут;
-Keywords[zh_CN]=DN;order;RDN;attribute;顺序;属性;
diff --git a/certmanager/crlview.cpp b/certmanager/crlview.cpp
index f94a4557..2cefe045 100644
--- a/certmanager/crlview.cpp
+++ b/certmanager/crlview.cpp
@@ -71,16 +71,16 @@ CRLView::CRLView( TQWidget* parent, const char* name, bool modal )
hbLayout->addWidget( _closeButton );
// connections:
- connect( _updateButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotUpdateView() ) );
- connect( _closeButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( close() ) );
+ connect( _updateButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotUpdateView() ) );
+ connect( _closeButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( close() ) );
resize( _textView->fontMetrics().width( 'M' ) * 80,
_textView->fontMetrics().lineSpacing() * 25 );
_timer = new TQTimer( this );
- connect( _timer, TQT_SIGNAL(timeout()), TQT_SLOT(slotAppendBuffer()) );
+ connect( _timer, TQ_SIGNAL(timeout()), TQ_SLOT(slotAppendBuffer()) );
}
CRLView::~CRLView()
@@ -101,10 +101,10 @@ void CRLView::slotUpdateView()
if( _process == 0 ) {
_process = new TDEProcess();
*_process << "gpgsm" << "--call-dirmngr" << "listcrls";
- connect( _process, TQT_SIGNAL( receivedStdout( TDEProcess*, char*, int) ),
- this, TQT_SLOT( slotReadStdout( TDEProcess*, char*, int ) ) );
- connect( _process, TQT_SIGNAL( processExited( TDEProcess* ) ),
- this, TQT_SLOT( slotProcessExited() ) );
+ connect( _process, TQ_SIGNAL( receivedStdout( TDEProcess*, char*, int) ),
+ this, TQ_SLOT( slotReadStdout( TDEProcess*, char*, int ) ) );
+ connect( _process, TQ_SIGNAL( processExited( TDEProcess* ) ),
+ this, TQ_SLOT( slotProcessExited() ) );
}
if( _process->isRunning() ) _process->kill();
if( !_process->start( TDEProcess::NotifyOnExit, TDEProcess::Stdout ) ) {
diff --git a/certmanager/crlview.h b/certmanager/crlview.h
index eef97deb..0e500f88 100644
--- a/certmanager/crlview.h
+++ b/certmanager/crlview.h
@@ -42,7 +42,7 @@ class TDEProcess;
class TQTimer;
class CRLView : public TQDialog {
- Q_OBJECT
+ TQ_OBJECT
public:
CRLView( TQWidget* parent = 0, const char* name = 0, bool modal = false );
diff --git a/certmanager/customactions.cpp b/certmanager/customactions.cpp
index bf637538..9c88491e 100644
--- a/certmanager/customactions.cpp
+++ b/certmanager/customactions.cpp
@@ -55,7 +55,7 @@ int LabelAction::plug( TQWidget * widget, int index ) {
TQLabel* label = new TQLabel( text(), bar, "tde toolbar widget" );
bar->insertWidget( id_, label->width(), label, index );
addContainer( bar, id_ );
- connect( bar, TQT_SIGNAL( destroyed() ), this, TQT_SLOT( slotDestroyed() ) );
+ connect( bar, TQ_SIGNAL( destroyed() ), this, TQ_SLOT( slotDestroyed() ) );
return containerCount() - 1;
}
@@ -82,8 +82,8 @@ int LineEditAction::plug( TQWidget * widget, int index ) {
bar->insertWidget( id_, _le->width(), _le, index );
bar->setStretchableWidget( _le );
addContainer( bar, id_ );
- connect( bar, TQT_SIGNAL( destroyed() ), this, TQT_SLOT( slotDestroyed() ) );
- connect( _le, TQT_SIGNAL( returnPressed() ), _receiver, _member );
+ connect( bar, TQ_SIGNAL( destroyed() ), this, TQ_SLOT( slotDestroyed() ) );
+ connect( _le, TQ_SIGNAL( returnPressed() ), _receiver, _member );
return containerCount() - 1;
}
@@ -123,10 +123,10 @@ int ComboAction::plug( TQWidget * widget, int index ) {
if ( widget->inherits( "TDEToolBar" ) ) {
TDEToolBar *bar = (TDEToolBar *)widget;
int id_ = getToolButtonID();
- bar->insertCombo( _lst, id_, false, TQT_SIGNAL( highlighted(int) ), _receiver, _member );
+ bar->insertCombo( _lst, id_, false, TQ_SIGNAL( highlighted(int) ), _receiver, _member );
bar->setCurrentComboItem( id_,_selectedId );
addContainer( bar, id_ );
- connect( bar, TQT_SIGNAL( destroyed() ), this, TQT_SLOT( slotDestroyed() ) );
+ connect( bar, TQ_SIGNAL( destroyed() ), this, TQ_SLOT( slotDestroyed() ) );
return containerCount() - 1;
}
diff --git a/certmanager/customactions.h b/certmanager/customactions.h
index 67a429f9..97dc68b5 100644
--- a/certmanager/customactions.h
+++ b/certmanager/customactions.h
@@ -40,7 +40,7 @@
class TQLineEdit;
class LabelAction : public TDEAction {
- Q_OBJECT
+ TQ_OBJECT
public:
LabelAction( const TQString & text, TDEActionCollection * parent,
@@ -50,7 +50,7 @@ public:
};
class LineEditAction : public TDEAction {
- Q_OBJECT
+ TQ_OBJECT
public:
LineEditAction( const TQString & text, TDEActionCollection * parent,
@@ -68,7 +68,7 @@ private:
};
class ComboAction : public TDEAction {
- Q_OBJECT
+ TQ_OBJECT
public:
ComboAction( const TQStringList & lst, TDEActionCollection * parent,
diff --git a/certmanager/hierarchyanalyser.h b/certmanager/hierarchyanalyser.h
index dede3814..34e7b5a6 100644
--- a/certmanager/hierarchyanalyser.h
+++ b/certmanager/hierarchyanalyser.h
@@ -1,4 +1,4 @@
-/* -*- mode: c++ -*-
+/*
hierarchyanalyser.h
This file is part of Kleopatra, the KDE keymanager
@@ -42,7 +42,7 @@
#include <vector>
class HierarchyAnalyser : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
HierarchyAnalyser( TQObject * parent=0, const char * name=0 );
diff --git a/certmanager/kleopatra.desktop b/certmanager/kleopatra.desktop
index 2fab4ee7..756447dc 100644
--- a/certmanager/kleopatra.desktop
+++ b/certmanager/kleopatra.desktop
@@ -3,123 +3,11 @@ Type=Application
Categories=Qt;TDE;Utility;
Exec=kleopatra
Icon=kleopatra
+
Name=Kleopatra
-Name[af]=Kleopatra
-Name[ar]=كليوبترا
-Name[be]=Kleopatra
-Name[bg]=Kleopatra
-Name[br]=Kleopatra
-Name[bs]=Kleopatra
-Name[ca]=Kleopatra
-Name[ca@valencia]=Kleopatra
-Name[cs]=Kleopatra
-Name[cy]=Kleopatra
-Name[da]=Kleopatra
-Name[de]=Kleopatra
-Name[el]=Kleopatra
-Name[en_GB]=Kleopatra
-Name[eo]=Kleopatra
-Name[es]=Kleopatra
-Name[et]=Kleopatra
-Name[eu]=Kleopatra
-Name[fi]=Kleopatra
-Name[fr]=Kleopatra
-Name[fy]=Kleopatra
-Name[ga]=Kleopatra
-Name[gl]=Kleopatra
-Name[he]=Kleopatra
-Name[hu]=Kleopatra
-Name[ia]=Kleopatra
-Name[is]=Kleópatra
-Name[it]=Kleopatra
-Name[ja]=Kleopatra
-Name[ka]=Kleopatra
-Name[kk]=Kleopatra
-Name[km]=Kleopatra
-Name[ko]=Kleopatra
-Name[lt]=Kleopatra
-Name[lv]=Kleopatra
-Name[mk]=Клеопатра
-Name[mr]=क्लिओपात्रा
-Name[ms]=Kleopatra
-Name[nb]=Kleopatra
-Name[nds]=Kleopatra
-Name[ne]=क्लेओपेट्रा
-Name[nl]=Kleopatra
-Name[nn]=Kleopatra
-Name[oc]=Kleopatra
-Name[pa]=ਕਲੀਉਪਾਟਰਾ
-Name[pl]=Kleopatra
-Name[pt]=Kleopatra
-Name[pt_BR]=Kleopatra
-Name[ro]=Kleopatra
-Name[ru]=Kleopatra
-Name[se]=Kleopatra
-Name[sk]=Kleopatra
-Name[sl]=Kleopatra
-Name[sr]=Клеопатра
-Name[sr@ijekavian]=Клеопатра
-Name[sr@ijekavianlatin]=Kleopatra
-Name[sr@latin]=Kleopatra
-Name[sv]=Kleopatra
-Name[ta]=க்ளியோபட்ரா
-Name[tg]=Kleopatra
-Name[tr]=Kleopatra
-Name[ug]=Kleopatra
-Name[uk]=Kleopatra
-Name[uz]=Kleopatra
-Name[uz@cyrillic]=Kleopatra
-Name[wa]=Kleopatra
-Name[x-test]=xxKleopatraxx
-Name[zh_CN]=Kleopatra
-Name[zh_TW]=Kleopatra
+
GenericName=Certificate Manager and Unified Crypto GUI
-GenericName[bs]=Upravitelj certifikata i grafičko okruženje za Unified Crypto
-GenericName[ca]=Gestor de certificats i IGU criptogràfica unificada
-GenericName[ca@valencia]=Gestor de certificats i IGU criptogràfica unificada
-GenericName[cs]=Správce certifikátů a rozhraní pro šifrování
-GenericName[da]=Certifikathåndtering og forenet krypterings-GUI
-GenericName[de]=Zertifikatsverwaltung und Kryptografie-Oberfläche
-GenericName[el]=Περιβάλλον διαχείρισης πιστοποιητικών και ενοποιημένης κρυπτογράφησης
-GenericName[en_GB]=Certificate Manager and Unified Crypto GUI
-GenericName[es]=Gestor de certificados e interfaz gráfica de usuario unificada de cifrado
-GenericName[et]=Sertifikaadihaldur ja ühendatud krüptimise graafiline kasutajaliides
-GenericName[fi]=Varmenteiden hallinta ja yhtenäinen salauskäyttöliittymä
-GenericName[fr]=Interface de gestion des certificats et cryptographie unifiée
-GenericName[gl]=Xestor de certificados e interface gráfica unificada de criptografí­a
-GenericName[hu]=Tanúsítványkezelő és egységes kriptográfiai kezelőfelület
-GenericName[ia]=Gerente de certificatos e interfacie unificate de Crypto
-GenericName[it]=Gestore di certificati e interfaccia grafica unificata di crittografia
-GenericName[ja]=証明書マネージャと、統合された暗号 GUI
-GenericName[kk]=Куәлік менеджері мен шифрлау интерфейсі
-GenericName[km]=កម្មវិធី​គ្រប់គ្រង​វិញ្ញាបនបត្រ និង​ Unified Crypto GUI
-GenericName[lt]=Liudijimų tvarkytuvė ir jungtinė kriptografijos grafinė sąsaja
-GenericName[lv]=Sertifikātu pārvaldnieks un vienota kriptofgrāfijas saskarne
-GenericName[mr]=प्रमाणपत्र व्यवस्थापक व एकत्रित क्रिप्टो GUI
-GenericName[nb]=Sertifikatbehandler og forent krypto-GUI
-GenericName[nds]=Zertifikatenpleger un eenheitlich Verslötel-Böversiet
-GenericName[nl]=Certificaatbeheer en GUI voor Unified Crypto
-GenericName[nn]=Sertifikathandsamar og sameina krypteringsgrensesnitt
-GenericName[pa]=ਸਰਟੀਫਿਕੇਟ ਮੈਨੇਜਰ ਅਤੇ ਇੱਕ ਕ੍ਰਿਪਟੂ GUI
-GenericName[pl]=Zarządzanie certyfikatami i zunifikowane GUI kryptograficzne
-GenericName[pt]=Gestor de Certificados e GUI Unificada de Criptografia
-GenericName[pt_BR]=Gerenciador de certificados e interface gráfica de criptografia unificada
-GenericName[ro]=Gestionar de certificate și interfață de criptare unificată
-GenericName[ru]=Управление сертификатами
-GenericName[sk]=Správca certifikátov a unifikované šifrovacie grafické rozhranie
-GenericName[sl]=Upravljalnik potrdil in enoten šifrirni vmesnik
-GenericName[sr]=Менаџер сертификата и обједињено сучеље за шифровање
-GenericName[sr@ijekavian]=Менаџер сертификата и обједињено сучеље за шифровање
-GenericName[sr@ijekavianlatin]=Menadžer sertifikata i objedinjeno sučelje za šifrovanje
-GenericName[sr@latin]=Menadžer sertifikata i objedinjeno sučelje za šifrovanje
-GenericName[sv]=Certifikathantering och gemensamt grafiskt användargränssnitt för kryptering
-GenericName[tr]=Sertifika Yöneticisi ve Birleşik Şifreleme Arayüzü
-GenericName[ug]=گۇۋاھنامە باشقۇرغۇ ۋەبىرلىككە كەلگەن شىفىرلاش گرافىكىلىق ئارايۈزى
-GenericName[uk]=Засіб для керування сертифікатами і уніфікований графічний інтерфейс шифрування
-GenericName[wa]=GUI manaedjeu d' acertineures eyet d' ecriptaedje unifyî
-GenericName[x-test]=xxCertificate Manager and Unified Crypto GUIxx
-GenericName[zh_CN]=证书管理器和统一的密钥操作界面
-GenericName[zh_TW]=憑證管理與統一加密介面
+
Terminal=false
X-TDE-StartupNotify=true
X-DocPath=kleopatra/index.html
diff --git a/certmanager/kleopatra_import.desktop b/certmanager/kleopatra_import.desktop
index a4264852..9429b889 100644
--- a/certmanager/kleopatra_import.desktop
+++ b/certmanager/kleopatra_import.desktop
@@ -1,9 +1,6 @@
[Desktop Entry]
Name=Kleopatra
-Name[is]=Kleópatra
-Name[mk]=Клеопатра
-Name[ne]=क्लेओपत्र
-Name[ta]=க்ளியோபட்ரா
+
Type=Application
Exec=kleopatra --import-certificate %u
Icon=kleopatra
diff --git a/certmanager/kwatchgnupg/kwatchgnupgconfig.cpp b/certmanager/kwatchgnupg/kwatchgnupgconfig.cpp
index 6b186178..25b7dc06 100644
--- a/certmanager/kwatchgnupg/kwatchgnupgconfig.cpp
+++ b/certmanager/kwatchgnupg/kwatchgnupgconfig.cpp
@@ -93,13 +93,13 @@ KWatchGnuPGConfig::KWatchGnuPGConfig( TQWidget* parent, const char* name )
mExeED = new KURLRequester( w );
glay->addWidget( new TQLabel( mExeED, i18n("&Executable:"), w ), row, 0 );
glay->addWidget( mExeED, row, 1 );
- connect( mExeED, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(slotChanged()) );
+ connect( mExeED, TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(slotChanged()) );
++row;
mSocketED = new KURLRequester( w );
glay->addWidget( new TQLabel( mSocketED, i18n("&Socket:"), w ), row, 0 );
glay->addWidget( mSocketED, row, 1 );
- connect( mSocketED, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(slotChanged()) );
+ connect( mSocketED, TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(slotChanged()) );
++row;
mLogLevelCB = new TQComboBox( false, w );
@@ -110,7 +110,7 @@ KWatchGnuPGConfig::KWatchGnuPGConfig( TQWidget* parent, const char* name )
mLogLevelCB->insertItem( i18n("Guru") );
glay->addWidget( new TQLabel( mLogLevelCB, i18n("Default &log level:"), w ), row, 0 );
glay->addWidget( mLogLevelCB, row, 1 );
- connect( mLogLevelCB, TQT_SIGNAL(activated(int)), TQT_SLOT(slotChanged()) );
+ connect( mLogLevelCB, TQ_SIGNAL(activated(int)), TQ_SLOT(slotChanged()) );
vlay->addWidget( group );
@@ -134,21 +134,21 @@ KWatchGnuPGConfig::KWatchGnuPGConfig( TQWidget* parent, const char* name )
TQPushButton * button = new TQPushButton( i18n("Set &Unlimited"), w );
glay->addWidget( button, row, 2 );
- connect( mLoglenSB, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotChanged()) );
- connect( button, TQT_SIGNAL(clicked()), TQT_SLOT(slotSetHistorySizeUnlimited()) );
+ connect( mLoglenSB, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(slotChanged()) );
+ connect( button, TQ_SIGNAL(clicked()), TQ_SLOT(slotSetHistorySizeUnlimited()) );
++row;
mWordWrapCB = new TQCheckBox( i18n("Enable &word wrapping"), w );
mWordWrapCB->hide(); // TQTextEdit doesn't support word wrapping in LogText mode
glay->addMultiCellWidget( mWordWrapCB, row, row, 0, 2 );
- connect( mWordWrapCB, TQT_SIGNAL(clicked()), TQT_SLOT(slotChanged()) );
+ connect( mWordWrapCB, TQ_SIGNAL(clicked()), TQ_SLOT(slotChanged()) );
vlay->addWidget( group );
vlay->addStretch( 1 );
- connect( this, TQT_SIGNAL(applyClicked()), TQT_SLOT(slotSave()) );
- connect( this, TQT_SIGNAL(okClicked()), TQT_SLOT(slotSave()) );
+ connect( this, TQ_SIGNAL(applyClicked()), TQ_SLOT(slotSave()) );
+ connect( this, TQ_SIGNAL(okClicked()), TQ_SLOT(slotSave()) );
}
void KWatchGnuPGConfig::slotSetHistorySizeUnlimited() {
diff --git a/certmanager/kwatchgnupg/kwatchgnupgconfig.h b/certmanager/kwatchgnupg/kwatchgnupgconfig.h
index 3a58a99a..09fc36a2 100644
--- a/certmanager/kwatchgnupg/kwatchgnupgconfig.h
+++ b/certmanager/kwatchgnupg/kwatchgnupgconfig.h
@@ -41,7 +41,7 @@ class TQSpinBox;
class KURLRequester;
class KWatchGnuPGConfig : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
KWatchGnuPGConfig( TQWidget* parent, const char* name = 0 );
diff --git a/certmanager/kwatchgnupg/kwatchgnupgmainwin.cpp b/certmanager/kwatchgnupg/kwatchgnupgmainwin.cpp
index d02a2fad..ef189a6e 100644
--- a/certmanager/kwatchgnupg/kwatchgnupgmainwin.cpp
+++ b/certmanager/kwatchgnupg/kwatchgnupgmainwin.cpp
@@ -69,16 +69,16 @@ KWatchGnuPGMainWindow::KWatchGnuPGMainWindow( TQWidget* parent, const char* name
setCentralWidget( mCentralWidget );
mWatcher = new KProcIO( TQTextCodec::codecForMib( 106 /*utf-8*/ ) );
- connect( mWatcher, TQT_SIGNAL( processExited(TDEProcess*) ),
- this, TQT_SLOT( slotWatcherExited() ) );
- connect( mWatcher, TQT_SIGNAL( readReady(KProcIO*) ),
- this, TQT_SLOT( slotReadStdout() ) );
+ connect( mWatcher, TQ_SIGNAL( processExited(TDEProcess*) ),
+ this, TQ_SLOT( slotWatcherExited() ) );
+ connect( mWatcher, TQ_SIGNAL( readReady(KProcIO*) ),
+ this, TQ_SLOT( slotReadStdout() ) );
slotReadConfig();
mSysTray = new KWatchGnuPGTray( this );
mSysTray->show();
- connect( mSysTray, TQT_SIGNAL( quitSelected() ),
- this, TQT_SLOT( slotQuit() ) );
+ connect( mSysTray, TQ_SIGNAL( quitSelected() ),
+ this, TQ_SLOT( slotQuit() ) );
setAutoSaveSettings();
}
@@ -90,24 +90,24 @@ KWatchGnuPGMainWindow::~KWatchGnuPGMainWindow()
void KWatchGnuPGMainWindow::slotClear()
{
mCentralWidget->clear();
- mCentralWidget->append( tqtr("[%1] Log cleared").arg( TQDateTime::currentDateTime().toString(Qt::ISODate) ) );
+ mCentralWidget->append( i18n("[%1] Log cleared").arg( TQDateTime::currentDateTime().toString(TQt::ISODate) ) );
}
void KWatchGnuPGMainWindow::createActions()
{
(void)new TDEAction( i18n("C&lear History"), "history_clear", CTRL+Key_L,
- TQT_TQOBJECT(this), TQT_SLOT( slotClear() ),
+ this, TQ_SLOT( slotClear() ),
actionCollection(), "clear_log" );
- (void)KStdAction::saveAs( TQT_TQOBJECT(this), TQT_SLOT(slotSaveAs()), actionCollection() );
- (void)KStdAction::close( TQT_TQOBJECT(this), TQT_SLOT(close()), actionCollection() );
- (void)KStdAction::quit( TQT_TQOBJECT(this), TQT_SLOT(slotQuit()), actionCollection() );
- (void)KStdAction::preferences( TQT_TQOBJECT(this), TQT_SLOT(slotConfigure()), actionCollection() );
- (void)KStdAction::keyBindings(TQT_TQOBJECT(this), TQT_SLOT(configureShortcuts()), actionCollection());
- (void)KStdAction::configureToolbars(TQT_TQOBJECT(this), TQT_SLOT(slotConfigureToolbars()), actionCollection());
+ (void)KStdAction::saveAs( this, TQ_SLOT(slotSaveAs()), actionCollection() );
+ (void)KStdAction::close( this, TQ_SLOT(close()), actionCollection() );
+ (void)KStdAction::quit( this, TQ_SLOT(slotQuit()), actionCollection() );
+ (void)KStdAction::preferences( this, TQ_SLOT(slotConfigure()), actionCollection() );
+ (void)KStdAction::keyBindings(this, TQ_SLOT(configureShortcuts()), actionCollection());
+ (void)KStdAction::configureToolbars(this, TQ_SLOT(slotConfigureToolbars()), actionCollection());
#if 0
(void)new TDEAction( i18n("Configure KWatchGnuPG..."), TQString::fromLatin1("configure"),
- 0, this, TQT_SLOT( slotConfigure() ),
+ 0, this, TQ_SLOT( slotConfigure() ),
actionCollection(), "configure" );
#endif
@@ -127,15 +127,15 @@ void KWatchGnuPGMainWindow::slotConfigureToolbars()
void KWatchGnuPGMainWindow::startWatcher()
{
- disconnect( mWatcher, TQT_SIGNAL( processExited(TDEProcess*) ),
- this, TQT_SLOT( slotWatcherExited() ) );
+ disconnect( mWatcher, TQ_SIGNAL( processExited(TDEProcess*) ),
+ this, TQ_SLOT( slotWatcherExited() ) );
if( mWatcher->isRunning() ) {
mWatcher->kill();
while( mWatcher->isRunning() ) {
kapp->eventLoop()->processEvents(TQEventLoop::ExcludeUserInput);
}
- mCentralWidget->append(tqtr("[%1] Log stopped")
- .arg( TQDateTime::currentDateTime().toString(Qt::ISODate)));
+ mCentralWidget->append(i18n("[%1] Log stopped")
+ .arg( TQDateTime::currentDateTime().toString(TQt::ISODate)));
}
mWatcher->clearArguments();
TDEConfig* config = kapp->config();
@@ -147,11 +147,11 @@ void KWatchGnuPGMainWindow::startWatcher()
if( !mWatcher->start() ) {
KMessageBox::sorry( this, i18n("The watchgnupg logging process could not be started.\nPlease install watchgnupg somewhere in your $PATH.\nThis log window is now completely useless." ) );
} else {
- mCentralWidget->append( tqtr("[%1] Log started")
- .arg( TQDateTime::currentDateTime().toString(Qt::ISODate) ) );
+ mCentralWidget->append( i18n("[%1] Log started")
+ .arg( TQDateTime::currentDateTime().toString(TQt::ISODate) ) );
}
- connect( mWatcher, TQT_SIGNAL( processExited(TDEProcess*) ),
- this, TQT_SLOT( slotWatcherExited() ) );
+ connect( mWatcher, TQ_SIGNAL( processExited(TDEProcess*) ),
+ this, TQ_SLOT( slotWatcherExited() ) );
}
void KWatchGnuPGMainWindow::setGnuPGConfig()
@@ -213,7 +213,7 @@ void KWatchGnuPGMainWindow::slotReadStdout()
mSysTray->setAttention(true);
}
}
- TQTimer::singleShot( 0, this, TQT_SLOT(slotAckRead()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(slotAckRead()) );
}
void KWatchGnuPGMainWindow::slotAckRead() {
@@ -251,8 +251,8 @@ void KWatchGnuPGMainWindow::slotSaveAs()
void KWatchGnuPGMainWindow::slotQuit()
{
- disconnect( mWatcher, TQT_SIGNAL( processExited(TDEProcess*) ),
- this, TQT_SLOT( slotWatcherExited() ) );
+ disconnect( mWatcher, TQ_SIGNAL( processExited(TDEProcess*) ),
+ this, TQ_SLOT( slotWatcherExited() ) );
mWatcher->kill();
kapp->quit();
}
@@ -261,8 +261,8 @@ void KWatchGnuPGMainWindow::slotConfigure()
{
if( !mConfig ) {
mConfig = new KWatchGnuPGConfig( this, "config dialog" );
- connect( mConfig, TQT_SIGNAL( reconfigure() ),
- this, TQT_SLOT( slotReadConfig() ) );
+ connect( mConfig, TQ_SIGNAL( reconfigure() ),
+ this, TQ_SLOT( slotReadConfig() ) );
}
mConfig->loadConfig();
mConfig->exec();
diff --git a/certmanager/kwatchgnupg/kwatchgnupgmainwin.h b/certmanager/kwatchgnupg/kwatchgnupgmainwin.h
index 7df54051..6d08fe05 100644
--- a/certmanager/kwatchgnupg/kwatchgnupgmainwin.h
+++ b/certmanager/kwatchgnupg/kwatchgnupgmainwin.h
@@ -41,7 +41,7 @@ class KProcIO;
class TQTextEdit;
class KWatchGnuPGMainWindow : public TDEMainWindow {
- Q_OBJECT
+ TQ_OBJECT
public:
KWatchGnuPGMainWindow( TQWidget* parent = 0, const char* name = 0 );
diff --git a/certmanager/kwatchgnupg/tray.h b/certmanager/kwatchgnupg/tray.h
index eb438aa3..f9cc76a1 100644
--- a/certmanager/kwatchgnupg/tray.h
+++ b/certmanager/kwatchgnupg/tray.h
@@ -39,7 +39,7 @@
class KWatchGnuPGMainWindow;
class KWatchGnuPGTray : public KSystemTray {
- Q_OBJECT
+ TQ_OBJECT
public:
KWatchGnuPGTray( KWatchGnuPGMainWindow* mainwin );
diff --git a/certmanager/lib/CMakeLists.txt b/certmanager/lib/CMakeLists.txt
index 74dc46ea..92d80925 100644
--- a/certmanager/lib/CMakeLists.txt
+++ b/certmanager/lib/CMakeLists.txt
@@ -32,7 +32,12 @@ link_directories(
##### other data ################################
-install( FILES libkleopatrarc.desktop DESTINATION ${CONFIG_INSTALL_DIR} RENAME libkleopatrarc )
+tde_create_translated_desktop(
+ SOURCE libkleopatrarc.desktop
+ DESTINATION ${CONFIG_INSTALL_DIR}
+ OUTPUT_NAME libkleopatrarc
+ PO_DIR certmanager-desktops
+)
##### kleopatra (shared) ########################
diff --git a/certmanager/lib/backends/chiasmus/chiasmusbackend.cpp b/certmanager/lib/backends/chiasmus/chiasmusbackend.cpp
index e89070f3..d5083b96 100644
--- a/certmanager/lib/backends/chiasmus/chiasmusbackend.cpp
+++ b/certmanager/lib/backends/chiasmus/chiasmusbackend.cpp
@@ -442,7 +442,7 @@ bool Kleo::ChiasmusBackend::checkForSMIME( TQString * reason ) const {
bool Kleo::ChiasmusBackend::checkForChiasmus( TQString * reason ) const {
// kills the protocol instance when we return false:
- std::auto_ptr<Protocol> tmp( mProtocol );
+ std::unique_ptr<Protocol> tmp( mProtocol );
mProtocol = 0;
const CryptoConfigEntry * path = config()->entry( "Chiasmus", "General", "path" );
diff --git a/certmanager/lib/backends/chiasmus/chiasmusbackend.h b/certmanager/lib/backends/chiasmus/chiasmusbackend.h
index 1619f9ea..17f7572c 100644
--- a/certmanager/lib/backends/chiasmus/chiasmusbackend.h
+++ b/certmanager/lib/backends/chiasmus/chiasmusbackend.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
chiasmusbackend.h
This file is part of libkleopatra, the KDE keymanagement library
diff --git a/certmanager/lib/backends/chiasmus/chiasmusjob.cpp b/certmanager/lib/backends/chiasmus/chiasmusjob.cpp
index 265d759b..5c49478e 100644
--- a/certmanager/lib/backends/chiasmus/chiasmusjob.cpp
+++ b/certmanager/lib/backends/chiasmus/chiasmusjob.cpp
@@ -90,7 +90,7 @@ GpgME::Error Kleo::ChiasmusJob::setup() {
: SymCryptRunProcessBase::Decrypt,
this, "symcryptrun" );
TQTimer::singleShot( timeoutEntry->uintValue() * 1000, this,
- TQT_SLOT( slotTimeout() ) );
+ TQ_SLOT( slotTimeout() ) );
return 0;
}
@@ -110,8 +110,8 @@ GpgME::Error Kleo::ChiasmusJob::start() {
if ( const GpgME::Error err = setup() )
return mError = err;
- connect( mSymCryptRun, TQT_SIGNAL(processExited(TDEProcess*)),
- this, TQT_SLOT(slotProcessExited(TDEProcess*)) );
+ connect( mSymCryptRun, TQ_SIGNAL(processExited(TDEProcess*)),
+ this, TQ_SLOT(slotProcessExited(TDEProcess*)) );
if ( !mSymCryptRun->launch( mInput ) )
return mError = gpg_error( GPG_ERR_ENOENT ); // what else?
diff --git a/certmanager/lib/backends/chiasmus/chiasmusjob.h b/certmanager/lib/backends/chiasmus/chiasmusjob.h
index 1ca6ba19..d46d530d 100644
--- a/certmanager/lib/backends/chiasmus/chiasmusjob.h
+++ b/certmanager/lib/backends/chiasmus/chiasmusjob.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
chiasmusjob.h
This file is part of libkleopatra, the KDE keymanagement library
@@ -50,7 +50,7 @@ namespace Kleo {
@short SpecialJob for Chiasmus operations
*/
class ChiasmusJob : public Kleo::SpecialJob {
- Q_OBJECT
+ TQ_OBJECT
TQ_ENUMS( Mode )
TQ_PROPERTY( Mode mode READ mode )
diff --git a/certmanager/lib/backends/chiasmus/chiasmuslibrary.h b/certmanager/lib/backends/chiasmus/chiasmuslibrary.h
index fa1adc73..3a3536af 100644
--- a/certmanager/lib/backends/chiasmus/chiasmuslibrary.h
+++ b/certmanager/lib/backends/chiasmus/chiasmuslibrary.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
chiasmuslibrary.h
This file is part of libkleopatra, the KDE keymanagement library
diff --git a/certmanager/lib/backends/chiasmus/obtainkeysjob.cpp b/certmanager/lib/backends/chiasmus/obtainkeysjob.cpp
index d7ae22c1..90f51243 100644
--- a/certmanager/lib/backends/chiasmus/obtainkeysjob.cpp
+++ b/certmanager/lib/backends/chiasmus/obtainkeysjob.cpp
@@ -70,7 +70,7 @@ Kleo::ObtainKeysJob::ObtainKeysJob()
Kleo::ObtainKeysJob::~ObtainKeysJob() {}
GpgME::Error Kleo::ObtainKeysJob::start() {
- TQTimer::singleShot( 0, this, TQT_SLOT(slotPerform()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(slotPerform()) );
return mError = 0;
}
@@ -109,7 +109,7 @@ void Kleo::ObtainKeysJob::slotPerform( bool async ) {
++mIndex;
if ( async )
- TQTimer::singleShot( 0, this, TQT_SLOT(slotPerform()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(slotPerform()) );
else
slotPerform( false );
}
diff --git a/certmanager/lib/backends/chiasmus/obtainkeysjob.h b/certmanager/lib/backends/chiasmus/obtainkeysjob.h
index da19257b..29557c14 100644
--- a/certmanager/lib/backends/chiasmus/obtainkeysjob.h
+++ b/certmanager/lib/backends/chiasmus/obtainkeysjob.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
obtainkeysjob.h
This file is part of libkleopatra, the KDE keymanagement library
@@ -63,7 +63,7 @@ namespace Kleo {
absolute filenames of the keys found in the configured key files.
*/
class ObtainKeysJob : public Kleo::SpecialJob {
- Q_OBJECT
+ TQ_OBJECT
TQ_PROPERTY( TQStringList result READ result )
public:
diff --git a/certmanager/lib/backends/chiasmus/symcryptrunprocessbase.cpp b/certmanager/lib/backends/chiasmus/symcryptrunprocessbase.cpp
index 9391f023..34ac1d66 100644
--- a/certmanager/lib/backends/chiasmus/symcryptrunprocessbase.cpp
+++ b/certmanager/lib/backends/chiasmus/symcryptrunprocessbase.cpp
@@ -58,10 +58,10 @@ Kleo::SymCryptRunProcessBase::SymCryptRunProcessBase( const TQString & class_, c
Kleo::SymCryptRunProcessBase::~SymCryptRunProcessBase() {}
bool Kleo::SymCryptRunProcessBase::launch( const TQByteArray & input, RunMode rm ) {
- connect( this, TQT_SIGNAL(receivedStdout(TDEProcess*,char*,int)),
- this, TQT_SLOT(slotReceivedStdout(TDEProcess*,char*,int)) );
- connect( this, TQT_SIGNAL(receivedStderr(TDEProcess*,char*,int)),
- this, TQT_SLOT(slotReceivedStderr(TDEProcess*,char*,int)) );
+ connect( this, TQ_SIGNAL(receivedStdout(TDEProcess*,char*,int)),
+ this, TQ_SLOT(slotReceivedStdout(TDEProcess*,char*,int)) );
+ connect( this, TQ_SIGNAL(receivedStderr(TDEProcess*,char*,int)),
+ this, TQ_SLOT(slotReceivedStderr(TDEProcess*,char*,int)) );
if ( rm == Block ) {
KTempFile tempfile;
tempfile.setAutoDelete( true );
@@ -80,7 +80,7 @@ bool Kleo::SymCryptRunProcessBase::launch( const TQByteArray & input, RunMode rm
return ok;
mInput = input.copy();
writeStdin( mInput.begin(), mInput.size() );
- connect( this, TQT_SIGNAL(wroteStdin(TDEProcess*)), this, TQT_SLOT(closeStdin()) );
+ connect( this, TQ_SIGNAL(wroteStdin(TDEProcess*)), this, TQ_SLOT(closeStdin()) );
return true;
}
}
diff --git a/certmanager/lib/backends/chiasmus/symcryptrunprocessbase.h b/certmanager/lib/backends/chiasmus/symcryptrunprocessbase.h
index 36866e13..5f0c69a3 100644
--- a/certmanager/lib/backends/chiasmus/symcryptrunprocessbase.h
+++ b/certmanager/lib/backends/chiasmus/symcryptrunprocessbase.h
@@ -42,7 +42,7 @@ class TQString;
namespace Kleo {
class SymCryptRunProcessBase : public TDEProcess {
- Q_OBJECT
+ TQ_OBJECT
public:
enum Operation {
diff --git a/certmanager/lib/backends/kpgp/gpg1backend.h b/certmanager/lib/backends/kpgp/gpg1backend.h
index a1ff723c..96729f33 100644
--- a/certmanager/lib/backends/kpgp/gpg1backend.h
+++ b/certmanager/lib/backends/kpgp/gpg1backend.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
gpg1backend.h
This file is part of libkleopatra, the KDE keymanagement library
diff --git a/certmanager/lib/backends/kpgp/kpgpbackendbase.cpp b/certmanager/lib/backends/kpgp/kpgpbackendbase.cpp
index b5b006b5..dfa88af6 100644
--- a/certmanager/lib/backends/kpgp/kpgpbackendbase.cpp
+++ b/certmanager/lib/backends/kpgp/kpgpbackendbase.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
kpgpbackendbase.cpp
This file is part of libkleopatra, the KDE keymanagement library
diff --git a/certmanager/lib/backends/kpgp/kpgpbackendbase.h b/certmanager/lib/backends/kpgp/kpgpbackendbase.h
index 6fdf29bf..d9dbf579 100644
--- a/certmanager/lib/backends/kpgp/kpgpbackendbase.h
+++ b/certmanager/lib/backends/kpgp/kpgpbackendbase.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
kpgpbackendbase.h
This file is part of libkleopatra, the KDE keymanagement library
diff --git a/certmanager/lib/backends/kpgp/kpgpkeylistjob.cpp b/certmanager/lib/backends/kpgp/kpgpkeylistjob.cpp
index 3d28ac4b..5ab83715 100644
--- a/certmanager/lib/backends/kpgp/kpgpkeylistjob.cpp
+++ b/certmanager/lib/backends/kpgp/kpgpkeylistjob.cpp
@@ -264,7 +264,7 @@ GpgME::Error Kleo::KpgpKeyListJob::start( const TQStringList & patterns,
bool secretOnly ) {
mPatterns = patterns;
mSecretOnly = secretOnly;
- TQTimer::singleShot( 0, this, TQT_SLOT( slotDoIt() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotDoIt() ) );
return GpgME::Error( 0 );
}
diff --git a/certmanager/lib/backends/kpgp/kpgpkeylistjob.h b/certmanager/lib/backends/kpgp/kpgpkeylistjob.h
index d126ea67..3ab04cf3 100644
--- a/certmanager/lib/backends/kpgp/kpgpkeylistjob.h
+++ b/certmanager/lib/backends/kpgp/kpgpkeylistjob.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++ -*-
+/*
kpgpkeylistjob.h
This file is part of libkleopatra, the KDE keymanagement library
@@ -50,7 +50,7 @@ namespace Kpgp {
namespace Kleo {
class KpgpKeyListJob : public KeyListJob {
- Q_OBJECT
+ TQ_OBJECT
public:
KpgpKeyListJob( Kpgp::Base * pgpBase );
diff --git a/certmanager/lib/backends/kpgp/kpgpwrapper.cpp b/certmanager/lib/backends/kpgp/kpgpwrapper.cpp
index 71c08293..6778f45d 100644
--- a/certmanager/lib/backends/kpgp/kpgpwrapper.cpp
+++ b/certmanager/lib/backends/kpgp/kpgpwrapper.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
kpgpwrapper.cpp
This file is part of libkleopatra, the KDE keymanagement library
diff --git a/certmanager/lib/backends/kpgp/kpgpwrapper.h b/certmanager/lib/backends/kpgp/kpgpwrapper.h
index 8dc7dbc2..7776e98c 100644
--- a/certmanager/lib/backends/kpgp/kpgpwrapper.h
+++ b/certmanager/lib/backends/kpgp/kpgpwrapper.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
kpgpwrapper.h
This file is part of libkleopatra, the KDE keymanagement library
diff --git a/certmanager/lib/backends/kpgp/pgp2backend.h b/certmanager/lib/backends/kpgp/pgp2backend.h
index b486bfd6..622566e1 100644
--- a/certmanager/lib/backends/kpgp/pgp2backend.h
+++ b/certmanager/lib/backends/kpgp/pgp2backend.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
pgp2backend.h
This file is part of libkleopatra, the KDE keymanagement library
diff --git a/certmanager/lib/backends/kpgp/pgp5backend.h b/certmanager/lib/backends/kpgp/pgp5backend.h
index 2db55932..b02183de 100644
--- a/certmanager/lib/backends/kpgp/pgp5backend.h
+++ b/certmanager/lib/backends/kpgp/pgp5backend.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
pgp5backend.h
This file is part of libkleopatra, the KDE keymanagement library
diff --git a/certmanager/lib/backends/kpgp/pgp6backend.h b/certmanager/lib/backends/kpgp/pgp6backend.h
index c5f9eeff..46494244 100644
--- a/certmanager/lib/backends/kpgp/pgp6backend.h
+++ b/certmanager/lib/backends/kpgp/pgp6backend.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
pgp6backend.h
This file is part of libkleopatra, the KDE keymanagement library
diff --git a/certmanager/lib/backends/qgpgme/gnupgprocessbase.cpp b/certmanager/lib/backends/qgpgme/gnupgprocessbase.cpp
index bfd00ac9..e0da7eca 100644
--- a/certmanager/lib/backends/qgpgme/gnupgprocessbase.cpp
+++ b/certmanager/lib/backends/qgpgme/gnupgprocessbase.cpp
@@ -113,7 +113,7 @@ int Kleo::GnuPGProcessBase::commSetupDoneP() {
if ( d->usetStatusFD ) {
::close( d->statusFD[1] ); // close the input end of the pipe, we're the reader
d->statnot = new TQSocketNotifier( d->statusFD[0], TQSocketNotifier::Read, this );
- connect( d->statnot, TQT_SIGNAL(activated(int)), TQT_SLOT(slotChildStatus(int)) );
+ connect( d->statnot, TQ_SIGNAL(activated(int)), TQ_SLOT(slotChildStatus(int)) );
}
return TDEProcess::commSetupDoneP();
}
diff --git a/certmanager/lib/backends/qgpgme/gnupgprocessbase.h b/certmanager/lib/backends/qgpgme/gnupgprocessbase.h
index 528179a2..639c25ed 100644
--- a/certmanager/lib/backends/qgpgme/gnupgprocessbase.h
+++ b/certmanager/lib/backends/qgpgme/gnupgprocessbase.h
@@ -46,7 +46,7 @@ namespace Kleo {
* @author Marc Mutz <mutz@kde.org>
*/
class GnuPGProcessBase : public TDEProcess {
- Q_OBJECT
+ TQ_OBJECT
public:
GnuPGProcessBase( TQObject * parent=0, const char * name=0 );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmebackend.cpp b/certmanager/lib/backends/qgpgme/qgpgmebackend.cpp
index c38097ed..ee4128bf 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmebackend.cpp
+++ b/certmanager/lib/backends/qgpgme/qgpgmebackend.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
qgpgmebackend.cpp
This file is part of libkleopatra, the KDE keymanagement library
diff --git a/certmanager/lib/backends/qgpgme/qgpgmebackend.h b/certmanager/lib/backends/qgpgme/qgpgmebackend.h
index a23c08d4..9d6aca81 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmebackend.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmebackend.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
qgpgmebackend.h
This file is part of libkleopatra, the KDE keymanagement library
diff --git a/certmanager/lib/backends/qgpgme/qgpgmecryptoconfig.cpp b/certmanager/lib/backends/qgpgme/qgpgmecryptoconfig.cpp
index e73b4363..2b81c6b1 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmecryptoconfig.cpp
+++ b/certmanager/lib/backends/qgpgme/qgpgmecryptoconfig.cpp
@@ -75,8 +75,8 @@ void QGpgMECryptoConfig::runGpgConf( bool showErrors )
proc << "gpgconf"; // must be in the PATH
proc << "--list-components";
- TQObject::connect( &proc, TQT_SIGNAL( readReady(KProcIO*) ),
- this, TQT_SLOT( slotCollectStdOut(KProcIO*) ) );
+ TQObject::connect( &proc, TQ_SIGNAL( readReady(KProcIO*) ),
+ this, TQ_SLOT( slotCollectStdOut(KProcIO*) ) );
// run the process:
int rc = 0;
@@ -173,8 +173,8 @@ void QGpgMECryptoConfigComponent::runGpgConf()
//kdDebug(5150) << "Running gpgconf --list-options " << mName << endl;
- TQObject::connect( &proc, TQT_SIGNAL( readReady(KProcIO*) ),
- this, TQT_SLOT( slotCollectStdOut(KProcIO*) ) );
+ TQObject::connect( &proc, TQ_SIGNAL( readReady(KProcIO*) ),
+ this, TQ_SLOT( slotCollectStdOut(KProcIO*) ) );
mCurrentGroup = 0;
// run the process:
diff --git a/certmanager/lib/backends/qgpgme/qgpgmecryptoconfig.h b/certmanager/lib/backends/qgpgme/qgpgmecryptoconfig.h
index 712ce24e..710fa168 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmecryptoconfig.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmecryptoconfig.h
@@ -48,7 +48,7 @@ class QGpgMECryptoConfigEntry;
*/
class QGpgMECryptoConfig : public TQObject, public Kleo::CryptoConfig {
- Q_OBJECT
+ TQ_OBJECT
public:
/**
@@ -80,7 +80,7 @@ class QGpgMECryptoConfigGroup;
/// For docu, see kleo/cryptoconfig.h
class QGpgMECryptoConfigComponent : public TQObject, public Kleo::CryptoConfigComponent {
- Q_OBJECT
+ TQ_OBJECT
public:
QGpgMECryptoConfigComponent( QGpgMECryptoConfig*, const TQString& name, const TQString& description );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmedecryptjob.h b/certmanager/lib/backends/qgpgme/qgpgmedecryptjob.h
index e58ea326..ea3454fe 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmedecryptjob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmedecryptjob.h
@@ -47,7 +47,7 @@ namespace GpgME {
namespace Kleo {
class QGpgMEDecryptJob : public DecryptJob, private QGpgMEJob {
- Q_OBJECT
+ TQ_OBJECT
TQGPGME_JOB
public:
QGpgMEDecryptJob( GpgME::Context * context );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmedecryptverifyjob.h b/certmanager/lib/backends/qgpgme/qgpgmedecryptverifyjob.h
index 79ff268b..67cdf357 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmedecryptverifyjob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmedecryptverifyjob.h
@@ -38,7 +38,7 @@
#include "qgpgmejob.h"
#include <tqcstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
class Error;
@@ -48,7 +48,7 @@ namespace GpgME {
namespace Kleo {
class KDE_EXPORT QGpgMEDecryptVerifyJob : public DecryptVerifyJob, private QGpgMEJob {
- Q_OBJECT
+ TQ_OBJECT
TQGPGME_JOB
public:
QGpgMEDecryptVerifyJob( GpgME::Context * context );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmedeletejob.h b/certmanager/lib/backends/qgpgme/qgpgmedeletejob.h
index 20dca974..c867b855 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmedeletejob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmedeletejob.h
@@ -46,7 +46,7 @@ namespace GpgME {
namespace Kleo {
class QGpgMEDeleteJob : public DeleteJob, private QGpgMEJob {
- Q_OBJECT
+ TQ_OBJECT
TQGPGME_JOB
public:
QGpgMEDeleteJob( GpgME::Context * context );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmedownloadjob.h b/certmanager/lib/backends/qgpgme/qgpgmedownloadjob.h
index 5317afd4..1facc509 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmedownloadjob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmedownloadjob.h
@@ -45,7 +45,7 @@ namespace GpgME {
namespace Kleo {
class QGpgMEDownloadJob : public DownloadJob, private QGpgMEJob {
- Q_OBJECT
+ TQ_OBJECT
TQGPGME_JOB
public:
QGpgMEDownloadJob( GpgME::Context * context );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmeencryptjob.h b/certmanager/lib/backends/qgpgme/qgpgmeencryptjob.h
index 80b5e467..13b7546c 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmeencryptjob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmeencryptjob.h
@@ -50,7 +50,7 @@ namespace GpgME {
namespace Kleo {
class QGpgMEEncryptJob : public EncryptJob, private QGpgMEJob {
- Q_OBJECT
+ TQ_OBJECT
TQGPGME_JOB
public:
QGpgMEEncryptJob( GpgME::Context * context );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmeexportjob.h b/certmanager/lib/backends/qgpgme/qgpgmeexportjob.h
index aa2e0c0a..7e427d6c 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmeexportjob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmeexportjob.h
@@ -47,7 +47,7 @@ namespace GpgME {
namespace Kleo {
class QGpgMEExportJob : public ExportJob, private QGpgMEJob {
- Q_OBJECT
+ TQ_OBJECT
TQGPGME_JOB
public:
QGpgMEExportJob( GpgME::Context * context );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmeimportjob.h b/certmanager/lib/backends/qgpgme/qgpgmeimportjob.h
index 2324da6d..0a5ab681 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmeimportjob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmeimportjob.h
@@ -47,7 +47,7 @@ namespace GpgME {
namespace Kleo {
class QGpgMEImportJob : public ImportJob, private QGpgMEJob {
- Q_OBJECT
+ TQ_OBJECT
TQGPGME_JOB
public:
QGpgMEImportJob( GpgME::Context * context );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmejob.cpp b/certmanager/lib/backends/qgpgme/qgpgmejob.cpp
index 947a5258..71fe0b57 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmejob.cpp
+++ b/certmanager/lib/backends/qgpgme/qgpgmejob.cpp
@@ -96,8 +96,8 @@ Kleo::QGpgMEJob::QGpgMEJob( Kleo::Job * _this, GpgME::Context * context )
{
InvarianceChecker check( this );
assert( context );
- TQObject::connect( QGpgME::EventLoopInteractor::instance(), TQT_SIGNAL(aboutToDestroy()),
- _this, TQT_SLOT(slotCancel()) );
+ TQObject::connect( QGpgME::EventLoopInteractor::instance(), TQ_SIGNAL(aboutToDestroy()),
+ _this, TQ_SLOT(slotCancel()) );
context->setProgressProvider( this );
// (mmutz) work around a gpgme bug in versions at least <= 0.9.0.
// These versions will return GPG_ERR_NOT_IMPLEMENTED from
@@ -153,8 +153,8 @@ void Kleo::QGpgMEJob::deleteAllPatterns() {
void Kleo::QGpgMEJob::hookupContextToEventLoopInteractor() {
mCtx->setManagedByEventLoopInteractor( true );
TQObject::connect( QGpgME::EventLoopInteractor::instance(),
- TQT_SIGNAL(operationDoneEventSignal(GpgME::Context*,const GpgME::Error&)),
- mThis, TQT_SLOT(slotOperationDoneEvent(GpgME::Context*,const GpgME::Error&)) );
+ TQ_SIGNAL(operationDoneEventSignal(GpgME::Context*,const GpgME::Error&)),
+ mThis, TQ_SLOT(slotOperationDoneEvent(GpgME::Context*,const GpgME::Error&)) );
}
void Kleo::QGpgMEJob::setPatterns( const TQStringList & sl, bool allowEmpty ) {
diff --git a/certmanager/lib/backends/qgpgme/qgpgmejob.h b/certmanager/lib/backends/qgpgme/qgpgmejob.h
index 844ca974..64ce36bc 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmejob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmejob.h
@@ -43,7 +43,7 @@
#include <tqstring.h>
#include <vector>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
class Data;
diff --git a/certmanager/lib/backends/qgpgme/qgpgmekeygenerationjob.h b/certmanager/lib/backends/qgpgme/qgpgmekeygenerationjob.h
index c9e16474..6b3e6716 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmekeygenerationjob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmekeygenerationjob.h
@@ -36,7 +36,7 @@
#include <kleo/keygenerationjob.h>
#include "qgpgmejob.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
class Error;
@@ -52,7 +52,7 @@ namespace QGpgME {
namespace Kleo {
class KDE_EXPORT QGpgMEKeyGenerationJob : public KeyGenerationJob, private QGpgMEJob {
- Q_OBJECT
+ TQ_OBJECT
TQGPGME_JOB
public:
QGpgMEKeyGenerationJob( GpgME::Context * context );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmekeylistjob.cpp b/certmanager/lib/backends/qgpgme/qgpgmekeylistjob.cpp
index 5561625c..25edaf84 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmekeylistjob.cpp
+++ b/certmanager/lib/backends/qgpgme/qgpgmekeylistjob.cpp
@@ -79,8 +79,8 @@ GpgME::Error Kleo::QGpgMEKeyListJob::start( const TQStringList & pats, bool secr
hookupContextToEventLoopInteractor();
connect( QGpgME::EventLoopInteractor::instance(),
- TQT_SIGNAL(nextKeyEventSignal(GpgME::Context*,const GpgME::Key&)),
- TQT_SLOT(slotNextKeyEvent(GpgME::Context*,const GpgME::Key&)) );
+ TQ_SIGNAL(nextKeyEventSignal(GpgME::Context*,const GpgME::Key&)),
+ TQ_SLOT(slotNextKeyEvent(GpgME::Context*,const GpgME::Key&)) );
// The communication channel between gpgme and gpgsm is limited in
// the number of patterns that can be transported, but they won't
@@ -100,7 +100,7 @@ GpgME::Error Kleo::QGpgMEKeyListJob::start( const TQStringList & pats, bool secr
}
} else if ( err.code() == GPG_ERR_EOF ) {
kdDebug(5150) << "QGpgMEKeyListJob::start(): early end of keylisting, trying to fake an empty result" << endl;
- TQTimer::singleShot( 10, this, TQT_SLOT(slotFakeOperationDoneEvent()) );
+ TQTimer::singleShot( 10, this, TQ_SLOT(slotFakeOperationDoneEvent()) );
return GpgME::Error();
}
deleteLater();
diff --git a/certmanager/lib/backends/qgpgme/qgpgmekeylistjob.h b/certmanager/lib/backends/qgpgme/qgpgmekeylistjob.h
index 8e26d791..a62a7379 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmekeylistjob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmekeylistjob.h
@@ -48,7 +48,7 @@ namespace GpgME {
namespace Kleo {
class QGpgMEKeyListJob : public KeyListJob, private QGpgMEJob {
- Q_OBJECT
+ TQ_OBJECT
TQGPGME_JOB
public:
QGpgMEKeyListJob( GpgME::Context * context );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmeprogresstokenmapper.cpp b/certmanager/lib/backends/qgpgme/qgpgmeprogresstokenmapper.cpp
index bc0d232e..54d13358 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmeprogresstokenmapper.cpp
+++ b/certmanager/lib/backends/qgpgme/qgpgmeprogresstokenmapper.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
qgpgmeprogresstokenmapper.cpp
This file is part of libkleopatra, the KDE keymanagement library
diff --git a/certmanager/lib/backends/qgpgme/qgpgmerefreshkeysjob.cpp b/certmanager/lib/backends/qgpgme/qgpgmerefreshkeysjob.cpp
index 6d05e1ec..8088d28a 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmerefreshkeysjob.cpp
+++ b/certmanager/lib/backends/qgpgme/qgpgmerefreshkeysjob.cpp
@@ -107,12 +107,12 @@ GpgME::Error Kleo::QGpgMERefreshKeysJob::startAProcess() {
mProcess->setUsetStatusFD( true );
- connect( mProcess, TQT_SIGNAL(processExited(TDEProcess*)),
- TQT_SLOT(slotProcessExited(TDEProcess*)) );
- connect( mProcess, TQT_SIGNAL(receivedStderr(TDEProcess*,char*,int)),
- TQT_SLOT(slotStderr(TDEProcess*,char*,int)) );
- connect( mProcess, TQT_SIGNAL(status(Kleo::GnuPGProcessBase*,const TQString&,const TQStringList&)),
- TQT_SLOT(slotStatus(Kleo::GnuPGProcessBase*,const TQString&,const TQStringList&)) );
+ connect( mProcess, TQ_SIGNAL(processExited(TDEProcess*)),
+ TQ_SLOT(slotProcessExited(TDEProcess*)) );
+ connect( mProcess, TQ_SIGNAL(receivedStderr(TDEProcess*,char*,int)),
+ TQ_SLOT(slotStderr(TDEProcess*,char*,int)) );
+ connect( mProcess, TQ_SIGNAL(status(Kleo::GnuPGProcessBase*,const TQString&,const TQStringList&)),
+ TQ_SLOT(slotStatus(Kleo::GnuPGProcessBase*,const TQString&,const TQStringList&)) );
if ( !mProcess->start( TDEProcess::NotifyOnExit, TDEProcess::Stderr ) ) {
mError = gpg_err_make( GPG_ERR_SOURCE_GPGSM, GPG_ERR_ENOENT ); // what else?
diff --git a/certmanager/lib/backends/qgpgme/qgpgmerefreshkeysjob.h b/certmanager/lib/backends/qgpgme/qgpgmerefreshkeysjob.h
index ac160036..78c26ef3 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmerefreshkeysjob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmerefreshkeysjob.h
@@ -50,7 +50,7 @@ class TDEProcess;
namespace Kleo {
class QGpgMERefreshKeysJob : public RefreshKeysJob {
- Q_OBJECT
+ TQ_OBJECT
public:
QGpgMERefreshKeysJob();
diff --git a/certmanager/lib/backends/qgpgme/qgpgmesecretkeyexportjob.cpp b/certmanager/lib/backends/qgpgme/qgpgmesecretkeyexportjob.cpp
index f553c703..af72a539 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmesecretkeyexportjob.cpp
+++ b/certmanager/lib/backends/qgpgme/qgpgmesecretkeyexportjob.cpp
@@ -88,14 +88,14 @@ GpgME::Error Kleo::QGpgMESecretKeyExportJob::start( const TQStringList & pattern
mProcess->setUsetStatusFD( true );
- connect( mProcess, TQT_SIGNAL(processExited(TDEProcess*)),
- TQT_SLOT(slotProcessExited(TDEProcess*)) );
- connect( mProcess, TQT_SIGNAL(receivedStdout(TDEProcess*,char*,int)),
- TQT_SLOT(slotStdout(TDEProcess*,char*,int)) );
- connect( mProcess, TQT_SIGNAL(receivedStderr(TDEProcess*,char*,int)),
- TQT_SLOT(slotStderr(TDEProcess*,char*,int)) );
- connect( mProcess, TQT_SIGNAL(status(Kleo::GnuPGProcessBase*,const TQString&,const TQStringList&)),
- TQT_SLOT(slotStatus(Kleo::GnuPGProcessBase*,const TQString&,const TQStringList&)) );
+ connect( mProcess, TQ_SIGNAL(processExited(TDEProcess*)),
+ TQ_SLOT(slotProcessExited(TDEProcess*)) );
+ connect( mProcess, TQ_SIGNAL(receivedStdout(TDEProcess*,char*,int)),
+ TQ_SLOT(slotStdout(TDEProcess*,char*,int)) );
+ connect( mProcess, TQ_SIGNAL(receivedStderr(TDEProcess*,char*,int)),
+ TQ_SLOT(slotStderr(TDEProcess*,char*,int)) );
+ connect( mProcess, TQ_SIGNAL(status(Kleo::GnuPGProcessBase*,const TQString&,const TQStringList&)),
+ TQ_SLOT(slotStatus(Kleo::GnuPGProcessBase*,const TQString&,const TQStringList&)) );
if ( !mProcess->start( TDEProcess::NotifyOnExit, TDEProcess::AllOutput ) ) {
mError = gpg_err_make( GPG_ERR_SOURCE_GPGSM, GPG_ERR_ENOENT ); // what else?
diff --git a/certmanager/lib/backends/qgpgme/qgpgmesecretkeyexportjob.h b/certmanager/lib/backends/qgpgme/qgpgmesecretkeyexportjob.h
index 335fd770..1dad417c 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmesecretkeyexportjob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmesecretkeyexportjob.h
@@ -55,7 +55,7 @@ class TDEProcess;
namespace Kleo {
class QGpgMESecretKeyExportJob : public ExportJob {
- Q_OBJECT
+ TQ_OBJECT
public:
QGpgMESecretKeyExportJob( bool armour, const TQString& charset );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmesignencryptjob.h b/certmanager/lib/backends/qgpgme/qgpgmesignencryptjob.h
index 24672d83..f259d754 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmesignencryptjob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmesignencryptjob.h
@@ -44,7 +44,7 @@
#include <utility>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
class Error;
class Context;
@@ -54,7 +54,7 @@ namespace GpgME {
namespace Kleo {
class KDE_EXPORT QGpgMESignEncryptJob : public SignEncryptJob, private QGpgMEJob {
- Q_OBJECT
+ TQ_OBJECT
TQGPGME_JOB
public:
QGpgMESignEncryptJob( GpgME::Context * context );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmesignjob.h b/certmanager/lib/backends/qgpgme/qgpgmesignjob.h
index 2b51eada..388b2756 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmesignjob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmesignjob.h
@@ -50,7 +50,7 @@ namespace GpgME {
namespace Kleo {
class QGpgMESignJob : public SignJob, private QGpgMEJob {
- Q_OBJECT
+ TQ_OBJECT
TQGPGME_JOB
public:
QGpgMESignJob( GpgME::Context * context );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmeverifydetachedjob.h b/certmanager/lib/backends/qgpgme/qgpgmeverifydetachedjob.h
index a62699d3..5e9728d3 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmeverifydetachedjob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmeverifydetachedjob.h
@@ -47,7 +47,7 @@ namespace GpgME {
namespace Kleo {
class QGpgMEVerifyDetachedJob : public VerifyDetachedJob, private QGpgMEJob {
- Q_OBJECT
+ TQ_OBJECT
TQGPGME_JOB
public:
QGpgMEVerifyDetachedJob( GpgME::Context * context );
diff --git a/certmanager/lib/backends/qgpgme/qgpgmeverifyopaquejob.h b/certmanager/lib/backends/qgpgme/qgpgmeverifyopaquejob.h
index 87a19619..ea596e13 100644
--- a/certmanager/lib/backends/qgpgme/qgpgmeverifyopaquejob.h
+++ b/certmanager/lib/backends/qgpgme/qgpgmeverifyopaquejob.h
@@ -47,7 +47,7 @@ namespace GpgME {
namespace Kleo {
class QGpgMEVerifyOpaqueJob : public VerifyOpaqueJob, private QGpgMEJob {
- Q_OBJECT
+ TQ_OBJECT
TQGPGME_JOB
public:
QGpgMEVerifyOpaqueJob( GpgME::Context * context );
diff --git a/certmanager/lib/cryptplug.cpp b/certmanager/lib/cryptplug.cpp
index 77a91451..24ded795 100644
--- a/certmanager/lib/cryptplug.cpp
+++ b/certmanager/lib/cryptplug.cpp
@@ -1,5 +1,4 @@
-/* -*- Mode: C++ -*-
-
+/*
this is a C++-ification of:
GPGMEPLUG - an GPGME based cryptography plug-in following
the common CRYPTPLUG specification.
@@ -697,8 +696,8 @@ GpgME::ImportResult CryptPlug::importCertificateFromMem( const char* data, size_
{
using namespace GpgME;
- std::auto_ptr<Context> context( Context::createForProtocol( mProtocol ) );
- if ( !context.get() )
+ std::unique_ptr<Context> context( Context::createForProtocol( mProtocol ) );
+ if ( !context )
return ImportResult();
Data keydata( data, length, false );
diff --git a/certmanager/lib/cryptplug.h b/certmanager/lib/cryptplug.h
index d633e639..fce71937 100644
--- a/certmanager/lib/cryptplug.h
+++ b/certmanager/lib/cryptplug.h
@@ -1,5 +1,4 @@
-/* -*- Mode: C++ -*-
-
+/*
this is a C++-ification of:
CRYPTPLUG - an independent cryptography plug-in API
@@ -26,7 +25,7 @@
#include <gpgmepp/context.h>
#include <gpgme.h> // need it for gpgme_protocol_t :(
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
class ImportResult;
diff --git a/certmanager/lib/cryptplugfactory.h b/certmanager/lib/cryptplugfactory.h
index 3eb5f7e6..4a0a7a3d 100644
--- a/certmanager/lib/cryptplugfactory.h
+++ b/certmanager/lib/cryptplugfactory.h
@@ -35,7 +35,7 @@
#include "kleo/cryptobackendfactory.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#ifndef LIBKLEOPATRA_NO_COMPAT
namespace Kleo {
@@ -48,7 +48,7 @@ class CryptPlugWrapperList;
namespace KMail {
class KDE_EXPORT CryptPlugFactory : public Kleo::CryptoBackendFactory {
- Q_OBJECT
+ TQ_OBJECT
protected:
CryptPlugFactory();
diff --git a/certmanager/lib/cryptplugwrapper.h b/certmanager/lib/cryptplugwrapper.h
index a8ea1112..2be5cd56 100644
--- a/certmanager/lib/cryptplugwrapper.h
+++ b/certmanager/lib/cryptplugwrapper.h
@@ -54,7 +54,7 @@
#include <tqpair.h>
#include <tqstringlist.h>
#include <tqstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TDEConfigBase;
diff --git a/certmanager/lib/cryptplugwrapperlist.cpp b/certmanager/lib/cryptplugwrapperlist.cpp
index 43f88670..94d8a48c 100644
--- a/certmanager/lib/cryptplugwrapperlist.cpp
+++ b/certmanager/lib/cryptplugwrapperlist.cpp
@@ -1,5 +1,4 @@
-/* -*- c++ -*-
-
+/*
CRYPTPLUG - an independent cryptography plug-in
API. CryptPlugWrapperList holds any number of crypto plug-ins.
diff --git a/certmanager/lib/cryptplugwrapperlist.h b/certmanager/lib/cryptplugwrapperlist.h
index 30d4fcd9..01691338 100644
--- a/certmanager/lib/cryptplugwrapperlist.h
+++ b/certmanager/lib/cryptplugwrapperlist.h
@@ -1,5 +1,4 @@
-/* -*- Mode: C++ -*-
-
+/*
CRYPTPLUG - an independent cryptography plug-in
API. CryptPlugWrapperList holds any number of crypto plug-ins.
diff --git a/certmanager/lib/kleo/cryptobackendfactory.h b/certmanager/lib/kleo/cryptobackendfactory.h
index 09012da3..03dea6b2 100644
--- a/certmanager/lib/kleo/cryptobackendfactory.h
+++ b/certmanager/lib/kleo/cryptobackendfactory.h
@@ -36,7 +36,7 @@
#include <tqobject.h>
#include "cryptobackend.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <vector>
#include <map>
@@ -57,7 +57,7 @@ namespace Kleo {
};
class KDE_EXPORT CryptoBackendFactory : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
protected:
CryptoBackendFactory();
diff --git a/certmanager/lib/kleo/decryptjob.h b/certmanager/lib/kleo/decryptjob.h
index bce60b81..98ff47c8 100644
--- a/certmanager/lib/kleo/decryptjob.h
+++ b/certmanager/lib/kleo/decryptjob.h
@@ -60,7 +60,7 @@ namespace Kleo {
destruction by calling TQObject::deleteLater().
*/
class DecryptJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
DecryptJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/decryptverifyjob.h b/certmanager/lib/kleo/decryptverifyjob.h
index 94b016a0..f804590e 100644
--- a/certmanager/lib/kleo/decryptverifyjob.h
+++ b/certmanager/lib/kleo/decryptverifyjob.h
@@ -63,7 +63,7 @@ namespace Kleo {
destruction by calling TQObject::deleteLater().
*/
class DecryptVerifyJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
DecryptVerifyJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/deletejob.h b/certmanager/lib/kleo/deletejob.h
index 15bd5a51..46c361c3 100644
--- a/certmanager/lib/kleo/deletejob.h
+++ b/certmanager/lib/kleo/deletejob.h
@@ -56,7 +56,7 @@ namespace Kleo {
destruction by calling TQObject::deleteLater().
*/
class DeleteJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
DeleteJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/dn.h b/certmanager/lib/kleo/dn.h
index c9bdbffd..c194d58e 100644
--- a/certmanager/lib/kleo/dn.h
+++ b/certmanager/lib/kleo/dn.h
@@ -35,7 +35,7 @@
#include <tqstring.h>
#include <tqvaluevector.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQStringList;
class TQWidget;
diff --git a/certmanager/lib/kleo/downloadjob.h b/certmanager/lib/kleo/downloadjob.h
index e1f52cd7..ee2546b4 100644
--- a/certmanager/lib/kleo/downloadjob.h
+++ b/certmanager/lib/kleo/downloadjob.h
@@ -59,7 +59,7 @@ namespace Kleo {
destruction by calling TQObject::deleteLater().
*/
class DownloadJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
DownloadJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/encryptjob.h b/certmanager/lib/kleo/encryptjob.h
index f55ab76d..8fa20d23 100644
--- a/certmanager/lib/kleo/encryptjob.h
+++ b/certmanager/lib/kleo/encryptjob.h
@@ -62,7 +62,7 @@ namespace Kleo {
destruction by calling TQObject::deleteLater().
*/
class EncryptJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
EncryptJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/enum.h b/certmanager/lib/kleo/enum.h
index 07e93c49..723f65ae 100644
--- a/certmanager/lib/kleo/enum.h
+++ b/certmanager/lib/kleo/enum.h
@@ -33,7 +33,7 @@
#ifndef __KLEO_ENUM_H__
#define __KLEO_ENUM_H__
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQString;
class TQStringList;
diff --git a/certmanager/lib/kleo/exportjob.h b/certmanager/lib/kleo/exportjob.h
index 69ad8e5c..4d9259f8 100644
--- a/certmanager/lib/kleo/exportjob.h
+++ b/certmanager/lib/kleo/exportjob.h
@@ -59,7 +59,7 @@ namespace Kleo {
destruction by calling TQObject::deleteLater().
*/
class ExportJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
ExportJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/hierarchicalkeylistjob.cpp b/certmanager/lib/kleo/hierarchicalkeylistjob.cpp
index 65b59725..03bb267f 100644
--- a/certmanager/lib/kleo/hierarchicalkeylistjob.cpp
+++ b/certmanager/lib/kleo/hierarchicalkeylistjob.cpp
@@ -142,8 +142,8 @@ GpgME::Error Kleo::HierarchicalKeyListJob::startAJob() {
assert( mJob ); // FIXME: we need a way to generate errors ourselves,
// but I don't like the dependency on gpg-error :/
- connect( mJob, TQT_SIGNAL(nextKey(const GpgME::Key&)), TQT_SLOT(slotNextKey(const GpgME::Key&)) );
- connect( mJob, TQT_SIGNAL(result(const GpgME::KeyListResult&)), TQT_SLOT(slotResult(const GpgME::KeyListResult&)) );
+ connect( mJob, TQ_SIGNAL(nextKey(const GpgME::Key&)), TQ_SLOT(slotNextKey(const GpgME::Key&)) );
+ connect( mJob, TQ_SIGNAL(result(const GpgME::KeyListResult&)), TQ_SLOT(slotResult(const GpgME::KeyListResult&)) );
TQStringList patterns;
for ( std::set<TQString>::const_iterator it = mNextSet.begin() ; it != mNextSet.end() ; ++it )
diff --git a/certmanager/lib/kleo/hierarchicalkeylistjob.h b/certmanager/lib/kleo/hierarchicalkeylistjob.h
index 0b74d2f9..cb971bd0 100644
--- a/certmanager/lib/kleo/hierarchicalkeylistjob.h
+++ b/certmanager/lib/kleo/hierarchicalkeylistjob.h
@@ -35,7 +35,7 @@
#include <kleo/keylistjob.h>
#include <kleo/cryptobackend.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <gpgmepp/keylistresult.h>
@@ -69,7 +69,7 @@ namespace Kleo {
schedule its own destruction by calling TQObject::deleteLater().
*/
class KDE_EXPORT HierarchicalKeyListJob : public KeyListJob {
- Q_OBJECT
+ TQ_OBJECT
public:
HierarchicalKeyListJob( const CryptoBackend::Protocol * protocol,
diff --git a/certmanager/lib/kleo/importjob.h b/certmanager/lib/kleo/importjob.h
index bd0a6f04..6468e670 100644
--- a/certmanager/lib/kleo/importjob.h
+++ b/certmanager/lib/kleo/importjob.h
@@ -60,7 +60,7 @@ namespace Kleo {
destruction by calling TQObject::deleteLater().
*/
class ImportJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
ImportJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/job.cpp b/certmanager/lib/kleo/job.cpp
index 907a7448..eb638592 100644
--- a/certmanager/lib/kleo/job.cpp
+++ b/certmanager/lib/kleo/job.cpp
@@ -63,7 +63,7 @@ Kleo::Job::Job( TQObject * parent, const char * name )
: TQObject( parent, name )
{
if ( tqApp )
- connect( tqApp, TQT_SIGNAL(aboutToQuit()), TQT_SLOT(slotCancel()) );
+ connect( tqApp, TQ_SIGNAL(aboutToQuit()), TQ_SLOT(slotCancel()) );
}
Kleo::Job::~Job() {
diff --git a/certmanager/lib/kleo/job.h b/certmanager/lib/kleo/job.h
index 00087566..52630c30 100644
--- a/certmanager/lib/kleo/job.h
+++ b/certmanager/lib/kleo/job.h
@@ -62,7 +62,7 @@ namespace Kleo {
carry the information that the operation was canceled.
*/
class Job : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
protected:
Job( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/keyfiltermanager.cpp b/certmanager/lib/kleo/keyfiltermanager.cpp
index 1aa2b170..2c5b5a35 100644
--- a/certmanager/lib/kleo/keyfiltermanager.cpp
+++ b/certmanager/lib/kleo/keyfiltermanager.cpp
@@ -73,7 +73,7 @@ Kleo::KeyFilterManager::KeyFilterManager( TQObject * parent, const char * name )
d = new Private();
// ### DF: doesn't a KStaticDeleter work more reliably?
if ( tqApp )
- connect( tqApp, TQT_SIGNAL(aboutToQuit()), TQT_SLOT(deleteLater()) );
+ connect( tqApp, TQ_SIGNAL(aboutToQuit()), TQ_SLOT(deleteLater()) );
reload();
}
diff --git a/certmanager/lib/kleo/keyfiltermanager.h b/certmanager/lib/kleo/keyfiltermanager.h
index a573934d..d0022fc0 100644
--- a/certmanager/lib/kleo/keyfiltermanager.h
+++ b/certmanager/lib/kleo/keyfiltermanager.h
@@ -34,7 +34,7 @@
#define __KLEO_KEYFILTERMANAGER_H__
#include <tqobject.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
class Key;
}
@@ -46,7 +46,7 @@ namespace Kleo {
namespace Kleo {
class KDE_EXPORT KeyFilterManager : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
protected:
KeyFilterManager( TQObject * parent=0, const char * name=0 );
diff --git a/certmanager/lib/kleo/keygenerationjob.h b/certmanager/lib/kleo/keygenerationjob.h
index b0d94993..d2f5c50d 100644
--- a/certmanager/lib/kleo/keygenerationjob.h
+++ b/certmanager/lib/kleo/keygenerationjob.h
@@ -59,7 +59,7 @@ namespace Kleo {
destruction by calling TQObject::deleteLater().
*/
class KeyGenerationJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
KeyGenerationJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/keylistjob.h b/certmanager/lib/kleo/keylistjob.h
index 3560f7b8..807c7954 100644
--- a/certmanager/lib/kleo/keylistjob.h
+++ b/certmanager/lib/kleo/keylistjob.h
@@ -63,7 +63,7 @@ namespace Kleo {
TQObject::deleteLater().
*/
class KeyListJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
KeyListJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/multideletejob.cpp b/certmanager/lib/kleo/multideletejob.cpp
index 7c83c24b..9aafdd79 100644
--- a/certmanager/lib/kleo/multideletejob.cpp
+++ b/certmanager/lib/kleo/multideletejob.cpp
@@ -102,7 +102,7 @@ GpgME::Error Kleo::MultiDeleteJob::startAJob() {
assert( mJob ); // FIXME: we need a way to generate errors ourselves,
// but I don't like the dependency on gpg-error :/
- connect( mJob, TQT_SIGNAL(result(const GpgME::Error&)), TQT_SLOT(slotResult(const GpgME::Error&)) );
+ connect( mJob, TQ_SIGNAL(result(const GpgME::Error&)), TQ_SLOT(slotResult(const GpgME::Error&)) );
return mJob->start( *mIt, mAllowSecretKeyDeletion );
}
diff --git a/certmanager/lib/kleo/multideletejob.h b/certmanager/lib/kleo/multideletejob.h
index d927c927..67ec7492 100644
--- a/certmanager/lib/kleo/multideletejob.h
+++ b/certmanager/lib/kleo/multideletejob.h
@@ -36,7 +36,7 @@
#include <kleo/job.h>
#include <kleo/cryptobackend.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqguardedptr.h>
#include <vector>
@@ -65,7 +65,7 @@ namespace Kleo {
destruction by calling TQObject::deleteLater().
*/
class KDE_EXPORT MultiDeleteJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
public:
MultiDeleteJob( const CryptoBackend::Protocol * protocol );
diff --git a/certmanager/lib/kleo/refreshkeysjob.h b/certmanager/lib/kleo/refreshkeysjob.h
index 7a55f106..aa283fd4 100644
--- a/certmanager/lib/kleo/refreshkeysjob.h
+++ b/certmanager/lib/kleo/refreshkeysjob.h
@@ -60,7 +60,7 @@ namespace Kleo {
destruction by calling TQObject::deleteLater().
*/
class RefreshKeysJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
RefreshKeysJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/signencryptjob.h b/certmanager/lib/kleo/signencryptjob.h
index 0f31897e..160eb32e 100644
--- a/certmanager/lib/kleo/signencryptjob.h
+++ b/certmanager/lib/kleo/signencryptjob.h
@@ -65,7 +65,7 @@ namespace Kleo {
own destruction by calling TQObject::deleteLater().
*/
class SignEncryptJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
SignEncryptJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/signjob.h b/certmanager/lib/kleo/signjob.h
index fdeb9a84..54c64a7f 100644
--- a/certmanager/lib/kleo/signjob.h
+++ b/certmanager/lib/kleo/signjob.h
@@ -63,7 +63,7 @@ namespace Kleo {
destruction by calling TQObject::deleteLater().
*/
class SignJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
SignJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/specialjob.h b/certmanager/lib/kleo/specialjob.h
index c5bc1896..8656b8ac 100644
--- a/certmanager/lib/kleo/specialjob.h
+++ b/certmanager/lib/kleo/specialjob.h
@@ -63,7 +63,7 @@ namespace Kleo {
to be defined in each SpecialJob subclass.
*/
class SpecialJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
SpecialJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/verifydetachedjob.h b/certmanager/lib/kleo/verifydetachedjob.h
index 01cc6377..25f00756 100644
--- a/certmanager/lib/kleo/verifydetachedjob.h
+++ b/certmanager/lib/kleo/verifydetachedjob.h
@@ -60,7 +60,7 @@ namespace Kleo {
it's own destruction by calling TQObject::deleteLater().
*/
class VerifyDetachedJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
VerifyDetachedJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/kleo/verifyopaquejob.h b/certmanager/lib/kleo/verifyopaquejob.h
index 387782df..8e0bdd31 100644
--- a/certmanager/lib/kleo/verifyopaquejob.h
+++ b/certmanager/lib/kleo/verifyopaquejob.h
@@ -60,7 +60,7 @@ namespace Kleo {
it's own destruction by calling TQObject::deleteLater().
*/
class VerifyOpaqueJob : public Job {
- Q_OBJECT
+ TQ_OBJECT
protected:
VerifyOpaqueJob( TQObject * parent, const char * name );
diff --git a/certmanager/lib/libkleopatrarc.desktop b/certmanager/lib/libkleopatrarc.desktop
index 07af3adc..f502ca88 100644
--- a/certmanager/lib/libkleopatrarc.desktop
+++ b/certmanager/lib/libkleopatrarc.desktop
@@ -1,52 +1,6 @@
[Key Filter #0]
was-validated=false
Name=Not Validated Key
-Name[af]=Sleutel nie bevestig nie
-Name[bg]=Непроверен ключ
-Name[ca]=Clau no validada
-Name[cs]=Nevalidovaný klíč
-Name[da]=Ikke godkendt nøgle
-Name[de]=Ungeprüfter Schlüssel
-Name[el]=Μη επικυρωμένο κλειδί
-Name[eo]=Ŝlosilo Ne Validigita
-Name[es]=Clave no validada
-Name[et]=Võtme ehtsus kontrollimatu
-Name[eu]=Balidatu gabeko gakoa
-Name[fa]=کلید بدون اعتبار
-Name[fi]=Varmistamaton avain
-Name[fr]=Clé non validée
-Name[fy]=Net falidearre kaai
-Name[gl]=Non hai Chave Validada
-Name[he]=מפתח לא מוודא
-Name[hu]=Nem ellenőrzött kulcs
-Name[is]=Ekki staðfestur lykill
-Name[it]=Chiave non convalidata
-Name[ja]=認証されていない鍵
-Name[kk]=Тексерілмеген кілт
-Name[km]=កូនសោ​គ្មាន​សុពលភាព
-Name[ko]=검증되지 않은 키
-Name[lt]=Nevaliduotas raktas
-Name[ms]=Kekunci Tidak Disahkan
-Name[nb]=Nøkkel ikke sjekket for gyldighet
-Name[nds]=Nich pröövt Slötel
-Name[ne]=प्रमाणीत नगरिएको कुञ्जी
-Name[nl]=Geen gevalideerde sleutel
-Name[nn]=Ikkje-validert nøkkel
-Name[pl]=Niesprawdzony klucz
-Name[pt]=Chave Não Validada
-Name[pt_BR]=Chave Não Validada
-Name[ru]=Непроверенный ключ
-Name[se]=Ii-validerejuvvon čoavdda
-Name[sk]=Neoverený kľúč
-Name[sl]=Nepreverjen ključ
-Name[sr]=Неоверени кључ
-Name[sr@Latn]=Neovereni ključ
-Name[sv]=Nyckeln har inte validerats
-Name[ta]=செல்லுபடியாகாத விசை
-Name[tr]=Geçerli Olmayan Anahtar
-Name[uk]=Неперевірений ключ
-Name[zh_CN]=未校验的密钥
-Name[zh_TW]=未確認的金鑰
[Key Filter #1]
was-validated=true
@@ -54,263 +8,24 @@ is-expired=true
is-revoked=false
foreground-color=255,0,0
Name=Expired Key
-Name[af]=Sleutel het verval
-Name[bg]=Изтекъл ключ
-Name[br]=Alc'hwez kabac'het
-Name[ca]=Clau expirada
-Name[cs]=Klíš s prošlou platností
-Name[da]=Udløbet nøgle
-Name[de]=Abgelaufener Schlüssel
-Name[el]=Ληγμένο κλειδί
-Name[eo]=Ŝlosilo Eksvalidiĝinta
-Name[es]=Clave caducada
-Name[et]=Aegunud võti
-Name[eu]=Iraungitako gakoa
-Name[fa]=کلید منقضی
-Name[fi]=Vanhentunut avain
-Name[fr]=Clé expirée
-Name[fy]=Ferrûne kaai
-Name[gl]=Chave caducada
-Name[he]=מפתח לא תקף
-Name[hu]=Lejárt kulcs
-Name[is]=Útrunninn lykill
-Name[it]=Chiave scaduta
-Name[ja]=期限切れの鍵
-Name[kk]=Ескірген кілт
-Name[km]=កូនសោ​បាន​ផុតកំណត់
-Name[ko]=만료된 키
-Name[lt]=Baigęs galioti raktas
-Name[mk]=Истечен клуч
-Name[ms]=Kekunci Luput
-Name[nb]=Utgått nøkkel
-Name[nds]=Aflopen Slötel
-Name[ne]=म्याद समाप्त भएको कुञ्जी
-Name[nl]=Verlopen sleutel
-Name[nn]=Forelda nøkkel
-Name[pl]=Klucz, który stracił ważność
-Name[pt]=Chave Expirada
-Name[pt_BR]=Chave Expirada
-Name[ru]=Утерявший силу ключ
-Name[se]=Boarásmuvvan čoavdda
-Name[sk]=Vypršaný kľúč
-Name[sl]=Pretečen ključ
-Name[sr]=Истекли кључ
-Name[sr@Latn]=Istekli ključ
-Name[sv]=Utgången nyckel
-Name[ta]=காலாவதியான விசை
-Name[tr]=Süresi Dolmuş Anahtar
-Name[uk]=Застарілий ключ
-Name[zh_CN]=过期密钥
-Name[zh_TW]=已過期的金鑰
[Key Filter #2]
was-validated=true
is-revoked=true
Name=Revoked Key
-Name[af]=Sleutel was herroep
-Name[bg]=Анулиран ключ
-Name[ca]=Clau revocada
-Name[cs]=Odvolaný klíč
-Name[da]=Fjernet nøgle
-Name[de]=Widerrufener Schlüssel
-Name[el]=Ακυρωμένο κλειδί
-Name[eo]=Ŝlosilo Revokita
-Name[es]=Clave revocada
-Name[et]=Tühistatud võti
-Name[eu]=Errebokatutako gakoa
-Name[fa]=کلید لغو‌شده
-Name[fi]=Peruutettu avain
-Name[fr]=Clé révoquée
-Name[fy]=Ynlutsen kaai
-Name[gl]=Chave revocada
-Name[he]=מפתח לא קביל
-Name[hu]=Visszavont kulcs
-Name[is]=Afturkallaður lykill
-Name[it]=Chiave revocata
-Name[ja]=破棄された鍵
-Name[kk]=Күші жойылған кілт
-Name[km]=កូនសោ​ត្រូវ​បាន​ដកហូត
-Name[ko]=거부된 키
-Name[lt]=Atšauktas raktas
-Name[mk]=Отповикан клуч
-Name[ms]=Kekunci Dibatalkan
-Name[nb]=Tilbakekalt nøkkel
-Name[nds]=Torüchropen Slötel
-Name[ne]=रद्द गरिएको कुञ्जी
-Name[nl]=Ingetrokken sleutel
-Name[nn]=Tilbakekalla nøkkel
-Name[pl]=Odwołany klucz
-Name[pt]=Chave Revogada
-Name[pt_BR]=Chave Revogada
-Name[ru]=Отозванный ключ
-Name[sk]=Kľúč so zrušenou platnosťou
-Name[sl]=Preklican ključ
-Name[sr]=Опозвани кључ
-Name[sr@Latn]=Opozvani ključ
-Name[sv]=Återkallad nyckel
-Name[ta]=நீக்கிய விசை
-Name[tr]=Geri Alınmış Anahtar
-Name[uk]=Анульований ключ
-Name[zh_CN]=吊销的密钥
-Name[zh_TW]=已廢棄的金鑰
[Key Filter #3]
was-validated=true
is-root-certificate=true
is-validity=ultimate
Name=Trusted Root Certificate
-Name[af]=Vertroude 'Root' sertifikaat
-Name[ar]=شهادة جذر موثوق بها
-Name[bg]=Надеждно удостоверение
-Name[ca]=Certificat arrel de confiança
-Name[cs]=Důvěryhodný kořenový certifikát
-Name[da]=Root-certifikat der stoles på
-Name[de]=Vertrauenswürdiges Stammzertifikat
-Name[el]=Έμπιστο βασικό πιστοποιητικό
-Name[eo]=Fidinda Radika Certifikato
-Name[es]=Certificado raíz de confianza
-Name[et]=Usaldusväärne juursertifikaat
-Name[eu]=Konfidantzazko erro ziurtagiria
-Name[fa]=گواهی‌نامۀ معتبر کاربر ارشد
-Name[fi]=Luotettu juurivarmenne
-Name[fr]=Certificat racine de confiance
-Name[fy]=Fertroude haadsertifikaat
-Name[gl]=Certificado raiz autentificado
-Name[hu]=Megbízható gyökértanúsítvány
-Name[is]=Treyst rótarskilríki
-Name[it]=Certificato radice affidabile
-Name[ja]=信頼されたルート証明書
-Name[kk]=Сенім артылған түбір куәлігі
-Name[km]=វិញ្ញាបនបត្រ Root ដែល​អាច​ជឿទុកចិត្ត
-Name[lt]=Patikimas root sertifikatas
-Name[mk]=Доверлив коренов сертификат
-Name[ms]=Sijil Root Dipercaya
-Name[nb]=Tiltrodd rot-sertifikat
-Name[nds]=Vertroonswöördig Wörtelzertifikaat
-Name[ne]=विश्वास गरिएका मूल प्रमाणपत्र
-Name[nl]=Vertrouwd hoofdcertificaat
-Name[nn]=Tiltrudd rotsertifikat
-Name[pl]=Zaufany certyfikat bazowy
-Name[pt]=Certificado Raiz de Confiança
-Name[pt_BR]=Certificado Raiz Confiável
-Name[ru]=Доверяемый корневой сертификат
-Name[se]=Luohttehahtti ruohtassertifikáhta
-Name[sk]=Dôveryhodný koreňový certifikát
-Name[sl]=Zaupan korenski certifikat
-Name[sr]=Корени сертификат од поверења
-Name[sr@Latn]=Koreni sertifikat od poverenja
-Name[sv]=Pålitligt rotcertifikat
-Name[ta]=நம்பகமான மூல சான்றிதழ்
-Name[tr]=Güvenilir Kök Sertifikası
-Name[uk]=Кореневий сертифікат з довірою
-Name[zh_CN]=可信任的根证书
-Name[zh_TW]=可信任的根憑證
[Key Filter #4]
was-validated=true
is-root-certificate=true
is-not-validity=ultimate
Name=Not Trusted Root Certificate
-Name[af]=Nie vertroude 'root' sertifikaat
-Name[ar]=شهادة جذر غير موثوق بها
-Name[bg]=Ненадеждно удостоверение
-Name[ca]=Certificat arrel sense confiança
-Name[cs]=Nedůvěryhodný kořenový certifikát
-Name[da]=Root-certifikat der ikke stoles på
-Name[de]=Nicht vertrauenswürdiges Stammzertifikat
-Name[el]=Μη έμπιστο βασικό πιστοποιητικό
-Name[eo]=Ne Fidinda Radika Certifikato
-Name[es]=Certificado raíz no de confianza
-Name[et]=Ebausaldusväärne juursertifikaat
-Name[eu]=Konfidantza gabeko erro ziurtagiria
-Name[fa]=گواهی‌نامۀ بدون اعتبار کاربر ارشد
-Name[fi]=Ei-luotettu juurivarmenne
-Name[fr]=Certificat racine non fiable
-Name[fy]=Net fertroude haadsertifikaat
-Name[gl]=Certificado raiz non autentificado
-Name[hu]=Nem megbízható gyökértanúsítvány
-Name[is]=Ekki traust rótarskilríki
-Name[it]=Certificato radice non affidabile
-Name[ja]=信頼されてないルート証明書
-Name[kk]=Сенім артылмаған түбір куәлігі
-Name[km]=វិញ្ញាបនបត្រ Root ដែល​មិន​អាច​ជឿទុកចិត្ត
-Name[lt]=Nepatikimas root sertifikatas
-Name[mk]=Недоверлив коренов сертификат
-Name[ms]=Sijil Root Tak Dipercaya
-Name[nb]=Ikke tiltrodd rot-sertifikat
-Name[nds]=Nich vertroonswöördig Wörtelzertifikaat
-Name[ne]=विश्वास नगरिएका मूल प्रमाणपत्र
-Name[nl]=Niet vertrouwd hoofdcertificaat
-Name[nn]=Ikkje tiltrudd rotsertifikat
-Name[pl]=Nie zaufany certyfikat bazowy
-Name[pt]=Certificado Raiz Não de Confiança
-Name[pt_BR]=Certificado Raiz Não-Confiável
-Name[ru]=Не доверяемый корневой сертификат
-Name[se]=Ii luohttehahtti ruohtassertifikáhta
-Name[sk]=Nedôveryhodný koreňový certifikát
-Name[sl]=Nezaupan korenski certifikat
-Name[sr]=Корени сертификат који није од поверења
-Name[sr@Latn]=Koreni sertifikat koji nije od poverenja
-Name[sv]=Opålitligt rotcertifikat
-Name[ta]=நம்பமுடியாத மூல சான்றிதழ்
-Name[tr]=Güvenilmeyen Kök Sertifikası
-Name[uk]=Кореневий сертифікат без довіри
-Name[zh_CN]=未信任的根证书
-Name[zh_TW]=不可信任的根憑證
[Key Filter #5]
was-validated=true
Name=Other Keys
-Name[af]=Ander Sleutels
-Name[ar]=مفاتيح آخرى
-Name[bg]=Други ключове
-Name[br]=Alc'hwezioù all
-Name[ca]=Altres claus
-Name[cs]=Ostatní klíče
-Name[da]=Andre nøgler
-Name[de]=Andere Schlüssel
-Name[el]=Άλλα κλειδιά
-Name[eo]=Aliaj Ŝlosiloj
-Name[es]=Otras claves
-Name[et]=Muud võtmed
-Name[eu]=Beste gakoak
-Name[fa]=کلیدهای دیگر
-Name[fi]=Muut avaimet
-Name[fr]=Autres clés
-Name[fy]=Oare kaaien
-Name[ga]=Eochracha Eile
-Name[gl]=Outras chaves
-Name[he]=מפתחות אחרים
-Name[hu]=Egyéb kulcsok
-Name[is]=Aðrir lyklar
-Name[it]=Altre chiavi
-Name[ja]=他の鍵
-Name[kk]=Басқа кілттер
-Name[km]=កូនសោ​ផ្សេង​ទៀត
-Name[ko]=기타 키
-Name[lt]=Kiti raktai
-Name[mk]=Други клучеви
-Name[ms]=Kekunci Lain
-Name[nb]=Andre nøkler
-Name[nds]=Anner Slötels
-Name[ne]=अन्य कुञ्जी
-Name[nl]=Andere sleutels
-Name[nn]=Andre nøklar
-Name[pa]=ਹੋਰ ਕੁੰਜੀਆਂ
-Name[pl]=Inne klucze
-Name[pt]=Outras Chaves
-Name[pt_BR]=Outras Chaves
-Name[ru]=Другие ключи
-Name[se]=Eará čoavdagat
-Name[sk]=Iné kľúče
-Name[sl]=Drugi ključi
-Name[sr]=Други кључеви
-Name[sr@Latn]=Drugi ključevi
-Name[sv]=Andra nycklar
-Name[ta]=மற்ற விசைகள்
-Name[tr]=Diğer Anahtarlar
-Name[uk]=Інші ключі
-Name[uz]=Бошқа калитлар
-Name[zh_CN]=其它密钥
-Name[zh_TW]=其他金鑰
-
diff --git a/certmanager/lib/tests/gnupgviewer.h b/certmanager/lib/tests/gnupgviewer.h
index 9a310d49..f9a0e962 100644
--- a/certmanager/lib/tests/gnupgviewer.h
+++ b/certmanager/lib/tests/gnupgviewer.h
@@ -43,7 +43,7 @@ class TDEProcess;
class TQStringList;
class GnuPGViewer : public TQTextEdit {
- Q_OBJECT
+ TQ_OBJECT
public:
GnuPGViewer( TQWidget * parent=0, const char * name=0 );
diff --git a/certmanager/lib/tests/test.data b/certmanager/lib/tests/test.data
index a4109fbd..5a63ff09 100644
--- a/certmanager/lib/tests/test.data
+++ b/certmanager/lib/tests/test.data
@@ -1,4 +1,4 @@
-/* -*- mode: c++; c-basic-offset:4 -*-
+/*
tests/test_uiserver.cpp
This file is part of Kleopatra, the KDE keymanager
diff --git a/certmanager/lib/tests/test_gnupgprocessbase.cpp b/certmanager/lib/tests/test_gnupgprocessbase.cpp
index 01e5d109..3fdc9938 100644
--- a/certmanager/lib/tests/test_gnupgprocessbase.cpp
+++ b/certmanager/lib/tests/test_gnupgprocessbase.cpp
@@ -62,14 +62,14 @@ void GnuPGViewer::setProcess( Kleo::GnuPGProcessBase * process ) {
if ( !process )
return;
mProcess = process;
- connect( mProcess, TQT_SIGNAL(processExited(TDEProcess*)),
- TQT_SLOT(slotProcessExited(TDEProcess*)) );
- connect( mProcess, TQT_SIGNAL(receivedStdout(TDEProcess*,char*,int)),
- TQT_SLOT(slotStdout(TDEProcess*,char*,int)) );
- connect( mProcess, TQT_SIGNAL(receivedStderr(TDEProcess*,char*,int)),
- TQT_SLOT(slotStderr(TDEProcess*,char*,int)) );
- connect( mProcess, TQT_SIGNAL(status(Kleo::GnuPGProcessBase*,const TQString&,const TQStringList&)),
- TQT_SLOT(slotStatus(Kleo::GnuPGProcessBase*,const TQString&,const TQStringList&)) );
+ connect( mProcess, TQ_SIGNAL(processExited(TDEProcess*)),
+ TQ_SLOT(slotProcessExited(TDEProcess*)) );
+ connect( mProcess, TQ_SIGNAL(receivedStdout(TDEProcess*,char*,int)),
+ TQ_SLOT(slotStdout(TDEProcess*,char*,int)) );
+ connect( mProcess, TQ_SIGNAL(receivedStderr(TDEProcess*,char*,int)),
+ TQ_SLOT(slotStderr(TDEProcess*,char*,int)) );
+ connect( mProcess, TQ_SIGNAL(status(Kleo::GnuPGProcessBase*,const TQString&,const TQStringList&)),
+ TQ_SLOT(slotStatus(Kleo::GnuPGProcessBase*,const TQString&,const TQStringList&)) );
}
static TQStringList split( char * buffer, int buflen, TQString & old ) {
diff --git a/certmanager/lib/tests/test_jobs.cpp b/certmanager/lib/tests/test_jobs.cpp
index ba26bfb5..661e07da 100644
--- a/certmanager/lib/tests/test_jobs.cpp
+++ b/certmanager/lib/tests/test_jobs.cpp
@@ -61,8 +61,8 @@ static void testSign()
std::vector<GpgME::Key> signingKeys;
- std::auto_ptr<Kleo::KeyListJob> listJob( proto->keyListJob( false, false, true ) ); // use validating keylisting
- if ( listJob.get() ) {
+ std::unique_ptr<Kleo::KeyListJob> listJob( proto->keyListJob( false, false, true ) ); // use validating keylisting
+ if ( listJob ) {
// ##### Adjust this to your own identity
listJob->exec( "faure@kde.org", true /*secret*/, signingKeys );
assert( !signingKeys.empty() );
diff --git a/certmanager/lib/tests/test_keygen.cpp b/certmanager/lib/tests/test_keygen.cpp
index b678e29d..ef8f8878 100644
--- a/certmanager/lib/tests/test_keygen.cpp
+++ b/certmanager/lib/tests/test_keygen.cpp
@@ -96,7 +96,7 @@ KeyGenerator::KeyGenerator( TQWidget * parent, const char * name, WFlags )
glay->setRowStretch( row, 1 );
glay->setColStretch( 1, 1 );
- connect( this, TQT_SIGNAL(user1Clicked()), TQT_SLOT(slotStartKeyGeneration()) );
+ connect( this, TQ_SIGNAL(user1Clicked()), TQ_SLOT(slotStartKeyGeneration()) );
}
KeyGenerator::~KeyGenerator() {}
@@ -118,8 +118,8 @@ void KeyGenerator::slotStartKeyGeneration() {
Kleo::KeyGenerationJob * job = proto->keyGenerationJob();
assert( job );
- connect( job, TQT_SIGNAL(result(const GpgME::KeyGenerationResult&,const TQByteArray&)),
- TQT_SLOT(slotResult(const GpgME::KeyGenerationResult&,const TQByteArray&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::KeyGenerationResult&,const TQByteArray&)),
+ TQ_SLOT(slotResult(const GpgME::KeyGenerationResult&,const TQByteArray&)) );
const GpgME::Error err = job->start( params );
if ( err )
diff --git a/certmanager/lib/tests/test_keygen.h b/certmanager/lib/tests/test_keygen.h
index 4bf2acaa..952b4d53 100644
--- a/certmanager/lib/tests/test_keygen.h
+++ b/certmanager/lib/tests/test_keygen.h
@@ -44,7 +44,7 @@ namespace GpgME {
class TQLineEdit;
class KeyGenerator : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
KeyGenerator( TQWidget * parent=0, const char * name=0, WFlags f=0 );
diff --git a/certmanager/lib/tests/test_keylister.cpp b/certmanager/lib/tests/test_keylister.cpp
index 0e357b59..38b9085b 100644
--- a/certmanager/lib/tests/test_keylister.cpp
+++ b/certmanager/lib/tests/test_keylister.cpp
@@ -115,10 +115,10 @@ void CertListView::slotStart() {
kdDebug() << "CertListView::slotStart()" << endl;
Kleo::KeyListJob * job = Kleo::CryptoBackendFactory::instance()->smime()->keyListJob( false );
assert( job );
- TQObject::connect( job, TQT_SIGNAL(nextKey(const GpgME::Key&)),
- this, TQT_SLOT(slotAddKey(const GpgME::Key&)) );
- TQObject::connect( job, TQT_SIGNAL(result(const GpgME::KeyListResult&)),
- this, TQT_SLOT(slotResult(const GpgME::KeyListResult&)) );
+ TQObject::connect( job, TQ_SIGNAL(nextKey(const GpgME::Key&)),
+ this, TQ_SLOT(slotAddKey(const GpgME::Key&)) );
+ TQObject::connect( job, TQ_SIGNAL(result(const GpgME::KeyListResult&)),
+ this, TQ_SLOT(slotResult(const GpgME::KeyListResult&)) );
#if 0
TQStringList l;
l << "Marc";
@@ -138,7 +138,7 @@ int main( int argc, char** argv ) {
app.setMainWidget( clv );
clv->show();
- TQTimer::singleShot( 5000, clv, TQT_SLOT(slotStart()) );
+ TQTimer::singleShot( 5000, clv, TQ_SLOT(slotStart()) );
return app.exec();
}
diff --git a/certmanager/lib/tests/test_keylister.h b/certmanager/lib/tests/test_keylister.h
index 58eeac4a..1d6b1611 100644
--- a/certmanager/lib/tests/test_keylister.h
+++ b/certmanager/lib/tests/test_keylister.h
@@ -40,7 +40,7 @@ namespace GpgME {
}
class CertListView : public Kleo::KeyListView {
- Q_OBJECT
+ TQ_OBJECT
public:
CertListView( TQWidget * parent=0, const char * name=0, WFlags f=0 );
diff --git a/certmanager/lib/ui/adddirectoryservicedialogimpl.cpp b/certmanager/lib/ui/adddirectoryservicedialogimpl.cpp
index 1c548c5b..c969e875 100644
--- a/certmanager/lib/ui/adddirectoryservicedialogimpl.cpp
+++ b/certmanager/lib/ui/adddirectoryservicedialogimpl.cpp
@@ -49,7 +49,7 @@
AddDirectoryServiceDialogImpl::AddDirectoryServiceDialogImpl( TQWidget* parent, const char* name, bool modal, WFlags fl )
: AddDirectoryServiceDialog( parent, name, modal, fl )
{
- portED->setValidator( new TQIntValidator( 0, 65535, TQT_TQOBJECT(portED) ) );
+ portED->setValidator( new TQIntValidator( 0, 65535, portED ) );
}
/*
diff --git a/certmanager/lib/ui/adddirectoryservicedialogimpl.h b/certmanager/lib/ui/adddirectoryservicedialogimpl.h
index f8924dac..c422c3a4 100644
--- a/certmanager/lib/ui/adddirectoryservicedialogimpl.h
+++ b/certmanager/lib/ui/adddirectoryservicedialogimpl.h
@@ -36,7 +36,7 @@
class AddDirectoryServiceDialogImpl : public AddDirectoryServiceDialog
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/certmanager/lib/ui/backendconfigwidget.cpp b/certmanager/lib/ui/backendconfigwidget.cpp
index a97b0020..82db7d7a 100644
--- a/certmanager/lib/ui/backendconfigwidget.cpp
+++ b/certmanager/lib/ui/backendconfigwidget.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
backendconfigwidget.cpp
This file is part of libkleopatra, the KDE keymanagement library
@@ -215,8 +215,8 @@ Kleo::BackendConfigWidget::BackendConfigWidget( CryptoBackendFactory * factory,
hlay->addWidget( d->listView, 1 );
- connect( d->listView, TQT_SIGNAL(selectionChanged(TQListViewItem*)),
- TQT_SLOT(slotSelectionChanged(TQListViewItem*)) );
+ connect( d->listView, TQ_SIGNAL(selectionChanged(TQListViewItem*)),
+ TQ_SLOT(slotSelectionChanged(TQListViewItem*)) );
TQVBoxLayout * vlay = new TQVBoxLayout( hlay ); // inherits spacing
@@ -224,15 +224,15 @@ Kleo::BackendConfigWidget::BackendConfigWidget( CryptoBackendFactory * factory,
d->configureButton->setAutoDefault( false );
vlay->addWidget( d->configureButton );
- connect( d->configureButton, TQT_SIGNAL(clicked()),
- TQT_SLOT(slotConfigureButtonClicked()) );
+ connect( d->configureButton, TQ_SIGNAL(clicked()),
+ TQ_SLOT(slotConfigureButtonClicked()) );
d->rescanButton = new TQPushButton( i18n("Rescan"), this );
d->rescanButton->setAutoDefault( false );
vlay->addWidget( d->rescanButton );
- connect( d->rescanButton, TQT_SIGNAL(clicked()),
- TQT_SLOT(slotRescanButtonClicked()) );
+ connect( d->rescanButton, TQ_SIGNAL(clicked()),
+ TQ_SLOT(slotRescanButtonClicked()) );
vlay->addStretch( 1 );
}
@@ -306,7 +306,7 @@ void Kleo::BackendConfigWidget::slotConfigureButtonClicked() {
// Tell other users of gpgconf (e.g. the s/mime page) that the gpgconf data might have changed
kapp->dcopClient()->emitDCOPSignal( "KPIM::CryptoConfig", "changed()", TQByteArray() );
// and schedule a rescan, in case the updates make a backend valid
- TQTimer::singleShot( 0, this, TQT_SLOT(slotRescanButtonClicked()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(slotRescanButtonClicked()) );
}
}
else // shouldn't happen, button is disabled
diff --git a/certmanager/lib/ui/backendconfigwidget.h b/certmanager/lib/ui/backendconfigwidget.h
index f0131547..041177a2 100644
--- a/certmanager/lib/ui/backendconfigwidget.h
+++ b/certmanager/lib/ui/backendconfigwidget.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
backendconfigwidget.h
This file is part of libkleopatra, the KDE keymanagement library
@@ -35,7 +35,7 @@
#define __KLEO_UI_BACKENDCONFIGWIDGET_H__
#include <tqwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace Kleo {
class CryptoBackendFactory;
@@ -46,7 +46,7 @@ class TQListViewItem;
namespace Kleo {
class KDE_EXPORT BackendConfigWidget : public TQWidget {
- Q_OBJECT
+ TQ_OBJECT
public:
BackendConfigWidget( CryptoBackendFactory * factory, TQWidget * parent=0, const char * name=0, WFlags f=0 );
diff --git a/certmanager/lib/ui/cryptoconfigdialog.cpp b/certmanager/lib/ui/cryptoconfigdialog.cpp
index 4ec32cbb..40608ee1 100644
--- a/certmanager/lib/ui/cryptoconfigdialog.cpp
+++ b/certmanager/lib/ui/cryptoconfigdialog.cpp
@@ -44,7 +44,7 @@ Kleo::CryptoConfigDialog::CryptoConfigDialog( Kleo::CryptoConfig* config, TQWidg
{
mMainWidget = new CryptoConfigModule( config, this );
setMainWidget( mMainWidget );
- connect( mMainWidget, TQT_SIGNAL( changed() ), TQT_SLOT( slotChanged() ) );
+ connect( mMainWidget, TQ_SIGNAL( changed() ), TQ_SLOT( slotChanged() ) );
enableButton( Apply, false );
if ( mMainWidget->hasError() ) {
showButton( Default, false );
diff --git a/certmanager/lib/ui/cryptoconfigdialog.h b/certmanager/lib/ui/cryptoconfigdialog.h
index 3f6ba328..9ed30c9e 100644
--- a/certmanager/lib/ui/cryptoconfigdialog.h
+++ b/certmanager/lib/ui/cryptoconfigdialog.h
@@ -33,7 +33,7 @@
#define CRYPTOCONFIGDIALOG_H
#include <kdialogbase.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace Kleo {
@@ -45,7 +45,7 @@ namespace Kleo {
*/
class KDE_EXPORT CryptoConfigDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
CryptoConfigDialog( Kleo::CryptoConfig* config, TQWidget *parent = 0, const char* name = 0 );
diff --git a/certmanager/lib/ui/cryptoconfigmodule.cpp b/certmanager/lib/ui/cryptoconfigmodule.cpp
index cfe15442..c6e5594f 100644
--- a/certmanager/lib/ui/cryptoconfigmodule.cpp
+++ b/certmanager/lib/ui/cryptoconfigmodule.cpp
@@ -353,7 +353,7 @@ Kleo::CryptoConfigEntryGUI::CryptoConfigEntryGUI(
const char* name )
: TQObject( module, name ), mEntry( entry ), mName( entryName ), mChanged( false )
{
- connect( this, TQT_SIGNAL( changed() ), module, TQT_SIGNAL( changed() ) );
+ connect( this, TQ_SIGNAL( changed() ), module, TQ_SIGNAL( changed() ) );
}
TQString Kleo::CryptoConfigEntryGUI::description() const
@@ -387,7 +387,7 @@ Kleo::CryptoConfigEntryLineEdit::CryptoConfigEntryLineEdit(
label->setEnabled( false );
mLineEdit->setEnabled( false );
} else {
- connect( mLineEdit, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SLOT( slotChanged() ) );
+ connect( mLineEdit, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( slotChanged() ) );
}
}
@@ -419,7 +419,7 @@ Kleo::CryptoConfigEntryPath::CryptoConfigEntryPath(
label->setEnabled( false );
mUrlRequester->setEnabled( false );
} else {
- connect( mUrlRequester, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SLOT( slotChanged() ) );
+ connect( mUrlRequester, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( slotChanged() ) );
}
}
@@ -453,7 +453,7 @@ Kleo::CryptoConfigEntryDirPath::CryptoConfigEntryDirPath(
label->setEnabled( false );
mUrlRequester->setEnabled( false );
} else {
- connect( mUrlRequester, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SLOT( slotChanged() ) );
+ connect( mUrlRequester, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( slotChanged() ) );
}
}
@@ -488,7 +488,7 @@ Kleo::CryptoConfigEntryURL::CryptoConfigEntryURL(
label->setEnabled( false );
mUrlRequester->setEnabled( false );
} else {
- connect( mUrlRequester, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SLOT( slotChanged() ) );
+ connect( mUrlRequester, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( slotChanged() ) );
}
}
@@ -532,7 +532,7 @@ Kleo::CryptoConfigEntrySpinBox::CryptoConfigEntrySpinBox(
} else {
if ( mKind == UInt || mKind == ListOfNone )
mNumInput->setMinValue( 0 );
- connect( mNumInput, TQT_SIGNAL( valueChanged(int) ), TQT_SLOT( slotChanged() ) );
+ connect( mNumInput, TQ_SIGNAL( valueChanged(int) ), TQ_SLOT( slotChanged() ) );
}
}
@@ -584,7 +584,7 @@ Kleo::CryptoConfigEntryCheckBox::CryptoConfigEntryCheckBox(
if ( entry->isReadOnly() ) {
mCheckBox->setEnabled( false );
} else {
- connect( mCheckBox, TQT_SIGNAL( toggled(bool) ), TQT_SLOT( slotChanged() ) );
+ connect( mCheckBox, TQ_SIGNAL( toggled(bool) ), TQ_SLOT( slotChanged() ) );
}
}
@@ -619,7 +619,7 @@ Kleo::CryptoConfigEntryLDAPURL::CryptoConfigEntryLDAPURL(
mLabel->setEnabled( false );
mPushButton->hide();
} else {
- connect( mPushButton, TQT_SIGNAL( clicked() ), TQT_SLOT( slotOpenDialog() ) );
+ connect( mPushButton, TQ_SIGNAL( clicked() ), TQ_SLOT( slotOpenDialog() ) );
}
}
@@ -644,7 +644,7 @@ void Kleo::CryptoConfigEntryLDAPURL::slotOpenDialog()
DirectoryServicesWidget* dirserv = new DirectoryServicesWidget( mEntry, &dialog );
dirserv->load();
dialog.setMainWidget( dirserv );
- connect( &dialog, TQT_SIGNAL( defaultClicked() ), dirserv, TQT_SLOT( defaults() ) );
+ connect( &dialog, TQ_SIGNAL( defaultClicked() ), dirserv, TQ_SLOT( defaults() ) );
if ( dialog.exec() ) {
// Note that we just grab the urls from the dialog, we don't call its save method,
// since the user hasn't confirmed the big config dialog yet.
diff --git a/certmanager/lib/ui/cryptoconfigmodule.h b/certmanager/lib/ui/cryptoconfigmodule.h
index 2902423c..dd0d3421 100644
--- a/certmanager/lib/ui/cryptoconfigmodule.h
+++ b/certmanager/lib/ui/cryptoconfigmodule.h
@@ -46,7 +46,7 @@ namespace Kleo {
* It's a simple TQWidget so that it can be embedded into a dialog or into a TDECModule.
*/
class CryptoConfigModule : public KJanusWidget {
- Q_OBJECT
+ TQ_OBJECT
public:
CryptoConfigModule( Kleo::CryptoConfig* config, TQWidget * parent=0, const char * name=0 );
diff --git a/certmanager/lib/ui/cryptoconfigmodule_p.h b/certmanager/lib/ui/cryptoconfigmodule_p.h
index c841a092..652d2071 100644
--- a/certmanager/lib/ui/cryptoconfigmodule_p.h
+++ b/certmanager/lib/ui/cryptoconfigmodule_p.h
@@ -57,7 +57,7 @@ namespace Kleo {
* A widget corresponding to a component in the crypto config
*/
class CryptoConfigComponentGUI : public TQWidget {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -77,7 +77,7 @@ namespace Kleo {
* A class managing widgets corresponding to a group in the crypto config
*/
class CryptoConfigGroupGUI : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -109,7 +109,7 @@ namespace Kleo {
* Base class for the widget managers tied to an entry in the crypto config
*/
class CryptoConfigEntryGUI : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
CryptoConfigEntryGUI( CryptoConfigModule* module,
@@ -147,7 +147,7 @@ namespace Kleo {
* A widget manager for a string entry in the crypto config
*/
class CryptoConfigEntryLineEdit : public CryptoConfigEntryGUI {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -167,7 +167,7 @@ namespace Kleo {
* A widget manager for a path entry in the crypto config
*/
class CryptoConfigEntryPath : public CryptoConfigEntryGUI {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -187,7 +187,7 @@ namespace Kleo {
* A widget manager for a directory path entry in the crypto config
*/
class CryptoConfigEntryDirPath : public CryptoConfigEntryGUI {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -207,7 +207,7 @@ namespace Kleo {
* A widget manager for an URL entry in the crypto config
*/
class CryptoConfigEntryURL : public CryptoConfigEntryGUI {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -227,7 +227,7 @@ namespace Kleo {
* A widget manager for an int/uint entry in the crypto config
*/
class CryptoConfigEntrySpinBox : public CryptoConfigEntryGUI {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -247,7 +247,7 @@ namespace Kleo {
* A widget manager for a bool entry in the crypto config
*/
class CryptoConfigEntryCheckBox : public CryptoConfigEntryGUI {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -266,7 +266,7 @@ namespace Kleo {
* A widget manager for a bool entry in the crypto config
*/
class CryptoConfigEntryLDAPURL : public CryptoConfigEntryGUI {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/certmanager/lib/ui/directoryserviceswidget.h b/certmanager/lib/ui/directoryserviceswidget.h
index a98bc5fe..5514e877 100644
--- a/certmanager/lib/ui/directoryserviceswidget.h
+++ b/certmanager/lib/ui/directoryserviceswidget.h
@@ -34,7 +34,7 @@
#define DIRECTORYSERVICESWIDGET_H
#include "directoryserviceswidgetbase.h"
#include <kurl.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class CryptPlugWrapper;
namespace Kleo {
@@ -43,7 +43,7 @@ class CryptoConfigEntry;
class KDE_EXPORT DirectoryServicesWidget : public DirectoryServicesWidgetBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/certmanager/lib/ui/directoryserviceswidgetbase.ui b/certmanager/lib/ui/directoryserviceswidgetbase.ui
index fcc7d493..c34b16f1 100644
--- a/certmanager/lib/ui/directoryserviceswidgetbase.ui
+++ b/certmanager/lib/ui/directoryserviceswidgetbase.ui
@@ -330,13 +330,13 @@ By clicking this button, you can remove the currently selected directory service
<slot>slotMoveDown()</slot>
</connection>
</connections>
-<Q_SLOTS>
+<slots>
<slot access="protected">slotAddService()</slot>
<slot access="protected">slotDeleteService()</slot>
<slot access="protected">slotServiceChanged( TQListViewItem* )</slot>
<slot access="protected">slotServiceSelected( TQListViewItem* )</slot>
<slot access="protected">slotMoveUp()</slot>
<slot access="protected">slotMoveDown()</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
</UI>
diff --git a/certmanager/lib/ui/dnattributeorderconfigwidget.cpp b/certmanager/lib/ui/dnattributeorderconfigwidget.cpp
index b2f1343a..38c4df9d 100644
--- a/certmanager/lib/ui/dnattributeorderconfigwidget.cpp
+++ b/certmanager/lib/ui/dnattributeorderconfigwidget.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
dnattributeorderconfigwidget.cpp
This file is part of libkleopatra, the KDE keymanagement library
@@ -105,10 +105,10 @@ Kleo::DNAttributeOrderConfigWidget::DNAttributeOrderConfigWidget( DNAttributeMap
d->currentLV->setSorting( -1 );
glay->addWidget( d->currentLV, row, 2 );
- connect( d->availableLV, TQT_SIGNAL(clicked( TQListViewItem * )),
- TQT_SLOT(slotAvailableSelectionChanged(TQListViewItem*)) );
- connect( d->currentLV, TQT_SIGNAL(clicked(TQListViewItem*)),
- TQT_SLOT(slotCurrentOrderSelectionChanged(TQListViewItem*)) );
+ connect( d->availableLV, TQ_SIGNAL(clicked( TQListViewItem * )),
+ TQ_SLOT(slotAvailableSelectionChanged(TQListViewItem*)) );
+ connect( d->currentLV, TQ_SIGNAL(clicked(TQListViewItem*)),
+ TQ_SLOT(slotCurrentOrderSelectionChanged(TQListViewItem*)) );
d->placeHolderItem = new TQListViewItem( d->availableLV, "_X_", i18n("All others") );
@@ -123,12 +123,12 @@ Kleo::DNAttributeOrderConfigWidget::DNAttributeOrderConfigWidget( DNAttributeMap
const char * tooltip;
const char * slot;
} navButtons[] = {
- { "2uparrow", 0, 1, I18N_NOOP( "Move to top" ), TQT_SLOT(slotDoubleUpButtonClicked()) },
- { "1uparrow", 1, 1, I18N_NOOP( "Move one up" ), TQT_SLOT(slotUpButtonClicked()) },
- { "1leftarrow", 2, 0, I18N_NOOP( "Remove from current attribute order" ), TQT_SLOT(slotLeftButtonClicked()) },
- { "1rightarrow", 2, 2, I18N_NOOP( "Add to current attribute order" ), TQT_SLOT(slotRightButtonClicked()) },
- { "1downarrow", 3, 1, I18N_NOOP( "Move one down" ), TQT_SLOT(slotDownButtonClicked()) },
- { "2downarrow", 4, 1, I18N_NOOP( "Move to bottom" ), TQT_SLOT(slotDoubleDownButtonClicked()) }
+ { "2uparrow", 0, 1, I18N_NOOP( "Move to top" ), TQ_SLOT(slotDoubleUpButtonClicked()) },
+ { "1uparrow", 1, 1, I18N_NOOP( "Move one up" ), TQ_SLOT(slotUpButtonClicked()) },
+ { "1leftarrow", 2, 0, I18N_NOOP( "Remove from current attribute order" ), TQ_SLOT(slotLeftButtonClicked()) },
+ { "1rightarrow", 2, 2, I18N_NOOP( "Add to current attribute order" ), TQ_SLOT(slotRightButtonClicked()) },
+ { "1downarrow", 3, 1, I18N_NOOP( "Move one down" ), TQ_SLOT(slotDownButtonClicked()) },
+ { "2downarrow", 4, 1, I18N_NOOP( "Move to bottom" ), TQ_SLOT(slotDoubleDownButtonClicked()) }
};
for ( unsigned int i = 0 ; i < sizeof navButtons / sizeof *navButtons ; ++i ) {
@@ -137,7 +137,7 @@ Kleo::DNAttributeOrderConfigWidget::DNAttributeOrderConfigWidget( DNAttributeMap
tb->setEnabled( false );
TQToolTip::add( tb, i18n( navButtons[i].tooltip ) );
xlay->addWidget( tb, navButtons[i].row, navButtons[i].col );
- connect( tb, TQT_SIGNAL(clicked()), navButtons[i].slot );
+ connect( tb, TQ_SIGNAL(clicked()), navButtons[i].slot );
}
glay->addLayout( xlay, row, 1 );
diff --git a/certmanager/lib/ui/dnattributeorderconfigwidget.h b/certmanager/lib/ui/dnattributeorderconfigwidget.h
index b7ba1330..70c093d4 100644
--- a/certmanager/lib/ui/dnattributeorderconfigwidget.h
+++ b/certmanager/lib/ui/dnattributeorderconfigwidget.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
dnattributeorderconfigwidget.h
This file is part of libkleopatra, the KDE keymanagement library
@@ -34,7 +34,7 @@
#define __KLEO_UI_DNATTRIBUTEORDERCONFIGWIDGET_H__
#include <tqwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace Kleo {
class DNAttributeMapper;
}
@@ -44,7 +44,7 @@ class TQListViewItem;
namespace Kleo {
class KDE_EXPORT DNAttributeOrderConfigWidget : public TQWidget {
- Q_OBJECT
+ TQ_OBJECT
public:
/*! Use Kleo::DNAttributeMapper::instance()->configWidget( parent, name ) instead. */
diff --git a/certmanager/lib/ui/kdhorizontalline.cpp b/certmanager/lib/ui/kdhorizontalline.cpp
index 118b6b10..2892a05e 100644
--- a/certmanager/lib/ui/kdhorizontalline.cpp
+++ b/certmanager/lib/ui/kdhorizontalline.cpp
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
KD Tools - a set of useful widgets for TQt
*/
diff --git a/certmanager/lib/ui/kdhorizontalline.h b/certmanager/lib/ui/kdhorizontalline.h
index 71c1c928..e9b9646f 100644
--- a/certmanager/lib/ui/kdhorizontalline.h
+++ b/certmanager/lib/ui/kdhorizontalline.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
KD Tools - a set of useful widgets for TQt
*/
@@ -45,7 +45,7 @@
#include <tqstring.h>
class KDHorizontalLine : public TQFrame {
- Q_OBJECT
+ TQ_OBJECT
TQ_PROPERTY( TQString title READ title WRITE setTitle )
public:
diff --git a/certmanager/lib/ui/keyapprovaldialog.cpp b/certmanager/lib/ui/keyapprovaldialog.cpp
index 0ee6d865..fd796b8d 100644
--- a/certmanager/lib/ui/keyapprovaldialog.cpp
+++ b/certmanager/lib/ui/keyapprovaldialog.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
keyapprovaldialog.h
This file is part of libkleopatra, the KDE keymanagement library
@@ -139,7 +139,7 @@ Kleo::KeyApprovalDialog::KeyApprovalDialog( const std::vector<Item> & recipients
d->selfRequester->setKeys( sender );
glay->addWidget( d->selfRequester, row, 1 );
++row;
- glay->addMultiCellWidget( new KSeparator( Qt::Horizontal, view ), row, row, 0, 1 );
+ glay->addMultiCellWidget( new KSeparator( TQt::Horizontal, view ), row, row, 0, 1 );
}
const TQStringList prefs = preferencesStrings();
@@ -163,7 +163,7 @@ Kleo::KeyApprovalDialog::KeyApprovalDialog( const std::vector<Item> & recipients
cb->insertStringList( prefs );
glay->addWidget( cb, row, 1 );
cb->setCurrentItem( pref2cb( it->pref ) );
- connect( cb, TQT_SIGNAL(activated(int)), TQT_SLOT(slotPrefsChanged()) );
+ connect( cb, TQ_SIGNAL(activated(int)), TQ_SLOT(slotPrefsChanged()) );
d->preferences.push_back( cb );
}
diff --git a/certmanager/lib/ui/keyapprovaldialog.h b/certmanager/lib/ui/keyapprovaldialog.h
index bd953fa3..d6a59b09 100644
--- a/certmanager/lib/ui/keyapprovaldialog.h
+++ b/certmanager/lib/ui/keyapprovaldialog.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
keyselectiondialog.h
This file is part of libkleopatra, the KDE keymanagement library
@@ -40,7 +40,7 @@
#include <kleo/enum.h>
#include <kdialogbase.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <kpgpkey.h> // for EncryptPref
#include <gpgmepp/key.h>
@@ -56,7 +56,7 @@ class TQStringList;
namespace Kleo {
class KDE_EXPORT KeyApprovalDialog : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
struct Item {
diff --git a/certmanager/lib/ui/keylistview.cpp b/certmanager/lib/ui/keylistview.cpp
index 00f69500..af067b1e 100644
--- a/certmanager/lib/ui/keylistview.cpp
+++ b/certmanager/lib/ui/keylistview.cpp
@@ -123,14 +123,14 @@ static const struct {
const char * source;
const char * target;
} signalReplacements[] = {
- { TQT_SIGNAL(doubleClicked(TQListViewItem*,const TQPoint&,int)),
- TQT_SLOT(slotEmitDoubleClicked(TQListViewItem*,const TQPoint&,int)) },
- { TQT_SIGNAL(returnPressed(TQListViewItem*)),
- TQT_SLOT(slotEmitReturnPressed(TQListViewItem*)) },
- { TQT_SIGNAL(selectionChanged(TQListViewItem*)),
- TQT_SLOT(slotEmitSelectionChanged(TQListViewItem*)) },
- { TQT_SIGNAL(contextMenu(TDEListView*, TQListViewItem*,const TQPoint&)),
- TQT_SLOT(slotEmitContextMenu(TDEListView*, TQListViewItem*,const TQPoint&)) },
+ { TQ_SIGNAL(doubleClicked(TQListViewItem*,const TQPoint&,int)),
+ TQ_SLOT(slotEmitDoubleClicked(TQListViewItem*,const TQPoint&,int)) },
+ { TQ_SIGNAL(returnPressed(TQListViewItem*)),
+ TQ_SLOT(slotEmitReturnPressed(TQListViewItem*)) },
+ { TQ_SIGNAL(selectionChanged(TQListViewItem*)),
+ TQ_SLOT(slotEmitSelectionChanged(TQListViewItem*)) },
+ { TQ_SIGNAL(contextMenu(TDEListView*, TQListViewItem*,const TQPoint&)),
+ TQ_SLOT(slotEmitContextMenu(TDEListView*, TQListViewItem*,const TQPoint&)) },
};
static const int numSignalReplacements = sizeof signalReplacements / sizeof *signalReplacements;
@@ -146,7 +146,7 @@ Kleo::KeyListView::KeyListView( const ColumnStrategy * columnStrategy, const Dis
d = new Private();
d->updateTimer = new TQTimer( this );
- connect( d->updateTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotUpdateTimeout()) );
+ connect( d->updateTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotUpdateTimeout()) );
if ( !columnStrategy ) {
kdWarning(5150) << "Kleo::KeyListView: need a column strategy to work with!" << endl;
diff --git a/certmanager/lib/ui/keylistview.h b/certmanager/lib/ui/keylistview.h
index 4149cb41..414e4dea 100644
--- a/certmanager/lib/ui/keylistview.h
+++ b/certmanager/lib/ui/keylistview.h
@@ -36,7 +36,7 @@
#include <tdelistview.h>
#include <gpgmepp/key.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQPainter;
class TQColorGroup;
@@ -199,7 +199,7 @@ namespace Kleo {
class KDE_EXPORT KeyListView : public TDEListView {
- Q_OBJECT
+ TQ_OBJECT
friend class KeyListViewItem;
public:
diff --git a/certmanager/lib/ui/keyrequester.cpp b/certmanager/lib/ui/keyrequester.cpp
index c9516a2b..6dd1b05e 100644
--- a/certmanager/lib/ui/keyrequester.cpp
+++ b/certmanager/lib/ui/keyrequester.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
keyrequester.cpp
This file is part of libkleopatra, the KDE keymanagement library
@@ -130,8 +130,8 @@ void Kleo::KeyRequester::init()
hlay->addWidget( mEraseButton );
hlay->addWidget( mDialogButton );
- connect( mEraseButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotEraseButtonClicked()) );
- connect( mDialogButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotDialogButtonClicked()) );
+ connect( mEraseButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotEraseButtonClicked()) );
+ connect( mDialogButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotDialogButtonClicked()) );
setSizePolicy( TQSizePolicy( TQSizePolicy::MinimumExpanding,
TQSizePolicy::Fixed ) );
@@ -264,10 +264,10 @@ void Kleo::KeyRequester::startKeyListJob( const TQStringList & fingerprints ) {
"Check your installation."),
i18n("Key Listing Failed") );
} else {
- connect( job, TQT_SIGNAL(result(const GpgME::KeyListResult&)),
- TQT_SLOT(slotKeyListResult(const GpgME::KeyListResult&)) );
- connect( job, TQT_SIGNAL(nextKey(const GpgME::Key&)),
- TQT_SLOT(slotNextKey(const GpgME::Key&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::KeyListResult&)),
+ TQ_SLOT(slotKeyListResult(const GpgME::KeyListResult&)) );
+ connect( job, TQ_SIGNAL(nextKey(const GpgME::Key&)),
+ TQ_SLOT(slotNextKey(const GpgME::Key&)) );
const GpgME::Error err = job->start( fingerprints,
mKeyUsage & Kleo::KeySelectionDialog::SecretKeys &&
@@ -288,10 +288,10 @@ void Kleo::KeyRequester::startKeyListJob( const TQStringList & fingerprints ) {
"Check your installation."),
i18n("Key Listing Failed") );
} else {
- connect( job, TQT_SIGNAL(result(const GpgME::KeyListResult&)),
- TQT_SLOT(slotKeyListResult(const GpgME::KeyListResult&)) );
- connect( job, TQT_SIGNAL(nextKey(const GpgME::Key&)),
- TQT_SLOT(slotNextKey(const GpgME::Key&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::KeyListResult&)),
+ TQ_SLOT(slotKeyListResult(const GpgME::KeyListResult&)) );
+ connect( job, TQ_SIGNAL(nextKey(const GpgME::Key&)),
+ TQ_SLOT(slotNextKey(const GpgME::Key&)) );
const GpgME::Error err = job->start( fingerprints,
mKeyUsage & Kleo::KeySelectionDialog::SecretKeys &&
diff --git a/certmanager/lib/ui/keyrequester.h b/certmanager/lib/ui/keyrequester.h
index 899d3cde..2f7b3b26 100644
--- a/certmanager/lib/ui/keyrequester.h
+++ b/certmanager/lib/ui/keyrequester.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
keyrequester.h
This file is part of libkleopatra, the KDE keymanagement library
@@ -53,7 +53,7 @@
#include <kleo/cryptobackend.h>
#include <vector>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace Kleo {
class KeyListView;
@@ -74,7 +74,7 @@ namespace Kleo {
/// Base class for SigningKeyRequester and EncryptionKeyRequester
class KDE_EXPORT KeyRequester : public TQWidget {
- Q_OBJECT
+ TQ_OBJECT
public:
KeyRequester( unsigned int allowedKeys, bool multipleKeys=false,
@@ -160,7 +160,7 @@ namespace Kleo {
class KDE_EXPORT EncryptionKeyRequester : public KeyRequester {
- Q_OBJECT
+ TQ_OBJECT
public:
enum { OpenPGP = 1, SMIME = 2, AllProtocols = OpenPGP|SMIME };
@@ -188,7 +188,7 @@ namespace Kleo {
class KDE_EXPORT SigningKeyRequester : public KeyRequester {
- Q_OBJECT
+ TQ_OBJECT
public:
enum { OpenPGP = 1, SMIME = 2, AllProtocols = OpenPGP|SMIME };
diff --git a/certmanager/lib/ui/keyselectiondialog.cpp b/certmanager/lib/ui/keyselectiondialog.cpp
index c46228a4..1de21dc0 100644
--- a/certmanager/lib/ui/keyselectiondialog.cpp
+++ b/certmanager/lib/ui/keyselectiondialog.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
keyselectiondialog.cpp
This file is part of libkleopatra, the KDE keymanagement library
@@ -377,8 +377,8 @@ void Kleo::KeySelectionDialog::init( bool rememberChoice, bool extendedSelection
if ( !text.isEmpty() ) {
if ( text.startsWith( "<qt>" ) ) {
KActiveLabel *textLabel = new KActiveLabel( text, page );
- disconnect( textLabel, TQT_SIGNAL(linkClicked(const TQString&)), textLabel, TQT_SLOT(openLink(const TQString&)) );
- connect( textLabel, TQT_SIGNAL(linkClicked(const TQString&)), TQT_SLOT(slotStartCertificateManager(const TQString&)) );
+ disconnect( textLabel, TQ_SIGNAL(linkClicked(const TQString&)), textLabel, TQ_SLOT(openLink(const TQString&)) );
+ connect( textLabel, TQ_SIGNAL(linkClicked(const TQString&)), TQ_SLOT(slotStartCertificateManager(const TQString&)) );
textLabel->setAlignment( textLabel->alignment() | TQt::WordBreak );
mTopLayout->addWidget( textLabel );
} else {
@@ -391,7 +391,7 @@ void Kleo::KeySelectionDialog::init( bool rememberChoice, bool extendedSelection
TQPushButton * const searchExternalPB
= new TQPushButton( i18n("Search for &External Certificates"), page );
mTopLayout->addWidget( searchExternalPB, 0, TQt::AlignLeft );
- connect( searchExternalPB, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotStartSearchForExternalCertificates()) );
+ connect( searchExternalPB, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotStartSearchForExternalCertificates()) );
if ( initialQuery.isEmpty() )
searchExternalPB->hide();
@@ -406,10 +406,10 @@ void Kleo::KeySelectionDialog::init( bool rememberChoice, bool extendedSelection
hlay->addWidget( le, 1 );
le->setFocus();
- connect( clearButton, TQT_SIGNAL( clicked() ), le, TQT_SLOT( clear() ) );
- connect( le, TQT_SIGNAL(textChanged(const TQString&)),
- this, TQT_SLOT(slotSearch(const TQString&)) );
- connect( mStartSearchTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotFilter()) );
+ connect( clearButton, TQ_SIGNAL( clicked() ), le, TQ_SLOT( clear() ) );
+ connect( le, TQ_SIGNAL(textChanged(const TQString&)),
+ this, TQ_SLOT(slotSearch(const TQString&)) );
+ connect( mStartSearchTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotFilter()) );
mKeyListView = new KeyListView( new ColumnStrategy( mKeyUsage ), 0, page, "mKeyListView" );
mKeyListView->setResizeMode( TQListView::LastColumn );
@@ -430,21 +430,21 @@ void Kleo::KeySelectionDialog::init( bool rememberChoice, bool extendedSelection
"</p></qt>") );
}
- connect( mCheckSelectionTimer, TQT_SIGNAL(timeout()),
- TQT_SLOT(slotCheckSelection()) );
+ connect( mCheckSelectionTimer, TQ_SIGNAL(timeout()),
+ TQ_SLOT(slotCheckSelection()) );
connectSignals();
connect( mKeyListView,
- TQT_SIGNAL(doubleClicked(Kleo::KeyListViewItem*,const TQPoint&,int)),
- TQT_SLOT(slotTryOk()) );
+ TQ_SIGNAL(doubleClicked(Kleo::KeyListViewItem*,const TQPoint&,int)),
+ TQ_SLOT(slotTryOk()) );
connect( mKeyListView,
- TQT_SIGNAL(contextMenu(Kleo::KeyListViewItem*,const TQPoint&)),
- TQT_SLOT(slotRMB(Kleo::KeyListViewItem*,const TQPoint&)) );
+ TQ_SIGNAL(contextMenu(Kleo::KeyListViewItem*,const TQPoint&)),
+ TQ_SLOT(slotRMB(Kleo::KeyListViewItem*,const TQPoint&)) );
setButtonText( KDialogBase::Default, i18n("&Reread Keys") );
setButtonGuiItem( KDialogBase::Help, i18n("&Start Certificate Manager") );
- connect( this, TQT_SIGNAL(defaultClicked()), this, TQT_SLOT(slotRereadKeys()) );
- connect( this, TQT_SIGNAL(helpClicked()), this, TQT_SLOT(slotStartCertificateManager()) );
+ connect( this, TQ_SIGNAL(defaultClicked()), this, TQ_SLOT(slotRereadKeys()) );
+ connect( this, TQ_SIGNAL(helpClicked()), this, TQ_SLOT(slotStartCertificateManager()) );
slotRereadKeys();
mTopLayout->activate();
@@ -468,20 +468,20 @@ Kleo::KeySelectionDialog::~KeySelectionDialog() {
void Kleo::KeySelectionDialog::connectSignals() {
if ( mKeyListView->isMultiSelection() )
- connect( mKeyListView, TQT_SIGNAL(selectionChanged()),
- TQT_SLOT(slotSelectionChanged()) );
+ connect( mKeyListView, TQ_SIGNAL(selectionChanged()),
+ TQ_SLOT(slotSelectionChanged()) );
else
- connect( mKeyListView, TQT_SIGNAL(selectionChanged(Kleo::KeyListViewItem*)),
- TQT_SLOT(slotCheckSelection(Kleo::KeyListViewItem*)) );
+ connect( mKeyListView, TQ_SIGNAL(selectionChanged(Kleo::KeyListViewItem*)),
+ TQ_SLOT(slotCheckSelection(Kleo::KeyListViewItem*)) );
}
void Kleo::KeySelectionDialog::disconnectSignals() {
if ( mKeyListView->isMultiSelection() )
- disconnect( mKeyListView, TQT_SIGNAL(selectionChanged()),
- this, TQT_SLOT(slotSelectionChanged()) );
+ disconnect( mKeyListView, TQ_SIGNAL(selectionChanged()),
+ this, TQ_SLOT(slotSelectionChanged()) );
else
- disconnect( mKeyListView, TQT_SIGNAL(selectionChanged(Kleo::KeyListViewItem*)),
- this, TQT_SLOT(slotCheckSelection(Kleo::KeyListViewItem*)) );
+ disconnect( mKeyListView, TQ_SIGNAL(selectionChanged(Kleo::KeyListViewItem*)),
+ this, TQ_SLOT(slotCheckSelection(Kleo::KeyListViewItem*)) );
}
const GpgME::Key & Kleo::KeySelectionDialog::selectedKey() const {
@@ -593,12 +593,12 @@ void Kleo::KeySelectionDialog::startKeyListJobForBackend( const CryptoBackend::P
return;
}
- connect( job, TQT_SIGNAL(result(const GpgME::KeyListResult&)),
- TQT_SLOT(slotKeyListResult(const GpgME::KeyListResult&)) );
- connect( job, TQT_SIGNAL(nextKey(const GpgME::Key&)),
+ connect( job, TQ_SIGNAL(result(const GpgME::KeyListResult&)),
+ TQ_SLOT(slotKeyListResult(const GpgME::KeyListResult&)) );
+ connect( job, TQ_SIGNAL(nextKey(const GpgME::Key&)),
mKeyListView, validate ?
- TQT_SLOT(slotRefreshKey(const GpgME::Key&)) :
- TQT_SLOT(slotAddKey(const GpgME::Key&)) );
+ TQ_SLOT(slotRefreshKey(const GpgME::Key&)) :
+ TQ_SLOT(slotAddKey(const GpgME::Key&)) );
TQStringList fprs;
std::transform( keys.begin(), keys.end(), std::back_inserter( fprs ), ExtractFingerprint() );
@@ -756,7 +756,7 @@ void Kleo::KeySelectionDialog::slotRMB( Kleo::KeyListViewItem * item, const TQPo
mCurrentContextMenuItem = item;
TQPopupMenu menu;
- menu.insertItem( i18n( "Recheck Key" ), this, TQT_SLOT(slotRecheckKey()) );
+ menu.insertItem( i18n( "Recheck Key" ), this, TQ_SLOT(slotRecheckKey()) );
menu.exec( p );
}
diff --git a/certmanager/lib/ui/keyselectiondialog.h b/certmanager/lib/ui/keyselectiondialog.h
index 630255c1..c8c833dd 100644
--- a/certmanager/lib/ui/keyselectiondialog.h
+++ b/certmanager/lib/ui/keyselectiondialog.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
keyselectiondialog.h
This file is part of libkleopatra, the KDE keymanagement library
@@ -41,7 +41,7 @@
#include <kleo/cryptobackend.h>
#include <gpgmepp/key.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <vector>
class TQVBoxLayout;
@@ -64,7 +64,7 @@ namespace GpgME {
namespace Kleo {
class KDE_EXPORT KeySelectionDialog : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/certmanager/lib/ui/messagebox.cpp b/certmanager/lib/ui/messagebox.cpp
index fa14bfbe..689c094e 100644
--- a/certmanager/lib/ui/messagebox.cpp
+++ b/certmanager/lib/ui/messagebox.cpp
@@ -74,7 +74,7 @@ static KGuiItem KGuiItem_showAuditLog() {
}
class AuditLogViewer : public KDialogBase {
- // Q_OBJECT
+ // TQ_OBJECT
public:
explicit AuditLogViewer( const TQString & log, TQWidget * parent=0, const char * name=0, WFlags f=0 )
diff --git a/certmanager/lib/ui/passphrasedialog.cpp b/certmanager/lib/ui/passphrasedialog.cpp
index 990f93cd..68837d38 100644
--- a/certmanager/lib/ui/passphrasedialog.cpp
+++ b/certmanager/lib/ui/passphrasedialog.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
passphrasedialog.cpp
This file is part of libkleopatra, the KDE keymanagement library
@@ -90,7 +90,7 @@ Kleo::PassphraseDialog::PassphraseDialog( const TQString & msg, const TQString &
vlay->addWidget( d->lineedit );
- connect( d->lineedit, TQT_SIGNAL(returnPressed()), TQT_SLOT(slotOk()) );
+ connect( d->lineedit, TQ_SIGNAL(returnPressed()), TQ_SLOT(slotOk()) );
disableResize();
}
diff --git a/certmanager/lib/ui/passphrasedialog.h b/certmanager/lib/ui/passphrasedialog.h
index 6515fa4c..15d0a157 100644
--- a/certmanager/lib/ui/passphrasedialog.h
+++ b/certmanager/lib/ui/passphrasedialog.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
passphrasedialog.h
This file is part of libkleopatra, the KDE keymanagement library
@@ -54,7 +54,7 @@
namespace Kleo {
class PassphraseDialog : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
PassphraseDialog( const TQString & description,
diff --git a/certmanager/lib/ui/progressbar.cpp b/certmanager/lib/ui/progressbar.cpp
index 6fe2f531..8c530a56 100644
--- a/certmanager/lib/ui/progressbar.cpp
+++ b/certmanager/lib/ui/progressbar.cpp
@@ -44,7 +44,7 @@ Kleo::ProgressBar::ProgressBar( TQWidget * parent, const char * name, WFlags f )
mRealProgress( -1 )
{
mBusyTimer = new TQTimer( this );
- connect( mBusyTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotBusyTimerTick()) );
+ connect( mBusyTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotBusyTimerTick()) );
fixup( true );
}
diff --git a/certmanager/lib/ui/progressbar.h b/certmanager/lib/ui/progressbar.h
index 51f86dad..ead5b12c 100644
--- a/certmanager/lib/ui/progressbar.h
+++ b/certmanager/lib/ui/progressbar.h
@@ -34,7 +34,7 @@
#define __KLEO_PROGRESSBAR_H__
#include <tqprogressbar.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQTimer;
namespace Kleo {
@@ -43,7 +43,7 @@ namespace Kleo {
@short A TQProgressBar with self-powered busy indicator
*/
class KDE_EXPORT ProgressBar : public TQProgressBar {
- Q_OBJECT
+ TQ_OBJECT
public:
ProgressBar( TQWidget * parent=0, const char * name=0, WFlags f=0 );
diff --git a/certmanager/lib/ui/progressdialog.cpp b/certmanager/lib/ui/progressdialog.cpp
index 692ee4cb..b99db7cb 100644
--- a/certmanager/lib/ui/progressdialog.cpp
+++ b/certmanager/lib/ui/progressdialog.cpp
@@ -56,13 +56,13 @@ Kleo::ProgressDialog::ProgressDialog( Job * job, const TQString & baseText,
setLabelText( baseText );
setProgress( 0, 0 ); // activate busy indicator
- connect( job, TQT_SIGNAL(progress(const TQString&,int,int)),
- TQT_SLOT(slotProgress(const TQString&,int,int)) );
- connect( job, TQT_SIGNAL(done()), TQT_SLOT(slotDone()) );
- connect( this, TQT_SIGNAL(canceled()),
- job, TQT_SLOT(slotCancel()) );
+ connect( job, TQ_SIGNAL(progress(const TQString&,int,int)),
+ TQ_SLOT(slotProgress(const TQString&,int,int)) );
+ connect( job, TQ_SIGNAL(done()), TQ_SLOT(slotDone()) );
+ connect( this, TQ_SIGNAL(canceled()),
+ job, TQ_SLOT(slotCancel()) );
- TQTimer::singleShot( minimumDuration(), this, TQT_SLOT(forceShow()) );
+ TQTimer::singleShot( minimumDuration(), this, TQ_SLOT(forceShow()) );
}
Kleo::ProgressDialog::~ProgressDialog() {
@@ -71,7 +71,7 @@ Kleo::ProgressDialog::~ProgressDialog() {
void Kleo::ProgressDialog::setMinimumDuration( int ms ) {
if ( 0 < ms && ms < minimumDuration() )
- TQTimer::singleShot( ms, this, TQT_SLOT(forceShow()) );
+ TQTimer::singleShot( ms, this, TQ_SLOT(forceShow()) );
TQProgressDialog::setMinimumDuration( ms );
}
diff --git a/certmanager/lib/ui/progressdialog.h b/certmanager/lib/ui/progressdialog.h
index dadfd769..35b1886d 100644
--- a/certmanager/lib/ui/progressdialog.h
+++ b/certmanager/lib/ui/progressdialog.h
@@ -35,7 +35,7 @@
#include <tqprogressdialog.h>
#include <tqstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace Kleo {
class Job;
@@ -44,7 +44,7 @@ namespace Kleo {
@short A progress dialog for Kleo::Jobs
*/
class KDE_EXPORT ProgressDialog : public TQProgressDialog {
- Q_OBJECT
+ TQ_OBJECT
public:
ProgressDialog( Job * job, const TQString & baseText,
diff --git a/certmanager/storedtransferjob.cpp b/certmanager/storedtransferjob.cpp
index b9816c89..3803502d 100644
--- a/certmanager/storedtransferjob.cpp
+++ b/certmanager/storedtransferjob.cpp
@@ -30,10 +30,10 @@ StoredTransferJob::StoredTransferJob(const KURL& url, int command,
: TDEIO::TransferJob( url, command, packedArgs, _staticData, showProgressInfo ),
m_uploadOffset( 0 )
{
- connect( this, TQT_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
- TQT_SLOT( slotData( TDEIO::Job *, const TQByteArray & ) ) );
- connect( this, TQT_SIGNAL( dataReq( TDEIO::Job *, TQByteArray & ) ),
- TQT_SLOT( slotDataReq( TDEIO::Job *, TQByteArray & ) ) );
+ connect( this, TQ_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
+ TQ_SLOT( slotData( TDEIO::Job *, const TQByteArray & ) ) );
+ connect( this, TQ_SIGNAL( dataReq( TDEIO::Job *, TQByteArray & ) ),
+ TQ_SLOT( slotDataReq( TDEIO::Job *, TQByteArray & ) ) );
}
void StoredTransferJob::setData( const TQByteArray& arr )
diff --git a/certmanager/storedtransferjob.h b/certmanager/storedtransferjob.h
index cfbc6811..bdd7988e 100644
--- a/certmanager/storedtransferjob.h
+++ b/certmanager/storedtransferjob.h
@@ -45,7 +45,7 @@ namespace TDEIOext {
*
*/
class StoredTransferJob : public TDEIO::TransferJob {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/cmake b/cmake
deleted file mode 160000
-Subproject 374fcabb184ddc3d455d8037a9cbdc20fd60744
diff --git a/config.h.cmake b/config.h.cmake
index 6a53137b..a4700493 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -43,6 +43,7 @@
#cmakedefine STD_NAMESPACE_PREFIX @STD_NAMESPACE_PREFIX@
// kaddressbook
+#cmakedefine HAVE_GNOKII_H 1
#cmakedefine TDEPIM_NEW_DISTRLISTS 1
// karm
@@ -72,3 +73,22 @@ unsigned long strlcat(char*, const char*, unsigned long);
}
#endif
#endif
+
+// tderesources/groupwise/soap
+#cmakedefine HAVE_STRRCHR
+#cmakedefine HAVE_STRTOD
+#cmakedefine HAVE_SSCANF
+#cmakedefine HAVE_STRTOL
+#cmakedefine HAVE_STRTOUL
+#cmakedefine HAVE_STRTOLL
+#cmakedefine HAVE_STRTOULL
+#cmakedefine HAVE_GETTIMEOFDAY
+#cmakedefine HAVE_SYS_TIMEB_H
+#cmakedefine HAVE_FTIME
+#cmakedefine HAVE_RAND_R
+#cmakedefine HAVE_GMTIME_R
+#cmakedefine HAVE_LOCALTIME_R
+#cmakedefine HAVE_TIMEGM
+#cmakedefine HAVE_WCTOMB
+#cmakedefine HAVE_MBTOWC
+#cmakedefine HAVE_ISNAN
diff --git a/dependency-graph.dot b/dependency-graph.dot
index 9e9953d4..cfc85ebe 100644
--- a/dependency-graph.dot
+++ b/dependency-graph.dot
@@ -26,7 +26,6 @@ digraph "inter-dependency graph for tdepim" {
"libkcal" -> "kalarm";
"libkcal" -> "karm";
"libkcal" -> "tdefile-plugins";
- "libkcal" -> "kitchensync";
"libkcal" -> "knotes";
"libkcal" -> "konsolekalendar";
"libkcal" -> "korganizer";
@@ -45,7 +44,6 @@ digraph "inter-dependency graph for tdepim" {
"libtdepim" -> "kandy";
"libtdepim" -> "karm";
"libtdepim" -> "tdeioslaves";
- "libtdepim" -> "kitchensync";
"libtdepim" -> "kmail";
"libtdepim" -> "knode";
"libtdepim" -> "knotes";
diff --git a/doc/akregator/index.docbook b/doc/akregator/index.docbook
index c460a0ee..f872e1de 100644
--- a/doc/akregator/index.docbook
+++ b/doc/akregator/index.docbook
@@ -1152,12 +1152,3 @@ Documentation copyright 2006
&documentation.index;
</book>
-<!--
-Local Variables:
-mode: sgml
-sgml-minimize-attributes: nil
-sgml-general-insert-case: lower
-sgml-indent-step:0
-sgml-indent-data:nil
-End:
---> \ No newline at end of file
diff --git a/doc/api/Doxyfile.pim b/doc/api/Doxyfile.pim
index 62cf6790..2f238502 100644
--- a/doc/api/Doxyfile.pim
+++ b/doc/api/Doxyfile.pim
@@ -930,7 +930,7 @@ INCLUDE_FILE_PATTERNS =
PREDEFINED = TQT_VERSION=320 \
__cplusplus \
- Q_WS_X11
+ TQ_WS_X11
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.
diff --git a/doc/kalarm/index.docbook b/doc/kalarm/index.docbook
index 0d5565c9..a85022ff 100644
--- a/doc/kalarm/index.docbook
+++ b/doc/kalarm/index.docbook
@@ -2700,8 +2700,8 @@ at some future date.</para></note>
</refnamediv>
<refsynopsisdiv>
<synopsis>
-void cancelEvent(const QString&amp; <replaceable>calendarFile</replaceable>,
- const QString&amp; <replaceable>eventID</replaceable>)
+void cancelEvent(const TQString&amp; <replaceable>calendarFile</replaceable>,
+ const TQString&amp; <replaceable>eventID</replaceable>)
</synopsis>
<refsect2>
@@ -2751,8 +2751,8 @@ ignored.</para></note>
</refnamediv>
<refsynopsisdiv>
<synopsis>
-void triggerEvent(const QString&amp; <replaceable>calendarFile</replaceable>,
- const QString&amp; <replaceable>eventID</replaceable>)
+void triggerEvent(const TQString&amp; <replaceable>calendarFile</replaceable>,
+ const TQString&amp; <replaceable>eventID</replaceable>)
</synopsis>
<refsect2>
@@ -2809,8 +2809,8 @@ ignored.</para></note>
</refnamediv>
<refsynopsisdiv>
<synopsis>
-void handleEvent(const QString&amp; <replaceable>calendarFile</replaceable>,
- const QString&amp; <replaceable>eventID</replaceable>)
+void handleEvent(const TQString&amp; <replaceable>calendarFile</replaceable>,
+ const TQString&amp; <replaceable>eventID</replaceable>)
</synopsis>
<refsect2>
@@ -2876,26 +2876,26 @@ ignored.</para></note>
</refnamediv>
<refsynopsisdiv>
<synopsis>
-bool scheduleMessage(const QString&amp; <replaceable>message</replaceable>,
- const QString&amp; <replaceable>dateTime</replaceable>,
+bool scheduleMessage(const TQString&amp; <replaceable>message</replaceable>,
+ const TQString&amp; <replaceable>dateTime</replaceable>,
int <replaceable>lateCancel</replaceable>,
int <replaceable>flags</replaceable>,
- const QString&amp; <replaceable>bgColor</replaceable>,
- const QString&amp; <replaceable>fgColor</replaceable>,
- const QString&amp; <replaceable>font</replaceable>,
+ const TQString&amp; <replaceable>bgColor</replaceable>,
+ const TQString&amp; <replaceable>fgColor</replaceable>,
+ const TQString&amp; <replaceable>font</replaceable>,
const KURL&amp; <replaceable>audioURL</replaceable>,
int <replaceable>reminder</replaceable>,
- const QString&amp; <replaceable>recurrence</replaceable>,
+ const TQString&amp; <replaceable>recurrence</replaceable>,
int <replaceable>subRepeatInterval</replaceable>,
int <replaceable>subRepeatCount</replaceable>)
</synopsis>
<synopsis>
-bool scheduleMessage(const QString&amp; <replaceable>message</replaceable>,
- const QString&amp; <replaceable>dateTime</replaceable>,
+bool scheduleMessage(const TQString&amp; <replaceable>message</replaceable>,
+ const TQString&amp; <replaceable>dateTime</replaceable>,
int <replaceable>lateCancel</replaceable>, int <replaceable>flags</replaceable>,
- const QString&amp; <replaceable>bgColor</replaceable>,
- const QString&amp; <replaceable>fgColor</replaceable>,
- const QString&amp; <replaceable>font</replaceable>,
+ const TQString&amp; <replaceable>bgColor</replaceable>,
+ const TQString&amp; <replaceable>fgColor</replaceable>,
+ const TQString&amp; <replaceable>font</replaceable>,
const KURL&amp; <replaceable>audioURL</replaceable>,
int <replaceable>reminder</replaceable>,
int <replaceable>recurType</replaceable>,
@@ -2903,18 +2903,18 @@ bool scheduleMessage(const QString&amp; <replaceable>message</replaceable>,
int <replaceable>recurCount</replaceable>)
</synopsis>
<synopsis>
-bool scheduleMessage(const QString&amp; <replaceable>message</replaceable>,
- const QString&amp; <replaceable>dateTime</replaceable>,
+bool scheduleMessage(const TQString&amp; <replaceable>message</replaceable>,
+ const TQString&amp; <replaceable>dateTime</replaceable>,
int <replaceable>lateCancel</replaceable>,
int <replaceable>flags</replaceable>,
- const QString&amp; <replaceable>bgColor</replaceable>,
- const QString&amp; <replaceable>fgColor</replaceable>,
- const QString&amp; <replaceable>font</replaceable>,
+ const TQString&amp; <replaceable>bgColor</replaceable>,
+ const TQString&amp; <replaceable>fgColor</replaceable>,
+ const TQString&amp; <replaceable>font</replaceable>,
const KURL&amp; <replaceable>audioURL</replaceable>,
int <replaceable>reminder</replaceable>,
int <replaceable>recurType</replaceable>,
int <replaceable>recurInterval</replaceable>,
- const QString&amp; <replaceable>endDateTime</replaceable>)
+ const TQString&amp; <replaceable>endDateTime</replaceable>)
</synopsis>
<refsect2>
@@ -2933,12 +2933,12 @@ bool scheduleMessage(const QString&amp; <replaceable>message</replaceable>,
<para>Specifies the scheduled date, or date and time, at which the
message should be displayed. For a date-only alarm, the string should
be in the format <quote>YYYY-MM-DD</quote> (as returned by
-<methodname>QDate::toString(Qt::ISODate)</methodname>). For an alarm
+<methodname>QDate::toString(TQt::ISODate)</methodname>). For an alarm
with a date and time, the string should be in the format
<quote>YYYY-MM-DDTHH:MM[:SS]</quote> (as returned by
-<methodname>QDateTime::toString(Qt::ISODate)</methodname>) or
+<methodname>QDateTime::toString(TQt::ISODate)</methodname>) or
<quote>HH:MM[:SS]</quote> (as returned by
-<methodname>QTime::toString(Qt::ISODate)</methodname>). If no date is
+<methodname>QTime::toString(TQt::ISODate)</methodname>). If no date is
specified, today's date is used. Note that any seconds value is
ignored.</para>
</listitem>
@@ -2969,10 +2969,10 @@ applicable to message alarms.</para>
<listitem>
<para>Specifies the background color for displaying the message. The
string may be in the format <quote>#RRGGBB</quote> (as returned by
-<methodname>QColor::name()</methodname>) where RR, GG and BB are
+<methodname>TQColor::name()</methodname>) where RR, GG and BB are
two-digit hexadecimal values for red, green and blue. Alternatively
the string may be in any of the other formats accepted by
-<methodname>QColor::setNamedColor()</methodname>, such as a name from
+<methodname>TQColor::setNamedColor()</methodname>, such as a name from
the X color database (&eg; <quote>red</quote> or
<quote>steelblue</quote>). Set the string to null to specify the
current default background color.</para>
@@ -3124,22 +3124,22 @@ text or image file.</refpurpose>
<refsynopsisdiv>
<synopsis>
bool scheduleFile(const KURL&amp; <replaceable>URL</replaceable>,
- const QString&amp; <replaceable>dateTime</replaceable>,
+ const TQString&amp; <replaceable>dateTime</replaceable>,
int <replaceable>lateCancel</replaceable>,
int <replaceable>flags</replaceable>,
- const QString&amp; <replaceable>bgColor</replaceable>,
+ const TQString&amp; <replaceable>bgColor</replaceable>,
const KURL&amp; <replaceable>audioURL</replaceable>,
int <replaceable>reminder</replaceable>,
- const QString&amp; <replaceable>recurrence</replaceable>,
+ const TQString&amp; <replaceable>recurrence</replaceable>,
int <replaceable>subRepeatInterval</replaceable>,
int <replaceable>subRepeatCount</replaceable>)
</synopsis>
<synopsis>
bool scheduleFile(const KURL&amp; <replaceable>URL</replaceable>,
- const QString&amp; <replaceable>dateTime</replaceable>,
+ const TQString&amp; <replaceable>dateTime</replaceable>,
int <replaceable>lateCancel</replaceable>,
int <replaceable>flags</replaceable>,
- const QString&amp; <replaceable>bgColor</replaceable>,
+ const TQString&amp; <replaceable>bgColor</replaceable>,
const KURL&amp; <replaceable>audioURL</replaceable>,
int <replaceable>reminder</replaceable>,
int <replaceable>recurType</replaceable>,
@@ -3148,15 +3148,15 @@ bool scheduleFile(const KURL&amp; <replaceable>URL</replaceable>,
</synopsis>
<synopsis>
bool scheduleFile(const KURL&amp; <replaceable>URL</replaceable>,
- const QString&amp; <replaceable>dateTime</replaceable>,
+ const TQString&amp; <replaceable>dateTime</replaceable>,
int <replaceable>lateCancel</replaceable>,
int <replaceable>flags</replaceable>,
- const QString&amp; <replaceable>bgColor</replaceable>,
+ const TQString&amp; <replaceable>bgColor</replaceable>,
const KURL&amp; <replaceable>audioURL</replaceable>,
int <replaceable>reminder</replaceable>,
int <replaceable>recurType</replaceable>,
int <replaceable>recurInterval</replaceable>,
- const QString&amp; <replaceable>endDateTime</replaceable>)
+ const TQString&amp; <replaceable>endDateTime</replaceable>)
</synopsis>
<refsect2>
@@ -3176,12 +3176,12 @@ displayed in the message to be scheduled.</para>
<para>Specifies the scheduled date, or date and time, at which the
file should be displayed. For a date-only alarm, the string should
be in the format <quote>YYYY-MM-DD</quote> (as returned by
-<methodname>QDate::toString(Qt::ISODate)</methodname>). For an alarm
+<methodname>QDate::toString(TQt::ISODate)</methodname>). For an alarm
with a date and time, the string should be in the format
<quote>YYYY-MM-DDTHH:MM[:SS]</quote> (as returned by
-<methodname>QDateTime::toString(Qt::ISODate)</methodname>) or
+<methodname>QDateTime::toString(TQt::ISODate)</methodname>) or
<quote>HH:MM[:SS]</quote> (as returned by
-<methodname>QTime::toString(Qt::ISODate)</methodname>). If no date is
+<methodname>QTime::toString(TQt::ISODate)</methodname>). If no date is
specified, today's date is used. Note that any seconds value is
ignored.</para>
</listitem>
@@ -3212,10 +3212,10 @@ applicable to file alarms.</para>
<listitem>
<para>Specifies the background color for displaying the file. The
string may be in the format <quote>#RRGGBB</quote> (as returned by
-<methodname>QColor::name()</methodname>) where RR, GG and BB are
+<methodname>TQColor::name()</methodname>) where RR, GG and BB are
two-digit hexadecimal values for red, green and blue. Alternatively
the string may be in any of the other formats accepted by
-<methodname>QColor::setNamedColor()</methodname>, such as a name from
+<methodname>TQColor::setNamedColor()</methodname>, such as a name from
the X color database (&eg; <quote>red</quote> or
<quote>steelblue</quote>). Set the string to null to specify the
current default background color.</para>
@@ -3338,17 +3338,17 @@ command.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>
-bool scheduleCommand(const QString&amp; <replaceable>commandLine</replaceable>,
- const QString&amp; <replaceable>dateTime</replaceable>,
+bool scheduleCommand(const TQString&amp; <replaceable>commandLine</replaceable>,
+ const TQString&amp; <replaceable>dateTime</replaceable>,
int <replaceable>lateCancel</replaceable>,
int <replaceable>flags</replaceable>,
- const QString&amp; <replaceable>recurrence</replaceable>,
+ const TQString&amp; <replaceable>recurrence</replaceable>,
int <replaceable>subRepeatInterval</replaceable>,
int <replaceable>subRepeatCount</replaceable>)
</synopsis>
<synopsis>
-bool scheduleCommand(const QString&amp; <replaceable>commandLine</replaceable>,
- const QString&amp; <replaceable>dateTime</replaceable>,
+bool scheduleCommand(const TQString&amp; <replaceable>commandLine</replaceable>,
+ const TQString&amp; <replaceable>dateTime</replaceable>,
int <replaceable>lateCancel</replaceable>,
int <replaceable>flags</replaceable>,
int <replaceable>recurType</replaceable>,
@@ -3356,13 +3356,13 @@ bool scheduleCommand(const QString&amp; <replaceable>commandLine</replaceable>,
int <replaceable>recurCount</replaceable>)
</synopsis>
<synopsis>
-bool scheduleCommand(const QString&amp; <replaceable>commandLine</replaceable>,
- const QString&amp; <replaceable>dateTime</replaceable>,
+bool scheduleCommand(const TQString&amp; <replaceable>commandLine</replaceable>,
+ const TQString&amp; <replaceable>dateTime</replaceable>,
int <replaceable>lateCancel</replaceable>,
int <replaceable>flags</replaceable>,
int <replaceable>recurType</replaceable>,
int <replaceable>recurInterval</replaceable>,
- const QString&amp; <replaceable>endDateTime</replaceable>)
+ const TQString&amp; <replaceable>endDateTime</replaceable>)
</synopsis>
<refsect2>
@@ -3383,12 +3383,12 @@ parameter contains a shell command line or a command script.</para>
<para>Specifies the scheduled date, or date and time, at which the
command should be executed. For a date-only alarm, the string should
be in the format <quote>YYYY-MM-DD</quote> (as returned by
-<methodname>QDate::toString(Qt::ISODate)</methodname>). For an alarm
+<methodname>QDate::toString(TQt::ISODate)</methodname>). For an alarm
with a date and time, the string should be in the format
<quote>YYYY-MM-DDTHH:MM[:SS]</quote> (as returned by
-<methodname>QDateTime::toString(Qt::ISODate)</methodname>) or
+<methodname>QDateTime::toString(TQt::ISODate)</methodname>) or
<quote>HH:MM[:SS]</quote> (as returned by
-<methodname>QTime::toString(Qt::ISODate)</methodname>). If no date is
+<methodname>QTime::toString(TQt::ISODate)</methodname>). If no date is
specified, today's date is used. Note that any seconds value is
ignored.</para>
</listitem>
@@ -3512,25 +3512,25 @@ parameters, its usage is identical to
</refnamediv>
<refsynopsisdiv>
<synopsis>
-bool scheduleEmail(const QString&amp; <replaceable>fromID</replaceable>,
- const QString&amp; <replaceable>addresses</replaceable>,
- const QString&amp; <replaceable>subject</replaceable>,
- const QString&amp; <replaceable>message</replaceable>,
- const QString&amp; <replaceable>attachments</replaceable>,
- const QString&amp; <replaceable>dateTime</replaceable>,
+bool scheduleEmail(const TQString&amp; <replaceable>fromID</replaceable>,
+ const TQString&amp; <replaceable>addresses</replaceable>,
+ const TQString&amp; <replaceable>subject</replaceable>,
+ const TQString&amp; <replaceable>message</replaceable>,
+ const TQString&amp; <replaceable>attachments</replaceable>,
+ const TQString&amp; <replaceable>dateTime</replaceable>,
int <replaceable>lateCancel</replaceable>,
int <replaceable>flags</replaceable>,
- const QString&amp; <replaceable>recurrence</replaceable>,
+ const TQString&amp; <replaceable>recurrence</replaceable>,
int <replaceable>subRepeatInterval</replaceable>,
int <replaceable>subRepeatCount</replaceable>)
</synopsis>
<synopsis>
-bool scheduleEmail(const QString&amp; <replaceable>fromID</replaceable>,
- const QString&amp; <replaceable>addresses</replaceable>,
- const QString&amp; <replaceable>subject</replaceable>,
- const QString&amp; <replaceable>message</replaceable>,
- const QString&amp; <replaceable>attachments</replaceable>,
- const QString&amp; <replaceable>dateTime</replaceable>,
+bool scheduleEmail(const TQString&amp; <replaceable>fromID</replaceable>,
+ const TQString&amp; <replaceable>addresses</replaceable>,
+ const TQString&amp; <replaceable>subject</replaceable>,
+ const TQString&amp; <replaceable>message</replaceable>,
+ const TQString&amp; <replaceable>attachments</replaceable>,
+ const TQString&amp; <replaceable>dateTime</replaceable>,
int <replaceable>lateCancel</replaceable>,
int <replaceable>flags</replaceable>,
int <replaceable>recurType</replaceable>,
@@ -3538,17 +3538,17 @@ bool scheduleEmail(const QString&amp; <replaceable>fromID</replaceable>,
int <replaceable>recurCount</replaceable>)
</synopsis>
<synopsis>
-bool scheduleEmail(const QString&amp; <replaceable>fromID</replaceable>,
- const QString&amp; <replaceable>addresses</replaceable>,
- const QString&amp; <replaceable>subject</replaceable>,
- const QString&amp; <replaceable>message</replaceable>,
- const QString&amp; <replaceable>attachments</replaceable>,
- const QString&amp; <replaceable>dateTime</replaceable>,
+bool scheduleEmail(const TQString&amp; <replaceable>fromID</replaceable>,
+ const TQString&amp; <replaceable>addresses</replaceable>,
+ const TQString&amp; <replaceable>subject</replaceable>,
+ const TQString&amp; <replaceable>message</replaceable>,
+ const TQString&amp; <replaceable>attachments</replaceable>,
+ const TQString&amp; <replaceable>dateTime</replaceable>,
int <replaceable>lateCancel</replaceable>,
nt <replaceable>flags</replaceable>,
int <replaceable>recurType</replaceable>,
int <replaceable>recurInterval</replaceable>,
- const QString&amp; <replaceable>endTime</replaceable>)
+ const TQString&amp; <replaceable>endTime</replaceable>)
</synopsis>
<refsect2>
@@ -3599,12 +3599,12 @@ email attachments.</para>
<para>Specifies the scheduled date, or date and time, at which the
email should be sent. For a date-only alarm, the string should
be in the format <quote>YYYY-MM-DD</quote> (as returned by
-<methodname>QDate::toString(Qt::ISODate)</methodname>). For an alarm
+<methodname>QDate::toString(TQt::ISODate)</methodname>). For an alarm
with a date and time, the string should be in the format
<quote>YYYY-MM-DDTHH:MM[:SS]</quote> (as returned by
-<methodname>QDateTime::toString(Qt::ISODate)</methodname>) or
+<methodname>QDateTime::toString(TQt::ISODate)</methodname>) or
<quote>HH:MM[:SS]</quote> (as returned by
-<methodname>QTime::toString(Qt::ISODate)</methodname>). If no date is
+<methodname>QTime::toString(TQt::ISODate)</methodname>). If no date is
specified, today's date is used. Note that any seconds value is
ignored.</para>
</listitem>
@@ -3728,7 +3728,7 @@ dialog</link> to edit an alarm.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>
-bool edit(const QString&amp; <replaceable>eventID</replaceable>)
+bool edit(const TQString&amp; <replaceable>eventID</replaceable>)
</synopsis>
<refsect2>
@@ -3772,7 +3772,7 @@ dialog</link> to edit a new alarm.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>
-bool editNew(const QString&amp; <replaceable>templateName</replaceable>)
+bool editNew(const TQString&amp; <replaceable>templateName</replaceable>)
</synopsis>
<refsect2>
@@ -4158,13 +4158,3 @@ distributed with &kalarm;.</para>
&documentation.index;
</book>
-<!--
-Local Variables:
-mode: sgml
-sgml-minimize-attributes:nil
-sgml-general-insert-case:lower
-sgml-indent-step:0
-sgml-indent-data:nil
-End:
--->
-
diff --git a/doc/kandy/index.docbook b/doc/kandy/index.docbook
index 834df10b..d5ca2cc8 100644
--- a/doc/kandy/index.docbook
+++ b/doc/kandy/index.docbook
@@ -334,15 +334,3 @@ Window. <function>exit()</function> closes &kandy;.</para>
</appendix>
</book>
-
-<!--
-Local Variables:
-mode: sgml
-sgml-minimize-attributes:nil
-sgml-general-insert-case:lower
-sgml-indent-step:0
-sgml-indent-data:nil
-End:
-
-// vim:ts=2:sw=2:tw=78:noet
--->
diff --git a/doc/karm/index.docbook b/doc/karm/index.docbook
index b1465c75..e8d6495e 100644
--- a/doc/karm/index.docbook
+++ b/doc/karm/index.docbook
@@ -1117,7 +1117,7 @@ times were reset.</para></glossdef> </glossentry>
</refnamediv>
<refsynopsisdiv>
<synopsis>
-QString version()
+TQString version()
</synopsis>
</refsynopsisdiv>
<refsect1>
@@ -1138,7 +1138,7 @@ in the typical GNU format of major.minor.bugfix.</para>
</refnamediv>
<refsynopsisdiv>
<synopsis>
-QString quit()
+TQString quit()
</synopsis>
</refsynopsisdiv>
<refsect1>
@@ -1159,7 +1159,7 @@ external program can gracefully shutdown &karm;.
</refnamediv>
<refsynopsisdiv>
<synopsis>
-QString hastodo(QString taskname)
+TQString hastodo(TQString taskname)
</synopsis>
<refsect2>
<title>Parameters</title>
@@ -1175,7 +1175,7 @@ QString hastodo(QString taskname)
</refsynopsisdiv>
<refsect1>
<title>Description</title>
-<para><function>hastodo(QString taskname)</function> is a &DCOP; call that
+<para><function>hastodo(TQString taskname)</function> is a &DCOP; call that
looks for a of the given name. If found, it returns the
iCalendar UID that identifies that todo. If not found, it returns an empty
string.
@@ -1196,7 +1196,7 @@ than one todo has a matching name, the first one found is returned.</para>
</refnamediv>
<refsynopsisdiv>
<synopsis>
-QString addtodo(QString todoname)
+TQString addtodo(TQString todoname)
</synopsis>
<refsect2>
<title>Parameters</title>
@@ -1213,7 +1213,7 @@ QString addtodo(QString todoname)
<refsect1>
<title>Description</title>
-<para><function>addtodo(QString todoname)</function> is a &DCOP; call that
+<para><function>addtodo(TQString todoname)</function> is a &DCOP; call that
adds a new top-level todo to the current storage. The UID of the new todo
is returned.
</para>
@@ -1224,15 +1224,3 @@ QString addtodo(QString todoname)
&documentation.index;
</book>
-
-<!--
-Local Variables:
-mode: sgml
-sgml-minimize-attributes:nil
-sgml-general-insert-case:lower
-sgml-indent-step:0
-sgml-indent-data:nil
-End:
-
-// vim:ts=2:sw=2:tw=78:noet
--->
diff --git a/doc/kleopatra/index.docbook b/doc/kleopatra/index.docbook
index f7e5b610..1a534ccd 100644
--- a/doc/kleopatra/index.docbook
+++ b/doc/kleopatra/index.docbook
@@ -1444,15 +1444,3 @@ and &Jesper.Pedersen;., copyright 2004 &Daniel.Molkentin;, copyright 2004 Klar&a
&documentation.index;
</book>
-
-<!--
-Local Variables:
-mode: sgml
-sgml-minimize-attributes:nil
-sgml-general-insert-case:lower
-sgml-indent-step:0
-sgml-indent-data:nil
-End:
-
-// vim:ts=2:sw=2:tw=78:noet
--->
diff --git a/doc/kmail/configure.docbook b/doc/kmail/configure.docbook
index 7ca07262..b48c7150 100644
--- a/doc/kmail/configure.docbook
+++ b/doc/kmail/configure.docbook
@@ -1053,7 +1053,7 @@ of key words can be modified.</para>
<quote>read receipt</quote>. The message author requests
a disposition notification to be sent and the receiver's
mail program generates a reply from which the author can
- learn what happened to his message. Common disposition
+ learn what happened to their message. Common disposition
types include <quote>displayed</quote> (&ie; read),
<quote>deleted</quote> and <quote>dispatched</quote>
(&eg; forwarded).
@@ -1099,7 +1099,7 @@ of key words can be modified.</para>
notification. This is only
<emphasis>slightly</emphasis> better than always
sending &mdn;s. The author will still know that
- the messages has been acted upon, he just cannot
+ the messages has been acted upon, they just cannot
tell whether it was deleted or read &etc;
</para>
</listitem>
@@ -1145,7 +1145,7 @@ of key words can be modified.</para>
message-id and the original recipient is included
in the &mdn; reply. This preserves enough
information for the sender to find the message in
- his sent messages for which this &mdn; was
+ their sent messages for which this &mdn; was
generated.
</para>
</listitem>
diff --git a/doc/kmail/index.docbook b/doc/kmail/index.docbook
index 028c8579..877846ab 100644
--- a/doc/kmail/index.docbook
+++ b/doc/kmail/index.docbook
@@ -149,15 +149,3 @@
</appendix>
</book>
-
-<!--
-Local Variables:
-mode: sgml
-sgml-minimize-attributes:nil
-sgml-general-insert-case:lower
-sgml-indent-step:0
-sgml-indent-data:nil
-End:
-
-// vim:ts=0:sw=2:tw=78:noet
--->
diff --git a/doc/kmail/using-kmail.docbook b/doc/kmail/using-kmail.docbook
index 999bd6d9..8609f2e6 100644
--- a/doc/kmail/using-kmail.docbook
+++ b/doc/kmail/using-kmail.docbook
@@ -344,7 +344,7 @@ choose from the list of common &MIME; types. You can also select an encoding
method for your file from the list of encoding options (normally, the default
value works fine). Check the <guilabel>Suggest automatic display</guilabel> option
if you want to suggest to the recipient the automatic (inline) display of this attachment. Whether this works or not depends on the recipient's email client
-and on his settings.</para>
+and on their settings.</para>
<para>You can also attach public keys to the message by using the appropriate options in the
<menuchoice><guimenu>Attach</guimenu></menuchoice> menu. <application>PGP</application>
@@ -2014,7 +2014,7 @@ defined for the current identity to the message. Now you can send the message.</
that the receiver will get the correct key: there can be a man-in-the-middle
attack, as somebody can change the key and sign the message with that other
key. That is why the recipient should verify the attached key by checking the
-key's fingerprint against the one he received in a secure way from you; have a look
+key's fingerprint against the one they received in a secure way from you; have a look
at the <application>PGP</application> documentation for further details.</para>
</sect2>
diff --git a/doc/knode/introduction.docbook b/doc/knode/introduction.docbook
index db14ec3a..91cda142 100644
--- a/doc/knode/introduction.docbook
+++ b/doc/knode/introduction.docbook
@@ -37,7 +37,7 @@ is not answered in this manual.</para>
Usenet</link> chapter is recommended; it is not so much about &knode; as how to
move about in the Usenet with its help. In general, it is not
sufficient to just master a news reader for writing news
-articles: imagine a car driver who masters his car perfectly but does
+articles: imagine a car driver who masters a car perfectly but does
not know about the traffic rules or signs; do you want to encounter
such a driver when out in traffic? So please take your time to learn
at least a little about the <quote>traffic rules</quote> of the
diff --git a/doc/knode/journey.docbook b/doc/knode/journey.docbook
index 54dc82a3..15a4905f 100644
--- a/doc/knode/journey.docbook
+++ b/doc/knode/journey.docbook
@@ -158,7 +158,7 @@ newsgroup. It stands for: (R)ead (T)he (F)...ing
<para>Wait, what is <acronym>BTW</acronym> now? Another often-seen
acronym which means (B)y (T)he (W)ay. It is easy when you know
it; to avoid you having to continuously speculate over the meaning of
-acronyms there is table at he end of this section containing the
+acronyms there is table at the end of this section containing the
most-often-used acronyms.</para>
<para>This table does not try to be complete and is based on a list by
@@ -519,7 +519,7 @@ head and think of a face.</para>
<title>PLONK!</title>
<para>This PLONK! looks like some comic-sound, does it not? And that is
-exactly what it is used for. The one who reads it knows he was just
+exactly what it is used for. The one who reads it knows they were just
added to the killfile of a newsreader; normally this means the
recipient of the PLONK! annoyed the sender. The PLONK! is meant to
play back the sound of the recipients name hitting the ground in the
diff --git a/doc/knode/using-morefeatures.docbook b/doc/knode/using-morefeatures.docbook
index 39892bf6..62e769ab 100644
--- a/doc/knode/using-morefeatures.docbook
+++ b/doc/knode/using-morefeatures.docbook
@@ -688,7 +688,7 @@ examples.</para>
Test; to do this choose the
<guilabel>From</guilabel> header line from the first drop-down
list, choose <guilabel>is exactly the same as</guilabel> from the second
-drop-down list, and enter his name in the text field.
+drop-down list, and enter their name in the text field.
But, before doing this you should have a
look at the <glossterm>header</glossterm> of one of Theodor's
articles and see what is in the <quote>From</quote> line.</para>
@@ -843,13 +843,3 @@ PGP-signature</guimenuitem></menuchoice>.</para>
</sect2>
</sect1>
-<!--
-Local Variables:
-mode: sgml
-sgml-omittag: nil
-sgml-shorttag: t
-sgml-minimize-attributes: nil
-sgml-general-insert-case: lower
-sgml-parent-document:("index.docbook" "chapter" "sect1")
-End:
--->
diff --git a/doc/knotes/index.docbook b/doc/knotes/index.docbook
index 73d60ba9..723509ef 100644
--- a/doc/knotes/index.docbook
+++ b/doc/knotes/index.docbook
@@ -370,14 +370,3 @@ allowing you to configure the note.</para>
&documentation.index;
</book>
-<!--
-Local Variables:
-mode: sgml
-sgml-minimize-attributes:nil
-sgml-general-insert-case:lower
-sgml-indent-step:0
-sgml-indent-data:nil
-End:
-
-// vim:ts=2:sw=2:tw=78:noet
--->
diff --git a/doc/konsolekalendar/index.docbook b/doc/konsolekalendar/index.docbook
index 6e35c490..307b6be3 100644
--- a/doc/konsolekalendar/index.docbook
+++ b/doc/konsolekalendar/index.docbook
@@ -860,12 +860,3 @@ on the &kde; desktop.</para>
&documentation.index;
</book>
-<!--
-Local Variables:
-mode: sgml
-sgml-minimize-attributes:nil
-sgml-general-insert-case:lower
-sgml-indent-step:0
-sgml-indent-data:nil
-End:
--->
diff --git a/doc/kontact/index.docbook b/doc/kontact/index.docbook
index 8032da90..44715899 100644
--- a/doc/kontact/index.docbook
+++ b/doc/kontact/index.docbook
@@ -7,7 +7,6 @@
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE">
<!ENTITY akregator "<application>Akregator</application>">
- <!ENTITY kitchensync "<application>KitchenSync</application>">
]>
<book id="kontact" lang="&language;">
@@ -146,14 +145,6 @@ application.
</para>
</sect1>
-<sect1 id="synchronization">
-<title>&kitchensync;</title>
-<para>
-<ulink url="help:kitchensync">&kitchensync;</ulink>, the &kde; synchronization
-application.
-</para>
-</sect1>
-
<sect1 id="feeds">
<title>&akregator;</title>
<para>
@@ -972,7 +963,7 @@ The settings stored in the profile include typical Look&amp;Feel related options
<para>
Two default profiles are provided by Kontact: &quot;&kontact; Style&quot;, which contains the default &kontact; settings, and &quot;Outlook Style&quot;, adapting &kontact; to Microsoft Outlook Look&amp;Feel.
-The user can adapt existing profiles, create new profiles from his current settings, and import and export profiles.
+The user can adapt existing profiles, create new profiles from their current settings, and import and export profiles.
</para>
<para>
@@ -1163,14 +1154,3 @@ url="http://kontact.kde.org">http://kontact.kde.org</ulink></para>
&documentation.index;
</book>
-<!--
-Local Variables:
-mode: sgml
-sgml-minimize-attributes:nil
-sgml-general-insert-case:lower
-sgml-indent-step:0
-sgml-indent-data:nil
-End:
-
-// vim:ts=2:sw=2:tw=78:noet
--->
diff --git a/doc/korganizer/index.docbook b/doc/korganizer/index.docbook
index bdb5bb51..b9dcf212 100644
--- a/doc/korganizer/index.docbook
+++ b/doc/korganizer/index.docbook
@@ -403,7 +403,7 @@ want to use another resource, especially if you use a supported groupware
server. Please ask the server administrator for the information required to
configure the groupware resource, including free/busy information publishing
and retrieving. Access to free/busy information allows an event organizer to
-take the attendee's calendar in consideration when adding him to the event's
+take the attendee's calendar in consideration when adding them to the event's
attendee list.</para>
<note><para>Besides calendar storage, groupware servers typically offer contacts,
@@ -694,7 +694,7 @@ and do not reload the file at regular intervals.</para>
the same remote file at the same time, because the remote file resource does not
offer a conflict resolution mechanism. For instance, if someone else changes
(and saves) the remote file, after you loaded it, and a some time later you save
-the file, his changes will be lost.
+the file, their changes will be lost.
</para></warning>
</listitem>
@@ -1734,7 +1734,7 @@ requested from the attendee.</para></listitem>
<varlistentry>
<term><guibutton>Select Addressee</guibutton></term>
<listitem><para>If the attendee(s) are in your Address Book, you do not have to
-remember or type his email address to add it to the attendee list. Just click
+remember or type their email address to add it to the attendee list. Just click
the <guibutton>Select Addressee...</guibutton> button and choose the attendee(s)
from the list. Please note that this is the standard &kde; address book, which
is also used by &kmail; and can also be called as a separate application
@@ -1821,7 +1821,7 @@ by dragging it with the mouse, or resize it by moving the edges of the highlight
area with the mouse.</para>
<para>The free/busy information is only available if the
-attendee publishes his free/busy schedule, and if &korganizer; is correctly
+attendee publishes their free/busy schedule, and if &korganizer; is correctly
configured to retrieve it. For more information about configuring &korganizer;
to publish and retrieve free/busy information, please check the
<xref linkend="config" />. Double-clicking on an attendee entry in the list
@@ -4976,14 +4976,3 @@ To-do becomes very similar to an event.</para>
&documentation.index;
</book>
-<!--
-Local Variables:
-mode: sgml
-sgml-minimize-attributes:nil
-sgml-general-insert-case:lower
-sgml-indent-step:0
-sgml-indent-data:nil
-End:
-
-// vim:ts=2:sw=2:tw=78:noet
--->
diff --git a/doc/korn/index.docbook b/doc/korn/index.docbook
index 535ce323..5962ff83 100644
--- a/doc/korn/index.docbook
+++ b/doc/korn/index.docbook
@@ -228,11 +228,3 @@ Korn...</guimenuitem> option or above.</para>
</book>
-<!--
-Local Variables:
-mode: sgml
-sgml-omittag: nil
-sgml-shorttag: t
-End:
--->
-
diff --git a/doc/kwatchgnupg/index.docbook b/doc/kwatchgnupg/index.docbook
index 6e40f6bc..894e5781 100644
--- a/doc/kwatchgnupg/index.docbook
+++ b/doc/kwatchgnupg/index.docbook
@@ -268,15 +268,3 @@ history manually.
&documentation.index;
</book>
-
-<!--
-Local Variables:
-mode: sgml
-sgml-minimize-attributes:nil
-sgml-general-insert-case:lower
-sgml-indent-step:0
-sgml-indent-data:nil
-End:
-
-// vim:ts=2:sw=2:tw=78:noet
--->
diff --git a/indexlib/bitio.h b/indexlib/bitio.h
index 913f44ea..1ecc0cb2 100644
--- a/indexlib/bitio.h
+++ b/indexlib/bitio.h
@@ -32,7 +32,7 @@
*/
#include <inttypes.h>
-#include "boost-compat/remove_cv.hpp"
+#include "boost-compat/remove_cv.h"
/**
* \namespace byte_io
diff --git a/indexlib/bitio.tcc b/indexlib/bitio.tcc
index f6dbdfc0..f1c14c77 100644
--- a/indexlib/bitio.tcc
+++ b/indexlib/bitio.tcc
@@ -1,5 +1,5 @@
-#include "boost-compat/static_assert.hpp"
-#include "boost-compat/remove_cv.hpp"
+#include "boost-compat/static_assert.h"
+#include "boost-compat/remove_cv.h"
#ifdef HAVE_BOOST
#include <boost/type_traits/is_same.hpp>
#endif
diff --git a/indexlib/boost-compat/checked_delete.h b/indexlib/boost-compat/checked_delete.h
new file mode 100644
index 00000000..db740fcb
--- /dev/null
+++ b/indexlib/boost-compat/checked_delete.h
@@ -0,0 +1,69 @@
+#ifndef BOOST_CHECKED_DELETE_H_INCLUDED
+#define BOOST_CHECKED_DELETE_H_INCLUDED
+
+// MS compatible compilers support #pragma once
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma once
+#endif
+
+//
+// boost/checked_delete.hpp
+//
+// Copyright (c) 2002, 2003 Peter Dimov
+// Copyright (c) 2003 Daniel Frey
+// Copyright (c) 2003 Howard Hinnant
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/utility/checked_delete.html for documentation.
+//
+
+namespace boost
+{
+
+// verify that types are complete for increased safety
+
+template<class T> inline void checked_delete(T * x)
+{
+ // intentionally complex - simplification causes regressions
+ typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
+ (void) sizeof(type_must_be_complete);
+ delete x;
+}
+
+template<class T> inline void checked_array_delete(T * x)
+{
+ typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
+ (void) sizeof(type_must_be_complete);
+ delete [] x;
+}
+
+template<class T> struct checked_deleter
+{
+ typedef void result_type;
+ typedef T * argument_type;
+
+ void operator()(T * x) const
+ {
+ // boost:: disables ADL
+ boost::checked_delete(x);
+ }
+};
+
+template<class T> struct checked_array_deleter
+{
+ typedef void result_type;
+ typedef T * argument_type;
+
+ void operator()(T * x) const
+ {
+ boost::checked_array_delete(x);
+ }
+};
+
+} // namespace boost
+
+#endif // #ifndef BOOST_CHECKED_DELETE_H_INCLUDED
diff --git a/indexlib/boost-compat/checked_delete.hpp b/indexlib/boost-compat/checked_delete.hpp
deleted file mode 100644
index 9bb84e8e..00000000
--- a/indexlib/boost-compat/checked_delete.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED
-#define BOOST_CHECKED_DELETE_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-// boost/checked_delete.hpp
-//
-// Copyright (c) 2002, 2003 Peter Dimov
-// Copyright (c) 2003 Daniel Frey
-// Copyright (c) 2003 Howard Hinnant
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/utility/checked_delete.html for documentation.
-//
-
-namespace boost
-{
-
-// verify that types are complete for increased safety
-
-template<class T> inline void checked_delete(T * x)
-{
- // intentionally complex - simplification causes regressions
- typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
- (void) sizeof(type_must_be_complete);
- delete x;
-}
-
-template<class T> inline void checked_array_delete(T * x)
-{
- typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
- (void) sizeof(type_must_be_complete);
- delete [] x;
-}
-
-template<class T> struct checked_deleter
-{
- typedef void result_type;
- typedef T * argument_type;
-
- void operator()(T * x) const
- {
- // boost:: disables ADL
- boost::checked_delete(x);
- }
-};
-
-template<class T> struct checked_array_deleter
-{
- typedef void result_type;
- typedef T * argument_type;
-
- void operator()(T * x) const
- {
- boost::checked_array_delete(x);
- }
-};
-
-} // namespace boost
-
-#endif // #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED
diff --git a/indexlib/boost-compat/config.h b/indexlib/boost-compat/config.h
new file mode 100644
index 00000000..86f12b81
--- /dev/null
+++ b/indexlib/boost-compat/config.h
@@ -0,0 +1,70 @@
+// Boost config.h configuration header file ------------------------------//
+
+// (C) Copyright John Maddock 2002.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/config for most recent version.
+
+// Boost config.h policy and rationale documentation has been moved to
+// http://www.boost.org/libs/config
+//
+// CAUTION: This file is intended to be completely stable -
+// DO NOT MODIFY THIS FILE!
+//
+
+#ifndef BOOST_CONFIG_H
+#define BOOST_CONFIG_H
+
+// if we don't have a user config, then use the default location:
+#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
+# define BOOST_USER_CONFIG <boost/config/user.hpp>
+#endif
+// include it first:
+#ifdef BOOST_USER_CONFIG
+# include BOOST_USER_CONFIG
+#endif
+
+// if we don't have a compiler config set, try and find one:
+#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG)
+# include <boost/config/select_compiler_config.hpp>
+#endif
+// if we have a compiler config, include it now:
+#ifdef BOOST_COMPILER_CONFIG
+# include BOOST_COMPILER_CONFIG
+#endif
+
+// if we don't have a std library config set, try and find one:
+#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG)
+# include <boost/config/select_stdlib_config.hpp>
+#endif
+// if we have a std library config, include it now:
+#ifdef BOOST_STDLIB_CONFIG
+# include BOOST_STDLIB_CONFIG
+#endif
+
+// if we don't have a platform config set, try and find one:
+#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG)
+# include <boost/config/select_platform_config.hpp>
+#endif
+// if we have a platform config, include it now:
+#ifdef BOOST_PLATFORM_CONFIG
+# include BOOST_PLATFORM_CONFIG
+#endif
+
+// get config suffix code:
+#include <boost/config/suffix.hpp>
+
+#endif // BOOST_CONFIG_H
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indexlib/boost-compat/config.hpp b/indexlib/boost-compat/config.hpp
deleted file mode 100644
index 055a2785..00000000
--- a/indexlib/boost-compat/config.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-// Boost config.hpp configuration header file ------------------------------//
-
-// (C) Copyright John Maddock 2002.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org/libs/config for most recent version.
-
-// Boost config.hpp policy and rationale documentation has been moved to
-// http://www.boost.org/libs/config
-//
-// CAUTION: This file is intended to be completely stable -
-// DO NOT MODIFY THIS FILE!
-//
-
-#ifndef BOOST_CONFIG_HPP
-#define BOOST_CONFIG_HPP
-
-// if we don't have a user config, then use the default location:
-#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
-# define BOOST_USER_CONFIG <boost/config/user.hpp>
-#endif
-// include it first:
-#ifdef BOOST_USER_CONFIG
-# include BOOST_USER_CONFIG
-#endif
-
-// if we don't have a compiler config set, try and find one:
-#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG)
-# include <boost/config/select_compiler_config.hpp>
-#endif
-// if we have a compiler config, include it now:
-#ifdef BOOST_COMPILER_CONFIG
-# include BOOST_COMPILER_CONFIG
-#endif
-
-// if we don't have a std library config set, try and find one:
-#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG)
-# include <boost/config/select_stdlib_config.hpp>
-#endif
-// if we have a std library config, include it now:
-#ifdef BOOST_STDLIB_CONFIG
-# include BOOST_STDLIB_CONFIG
-#endif
-
-// if we don't have a platform config set, try and find one:
-#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG)
-# include <boost/config/select_platform_config.hpp>
-#endif
-// if we have a platform config, include it now:
-#ifdef BOOST_PLATFORM_CONFIG
-# include BOOST_PLATFORM_CONFIG
-#endif
-
-// get config suffix code:
-#include <boost/config/suffix.hpp>
-
-#endif // BOOST_CONFIG_HPP
-
-
-
-
-
-
-
-
-
-
-
diff --git a/indexlib/boost-compat/config/abi/borland_prefix.hpp b/indexlib/boost-compat/config/abi/borland_prefix.h
index 49f42494..49f42494 100644
--- a/indexlib/boost-compat/config/abi/borland_prefix.hpp
+++ b/indexlib/boost-compat/config/abi/borland_prefix.h
diff --git a/indexlib/boost-compat/config/abi/borland_suffix.hpp b/indexlib/boost-compat/config/abi/borland_suffix.h
index 940535f3..940535f3 100644
--- a/indexlib/boost-compat/config/abi/borland_suffix.hpp
+++ b/indexlib/boost-compat/config/abi/borland_suffix.h
diff --git a/indexlib/boost-compat/config/abi/msvc_prefix.hpp b/indexlib/boost-compat/config/abi/msvc_prefix.h
index 3d3905c2..3d3905c2 100644
--- a/indexlib/boost-compat/config/abi/msvc_prefix.hpp
+++ b/indexlib/boost-compat/config/abi/msvc_prefix.h
diff --git a/indexlib/boost-compat/config/abi/msvc_suffix.hpp b/indexlib/boost-compat/config/abi/msvc_suffix.h
index a64d783e..a64d783e 100644
--- a/indexlib/boost-compat/config/abi/msvc_suffix.hpp
+++ b/indexlib/boost-compat/config/abi/msvc_suffix.h
diff --git a/indexlib/boost-compat/config/abi_prefix.h b/indexlib/boost-compat/config/abi_prefix.h
new file mode 100644
index 00000000..d4ddd29b
--- /dev/null
+++ b/indexlib/boost-compat/config/abi_prefix.h
@@ -0,0 +1,20 @@
+// abi_prefix header -------------------------------------------------------//
+
+// Copyright John Maddock 2003
+
+// Use, modification and distribution are subject to the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt).
+
+#ifndef BOOST_CONFIG_ABI_PREFIX_H
+# define BOOST_CONFIG_ABI_PREFIX_H
+#else
+# error double inclusion of header boost/config/abi_prefix.hpp is an error
+#endif
+
+#include <boost/config.hpp>
+
+// this must occur after all other includes and before any code appears:
+#ifdef BOOST_HAS_ABI_HEADERS
+# include BOOST_ABI_PREFIX
+#endif
diff --git a/indexlib/boost-compat/config/abi_prefix.hpp b/indexlib/boost-compat/config/abi_prefix.hpp
deleted file mode 100644
index 1733dc03..00000000
--- a/indexlib/boost-compat/config/abi_prefix.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-// abi_prefix header -------------------------------------------------------//
-
-// Copyright John Maddock 2003
-
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
-# define BOOST_CONFIG_ABI_PREFIX_HPP
-#else
-# error double inclusion of header boost/config/abi_prefix.hpp is an error
-#endif
-
-#include <boost/config.hpp>
-
-// this must occur after all other includes and before any code appears:
-#ifdef BOOST_HAS_ABI_HEADERS
-# include BOOST_ABI_PREFIX
-#endif
diff --git a/indexlib/boost-compat/config/abi_suffix.h b/indexlib/boost-compat/config/abi_suffix.h
new file mode 100644
index 00000000..4876507e
--- /dev/null
+++ b/indexlib/boost-compat/config/abi_suffix.h
@@ -0,0 +1,23 @@
+// abi_sufffix header -------------------------------------------------------//
+
+// Copyright John Maddock 2003
+
+// Use, modification and distribution are subject to the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt).
+
+// This header should be #included AFTER code that was preceded by a #include
+// <boost/config/abi_prefix.hpp>.
+
+#ifndef BOOST_CONFIG_ABI_PREFIX_H
+# error Header boost/config/abi_prefix.hpp must only be used after boost/config/abi_prefix.hpp
+#else
+# undef BOOST_CONFIG_ABI_PREFIX_H
+#endif
+
+// the suffix header occurs after all of our code:
+#ifdef BOOST_HAS_ABI_HEADERS
+# include BOOST_ABI_SUFFIX
+#endif
+
+
diff --git a/indexlib/boost-compat/config/abi_suffix.hpp b/indexlib/boost-compat/config/abi_suffix.hpp
deleted file mode 100644
index 6339da63..00000000
--- a/indexlib/boost-compat/config/abi_suffix.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-// abi_sufffix header -------------------------------------------------------//
-
-// Copyright John Maddock 2003
-
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-// This header should be #included AFTER code that was preceded by a #include
-// <boost/config/abi_prefix.hpp>.
-
-#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
-# error Header boost/config/abi_prefix.hpp must only be used after boost/config/abi_prefix.hpp
-#else
-# undef BOOST_CONFIG_ABI_PREFIX_HPP
-#endif
-
-// the suffix header occurs after all of our code:
-#ifdef BOOST_HAS_ABI_HEADERS
-# include BOOST_ABI_SUFFIX
-#endif
-
-
diff --git a/indexlib/boost-compat/config/auto_link.h b/indexlib/boost-compat/config/auto_link.h
new file mode 100644
index 00000000..c6d9bc90
--- /dev/null
+++ b/indexlib/boost-compat/config/auto_link.h
@@ -0,0 +1,336 @@
+// (C) Copyright John Maddock 2003.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+ /*
+ * LOCATION: see http://www.boost.org for most recent version.
+ * FILE auto_link.h
+ * VERSION see <boost/version.hpp>
+ * DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
+ */
+
+/*************************************************************************
+
+USAGE:
+~~~~~~
+
+Before including this header you must define one or more of define the following macros:
+
+BOOST_LIB_NAME: Required: A string containing the basename of the library,
+ for example boost_regex.
+BOOST_DYN_LINK: Optional: when set link to dll rather than static library.
+BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
+ of the library selected (useful for debugging).
+
+These macros will be undef'ed at the end of the header, further this header
+has no include guards - so be sure to include it only once from your library!
+
+Algorithm:
+~~~~~~~~~~
+
+Libraries for Borland and Microsoft compilers are automatically
+selected here, the name of the lib is selected according to the following
+formula:
+
+BOOST_LIB_PREFIX
+ + BOOST_LIB_NAME
+ + "_"
+ + BOOST_LIB_TOOLSET
+ + BOOST_LIB_THREAD_OPT
+ + BOOST_LIB_RT_OPT
+ "-"
+ + BOOST_LIB_VERSION
+
+These are defined as:
+
+BOOST_LIB_PREFIX: "lib" for static libraries otherwise "".
+
+BOOST_LIB_NAME: The base name of the lib ( for example boost_regex).
+
+BOOST_LIB_TOOLSET: The compiler toolset name (vc6, vc7, bcb5 etc).
+
+BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
+
+BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
+ contains one or more of the following letters after
+ a hiphen:
+
+ s static runtime (dynamic if not present).
+ d debug build (release if not present).
+ g debug/diagnostic runtime (release if not present).
+ p STLPort Build.
+
+BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
+
+
+***************************************************************************/
+
+#ifdef __cplusplus
+# ifndef BOOST_CONFIG_H
+# include <boost/config.hpp>
+# endif
+#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
+//
+// C language compatability (no, honestly)
+//
+# define BOOST_MSVC _MSC_VER
+# define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
+# define BOOST_DO_STRINGIZE(X) #X
+#endif
+//
+// Only include what follows for known and supported compilers:
+//
+#if defined(BOOST_MSVC) \
+ || defined(__BORLANDC__) \
+ || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
+ || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
+
+#ifndef BOOST_VERSION_H
+# include <boost/version.hpp>
+#endif
+
+#ifndef BOOST_LIB_NAME
+# error "Macro BOOST_LIB_NAME not set (internal error)"
+#endif
+
+//
+// error check:
+//
+#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG)
+# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors")
+# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes")
+# error "Incompatible build options"
+#endif
+//
+// select toolset:
+//
+#if defined(BOOST_MSVC) && (BOOST_MSVC == 1200)
+
+ // vc6:
+# define BOOST_LIB_TOOLSET "vc6"
+
+#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
+
+ // vc7:
+# define BOOST_LIB_TOOLSET "vc7"
+
+#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310)
+
+ // vc71:
+# define BOOST_LIB_TOOLSET "vc71"
+
+#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1400)
+
+ // vc80:
+# define BOOST_LIB_TOOLSET "vc80"
+
+#elif defined(__BORLANDC__)
+
+ // CBuilder 6:
+# define BOOST_LIB_TOOLSET "bcb"
+
+#elif defined(__ICL)
+
+ // Intel C++, no version number:
+# define BOOST_LIB_TOOLSET "iw"
+
+#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
+
+ // Metrowerks CodeWarrior 8.x
+# define BOOST_LIB_TOOLSET "cw8"
+
+#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
+
+ // Metrowerks CodeWarrior 9.x
+# define BOOST_LIB_TOOLSET "cw9"
+
+#endif
+
+//
+// select thread opt:
+//
+#if defined(_MT) || defined(__MT__)
+# define BOOST_LIB_THREAD_OPT "-mt"
+#else
+# define BOOST_LIB_THREAD_OPT
+#endif
+
+#if defined(_MSC_VER) || defined(__MWERKS__)
+
+# ifdef _DLL
+
+# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
+
+# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
+# define BOOST_LIB_RT_OPT "-gdp"
+# elif defined(_DEBUG)
+# define BOOST_LIB_RT_OPT "-gdp"
+# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
+# error "Build options aren't compatible with pre-built libraries"
+# else
+# define BOOST_LIB_RT_OPT "-p"
+# endif
+
+# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
+
+# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
+# define BOOST_LIB_RT_OPT "-gdpn"
+# elif defined(_DEBUG)
+# define BOOST_LIB_RT_OPT "-gdpn"
+# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
+# error "Build options aren't compatible with pre-built libraries"
+# else
+# define BOOST_LIB_RT_OPT "-pn"
+# endif
+
+# else
+
+# if defined(_DEBUG)
+# define BOOST_LIB_RT_OPT "-gd"
+# else
+# define BOOST_LIB_RT_OPT
+# endif
+
+# endif
+
+# else
+
+# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
+
+# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
+# define BOOST_LIB_RT_OPT "-sgdp"
+# elif defined(_DEBUG)
+# define BOOST_LIB_RT_OPT "-sgdp"
+# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
+# error "Build options aren't compatible with pre-built libraries"
+# else
+# define BOOST_LIB_RT_OPT "-sp"
+# endif
+
+# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
+
+# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
+# define BOOST_LIB_RT_OPT "-sgdpn"
+# elif defined(_DEBUG)
+# define BOOST_LIB_RT_OPT "-sgdpn"
+# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
+# error "Build options aren't compatible with pre-built libraries"
+# else
+# define BOOST_LIB_RT_OPT "-spn"
+# endif
+
+# else
+
+# if defined(_DEBUG)
+# define BOOST_LIB_RT_OPT "-sgd"
+# else
+# define BOOST_LIB_RT_OPT "-s"
+# endif
+
+# endif
+
+# endif
+
+#elif defined(__BORLANDC__)
+
+//
+// figure out whether we want the debug builds or not:
+//
+#pragma defineonoption BOOST_BORLAND_DEBUG -v
+//
+// sanity check:
+//
+#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
+#error "Pre-built versions of the Boost libraries are not provided in STLPort-debug form"
+#endif
+
+# ifdef _RTLDLL
+
+# ifdef BOOST_BORLAND_DEBUG
+# define BOOST_LIB_RT_OPT "-d"
+# else
+# define BOOST_LIB_RT_OPT
+# endif
+
+# else
+
+# ifdef BOOST_BORLAND_DEBUG
+# define BOOST_LIB_RT_OPT "-sd"
+# else
+# define BOOST_LIB_RT_OPT "-s"
+# endif
+
+# endif
+
+#endif
+
+//
+// select linkage opt:
+//
+#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK)
+# define BOOST_LIB_PREFIX
+#elif defined(BOOST_DYN_LINK)
+# error "Mixing a dll boost library with a static runtime is a really bad idea..."
+#else
+# define BOOST_LIB_PREFIX "lib"
+#endif
+
+//
+// now include the lib:
+//
+#if defined(BOOST_LIB_NAME) \
+ && defined(BOOST_LIB_PREFIX) \
+ && defined(BOOST_LIB_TOOLSET) \
+ && defined(BOOST_LIB_THREAD_OPT) \
+ && defined(BOOST_LIB_RT_OPT) \
+ && defined(BOOST_LIB_VERSION)
+
+# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
+#ifdef BOOST_LIB_DIAGNOSTIC
+# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
+#endif
+
+#else
+# error "some required macros where not defined (internal logic error)."
+#endif
+
+
+#endif // _MSC_VER || __BORLANDC__
+
+//
+// finally undef any macros we may have set:
+//
+#ifdef BOOST_LIB_PREFIX
+# undef BOOST_LIB_PREFIX
+#endif
+#if defined(BOOST_LIB_NAME)
+# undef BOOST_LIB_NAME
+#endif
+#if defined(BOOST_LIB_TOOLSET)
+# undef BOOST_LIB_TOOLSET
+#endif
+#if defined(BOOST_LIB_THREAD_OPT)
+# undef BOOST_LIB_THREAD_OPT
+#endif
+#if defined(BOOST_LIB_RT_OPT)
+# undef BOOST_LIB_RT_OPT
+#endif
+#if defined(BOOST_LIB_LINK_OPT)
+# undef BOOST_LIB_LINK_OPT
+#endif
+#if defined(BOOST_LIB_DEBUG_OPT)
+# undef BOOST_LIB_DEBUG_OPT
+#endif
+#if defined(BOOST_DYN_LINK)
+# undef BOOST_DYN_LINK
+#endif
+
+
+
+
+
+
+
+
+
diff --git a/indexlib/boost-compat/config/auto_link.hpp b/indexlib/boost-compat/config/auto_link.hpp
deleted file mode 100644
index b4e580ff..00000000
--- a/indexlib/boost-compat/config/auto_link.hpp
+++ /dev/null
@@ -1,336 +0,0 @@
-// (C) Copyright John Maddock 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
- /*
- * LOCATION: see http://www.boost.org for most recent version.
- * FILE auto_link.hpp
- * VERSION see <boost/version.hpp>
- * DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
- */
-
-/*************************************************************************
-
-USAGE:
-~~~~~~
-
-Before including this header you must define one or more of define the following macros:
-
-BOOST_LIB_NAME: Required: A string containing the basename of the library,
- for example boost_regex.
-BOOST_DYN_LINK: Optional: when set link to dll rather than static library.
-BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
- of the library selected (useful for debugging).
-
-These macros will be undef'ed at the end of the header, further this header
-has no include guards - so be sure to include it only once from your library!
-
-Algorithm:
-~~~~~~~~~~
-
-Libraries for Borland and Microsoft compilers are automatically
-selected here, the name of the lib is selected according to the following
-formula:
-
-BOOST_LIB_PREFIX
- + BOOST_LIB_NAME
- + "_"
- + BOOST_LIB_TOOLSET
- + BOOST_LIB_THREAD_OPT
- + BOOST_LIB_RT_OPT
- "-"
- + BOOST_LIB_VERSION
-
-These are defined as:
-
-BOOST_LIB_PREFIX: "lib" for static libraries otherwise "".
-
-BOOST_LIB_NAME: The base name of the lib ( for example boost_regex).
-
-BOOST_LIB_TOOLSET: The compiler toolset name (vc6, vc7, bcb5 etc).
-
-BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
-
-BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
- contains one or more of the following letters after
- a hiphen:
-
- s static runtime (dynamic if not present).
- d debug build (release if not present).
- g debug/diagnostic runtime (release if not present).
- p STLPort Build.
-
-BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
-
-
-***************************************************************************/
-
-#ifdef __cplusplus
-# ifndef BOOST_CONFIG_HPP
-# include <boost/config.hpp>
-# endif
-#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
-//
-// C language compatability (no, honestly)
-//
-# define BOOST_MSVC _MSC_VER
-# define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
-# define BOOST_DO_STRINGIZE(X) #X
-#endif
-//
-// Only include what follows for known and supported compilers:
-//
-#if defined(BOOST_MSVC) \
- || defined(__BORLANDC__) \
- || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
- || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
-
-#ifndef BOOST_VERSION_HPP
-# include <boost/version.hpp>
-#endif
-
-#ifndef BOOST_LIB_NAME
-# error "Macro BOOST_LIB_NAME not set (internal error)"
-#endif
-
-//
-// error check:
-//
-#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG)
-# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors")
-# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes")
-# error "Incompatible build options"
-#endif
-//
-// select toolset:
-//
-#if defined(BOOST_MSVC) && (BOOST_MSVC == 1200)
-
- // vc6:
-# define BOOST_LIB_TOOLSET "vc6"
-
-#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
-
- // vc7:
-# define BOOST_LIB_TOOLSET "vc7"
-
-#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310)
-
- // vc71:
-# define BOOST_LIB_TOOLSET "vc71"
-
-#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1400)
-
- // vc80:
-# define BOOST_LIB_TOOLSET "vc80"
-
-#elif defined(__BORLANDC__)
-
- // CBuilder 6:
-# define BOOST_LIB_TOOLSET "bcb"
-
-#elif defined(__ICL)
-
- // Intel C++, no version number:
-# define BOOST_LIB_TOOLSET "iw"
-
-#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
-
- // Metrowerks CodeWarrior 8.x
-# define BOOST_LIB_TOOLSET "cw8"
-
-#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
-
- // Metrowerks CodeWarrior 9.x
-# define BOOST_LIB_TOOLSET "cw9"
-
-#endif
-
-//
-// select thread opt:
-//
-#if defined(_MT) || defined(__MT__)
-# define BOOST_LIB_THREAD_OPT "-mt"
-#else
-# define BOOST_LIB_THREAD_OPT
-#endif
-
-#if defined(_MSC_VER) || defined(__MWERKS__)
-
-# ifdef _DLL
-
-# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
-
-# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-# define BOOST_LIB_RT_OPT "-gdp"
-# elif defined(_DEBUG)
-# define BOOST_LIB_RT_OPT "-gdp"
-# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
-# error "Build options aren't compatible with pre-built libraries"
-# else
-# define BOOST_LIB_RT_OPT "-p"
-# endif
-
-# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-
-# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-# define BOOST_LIB_RT_OPT "-gdpn"
-# elif defined(_DEBUG)
-# define BOOST_LIB_RT_OPT "-gdpn"
-# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
-# error "Build options aren't compatible with pre-built libraries"
-# else
-# define BOOST_LIB_RT_OPT "-pn"
-# endif
-
-# else
-
-# if defined(_DEBUG)
-# define BOOST_LIB_RT_OPT "-gd"
-# else
-# define BOOST_LIB_RT_OPT
-# endif
-
-# endif
-
-# else
-
-# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
-
-# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-# define BOOST_LIB_RT_OPT "-sgdp"
-# elif defined(_DEBUG)
-# define BOOST_LIB_RT_OPT "-sgdp"
-# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
-# error "Build options aren't compatible with pre-built libraries"
-# else
-# define BOOST_LIB_RT_OPT "-sp"
-# endif
-
-# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-
-# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-# define BOOST_LIB_RT_OPT "-sgdpn"
-# elif defined(_DEBUG)
-# define BOOST_LIB_RT_OPT "-sgdpn"
-# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
-# error "Build options aren't compatible with pre-built libraries"
-# else
-# define BOOST_LIB_RT_OPT "-spn"
-# endif
-
-# else
-
-# if defined(_DEBUG)
-# define BOOST_LIB_RT_OPT "-sgd"
-# else
-# define BOOST_LIB_RT_OPT "-s"
-# endif
-
-# endif
-
-# endif
-
-#elif defined(__BORLANDC__)
-
-//
-// figure out whether we want the debug builds or not:
-//
-#pragma defineonoption BOOST_BORLAND_DEBUG -v
-//
-// sanity check:
-//
-#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
-#error "Pre-built versions of the Boost libraries are not provided in STLPort-debug form"
-#endif
-
-# ifdef _RTLDLL
-
-# ifdef BOOST_BORLAND_DEBUG
-# define BOOST_LIB_RT_OPT "-d"
-# else
-# define BOOST_LIB_RT_OPT
-# endif
-
-# else
-
-# ifdef BOOST_BORLAND_DEBUG
-# define BOOST_LIB_RT_OPT "-sd"
-# else
-# define BOOST_LIB_RT_OPT "-s"
-# endif
-
-# endif
-
-#endif
-
-//
-// select linkage opt:
-//
-#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK)
-# define BOOST_LIB_PREFIX
-#elif defined(BOOST_DYN_LINK)
-# error "Mixing a dll boost library with a static runtime is a really bad idea..."
-#else
-# define BOOST_LIB_PREFIX "lib"
-#endif
-
-//
-// now include the lib:
-//
-#if defined(BOOST_LIB_NAME) \
- && defined(BOOST_LIB_PREFIX) \
- && defined(BOOST_LIB_TOOLSET) \
- && defined(BOOST_LIB_THREAD_OPT) \
- && defined(BOOST_LIB_RT_OPT) \
- && defined(BOOST_LIB_VERSION)
-
-# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
-#ifdef BOOST_LIB_DIAGNOSTIC
-# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
-#endif
-
-#else
-# error "some required macros where not defined (internal logic error)."
-#endif
-
-
-#endif // _MSC_VER || __BORLANDC__
-
-//
-// finally undef any macros we may have set:
-//
-#ifdef BOOST_LIB_PREFIX
-# undef BOOST_LIB_PREFIX
-#endif
-#if defined(BOOST_LIB_NAME)
-# undef BOOST_LIB_NAME
-#endif
-#if defined(BOOST_LIB_TOOLSET)
-# undef BOOST_LIB_TOOLSET
-#endif
-#if defined(BOOST_LIB_THREAD_OPT)
-# undef BOOST_LIB_THREAD_OPT
-#endif
-#if defined(BOOST_LIB_RT_OPT)
-# undef BOOST_LIB_RT_OPT
-#endif
-#if defined(BOOST_LIB_LINK_OPT)
-# undef BOOST_LIB_LINK_OPT
-#endif
-#if defined(BOOST_LIB_DEBUG_OPT)
-# undef BOOST_LIB_DEBUG_OPT
-#endif
-#if defined(BOOST_DYN_LINK)
-# undef BOOST_DYN_LINK
-#endif
-
-
-
-
-
-
-
-
-
diff --git a/indexlib/boost-compat/config/compiler/borland.hpp b/indexlib/boost-compat/config/compiler/borland.h
index 531691ef..531691ef 100644
--- a/indexlib/boost-compat/config/compiler/borland.hpp
+++ b/indexlib/boost-compat/config/compiler/borland.h
diff --git a/indexlib/boost-compat/config/compiler/comeau.hpp b/indexlib/boost-compat/config/compiler/comeau.h
index 16a1b93c..16a1b93c 100644
--- a/indexlib/boost-compat/config/compiler/comeau.hpp
+++ b/indexlib/boost-compat/config/compiler/comeau.h
diff --git a/indexlib/boost-compat/config/compiler/common_edg.h b/indexlib/boost-compat/config/compiler/common_edg.h
new file mode 100644
index 00000000..28b164a8
--- /dev/null
+++ b/indexlib/boost-compat/config/compiler/common_edg.h
@@ -0,0 +1,53 @@
+// (C) Copyright John Maddock 2001 - 2002.
+// (C) Copyright Jens Maurer 2001.
+// (C) Copyright David Abrahams 2002.
+// (C) Copyright Aleksey Gurtovoy 2002.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org for most recent version.
+
+//
+// Options common to all edg based compilers.
+//
+// This is included from within the individual compiler mini-configs.
+
+#ifndef __EDG_VERSION__
+# error This file requires that __EDG_VERSION__ be defined.
+#endif
+
+#if (__EDG_VERSION__ <= 238)
+# define BOOST_NO_INTEGRAL_INT64_T
+# define BOOST_NO_SFINAE
+#endif
+
+#if (__EDG_VERSION__ <= 240)
+# define BOOST_NO_VOID_RETURNS
+#endif
+
+#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
+# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
+#endif
+
+#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
+# define BOOST_NO_TEMPLATE_TEMPLATES
+#endif
+
+// See also kai.h which checks a Kai-specific symbol for EH
+# if !defined(__KCC) && !defined(__EXCEPTIONS)
+# define BOOST_NO_EXCEPTIONS
+# endif
+
+# if !defined(__NO_LONG_LONG)
+# define BOOST_HAS_LONG_LONG
+# endif
+
+#ifdef c_plusplus
+// EDG has "long long" in non-strict mode
+// However, some libraries have insufficient "long long" support
+// #define BOOST_HAS_LONG_LONG
+#endif
+
+
+
diff --git a/indexlib/boost-compat/config/compiler/common_edg.hpp b/indexlib/boost-compat/config/compiler/common_edg.hpp
deleted file mode 100644
index c7c0b56e..00000000
--- a/indexlib/boost-compat/config/compiler/common_edg.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-// (C) Copyright John Maddock 2001 - 2002.
-// (C) Copyright Jens Maurer 2001.
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Aleksey Gurtovoy 2002.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-//
-// Options common to all edg based compilers.
-//
-// This is included from within the individual compiler mini-configs.
-
-#ifndef __EDG_VERSION__
-# error This file requires that __EDG_VERSION__ be defined.
-#endif
-
-#if (__EDG_VERSION__ <= 238)
-# define BOOST_NO_INTEGRAL_INT64_T
-# define BOOST_NO_SFINAE
-#endif
-
-#if (__EDG_VERSION__ <= 240)
-# define BOOST_NO_VOID_RETURNS
-#endif
-
-#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
-# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#endif
-
-#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
-# define BOOST_NO_TEMPLATE_TEMPLATES
-#endif
-
-// See also kai.hpp which checks a Kai-specific symbol for EH
-# if !defined(__KCC) && !defined(__EXCEPTIONS)
-# define BOOST_NO_EXCEPTIONS
-# endif
-
-# if !defined(__NO_LONG_LONG)
-# define BOOST_HAS_LONG_LONG
-# endif
-
-#ifdef c_plusplus
-// EDG has "long long" in non-strict mode
-// However, some libraries have insufficient "long long" support
-// #define BOOST_HAS_LONG_LONG
-#endif
-
-
-
diff --git a/indexlib/boost-compat/config/compiler/compaq_cxx.hpp b/indexlib/boost-compat/config/compiler/compaq_cxx.h
index 3c0c6b7f..3c0c6b7f 100644
--- a/indexlib/boost-compat/config/compiler/compaq_cxx.hpp
+++ b/indexlib/boost-compat/config/compiler/compaq_cxx.h
diff --git a/indexlib/boost-compat/config/compiler/digitalmars.hpp b/indexlib/boost-compat/config/compiler/digitalmars.h
index 32fc71fa..32fc71fa 100644
--- a/indexlib/boost-compat/config/compiler/digitalmars.hpp
+++ b/indexlib/boost-compat/config/compiler/digitalmars.h
diff --git a/indexlib/boost-compat/config/compiler/gcc.h b/indexlib/boost-compat/config/compiler/gcc.h
new file mode 100644
index 00000000..4be7f408
--- /dev/null
+++ b/indexlib/boost-compat/config/compiler/gcc.h
@@ -0,0 +1,92 @@
+// (C) Copyright John Maddock 2001 - 2003.
+// (C) Copyright Darin Adler 2001 - 2002.
+// (C) Copyright Jens Maurer 2001 - 2002.
+// (C) Copyright Beman Dawes 2001 - 2003.
+// (C) Copyright Douglas Gregor 2002.
+// (C) Copyright David Abrahams 2002 - 2003.
+// (C) Copyright Synge Todo 2003.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org for most recent version.
+
+// GNU C++ compiler setup:
+
+# if __GNUC__ == 2 && __GNUC_MINOR__ < 95
+ //
+ // Prior to gcc 2.95 member templates only partly
+ // work - define BOOST_MSVC6_MEMBER_TEMPLATES
+ // instead since inline member templates mostly work.
+ //
+# define BOOST_NO_MEMBER_TEMPLATES
+# if __GNUC_MINOR__ >= 9
+# define BOOST_MSVC6_MEMBER_TEMPLATES
+# endif
+# endif
+
+# if __GNUC__ == 2 && __GNUC_MINOR__ < 96
+# define BOOST_NO_SFINAE
+# endif
+
+# if __GNUC__ == 2 && __GNUC_MINOR__ <= 97
+# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+# define BOOST_NO_OPERATORS_IN_NAMESPACE
+# endif
+
+# if __GNUC__ < 3
+# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
+# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+# endif
+
+#ifndef __EXCEPTIONS
+# define BOOST_NO_EXCEPTIONS
+#endif
+
+//
+// Bug specific to gcc 3.1 and 3.2:
+//
+#if (__GNUC__ == 3) && ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
+# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+#endif
+
+//
+// Threading support: Turn this on unconditionally here (except for
+// those platforms where we can know for sure). It will get turned off again
+// later if no threading API is detected.
+//
+#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
+# define BOOST_HAS_THREADS
+#endif
+
+//
+// gcc has "long long"
+//
+#define BOOST_HAS_LONG_LONG
+
+//
+// gcc implements the named return value optimization since version 3.1
+//
+#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
+#define BOOST_HAS_NRVO
+#endif
+
+#define BOOST_COMPILER "GNU C++ version " __VERSION__
+
+//
+// versions check:
+// we don't know gcc prior to version 2.90:
+#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
+# error "Compiler not configured - please reconfigure"
+#endif
+//
+// last known and checked version is 3.4:
+#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 4))
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# else
+# warning "Unknown compiler version - please run the configure tests and report the results"
+# endif
+#endif
+
+
diff --git a/indexlib/boost-compat/config/compiler/gcc.hpp b/indexlib/boost-compat/config/compiler/gcc.hpp
deleted file mode 100644
index 4dc3f608..00000000
--- a/indexlib/boost-compat/config/compiler/gcc.hpp
+++ /dev/null
@@ -1,96 +0,0 @@
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Darin Adler 2001 - 2002.
-// (C) Copyright Jens Maurer 2001 - 2002.
-// (C) Copyright Beman Dawes 2001 - 2003.
-// (C) Copyright Douglas Gregor 2002.
-// (C) Copyright David Abrahams 2002 - 2003.
-// (C) Copyright Synge Todo 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// GNU C++ compiler setup:
-
-# if __GNUC__ == 2 && __GNUC_MINOR__ == 91
- // egcs 1.1 won't parse shared_ptr.hpp without this:
-# define BOOST_NO_AUTO_PTR
-# endif
-# if __GNUC__ == 2 && __GNUC_MINOR__ < 95
- //
- // Prior to gcc 2.95 member templates only partly
- // work - define BOOST_MSVC6_MEMBER_TEMPLATES
- // instead since inline member templates mostly work.
- //
-# define BOOST_NO_MEMBER_TEMPLATES
-# if __GNUC_MINOR__ >= 9
-# define BOOST_MSVC6_MEMBER_TEMPLATES
-# endif
-# endif
-
-# if __GNUC__ == 2 && __GNUC_MINOR__ < 96
-# define BOOST_NO_SFINAE
-# endif
-
-# if __GNUC__ == 2 && __GNUC_MINOR__ <= 97
-# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-# define BOOST_NO_OPERATORS_IN_NAMESPACE
-# endif
-
-# if __GNUC__ < 3
-# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-# endif
-
-#ifndef __EXCEPTIONS
-# define BOOST_NO_EXCEPTIONS
-#endif
-
-//
-// Bug specific to gcc 3.1 and 3.2:
-//
-#if (__GNUC__ == 3) && ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
-# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-#endif
-
-//
-// Threading support: Turn this on unconditionally here (except for
-// those platforms where we can know for sure). It will get turned off again
-// later if no threading API is detected.
-//
-#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
-# define BOOST_HAS_THREADS
-#endif
-
-//
-// gcc has "long long"
-//
-#define BOOST_HAS_LONG_LONG
-
-//
-// gcc implements the named return value optimization since version 3.1
-//
-#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
-#define BOOST_HAS_NRVO
-#endif
-
-#define BOOST_COMPILER "GNU C++ version " __VERSION__
-
-//
-// versions check:
-// we don't know gcc prior to version 2.90:
-#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
-# error "Compiler not configured - please reconfigure"
-#endif
-//
-// last known and checked version is 3.4:
-#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 4))
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# else
-# warning "Unknown compiler version - please run the configure tests and report the results"
-# endif
-#endif
-
-
diff --git a/indexlib/boost-compat/config/compiler/greenhills.hpp b/indexlib/boost-compat/config/compiler/greenhills.h
index 038b6b2b..038b6b2b 100644
--- a/indexlib/boost-compat/config/compiler/greenhills.hpp
+++ b/indexlib/boost-compat/config/compiler/greenhills.h
diff --git a/indexlib/boost-compat/config/compiler/hp_acc.hpp b/indexlib/boost-compat/config/compiler/hp_acc.h
index b5c587ab..b5c587ab 100644
--- a/indexlib/boost-compat/config/compiler/hp_acc.hpp
+++ b/indexlib/boost-compat/config/compiler/hp_acc.h
diff --git a/indexlib/boost-compat/config/compiler/intel.hpp b/indexlib/boost-compat/config/compiler/intel.h
index 060338bc..060338bc 100644
--- a/indexlib/boost-compat/config/compiler/intel.hpp
+++ b/indexlib/boost-compat/config/compiler/intel.h
diff --git a/indexlib/boost-compat/config/compiler/kai.h b/indexlib/boost-compat/config/compiler/kai.h
new file mode 100644
index 00000000..fefda9ce
--- /dev/null
+++ b/indexlib/boost-compat/config/compiler/kai.h
@@ -0,0 +1,35 @@
+// (C) Copyright John Maddock 2001.
+// (C) Copyright David Abrahams 2002.
+// (C) Copyright Aleksey Gurtovoy 2002.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org for most recent version.
+
+// Kai C++ compiler setup:
+
+#include "boost/config/compiler/common_edg.hpp"
+
+# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
+ // at least on Sun, the contents of <cwchar> is not in namespace std
+# define BOOST_NO_STDC_NAMESPACE
+# endif
+
+// see also common_edg.h which needs a special check for __KCC
+# if !defined(_EXCEPTIONS)
+# define BOOST_NO_EXCEPTIONS
+# endif
+
+#define BOOST_COMPILER "Kai C++ version " BOOST_STRINGIZE(__KCC_VERSION)
+
+//
+// last known and checked version is 4001:
+#if (__KCC_VERSION > 4001)
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# endif
+#endif
+
+
+
diff --git a/indexlib/boost-compat/config/compiler/kai.hpp b/indexlib/boost-compat/config/compiler/kai.hpp
deleted file mode 100644
index de16f1a6..00000000
--- a/indexlib/boost-compat/config/compiler/kai.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-// (C) Copyright John Maddock 2001.
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Aleksey Gurtovoy 2002.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// Kai C++ compiler setup:
-
-#include "boost/config/compiler/common_edg.hpp"
-
-# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
- // at least on Sun, the contents of <cwchar> is not in namespace std
-# define BOOST_NO_STDC_NAMESPACE
-# endif
-
-// see also common_edg.hpp which needs a special check for __KCC
-# if !defined(_EXCEPTIONS)
-# define BOOST_NO_EXCEPTIONS
-# endif
-
-#define BOOST_COMPILER "Kai C++ version " BOOST_STRINGIZE(__KCC_VERSION)
-
-//
-// last known and checked version is 4001:
-#if (__KCC_VERSION > 4001)
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# endif
-#endif
-
-
-
diff --git a/indexlib/boost-compat/config/compiler/metrowerks.hpp b/indexlib/boost-compat/config/compiler/metrowerks.h
index a74cadef..a74cadef 100644
--- a/indexlib/boost-compat/config/compiler/metrowerks.hpp
+++ b/indexlib/boost-compat/config/compiler/metrowerks.h
diff --git a/indexlib/boost-compat/config/compiler/mpw.hpp b/indexlib/boost-compat/config/compiler/mpw.h
index 8ab2aacb..8ab2aacb 100644
--- a/indexlib/boost-compat/config/compiler/mpw.hpp
+++ b/indexlib/boost-compat/config/compiler/mpw.h
diff --git a/indexlib/boost-compat/config/compiler/sgi_mipspro.hpp b/indexlib/boost-compat/config/compiler/sgi_mipspro.h
index 689b67ee..689b67ee 100644
--- a/indexlib/boost-compat/config/compiler/sgi_mipspro.hpp
+++ b/indexlib/boost-compat/config/compiler/sgi_mipspro.h
diff --git a/indexlib/boost-compat/config/compiler/sunpro_cc.h b/indexlib/boost-compat/config/compiler/sunpro_cc.h
new file mode 100644
index 00000000..80dc3913
--- /dev/null
+++ b/indexlib/boost-compat/config/compiler/sunpro_cc.h
@@ -0,0 +1,89 @@
+// (C) Copyright John Maddock 2001.
+// (C) Copyright Jens Maurer 2001 - 2003.
+// (C) Copyright Peter Dimov 2002.
+// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
+// (C) Copyright David Abrahams 2002.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org for most recent version.
+
+// Sun C++ compiler setup:
+
+# if __SUNPRO_CC <= 0x500
+# define BOOST_NO_MEMBER_TEMPLATES
+# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
+# endif
+
+# if (__SUNPRO_CC <= 0x520)
+ //
+ // Sunpro 5.2 and earler:
+ //
+ // although sunpro 5.2 supports the syntax for
+ // inline initialization it often gets the value
+ // wrong, especially where the value is computed
+ // from other constants (J Maddock 6th May 2001)
+# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+
+ // Although sunpro 5.2 supports the syntax for
+ // partial specialization, it often seems to
+ // bind to the wrong specialization. Better
+ // to disable it until suppport becomes more stable
+ // (J Maddock 6th May 2001).
+# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+# endif
+
+# if (__SUNPRO_CC <= 0x530) || !defined(BOOST_STRICT_CONFIG)
+ // Requesting debug info (-g) with Boost.Python results
+ // in an internal compiler error for "static const"
+ // initialized in-class.
+ // >> Assertion: (../links/dbg_cstabs.cpp, line 611)
+ // while processing ../test.cpp at line 0.
+ // (Jens Maurer according to Gottfried Ganauge 04 Mar 2002)
+# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+
+ // SunPro 5.3 has better support for partial specialization,
+ // but breaks when compiling std::less<shared_ptr<T> >
+ // (Jens Maurer 4 Nov 2001).
+
+ // std::less specialization fixed as reported by George
+ // Heintzelman; partial specialization re-enabled
+ // (Peter Dimov 17 Jan 2002)
+
+//# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+ // integral constant expressions with 64 bit numbers fail
+# define BOOST_NO_INTEGRAL_INT64_T
+# endif
+
+# if (__SUNPRO_CC <= 0x540) || !defined(BOOST_STRICT_CONFIG)
+# define BOOST_NO_TEMPLATE_TEMPLATES
+ // see http://lists.boost.org/MailArchives/boost/msg47184.php
+ // and http://lists.boost.org/MailArchives/boost/msg47220.php
+# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+# define BOOST_NO_SFINAE
+# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+# endif
+
+#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
+
+//
+// versions check:
+// we don't support sunpro prior to version 4:
+#if __SUNPRO_CC < 0x400
+#error "Compiler not supported or configured - please reconfigure"
+#endif
+//
+// last known and checked version is 0x530:
+#if (__SUNPRO_CC > 0x530)
+# if defined(BOOST_ASSERT_CONFIG)
+# error "Unknown compiler version - please run the configure tests and report the results"
+# endif
+#endif
+
+
+
+
+
+
diff --git a/indexlib/boost-compat/config/compiler/sunpro_cc.hpp b/indexlib/boost-compat/config/compiler/sunpro_cc.hpp
deleted file mode 100644
index 8a61199f..00000000
--- a/indexlib/boost-compat/config/compiler/sunpro_cc.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-// (C) Copyright John Maddock 2001.
-// (C) Copyright Jens Maurer 2001 - 2003.
-// (C) Copyright Peter Dimov 2002.
-// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
-// (C) Copyright David Abrahams 2002.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// Sun C++ compiler setup:
-
-# if __SUNPRO_CC <= 0x500
-# define BOOST_NO_MEMBER_TEMPLATES
-# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-# endif
-
-# if (__SUNPRO_CC <= 0x520)
- //
- // Sunpro 5.2 and earler:
- //
- // although sunpro 5.2 supports the syntax for
- // inline initialization it often gets the value
- // wrong, especially where the value is computed
- // from other constants (J Maddock 6th May 2001)
-# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-
- // Although sunpro 5.2 supports the syntax for
- // partial specialization, it often seems to
- // bind to the wrong specialization. Better
- // to disable it until suppport becomes more stable
- // (J Maddock 6th May 2001).
-# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# endif
-
-# if (__SUNPRO_CC <= 0x530) || !defined(BOOST_STRICT_CONFIG)
- // Requesting debug info (-g) with Boost.Python results
- // in an internal compiler error for "static const"
- // initialized in-class.
- // >> Assertion: (../links/dbg_cstabs.cc, line 611)
- // while processing ../test.cpp at line 0.
- // (Jens Maurer according to Gottfried Ganauge 04 Mar 2002)
-# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-
- // SunPro 5.3 has better support for partial specialization,
- // but breaks when compiling std::less<shared_ptr<T> >
- // (Jens Maurer 4 Nov 2001).
-
- // std::less specialization fixed as reported by George
- // Heintzelman; partial specialization re-enabled
- // (Peter Dimov 17 Jan 2002)
-
-//# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
- // integral constant expressions with 64 bit numbers fail
-# define BOOST_NO_INTEGRAL_INT64_T
-# endif
-
-# if (__SUNPRO_CC <= 0x540) || !defined(BOOST_STRICT_CONFIG)
-# define BOOST_NO_TEMPLATE_TEMPLATES
- // see http://lists.boost.org/MailArchives/boost/msg47184.php
- // and http://lists.boost.org/MailArchives/boost/msg47220.php
-# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-# define BOOST_NO_SFINAE
-# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
-# endif
-
-#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
-
-//
-// versions check:
-// we don't support sunpro prior to version 4:
-#if __SUNPRO_CC < 0x400
-#error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 0x530:
-#if (__SUNPRO_CC > 0x530)
-# if defined(BOOST_ASSERT_CONFIG)
-# error "Unknown compiler version - please run the configure tests and report the results"
-# endif
-#endif
-
-
-
-
-
-
diff --git a/indexlib/boost-compat/config/compiler/vacpp.hpp b/indexlib/boost-compat/config/compiler/vacpp.h
index 4cf0de7c..4cf0de7c 100644
--- a/indexlib/boost-compat/config/compiler/vacpp.hpp
+++ b/indexlib/boost-compat/config/compiler/vacpp.h
diff --git a/indexlib/boost-compat/config/compiler/visualc.hpp b/indexlib/boost-compat/config/compiler/visualc.h
index 32353260..32353260 100644
--- a/indexlib/boost-compat/config/compiler/visualc.hpp
+++ b/indexlib/boost-compat/config/compiler/visualc.h
diff --git a/indexlib/boost-compat/config/platform/aix.hpp b/indexlib/boost-compat/config/platform/aix.h
index 894ef42c..894ef42c 100644
--- a/indexlib/boost-compat/config/platform/aix.hpp
+++ b/indexlib/boost-compat/config/platform/aix.h
diff --git a/indexlib/boost-compat/config/platform/amigaos.hpp b/indexlib/boost-compat/config/platform/amigaos.h
index 34bcf412..34bcf412 100644
--- a/indexlib/boost-compat/config/platform/amigaos.hpp
+++ b/indexlib/boost-compat/config/platform/amigaos.h
diff --git a/indexlib/boost-compat/config/platform/beos.hpp b/indexlib/boost-compat/config/platform/beos.h
index 48c3d8dc..48c3d8dc 100644
--- a/indexlib/boost-compat/config/platform/beos.hpp
+++ b/indexlib/boost-compat/config/platform/beos.h
diff --git a/indexlib/boost-compat/config/platform/bsd.hpp b/indexlib/boost-compat/config/platform/bsd.h
index 4f04ed2a..4f04ed2a 100644
--- a/indexlib/boost-compat/config/platform/bsd.hpp
+++ b/indexlib/boost-compat/config/platform/bsd.h
diff --git a/indexlib/boost-compat/config/platform/cygwin.hpp b/indexlib/boost-compat/config/platform/cygwin.h
index 0fd2ebe2..0fd2ebe2 100644
--- a/indexlib/boost-compat/config/platform/cygwin.hpp
+++ b/indexlib/boost-compat/config/platform/cygwin.h
diff --git a/indexlib/boost-compat/config/platform/hpux.hpp b/indexlib/boost-compat/config/platform/hpux.h
index 21049059..21049059 100644
--- a/indexlib/boost-compat/config/platform/hpux.hpp
+++ b/indexlib/boost-compat/config/platform/hpux.h
diff --git a/indexlib/boost-compat/config/platform/irix.hpp b/indexlib/boost-compat/config/platform/irix.h
index aeae49c8..aeae49c8 100644
--- a/indexlib/boost-compat/config/platform/irix.hpp
+++ b/indexlib/boost-compat/config/platform/irix.h
diff --git a/indexlib/boost-compat/config/platform/linux.hpp b/indexlib/boost-compat/config/platform/linux.h
index 51ae1334..51ae1334 100644
--- a/indexlib/boost-compat/config/platform/linux.hpp
+++ b/indexlib/boost-compat/config/platform/linux.h
diff --git a/indexlib/boost-compat/config/platform/macos.hpp b/indexlib/boost-compat/config/platform/macos.h
index 3a5f4130..3a5f4130 100644
--- a/indexlib/boost-compat/config/platform/macos.hpp
+++ b/indexlib/boost-compat/config/platform/macos.h
diff --git a/indexlib/boost-compat/config/platform/solaris.hpp b/indexlib/boost-compat/config/platform/solaris.h
index 700dc3ce..700dc3ce 100644
--- a/indexlib/boost-compat/config/platform/solaris.hpp
+++ b/indexlib/boost-compat/config/platform/solaris.h
diff --git a/indexlib/boost-compat/config/platform/win32.hpp b/indexlib/boost-compat/config/platform/win32.h
index 548bff28..548bff28 100644
--- a/indexlib/boost-compat/config/platform/win32.hpp
+++ b/indexlib/boost-compat/config/platform/win32.h
diff --git a/indexlib/boost-compat/config/posix_features.hpp b/indexlib/boost-compat/config/posix_features.h
index 4afb476b..4afb476b 100644
--- a/indexlib/boost-compat/config/posix_features.hpp
+++ b/indexlib/boost-compat/config/posix_features.h
diff --git a/indexlib/boost-compat/config/requires_threads.h b/indexlib/boost-compat/config/requires_threads.h
new file mode 100644
index 00000000..03259ae9
--- /dev/null
+++ b/indexlib/boost-compat/config/requires_threads.h
@@ -0,0 +1,92 @@
+// (C) Copyright John Maddock 2003.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+
+#ifndef BOOST_CONFIG_REQUIRES_THREADS_H
+#define BOOST_CONFIG_REQUIRES_THREADS_H
+
+#ifndef BOOST_CONFIG_H
+# include <boost/config.hpp>
+#endif
+
+#if defined(BOOST_DISABLE_THREADS)
+
+//
+// special case to handle versions of gcc which don't currently support threads:
+//
+#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG))
+//
+// this is checked up to gcc 3.3:
+//
+#if defined(__sgi) || defined(__hpux)
+# error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)"
+#endif
+
+#endif
+
+# error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
+
+#elif !defined(BOOST_HAS_THREADS)
+
+# if defined __COMO__
+// Comeau C++
+# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)"
+
+#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
+// Intel
+#ifdef _WIN32
+# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
+#else
+# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp"
+#endif
+
+# elif defined __GNUC__
+// GNU C++:
+# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"
+
+#elif defined __sgi
+// SGI MIPSpro C++
+# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE"
+
+#elif defined __DECCXX
+// Compaq Tru64 Unix cxx
+# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread"
+
+#elif defined __BORLANDC__
+// Borland
+# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM"
+
+#elif defined __MWERKS__
+// Metrowerks CodeWarrior
+# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd"
+
+#elif defined __SUNPRO_CC
+// Sun Workshop Compiler C++
+# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
+
+#elif defined __HP_aCC
+// HP aCC
+# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
+
+#elif defined(__IBMCPP__)
+// IBM Visual Age
+# error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler"
+
+#elif defined _MSC_VER
+// Microsoft Visual C++
+//
+// Must remain the last #elif since some other vendors (Metrowerks, for
+// example) also #define _MSC_VER
+# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
+
+#else
+
+# error "Compiler threading support is not turned on. Please consult your compiler's documentation for the appropriate options to use"
+
+#endif // compilers
+
+#endif // BOOST_HAS_THREADS
+
+#endif // BOOST_CONFIG_REQUIRES_THREADS_H
diff --git a/indexlib/boost-compat/config/requires_threads.hpp b/indexlib/boost-compat/config/requires_threads.hpp
deleted file mode 100644
index cfaff230..00000000
--- a/indexlib/boost-compat/config/requires_threads.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-// (C) Copyright John Maddock 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-
-#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP
-#define BOOST_CONFIG_REQUIRES_THREADS_HPP
-
-#ifndef BOOST_CONFIG_HPP
-# include <boost/config.hpp>
-#endif
-
-#if defined(BOOST_DISABLE_THREADS)
-
-//
-// special case to handle versions of gcc which don't currently support threads:
-//
-#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG))
-//
-// this is checked up to gcc 3.3:
-//
-#if defined(__sgi) || defined(__hpux)
-# error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)"
-#endif
-
-#endif
-
-# error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
-
-#elif !defined(BOOST_HAS_THREADS)
-
-# if defined __COMO__
-// Comeau C++
-# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)"
-
-#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
-// Intel
-#ifdef _WIN32
-# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
-#else
-# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp"
-#endif
-
-# elif defined __GNUC__
-// GNU C++:
-# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"
-
-#elif defined __sgi
-// SGI MIPSpro C++
-# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE"
-
-#elif defined __DECCXX
-// Compaq Tru64 Unix cxx
-# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread"
-
-#elif defined __BORLANDC__
-// Borland
-# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM"
-
-#elif defined __MWERKS__
-// Metrowerks CodeWarrior
-# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd"
-
-#elif defined __SUNPRO_CC
-// Sun Workshop Compiler C++
-# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
-
-#elif defined __HP_aCC
-// HP aCC
-# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
-
-#elif defined(__IBMCPP__)
-// IBM Visual Age
-# error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler"
-
-#elif defined _MSC_VER
-// Microsoft Visual C++
-//
-// Must remain the last #elif since some other vendors (Metrowerks, for
-// example) also #define _MSC_VER
-# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
-
-#else
-
-# error "Compiler threading support is not turned on. Please consult your compiler's documentation for the appropriate options to use"
-
-#endif // compilers
-
-#endif // BOOST_HAS_THREADS
-
-#endif // BOOST_CONFIG_REQUIRES_THREADS_HPP
diff --git a/indexlib/boost-compat/config/select_compiler_config.hpp b/indexlib/boost-compat/config/select_compiler_config.h
index 3453f1a3..3453f1a3 100644
--- a/indexlib/boost-compat/config/select_compiler_config.hpp
+++ b/indexlib/boost-compat/config/select_compiler_config.h
diff --git a/indexlib/boost-compat/config/select_platform_config.hpp b/indexlib/boost-compat/config/select_platform_config.h
index 5699b2a2..5699b2a2 100644
--- a/indexlib/boost-compat/config/select_platform_config.hpp
+++ b/indexlib/boost-compat/config/select_platform_config.h
diff --git a/indexlib/boost-compat/config/select_stdlib_config.hpp b/indexlib/boost-compat/config/select_stdlib_config.h
index b7bf5914..b7bf5914 100644
--- a/indexlib/boost-compat/config/select_stdlib_config.hpp
+++ b/indexlib/boost-compat/config/select_stdlib_config.h
diff --git a/indexlib/boost-compat/config/stdlib/dinkumware.hpp b/indexlib/boost-compat/config/stdlib/dinkumware.h
index aa214fc1..aa214fc1 100644
--- a/indexlib/boost-compat/config/stdlib/dinkumware.hpp
+++ b/indexlib/boost-compat/config/stdlib/dinkumware.h
diff --git a/indexlib/boost-compat/config/stdlib/libcomo.hpp b/indexlib/boost-compat/config/stdlib/libcomo.h
index b2c8e440..b2c8e440 100644
--- a/indexlib/boost-compat/config/stdlib/libcomo.hpp
+++ b/indexlib/boost-compat/config/stdlib/libcomo.h
diff --git a/indexlib/boost-compat/config/stdlib/libstdcpp3.h b/indexlib/boost-compat/config/stdlib/libstdcpp3.h
new file mode 100644
index 00000000..99e711ce
--- /dev/null
+++ b/indexlib/boost-compat/config/stdlib/libstdcpp3.h
@@ -0,0 +1,51 @@
+// (C) Copyright John Maddock 2001.
+// (C) Copyright Jens Maurer 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org for most recent version.
+
+// config for libstdc++ v3
+// not much to go in here:
+
+#ifdef __GLIBCXX__
+#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
+#else
+#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
+#endif
+
+#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
+# define BOOST_NO_CWCHAR
+# define BOOST_NO_CWCTYPE
+# define BOOST_NO_STD_WSTRING
+# define BOOST_NO_STD_WSTREAMBUF
+#endif
+
+#if defined(__osf__) && !defined(_REENTRANT) && defined(_GLIBCXX_HAVE_GTHR_DEFAULT)
+// GCC 3.4 on Tru64 forces the definition of _REENTRANT when any std lib header
+// file is included, therefore for consistency we define it here as well.
+# define _REENTRANT
+#endif
+
+#ifdef __GLIBCXX__ // gcc 3.4 and greater:
+# ifdef _GLIBCXX_HAVE_GTHR_DEFAULT
+ //
+ // If the std lib has thread support turned on, then turn it on in Boost
+ // as well. We do this because some gcc-3.4 std lib headers define _REENTANT
+ // while others do not...
+ //
+# define BOOST_HAS_THREADS
+# else
+# define BOOST_DISABLE_THREADS
+# endif
+#endif
+
+
+#if !defined(_GLIBCPP_USE_LONG_LONG) \
+ && !defined(_GLIBCXX_USE_LONG_LONG)\
+ && defined(BOOST_HAS_LONG_LONG)
+// May have been set by compiler/*.h, but "long long" without library
+// support is useless.
+# undef BOOST_HAS_LONG_LONG
+#endif
diff --git a/indexlib/boost-compat/config/stdlib/libstdcpp3.hpp b/indexlib/boost-compat/config/stdlib/libstdcpp3.hpp
deleted file mode 100644
index 9774e876..00000000
--- a/indexlib/boost-compat/config/stdlib/libstdcpp3.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-// (C) Copyright John Maddock 2001.
-// (C) Copyright Jens Maurer 2001.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// config for libstdc++ v3
-// not much to go in here:
-
-#ifdef __GLIBCXX__
-#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
-#else
-#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
-#endif
-
-#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
-# define BOOST_NO_CWCHAR
-# define BOOST_NO_CWCTYPE
-# define BOOST_NO_STD_WSTRING
-# define BOOST_NO_STD_WSTREAMBUF
-#endif
-
-#if defined(__osf__) && !defined(_REENTRANT) && defined(_GLIBCXX_HAVE_GTHR_DEFAULT)
-// GCC 3.4 on Tru64 forces the definition of _REENTRANT when any std lib header
-// file is included, therefore for consistency we define it here as well.
-# define _REENTRANT
-#endif
-
-#ifdef __GLIBCXX__ // gcc 3.4 and greater:
-# ifdef _GLIBCXX_HAVE_GTHR_DEFAULT
- //
- // If the std lib has thread support turned on, then turn it on in Boost
- // as well. We do this because some gcc-3.4 std lib headers define _REENTANT
- // while others do not...
- //
-# define BOOST_HAS_THREADS
-# else
-# define BOOST_DISABLE_THREADS
-# endif
-#endif
-
-
-#if !defined(_GLIBCPP_USE_LONG_LONG) \
- && !defined(_GLIBCXX_USE_LONG_LONG)\
- && defined(BOOST_HAS_LONG_LONG)
-// May have been set by compiler/*.hpp, but "long long" without library
-// support is useless.
-# undef BOOST_HAS_LONG_LONG
-#endif
diff --git a/indexlib/boost-compat/config/stdlib/modena.hpp b/indexlib/boost-compat/config/stdlib/modena.h
index 61e31b7d..61e31b7d 100644
--- a/indexlib/boost-compat/config/stdlib/modena.hpp
+++ b/indexlib/boost-compat/config/stdlib/modena.h
diff --git a/indexlib/boost-compat/config/stdlib/msl.hpp b/indexlib/boost-compat/config/stdlib/msl.h
index f8ad3d9a..f8ad3d9a 100644
--- a/indexlib/boost-compat/config/stdlib/msl.hpp
+++ b/indexlib/boost-compat/config/stdlib/msl.h
diff --git a/indexlib/boost-compat/config/stdlib/roguewave.h b/indexlib/boost-compat/config/stdlib/roguewave.h
new file mode 100644
index 00000000..452b8421
--- /dev/null
+++ b/indexlib/boost-compat/config/stdlib/roguewave.h
@@ -0,0 +1,122 @@
+// (C) Copyright John Maddock 2001 - 2003.
+// (C) Copyright Jens Maurer 2001.
+// (C) Copyright David Abrahams 2003.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org for most recent version.
+
+// Rogue Wave std lib:
+
+#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
+# include <utility>
+# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
+# error This is not the Rogue Wave standard library
+# endif
+#endif
+//
+// figure out a consistent version number:
+//
+#ifndef _RWSTD_VER
+# define BOOST_RWSTD_VER 0x010000
+#elif _RWSTD_VER < 0x010000
+# define BOOST_RWSTD_VER (_RWSTD_VER << 8)
+#else
+# define BOOST_RWSTD_VER _RWSTD_VER
+#endif
+
+#ifndef _RWSTD_VER
+# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
+#else
+# define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
+#endif
+
+//
+// Prior to version 2.2.0 the primary template for std::numeric_limits
+// does not have compile time constants, even though specializations of that
+// template do:
+//
+#if BOOST_RWSTD_VER < 0x020200
+# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+#endif
+
+// Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the
+// library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817):
+#if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))
+# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+# endif
+
+//
+// Borland version of numeric_limits lacks __int64 specialisation:
+//
+#ifdef __BORLANDC__
+# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
+#endif
+
+//
+// No std::iterator if it can't figure out default template args:
+//
+#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)
+# define BOOST_NO_STD_ITERATOR
+#endif
+
+//
+// No iterator traits without partial specialization:
+//
+#if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)
+# define BOOST_NO_STD_ITERATOR_TRAITS
+#endif
+
+//
+// Prior to version 2.0, std::auto_ptr was buggy, and there were no
+// new-style iostreams, and no conformant std::allocator:
+//
+#if (BOOST_RWSTD_VER < 0x020000)
+# define BOOST_NO_STRINGSTREAM
+# define BOOST_NO_STD_ALLOCATOR
+# define BOOST_NO_STD_LOCALE
+#endif
+
+//
+// No template iterator constructors without member template support:
+//
+#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)
+# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+#endif
+
+//
+// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use
+// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR
+// on HP aCC systems even though the allocator is in fact broken):
+//
+#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)
+# define BOOST_NO_STD_ALLOCATOR
+#endif
+
+//
+// If we have a std::locale, we still may not have std::use_facet:
+//
+#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)
+# define BOOST_NO_STD_USE_FACET
+# define BOOST_HAS_TWO_ARG_USE_FACET
+#endif
+
+//
+// There's no std::distance prior to version 2, or without
+// partial specialization support:
+//
+#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
+ #define BOOST_NO_STD_DISTANCE
+#endif
+
+//
+// Some versions of the rogue wave library don't have assignable
+// OutputIterators:
+//
+#if BOOST_RWSTD_VER < 0x020100
+# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
+#endif
+
+
+
diff --git a/indexlib/boost-compat/config/stdlib/roguewave.hpp b/indexlib/boost-compat/config/stdlib/roguewave.hpp
deleted file mode 100644
index ec3d881b..00000000
--- a/indexlib/boost-compat/config/stdlib/roguewave.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Jens Maurer 2001.
-// (C) Copyright David Abrahams 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// Rogue Wave std lib:
-
-#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
-# include <utility>
-# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
-# error This is not the Rogue Wave standard library
-# endif
-#endif
-//
-// figure out a consistent version number:
-//
-#ifndef _RWSTD_VER
-# define BOOST_RWSTD_VER 0x010000
-#elif _RWSTD_VER < 0x010000
-# define BOOST_RWSTD_VER (_RWSTD_VER << 8)
-#else
-# define BOOST_RWSTD_VER _RWSTD_VER
-#endif
-
-#ifndef _RWSTD_VER
-# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
-#else
-# define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
-#endif
-
-//
-// Prior to version 2.2.0 the primary template for std::numeric_limits
-// does not have compile time constants, even though specializations of that
-// template do:
-//
-#if BOOST_RWSTD_VER < 0x020200
-# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#endif
-
-// Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the
-// library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817):
-#if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))
-# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
-# endif
-
-//
-// Borland version of numeric_limits lacks __int64 specialisation:
-//
-#ifdef __BORLANDC__
-# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-#endif
-
-//
-// No std::iterator if it can't figure out default template args:
-//
-#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)
-# define BOOST_NO_STD_ITERATOR
-#endif
-
-//
-// No iterator traits without partial specialization:
-//
-#if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)
-# define BOOST_NO_STD_ITERATOR_TRAITS
-#endif
-
-//
-// Prior to version 2.0, std::auto_ptr was buggy, and there were no
-// new-style iostreams, and no conformant std::allocator:
-//
-#if (BOOST_RWSTD_VER < 0x020000)
-# define BOOST_NO_AUTO_PTR
-# define BOOST_NO_STRINGSTREAM
-# define BOOST_NO_STD_ALLOCATOR
-# define BOOST_NO_STD_LOCALE
-#endif
-
-//
-// No template iterator constructors without member template support:
-//
-#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)
-# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#endif
-
-//
-// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use
-// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR
-// on HP aCC systems even though the allocator is in fact broken):
-//
-#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)
-# define BOOST_NO_STD_ALLOCATOR
-#endif
-
-//
-// If we have a std::locale, we still may not have std::use_facet:
-//
-#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)
-# define BOOST_NO_STD_USE_FACET
-# define BOOST_HAS_TWO_ARG_USE_FACET
-#endif
-
-//
-// There's no std::distance prior to version 2, or without
-// partial specialization support:
-//
-#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
- #define BOOST_NO_STD_DISTANCE
-#endif
-
-//
-// Some versions of the rogue wave library don't have assignable
-// OutputIterators:
-//
-#if BOOST_RWSTD_VER < 0x020100
-# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
-#endif
-
-
-
diff --git a/indexlib/boost-compat/config/stdlib/sgi.hpp b/indexlib/boost-compat/config/stdlib/sgi.h
index 67f7a0a4..67f7a0a4 100644
--- a/indexlib/boost-compat/config/stdlib/sgi.hpp
+++ b/indexlib/boost-compat/config/stdlib/sgi.h
diff --git a/indexlib/boost-compat/config/stdlib/stlport.hpp b/indexlib/boost-compat/config/stdlib/stlport.h
index 4843ea59..4843ea59 100644
--- a/indexlib/boost-compat/config/stdlib/stlport.hpp
+++ b/indexlib/boost-compat/config/stdlib/stlport.h
diff --git a/indexlib/boost-compat/config/stdlib/vacpp.hpp b/indexlib/boost-compat/config/stdlib/vacpp.h
index 8321ee0c..8321ee0c 100644
--- a/indexlib/boost-compat/config/stdlib/vacpp.hpp
+++ b/indexlib/boost-compat/config/stdlib/vacpp.h
diff --git a/indexlib/boost-compat/config/suffix.h b/indexlib/boost-compat/config/suffix.h
new file mode 100644
index 00000000..313faea9
--- /dev/null
+++ b/indexlib/boost-compat/config/suffix.h
@@ -0,0 +1,543 @@
+// Boost config.h configuration header file ------------------------------//
+
+// (C) Copyright John Maddock 2001 - 2003.
+// (C) Copyright Darin Adler 2001.
+// (C) Copyright Peter Dimov 2001.
+// (C) Copyright Bill Kempf 2002.
+// (C) Copyright Jens Maurer 2002.
+// (C) Copyright David Abrahams 2002 - 2003.
+// (C) Copyright Gennaro Prota 2003.
+// (C) Copyright Eric Friedman 2003.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org for most recent version.
+
+// Boost config.h policy and rationale documentation has been moved to
+// http://www.boost.org/libs/config
+//
+// This file is intended to be stable, and relatively unchanging.
+// It should contain boilerplate code only - no compiler specific
+// code unless it is unavoidable - no changes unless unavoidable.
+
+#ifndef BOOST_CONFIG_SUFFIX_H
+#define BOOST_CONFIG_SUFFIX_H
+
+//
+// look for long long by looking for the appropriate macros in <limits.h>.
+// Note that we use limits.h rather than climits for maximal portability,
+// remember that since these just declare a bunch of macros, there should be
+// no namespace issues from this.
+//
+#include <limits.h>
+# if !defined(BOOST_HAS_LONG_LONG) \
+ && !(defined(BOOST_MSVC) && BOOST_MSVC <=1300) && !defined(__BORLANDC__) \
+ && (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
+# define BOOST_HAS_LONG_LONG
+#endif
+#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_INTEGRAL_INT64_T)
+# define BOOST_NO_INTEGRAL_INT64_T
+#endif
+
+// GCC 3.x will clean up all of those nasty macro definitions that
+// BOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine
+// it under GCC 3.x.
+#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(BOOST_NO_CTYPE_FUNCTIONS)
+# undef BOOST_NO_CTYPE_FUNCTIONS
+#endif
+
+
+//
+// Assume any extensions are in namespace std:: unless stated otherwise:
+//
+# ifndef BOOST_STD_EXTENSION_NAMESPACE
+# define BOOST_STD_EXTENSION_NAMESPACE std
+# endif
+
+//
+// If cv-qualified specializations are not allowed, then neither are cv-void ones:
+//
+# if defined(BOOST_NO_CV_SPECIALIZATIONS) \
+ && !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
+# define BOOST_NO_CV_VOID_SPECIALIZATIONS
+# endif
+
+//
+// If there is no numeric_limits template, then it can't have any compile time
+// constants either!
+//
+# if defined(BOOST_NO_LIMITS) \
+ && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS)
+# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
+# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
+# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+# endif
+
+//
+// if there is no long long then there is no specialisation
+// for numeric_limits<long long> either:
+//
+#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)
+# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
+#endif
+
+//
+// if there is no __int64 then there is no specialisation
+// for numeric_limits<__int64> either:
+//
+#if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS)
+# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
+#endif
+
+//
+// if member templates are supported then so is the
+// VC6 subset of member templates:
+//
+# if !defined(BOOST_NO_MEMBER_TEMPLATES) \
+ && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+# define BOOST_MSVC6_MEMBER_TEMPLATES
+# endif
+
+//
+// Without partial specialization, can't test for partial specialisation bugs:
+//
+# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+ && !defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)
+# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
+# endif
+
+//
+// Without partial specialization, we can't have array-type partial specialisations:
+//
+# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+ && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
+# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
+# endif
+
+//
+// Without partial specialization, std::iterator_traits can't work:
+//
+# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
+ && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
+# define BOOST_NO_STD_ITERATOR_TRAITS
+# endif
+
+//
+// Without member template support, we can't have template constructors
+// in the standard library either:
+//
+# if defined(BOOST_NO_MEMBER_TEMPLATES) \
+ && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
+ && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
+# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
+# endif
+
+//
+// Without member template support, we can't have a conforming
+// std::allocator template either:
+//
+# if defined(BOOST_NO_MEMBER_TEMPLATES) \
+ && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
+ && !defined(BOOST_NO_STD_ALLOCATOR)
+# define BOOST_NO_STD_ALLOCATOR
+# endif
+
+//
+// without ADL support then using declarations will break ADL as well:
+//
+#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
+# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#endif
+
+//
+// If we have a standard allocator, then we have a partial one as well:
+//
+#if !defined(BOOST_NO_STD_ALLOCATOR)
+# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
+#endif
+
+//
+// We can't have a working std::use_facet if there is no std::locale:
+//
+# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET)
+# define BOOST_NO_STD_USE_FACET
+# endif
+
+//
+// We can't have a std::messages facet if there is no std::locale:
+//
+# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES)
+# define BOOST_NO_STD_MESSAGES
+# endif
+
+//
+// We can't have a working std::wstreambuf if there is no std::locale:
+//
+# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF)
+# define BOOST_NO_STD_WSTREAMBUF
+# endif
+
+//
+// We can't have a <cwctype> if there is no <cwchar>:
+//
+# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE)
+# define BOOST_NO_CWCTYPE
+# endif
+
+//
+// We can't have a swprintf if there is no <cwchar>:
+//
+# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF)
+# define BOOST_NO_SWPRINTF
+# endif
+
+//
+// If Win32 support is turned off, then we must turn off
+// threading support also, unless there is some other
+// thread API enabled:
+//
+#if defined(BOOST_DISABLE_WIN32) && defined(_WIN32) \
+ && !defined(BOOST_DISABLE_THREADS) && !defined(BOOST_HAS_PTHREADS)
+# define BOOST_DISABLE_THREADS
+#endif
+
+//
+// Turn on threading support if the compiler thinks that it's in
+// multithreaded mode. We put this here because there are only a
+// limited number of macros that identify this (if there's any missing
+// from here then add to the appropriate compiler section):
+//
+#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
+ || defined(_PTHREADS)) && !defined(BOOST_HAS_THREADS)
+# define BOOST_HAS_THREADS
+#endif
+
+//
+// Turn threading support off if BOOST_DISABLE_THREADS is defined:
+//
+#if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS)
+# undef BOOST_HAS_THREADS
+#endif
+
+//
+// Turn threading support off if we don't recognise the threading API:
+//
+#if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\
+ && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS)\
+ && !defined(BOOST_HAS_MPTASKS)
+# undef BOOST_HAS_THREADS
+#endif
+
+//
+// Turn threading detail macros off if we don't (want to) use threading
+//
+#ifndef BOOST_HAS_THREADS
+# undef BOOST_HAS_PTHREADS
+# undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
+# undef BOOST_HAS_WINTHREADS
+# undef BOOST_HAS_BETHREADS
+# undef BOOST_HAS_MPTASKS
+#endif
+
+//
+// If the compiler claims to be C99 conformant, then it had better
+// have a <stdint.h>:
+//
+# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
+# define BOOST_HAS_STDINT_H
+# endif
+
+//
+// Define BOOST_NO_SLIST and BOOST_NO_HASH if required.
+// Note that this is for backwards compatibility only.
+//
+# ifndef BOOST_HAS_SLIST
+# define BOOST_NO_SLIST
+# endif
+
+# ifndef BOOST_HAS_HASH
+# define BOOST_NO_HASH
+# endif
+
+// BOOST_HAS_ABI_HEADERS
+// This macro gets set if we have headers that fix the ABI,
+// and prevent ODR violations when linking to external libraries:
+#if defined(BOOST_ABI_PREFIX) && defined(BOOST_ABI_SUFFIX) && !defined(BOOST_HAS_ABI_HEADERS)
+# define BOOST_HAS_ABI_HEADERS
+#endif
+
+#if defined(BOOST_HAS_ABI_HEADERS) && defined(BOOST_DISABLE_ABI_HEADERS)
+# undef BOOST_HAS_ABI_HEADERS
+#endif
+
+// BOOST_NO_STDC_NAMESPACE workaround --------------------------------------//
+// Because std::size_t usage is so common, even in boost headers which do not
+// otherwise use the C library, the <cstddef> workaround is included here so
+// that ugly workaround code need not appear in many other boost headers.
+// NOTE WELL: This is a workaround for non-conforming compilers; <cstddef>
+// must still be #included in the usual places so that <cstddef> inclusion
+// works as expected with standard conforming compilers. The resulting
+// double inclusion of <cstddef> is harmless.
+
+# ifdef BOOST_NO_STDC_NAMESPACE
+# include <cstddef>
+ namespace std { using ::ptrdiff_t; using ::size_t; }
+# endif
+
+// Workaround for the unfortunate min/max macros defined by some platform headers
+
+#define BOOST_PREVENT_MACRO_SUBSTITUTION
+
+#ifndef BOOST_USING_STD_MIN
+# define BOOST_USING_STD_MIN() using std::min
+#endif
+
+#ifndef BOOST_USING_STD_MAX
+# define BOOST_USING_STD_MAX() using std::max
+#endif
+
+// BOOST_NO_STD_MIN_MAX workaround -----------------------------------------//
+
+# ifdef BOOST_NO_STD_MIN_MAX
+
+namespace std {
+ template <class _Tp>
+ inline const _Tp& min BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
+ return __b < __a ? __b : __a;
+ }
+ template <class _Tp>
+ inline const _Tp& max BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
+ return __a < __b ? __b : __a;
+ }
+}
+
+# endif
+
+// BOOST_STATIC_CONSTANT workaround --------------------------------------- //
+// On compilers which don't allow in-class initialization of static integral
+// constant members, we must use enums as a workaround if we want the constants
+// to be available at compile-time. This macro gives us a convenient way to
+// declare such constants.
+
+# ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
+# define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
+# else
+# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
+# endif
+
+// BOOST_USE_FACET / HAS_FACET workaround ----------------------------------//
+// When the standard library does not have a conforming std::use_facet there
+// are various workarounds available, but they differ from library to library.
+// The same problem occurs with has_facet.
+// These macros provide a consistent way to access a locale's facets.
+// Usage:
+// replace
+// std::use_facet<Type>(loc);
+// with
+// BOOST_USE_FACET(Type, loc);
+// Note do not add a std:: prefix to the front of BOOST_USE_FACET!
+// Use for BOOST_HAS_FACET is analagous.
+
+#if defined(BOOST_NO_STD_USE_FACET)
+# ifdef BOOST_HAS_TWO_ARG_USE_FACET
+# define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0))
+# define BOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast<Type*>(0))
+# elif defined(BOOST_HAS_MACRO_USE_FACET)
+# define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type)
+# define BOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type)
+# elif defined(BOOST_HAS_STLP_USE_FACET)
+# define BOOST_USE_FACET(Type, loc) (*std::_Use_facet<Type >(loc))
+# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
+# endif
+#else
+# define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc)
+# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
+#endif
+
+// BOOST_NESTED_TEMPLATE workaround ------------------------------------------//
+// Member templates are supported by some compilers even though they can't use
+// the A::template member<U> syntax, as a workaround replace:
+//
+// typedef typename A::template rebind<U> binder;
+//
+// with:
+//
+// typedef typename A::BOOST_NESTED_TEMPLATE rebind<U> binder;
+
+#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
+# define BOOST_NESTED_TEMPLATE template
+#else
+# define BOOST_NESTED_TEMPLATE
+#endif
+
+// BOOST_UNREACHABLE_RETURN(x) workaround -------------------------------------//
+// Normally evaluates to nothing, unless BOOST_NO_UNREACHABLE_RETURN_DETECTION
+// is defined, in which case it evaluates to return x; Use when you have a return
+// statement that can never be reached.
+
+#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
+# define BOOST_UNREACHABLE_RETURN(x) return x;
+#else
+# define BOOST_UNREACHABLE_RETURN(x)
+#endif
+
+// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
+//
+// Some compilers don't support the use of `typename' for dependent
+// types in deduced contexts, e.g.
+//
+// template <class T> void f(T, typename T::type);
+// ^^^^^^^^
+// Replace these declarations with:
+//
+// template <class T> void f(T, BOOST_DEDUCED_TYPENAME T::type);
+
+#ifndef BOOST_NO_DEDUCED_TYPENAME
+# define BOOST_DEDUCED_TYPENAME typename
+#else
+# define BOOST_DEDUCED_TYPENAME
+#endif
+
+// long long workaround ------------------------------------------//
+// On gcc (and maybe other compilers?) long long is alway supported
+// but it's use may generate either warnings (with -ansi), or errors
+// (with -pedantic -ansi) unless it's use is prefixed by __extension__
+//
+#if defined(BOOST_HAS_LONG_LONG)
+namespace boost{
+# ifdef __GNUC__
+ __extension__ typedef long long long_long_type;
+ __extension__ typedef unsigned long long ulong_long_type;
+# else
+ typedef long long long_long_type;
+ typedef unsigned long long ulong_long_type;
+# endif
+}
+#endif
+
+// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//
+//
+// Some compilers have problems with function templates whose
+// template parameters don't appear in the function parameter
+// list (basically they just link one instantiation of the
+// template in the final executable). These macros provide a
+// uniform way to cope with the problem with no effects on the
+// calling syntax.
+
+// Example:
+//
+// #include <iostream>
+// #include <ostream>
+// #include <typeinfo>
+//
+// template <int n>
+// void f() { std::cout << n << ' '; }
+//
+// template <typename T>
+// void g() { std::cout << typeid(T).name() << ' '; }
+//
+// int main() {
+// f<1>();
+// f<2>();
+//
+// g<int>();
+// g<double>();
+// }
+//
+// With VC++ 6.0 the output is:
+//
+// 2 2 double double
+//
+// To fix it, write
+//
+// template <int n>
+// void f(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... }
+//
+// template <typename T>
+// void g(BOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... }
+//
+
+
+#if defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+
+# include "boost/type.hpp"
+# include "boost/non_type.hpp"
+
+# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) boost::type<t>* = 0
+# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) boost::type<t>*
+# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) boost::non_type<t, v>* = 0
+# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) boost::non_type<t, v>*
+
+# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) \
+ , BOOST_EXPLICIT_TEMPLATE_TYPE(t)
+# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) \
+ , BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
+# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \
+ , BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
+# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) \
+ , BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
+
+#else
+
+// no workaround needed: expand to nothing
+
+# define BOOST_EXPLICIT_TEMPLATE_TYPE(t)
+# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
+# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
+# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
+
+# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)
+# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
+# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
+# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
+
+
+#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
+
+
+// ---------------------------------------------------------------------------//
+
+//
+// Helper macro BOOST_STRINGIZE:
+// Converts the parameter X to a string after macro replacement
+// on X has been performed.
+//
+#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
+#define BOOST_DO_STRINGIZE(X) #X
+
+//
+// Helper macro BOOST_JOIN:
+// The following piece of macro magic joins the two
+// arguments together, even when one of the arguments is
+// itself a macro (see 16.3.1 in C++ standard). The key
+// is that macro expansion of macro arguments does not
+// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN.
+//
+#define BOOST_JOIN( X, Y ) BOOST_DO_JOIN( X, Y )
+#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y)
+#define BOOST_DO_JOIN2( X, Y ) X##Y
+
+//
+// Set some default values for compiler/library/platform names.
+// These are for debugging config setup only:
+//
+# ifndef BOOST_COMPILER
+# define BOOST_COMPILER "Unknown ISO C++ Compiler"
+# endif
+# ifndef BOOST_STDLIB
+# define BOOST_STDLIB "Unknown ISO standard library"
+# endif
+# ifndef BOOST_PLATFORM
+# if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \
+ || defined(_POSIX_SOURCE)
+# define BOOST_PLATFORM "Generic Unix"
+# else
+# define BOOST_PLATFORM "Unknown"
+# endif
+# endif
+
+#endif
+
+
+
diff --git a/indexlib/boost-compat/config/suffix.hpp b/indexlib/boost-compat/config/suffix.hpp
deleted file mode 100644
index 77d9deca..00000000
--- a/indexlib/boost-compat/config/suffix.hpp
+++ /dev/null
@@ -1,543 +0,0 @@
-// Boost config.hpp configuration header file ------------------------------//
-
-// (C) Copyright John Maddock 2001 - 2003.
-// (C) Copyright Darin Adler 2001.
-// (C) Copyright Peter Dimov 2001.
-// (C) Copyright Bill Kempf 2002.
-// (C) Copyright Jens Maurer 2002.
-// (C) Copyright David Abrahams 2002 - 2003.
-// (C) Copyright Gennaro Prota 2003.
-// (C) Copyright Eric Friedman 2003.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for most recent version.
-
-// Boost config.hpp policy and rationale documentation has been moved to
-// http://www.boost.org/libs/config
-//
-// This file is intended to be stable, and relatively unchanging.
-// It should contain boilerplate code only - no compiler specific
-// code unless it is unavoidable - no changes unless unavoidable.
-
-#ifndef BOOST_CONFIG_SUFFIX_HPP
-#define BOOST_CONFIG_SUFFIX_HPP
-
-//
-// look for long long by looking for the appropriate macros in <limits.h>.
-// Note that we use limits.h rather than climits for maximal portability,
-// remember that since these just declare a bunch of macros, there should be
-// no namespace issues from this.
-//
-#include <limits.h>
-# if !defined(BOOST_HAS_LONG_LONG) \
- && !(defined(BOOST_MSVC) && BOOST_MSVC <=1300) && !defined(__BORLANDC__) \
- && (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
-# define BOOST_HAS_LONG_LONG
-#endif
-#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_INTEGRAL_INT64_T)
-# define BOOST_NO_INTEGRAL_INT64_T
-#endif
-
-// GCC 3.x will clean up all of those nasty macro definitions that
-// BOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine
-// it under GCC 3.x.
-#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(BOOST_NO_CTYPE_FUNCTIONS)
-# undef BOOST_NO_CTYPE_FUNCTIONS
-#endif
-
-
-//
-// Assume any extensions are in namespace std:: unless stated otherwise:
-//
-# ifndef BOOST_STD_EXTENSION_NAMESPACE
-# define BOOST_STD_EXTENSION_NAMESPACE std
-# endif
-
-//
-// If cv-qualified specializations are not allowed, then neither are cv-void ones:
-//
-# if defined(BOOST_NO_CV_SPECIALIZATIONS) \
- && !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
-# define BOOST_NO_CV_VOID_SPECIALIZATIONS
-# endif
-
-//
-// If there is no numeric_limits template, then it can't have any compile time
-// constants either!
-//
-# if defined(BOOST_NO_LIMITS) \
- && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS)
-# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
-# endif
-
-//
-// if there is no long long then there is no specialisation
-// for numeric_limits<long long> either:
-//
-#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)
-# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
-#endif
-
-//
-// if there is no __int64 then there is no specialisation
-// for numeric_limits<__int64> either:
-//
-#if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS)
-# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-#endif
-
-//
-// if member templates are supported then so is the
-// VC6 subset of member templates:
-//
-# if !defined(BOOST_NO_MEMBER_TEMPLATES) \
- && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-# define BOOST_MSVC6_MEMBER_TEMPLATES
-# endif
-
-//
-// Without partial specialization, can't test for partial specialisation bugs:
-//
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)
-# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
-# endif
-
-//
-// Without partial specialization, we can't have array-type partial specialisations:
-//
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
-# endif
-
-//
-// Without partial specialization, std::iterator_traits can't work:
-//
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
-# define BOOST_NO_STD_ITERATOR_TRAITS
-# endif
-
-//
-// Without member template support, we can't have template constructors
-// in the standard library either:
-//
-# if defined(BOOST_NO_MEMBER_TEMPLATES) \
- && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
- && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
-# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-# endif
-
-//
-// Without member template support, we can't have a conforming
-// std::allocator template either:
-//
-# if defined(BOOST_NO_MEMBER_TEMPLATES) \
- && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
- && !defined(BOOST_NO_STD_ALLOCATOR)
-# define BOOST_NO_STD_ALLOCATOR
-# endif
-
-//
-// without ADL support then using declarations will break ADL as well:
-//
-#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
-# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#endif
-
-//
-// If we have a standard allocator, then we have a partial one as well:
-//
-#if !defined(BOOST_NO_STD_ALLOCATOR)
-# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
-#endif
-
-//
-// We can't have a working std::use_facet if there is no std::locale:
-//
-# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET)
-# define BOOST_NO_STD_USE_FACET
-# endif
-
-//
-// We can't have a std::messages facet if there is no std::locale:
-//
-# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES)
-# define BOOST_NO_STD_MESSAGES
-# endif
-
-//
-// We can't have a working std::wstreambuf if there is no std::locale:
-//
-# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF)
-# define BOOST_NO_STD_WSTREAMBUF
-# endif
-
-//
-// We can't have a <cwctype> if there is no <cwchar>:
-//
-# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE)
-# define BOOST_NO_CWCTYPE
-# endif
-
-//
-// We can't have a swprintf if there is no <cwchar>:
-//
-# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF)
-# define BOOST_NO_SWPRINTF
-# endif
-
-//
-// If Win32 support is turned off, then we must turn off
-// threading support also, unless there is some other
-// thread API enabled:
-//
-#if defined(BOOST_DISABLE_WIN32) && defined(_WIN32) \
- && !defined(BOOST_DISABLE_THREADS) && !defined(BOOST_HAS_PTHREADS)
-# define BOOST_DISABLE_THREADS
-#endif
-
-//
-// Turn on threading support if the compiler thinks that it's in
-// multithreaded mode. We put this here because there are only a
-// limited number of macros that identify this (if there's any missing
-// from here then add to the appropriate compiler section):
-//
-#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
- || defined(_PTHREADS)) && !defined(BOOST_HAS_THREADS)
-# define BOOST_HAS_THREADS
-#endif
-
-//
-// Turn threading support off if BOOST_DISABLE_THREADS is defined:
-//
-#if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS)
-# undef BOOST_HAS_THREADS
-#endif
-
-//
-// Turn threading support off if we don't recognise the threading API:
-//
-#if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\
- && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS)\
- && !defined(BOOST_HAS_MPTASKS)
-# undef BOOST_HAS_THREADS
-#endif
-
-//
-// Turn threading detail macros off if we don't (want to) use threading
-//
-#ifndef BOOST_HAS_THREADS
-# undef BOOST_HAS_PTHREADS
-# undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-# undef BOOST_HAS_WINTHREADS
-# undef BOOST_HAS_BETHREADS
-# undef BOOST_HAS_MPTASKS
-#endif
-
-//
-// If the compiler claims to be C99 conformant, then it had better
-// have a <stdint.h>:
-//
-# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
-# define BOOST_HAS_STDINT_H
-# endif
-
-//
-// Define BOOST_NO_SLIST and BOOST_NO_HASH if required.
-// Note that this is for backwards compatibility only.
-//
-# ifndef BOOST_HAS_SLIST
-# define BOOST_NO_SLIST
-# endif
-
-# ifndef BOOST_HAS_HASH
-# define BOOST_NO_HASH
-# endif
-
-// BOOST_HAS_ABI_HEADERS
-// This macro gets set if we have headers that fix the ABI,
-// and prevent ODR violations when linking to external libraries:
-#if defined(BOOST_ABI_PREFIX) && defined(BOOST_ABI_SUFFIX) && !defined(BOOST_HAS_ABI_HEADERS)
-# define BOOST_HAS_ABI_HEADERS
-#endif
-
-#if defined(BOOST_HAS_ABI_HEADERS) && defined(BOOST_DISABLE_ABI_HEADERS)
-# undef BOOST_HAS_ABI_HEADERS
-#endif
-
-// BOOST_NO_STDC_NAMESPACE workaround --------------------------------------//
-// Because std::size_t usage is so common, even in boost headers which do not
-// otherwise use the C library, the <cstddef> workaround is included here so
-// that ugly workaround code need not appear in many other boost headers.
-// NOTE WELL: This is a workaround for non-conforming compilers; <cstddef>
-// must still be #included in the usual places so that <cstddef> inclusion
-// works as expected with standard conforming compilers. The resulting
-// double inclusion of <cstddef> is harmless.
-
-# ifdef BOOST_NO_STDC_NAMESPACE
-# include <cstddef>
- namespace std { using ::ptrdiff_t; using ::size_t; }
-# endif
-
-// Workaround for the unfortunate min/max macros defined by some platform headers
-
-#define BOOST_PREVENT_MACRO_SUBSTITUTION
-
-#ifndef BOOST_USING_STD_MIN
-# define BOOST_USING_STD_MIN() using std::min
-#endif
-
-#ifndef BOOST_USING_STD_MAX
-# define BOOST_USING_STD_MAX() using std::max
-#endif
-
-// BOOST_NO_STD_MIN_MAX workaround -----------------------------------------//
-
-# ifdef BOOST_NO_STD_MIN_MAX
-
-namespace std {
- template <class _Tp>
- inline const _Tp& min BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
- return __b < __a ? __b : __a;
- }
- template <class _Tp>
- inline const _Tp& max BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
- return __a < __b ? __b : __a;
- }
-}
-
-# endif
-
-// BOOST_STATIC_CONSTANT workaround --------------------------------------- //
-// On compilers which don't allow in-class initialization of static integral
-// constant members, we must use enums as a workaround if we want the constants
-// to be available at compile-time. This macro gives us a convenient way to
-// declare such constants.
-
-# ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-# define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
-# else
-# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
-# endif
-
-// BOOST_USE_FACET / HAS_FACET workaround ----------------------------------//
-// When the standard library does not have a conforming std::use_facet there
-// are various workarounds available, but they differ from library to library.
-// The same problem occurs with has_facet.
-// These macros provide a consistent way to access a locale's facets.
-// Usage:
-// replace
-// std::use_facet<Type>(loc);
-// with
-// BOOST_USE_FACET(Type, loc);
-// Note do not add a std:: prefix to the front of BOOST_USE_FACET!
-// Use for BOOST_HAS_FACET is analagous.
-
-#if defined(BOOST_NO_STD_USE_FACET)
-# ifdef BOOST_HAS_TWO_ARG_USE_FACET
-# define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0))
-# define BOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast<Type*>(0))
-# elif defined(BOOST_HAS_MACRO_USE_FACET)
-# define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type)
-# define BOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type)
-# elif defined(BOOST_HAS_STLP_USE_FACET)
-# define BOOST_USE_FACET(Type, loc) (*std::_Use_facet<Type >(loc))
-# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
-# endif
-#else
-# define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc)
-# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
-#endif
-
-// BOOST_NESTED_TEMPLATE workaround ------------------------------------------//
-// Member templates are supported by some compilers even though they can't use
-// the A::template member<U> syntax, as a workaround replace:
-//
-// typedef typename A::template rebind<U> binder;
-//
-// with:
-//
-// typedef typename A::BOOST_NESTED_TEMPLATE rebind<U> binder;
-
-#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
-# define BOOST_NESTED_TEMPLATE template
-#else
-# define BOOST_NESTED_TEMPLATE
-#endif
-
-// BOOST_UNREACHABLE_RETURN(x) workaround -------------------------------------//
-// Normally evaluates to nothing, unless BOOST_NO_UNREACHABLE_RETURN_DETECTION
-// is defined, in which case it evaluates to return x; Use when you have a return
-// statement that can never be reached.
-
-#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
-# define BOOST_UNREACHABLE_RETURN(x) return x;
-#else
-# define BOOST_UNREACHABLE_RETURN(x)
-#endif
-
-// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
-//
-// Some compilers don't support the use of `typename' for dependent
-// types in deduced contexts, e.g.
-//
-// template <class T> void f(T, typename T::type);
-// ^^^^^^^^
-// Replace these declarations with:
-//
-// template <class T> void f(T, BOOST_DEDUCED_TYPENAME T::type);
-
-#ifndef BOOST_NO_DEDUCED_TYPENAME
-# define BOOST_DEDUCED_TYPENAME typename
-#else
-# define BOOST_DEDUCED_TYPENAME
-#endif
-
-// long long workaround ------------------------------------------//
-// On gcc (and maybe other compilers?) long long is alway supported
-// but it's use may generate either warnings (with -ansi), or errors
-// (with -pedantic -ansi) unless it's use is prefixed by __extension__
-//
-#if defined(BOOST_HAS_LONG_LONG)
-namespace boost{
-# ifdef __GNUC__
- __extension__ typedef long long long_long_type;
- __extension__ typedef unsigned long long ulong_long_type;
-# else
- typedef long long long_long_type;
- typedef unsigned long long ulong_long_type;
-# endif
-}
-#endif
-
-// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//
-//
-// Some compilers have problems with function templates whose
-// template parameters don't appear in the function parameter
-// list (basically they just link one instantiation of the
-// template in the final executable). These macros provide a
-// uniform way to cope with the problem with no effects on the
-// calling syntax.
-
-// Example:
-//
-// #include <iostream>
-// #include <ostream>
-// #include <typeinfo>
-//
-// template <int n>
-// void f() { std::cout << n << ' '; }
-//
-// template <typename T>
-// void g() { std::cout << typeid(T).name() << ' '; }
-//
-// int main() {
-// f<1>();
-// f<2>();
-//
-// g<int>();
-// g<double>();
-// }
-//
-// With VC++ 6.0 the output is:
-//
-// 2 2 double double
-//
-// To fix it, write
-//
-// template <int n>
-// void f(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... }
-//
-// template <typename T>
-// void g(BOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... }
-//
-
-
-#if defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-
-# include "boost/type.hpp"
-# include "boost/non_type.hpp"
-
-# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) boost::type<t>* = 0
-# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) boost::type<t>*
-# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) boost::non_type<t, v>* = 0
-# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) boost::non_type<t, v>*
-
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) \
- , BOOST_EXPLICIT_TEMPLATE_TYPE(t)
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) \
- , BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \
- , BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) \
- , BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
-
-#else
-
-// no workaround needed: expand to nothing
-
-# define BOOST_EXPLICIT_TEMPLATE_TYPE(t)
-# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
-
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
-
-
-#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-
-
-// ---------------------------------------------------------------------------//
-
-//
-// Helper macro BOOST_STRINGIZE:
-// Converts the parameter X to a string after macro replacement
-// on X has been performed.
-//
-#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
-#define BOOST_DO_STRINGIZE(X) #X
-
-//
-// Helper macro BOOST_JOIN:
-// The following piece of macro magic joins the two
-// arguments together, even when one of the arguments is
-// itself a macro (see 16.3.1 in C++ standard). The key
-// is that macro expansion of macro arguments does not
-// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN.
-//
-#define BOOST_JOIN( X, Y ) BOOST_DO_JOIN( X, Y )
-#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y)
-#define BOOST_DO_JOIN2( X, Y ) X##Y
-
-//
-// Set some default values for compiler/library/platform names.
-// These are for debugging config setup only:
-//
-# ifndef BOOST_COMPILER
-# define BOOST_COMPILER "Unknown ISO C++ Compiler"
-# endif
-# ifndef BOOST_STDLIB
-# define BOOST_STDLIB "Unknown ISO standard library"
-# endif
-# ifndef BOOST_PLATFORM
-# if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \
- || defined(_POSIX_SOURCE)
-# define BOOST_PLATFORM "Generic Unix"
-# else
-# define BOOST_PLATFORM "Unknown"
-# endif
-# endif
-
-#endif
-
-
-
diff --git a/indexlib/boost-compat/config/user.h b/indexlib/boost-compat/config/user.h
new file mode 100644
index 00000000..14b02c67
--- /dev/null
+++ b/indexlib/boost-compat/config/user.h
@@ -0,0 +1,124 @@
+// boost/config/user.h ---------------------------------------------------//
+
+// (C) Copyright John Maddock 2001.
+// Use, modification and distribution are subject to the
+// Boost Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// Do not check in modified versions of this file,
+// This file may be customized by the end user, but not by boost.
+
+//
+// Use this file to define a site and compiler specific
+// configuration policy:
+//
+
+// define this to locate a compiler config file:
+// #define BOOST_COMPILER_CONFIG <myheader>
+
+// define this to locate a stdlib config file:
+// #define BOOST_STDLIB_CONFIG <myheader>
+
+// define this to locate a platform config file:
+// #define BOOST_PLATFORM_CONFIG <myheader>
+
+// define this to disable compiler config,
+// use if your compiler config has nothing to set:
+// #define BOOST_NO_COMPILER_CONFIG
+
+// define this to disable stdlib config,
+// use if your stdlib config has nothing to set:
+// #define BOOST_NO_STDLIB_CONFIG
+
+// define this to disable platform config,
+// use if your platform config has nothing to set:
+// #define BOOST_NO_PLATFORM_CONFIG
+
+// define this to disable all config options,
+// excluding the user config. Use if your
+// setup is fully ISO compliant, and has no
+// useful extensions, or for autoconf generated
+// setups:
+// #define BOOST_NO_CONFIG
+
+// define this to make the config "optimistic"
+// about unknown compiler versions. Normally
+// unknown compiler versions are assumed to have
+// all the defects of the last known version, however
+// setting this flag, causes the config to assume
+// that unknown compiler versions are fully conformant
+// with the standard:
+// #define BOOST_STRICT_CONFIG
+
+// define this to cause the config to halt compilation
+// with an #error if it encounters anything unknown --
+// either an unknown compiler version or an unknown
+// compiler/platform/library:
+// #define BOOST_ASSERT_CONFIG
+
+
+// define if you want to disable threading support, even
+// when available:
+// #define BOOST_DISABLE_THREADS
+
+// define when you want to disable Win32 specific features
+// even when available:
+// #define BOOST_DISABLE_WIN32
+
+// BOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any
+// prefix/suffix headers that normally control things like struct
+// packing and alignment.
+// #define BOOST_DISABLE_ABI_HEADERS
+
+// BOOST_ABI_PREFIX: A prefix header to include in place of whatever
+// boost.config would normally select, any replacement should set up
+// struct packing and alignment options as required.
+// #define BOOST_ABI_PREFIX my-header-name
+
+// BOOST_ABI_SUFFIX: A suffix header to include in place of whatever
+// boost.config would normally select, any replacement should undo
+// the effects of the prefix header.
+// #define BOOST_ABI_SUFFIX my-header-name
+
+// BOOST_ALL_DYN_LINK: Forces all libraries that have separate source,
+// to be linked as dll's rather than static libraries on Microsoft Windows
+// (this macro is used to turn on __declspec(dllimport) modifiers, so that
+// the compiler knows which symbols to look for in a dll rather than in a
+// static library). Note that there may be some libraries that can only
+// be statically linked (Boost.Test for example) and others which may only
+// be dynamically linked (Boost.Threads for example), in these cases this
+// macro has no effect.
+// #define BOOST_ALL_DYN_LINK
+
+// BOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll
+// rather than a static library on Microsoft Windows: replace the WHATEVER
+// part of the macro name with the name of the library that you want to
+// dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK or
+// BOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport)
+// modifiers, so that the compiler knows which symbols to look for in a dll
+// rather than in a static library).
+// Note that there may be some libraries that can only be statically linked
+// (Boost.Test for example) and others which may only be dynamically linked
+// (Boost.Threads for example), in these cases this macro is unsupported.
+// #define BOOST_WHATEVER_DYN_LINK
+
+// BOOST_ALL_NO_LIB: Tells the config system not to automatically select
+// which libraries to link against.
+// Normally if a compiler supports #pragma lib, then the correct library
+// build variant will be automatically selected and linked against,
+// simply by the act of including one of that library's headers.
+// This macro turns that feature off.
+// #define BOOST_ALL_NO_LIB
+
+// BOOST_WHATEVER_NO_LIB: Tells the config system not to automatically
+// select which library to link against for library "whatever",
+// replace WHATEVER in the macro name with the name of the library;
+// for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB.
+// Normally if a compiler supports #pragma lib, then the correct library
+// build variant will be automatically selected and linked against, simply
+// by the act of including one of that library's headers. This macro turns
+// that feature off.
+// #define BOOST_WHATEVER_NO_LIB
+
+
+
diff --git a/indexlib/boost-compat/config/user.hpp b/indexlib/boost-compat/config/user.hpp
deleted file mode 100644
index 5a4a9d47..00000000
--- a/indexlib/boost-compat/config/user.hpp
+++ /dev/null
@@ -1,124 +0,0 @@
-// boost/config/user.hpp ---------------------------------------------------//
-
-// (C) Copyright John Maddock 2001.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// Do not check in modified versions of this file,
-// This file may be customized by the end user, but not by boost.
-
-//
-// Use this file to define a site and compiler specific
-// configuration policy:
-//
-
-// define this to locate a compiler config file:
-// #define BOOST_COMPILER_CONFIG <myheader>
-
-// define this to locate a stdlib config file:
-// #define BOOST_STDLIB_CONFIG <myheader>
-
-// define this to locate a platform config file:
-// #define BOOST_PLATFORM_CONFIG <myheader>
-
-// define this to disable compiler config,
-// use if your compiler config has nothing to set:
-// #define BOOST_NO_COMPILER_CONFIG
-
-// define this to disable stdlib config,
-// use if your stdlib config has nothing to set:
-// #define BOOST_NO_STDLIB_CONFIG
-
-// define this to disable platform config,
-// use if your platform config has nothing to set:
-// #define BOOST_NO_PLATFORM_CONFIG
-
-// define this to disable all config options,
-// excluding the user config. Use if your
-// setup is fully ISO compliant, and has no
-// useful extensions, or for autoconf generated
-// setups:
-// #define BOOST_NO_CONFIG
-
-// define this to make the config "optimistic"
-// about unknown compiler versions. Normally
-// unknown compiler versions are assumed to have
-// all the defects of the last known version, however
-// setting this flag, causes the config to assume
-// that unknown compiler versions are fully conformant
-// with the standard:
-// #define BOOST_STRICT_CONFIG
-
-// define this to cause the config to halt compilation
-// with an #error if it encounters anything unknown --
-// either an unknown compiler version or an unknown
-// compiler/platform/library:
-// #define BOOST_ASSERT_CONFIG
-
-
-// define if you want to disable threading support, even
-// when available:
-// #define BOOST_DISABLE_THREADS
-
-// define when you want to disable Win32 specific features
-// even when available:
-// #define BOOST_DISABLE_WIN32
-
-// BOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any
-// prefix/suffix headers that normally control things like struct
-// packing and alignment.
-// #define BOOST_DISABLE_ABI_HEADERS
-
-// BOOST_ABI_PREFIX: A prefix header to include in place of whatever
-// boost.config would normally select, any replacement should set up
-// struct packing and alignment options as required.
-// #define BOOST_ABI_PREFIX my-header-name
-
-// BOOST_ABI_SUFFIX: A suffix header to include in place of whatever
-// boost.config would normally select, any replacement should undo
-// the effects of the prefix header.
-// #define BOOST_ABI_SUFFIX my-header-name
-
-// BOOST_ALL_DYN_LINK: Forces all libraries that have separate source,
-// to be linked as dll's rather than static libraries on Microsoft Windows
-// (this macro is used to turn on __declspec(dllimport) modifiers, so that
-// the compiler knows which symbols to look for in a dll rather than in a
-// static library). Note that there may be some libraries that can only
-// be statically linked (Boost.Test for example) and others which may only
-// be dynamically linked (Boost.Threads for example), in these cases this
-// macro has no effect.
-// #define BOOST_ALL_DYN_LINK
-
-// BOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll
-// rather than a static library on Microsoft Windows: replace the WHATEVER
-// part of the macro name with the name of the library that you want to
-// dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK or
-// BOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport)
-// modifiers, so that the compiler knows which symbols to look for in a dll
-// rather than in a static library).
-// Note that there may be some libraries that can only be statically linked
-// (Boost.Test for example) and others which may only be dynamically linked
-// (Boost.Threads for example), in these cases this macro is unsupported.
-// #define BOOST_WHATEVER_DYN_LINK
-
-// BOOST_ALL_NO_LIB: Tells the config system not to automatically select
-// which libraries to link against.
-// Normally if a compiler supports #pragma lib, then the correct library
-// build variant will be automatically selected and linked against,
-// simply by the act of including one of that library's headers.
-// This macro turns that feature off.
-// #define BOOST_ALL_NO_LIB
-
-// BOOST_WHATEVER_NO_LIB: Tells the config system not to automatically
-// select which library to link against for library "whatever",
-// replace WHATEVER in the macro name with the name of the library;
-// for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB.
-// Normally if a compiler supports #pragma lib, then the correct library
-// build variant will be automatically selected and linked against, simply
-// by the act of including one of that library's headers. This macro turns
-// that feature off.
-// #define BOOST_WHATEVER_NO_LIB
-
-
-
diff --git a/indexlib/boost-compat/intrusive_ptr.h b/indexlib/boost-compat/intrusive_ptr.h
new file mode 100644
index 00000000..39b4b7b2
--- /dev/null
+++ b/indexlib/boost-compat/intrusive_ptr.h
@@ -0,0 +1,272 @@
+#ifndef BOOST_INTRUSIVE_PTR_H_INCLUDED
+#define BOOST_INTRUSIVE_PTR_H_INCLUDED
+
+//
+// intrusive_ptr.h
+//
+// Copyright (c) 2001, 2002 Peter Dimov
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/smart_ptr/intrusive_ptr.html for documentation.
+//
+
+#include <boost/config.hpp>
+
+#ifdef BOOST_MSVC // moved here to work around VC++ compiler crash
+# pragma warning(push)
+# pragma warning(disable:4284) // odd return type for operator->
+#endif
+
+#include <boost/assert.hpp>
+#include <boost/detail/workaround.hpp>
+
+#include <functional> // for std::less
+#include <iosfwd> // for std::basic_ostream
+
+
+namespace boost
+{
+
+//
+// intrusive_ptr
+//
+// A smart pointer that uses intrusive reference counting.
+//
+// Relies on unqualified calls to
+//
+// void intrusive_ptr_add_ref(T * p);
+// void intrusive_ptr_release(T * p);
+//
+// (p != 0)
+//
+// The object is responsible for destroying itself.
+//
+
+template<class T> class intrusive_ptr
+{
+private:
+
+ typedef intrusive_ptr this_type;
+
+public:
+
+ typedef T element_type;
+
+ intrusive_ptr(): p_(0)
+ {
+ }
+
+ intrusive_ptr(T * p, bool add_ref = true): p_(p)
+ {
+ if(p_ != 0 && add_ref) intrusive_ptr_add_ref(p_);
+ }
+
+#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+
+ template<class U> intrusive_ptr(intrusive_ptr<U> const & rhs): p_(rhs.get())
+ {
+ if(p_ != 0) intrusive_ptr_add_ref(p_);
+ }
+
+#endif
+
+ intrusive_ptr(intrusive_ptr const & rhs): p_(rhs.p_)
+ {
+ if(p_ != 0) intrusive_ptr_add_ref(p_);
+ }
+
+ ~intrusive_ptr()
+ {
+ if(p_ != 0) intrusive_ptr_release(p_);
+ }
+
+#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+
+ template<class U> intrusive_ptr & operator=(intrusive_ptr<U> const & rhs)
+ {
+ this_type(rhs).swap(*this);
+ return *this;
+ }
+
+#endif
+
+ intrusive_ptr & operator=(intrusive_ptr const & rhs)
+ {
+ this_type(rhs).swap(*this);
+ return *this;
+ }
+
+ intrusive_ptr & operator=(T * rhs)
+ {
+ this_type(rhs).swap(*this);
+ return *this;
+ }
+
+ T * get() const
+ {
+ return p_;
+ }
+
+ T & operator*() const
+ {
+ return *p_;
+ }
+
+ T * operator->() const
+ {
+ return p_;
+ }
+
+#if defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530)
+
+ operator bool () const
+ {
+ return p_ != 0;
+ }
+
+#elif defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
+ typedef T * (this_type::*unspecified_bool_type)() const;
+
+ operator unspecified_bool_type() const // never throws
+ {
+ return p_ == 0? 0: &this_type::get;
+ }
+
+#else
+
+ typedef T * this_type::*unspecified_bool_type;
+
+ operator unspecified_bool_type () const
+ {
+ return p_ == 0? 0: &this_type::p_;
+ }
+
+#endif
+
+ // operator! is a Borland-specific workaround
+ bool operator! () const
+ {
+ return p_ == 0;
+ }
+
+ void swap(intrusive_ptr & rhs)
+ {
+ T * tmp = p_;
+ p_ = rhs.p_;
+ rhs.p_ = tmp;
+ }
+
+private:
+
+ T * p_;
+};
+
+template<class T, class U> inline bool operator==(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b)
+{
+ return a.get() == b.get();
+}
+
+template<class T, class U> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b)
+{
+ return a.get() != b.get();
+}
+
+template<class T> inline bool operator==(intrusive_ptr<T> const & a, T * b)
+{
+ return a.get() == b;
+}
+
+template<class T> inline bool operator!=(intrusive_ptr<T> const & a, T * b)
+{
+ return a.get() != b;
+}
+
+template<class T> inline bool operator==(T * a, intrusive_ptr<T> const & b)
+{
+ return a == b.get();
+}
+
+template<class T> inline bool operator!=(T * a, intrusive_ptr<T> const & b)
+{
+ return a != b.get();
+}
+
+#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96
+
+// Resolve the ambiguity between our op!= and the one in rel_ops
+
+template<class T> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b)
+{
+ return a.get() != b.get();
+}
+
+#endif
+
+template<class T> inline bool operator<(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b)
+{
+ return std::less<T *>()(a.get(), b.get());
+}
+
+template<class T> void swap(intrusive_ptr<T> & lhs, intrusive_ptr<T> & rhs)
+{
+ lhs.swap(rhs);
+}
+
+// mem_fn support
+
+template<class T> T * get_pointer(intrusive_ptr<T> const & p)
+{
+ return p.get();
+}
+
+template<class T, class U> intrusive_ptr<T> static_pointer_cast(intrusive_ptr<U> const & p)
+{
+ return static_cast<T *>(p.get());
+}
+
+template<class T, class U> intrusive_ptr<T> const_pointer_cast(intrusive_ptr<U> const & p)
+{
+ return const_cast<T *>(p.get());
+}
+
+template<class T, class U> intrusive_ptr<T> dynamic_pointer_cast(intrusive_ptr<U> const & p)
+{
+ return dynamic_cast<T *>(p.get());
+}
+
+// operator<<
+
+#if defined(__GNUC__) && (__GNUC__ < 3)
+
+template<class Y> std::ostream & operator<< (std::ostream & os, intrusive_ptr<Y> const & p)
+{
+ os << p.get();
+ return os;
+}
+
+#else
+
+# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, <= 1200 && __SGI_STL_PORT)
+// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL
+using std::basic_ostream;
+template<class E, class T, class Y> basic_ostream<E, T> & operator<< (basic_ostream<E, T> & os, intrusive_ptr<Y> const & p)
+# else
+template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, intrusive_ptr<Y> const & p)
+# endif
+{
+ os << p.get();
+ return os;
+}
+
+#endif
+
+} // namespace boost
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
+
+#endif // #ifndef BOOST_INTRUSIVE_PTR_H_INCLUDED
diff --git a/indexlib/boost-compat/intrusive_ptr.hpp b/indexlib/boost-compat/intrusive_ptr.hpp
deleted file mode 100644
index 7efbadee..00000000
--- a/indexlib/boost-compat/intrusive_ptr.hpp
+++ /dev/null
@@ -1,272 +0,0 @@
-#ifndef BOOST_INTRUSIVE_PTR_HPP_INCLUDED
-#define BOOST_INTRUSIVE_PTR_HPP_INCLUDED
-
-//
-// intrusive_ptr.hpp
-//
-// Copyright (c) 2001, 2002 Peter Dimov
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/smart_ptr/intrusive_ptr.html for documentation.
-//
-
-#include <boost/config.hpp>
-
-#ifdef BOOST_MSVC // moved here to work around VC++ compiler crash
-# pragma warning(push)
-# pragma warning(disable:4284) // odd return type for operator->
-#endif
-
-#include <boost/assert.hpp>
-#include <boost/detail/workaround.hpp>
-
-#include <functional> // for std::less
-#include <iosfwd> // for std::basic_ostream
-
-
-namespace boost
-{
-
-//
-// intrusive_ptr
-//
-// A smart pointer that uses intrusive reference counting.
-//
-// Relies on unqualified calls to
-//
-// void intrusive_ptr_add_ref(T * p);
-// void intrusive_ptr_release(T * p);
-//
-// (p != 0)
-//
-// The object is responsible for destroying itself.
-//
-
-template<class T> class intrusive_ptr
-{
-private:
-
- typedef intrusive_ptr this_type;
-
-public:
-
- typedef T element_type;
-
- intrusive_ptr(): p_(0)
- {
- }
-
- intrusive_ptr(T * p, bool add_ref = true): p_(p)
- {
- if(p_ != 0 && add_ref) intrusive_ptr_add_ref(p_);
- }
-
-#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-
- template<class U> intrusive_ptr(intrusive_ptr<U> const & rhs): p_(rhs.get())
- {
- if(p_ != 0) intrusive_ptr_add_ref(p_);
- }
-
-#endif
-
- intrusive_ptr(intrusive_ptr const & rhs): p_(rhs.p_)
- {
- if(p_ != 0) intrusive_ptr_add_ref(p_);
- }
-
- ~intrusive_ptr()
- {
- if(p_ != 0) intrusive_ptr_release(p_);
- }
-
-#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-
- template<class U> intrusive_ptr & operator=(intrusive_ptr<U> const & rhs)
- {
- this_type(rhs).swap(*this);
- return *this;
- }
-
-#endif
-
- intrusive_ptr & operator=(intrusive_ptr const & rhs)
- {
- this_type(rhs).swap(*this);
- return *this;
- }
-
- intrusive_ptr & operator=(T * rhs)
- {
- this_type(rhs).swap(*this);
- return *this;
- }
-
- T * get() const
- {
- return p_;
- }
-
- T & operator*() const
- {
- return *p_;
- }
-
- T * operator->() const
- {
- return p_;
- }
-
-#if defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530)
-
- operator bool () const
- {
- return p_ != 0;
- }
-
-#elif defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
- typedef T * (this_type::*unspecified_bool_type)() const;
-
- operator unspecified_bool_type() const // never throws
- {
- return p_ == 0? 0: &this_type::get;
- }
-
-#else
-
- typedef T * this_type::*unspecified_bool_type;
-
- operator unspecified_bool_type () const
- {
- return p_ == 0? 0: &this_type::p_;
- }
-
-#endif
-
- // operator! is a Borland-specific workaround
- bool operator! () const
- {
- return p_ == 0;
- }
-
- void swap(intrusive_ptr & rhs)
- {
- T * tmp = p_;
- p_ = rhs.p_;
- rhs.p_ = tmp;
- }
-
-private:
-
- T * p_;
-};
-
-template<class T, class U> inline bool operator==(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b)
-{
- return a.get() == b.get();
-}
-
-template<class T, class U> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b)
-{
- return a.get() != b.get();
-}
-
-template<class T> inline bool operator==(intrusive_ptr<T> const & a, T * b)
-{
- return a.get() == b;
-}
-
-template<class T> inline bool operator!=(intrusive_ptr<T> const & a, T * b)
-{
- return a.get() != b;
-}
-
-template<class T> inline bool operator==(T * a, intrusive_ptr<T> const & b)
-{
- return a == b.get();
-}
-
-template<class T> inline bool operator!=(T * a, intrusive_ptr<T> const & b)
-{
- return a != b.get();
-}
-
-#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96
-
-// Resolve the ambiguity between our op!= and the one in rel_ops
-
-template<class T> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b)
-{
- return a.get() != b.get();
-}
-
-#endif
-
-template<class T> inline bool operator<(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b)
-{
- return std::less<T *>()(a.get(), b.get());
-}
-
-template<class T> void swap(intrusive_ptr<T> & lhs, intrusive_ptr<T> & rhs)
-{
- lhs.swap(rhs);
-}
-
-// mem_fn support
-
-template<class T> T * get_pointer(intrusive_ptr<T> const & p)
-{
- return p.get();
-}
-
-template<class T, class U> intrusive_ptr<T> static_pointer_cast(intrusive_ptr<U> const & p)
-{
- return static_cast<T *>(p.get());
-}
-
-template<class T, class U> intrusive_ptr<T> const_pointer_cast(intrusive_ptr<U> const & p)
-{
- return const_cast<T *>(p.get());
-}
-
-template<class T, class U> intrusive_ptr<T> dynamic_pointer_cast(intrusive_ptr<U> const & p)
-{
- return dynamic_cast<T *>(p.get());
-}
-
-// operator<<
-
-#if defined(__GNUC__) && (__GNUC__ < 3)
-
-template<class Y> std::ostream & operator<< (std::ostream & os, intrusive_ptr<Y> const & p)
-{
- os << p.get();
- return os;
-}
-
-#else
-
-# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, <= 1200 && __SGI_STL_PORT)
-// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL
-using std::basic_ostream;
-template<class E, class T, class Y> basic_ostream<E, T> & operator<< (basic_ostream<E, T> & os, intrusive_ptr<Y> const & p)
-# else
-template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, intrusive_ptr<Y> const & p)
-# endif
-{
- os << p.get();
- return os;
-}
-
-#endif
-
-} // namespace boost
-
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#endif // #ifndef BOOST_INTRUSIVE_PTR_HPP_INCLUDED
diff --git a/indexlib/boost-compat/next_prior.h b/indexlib/boost-compat/next_prior.h
new file mode 100644
index 00000000..cdacf29c
--- /dev/null
+++ b/indexlib/boost-compat/next_prior.h
@@ -0,0 +1,51 @@
+// Boost next_prior.h header file ---------------------------------------//
+
+// (C) Copyright Dave Abrahams and Daniel Walker 1999-2003. Distributed under the Boost
+// Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/utility for documentation.
+
+// Revision History
+// 13 Dec 2003 Added next(x, n) and prior(x, n) (Daniel Walker)
+
+#ifndef BOOST_NEXT_PRIOR_H_INCLUDED
+#define BOOST_NEXT_PRIOR_H_INCLUDED
+
+#include <iterator>
+
+namespace boost {
+
+// Helper functions for classes like bidirectional iterators not supporting
+// operator+ and operator-
+//
+// Usage:
+// const std::list<T>::iterator p = get_some_iterator();
+// const std::list<T>::iterator prev = boost::prior(p);
+// const std::list<T>::iterator next = boost::next(prev, 2);
+
+// Contributed by Dave Abrahams
+
+template <class T>
+inline T next(T x) { return ++x; }
+
+template <class T, class Distance>
+inline T next(T x, Distance n)
+{
+ std::advance(x, n);
+ return x;
+}
+
+template <class T>
+inline T prior(T x) { return --x; }
+
+template <class T, class Distance>
+inline T prior(T x, Distance n)
+{
+ std::advance(x, -n);
+ return x;
+}
+
+} // namespace boost
+
+#endif // BOOST_NEXT_PRIOR_H_INCLUDED
diff --git a/indexlib/boost-compat/next_prior.hpp b/indexlib/boost-compat/next_prior.hpp
deleted file mode 100644
index e1d2e428..00000000
--- a/indexlib/boost-compat/next_prior.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-// Boost next_prior.hpp header file ---------------------------------------//
-
-// (C) Copyright Dave Abrahams and Daniel Walker 1999-2003. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org/libs/utility for documentation.
-
-// Revision History
-// 13 Dec 2003 Added next(x, n) and prior(x, n) (Daniel Walker)
-
-#ifndef BOOST_NEXT_PRIOR_HPP_INCLUDED
-#define BOOST_NEXT_PRIOR_HPP_INCLUDED
-
-#include <iterator>
-
-namespace boost {
-
-// Helper functions for classes like bidirectional iterators not supporting
-// operator+ and operator-
-//
-// Usage:
-// const std::list<T>::iterator p = get_some_iterator();
-// const std::list<T>::iterator prev = boost::prior(p);
-// const std::list<T>::iterator next = boost::next(prev, 2);
-
-// Contributed by Dave Abrahams
-
-template <class T>
-inline T next(T x) { return ++x; }
-
-template <class T, class Distance>
-inline T next(T x, Distance n)
-{
- std::advance(x, n);
- return x;
-}
-
-template <class T>
-inline T prior(T x) { return --x; }
-
-template <class T, class Distance>
-inline T prior(T x, Distance n)
-{
- std::advance(x, -n);
- return x;
-}
-
-} // namespace boost
-
-#endif // BOOST_NEXT_PRIOR_HPP_INCLUDED
diff --git a/indexlib/boost-compat/noncopyable.h b/indexlib/boost-compat/noncopyable.h
new file mode 100644
index 00000000..0d94ea6a
--- /dev/null
+++ b/indexlib/boost-compat/noncopyable.h
@@ -0,0 +1,36 @@
+// Boost noncopyable.h header file --------------------------------------//
+
+// (C) Copyright Beman Dawes 1999-2003. Distributed under the Boost
+// Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/utility for documentation.
+
+#ifndef BOOST_NONCOPYABLE_H_INCLUDED
+#define BOOST_NONCOPYABLE_H_INCLUDED
+
+namespace boost {
+
+// Private copy constructor and copy assignment ensure classes derived from
+// class noncopyable cannot be copied.
+
+// Contributed by Dave Abrahams
+
+namespace noncopyable_ // protection from unintended ADL
+{
+ class noncopyable
+ {
+ protected:
+ noncopyable() {}
+ ~noncopyable() {}
+ private: // emphasize the following members are private
+ noncopyable( const noncopyable& );
+ const noncopyable& operator=( const noncopyable& );
+ };
+}
+
+typedef noncopyable_::noncopyable noncopyable;
+
+} // namespace boost
+
+#endif // BOOST_NONCOPYABLE_H_INCLUDED
diff --git a/indexlib/boost-compat/noncopyable.hpp b/indexlib/boost-compat/noncopyable.hpp
deleted file mode 100644
index 7770bdbd..00000000
--- a/indexlib/boost-compat/noncopyable.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// Boost noncopyable.hpp header file --------------------------------------//
-
-// (C) Copyright Beman Dawes 1999-2003. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org/libs/utility for documentation.
-
-#ifndef BOOST_NONCOPYABLE_HPP_INCLUDED
-#define BOOST_NONCOPYABLE_HPP_INCLUDED
-
-namespace boost {
-
-// Private copy constructor and copy assignment ensure classes derived from
-// class noncopyable cannot be copied.
-
-// Contributed by Dave Abrahams
-
-namespace noncopyable_ // protection from unintended ADL
-{
- class noncopyable
- {
- protected:
- noncopyable() {}
- ~noncopyable() {}
- private: // emphasize the following members are private
- noncopyable( const noncopyable& );
- const noncopyable& operator=( const noncopyable& );
- };
-}
-
-typedef noncopyable_::noncopyable noncopyable;
-
-} // namespace boost
-
-#endif // BOOST_NONCOPYABLE_HPP_INCLUDED
diff --git a/indexlib/boost-compat/remove_cv.h b/indexlib/boost-compat/remove_cv.h
new file mode 100644
index 00000000..c59970a8
--- /dev/null
+++ b/indexlib/boost-compat/remove_cv.h
@@ -0,0 +1,61 @@
+#ifndef BOOST_TT_REMOVE_CV_H_INCLUDED
+#define BOOST_TT_REMOVE_CV_H_INCLUDED
+#ifndef BOOST_TT_DETAIL_CV_TRAITS_IMPL_H_INCLUDED
+#define BOOST_TT_DETAIL_CV_TRAITS_IMPL_H_INCLUDED
+// ADAPTED (TAKEN) FROM BOOST
+//
+// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
+// Hinnant & John Maddock 2000.
+// Use, modification and distribution are subject to the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt).
+//
+// See http://www.boost.org/libs/type_traits for most recent version including documentation.
+//
+
+
+
+
+namespace boost {
+namespace detail {
+
+// implementation helper:
+
+template <typename T> struct cv_traits_imp {};
+
+template <typename T>
+struct cv_traits_imp<T*>
+{
+ typedef T unqualified_type;
+};
+
+template <typename T>
+struct cv_traits_imp<const T*>
+{
+ typedef T unqualified_type;
+};
+
+template <typename T>
+struct cv_traits_imp<volatile T*>
+{
+ typedef T unqualified_type;
+};
+
+template <typename T>
+struct cv_traits_imp<const volatile T*>
+{
+ typedef T unqualified_type;
+};
+
+} // namespace detail
+
+template <typename T>
+struct remove_cv {
+ typedef typename detail::cv_traits_imp<T*>::unqualified_type type;
+};
+} // namespace boost
+
+
+
+#endif
+#endif
diff --git a/indexlib/boost-compat/remove_cv.hpp b/indexlib/boost-compat/remove_cv.hpp
deleted file mode 100644
index ec7c1a95..00000000
--- a/indexlib/boost-compat/remove_cv.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef BOOST_TT_REMOVE_CV_HPP_INCLUDED
-#define BOOST_TT_REMOVE_CV_HPP_INCLUDED
-#ifndef BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
-#define BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
-// ADAPTED (TAKEN) FROM BOOST
-//
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-//
-// See http://www.boost.org/libs/type_traits for most recent version including documentation.
-//
-
-
-
-
-namespace boost {
-namespace detail {
-
-// implementation helper:
-
-template <typename T> struct cv_traits_imp {};
-
-template <typename T>
-struct cv_traits_imp<T*>
-{
- typedef T unqualified_type;
-};
-
-template <typename T>
-struct cv_traits_imp<const T*>
-{
- typedef T unqualified_type;
-};
-
-template <typename T>
-struct cv_traits_imp<volatile T*>
-{
- typedef T unqualified_type;
-};
-
-template <typename T>
-struct cv_traits_imp<const volatile T*>
-{
- typedef T unqualified_type;
-};
-
-} // namespace detail
-
-template <typename T>
-struct remove_cv {
- typedef typename detail::cv_traits_imp<T*>::unqualified_type type;
-};
-} // namespace boost
-
-
-
-#endif
-#endif
diff --git a/indexlib/boost-compat/scoped_ptr.h b/indexlib/boost-compat/scoped_ptr.h
new file mode 100644
index 00000000..41d4f9b8
--- /dev/null
+++ b/indexlib/boost-compat/scoped_ptr.h
@@ -0,0 +1,113 @@
+#ifndef BOOST_SCOPED_PTR_H_INCLUDED
+#define BOOST_SCOPED_PTR_H_INCLUDED
+
+// ADAPTED FOR indexlib
+
+// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
+// Copyright (c) 2001, 2002 Peter Dimov
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// http://www.boost.org/libs/smart_ptr/scoped_ptr.htm
+//
+
+#include "checked_delete.h"
+
+#include <memory>
+#include <assert.h>
+
+namespace boost
+{
+
+
+// scoped_ptr mimics a built-in pointer except that it guarantees deletion
+// of the object pointed to, either on destruction of the scoped_ptr or via
+// an explicit reset(). scoped_ptr is a simple solution for simple needs;
+// use shared_ptr or std::unique_ptr if your needs are more complex.
+
+template<class T> class scoped_ptr // noncopyable
+{
+private:
+
+ T * ptr;
+
+ scoped_ptr(scoped_ptr const &);
+ scoped_ptr & operator=(scoped_ptr const &);
+
+ typedef scoped_ptr<T> this_type;
+
+public:
+
+ typedef T element_type;
+
+ explicit scoped_ptr(T * p = 0): ptr(p) // never throws
+ {
+ }
+
+ ~scoped_ptr() // never throws
+ {
+ boost::checked_delete(ptr);
+ }
+
+ void reset(T * p = 0) // never throws
+ {
+ assert(p == 0 || p != ptr); // catch self-reset errors
+ this_type(p).swap(*this);
+ }
+
+ T & operator*() const // never throws
+ {
+ assert(ptr != 0);
+ return *ptr;
+ }
+
+ T * operator->() const // never throws
+ {
+ assert(ptr != 0);
+ return ptr;
+ }
+
+ T * get() const // never throws
+ {
+ return ptr;
+ }
+
+ // implicit conversion to "bool"
+
+ typedef T * this_type::*unspecified_bool_type;
+
+ operator unspecified_bool_type() const // never throws
+ {
+ return ptr == 0? 0: &this_type::ptr;
+ }
+
+ bool operator! () const // never throws
+ {
+ return ptr == 0;
+ }
+
+ void swap(scoped_ptr & b) // never throws
+ {
+ T * tmp = b.ptr;
+ b.ptr = ptr;
+ ptr = tmp;
+ }
+};
+
+template<class T> inline void swap(scoped_ptr<T> & a, scoped_ptr<T> & b) // never throws
+{
+ a.swap(b);
+}
+
+// get_pointer(p) is a generic way to say p.get()
+
+template<class T> inline T * get_pointer(scoped_ptr<T> const & p)
+{
+ return p.get();
+}
+
+} // namespace boost
+
+#endif // #ifndef BOOST_SCOPED_PTR_H_INCLUDED
diff --git a/indexlib/boost-compat/scoped_ptr.hpp b/indexlib/boost-compat/scoped_ptr.hpp
deleted file mode 100644
index 1260066a..00000000
--- a/indexlib/boost-compat/scoped_ptr.hpp
+++ /dev/null
@@ -1,118 +0,0 @@
-#ifndef BOOST_SCOPED_PTR_HPP_INCLUDED
-#define BOOST_SCOPED_PTR_HPP_INCLUDED
-
-// ADAPTED FOR indexlib
-
-// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
-// Copyright (c) 2001, 2002 Peter Dimov
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// http://www.boost.org/libs/smart_ptr/scoped_ptr.htm
-//
-
-#include "checked_delete.hpp"
-
-#include <memory> // for std::auto_ptr
-#include <assert.h>
-
-namespace boost
-{
-
-
-// scoped_ptr mimics a built-in pointer except that it guarantees deletion
-// of the object pointed to, either on destruction of the scoped_ptr or via
-// an explicit reset(). scoped_ptr is a simple solution for simple needs;
-// use shared_ptr or std::auto_ptr if your needs are more complex.
-
-template<class T> class scoped_ptr // noncopyable
-{
-private:
-
- T * ptr;
-
- scoped_ptr(scoped_ptr const &);
- scoped_ptr & operator=(scoped_ptr const &);
-
- typedef scoped_ptr<T> this_type;
-
-public:
-
- typedef T element_type;
-
- explicit scoped_ptr(T * p = 0): ptr(p) // never throws
- {
- }
-
-
- explicit scoped_ptr(std::auto_ptr<T> p): ptr(p.release()) // never throws
- {
- }
-
- ~scoped_ptr() // never throws
- {
- boost::checked_delete(ptr);
- }
-
- void reset(T * p = 0) // never throws
- {
- assert(p == 0 || p != ptr); // catch self-reset errors
- this_type(p).swap(*this);
- }
-
- T & operator*() const // never throws
- {
- assert(ptr != 0);
- return *ptr;
- }
-
- T * operator->() const // never throws
- {
- assert(ptr != 0);
- return ptr;
- }
-
- T * get() const // never throws
- {
- return ptr;
- }
-
- // implicit conversion to "bool"
-
- typedef T * this_type::*unspecified_bool_type;
-
- operator unspecified_bool_type() const // never throws
- {
- return ptr == 0? 0: &this_type::ptr;
- }
-
- bool operator! () const // never throws
- {
- return ptr == 0;
- }
-
- void swap(scoped_ptr & b) // never throws
- {
- T * tmp = b.ptr;
- b.ptr = ptr;
- ptr = tmp;
- }
-};
-
-template<class T> inline void swap(scoped_ptr<T> & a, scoped_ptr<T> & b) // never throws
-{
- a.swap(b);
-}
-
-// get_pointer(p) is a generic way to say p.get()
-
-template<class T> inline T * get_pointer(scoped_ptr<T> const & p)
-{
- return p.get();
-}
-
-} // namespace boost
-
-#endif // #ifndef BOOST_SCOPED_PTR_HPP_INCLUDED
diff --git a/indexlib/boost-compat/shared_ptr.h b/indexlib/boost-compat/shared_ptr.h
new file mode 100644
index 00000000..a242c829
--- /dev/null
+++ b/indexlib/boost-compat/shared_ptr.h
@@ -0,0 +1,450 @@
+#ifndef BOOST_SHARED_PTR_H_INCLUDED
+#define BOOST_SHARED_PTR_H_INCLUDED
+
+//
+// shared_ptr.h
+//
+// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
+// Copyright (c) 2001, 2002, 2003 Peter Dimov
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation.
+//
+
+#include <boost/config.hpp> // for broken compiler workarounds
+
+#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+#include <boost/detail/shared_ptr_nmt.hpp>
+#else
+
+#include <boost/assert.hpp>
+#include <boost/checked_delete.hpp>
+#include <boost/throw_exception.hpp>
+#include <boost/detail/shared_count.hpp>
+#include <boost/detail/workaround.hpp>
+
+#include <memory>
+#include <algorithm>
+#include <functional>
+#include <typeinfo>
+#include <iosfwd>
+
+#ifdef BOOST_MSVC // moved here to work around VC++ compiler crash
+# pragma warning(push)
+# pragma warning(disable:4284) // odd return type for operator->
+#endif
+
+namespace boost
+{
+
+template<class T> class weak_ptr;
+template<class T> class enable_shared_from_this;
+
+namespace detail
+{
+
+struct static_cast_tag {};
+struct const_cast_tag {};
+struct dynamic_cast_tag {};
+struct polymorphic_cast_tag {};
+
+template<class T> struct shared_ptr_traits
+{
+ typedef T & reference;
+};
+
+template<> struct shared_ptr_traits<void>
+{
+ typedef void reference;
+};
+
+#if !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
+
+template<> struct shared_ptr_traits<void const>
+{
+ typedef void reference;
+};
+
+template<> struct shared_ptr_traits<void volatile>
+{
+ typedef void reference;
+};
+
+template<> struct shared_ptr_traits<void const volatile>
+{
+ typedef void reference;
+};
+
+#endif
+
+// enable_shared_from_this support
+
+template<class T, class Y> void sp_enable_shared_from_this( shared_count const & pn, boost::enable_shared_from_this<T> const * pe, Y const * px )
+{
+ if(pe != 0) pe->_internal_weak_this._internal_assign(const_cast<Y*>(px), pn);
+}
+
+inline void sp_enable_shared_from_this( shared_count const & /*pn*/, ... )
+{
+}
+
+} // namespace detail
+
+
+//
+// shared_ptr
+//
+// An enhanced relative of scoped_ptr with reference counted copy semantics.
+// The object pointed to is deleted when the last shared_ptr pointing to it
+// is destroyed or reset.
+//
+
+template<class T> class shared_ptr
+{
+private:
+
+ // Borland 5.5.1 specific workaround
+ typedef shared_ptr<T> this_type;
+
+public:
+
+ typedef T element_type;
+ typedef T value_type;
+ typedef T * pointer;
+ typedef typename detail::shared_ptr_traits<T>::reference reference;
+
+ shared_ptr(): px(0), pn() // never throws in 1.30+
+ {
+ }
+
+ template<class Y>
+ explicit shared_ptr(Y * p): px(p), pn(p, checked_deleter<Y>()) // Y must be complete
+ {
+ detail::sp_enable_shared_from_this( pn, p, p );
+ }
+
+ //
+ // Requirements: D's copy constructor must not throw
+ //
+ // shared_ptr will release p by calling d(p)
+ //
+
+ template<class Y, class D> shared_ptr(Y * p, D d): px(p), pn(p, d)
+ {
+ detail::sp_enable_shared_from_this( pn, p, p );
+ }
+
+// generated copy constructor, assignment, destructor are fine...
+
+// except that Borland C++ has a bug, and g++ with -Wsynth warns
+#if defined(__BORLANDC__) || defined(__GNUC__)
+
+ shared_ptr & operator=(shared_ptr const & r) // never throws
+ {
+ px = r.px;
+ pn = r.pn; // shared_count::op= doesn't throw
+ return *this;
+ }
+
+#endif
+
+ template<class Y>
+ explicit shared_ptr(weak_ptr<Y> const & r): pn(r.pn) // may throw
+ {
+ // it is now safe to copy r.px, as pn(r.pn) did not throw
+ px = r.px;
+ }
+
+ template<class Y>
+ shared_ptr(shared_ptr<Y> const & r): px(r.px), pn(r.pn) // never throws
+ {
+ }
+
+ template<class Y>
+ shared_ptr(shared_ptr<Y> const & r, detail::static_cast_tag): px(static_cast<element_type *>(r.px)), pn(r.pn)
+ {
+ }
+
+ template<class Y>
+ shared_ptr(shared_ptr<Y> const & r, detail::const_cast_tag): px(const_cast<element_type *>(r.px)), pn(r.pn)
+ {
+ }
+
+ template<class Y>
+ shared_ptr(shared_ptr<Y> const & r, detail::dynamic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)
+ {
+ if(px == 0) // need to allocate new counter -- the cast failed
+ {
+ pn = detail::shared_count();
+ }
+ }
+
+ template<class Y>
+ shared_ptr(shared_ptr<Y> const & r, detail::polymorphic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)
+ {
+ if(px == 0)
+ {
+ boost::throw_exception(std::bad_cast());
+ }
+ }
+
+#if !defined(BOOST_MSVC) || (BOOST_MSVC > 1200)
+
+ template<class Y>
+ shared_ptr & operator=(shared_ptr<Y> const & r) // never throws
+ {
+ px = r.px;
+ pn = r.pn; // shared_count::op= doesn't throw
+ return *this;
+ }
+
+#endif
+
+ void reset() // never throws in 1.30+
+ {
+ this_type().swap(*this);
+ }
+
+ template<class Y> void reset(Y * p) // Y must be complete
+ {
+ BOOST_ASSERT(p == 0 || p != px); // catch self-reset errors
+ this_type(p).swap(*this);
+ }
+
+ template<class Y, class D> void reset(Y * p, D d)
+ {
+ this_type(p, d).swap(*this);
+ }
+
+ reference operator* () const // never throws
+ {
+ BOOST_ASSERT(px != 0);
+ return *px;
+ }
+
+ T * operator-> () const // never throws
+ {
+ BOOST_ASSERT(px != 0);
+ return px;
+ }
+
+ T * get() const // never throws
+ {
+ return px;
+ }
+
+ // implicit conversion to "bool"
+
+#if defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530)
+
+ operator bool () const
+ {
+ return px != 0;
+ }
+
+#elif defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
+ typedef T * (this_type::*unspecified_bool_type)() const;
+
+ operator unspecified_bool_type() const // never throws
+ {
+ return px == 0? 0: &this_type::get;
+ }
+
+#else
+
+ typedef T * this_type::*unspecified_bool_type;
+
+ operator unspecified_bool_type() const // never throws
+ {
+ return px == 0? 0: &this_type::px;
+ }
+
+#endif
+
+ // operator! is redundant, but some compilers need it
+
+ bool operator! () const // never throws
+ {
+ return px == 0;
+ }
+
+ bool unique() const // never throws
+ {
+ return pn.unique();
+ }
+
+ long use_count() const // never throws
+ {
+ return pn.use_count();
+ }
+
+ void swap(shared_ptr<T> & other) // never throws
+ {
+ std::swap(px, other.px);
+ pn.swap(other.pn);
+ }
+
+ template<class Y> bool _internal_less(shared_ptr<Y> const & rhs) const
+ {
+ return pn < rhs.pn;
+ }
+
+ void * _internal_get_deleter(std::type_info const & ti) const
+ {
+ return pn.get_deleter(ti);
+ }
+
+// Tasteless as this may seem, making all members public allows member templates
+// to work in the absence of member template friends. (Matthew Langston)
+
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+
+private:
+
+ template<class Y> friend class shared_ptr;
+ template<class Y> friend class weak_ptr;
+
+
+#endif
+
+ T * px; // contained pointer
+ detail::shared_count pn; // reference counter
+
+}; // shared_ptr
+
+template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b)
+{
+ return a.get() == b.get();
+}
+
+template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b)
+{
+ return a.get() != b.get();
+}
+
+#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96
+
+// Resolve the ambiguity between our op!= and the one in rel_ops
+
+template<class T> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<T> const & b)
+{
+ return a.get() != b.get();
+}
+
+#endif
+
+template<class T, class U> inline bool operator<(shared_ptr<T> const & a, shared_ptr<U> const & b)
+{
+ return a._internal_less(b);
+}
+
+template<class T> inline void swap(shared_ptr<T> & a, shared_ptr<T> & b)
+{
+ a.swap(b);
+}
+
+template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const & r)
+{
+ return shared_ptr<T>(r, detail::static_cast_tag());
+}
+
+template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const & r)
+{
+ return shared_ptr<T>(r, detail::const_cast_tag());
+}
+
+template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const & r)
+{
+ return shared_ptr<T>(r, detail::dynamic_cast_tag());
+}
+
+// shared_*_cast names are deprecated. Use *_pointer_cast instead.
+
+template<class T, class U> shared_ptr<T> shared_static_cast(shared_ptr<U> const & r)
+{
+ return shared_ptr<T>(r, detail::static_cast_tag());
+}
+
+template<class T, class U> shared_ptr<T> shared_dynamic_cast(shared_ptr<U> const & r)
+{
+ return shared_ptr<T>(r, detail::dynamic_cast_tag());
+}
+
+template<class T, class U> shared_ptr<T> shared_polymorphic_cast(shared_ptr<U> const & r)
+{
+ return shared_ptr<T>(r, detail::polymorphic_cast_tag());
+}
+
+template<class T, class U> shared_ptr<T> shared_polymorphic_downcast(shared_ptr<U> const & r)
+{
+ BOOST_ASSERT(dynamic_cast<T *>(r.get()) == r.get());
+ return shared_static_cast<T>(r);
+}
+
+// get_pointer() enables boost::mem_fn to recognize shared_ptr
+
+template<class T> inline T * get_pointer(shared_ptr<T> const & p)
+{
+ return p.get();
+}
+
+// operator<<
+
+#if defined(__GNUC__) && (__GNUC__ < 3)
+
+template<class Y> std::ostream & operator<< (std::ostream & os, shared_ptr<Y> const & p)
+{
+ os << p.get();
+ return os;
+}
+
+#else
+
+# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, <= 1200 && __SGI_STL_PORT)
+// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL
+using std::basic_ostream;
+template<class E, class T, class Y> basic_ostream<E, T> & operator<< (basic_ostream<E, T> & os, shared_ptr<Y> const & p)
+# else
+template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, shared_ptr<Y> const & p)
+# endif
+{
+ os << p.get();
+ return os;
+}
+
+#endif
+
+// get_deleter (experimental)
+
+#if (defined(__GNUC__) && (__GNUC__ < 3)) || (defined(__EDG_VERSION__) && (__EDG_VERSION__ <= 238))
+
+// g++ 2.9x doesn't allow static_cast<X const *>(void *)
+// apparently EDG 2.38 also doesn't accept it
+
+template<class D, class T> D * get_deleter(shared_ptr<T> const & p)
+{
+ void const * q = p._internal_get_deleter(typeid(D));
+ return const_cast<D *>(static_cast<D const *>(q));
+}
+
+#else
+
+template<class D, class T> D * get_deleter(shared_ptr<T> const & p)
+{
+ return static_cast<D *>(p._internal_get_deleter(typeid(D)));
+}
+
+#endif
+
+} // namespace boost
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
+
+#endif // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+
+#endif // #ifndef BOOST_SHARED_PTR_H_INCLUDED
diff --git a/indexlib/boost-compat/shared_ptr.hpp b/indexlib/boost-compat/shared_ptr.hpp
deleted file mode 100644
index 0a3bf6d8..00000000
--- a/indexlib/boost-compat/shared_ptr.hpp
+++ /dev/null
@@ -1,473 +0,0 @@
-#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
-#define BOOST_SHARED_PTR_HPP_INCLUDED
-
-//
-// shared_ptr.hpp
-//
-// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
-// Copyright (c) 2001, 2002, 2003 Peter Dimov
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation.
-//
-
-#include <boost/config.hpp> // for broken compiler workarounds
-
-#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-#include <boost/detail/shared_ptr_nmt.hpp>
-#else
-
-#include <boost/assert.hpp>
-#include <boost/checked_delete.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/detail/shared_count.hpp>
-#include <boost/detail/workaround.hpp>
-
-#include <memory> // for std::auto_ptr
-#include <algorithm> // for std::swap
-#include <functional> // for std::less
-#include <typeinfo> // for std::bad_cast
-#include <iosfwd> // for std::basic_ostream
-
-#ifdef BOOST_MSVC // moved here to work around VC++ compiler crash
-# pragma warning(push)
-# pragma warning(disable:4284) // odd return type for operator->
-#endif
-
-namespace boost
-{
-
-template<class T> class weak_ptr;
-template<class T> class enable_shared_from_this;
-
-namespace detail
-{
-
-struct static_cast_tag {};
-struct const_cast_tag {};
-struct dynamic_cast_tag {};
-struct polymorphic_cast_tag {};
-
-template<class T> struct shared_ptr_traits
-{
- typedef T & reference;
-};
-
-template<> struct shared_ptr_traits<void>
-{
- typedef void reference;
-};
-
-#if !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
-
-template<> struct shared_ptr_traits<void const>
-{
- typedef void reference;
-};
-
-template<> struct shared_ptr_traits<void volatile>
-{
- typedef void reference;
-};
-
-template<> struct shared_ptr_traits<void const volatile>
-{
- typedef void reference;
-};
-
-#endif
-
-// enable_shared_from_this support
-
-template<class T, class Y> void sp_enable_shared_from_this( shared_count const & pn, boost::enable_shared_from_this<T> const * pe, Y const * px )
-{
- if(pe != 0) pe->_internal_weak_this._internal_assign(const_cast<Y*>(px), pn);
-}
-
-inline void sp_enable_shared_from_this( shared_count const & /*pn*/, ... )
-{
-}
-
-} // namespace detail
-
-
-//
-// shared_ptr
-//
-// An enhanced relative of scoped_ptr with reference counted copy semantics.
-// The object pointed to is deleted when the last shared_ptr pointing to it
-// is destroyed or reset.
-//
-
-template<class T> class shared_ptr
-{
-private:
-
- // Borland 5.5.1 specific workaround
- typedef shared_ptr<T> this_type;
-
-public:
-
- typedef T element_type;
- typedef T value_type;
- typedef T * pointer;
- typedef typename detail::shared_ptr_traits<T>::reference reference;
-
- shared_ptr(): px(0), pn() // never throws in 1.30+
- {
- }
-
- template<class Y>
- explicit shared_ptr(Y * p): px(p), pn(p, checked_deleter<Y>()) // Y must be complete
- {
- detail::sp_enable_shared_from_this( pn, p, p );
- }
-
- //
- // Requirements: D's copy constructor must not throw
- //
- // shared_ptr will release p by calling d(p)
- //
-
- template<class Y, class D> shared_ptr(Y * p, D d): px(p), pn(p, d)
- {
- detail::sp_enable_shared_from_this( pn, p, p );
- }
-
-// generated copy constructor, assignment, destructor are fine...
-
-// except that Borland C++ has a bug, and g++ with -Wsynth warns
-#if defined(__BORLANDC__) || defined(__GNUC__)
-
- shared_ptr & operator=(shared_ptr const & r) // never throws
- {
- px = r.px;
- pn = r.pn; // shared_count::op= doesn't throw
- return *this;
- }
-
-#endif
-
- template<class Y>
- explicit shared_ptr(weak_ptr<Y> const & r): pn(r.pn) // may throw
- {
- // it is now safe to copy r.px, as pn(r.pn) did not throw
- px = r.px;
- }
-
- template<class Y>
- shared_ptr(shared_ptr<Y> const & r): px(r.px), pn(r.pn) // never throws
- {
- }
-
- template<class Y>
- shared_ptr(shared_ptr<Y> const & r, detail::static_cast_tag): px(static_cast<element_type *>(r.px)), pn(r.pn)
- {
- }
-
- template<class Y>
- shared_ptr(shared_ptr<Y> const & r, detail::const_cast_tag): px(const_cast<element_type *>(r.px)), pn(r.pn)
- {
- }
-
- template<class Y>
- shared_ptr(shared_ptr<Y> const & r, detail::dynamic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)
- {
- if(px == 0) // need to allocate new counter -- the cast failed
- {
- pn = detail::shared_count();
- }
- }
-
- template<class Y>
- shared_ptr(shared_ptr<Y> const & r, detail::polymorphic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)
- {
- if(px == 0)
- {
- boost::throw_exception(std::bad_cast());
- }
- }
-
-#ifndef BOOST_NO_AUTO_PTR
-
- template<class Y>
- explicit shared_ptr(std::auto_ptr<Y> & r): px(r.get()), pn()
- {
- Y * tmp = r.get();
- pn = detail::shared_count(r);
- detail::sp_enable_shared_from_this( pn, tmp, tmp );
- }
-
-#endif
-
-#if !defined(BOOST_MSVC) || (BOOST_MSVC > 1200)
-
- template<class Y>
- shared_ptr & operator=(shared_ptr<Y> const & r) // never throws
- {
- px = r.px;
- pn = r.pn; // shared_count::op= doesn't throw
- return *this;
- }
-
-#endif
-
-#ifndef BOOST_NO_AUTO_PTR
-
- template<class Y>
- shared_ptr & operator=(std::auto_ptr<Y> & r)
- {
- this_type(r).swap(*this);
- return *this;
- }
-
-#endif
-
- void reset() // never throws in 1.30+
- {
- this_type().swap(*this);
- }
-
- template<class Y> void reset(Y * p) // Y must be complete
- {
- BOOST_ASSERT(p == 0 || p != px); // catch self-reset errors
- this_type(p).swap(*this);
- }
-
- template<class Y, class D> void reset(Y * p, D d)
- {
- this_type(p, d).swap(*this);
- }
-
- reference operator* () const // never throws
- {
- BOOST_ASSERT(px != 0);
- return *px;
- }
-
- T * operator-> () const // never throws
- {
- BOOST_ASSERT(px != 0);
- return px;
- }
-
- T * get() const // never throws
- {
- return px;
- }
-
- // implicit conversion to "bool"
-
-#if defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x530)
-
- operator bool () const
- {
- return px != 0;
- }
-
-#elif defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
- typedef T * (this_type::*unspecified_bool_type)() const;
-
- operator unspecified_bool_type() const // never throws
- {
- return px == 0? 0: &this_type::get;
- }
-
-#else
-
- typedef T * this_type::*unspecified_bool_type;
-
- operator unspecified_bool_type() const // never throws
- {
- return px == 0? 0: &this_type::px;
- }
-
-#endif
-
- // operator! is redundant, but some compilers need it
-
- bool operator! () const // never throws
- {
- return px == 0;
- }
-
- bool unique() const // never throws
- {
- return pn.unique();
- }
-
- long use_count() const // never throws
- {
- return pn.use_count();
- }
-
- void swap(shared_ptr<T> & other) // never throws
- {
- std::swap(px, other.px);
- pn.swap(other.pn);
- }
-
- template<class Y> bool _internal_less(shared_ptr<Y> const & rhs) const
- {
- return pn < rhs.pn;
- }
-
- void * _internal_get_deleter(std::type_info const & ti) const
- {
- return pn.get_deleter(ti);
- }
-
-// Tasteless as this may seem, making all members public allows member templates
-// to work in the absence of member template friends. (Matthew Langston)
-
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-
-private:
-
- template<class Y> friend class shared_ptr;
- template<class Y> friend class weak_ptr;
-
-
-#endif
-
- T * px; // contained pointer
- detail::shared_count pn; // reference counter
-
-}; // shared_ptr
-
-template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b)
-{
- return a.get() == b.get();
-}
-
-template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b)
-{
- return a.get() != b.get();
-}
-
-#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96
-
-// Resolve the ambiguity between our op!= and the one in rel_ops
-
-template<class T> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<T> const & b)
-{
- return a.get() != b.get();
-}
-
-#endif
-
-template<class T, class U> inline bool operator<(shared_ptr<T> const & a, shared_ptr<U> const & b)
-{
- return a._internal_less(b);
-}
-
-template<class T> inline void swap(shared_ptr<T> & a, shared_ptr<T> & b)
-{
- a.swap(b);
-}
-
-template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const & r)
-{
- return shared_ptr<T>(r, detail::static_cast_tag());
-}
-
-template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const & r)
-{
- return shared_ptr<T>(r, detail::const_cast_tag());
-}
-
-template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const & r)
-{
- return shared_ptr<T>(r, detail::dynamic_cast_tag());
-}
-
-// shared_*_cast names are deprecated. Use *_pointer_cast instead.
-
-template<class T, class U> shared_ptr<T> shared_static_cast(shared_ptr<U> const & r)
-{
- return shared_ptr<T>(r, detail::static_cast_tag());
-}
-
-template<class T, class U> shared_ptr<T> shared_dynamic_cast(shared_ptr<U> const & r)
-{
- return shared_ptr<T>(r, detail::dynamic_cast_tag());
-}
-
-template<class T, class U> shared_ptr<T> shared_polymorphic_cast(shared_ptr<U> const & r)
-{
- return shared_ptr<T>(r, detail::polymorphic_cast_tag());
-}
-
-template<class T, class U> shared_ptr<T> shared_polymorphic_downcast(shared_ptr<U> const & r)
-{
- BOOST_ASSERT(dynamic_cast<T *>(r.get()) == r.get());
- return shared_static_cast<T>(r);
-}
-
-// get_pointer() enables boost::mem_fn to recognize shared_ptr
-
-template<class T> inline T * get_pointer(shared_ptr<T> const & p)
-{
- return p.get();
-}
-
-// operator<<
-
-#if defined(__GNUC__) && (__GNUC__ < 3)
-
-template<class Y> std::ostream & operator<< (std::ostream & os, shared_ptr<Y> const & p)
-{
- os << p.get();
- return os;
-}
-
-#else
-
-# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, <= 1200 && __SGI_STL_PORT)
-// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL
-using std::basic_ostream;
-template<class E, class T, class Y> basic_ostream<E, T> & operator<< (basic_ostream<E, T> & os, shared_ptr<Y> const & p)
-# else
-template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, shared_ptr<Y> const & p)
-# endif
-{
- os << p.get();
- return os;
-}
-
-#endif
-
-// get_deleter (experimental)
-
-#if (defined(__GNUC__) && (__GNUC__ < 3)) || (defined(__EDG_VERSION__) && (__EDG_VERSION__ <= 238))
-
-// g++ 2.9x doesn't allow static_cast<X const *>(void *)
-// apparently EDG 2.38 also doesn't accept it
-
-template<class D, class T> D * get_deleter(shared_ptr<T> const & p)
-{
- void const * q = p._internal_get_deleter(typeid(D));
- return const_cast<D *>(static_cast<D const *>(q));
-}
-
-#else
-
-template<class D, class T> D * get_deleter(shared_ptr<T> const & p)
-{
- return static_cast<D *>(p._internal_get_deleter(typeid(D)));
-}
-
-#endif
-
-} // namespace boost
-
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#endif // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-
-#endif // #ifndef BOOST_SHARED_PTR_HPP_INCLUDED
diff --git a/indexlib/boost-compat/smart_ptr.h b/indexlib/boost-compat/smart_ptr.h
new file mode 100644
index 00000000..578a48e4
--- /dev/null
+++ b/indexlib/boost-compat/smart_ptr.h
@@ -0,0 +1,31 @@
+#ifndef LPC_SMART_PTR_H1119293317_INCLUDE_GUARD_
+#define LPC_SMART_PTR_H1119293317_INCLUDE_GUARD_
+
+//
+// smart_ptr.h
+//
+// For convenience, this header includes the rest of the smart
+// pointer library headers.
+//
+// Copyright (c) 2003 Peter Dimov Distributed under the Boost
+// Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+// http://www.boost.org/libs/smart_ptr/smart_ptr.htm
+//
+
+#include <boost/config.hpp>
+
+#include <boost/scoped_ptr.hpp>
+#include <boost/scoped_array.hpp>
+#include <boost/shared_ptr.hpp>
+#include <boost/shared_array.hpp>
+
+#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)
+# include <boost/weak_ptr.hpp>
+# include <boost/intrusive_ptr.hpp>
+# include <boost/enable_shared_from_this.hpp>
+#endif
+
+
+#endif /* LPC_SMART_PTR_H1119293317_INCLUDE_GUARD_ */
diff --git a/indexlib/boost-compat/smart_ptr.hpp b/indexlib/boost-compat/smart_ptr.hpp
deleted file mode 100644
index c10de457..00000000
--- a/indexlib/boost-compat/smart_ptr.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef LPC_SMART_PTR_HPP1119293317_INCLUDE_GUARD_
-#define LPC_SMART_PTR_HPP1119293317_INCLUDE_GUARD_
-
-//
-// smart_ptr.hpp
-//
-// For convenience, this header includes the rest of the smart
-// pointer library headers.
-//
-// Copyright (c) 2003 Peter Dimov Distributed under the Boost
-// Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// http://www.boost.org/libs/smart_ptr/smart_ptr.htm
-//
-
-#include <boost/config.hpp>
-
-#include <boost/scoped_ptr.hpp>
-#include <boost/scoped_array.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/shared_array.hpp>
-
-#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-# include <boost/weak_ptr.hpp>
-# include <boost/intrusive_ptr.hpp>
-# include <boost/enable_shared_from_this.hpp>
-#endif
-
-
-#endif /* LPC_SMART_PTR_HPP1119293317_INCLUDE_GUARD_ */
diff --git a/indexlib/boost-compat/static_assert.h b/indexlib/boost-compat/static_assert.h
new file mode 100644
index 00000000..1d020c9f
--- /dev/null
+++ b/indexlib/boost-compat/static_assert.h
@@ -0,0 +1,11 @@
+#ifndef LPC_STATIC_ASSERT_H1119293317_INCLUDE_GUARD_
+#define LPC_STATIC_ASSERT_H1119293317_INCLUDE_GUARD_
+
+#ifdef HAVE_BOOST
+#include <boost/static_assert.hpp>
+#elif !defined( BOOST_STATIC_ASSERT )
+#define BOOST_STATIC_ASSERT( x )
+#endif
+
+
+#endif /* LPC_STATIC_ASSERT_H1119293317_INCLUDE_GUARD_ */
diff --git a/indexlib/boost-compat/static_assert.hpp b/indexlib/boost-compat/static_assert.hpp
deleted file mode 100644
index 76de9c49..00000000
--- a/indexlib/boost-compat/static_assert.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef LPC_STATIC_ASSERT_HPP1119293317_INCLUDE_GUARD_
-#define LPC_STATIC_ASSERT_HPP1119293317_INCLUDE_GUARD_
-
-#ifdef HAVE_BOOST
-#include <boost/static_assert.hpp>
-#elif !defined( BOOST_STATIC_ASSERT )
-#define BOOST_STATIC_ASSERT( x )
-#endif
-
-
-#endif /* LPC_STATIC_ASSERT_HPP1119293317_INCLUDE_GUARD_ */
diff --git a/indexlib/boost-compat/weak_ptr.h b/indexlib/boost-compat/weak_ptr.h
new file mode 100644
index 00000000..338e5221
--- /dev/null
+++ b/indexlib/boost-compat/weak_ptr.h
@@ -0,0 +1,192 @@
+#ifndef BOOST_WEAK_PTR_H_INCLUDED
+#define BOOST_WEAK_PTR_H_INCLUDED
+
+//
+// weak_ptr.h
+//
+// Copyright (c) 2001, 2002, 2003 Peter Dimov
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/smart_ptr/weak_ptr.htm for documentation.
+//
+
+#include <boost/shared_ptr.hpp>
+
+#ifdef BOOST_MSVC // moved here to work around VC++ compiler crash
+# pragma warning(push)
+# pragma warning(disable:4284) // odd return type for operator->
+#endif
+
+namespace boost
+{
+
+template<class T> class weak_ptr
+{
+private:
+
+ // Borland 5.5.1 specific workarounds
+ typedef weak_ptr<T> this_type;
+
+public:
+
+ typedef T element_type;
+
+ weak_ptr(): px(0), pn() // never throws in 1.30+
+ {
+ }
+
+// generated copy constructor, assignment, destructor are fine
+
+
+//
+// The "obvious" converting constructor implementation:
+//
+// template<class Y>
+// weak_ptr(weak_ptr<Y> const & r): px(r.px), pn(r.pn) // never throws
+// {
+// }
+//
+// has a serious problem.
+//
+// r.px may already have been invalidated. The px(r.px)
+// conversion may require access to *r.px (virtual inheritance).
+//
+// It is not possible to avoid spurious access violations since
+// in multithreaded programs r.px may be invalidated at any point.
+//
+
+ template<class Y>
+ weak_ptr(weak_ptr<Y> const & r): pn(r.pn) // never throws
+ {
+ px = r.lock().get();
+ }
+
+ template<class Y>
+ weak_ptr(shared_ptr<Y> const & r): px(r.px), pn(r.pn) // never throws
+ {
+ }
+
+#if !defined(BOOST_MSVC) || (BOOST_MSVC > 1200)
+
+ template<class Y>
+ weak_ptr & operator=(weak_ptr<Y> const & r) // never throws
+ {
+ px = r.lock().get();
+ pn = r.pn;
+ return *this;
+ }
+
+ template<class Y>
+ weak_ptr & operator=(shared_ptr<Y> const & r) // never throws
+ {
+ px = r.px;
+ pn = r.pn;
+ return *this;
+ }
+
+#endif
+
+ shared_ptr<T> lock() const // never throws
+ {
+#if defined(BOOST_HAS_THREADS)
+
+ // optimization: avoid throw overhead
+ if(expired())
+ {
+ return shared_ptr<element_type>();
+ }
+
+ try
+ {
+ return shared_ptr<element_type>(*this);
+ }
+ catch(bad_weak_ptr const &)
+ {
+ // Q: how can we get here?
+ // A: another thread may have invalidated r after the use_count test above.
+ return shared_ptr<element_type>();
+ }
+
+#else
+
+ // optimization: avoid try/catch overhead when single threaded
+ return expired()? shared_ptr<element_type>(): shared_ptr<element_type>(*this);
+
+#endif
+ }
+
+ long use_count() const // never throws
+ {
+ return pn.use_count();
+ }
+
+ bool expired() const // never throws
+ {
+ return pn.use_count() == 0;
+ }
+
+ void reset() // never throws in 1.30+
+ {
+ this_type().swap(*this);
+ }
+
+ void swap(this_type & other) // never throws
+ {
+ std::swap(px, other.px);
+ pn.swap(other.pn);
+ }
+
+ void _internal_assign(T * px2, detail::shared_count const & pn2)
+ {
+ px = px2;
+ pn = pn2;
+ }
+
+ template<class Y> bool _internal_less(weak_ptr<Y> const & rhs) const
+ {
+ return pn < rhs.pn;
+ }
+
+// Tasteless as this may seem, making all members public allows member templates
+// to work in the absence of member template friends. (Matthew Langston)
+
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
+
+private:
+
+ template<class Y> friend class weak_ptr;
+ template<class Y> friend class shared_ptr;
+
+#endif
+
+ T * px; // contained pointer
+ detail::weak_count pn; // reference counter
+
+}; // weak_ptr
+
+template<class T, class U> inline bool operator<(weak_ptr<T> const & a, weak_ptr<U> const & b)
+{
+ return a._internal_less(b);
+}
+
+template<class T> void swap(weak_ptr<T> & a, weak_ptr<T> & b)
+{
+ a.swap(b);
+}
+
+// deprecated, provided for backward compatibility
+template<class T> shared_ptr<T> make_shared(weak_ptr<T> const & r)
+{
+ return r.lock();
+}
+
+} // namespace boost
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
+
+#endif // #ifndef BOOST_WEAK_PTR_H_INCLUDED
diff --git a/indexlib/boost-compat/weak_ptr.hpp b/indexlib/boost-compat/weak_ptr.hpp
deleted file mode 100644
index c2385007..00000000
--- a/indexlib/boost-compat/weak_ptr.hpp
+++ /dev/null
@@ -1,192 +0,0 @@
-#ifndef BOOST_WEAK_PTR_HPP_INCLUDED
-#define BOOST_WEAK_PTR_HPP_INCLUDED
-
-//
-// weak_ptr.hpp
-//
-// Copyright (c) 2001, 2002, 2003 Peter Dimov
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/smart_ptr/weak_ptr.htm for documentation.
-//
-
-#include <boost/shared_ptr.hpp>
-
-#ifdef BOOST_MSVC // moved here to work around VC++ compiler crash
-# pragma warning(push)
-# pragma warning(disable:4284) // odd return type for operator->
-#endif
-
-namespace boost
-{
-
-template<class T> class weak_ptr
-{
-private:
-
- // Borland 5.5.1 specific workarounds
- typedef weak_ptr<T> this_type;
-
-public:
-
- typedef T element_type;
-
- weak_ptr(): px(0), pn() // never throws in 1.30+
- {
- }
-
-// generated copy constructor, assignment, destructor are fine
-
-
-//
-// The "obvious" converting constructor implementation:
-//
-// template<class Y>
-// weak_ptr(weak_ptr<Y> const & r): px(r.px), pn(r.pn) // never throws
-// {
-// }
-//
-// has a serious problem.
-//
-// r.px may already have been invalidated. The px(r.px)
-// conversion may require access to *r.px (virtual inheritance).
-//
-// It is not possible to avoid spurious access violations since
-// in multithreaded programs r.px may be invalidated at any point.
-//
-
- template<class Y>
- weak_ptr(weak_ptr<Y> const & r): pn(r.pn) // never throws
- {
- px = r.lock().get();
- }
-
- template<class Y>
- weak_ptr(shared_ptr<Y> const & r): px(r.px), pn(r.pn) // never throws
- {
- }
-
-#if !defined(BOOST_MSVC) || (BOOST_MSVC > 1200)
-
- template<class Y>
- weak_ptr & operator=(weak_ptr<Y> const & r) // never throws
- {
- px = r.lock().get();
- pn = r.pn;
- return *this;
- }
-
- template<class Y>
- weak_ptr & operator=(shared_ptr<Y> const & r) // never throws
- {
- px = r.px;
- pn = r.pn;
- return *this;
- }
-
-#endif
-
- shared_ptr<T> lock() const // never throws
- {
-#if defined(BOOST_HAS_THREADS)
-
- // optimization: avoid throw overhead
- if(expired())
- {
- return shared_ptr<element_type>();
- }
-
- try
- {
- return shared_ptr<element_type>(*this);
- }
- catch(bad_weak_ptr const &)
- {
- // Q: how can we get here?
- // A: another thread may have invalidated r after the use_count test above.
- return shared_ptr<element_type>();
- }
-
-#else
-
- // optimization: avoid try/catch overhead when single threaded
- return expired()? shared_ptr<element_type>(): shared_ptr<element_type>(*this);
-
-#endif
- }
-
- long use_count() const // never throws
- {
- return pn.use_count();
- }
-
- bool expired() const // never throws
- {
- return pn.use_count() == 0;
- }
-
- void reset() // never throws in 1.30+
- {
- this_type().swap(*this);
- }
-
- void swap(this_type & other) // never throws
- {
- std::swap(px, other.px);
- pn.swap(other.pn);
- }
-
- void _internal_assign(T * px2, detail::shared_count const & pn2)
- {
- px = px2;
- pn = pn2;
- }
-
- template<class Y> bool _internal_less(weak_ptr<Y> const & rhs) const
- {
- return pn < rhs.pn;
- }
-
-// Tasteless as this may seem, making all members public allows member templates
-// to work in the absence of member template friends. (Matthew Langston)
-
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-
-private:
-
- template<class Y> friend class weak_ptr;
- template<class Y> friend class shared_ptr;
-
-#endif
-
- T * px; // contained pointer
- detail::weak_count pn; // reference counter
-
-}; // weak_ptr
-
-template<class T, class U> inline bool operator<(weak_ptr<T> const & a, weak_ptr<U> const & b)
-{
- return a._internal_less(b);
-}
-
-template<class T> void swap(weak_ptr<T> & a, weak_ptr<T> & b)
-{
- a.swap(b);
-}
-
-// deprecated, provided for backward compatibility
-template<class T> shared_ptr<T> make_shared(weak_ptr<T> const & r)
-{
- return r.lock();
-}
-
-} // namespace boost
-
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#endif // #ifndef BOOST_WEAK_PTR_HPP_INCLUDED
diff --git a/indexlib/compressed.cpp b/indexlib/compressed.cpp
index a60c3f06..9c73c304 100644
--- a/indexlib/compressed.cpp
+++ b/indexlib/compressed.cpp
@@ -53,7 +53,7 @@ memory_manager* get_comp_p() {
compressed_file::compressed_file( std::string base ):
auxdata_( path_concat( base, "table" ) ),
- data_( std::auto_ptr<memory_manager>( new mmap_manager( path_concat( base, "data" ) ) ) )
+ data_( std::unique_ptr<memory_manager>( new mmap_manager( path_concat( base, "data" ) ) ) )
{
if ( auxdata_.empty() ) auxdata_.push_back( 0 );
}
diff --git a/indexlib/configure.in.in b/indexlib/configure.in.in
index 1f1a806a..b66b049c 100644
--- a/indexlib/configure.in.in
+++ b/indexlib/configure.in.in
@@ -19,4 +19,4 @@ if test "x$have_boost" = "xyes"; then
CXXFLAGS="-DHAVE_BOOST $CXXFLAGS"
fi
- \ No newline at end of file
+
diff --git a/indexlib/create.cpp b/indexlib/create.cpp
index e47d116a..c64e2158 100644
--- a/indexlib/create.cpp
+++ b/indexlib/create.cpp
@@ -56,41 +56,41 @@ indexlib::index_type::type type_of( const char* basename ) {
}
}
-std::auto_ptr<indexlib::index> indexlib::create( const char* basename, indexlib::index_type::type flags ) {
+std::unique_ptr<indexlib::index> indexlib::create( const char* basename, indexlib::index_type::type flags ) {
using namespace indexlib::version;
- if ( type_of( basename ) != indexlib::index_type::none ) return std::auto_ptr<indexlib::index>( 0 );
+ if ( type_of( basename ) != indexlib::index_type::none ) return std::unique_ptr<indexlib::index>();
try {
if ( basename[ strlen( basename ) - 1 ] == '/' && !isdir( basename ) ) {
- if ( !indexlib::detail::mkdir_trailing( basename ) ) return std::auto_ptr<indexlib::index>( 0 );
+ if ( !indexlib::detail::mkdir_trailing( basename ) ) return std::unique_ptr<indexlib::index>();
}
std::ofstream info( path_concat( basename, "info" ).c_str() );
info << marker << std::endl;
info << "version " << major << '.' << minor << "\n";
if ( flags == index_type::quotes ) {
info << "quotes" << std::endl;
- return std::auto_ptr<indexlib::index>( new quotes( basename ) );
+ return std::unique_ptr<indexlib::index>( new quotes( basename ) );
}
if ( flags == index_type::ifile ) {
info << "ifile" << std::endl;
- return std::auto_ptr<indexlib::index>( new ifile( basename ) );
+ return std::unique_ptr<indexlib::index>( new ifile( basename ) );
}
} catch ( const std::exception& e ) {
std::cerr << "index creation failed: " << e.what() << std::endl;
}
- return std::auto_ptr<indexlib::index>( 0 );
+ return std::unique_ptr<indexlib::index>();
}
-std::auto_ptr<indexlib::index> indexlib::open( const char* basename, unsigned flags ) {
+std::unique_ptr<indexlib::index> indexlib::open( const char* basename, unsigned flags ) {
using namespace indexlib;
switch ( type_of( basename ) ) {
- case index_type::ifile: return std::auto_ptr<indexlib::index>( new ifile( basename ) );
- case index_type::quotes: return std::auto_ptr<indexlib::index>( new quotes( basename ) );
+ case index_type::ifile: return std::unique_ptr<indexlib::index>( new ifile( basename ) );
+ case index_type::quotes: return std::unique_ptr<indexlib::index>( new quotes( basename ) );
case index_type::none:
- if ( flags == open_flags::fail_if_nonexistant ) return std::auto_ptr<indexlib::index>();
+ if ( flags == open_flags::fail_if_nonexistant ) return std::unique_ptr<indexlib::index>();
return create( basename, index_type::type( flags ) );
}
logfile() << format( "%s:%s: Unexpected code reached!\n" ) % __FILE__ % __LINE__;
- return std::auto_ptr<indexlib::index>( 0 );
+ return std::unique_ptr<indexlib::index>();
}
bool indexlib::exists( const char* basename ) {
diff --git a/indexlib/create.h b/indexlib/create.h
index e865728e..18e9929b 100644
--- a/indexlib/create.h
+++ b/indexlib/create.h
@@ -57,14 +57,14 @@ namespace indexlib {
* This will return something like "new quotes(basename)" but by using this, you do not need to include quotes.h
* which needs boost headers also.
*/
- std::auto_ptr<index> create( const char* basename, index_type::type flags = index_type::quotes );
+ std::unique_ptr<index> create( const char* basename, index_type::type flags = index_type::quotes );
namespace open_flags {
enum type { none = 0,
create_ifile = index_type::ifile,
create_quotes = index_type::quotes,
fail_if_nonexistant };
}
- std::auto_ptr<index> open( const char* basename, unsigned flags = open_flags::fail_if_nonexistant );
+ std::unique_ptr<index> open( const char* basename, unsigned flags = open_flags::fail_if_nonexistant );
/**
* Removes the index.
diff --git a/indexlib/ifile.cpp b/indexlib/ifile.cpp
index b71297a0..43057433 100644
--- a/indexlib/ifile.cpp
+++ b/indexlib/ifile.cpp
@@ -39,7 +39,7 @@
#include <functional>
#include <string.h>
#include "format.h"
-#include "boost-compat/next_prior.hpp"
+#include "boost-compat/next_prior.h"
ifile::ifile( std::string name ):
@@ -83,10 +83,10 @@ void ifile::remove_doc( const char* doc ) {
// TODO: remove from words_ too if that's the case
}
-std::auto_ptr<indexlib::result> ifile::everything() const {
+std::unique_ptr<indexlib::result> ifile::everything() const {
std::vector<unsigned> res( ndocs() );
for ( unsigned i = 0; i != ndocs(); ++i ) res[ i ] = i;
- return std::auto_ptr<indexlib::result>( new indexlib::detail::simple_result( res ) );
+ return std::unique_ptr<indexlib::result>( new indexlib::detail::simple_result( res ) );
}
namespace {
@@ -94,13 +94,13 @@ inline
bool word_too_small( std::string str ) { return str.size() < 3; }
}
-std::auto_ptr<indexlib::result> ifile::search( const char* str ) const {
+std::unique_ptr<indexlib::result> ifile::search( const char* str ) const {
using namespace indexlib::detail;
using indexlib::result;
assert( str );
if ( !*str ) return everything();
std::vector<std::string> words = break_clean( str );
- if ( words.empty() ) return std::auto_ptr<result>( new empty_result );
+ if ( words.empty() ) return std::unique_ptr<result>( new empty_result );
words.erase( std::remove_if( words.begin(), words.end(), &word_too_small ), words.end() );
if ( words.empty() ) return everything();
std::set<unsigned> values = find_word( words[ 0 ] );
@@ -113,7 +113,7 @@ std::auto_ptr<indexlib::result> ifile::search( const char* str ) const {
std::set_intersection( now.begin(), now.end(), values.begin(), values.end(), std::inserter( next, next.begin() ) );
next.swap( values );
}
- std::auto_ptr<result> r(new simple_result( std::vector<unsigned>( values.begin(), values.end() ) ) );
+ std::unique_ptr<result> r(new simple_result( std::vector<unsigned>( values.begin(), values.end() ) ) );
return r;
}
@@ -169,7 +169,7 @@ std::vector<std::string> ifile::break_clean( const char* complete ) const {
std::sort( words.begin(), words.end() );
words.erase( std::unique( words.begin(), words.end() ), words.end() );
words.erase( std::remove_if( words.begin(), words.end(), &ifile::invalid_word ), words.end() );
- words.erase( std::remove_if( words.begin(), words.end(), std::bind1st( std::mem_fun( &ifile::is_stop_word ), this ) ), words.end() );
+ words.erase( std::remove_if( words.begin(), words.end(), std::bind( std::mem_fn( &ifile::is_stop_word ), this, std::placeholders::_1 ) ), words.end() );
return words;
}
diff --git a/indexlib/ifile.h b/indexlib/ifile.h
index 4cfcf585..3fcf772e 100644
--- a/indexlib/ifile.h
+++ b/indexlib/ifile.h
@@ -43,8 +43,10 @@
struct ifile : public indexlib::index {
public:
ifile( std::string );
+ ifile(ifile const &) = delete;
+ ifile& operator=(ifile const &) = delete;
virtual void add( const char* str, const char* doc );
- virtual std::auto_ptr<indexlib::result> search( const char* ) const;
+ virtual std::unique_ptr<indexlib::result> search( const char* ) const;
virtual unsigned ndocs() const { return docnames_.size(); }
virtual std::string lookup_docname( unsigned idx ) const { return docnames_.get( idx ); }
@@ -56,7 +58,7 @@ struct ifile : public indexlib::index {
private:
std::set<unsigned> find_word( std::string ) const;
std::vector<std::string> break_clean( const char* ) const;
- virtual std::auto_ptr<indexlib::result> everything() const;
+ virtual std::unique_ptr<indexlib::result> everything() const;
static bool invalid_word( std::string );
bool is_stop_word( std::string ) const;
@@ -67,7 +69,7 @@ struct ifile : public indexlib::index {
stringset words_;
stringset stopwords_;
leafdatavector files_;
- std::auto_ptr<indexlib::detail::tokenizer> tokenizer_;
+ std::unique_ptr<indexlib::detail::tokenizer> tokenizer_;
};
#endif /* _IFILE_INCLUDE_GUARD_LPC_56465465798732 */
diff --git a/indexlib/index.h b/indexlib/index.h
index b7c68375..5ffab2d4 100644
--- a/indexlib/index.h
+++ b/indexlib/index.h
@@ -61,7 +61,7 @@ struct result {
* @return null if the type does not support this or the particular search string makes it impossible to
* fulfill the search request.
*/
- virtual std::auto_ptr<result> search( const char* ) = 0;
+ virtual std::unique_ptr<result> search( const char* ) = 0;
};
struct index {
@@ -96,7 +96,7 @@ struct index {
/**
* Returns all documents matching \param pattern.
*/
- virtual std::auto_ptr<result> search( const char* pattern ) const = 0;
+ virtual std::unique_ptr<result> search( const char* pattern ) const = 0;
/**
* Returns the number of docs indexed.
diff --git a/indexlib/index_slow.h b/indexlib/index_slow.h
index bbb4f7b7..6f1dcced 100644
--- a/indexlib/index_slow.h
+++ b/indexlib/index_slow.h
@@ -34,7 +34,7 @@
#include "index.h"
#include "slow.h"
-#include "boost-compat/noncopyable.hpp"
+#include "boost-compat/noncopyable.h"
/**
* \see class slow which should be merged into this one.
diff --git a/indexlib/leafdata.cpp b/indexlib/leafdata.cpp
index db61119a..c8882156 100644
--- a/indexlib/leafdata.cpp
+++ b/indexlib/leafdata.cpp
@@ -33,7 +33,7 @@
#include "logfile.h"
#include <iostream>
#include <algorithm>
-#include "boost-compat/next_prior.hpp"
+#include "boost-compat/next_prior.h"
#include "format.h"
namespace {
diff --git a/indexlib/leafdatavector.cpp b/indexlib/leafdatavector.cpp
index 0dae6555..89b95ab9 100644
--- a/indexlib/leafdatavector.cpp
+++ b/indexlib/leafdatavector.cpp
@@ -45,7 +45,7 @@ typedef mmap_manager leafdatavector_manager;
#endif
leafdatavector::leafdatavector( std::string name ):
- leafs_( std::auto_ptr<memory_manager>( new leafdatavector_manager( path_concat( name, "leafs" ) ) ) ),
+ leafs_( std::unique_ptr<memory_manager>( new leafdatavector_manager( path_concat( name, "leafs" ) ) ) ),
table_( path_concat( name, "table" ) )
{
}
diff --git a/indexlib/main.cpp b/indexlib/main.cpp
index b8685153..dcedbe1c 100644
--- a/indexlib/main.cpp
+++ b/indexlib/main.cpp
@@ -46,7 +46,7 @@
#include <memory>
#include <string.h>
-typedef std::auto_ptr<indexlib::index> index_smart;
+typedef std::unique_ptr<indexlib::index> index_smart;
index_smart get_index( std::string name ) {
return indexlib::open( name.c_str(), indexlib::open_flags::create_quotes );
@@ -92,8 +92,8 @@ int debug( int argc, char* argv[] ) {
std::cout << "compressed_file:\n";
file.print( std::cout );
} else if ( type == "break_up" ) {
- std::auto_ptr<tokenizer> tok = get_tokenizer( "latin-1:european" );
- if ( !tok.get() ) {
+ std::unique_ptr<tokenizer> tok = get_tokenizer( "latin-1:european" );
+ if ( !tok ) {
std::cerr << "Could not get tokenizer\n";
return 1;
}
diff --git a/indexlib/mempool.h b/indexlib/mempool.h
index acf62494..08be8857 100644
--- a/indexlib/mempool.h
+++ b/indexlib/mempool.h
@@ -55,7 +55,9 @@ struct mempool /* : boost::noncopyable */ {
typedef Traits traits_type;
typedef typename traits_type::value_type data_type;
typedef typename traits_type::pointer data_typeptr;
- explicit mempool( std::auto_ptr<memory_manager> source );
+ explicit mempool( std::unique_ptr<memory_manager> &&source );
+ mempool(mempool const &) = delete;
+ mempool& operator=(mempool const &) = delete;
/**
* Returns a memory block of size \param s.
@@ -151,7 +153,7 @@ struct mempool /* : boost::noncopyable */ {
bool join( data_typeptr&, unsigned order );
void deallocate( data_typeptr, unsigned order );
- std::auto_ptr<memory_manager> manager_;
+ std::unique_ptr<memory_manager> manager_;
memory_reference<uint32_t> max_order_;
};
diff --git a/indexlib/mempool.tcc b/indexlib/mempool.tcc
index a130bffe..750209a2 100644
--- a/indexlib/mempool.tcc
+++ b/indexlib/mempool.tcc
@@ -33,8 +33,8 @@
*/
template <typename Traits>
-mempool<Traits>::mempool( std::auto_ptr<memory_manager> source ):
- manager_( source ),
+mempool<Traits>::mempool( std::unique_ptr<memory_manager> &&source ):
+ manager_( std::move(source) ),
max_order_( 0 )
{
if ( !manager_->size() ) init_memory();
diff --git a/indexlib/memvector.h b/indexlib/memvector.h
index 446fddf9..feb96268 100644
--- a/indexlib/memvector.h
+++ b/indexlib/memvector.h
@@ -35,8 +35,8 @@
#include "bitio.h"
#include "compat.h"
#include "manager.h"
-#include "boost-compat/static_assert.hpp"
-#include "boost-compat/scoped_ptr.hpp"
+#include "boost-compat/static_assert.h"
+#include "boost-compat/scoped_ptr.h"
#ifdef HAVE_BOOST
#include <boost/type_traits/is_convertible.hpp>
#endif
diff --git a/indexlib/pointer.h b/indexlib/pointer.h
index 70721918..336ede76 100644
--- a/indexlib/pointer.h
+++ b/indexlib/pointer.h
@@ -34,7 +34,7 @@
#include <inttypes.h>
#include <iostream>
-#include "boost-compat/static_assert.hpp"
+#include "boost-compat/static_assert.h"
#ifdef HAVE_BOOST
#include <boost/type_traits.hpp>
#endif
diff --git a/indexlib/quotes.cpp b/indexlib/quotes.cpp
index e4c35db4..abf8915c 100644
--- a/indexlib/quotes.cpp
+++ b/indexlib/quotes.cpp
@@ -68,12 +68,12 @@ void quotes::remove_doc( const char* doc ) {
impl_.remove_doc( doc );
}
-std::auto_ptr<indexlib::result> quotes::search( const char* cstr ) const {
+std::unique_ptr<indexlib::result> quotes::search( const char* cstr ) const {
std::string str = cstr;
if ( str[ 0 ] != '\"' ) return impl_.search( cstr );
str = cstr + 1; // cut "
if ( str.size() && str[ str.size() - 1 ] == '\"' ) str.erase( str.size() - 1 );
- std::auto_ptr<indexlib::result> prev = impl_.search( str.c_str() );
+ std::unique_ptr<indexlib::result> prev = impl_.search( str.c_str() );
if ( str.find( ' ' ) != std::string::npos ) {
indexlib::Match m( str );
std::vector<unsigned> candidates = prev->list();
@@ -86,7 +86,7 @@ std::auto_ptr<indexlib::result> quotes::search( const char* cstr ) const {
res.push_back( *first );
}
}
- return std::auto_ptr<indexlib::result>( new indexlib::detail::simple_result( res ) );
+ return std::unique_ptr<indexlib::result>( new indexlib::detail::simple_result( res ) );
} else { return prev; }
}
diff --git a/indexlib/quotes.h b/indexlib/quotes.h
index 7852d0dd..6604e9a9 100644
--- a/indexlib/quotes.h
+++ b/indexlib/quotes.h
@@ -42,7 +42,7 @@ struct quotes : public indexlib::index {
quotes( std::string );
virtual void add( const char* str, const char* doc );
virtual void remove_doc( const char* doc );
- virtual std::auto_ptr<indexlib::result> search( const char* ) const;
+ virtual std::unique_ptr<indexlib::result> search( const char* ) const;
virtual unsigned ndocs() const { return impl_.ndocs(); }
virtual std::string lookup_docname( unsigned d ) const { return impl_.lookup_docname( d ); }
diff --git a/indexlib/result.h b/indexlib/result.h
index 4cad40d7..dd23f25d 100644
--- a/indexlib/result.h
+++ b/indexlib/result.h
@@ -42,7 +42,7 @@ struct simple_result : indexlib::result {
simple_result( std::vector<unsigned> r ):res( r ) { }
std::vector<unsigned> list() const { return res; }
- std::auto_ptr<result> search( const char* ) { return std::auto_ptr<result>( 0 ); }
+ std::unique_ptr<result> search( const char* ) { return std::unique_ptr<result>(); }
private:
std::vector<unsigned> res;
};
@@ -50,7 +50,7 @@ struct simple_result : indexlib::result {
struct empty_result : indexlib::result {
public:
std::vector<unsigned> list() const { return std::vector<unsigned>(); }
- std::auto_ptr<result> search( const char* ) { return std::auto_ptr<result>(); }
+ std::unique_ptr<result> search( const char* ) { return std::unique_ptr<result>(); }
};
} //namespace detail
} //namespace indexlib
diff --git a/indexlib/stringarray.h b/indexlib/stringarray.h
index a928db31..6202036c 100644
--- a/indexlib/stringarray.h
+++ b/indexlib/stringarray.h
@@ -34,7 +34,7 @@
#include <iostream>
#include <string>
-#include "boost-compat/scoped_ptr.hpp"
+#include "boost-compat/scoped_ptr.h"
#include "manager.h"
#include "memvector.h"
diff --git a/indexlib/tests/create-test.cpp b/indexlib/tests/create-test.cpp
index beeb7d5f..da3c91ca 100644
--- a/indexlib/tests/create-test.cpp
+++ b/indexlib/tests/create-test.cpp
@@ -14,8 +14,8 @@ void cleanup() {
void simple() {
cleanup();
- std::auto_ptr<indexlib::index> ptr = indexlib::create( fname );
- BOOST_CHECK( ptr.get() );
+ std::unique_ptr<indexlib::index> ptr = indexlib::create( fname );
+ BOOST_CHECK( ptr );
}
test_suite* get_suite() {
diff --git a/indexlib/tests/mempool-test.cpp b/indexlib/tests/mempool-test.cpp
index a0895243..1c9a4eb6 100644
--- a/indexlib/tests/mempool-test.cpp
+++ b/indexlib/tests/mempool-test.cpp
@@ -11,7 +11,7 @@ void cleanup() {
void deallocate() {
cleanup();
- mempool<leaf_data_pool_traits> pool( std::auto_ptr<memory_manager>( new mmap_manager( fname ) ) );
+ mempool<leaf_data_pool_traits> pool( std::unique_ptr<memory_manager>( new mmap_manager( fname ) ) );
std::vector<leafdataptr> pointers;
for ( int i = 0; i != 32; ++i ) {
@@ -33,7 +33,7 @@ void deallocate() {
void large() {
cleanup();
- mempool<leaf_data_pool_traits> pool( std::auto_ptr<memory_manager>( new mmap_manager( fname ) ) );
+ mempool<leaf_data_pool_traits> pool( std::unique_ptr<memory_manager>( new mmap_manager( fname ) ) );
pool.allocate( 4095 );
pool.allocate( 4097 );
diff --git a/indexlib/tests/tokenizer-test.cpp b/indexlib/tests/tokenizer-test.cpp
index 372859d9..1354ddcd 100644
--- a/indexlib/tests/tokenizer-test.cpp
+++ b/indexlib/tests/tokenizer-test.cpp
@@ -9,8 +9,8 @@ using indexlib::detail::tokenizer;
using indexlib::detail::get_tokenizer;
void simple() {
- std::auto_ptr<tokenizer> tokenizer = get_tokenizer( "latin-1:european" );
- assert(tokenizer.get());
+ std::unique_ptr<tokenizer> tokenizer = get_tokenizer( "latin-1:european" );
+ assert(tokenizer);
std::vector<std::string> tokens = tokenizer->string_to_words( "one ,as, ''#`:ThReE, " );
std::vector<std::string> expected;
expected.push_back( "ONE" );
@@ -26,8 +26,8 @@ void simple() {
}
void with_newlines() {
- std::auto_ptr<tokenizer> tokenizer = get_tokenizer( "latin-1:european" );
- assert(tokenizer.get());
+ std::unique_ptr<tokenizer> tokenizer = get_tokenizer( "latin-1:european" );
+ assert(tokenizer);
std::vector<std::string> tokens = tokenizer->string_to_words( "one\ntwo\nthree" );
std::vector<std::string> expected;
expected.push_back( "ONE" );
@@ -42,8 +42,8 @@ void with_newlines() {
}
void with_numbers() {
- std::auto_ptr<tokenizer> tokenizer = get_tokenizer( "latin-1:european" );
- assert(tokenizer.get());
+ std::unique_ptr<tokenizer> tokenizer = get_tokenizer( "latin-1:european" );
+ assert(tokenizer);
std::vector<std::string> tokens = tokenizer->string_to_words( "one 012 123 four" );
std::vector<std::string> expected;
expected.push_back( "ONE" );
diff --git a/indexlib/tokenizer.cpp b/indexlib/tokenizer.cpp
index b069c748..1c1243a7 100644
--- a/indexlib/tokenizer.cpp
+++ b/indexlib/tokenizer.cpp
@@ -294,7 +294,7 @@ class latin1_tokenizer : public indexlib::detail::tokenizer {
}
-std::auto_ptr<indexlib::detail::tokenizer> indexlib::detail::get_tokenizer( std::string name ) {
- if ( name == "latin-1:european" ) return std::auto_ptr<indexlib::detail::tokenizer>( new latin1_tokenizer );
- return std::auto_ptr<indexlib::detail::tokenizer>( 0 );
+std::unique_ptr<indexlib::detail::tokenizer> indexlib::detail::get_tokenizer( std::string name ) {
+ if ( name == "latin-1:european" ) return std::unique_ptr<indexlib::detail::tokenizer>( new latin1_tokenizer );
+ return std::unique_ptr<indexlib::detail::tokenizer>();
}
diff --git a/indexlib/tokenizer.h b/indexlib/tokenizer.h
index 2494f297..9916df66 100644
--- a/indexlib/tokenizer.h
+++ b/indexlib/tokenizer.h
@@ -20,7 +20,7 @@ class tokenizer {
virtual std::vector<std::string> do_string_to_words( const char* ) = 0;
};
-std::auto_ptr<tokenizer> get_tokenizer( std::string );
+std::unique_ptr<tokenizer> get_tokenizer( std::string );
}}
diff --git a/kaddressbook/CMakeL10n.txt b/kaddressbook/CMakeL10n.txt
index 15dabc2e..9c7ef6b3 100644
--- a/kaddressbook/CMakeL10n.txt
+++ b/kaddressbook/CMakeL10n.txt
@@ -25,3 +25,9 @@ tde_l10n_create_template(
)
tde_l10n_auto_add_subdirectories( )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/kaddressbook-desktops/"
+ SOURCES *.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/kaddressbook/CMakeLists.txt b/kaddressbook/CMakeLists.txt
index a254b5cb..f909a9cd 100644
--- a/kaddressbook/CMakeLists.txt
+++ b/kaddressbook/CMakeLists.txt
@@ -52,13 +52,16 @@ link_directories(
tde_install_icons( kaddressbook )
-install( FILES
- kaddressbook.desktop
- DESTINATION ${XDG_APPS_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE kaddressbook.desktop
+ PO_DIR kaddressbook-desktops
+)
-install( FILES
- kaddressbook_view.desktop dcopaddressbook.desktop
- DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE kaddressbook_view.desktop dcopaddressbook.desktop
+ DESTINATION ${SERVICETYPES_INSTALL_DIR}
+ PO_DIR kaddressbook-desktops
+)
install( FILES
kaddressbookui.rc kaddressbook_part.rc zone.tab
diff --git a/kaddressbook/addresseditwidget.cpp b/kaddressbook/addresseditwidget.cpp
index 83f27874..97b01d08 100644
--- a/kaddressbook/addresseditwidget.cpp
+++ b/kaddressbook/addresseditwidget.cpp
@@ -86,8 +86,8 @@ AddressEditWidget::AddressEditWidget( TQWidget *parent, const char *name )
layout->setSpacing( KDialog::spacingHint() );
mTypeCombo = new AddressTypeCombo( mAddressList, this );
- connect( mTypeCombo, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( updateAddressEdit() ) );
+ connect( mTypeCombo, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( updateAddressEdit() ) );
layout->addWidget( mTypeCombo );
mAddressField = new KActiveLabel( this );
@@ -98,7 +98,7 @@ AddressEditWidget::AddressEditWidget( TQWidget *parent, const char *name )
layout->addWidget( mAddressField );
mEditButton = new TQPushButton( i18n( "street/postal", "&Edit Addresses..." ), this );
- connect( mEditButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( edit() ) );
+ connect( mEditButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( edit() ) );
layout->addWidget( mEditButton );
}
@@ -281,7 +281,7 @@ AddressEditDialog::AddressEditDialog( const TDEABC::Address::List &list,
label->setBuddy( mStreetTextEdit );
topLayout->addWidget( mStreetTextEdit, 1, 1 );
- TabPressEater *eater = new TabPressEater( TQT_TQOBJECT(this) );
+ TabPressEater *eater = new TabPressEater( this );
mStreetTextEdit->installEventFilter( eater );
label = new TQLabel( i18n( "<postOfficeBoxLabel>:", "%1:" ).arg( TDEABC::Address::postOfficeBoxLabel() ), page );
@@ -317,7 +317,7 @@ AddressEditDialog::AddressEditDialog( const TDEABC::Address::List &list,
#if KDE_IS_VERSION(3,3,0)
TQPushButton *labelButton = new TQPushButton( i18n( "Edit Label..." ), page );
topLayout->addMultiCellWidget( labelButton, 7, 7, 0, 1 );
- connect( labelButton, TQT_SIGNAL( clicked() ), TQT_SLOT( editLabel() ) );
+ connect( labelButton, TQ_SIGNAL( clicked() ), TQ_SLOT( editLabel() ) );
#endif
fillCountryCombo();
@@ -335,28 +335,28 @@ AddressEditDialog::AddressEditDialog( const TDEABC::Address::List &list,
topLayout->addMultiCellWidget( buttonBox, 10, 10, 0, 1 );
TQPushButton *addButton = new TQPushButton( i18n( "New..." ), buttonBox );
- connect( addButton, TQT_SIGNAL( clicked() ), TQT_SLOT( addAddress() ) );
+ connect( addButton, TQ_SIGNAL( clicked() ), TQ_SLOT( addAddress() ) );
mRemoveButton = new TQPushButton( i18n( "Remove" ), buttonBox );
- connect( mRemoveButton, TQT_SIGNAL( clicked() ), TQT_SLOT( removeAddress() ) );
+ connect( mRemoveButton, TQ_SIGNAL( clicked() ), TQ_SLOT( removeAddress() ) );
mChangeTypeButton = new TQPushButton( i18n( "Change Type..." ), buttonBox );
- connect( mChangeTypeButton, TQT_SIGNAL( clicked() ), TQT_SLOT( changeType() ) );
+ connect( mChangeTypeButton, TQ_SIGNAL( clicked() ), TQ_SLOT( changeType() ) );
mTypeCombo->updateTypes();
mTypeCombo->setCurrentItem( selected );
updateAddressEdits();
- connect( mTypeCombo, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( updateAddressEdits() ) );
- connect( mStreetTextEdit, TQT_SIGNAL( textChanged() ), TQT_SLOT( modified() ) );
- connect( mPOBoxEdit, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SLOT( modified() ) );
- connect( mLocalityEdit, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SLOT( modified() ) );
- connect( mRegionEdit, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SLOT( modified() ) );
- connect( mPostalCodeEdit, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SLOT( modified() ) );
- connect( mCountryCombo, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SLOT( modified() ) );
- connect( mPreferredCheckBox, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( modified() ) );
+ connect( mTypeCombo, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( updateAddressEdits() ) );
+ connect( mStreetTextEdit, TQ_SIGNAL( textChanged() ), TQ_SLOT( modified() ) );
+ connect( mPOBoxEdit, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( modified() ) );
+ connect( mLocalityEdit, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( modified() ) );
+ connect( mRegionEdit, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( modified() ) );
+ connect( mPostalCodeEdit, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( modified() ) );
+ connect( mCountryCombo, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( modified() ) );
+ connect( mPreferredCheckBox, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( modified() ) );
TDEAcceleratorManager::manage( this );
@@ -606,7 +606,7 @@ AddressTypeDialog::AddressTypeDialog( int type, TQWidget *parent )
TQWidget *page = plainPage();
TQVBoxLayout *layout = new TQVBoxLayout( page );
- mGroup = new TQButtonGroup( 2, Qt::Horizontal, i18n( "street/postal", "Address Types" ), page );
+ mGroup = new TQButtonGroup( 2, TQt::Horizontal, i18n( "street/postal", "Address Types" ), page );
layout->addWidget( mGroup );
mTypeList = TDEABC::Address::typeList();
diff --git a/kaddressbook/addresseditwidget.h b/kaddressbook/addresseditwidget.h
index e52e5960..b90228e5 100644
--- a/kaddressbook/addresseditwidget.h
+++ b/kaddressbook/addresseditwidget.h
@@ -51,7 +51,7 @@ typedef TypeCombo<TDEABC::Address> AddressTypeCombo;
*/
class AddressEditWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -92,7 +92,7 @@ class AddressEditWidget : public TQWidget
*/
class AddressEditDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/addresseeeditorbase.h b/kaddressbook/addresseeeditorbase.h
index 036e47e3..7295ae2c 100644
--- a/kaddressbook/addresseeeditorbase.h
+++ b/kaddressbook/addresseeeditorbase.h
@@ -30,7 +30,7 @@
class AddresseeEditorBase : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/addresseeeditordialog.cpp b/kaddressbook/addresseeeditordialog.cpp
index 77d7bcbe..202dd9f1 100644
--- a/kaddressbook/addresseeeditordialog.cpp
+++ b/kaddressbook/addresseeeditordialog.cpp
@@ -55,7 +55,7 @@ AddresseeEditorDialog::AddresseeEditorDialog( KAB::Core *core,
} else {
mEditorWidget = new AddresseeEditorWidget( page );
}
- connect( mEditorWidget, TQT_SIGNAL( modified() ), TQT_SLOT( widgetModified() ) );
+ connect( mEditorWidget, TQ_SIGNAL( modified() ), TQ_SLOT( widgetModified() ) );
layout->addWidget( mEditorWidget );
enableButton( KDialogBase::Apply, false );
diff --git a/kaddressbook/addresseeeditordialog.h b/kaddressbook/addresseeeditordialog.h
index bfdb3ca9..b9a9d349 100644
--- a/kaddressbook/addresseeeditordialog.h
+++ b/kaddressbook/addresseeeditordialog.h
@@ -34,7 +34,7 @@ namespace KAB { class Core; }
class AddresseeEditorDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/addresseeeditorextension.cpp b/kaddressbook/addresseeeditorextension.cpp
index 5ff8a3f1..d271399d 100644
--- a/kaddressbook/addresseeeditorextension.cpp
+++ b/kaddressbook/addresseeeditorextension.cpp
@@ -58,7 +58,7 @@ void AddresseeEditorExtension::contactsSelectionChanged()
mAddresseeEditor->save();
addressees.append( mAddresseeEditor->addressee() );
modifiedAddress = addressees;
- TQTimer::singleShot(0, this, TQT_SLOT(emitModifiedAddresses()));
+ TQTimer::singleShot(0, this, TQ_SLOT(emitModifiedAddresses()));
}
mAddresseeEditor->setAddressee( selectedAddressees[ 0 ] );
diff --git a/kaddressbook/addresseeeditorextension.h b/kaddressbook/addresseeeditorextension.h
index 949fe0b6..5099cfbc 100644
--- a/kaddressbook/addresseeeditorextension.h
+++ b/kaddressbook/addresseeeditorextension.h
@@ -29,7 +29,7 @@
class AddresseeEditorExtension : public KAB::ExtensionWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/addresseeeditorwidget.cpp b/kaddressbook/addresseeeditorwidget.cpp
index c3e2e6fb..16489cf2 100644
--- a/kaddressbook/addresseeeditorwidget.cpp
+++ b/kaddressbook/addresseeeditorwidget.cpp
@@ -135,8 +135,8 @@ void AddresseeEditorWidget::initGUI()
setupAdditionalTabs();
setupCustomFieldsTabs();
- connect( mTabWidget, TQT_SIGNAL( currentChanged(TQWidget*) ),
- TQT_SLOT( pageChanged(TQWidget*) ) );
+ connect( mTabWidget, TQ_SIGNAL( currentChanged(TQWidget*) ),
+ TQ_SLOT( pageChanged(TQWidget*) ) );
}
void AddresseeEditorWidget::setupTab1()
@@ -165,9 +165,9 @@ void AddresseeEditorWidget::setupTab1()
button = new TQPushButton( i18n( "Edit Name..." ), tab1 );
TQToolTip::add( button, i18n( "Edit the contact's name" ) );
mNameEdit = new KLineEdit( tab1, "mNameEdit" );
- connect( mNameEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( nameTextChanged( const TQString& ) ) );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( nameButtonClicked() ) );
+ connect( mNameEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( nameTextChanged( const TQString& ) ) );
+ connect( button, TQ_SIGNAL( clicked() ), TQ_SLOT( nameButtonClicked() ) );
mNameLabel = new KSqueezedTextLabel( tab1 );
if ( KABPrefs::instance()->automaticNameParsing() ) {
@@ -183,8 +183,8 @@ void AddresseeEditorWidget::setupTab1()
layout->addWidget( mNameLabel, 0, 2 );
label = new TQLabel( i18n( "<roleLabel>:", "%1:" ).arg( TDEABC::Addressee::roleLabel() ), tab1 );
mRoleEdit = new KLineEdit( tab1 );
- connect( mRoleEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( textChanged( const TQString& ) ) );
+ connect( mRoleEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( textChanged( const TQString& ) ) );
label->setBuddy( mRoleEdit );
layout->addWidget( label, 1, 1 );
layout->addWidget( mRoleEdit, 1, 2 );
@@ -193,8 +193,8 @@ void AddresseeEditorWidget::setupTab1()
label = new TQLabel( i18n( "<organizationLabel>:", "%1:" ).arg( TDEABC::Addressee::organizationLabel() ), tab1 );
mOrgEdit = new KLineEdit( tab1 );
label->setBuddy( mOrgEdit );
- connect( mOrgEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( organizationTextChanged( const TQString& ) ) );
+ connect( mOrgEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( organizationTextChanged( const TQString& ) ) );
layout->addWidget( label, 2, 1 );
layout->addWidget( mOrgEdit, 2, 2 );
@@ -217,7 +217,7 @@ void AddresseeEditorWidget::setupTab1()
layout->addMultiCellWidget( label, 0, 1, 3, 3 );
mPhoneEditWidget = new PhoneEditWidget( tab1 );
- connect( mPhoneEditWidget, TQT_SIGNAL( modified() ), TQT_SLOT( emitModified() ) );
+ connect( mPhoneEditWidget, TQ_SIGNAL( modified() ), TQ_SLOT( emitModified() ) );
layout->addMultiCellWidget( mPhoneEditWidget, 0, 3, 4, 6 );
bar = new KSeparator( KSeparator::HLine, tab1 );
@@ -231,7 +231,7 @@ void AddresseeEditorWidget::setupTab1()
layout->addMultiCellWidget( label, 5, 6, 0, 0 );
mAddressEditWidget = new AddressEditWidget( tab1 );
- connect( mAddressEditWidget, TQT_SIGNAL( modified() ), TQT_SLOT( emitModified() ) );
+ connect( mAddressEditWidget, TQ_SIGNAL( modified() ), TQ_SLOT( emitModified() ) );
layout->addMultiCellWidget( mAddressEditWidget, 5, 10, 1, 2 );
//////////////////////////////////////
@@ -242,7 +242,7 @@ void AddresseeEditorWidget::setupTab1()
layout->addMultiCellWidget( label, 5, 6, 3, 3 );
mEmailWidget = new EmailEditWidget( tab1 );
- connect( mEmailWidget, TQT_SIGNAL( modified() ), TQT_SLOT( emitModified() ) );
+ connect( mEmailWidget, TQ_SIGNAL( modified() ), TQ_SLOT( emitModified() ) );
layout->addMultiCellWidget( mEmailWidget, 5, 6, 4, 6 );
// add the separator
@@ -258,8 +258,8 @@ void AddresseeEditorWidget::setupTab1()
label = new TQLabel( i18n( "<urlLabel>:", "%1:" ).arg( TDEABC::Addressee::urlLabel() ), tab1 );
mURLEdit = new KLineEdit( tab1 );
- connect( mURLEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( textChanged( const TQString& ) ) );
+ connect( mURLEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( textChanged( const TQString& ) ) );
label->setBuddy( mURLEdit );
homePageLayout->addWidget( label );
homePageLayout->addWidget( mURLEdit );
@@ -270,13 +270,13 @@ void AddresseeEditorWidget::setupTab1()
blogLayout->addWidget( label );
mBlogEdit = new KLineEdit( tab1 );
blogLayout->addWidget( mBlogEdit );
- connect( mBlogEdit, TQT_SIGNAL( textChanged( const TQString & ) ),
- TQT_SLOT( textChanged( const TQString & ) ) );
+ connect( mBlogEdit, TQ_SIGNAL( textChanged( const TQString & ) ),
+ TQ_SLOT( textChanged( const TQString & ) ) );
label->setBuddy( mBlogEdit );
layout->addMultiCellLayout( blogLayout, 9, 9, 4, 6 );
mIMWidget = new IMEditWidget( tab1, mAddressee );
- connect( mIMWidget, TQT_SIGNAL( modified() ), TQT_SLOT( emitModified() ) );
+ connect( mIMWidget, TQ_SIGNAL( modified() ), TQ_SLOT( emitModified() ) );
layout->addMultiCellWidget( mIMWidget, 10, 10, 4, 6 );
layout->addColSpacing( 6, 50 );
@@ -290,15 +290,15 @@ void AddresseeEditorWidget::setupTab1()
// Categories
mCategoryButton = new TQPushButton( i18n( "Select Categories..." ), categoryBox );
- connect( mCategoryButton, TQT_SIGNAL( clicked() ), TQT_SLOT( selectCategories() ) );
+ connect( mCategoryButton, TQ_SIGNAL( clicked() ), TQ_SLOT( selectCategories() ) );
mCategoryEdit = new KLineEdit( categoryBox );
mCategoryEdit->setReadOnly( true );
- connect( mCategoryEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( textChanged( const TQString& ) ) );
+ connect( mCategoryEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( textChanged( const TQString& ) ) );
mSecrecyWidget = new SecrecyWidget( categoryBox );
- connect( mSecrecyWidget, TQT_SIGNAL( changed() ), TQT_SLOT( emitModified() ) );
+ connect( mSecrecyWidget, TQ_SIGNAL( changed() ), TQ_SLOT( emitModified() ) );
layout->addMultiCellWidget( categoryBox, 12, 12, 0, 6 );
@@ -332,48 +332,48 @@ void AddresseeEditorWidget::setupTab2()
label = new TQLabel( i18n( "Department:" ), tab2 );
layout->addWidget( label, 0, 1 );
mDepartmentEdit = new KLineEdit( tab2 );
- connect( mDepartmentEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( textChanged( const TQString& ) ) );
+ connect( mDepartmentEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( textChanged( const TQString& ) ) );
label->setBuddy( mDepartmentEdit );
layout->addWidget( mDepartmentEdit, 0, 2 );
label = new TQLabel( i18n( "Office:" ), tab2 );
layout->addWidget( label, 1, 1 );
mOfficeEdit = new KLineEdit( tab2 );
- connect( mOfficeEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( textChanged( const TQString& ) ) );
+ connect( mOfficeEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( textChanged( const TQString& ) ) );
label->setBuddy( mOfficeEdit );
layout->addWidget( mOfficeEdit, 1, 2 );
label = new TQLabel( i18n( "Profession:" ), tab2 );
layout->addWidget( label, 2, 1 );
mProfessionEdit = new KLineEdit( tab2 );
- connect( mProfessionEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( textChanged( const TQString& ) ) );
+ connect( mProfessionEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( textChanged( const TQString& ) ) );
label->setBuddy( mProfessionEdit );
layout->addWidget( mProfessionEdit, 2, 2 );
label = new TQLabel( i18n( "Manager\'s name:" ), tab2 );
layout->addWidget( label, 0, 3 );
mManagerEdit = new KPIM::AddresseeLineEdit( tab2 );
- connect( mManagerEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( textChanged( const TQString& ) ) );
+ connect( mManagerEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( textChanged( const TQString& ) ) );
label->setBuddy( mManagerEdit );
layout->addMultiCellWidget( mManagerEdit, 0, 0, 4, 5 );
label = new TQLabel( i18n( "Assistant's name:" ), tab2 );
layout->addWidget( label, 1, 3 );
mAssistantEdit = new KPIM::AddresseeLineEdit( tab2 );
- connect( mAssistantEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( textChanged( const TQString& ) ) );
+ connect( mAssistantEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( textChanged( const TQString& ) ) );
label->setBuddy( mAssistantEdit );
layout->addMultiCellWidget( mAssistantEdit, 1, 1, 4, 5 );
label = new TQLabel( i18n( "<titleLabel>:", "%1:" ).arg( TDEABC::Addressee::titleLabel() ), tab2 );
layout->addWidget( label, 2, 3 );
mTitleEdit = new KLineEdit( tab2 );
- connect( mTitleEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( textChanged( const TQString& ) ) );
+ connect( mTitleEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( textChanged( const TQString& ) ) );
label->setBuddy( mTitleEdit );
layout->addMultiCellWidget( mTitleEdit, 2, 2, 4, 5 );
@@ -391,36 +391,36 @@ void AddresseeEditorWidget::setupTab2()
label = new TQLabel( i18n( "Nickname:" ), tab2 );
layout->addWidget( label, 4, 1 );
mNicknameEdit = new KLineEdit( tab2 );
- connect( mNicknameEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( textChanged( const TQString& ) ) );
+ connect( mNicknameEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( textChanged( const TQString& ) ) );
label->setBuddy( mNicknameEdit );
layout->addWidget( mNicknameEdit, 4, 2 );
label = new TQLabel( i18n( "Partner's name:" ), tab2 );
layout->addWidget( label, 5, 1 );
mSpouseEdit = new KPIM::AddresseeLineEdit( tab2 );
- connect( mSpouseEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( textChanged( const TQString& ) ) );
+ connect( mSpouseEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( textChanged( const TQString& ) ) );
label->setBuddy( mSpouseEdit );
layout->addWidget( mSpouseEdit, 5, 2 );
label = new TQLabel( i18n( "Birthdate:" ), tab2 );
layout->addWidget( label, 4, 3 );
mBirthdayPicker = new KDateEdit( tab2 );
- connect( mBirthdayPicker, TQT_SIGNAL( dateChanged( const TQDate& ) ),
- TQT_SLOT( dateChanged( const TQDate& ) ) );
- connect( mBirthdayPicker, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( emitModified() ) );
+ connect( mBirthdayPicker, TQ_SIGNAL( dateChanged( const TQDate& ) ),
+ TQ_SLOT( dateChanged( const TQDate& ) ) );
+ connect( mBirthdayPicker, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( emitModified() ) );
label->setBuddy( mBirthdayPicker );
layout->addWidget( mBirthdayPicker, 4, 4 );
label = new TQLabel( i18n( "Anniversary:" ), tab2 );
layout->addWidget( label, 5, 3 );
mAnniversaryPicker = new KDateEdit( tab2 );
- connect( mAnniversaryPicker, TQT_SIGNAL( dateChanged( const TQDate& ) ),
- TQT_SLOT( dateChanged( const TQDate& ) ) );
- connect( mAnniversaryPicker, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( emitModified() ) );
+ connect( mAnniversaryPicker, TQ_SIGNAL( dateChanged( const TQDate& ) ),
+ TQ_SLOT( dateChanged( const TQDate& ) ) );
+ connect( mAnniversaryPicker, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( emitModified() ) );
label->setBuddy( mAnniversaryPicker );
layout->addWidget( mAnniversaryPicker, 5, 4 );
@@ -435,7 +435,7 @@ void AddresseeEditorWidget::setupTab2()
mNoteEdit = new TQTextEdit( tab2 );
mNoteEdit->setWordWrap( TQTextEdit::WidgetWidth );
mNoteEdit->setMinimumSize( mNoteEdit->sizeHint() );
- connect( mNoteEdit, TQT_SIGNAL( textChanged() ), TQT_SLOT( emitModified() ) );
+ connect( mNoteEdit, TQ_SIGNAL( textChanged() ), TQ_SLOT( emitModified() ) );
label->setBuddy( mNoteEdit );
layout->addMultiCellWidget( mNoteEdit, 7, 7, 1, 5 );
@@ -464,7 +464,7 @@ void AddresseeEditorWidget::setupAdditionalTabs()
mTabWidget->addTab( page, pageTitle );
- connect( page, TQT_SIGNAL( changed() ), TQT_SLOT( emitModified() ) );
+ connect( page, TQ_SIGNAL( changed() ), TQ_SLOT( emitModified() ) );
}
KAB::ContactEditorWidget *widget
@@ -498,7 +498,7 @@ void AddresseeEditorWidget::setupCustomFieldsTabs()
page->addWidget( wdg );
page->updateLayout();
- connect( page, TQT_SIGNAL( changed() ), TQT_SLOT( emitModified() ) );
+ connect( page, TQ_SIGNAL( changed() ), TQ_SLOT( emitModified() ) );
} else
delete page;
}
@@ -558,7 +558,7 @@ void AddresseeEditorWidget::load()
mBirthdayPicker->setDate( mAddressee.birthday().date() );
TQString anniversaryStr = mAddressee.custom( "KADDRESSBOOK", "X-Anniversary" );
- TQDate anniversary = (anniversaryStr.isEmpty() ? TQDate() : TQDate::fromString( anniversaryStr, Qt::ISODate ));
+ TQDate anniversary = (anniversaryStr.isEmpty() ? TQDate() : TQDate::fromString( anniversaryStr, TQt::ISODate ));
mAnniversaryPicker->setDate( anniversary );
mNicknameEdit->setText( mAddressee.nickName() );
mCategoryEdit->setText( mAddressee.categories().join( "," ) );
@@ -652,7 +652,7 @@ void AddresseeEditorWidget::save()
if ( mAnniversaryPicker->date().isValid() )
mAddressee.insertCustom( "KADDRESSBOOK", "X-Anniversary",
- mAnniversaryPicker->date().toString( Qt::ISODate ) );
+ mAnniversaryPicker->date().toString( TQt::ISODate ) );
else
mAddressee.removeCustom( "KADDRESSBOOK", "X-Anniversary" );
@@ -798,10 +798,10 @@ void AddresseeEditorWidget::selectCategories()
// Show the category dialog
if ( mCategorySelectDialog == 0 ) {
mCategorySelectDialog = new KPIM::CategorySelectDialog( KABPrefs::instance(), this );
- connect( mCategorySelectDialog, TQT_SIGNAL( categoriesSelected( const TQStringList& ) ),
- this, TQT_SLOT( categoriesSelected( const TQStringList& ) ) );
- connect( mCategorySelectDialog, TQT_SIGNAL( editCategories() ),
- this, TQT_SLOT( editCategories() ) );
+ connect( mCategorySelectDialog, TQ_SIGNAL( categoriesSelected( const TQStringList& ) ),
+ this, TQ_SLOT( categoriesSelected( const TQStringList& ) ) );
+ connect( mCategorySelectDialog, TQ_SIGNAL( editCategories() ),
+ this, TQ_SLOT( editCategories() ) );
}
mCategorySelectDialog->setSelected( TQStringList::split( ",", mCategoryEdit->text() ) );
@@ -817,8 +817,8 @@ void AddresseeEditorWidget::editCategories()
{
if ( mCategoryEditDialog == 0 ) {
mCategoryEditDialog = new KPIM::CategoryEditDialog( KABPrefs::instance(), this );
- connect( mCategoryEditDialog, TQT_SIGNAL( categoryConfigChanged() ),
- mCategorySelectDialog, TQT_SLOT( updateCategoryConfig() ) );
+ connect( mCategoryEditDialog, TQ_SIGNAL( categoryConfigChanged() ),
+ mCategorySelectDialog, TQ_SLOT( updateCategoryConfig() ) );
}
mCategoryEditDialog->exec();
diff --git a/kaddressbook/addresseeeditorwidget.h b/kaddressbook/addresseeeditorwidget.h
index 918070bb..f2110f75 100644
--- a/kaddressbook/addresseeeditorwidget.h
+++ b/kaddressbook/addresseeeditorwidget.h
@@ -65,7 +65,7 @@ namespace TDEABC { class AddressBook; }
class AddresseeEditorWidget : public AddresseeEditorBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/addviewdialog.cpp b/kaddressbook/addviewdialog.cpp
index dbec842d..70841834 100644
--- a/kaddressbook/addviewdialog.cpp
+++ b/kaddressbook/addviewdialog.cpp
@@ -53,12 +53,12 @@ AddViewDialog::AddViewDialog( TQDict<ViewFactory> *viewFactoryDict,
layout->addWidget( label, 0, 0 );
mViewNameEdit = new TQLineEdit( page );
- connect( mViewNameEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( textChanged( const TQString& ) ) );
+ connect( mViewNameEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( textChanged( const TQString& ) ) );
layout->addWidget( mViewNameEdit, 0, 1 );
- mTypeGroup = new TQButtonGroup( 0, Qt::Horizontal, i18n( "View Type" ), page );
- connect( mTypeGroup, TQT_SIGNAL( clicked( int ) ), this, TQT_SLOT( clicked( int ) ) );
+ mTypeGroup = new TQButtonGroup( 0, TQt::Horizontal, i18n( "View Type" ), page );
+ connect( mTypeGroup, TQ_SIGNAL( clicked( int ) ), this, TQ_SLOT( clicked( int ) ) );
layout->addMultiCellWidget( mTypeGroup, 1, 1, 0, 1 );
TQGridLayout *groupLayout = new TQGridLayout( mTypeGroup->layout(), 3, 2 );
groupLayout->setSpacing( spacingHint() );
diff --git a/kaddressbook/addviewdialog.h b/kaddressbook/addviewdialog.h
index 2e5707a3..15084d66 100644
--- a/kaddressbook/addviewdialog.h
+++ b/kaddressbook/addviewdialog.h
@@ -40,7 +40,7 @@ class ViewFactory;
*/
class AddViewDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/advancedcustomfields.cpp b/kaddressbook/advancedcustomfields.cpp
index d5b53479..3f4a477d 100644
--- a/kaddressbook/advancedcustomfields.cpp
+++ b/kaddressbook/advancedcustomfields.cpp
@@ -132,7 +132,7 @@ void AdvancedCustomFields::initGUI( const TQString &uiFile )
mFields = new KPIM::DesignerFields( uiFile, this );
layout->addWidget( mFields );
- connect( mFields, TQT_SIGNAL( modified() ), TQT_SLOT( setModified() ) );
+ connect( mFields, TQ_SIGNAL( modified() ), TQ_SLOT( setModified() ) );
}
TQString AdvancedCustomFields::pageIdentifier() const
diff --git a/kaddressbook/advancedcustomfields.h b/kaddressbook/advancedcustomfields.h
index 5d4b2758..f2d2afff 100644
--- a/kaddressbook/advancedcustomfields.h
+++ b/kaddressbook/advancedcustomfields.h
@@ -38,7 +38,7 @@
class AdvancedCustomFields : public KAB::ContactEditorWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/common/kabprefs.h b/kaddressbook/common/kabprefs.h
index 4ac486f7..49350be4 100644
--- a/kaddressbook/common/kabprefs.h
+++ b/kaddressbook/common/kabprefs.h
@@ -25,7 +25,7 @@
#define KABPREFS_H
#include <tqstringlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "kabprefs_base.h"
class TDEConfig;
diff --git a/kaddressbook/common/locationmap.h b/kaddressbook/common/locationmap.h
index be625f57..2ba39aa1 100644
--- a/kaddressbook/common/locationmap.h
+++ b/kaddressbook/common/locationmap.h
@@ -30,7 +30,7 @@
class LocationMap : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/contacteditorwidgetmanager.cpp b/kaddressbook/contacteditorwidgetmanager.cpp
index a88a9554..beedc3b6 100644
--- a/kaddressbook/contacteditorwidgetmanager.cpp
+++ b/kaddressbook/contacteditorwidgetmanager.cpp
@@ -118,7 +118,7 @@ void ContactEditorTabPage::addWidget( KAB::ContactEditorWidget *widget )
{
if ( widget->logicalWidth() == 2 ) {
mWidgets.prepend( widget );
- connect( widget, TQT_SIGNAL( changed() ), TQT_SIGNAL( changed() ) );
+ connect( widget, TQ_SIGNAL( changed() ), TQ_SIGNAL( changed() ) );
return;
}
@@ -133,7 +133,7 @@ void ContactEditorTabPage::addWidget( KAB::ContactEditorWidget *widget )
}
mWidgets.insert( ++it, widget );
- connect( widget, TQT_SIGNAL( changed() ), TQT_SIGNAL( changed() ) );
+ connect( widget, TQ_SIGNAL( changed() ), TQ_SIGNAL( changed() ) );
}
void ContactEditorTabPage::loadContact( TDEABC::Addressee *addr )
diff --git a/kaddressbook/contacteditorwidgetmanager.h b/kaddressbook/contacteditorwidgetmanager.h
index 27a4fc62..c4aaf5d7 100644
--- a/kaddressbook/contacteditorwidgetmanager.h
+++ b/kaddressbook/contacteditorwidgetmanager.h
@@ -36,7 +36,7 @@ class TQGridLayout;
class ContactEditorWidgetManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -66,7 +66,7 @@ class ContactEditorWidgetManager : public TQObject
class ContactEditorTabPage : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/csv-templates/CMakeLists.txt b/kaddressbook/csv-templates/CMakeLists.txt
index 983b5a6c..cb75c400 100644
--- a/kaddressbook/csv-templates/CMakeLists.txt
+++ b/kaddressbook/csv-templates/CMakeLists.txt
@@ -9,6 +9,8 @@
#
#################################################
-install( FILES
- kaddressbook.desktop outlook2000.desktop yahoo.desktop
- DESTINATION ${DATA_INSTALL_DIR}/kaddressbook/csv-templates )
+tde_create_translated_desktop(
+ SOURCE kaddressbook.desktop outlook2000.desktop yahoo.desktop
+ DESTINATION ${DATA_INSTALL_DIR}/kaddressbook/csv-templates
+ PO_DIR kaddressbook-desktops
+)
diff --git a/kaddressbook/csv-templates/kaddressbook.desktop b/kaddressbook/csv-templates/kaddressbook.desktop
index 505f3c54..99e153eb 100644
--- a/kaddressbook/csv-templates/kaddressbook.desktop
+++ b/kaddressbook/csv-templates/kaddressbook.desktop
@@ -7,34 +7,6 @@ QuoteType=0
[Misc]
Name=KAddressBook (KDE 3.1)
-Name[af]=K-adresboek (Kde 3.1)
-Name[ar]=دفتر العناوين KAddressBook (KDE 3.1(
-Name[ca]=Llibreta d'adreces (KDE 3.1)
-Name[cs]=Kniha adres (KDE 3.1)
-Name[cy]=KLlyfrCyfeiriadau (KDE 3.1)
-Name[de]=Adressbuch (KDE 3.1)
-Name[et]=KDE aadressiraamat (KDE 3.1)
-Name[fo]=KAdressubók (KDE 3.1)
-Name[hi]=केडीईएड्रेसबुक (केडीई 3.1)
-Name[hr]=KAdressBook (KDE 3.1)
-Name[hu]=Címjegyzék (KDE 3.1)
-Name[it]=Rubrica indirizzi (KDE 3.1)
-Name[mk]=КАдресар (KDE 3.1)
-Name[nb]=Adressebok (KDE 3.1)
-Name[nds]=KAdressbook (KDE 3.1)
-Name[ne]=केडीई ठेगाना पुस्तिका (केडीई ३.१)
-Name[nn]=KDE-adressebok (KDE 3.1)
-Name[nso]=KBuka ya Diaterese (KDE 3.1)
-Name[pl]=Książka adresowa (KDE 3.1)
-Name[ro]=Cartea de adrese (KDE 3.1)
-Name[ru]=Адресная книга (KDE 3.1)
-Name[se]=KDE-čujuhusgirji (KDE 3.3)
-Name[sl]=Adresar (KDE 3.1)
-Name[sv]=Kadressbok (KDE 3.1)
-Name[ta]=கேமுகவரிப்புத்தகம் (KDE 3.1)
-Name[tg]=Китоби адрес (KDE 3.1)
-Name[tr]=KDE Adres Defteri (KDE 3.1)
-Name[ven]=Bugu ya diresi ya K (KDE 3.1)
[csv column map]
0=1
diff --git a/kaddressbook/csv-templates/outlook2000.desktop b/kaddressbook/csv-templates/outlook2000.desktop
index d5c6a4b2..95312985 100644
--- a/kaddressbook/csv-templates/outlook2000.desktop
+++ b/kaddressbook/csv-templates/outlook2000.desktop
@@ -6,13 +6,6 @@ QuoteType=0
[Misc]
Name=Outlook 2000
-Name[ar]=برنامج Outlook 2000
-Name[eo]=Redmondo 2000
-Name[fa]=اوت لوک ۲۰۰۰
-Name[hi]=आउटलुक 2000
-Name[ne]=आउटलुक २०००
-Name[nso]=Bokantle 2000
-Name[ta]=அவுட்லுக் 2000
[csv column map]
0=5
diff --git a/kaddressbook/csv-templates/yahoo.desktop b/kaddressbook/csv-templates/yahoo.desktop
index 43b771c8..6a94cad8 100644
--- a/kaddressbook/csv-templates/yahoo.desktop
+++ b/kaddressbook/csv-templates/yahoo.desktop
@@ -7,59 +7,6 @@ QuoteType=0
[Misc]
Name=Yahoo! AddressBook
-Name[af]=Yahoo! Adresboek
-Name[ar]=دفتر العناوين Yahoo!
-Name[be]=Адрасная кніга Yahoo!
-Name[br]=Karned chomlec'hioù Yahoo !
-Name[bs]=Yahoo! Adresar
-Name[ca]=Llibreta d'adreces Yahoo!
-Name[cs]=Kniha adres Yahoo!
-Name[cy]=Llyfr Cyfeiriadau Yahoo!
-Name[da]=Yahoo! adressebog
-Name[de]=Yahoo!-Adressbuch
-Name[el]=Βιβλίο διευθύνσεων Yahoo!
-Name[eo]=Yahoo! Adresaro
-Name[es]=Libreta de direcciones de Yahoo!
-Name[et]=Yahoo! aadressiraamat
-Name[eu]=Yahoo! helbide-liburua
-Name[fa]=کتاب نشانی یاهو!
-Name[fi]=Yahoo-osoitekirja
-Name[fr]=Carnet d'adresses Yahoo!
-Name[fy]=Yahoo!-adresboek
-Name[he]=פנקס כתובת של Yahoo!
-Name[hi]=याहू! पता पुस्तिका
-Name[hu]=Yahoo! címjegyzék
-Name[is]=Yahoo! póstfangaskrá
-Name[it]=Rubrica indirizzi Yahoo!
-Name[ja]=Yahoo! アドレス帳
-Name[kk]=Yahoo! адрестік кітапшасы
-Name[km]=សៀវភៅ​អាសយដ្ឋាន​របស់​យ៉ាហ៊ូ
-Name[ko]=Yahoo! 주소록
-Name[lt]=Yahoo! Adresų knygutė
-Name[mk]=Адресар од Yahoo!
-Name[nb]=Yahoo! adressebok
-Name[nds]=Yahoo!-Adressbook
-Name[ne]=याहू! ठेगाना पुस्तिका
-Name[nl]=Yahoo!-adresboek
-Name[nn]=Yahoo! Adressebok
-Name[pa]=Yahoo! ਸਿਰਨਾਵਾਂ ਕਿਤਾਬ
-Name[pl]=Książka adresowa Yahoo!
-Name[pt]=Livro de Endereços do Yahoo!
-Name[pt_BR]=Livro de Endereços do Yahoo!
-Name[ru]=Адресная книга Yahoo!
-Name[se]=Yahoo! čujuhusgirji
-Name[sk]=Yahoo! kniha adries
-Name[sl]=Adresar Yahoo!
-Name[sr]=Yahoo! адресар
-Name[sr@Latn]=Yahoo! adresar
-Name[sv]=Yahoo!-adressbok
-Name[ta]=யாஹூ! முகவரிப் புத்தகம்
-Name[tg]=Китоби адресии Yahoo!
-Name[tr]=Yahoo! Adres Defteri
-Name[uk]=Адресна книга Yahoo
-Name[uz]=Yahoo! манзиллар дафтари
-Name[zh_CN]=Yahoo! 地址簿
-Name[zh_TW]=Yahoo! 通訊錄
[csv column map]
0=3
diff --git a/kaddressbook/customfieldswidget.cpp b/kaddressbook/customfieldswidget.cpp
index b267eddc..39867b0e 100644
--- a/kaddressbook/customfieldswidget.cpp
+++ b/kaddressbook/customfieldswidget.cpp
@@ -54,7 +54,7 @@ AddFieldDialog::AddFieldDialog( TQWidget *parent, const char *name )
layout->addWidget( label, 0, 0 );
mTitle = new KLineEdit( page );
- mTitle->setValidator( new TQRegExpValidator( TQRegExp( "([a-zA-Z]|\\d|-)+" ), TQT_TQOBJECT(mTitle) ) );
+ mTitle->setValidator( new TQRegExpValidator( TQRegExp( "([a-zA-Z]|\\d|-)+" ), mTitle ) );
label->setBuddy( mTitle );
layout->addWidget( mTitle, 0, 1 );
@@ -69,8 +69,8 @@ AddFieldDialog::AddFieldDialog( TQWidget *parent, const char *name )
mGlobal->setChecked( true );
layout->addMultiCellWidget( mGlobal, 2, 2, 0, 1 );
- connect( mTitle, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( nameChanged( const TQString& ) ) );
+ connect( mTitle, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( nameChanged( const TQString& ) ) );
TDEAcceleratorManager::manage( this );
@@ -151,33 +151,33 @@ void FieldWidget::addField( const TQString &identifier, const TQString &title,
if ( type == "integer" ) {
TQSpinBox *wdg = new TQSpinBox( 0, 1000, 1, this );
record.mWidget = wdg;
- connect( wdg, TQT_SIGNAL( valueChanged( int ) ),
- this, TQT_SIGNAL( changed() ) );
+ connect( wdg, TQ_SIGNAL( valueChanged( int ) ),
+ this, TQ_SIGNAL( changed() ) );
} else if ( type == "boolean" ) {
TQCheckBox *wdg = new TQCheckBox( this );
record.mWidget = wdg;
- connect( wdg, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SIGNAL( changed() ) );
+ connect( wdg, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SIGNAL( changed() ) );
} else if ( type == "date" ) {
TQDateEdit *wdg = new TQDateEdit( this );
record.mWidget = wdg;
- connect( wdg, TQT_SIGNAL( valueChanged( const TQDate& ) ),
- this, TQT_SIGNAL( changed() ) );
+ connect( wdg, TQ_SIGNAL( valueChanged( const TQDate& ) ),
+ this, TQ_SIGNAL( changed() ) );
} else if ( type == "time" ) {
TQTimeEdit *wdg = new TQTimeEdit( this );
record.mWidget = wdg;
- connect( wdg, TQT_SIGNAL( valueChanged( const TQTime& ) ),
- this, TQT_SIGNAL( changed() ) );
+ connect( wdg, TQ_SIGNAL( valueChanged( const TQTime& ) ),
+ this, TQ_SIGNAL( changed() ) );
} else if ( type == "datetime" ) {
TQDateTimeEdit *wdg = new TQDateTimeEdit( this );
record.mWidget = wdg;
- connect( wdg, TQT_SIGNAL( valueChanged( const TQDateTime& ) ),
- this, TQT_SIGNAL( changed() ) );
+ connect( wdg, TQ_SIGNAL( valueChanged( const TQDateTime& ) ),
+ this, TQ_SIGNAL( changed() ) );
} else if ( type == "text" ) {
TQLineEdit *wdg = new TQLineEdit( this );
record.mWidget = wdg;
- connect( wdg, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SIGNAL( changed() ) );
+ connect( wdg, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SIGNAL( changed() ) );
}
record.mLabel->show();
@@ -227,22 +227,22 @@ void FieldWidget::clearFields()
{
FieldRecordList::ConstIterator fieldIt;
for ( fieldIt = mFieldList.begin(); fieldIt != mFieldList.end(); ++fieldIt ) {
- if ( (*fieldIt).mWidget->isA( TQLINEEDIT_OBJECT_NAME_STRING ) ) {
+ if ( (*fieldIt).mWidget->isA( "TQLineEdit" ) ) {
TQLineEdit *wdg = static_cast<TQLineEdit*>( (*fieldIt).mWidget );
wdg->setText( TQString() );
- } else if ( (*fieldIt).mWidget->isA( TQSPINBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( (*fieldIt).mWidget->isA( "TQSpinBox" ) ) {
TQSpinBox *wdg = static_cast<TQSpinBox*>( (*fieldIt).mWidget );
wdg->setValue( 0 );
- } else if ( (*fieldIt).mWidget->isA( TQCHECKBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( (*fieldIt).mWidget->isA( "TQCheckBox" ) ) {
TQCheckBox *wdg = static_cast<TQCheckBox*>( (*fieldIt).mWidget );
wdg->setChecked( true );
- } else if ( (*fieldIt).mWidget->isA( TQDATEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( (*fieldIt).mWidget->isA( "TQDateEdit" ) ) {
TQDateEdit *wdg = static_cast<TQDateEdit*>( (*fieldIt).mWidget );
wdg->setDate( TQDate::currentDate() );
- } else if ( (*fieldIt).mWidget->isA( TQTIMEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( (*fieldIt).mWidget->isA( "TQTimeEdit" ) ) {
TQTimeEdit *wdg = static_cast<TQTimeEdit*>( (*fieldIt).mWidget );
wdg->setTime( TQTime::currentTime() );
- } else if ( (*fieldIt).mWidget->isA( TQDATETIMEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( (*fieldIt).mWidget->isA( "TQDateTimeEdit" ) ) {
TQDateTimeEdit *wdg = static_cast<TQDateTimeEdit*>( (*fieldIt).mWidget );
wdg->setDateTime( TQDateTime::currentDateTime() );
}
@@ -265,24 +265,24 @@ void FieldWidget::loadContact( TDEABC::Addressee *addr )
FieldRecordList::ConstIterator fieldIt;
for ( fieldIt = mFieldList.begin(); fieldIt != mFieldList.end(); ++fieldIt ) {
if ( (*fieldIt).mIdentifier == name ) {
- if ( (*fieldIt).mWidget->isA( TQLINEEDIT_OBJECT_NAME_STRING ) ) {
+ if ( (*fieldIt).mWidget->isA( "TQLineEdit" ) ) {
TQLineEdit *wdg = static_cast<TQLineEdit*>( (*fieldIt).mWidget );
wdg->setText( value );
- } else if ( (*fieldIt).mWidget->isA( TQSPINBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( (*fieldIt).mWidget->isA( "TQSpinBox" ) ) {
TQSpinBox *wdg = static_cast<TQSpinBox*>( (*fieldIt).mWidget );
wdg->setValue( value.toInt() );
- } else if ( (*fieldIt).mWidget->isA( TQCHECKBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( (*fieldIt).mWidget->isA( "TQCheckBox" ) ) {
TQCheckBox *wdg = static_cast<TQCheckBox*>( (*fieldIt).mWidget );
wdg->setChecked( value == "true" || value == "1" );
- } else if ( (*fieldIt).mWidget->isA( TQDATEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( (*fieldIt).mWidget->isA( "TQDateEdit" ) ) {
TQDateEdit *wdg = static_cast<TQDateEdit*>( (*fieldIt).mWidget );
- wdg->setDate( TQDate::fromString( value, Qt::ISODate ) );
- } else if ( (*fieldIt).mWidget->isA( TQTIMEEDIT_OBJECT_NAME_STRING ) ) {
+ wdg->setDate( TQDate::fromString( value, TQt::ISODate ) );
+ } else if ( (*fieldIt).mWidget->isA( "TQTimeEdit" ) ) {
TQTimeEdit *wdg = static_cast<TQTimeEdit*>( (*fieldIt).mWidget );
- wdg->setTime( TQTime::fromString( value, Qt::ISODate ) );
- } else if ( (*fieldIt).mWidget->isA( TQDATETIMEEDIT_OBJECT_NAME_STRING ) ) {
+ wdg->setTime( TQTime::fromString( value, TQt::ISODate ) );
+ } else if ( (*fieldIt).mWidget->isA( "TQDateTimeEdit" ) ) {
TQDateTimeEdit *wdg = static_cast<TQDateTimeEdit*>( (*fieldIt).mWidget );
- wdg->setDateTime( TQDateTime::fromString( value, Qt::ISODate ) );
+ wdg->setDateTime( TQDateTime::fromString( value, TQt::ISODate ) );
}
}
}
@@ -294,22 +294,22 @@ void FieldWidget::setReadOnly( bool readOnly )
FieldRecordList::ConstIterator it;
for ( it = mFieldList.begin(); it != mFieldList.end(); ++it ) {
TQString value;
- if ( (*it).mWidget->isA( TQLINEEDIT_OBJECT_NAME_STRING ) ) {
+ if ( (*it).mWidget->isA( "TQLineEdit" ) ) {
TQLineEdit *wdg = static_cast<TQLineEdit*>( (*it).mWidget );
wdg->setReadOnly(readOnly);
- } else if ( (*it).mWidget->isA( TQSPINBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( (*it).mWidget->isA( "TQSpinBox" ) ) {
TQSpinBox *wdg = static_cast<TQSpinBox*>( (*it).mWidget );
wdg->setEnabled( !readOnly );
- } else if ( (*it).mWidget->isA( TQCHECKBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( (*it).mWidget->isA( "TQCheckBox" ) ) {
TQCheckBox *wdg = static_cast<TQCheckBox*>( (*it).mWidget );
wdg->setEnabled( !readOnly );
- } else if ( (*it).mWidget->isA( TQDATEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( (*it).mWidget->isA( "TQDateEdit" ) ) {
TQDateEdit *wdg = static_cast<TQDateEdit*>( (*it).mWidget );
wdg->setEnabled( !readOnly );
- } else if ( (*it).mWidget->isA( TQTIMEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( (*it).mWidget->isA( "TQTimeEdit" ) ) {
TQTimeEdit *wdg = static_cast<TQTimeEdit*>( (*it).mWidget );
wdg->setEnabled( !readOnly );
- } else if ( (*it).mWidget->isA( TQDATETIMEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( (*it).mWidget->isA( "TQDateTimeEdit" ) ) {
TQDateTimeEdit *wdg = static_cast<TQDateTimeEdit*>( (*it).mWidget );
wdg->setEnabled( !readOnly );
}
@@ -321,24 +321,24 @@ void FieldWidget::storeContact( TDEABC::Addressee *addr )
FieldRecordList::ConstIterator it;
for ( it = mFieldList.begin(); it != mFieldList.end(); ++it ) {
TQString value;
- if ( (*it).mWidget->isA( TQLINEEDIT_OBJECT_NAME_STRING ) ) {
+ if ( (*it).mWidget->isA( "TQLineEdit" ) ) {
TQLineEdit *wdg = static_cast<TQLineEdit*>( (*it).mWidget );
value = wdg->text();
- } else if ( (*it).mWidget->isA( TQSPINBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( (*it).mWidget->isA( "TQSpinBox" ) ) {
TQSpinBox *wdg = static_cast<TQSpinBox*>( (*it).mWidget );
value = TQString::number( wdg->value() );
- } else if ( (*it).mWidget->isA( TQCHECKBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( (*it).mWidget->isA( "TQCheckBox" ) ) {
TQCheckBox *wdg = static_cast<TQCheckBox*>( (*it).mWidget );
value = ( wdg->isChecked() ? "true" : "false" );
- } else if ( (*it).mWidget->isA( TQDATEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( (*it).mWidget->isA( "TQDateEdit" ) ) {
TQDateEdit *wdg = static_cast<TQDateEdit*>( (*it).mWidget );
- value = wdg->date().toString( Qt::ISODate );
- } else if ( (*it).mWidget->isA( TQTIMEEDIT_OBJECT_NAME_STRING ) ) {
+ value = wdg->date().toString( TQt::ISODate );
+ } else if ( (*it).mWidget->isA( "TQTimeEdit" ) ) {
TQTimeEdit *wdg = static_cast<TQTimeEdit*>( (*it).mWidget );
- value = wdg->time().toString( Qt::ISODate );
- } else if ( (*it).mWidget->isA( TQDATETIMEEDIT_OBJECT_NAME_STRING ) ) {
+ value = wdg->time().toString( TQt::ISODate );
+ } else if ( (*it).mWidget->isA( "TQDateTimeEdit" ) ) {
TQDateTimeEdit *wdg = static_cast<TQDateTimeEdit*>( (*it).mWidget );
- value = wdg->dateTime().toString( Qt::ISODate );
+ value = wdg->dateTime().toString( TQt::ISODate );
}
if ( value.isEmpty() )
@@ -382,10 +382,10 @@ CustomFieldsWidget::CustomFieldsWidget( TDEABC::AddressBook *ab,
{
initGUI();
- connect( mAddButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( addField() ) );
- connect( mRemoveButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( removeField() ) );
+ connect( mAddButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( addField() ) );
+ connect( mRemoveButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( removeField() ) );
- connect( mFieldWidget, TQT_SIGNAL( changed() ), this, TQT_SLOT( setModified() ) );
+ connect( mFieldWidget, TQ_SIGNAL( changed() ), this, TQ_SLOT( setModified() ) );
}
void CustomFieldsWidget::loadContact( TDEABC::Addressee *addr )
@@ -523,17 +523,17 @@ TQStringList CustomFieldsWidget::marshallFields( bool global ) const
retval.append( (*it).mTitle );
TQString type = "text";
- if ( (*it).mWidget->isA( TQSPINBOX_OBJECT_NAME_STRING ) ) {
+ if ( (*it).mWidget->isA( "TQSpinBox" ) ) {
type = "integer";
- } else if ( (*it).mWidget->isA( TQCHECKBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( (*it).mWidget->isA( "TQCheckBox" ) ) {
type = "boolean";
- } else if ( (*it).mWidget->isA( TQDATEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( (*it).mWidget->isA( "TQDateEdit" ) ) {
type = "date";
- } else if ( (*it).mWidget->isA( TQTIMEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( (*it).mWidget->isA( "TQTimeEdit" ) ) {
type = "time";
- } else if ( (*it).mWidget->isA( TQDATETIMEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( (*it).mWidget->isA( "TQDateTimeEdit" ) ) {
type = "datetime";
- } else if ( (*it).mWidget->isA( TQLINEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( (*it).mWidget->isA( "TQLineEdit" ) ) {
type = "text";
}
diff --git a/kaddressbook/customfieldswidget.h b/kaddressbook/customfieldswidget.h
index e584833a..da8def76 100644
--- a/kaddressbook/customfieldswidget.h
+++ b/kaddressbook/customfieldswidget.h
@@ -60,7 +60,7 @@ typedef TQValueList<FieldRecord> FieldRecordList;
class AddFieldDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -85,7 +85,7 @@ class AddFieldDialog : public KDialogBase
class FieldWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -120,7 +120,7 @@ class FieldWidget : public TQWidget
class CustomFieldsWidget : public KAB::ContactEditorWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/dcopaddressbook.desktop b/kaddressbook/dcopaddressbook.desktop
index 83540e61..64bd6434 100644
--- a/kaddressbook/dcopaddressbook.desktop
+++ b/kaddressbook/dcopaddressbook.desktop
@@ -1,58 +1,5 @@
[Desktop Entry]
Type=ServiceType
X-TDE-ServiceType=DCOP/AddressBook
+
Comment=Address Book with a DCOP interface
-Comment[af]=Adres boek met 'n DCOP koppelvlak
-Comment[ar]=دفتر عناوين مع واجهة DCOP
-Comment[be]=Адрасная кніга з DCOP інтэрфэйсам
-Comment[bg]=Адресник с интерфейс DCOP
-Comment[bs]=Adresar sa DCOP interfejsom
-Comment[ca]=Llibreta d'adreces amb una interfície DCOP
-Comment[cs]=Kniha adres s DCOP rozhraním
-Comment[cy]=Llyfr Cyfeiriadau gyda Rhyngwyneb DCOP
-Comment[da]=Adressebog med en DCOP-grænseflade
-Comment[de]=Adressbuch mit DCOP-Schnittstelle
-Comment[el]=Βιβλίο διευθύνσεων με ένα περιβάλλον χρήσης DCOP
-Comment[eo]=Adresaro kun DCOP-interfaco
-Comment[es]=Libreta de direcciones con un interfaz DCOP
-Comment[et]=Aadressiraamat DCOP-liidesega
-Comment[eu]=DCOP interfazedun helbide-liburua
-Comment[fa]=کتاب نشانی با یک واسط DCOP
-Comment[fi]=Osoitekirja DCOP-rajapinnalla
-Comment[fr]=Carnet d'adresses avec une interface DCOP
-Comment[fy]=Adresboek mei DCOP-ynterface
-Comment[gl]=Libro de enderezos con interface DCOP
-Comment[he]=פנקס כתובת עם ממשק DCOP
-Comment[hi]=डीकॉप इंटरफेस सहित एक पता पुस्तिका
-Comment[hu]=Címjegyzék DCOP-felülettel
-Comment[is]=Vistfangaskrá með DCOP tengingu
-Comment[it]=Rubrica indirizzi con un'interfaccia DCOP
-Comment[ja]=DCOP インターフェースを持つアドレス帳
-Comment[kk]=DCOP интерфейсті адрестік кітапшасы
-Comment[km]=សៀវភៅ​អាសយដ្ឋាន​ដែល​មាន​ចំណុច​ប្រទាក់ DCOP
-Comment[ko]=DCOP 인터페이스를 사용하는 주소록
-Comment[lt]=Adresų knygelė su DCOP sąsaja
-Comment[mk]=Адресар со DCOP-интерфејс
-Comment[nb]=Adressebok med DCOP-grensesnitt
-Comment[nds]=Adressbook mit DCOP-Koppelsteed
-Comment[ne]=डीसीओपी ईन्टरफेससँगको ठेगाना पुस्तिका
-Comment[nl]=Adresboek met DCOP-interface
-Comment[nn]=Adressebok med DCOP-grensesnitt
-Comment[pl]=Książka adresowa z interfejsem DCOP
-Comment[pt]=Livro de Endereços com uma Interface de DCOP
-Comment[pt_BR]=Livro de Endereços com uma interface DCOP
-Comment[ro]=Carte de adrese cu interfaţă DCOP
-Comment[ru]=Адресная книга с интерфейсом DCOP
-Comment[se]=Čujuhusgirji mas lea DCOP-lákta
-Comment[sk]=Kniha adries s DCOP rozhraním
-Comment[sl]=Adresar z vmesnikom DCOP
-Comment[sr]=Адресар са DCOP интерфејсом
-Comment[sr@Latn]=Adresar sa DCOP interfejsom
-Comment[sv]=Adressbok med DCOP-gränssnitt
-Comment[ta]=முகவரிப்புத்தகத்துடன் DCOP முகப்பு
-Comment[tg]=Китоби адрес бо интерфейси DCOP
-Comment[tr]=DCOP Arayüzü Olan Adres Defteri
-Comment[uk]=Адресна книга з інтерфейсом DCOP
-Comment[uz]=DCOP интерфейсли манзиллар дафтари
-Comment[zh_CN]=具有 DCOP 接口的地址簿
-Comment[zh_TW]=有 DCOP 介面的通訊錄
diff --git a/kaddressbook/distributionlisteditor.cpp b/kaddressbook/distributionlisteditor.cpp
index 3f7b7353..e0711b64 100644
--- a/kaddressbook/distributionlisteditor.cpp
+++ b/kaddressbook/distributionlisteditor.cpp
@@ -70,14 +70,14 @@ KPIM::DistributionListEditor::Line::Line( TDEABC::AddressBook* book, TQWidget* p
TQBoxLayout* layout = new TQHBoxLayout( this );
layout->setSpacing( KDialog::spacingHint() );
m_lineEdit = new KPIM::DistributionListEditor::LineEdit( this );
- connect( m_lineEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( textChanged( const TQString& ) ) );
+ connect( m_lineEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( textChanged( const TQString& ) ) );
layout->addWidget( m_lineEdit );
m_clearButton = new TQToolButton( this );
m_clearButton->setIconSet( TDEApplication::reverseLayout() ? SmallIconSet("locationbar_erase") : SmallIconSet( "clear_left" ) );
m_clearButton->setEnabled( false );
layout->addWidget( m_clearButton );
- connect( m_clearButton, TQT_SIGNAL( clicked() ), m_lineEdit, TQT_SLOT( clear() ) );
+ connect( m_clearButton, TQ_SIGNAL( clicked() ), m_lineEdit, TQ_SLOT( clear() ) );
}
void KPIM::DistributionListEditor::Line::textChanged( const TQString& text )
@@ -159,9 +159,9 @@ KPIM::DistributionListEditor::EditorWidget::EditorWidget( TDEABC::AddressBook* b
d->addressBook = book;
Q_ASSERT( d->addressBook );
d->lastLineId = 0;
- d->mapper = new TQSignalMapper( TQT_TQOBJECT(this) );
- connect( d->mapper, TQT_SIGNAL( mapped( int ) ),
- this, TQT_SLOT( lineTextChanged( int ) ) );
+ d->mapper = new TQSignalMapper( this );
+ connect( d->mapper, TQ_SIGNAL( mapped( int ) ),
+ this, TQ_SLOT( lineTextChanged( int ) ) );
setCaption( i18n( "Edit Distribution List" ) );
TQWidget* main = new TQWidget( this );
TQVBoxLayout* mainLayout = new TQVBoxLayout( main );
@@ -248,9 +248,9 @@ KPIM::DistributionListEditor::Line* KPIM::DistributionListEditor::EditorWidgetPr
line->setEntry( entry );
addresseeLayout->addWidget( line );
addressees.append( line );
- TQObject::connect( line, TQT_SIGNAL( textChanged() ),
- mapper, TQT_SLOT( map() ) );
- mapper->setMapping( TQT_TQOBJECT(line), ++lastLineId );
+ TQObject::connect( line, TQ_SIGNAL( textChanged() ),
+ mapper, TQ_SLOT( map() ) );
+ mapper->setMapping( line, ++lastLineId );
line->setShown( true );
return line;
}
diff --git a/kaddressbook/distributionlisteditor.h b/kaddressbook/distributionlisteditor.h
index d1ec2e11..986b92c2 100644
--- a/kaddressbook/distributionlisteditor.h
+++ b/kaddressbook/distributionlisteditor.h
@@ -38,7 +38,7 @@ namespace DistributionListEditor {
class EditorWidgetPrivate;
class EditorWidget : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit EditorWidget( TDEABC::AddressBook* book, TQWidget* parent = 0 );
diff --git a/kaddressbook/distributionlisteditor_p.h b/kaddressbook/distributionlisteditor_p.h
index 9d3ed755..45670f92 100644
--- a/kaddressbook/distributionlisteditor_p.h
+++ b/kaddressbook/distributionlisteditor_p.h
@@ -41,7 +41,7 @@ namespace DistributionListEditor {
class LineEdit : public KPIM::AddresseeLineEdit
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit LineEdit( TQWidget* parent = 0 );
@@ -50,7 +50,7 @@ public:
class Line : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit Line( TDEABC::AddressBook* book, TQWidget* parent = 0 );
diff --git a/kaddressbook/distributionlistentryview.cpp b/kaddressbook/distributionlistentryview.cpp
index b09d8c97..811e5167 100644
--- a/kaddressbook/distributionlistentryview.cpp
+++ b/kaddressbook/distributionlistentryview.cpp
@@ -49,8 +49,8 @@ KAB::DistributionListEntryView::DistributionListEntryView( KAB::Core* core, TQWi
m_distListLabel = new KURLLabel( this );
distLabel->setBuddy( m_distListLabel );
- connect( m_distListLabel, TQT_SIGNAL( leftClickedURL( const TQString& ) ),
- this, TQT_SIGNAL( distributionListClicked( const TQString& ) ) );
+ connect( m_distListLabel, TQ_SIGNAL( leftClickedURL( const TQString& ) ),
+ this, TQ_SIGNAL( distributionListClicked( const TQString& ) ) );
distLayout->addWidget( m_distListLabel );
distLayout->addStretch();
m_mainLayout->addItem( distLayout );
@@ -129,8 +129,8 @@ void KAB::DistributionListEntryView::setEntry( const KPIM::DistributionList& lis
button->setChecked( true );
button->setShown( true );
}
- connect( m_emailGroup, TQT_SIGNAL( clicked( int ) ),
- this, TQT_SLOT( emailButtonClicked( int ) ) );
+ connect( m_emailGroup, TQ_SIGNAL( clicked( int ) ),
+ this, TQ_SLOT( emailButtonClicked( int ) ) );
m_radioLayout->addWidget( m_emailGroup, 0, 0 );
m_emailGroup->setShown( true );
m_mainLayout->invalidate();
diff --git a/kaddressbook/distributionlistentryview.h b/kaddressbook/distributionlistentryview.h
index 6bd9d2c3..13a9a852 100644
--- a/kaddressbook/distributionlistentryview.h
+++ b/kaddressbook/distributionlistentryview.h
@@ -23,7 +23,7 @@ class Core;
class DistributionListEntryView : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/distributionlistpicker.cpp b/kaddressbook/distributionlistpicker.cpp
index 272a6200..b7295ad8 100644
--- a/kaddressbook/distributionlistpicker.cpp
+++ b/kaddressbook/distributionlistpicker.cpp
@@ -54,10 +54,10 @@ KPIM::DistributionListPickerDialog::DistributionListPickerDialog( TDEABC::Addres
layout->addWidget( m_label, 0, 0 );
m_listBox = new TDEListBox( main );
layout->addWidget( m_listBox, 1, 0 );
- connect( m_listBox, TQT_SIGNAL( highlighted( const TQString& ) ),
- this, TQT_SLOT( entrySelected( const TQString& ) ) );
- connect( m_listBox, TQT_SIGNAL( selected( const TQString& ) ),
- this, TQT_SLOT( entrySelected( const TQString& ) ) );
+ connect( m_listBox, TQ_SIGNAL( highlighted( const TQString& ) ),
+ this, TQ_SLOT( entrySelected( const TQString& ) ) );
+ connect( m_listBox, TQ_SIGNAL( selected( const TQString& ) ),
+ this, TQ_SLOT( entrySelected( const TQString& ) ) );
setMainWidget( main );
#ifdef TDEPIM_NEW_DISTRLISTS
typedef TQValueList<KPIM::DistributionList> DistListList;
diff --git a/kaddressbook/distributionlistpicker.h b/kaddressbook/distributionlistpicker.h
index bc4c0f65..9a2d9f7d 100644
--- a/kaddressbook/distributionlistpicker.h
+++ b/kaddressbook/distributionlistpicker.h
@@ -37,7 +37,7 @@ namespace KPIM {
class DistributionListPickerDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit DistributionListPickerDialog( TDEABC::AddressBook* book, TQWidget* parent = 0 );
diff --git a/kaddressbook/editors/CMakeLists.txt b/kaddressbook/editors/CMakeLists.txt
index a2b8c898..09f91332 100644
--- a/kaddressbook/editors/CMakeLists.txt
+++ b/kaddressbook/editors/CMakeLists.txt
@@ -32,8 +32,17 @@ link_directories(
##### other data ################################
-install( FILES cryptosettings.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kaddressbook )
-install( FILES kaddressbookimprotocol.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE cryptosettings.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/kaddressbook
+ PO_DIR kaddressbook-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE kaddressbookimprotocol.desktop
+ DESTINATION ${SERVICETYPES_INSTALL_DIR}
+ PO_DIR kaddressbook-desktops
+)
##### kabim (static) ############################
diff --git a/kaddressbook/editors/cryptosettings.desktop b/kaddressbook/editors/cryptosettings.desktop
index cb7270c2..45feb32c 100644
--- a/kaddressbook/editors/cryptosettings.desktop
+++ b/kaddressbook/editors/cryptosettings.desktop
@@ -1,55 +1,7 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_cryptosettings
-Name=Crypto Preferences
-Name[af]=Kripto Voorkeure
-Name[be]=Перавагі крыптаграфіі
-Name[bg]=Шифроване
-Name[bs]=Postavke kriptografije
-Name[ca]=Preferències de criptografia
-Name[cs]=Nastavení šifrování
-Name[da]=Krypto-indstillinger
-Name[de]=Kryptographie-Einstellungen
-Name[el]=Προτιμήσεις κρυπτογραφίας
-Name[eo]=Agordoj pri Ĉifrado
-Name[es]=Preferencias de cifrado
-Name[et]=Krüptoseadistused
-Name[eu]=Kriptografia hobespenak
-Name[fa]=تنظیمات مخفی
-Name[fi]=Salauksen asetukset
-Name[fr]=Préférences de chiffrement
-Name[fy]=Fersiferingynstellings
-Name[gl]=Preferencias de Cifraxe
-Name[he]=מאפייני הצפנה
-Name[hu]=Titkosítási beállítások
-Name[is]=Stillingar dulritunar
-Name[it]=Preferenze crittografia
-Name[ja]=暗号の設定
-Name[kk]=Шифрлау параметрлері
-Name[km]=ចំណង់​ចំណូល​ចិត្ត Crypto
-Name[ko]=암호화 설정
-Name[lt]=Šifravimo pasirinkimai
-Name[ms]=Keutamaan Kripto
-Name[nb]=Krypteringsinnstillinger
-Name[nds]=Verslöteln-Instellen
-Name[ne]=गुप्तिकरण प्राथमिकता
-Name[nl]=Versleutelingsinstellingen
-Name[nn]=Krypteringsinnstillinger
-Name[pl]=Ustawienia kryptograficzne
-Name[pt]=Preferências de Encriptação
-Name[pt_BR]=Configurações de Criptografia
-Name[ru]=Настройки шифрования
-Name[se]=Krypterenheivehusat
-Name[sk]=Nastavenie šifrovania
-Name[sl]=Lastnosti šifriranja
-Name[sr]=Криптографска подешавања
-Name[sr@Latn]=Kriptografska podešavanja
-Name[sv]=Krypteringsinställningar
-Name[ta]= க்ரிப்டோ முன்னுரிமைகள்
-Name[tg]=Танзимоти рамзгузорӣ
-Name[tr]=Şifreleme Özellikleri
-Name[uk]=Параметри шифрування
-Name[zh_CN]=加密首选项
-Name[zh_TW]=加密設定
Type=Service
+X-TDE-Library=libkaddrbk_cryptosettings
X-TDE-ServiceTypes=KAddressBook/ContactEditorWidget
X-TDE-KAddressBook-CEWPluginVersion=1
+
+Name=Crypto Preferences
diff --git a/kaddressbook/editors/cryptowidget.cpp b/kaddressbook/editors/cryptowidget.cpp
index fc7bef17..f7849d7c 100644
--- a/kaddressbook/editors/cryptowidget.cpp
+++ b/kaddressbook/editors/cryptowidget.cpp
@@ -83,7 +83,7 @@ CryptoWidget::CryptoWidget( TDEABC::AddressBook *ab, TQWidget *parent, const cha
for ( uint i = 0 ; i < NumberOfProtocols ; ++i ) {
Kleo::CryptoMessageFormat f = static_cast<Kleo::CryptoMessageFormat>( msgFormat );
mProtocolCB[ i ] = new TQCheckBox( Kleo::cryptoMessageFormatToLabel( f ), protGB );
- connect( mProtocolCB[i], TQT_SIGNAL( clicked() ), this, TQT_SLOT( setModified() ) );
+ connect( mProtocolCB[i], TQ_SIGNAL( clicked() ), this, TQ_SLOT( setModified() ) );
// Iterating over a bitfield means *2 every time
msgFormat *= 2;
@@ -126,13 +126,13 @@ CryptoWidget::CryptoWidget( TDEABC::AddressBook *ab, TQWidget *parent, const cha
static_cast<Kleo::EncryptionPreference>( i ) ) );
// Emit "changed()" signal
- connect( mSignPref, TQT_SIGNAL( activated(int) ), this, TQT_SLOT( setModified() ) );
- connect( mCryptPref, TQT_SIGNAL( activated(int) ), this, TQT_SLOT( setModified() ) );
+ connect( mSignPref, TQ_SIGNAL( activated(int) ), this, TQ_SLOT( setModified() ) );
+ connect( mCryptPref, TQ_SIGNAL( activated(int) ), this, TQ_SLOT( setModified() ) );
// Not optimal, but KeyRequester doesn't emit any signals when the key changes
- connect( mPgpKey->eraseButton(), TQT_SIGNAL( clicked() ), this, TQT_SLOT( setModified() ) );
- connect( mPgpKey->dialogButton(), TQT_SIGNAL( clicked() ), this, TQT_SLOT( setModified() ) );
- connect( mSmimeCert->eraseButton(), TQT_SIGNAL( clicked() ), this, TQT_SLOT( setModified() ) );
- connect( mSmimeCert->dialogButton(), TQT_SIGNAL( clicked() ), this, TQT_SLOT( setModified() ) );
+ connect( mPgpKey->eraseButton(), TQ_SIGNAL( clicked() ), this, TQ_SLOT( setModified() ) );
+ connect( mPgpKey->dialogButton(), TQ_SIGNAL( clicked() ), this, TQ_SLOT( setModified() ) );
+ connect( mSmimeCert->eraseButton(), TQ_SIGNAL( clicked() ), this, TQ_SLOT( setModified() ) );
+ connect( mSmimeCert->dialogButton(), TQ_SIGNAL( clicked() ), this, TQ_SLOT( setModified() ) );
}
CryptoWidget::~CryptoWidget()
diff --git a/kaddressbook/editors/cryptowidget.h b/kaddressbook/editors/cryptowidget.h
index 1d8794ba..101b0034 100644
--- a/kaddressbook/editors/cryptowidget.h
+++ b/kaddressbook/editors/cryptowidget.h
@@ -35,7 +35,7 @@ class TQCheckBox;
class CryptoWidget : public KAB::ContactEditorWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/editors/imaddressbase.ui b/kaddressbook/editors/imaddressbase.ui
index 77988764..f87bdff9 100644
--- a/kaddressbook/editors/imaddressbase.ui
+++ b/kaddressbook/editors/imaddressbase.ui
@@ -81,9 +81,9 @@
<tabstop>cmbProtocol</tabstop>
<tabstop>edtAddress</tabstop>
</tabstops>
-<Q_SLOTS>
+<slots>
<slot>slotProtocolChanged( const TQString &amp; )</slot>
<slot>slotProtocolChanged()</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
</UI>
diff --git a/kaddressbook/editors/imaddresseditor.desktop b/kaddressbook/editors/imaddresseditor.desktop
index 47f0f56d..b2a4a2b8 100644
--- a/kaddressbook/editors/imaddresseditor.desktop
+++ b/kaddressbook/editors/imaddresseditor.desktop
@@ -1,101 +1,9 @@
[Desktop Entry]
Type=Service
-Name=Instant Messaging
-Name[af]=Kits bootskap
-Name[bg]=Мигновени съобщения
-Name[br]=Postelerezh a-benn-kaer
-Name[bs]=Instant poruke
-Name[ca]=Missatgeria instantània
-Name[cs]=Komunikátor
-Name[el]=Στιγμιαίο μήνυμα
-Name[eo]=Rapidmesaĝilo
-Name[es]=Mensajería instantánea
-Name[et]=Kiirsuhtlus
-Name[eu]=Berehalako mezularitza
-Name[fa]=پیام‌دهی فوری
-Name[fi]=Pikaviestintä
-Name[fr]=Messagerie instantanée
-Name[gl]=Mensaxería Instantánea
-Name[he]=מסרים מיידיים
-Name[hu]=Azonnali üzenetküldés (IM)
-Name[is]=Skilaboðaforrit
-Name[it]=Messaggistica istantanea
-Name[ja]=インスタントメッセージ
-Name[kk]=Лезде хабарласу
-Name[km]=ផ្ញើ​សារ​បន្ទាន់
-Name[ko]=인스턴트 페시징
-Name[lt]=Momentinės žinutės
-Name[ms]=Penghantaran Mesej Segera
-Name[nb]=Lynmelding
-Name[nds]=Kortnarichten-Maker
-Name[ne]=संदेशन दृश्टान्त
-Name[nn]=Lynmelding
-Name[pl]=Komunikacja internetowa
-Name[pt]=Mensagens Instantâneas
-Name[pt_BR]=Mensagem Instantâneo
-Name[ru]=Службы обмена сообщениями
-Name[se]=Šleađgadieđáhus
-Name[sk]=Rozhovor
-Name[sl]=Takojšno sporočanje
-Name[sr]=Тренутне поруке
-Name[sr@Latn]=Trenutne poruke
-Name[sv]=Direktmeddelanden
-Name[ta]=உடனடி செய்தி பரிமாற்றம்
-Name[tg]=Хизматгоҳи мубодилаи иттилоот
-Name[tr]=Hızlı Mesajlaşma
-Name[uk]=Миттєвий зв'язок
-Name[uz]=Хабар алмашиш
-Name[zh_CN]=即时通讯
-Name[zh_TW]=即時通訊
-Comment=Instant Messaging Address Editor
-Comment[af]=Kits boodskap adres redigeerder
-Comment[bg]=Редактор на адреси за мигновените съобщения
-Comment[bs]=Editor adresa za instant poruke
-Comment[ca]=Editor d'adreces de missatgeria instantània
-Comment[cs]=Editor adres komunikátorů
-Comment[da]=Instant Messaging adresseeditor
-Comment[de]=Editor für Instant Messaging-Adressen
-Comment[el]=Επεξεργαστής διευθύνσεων στιγμιαίων μηνυμάτων
-Comment[eo]=Rapidmesaĝila Adres-Redaktilo
-Comment[es]=Editor de direcciones de mensajería instantánea
-Comment[et]=Kiirsuhtluse aadresside redaktor
-Comment[eu]=Berehalako mezularitza helbide editorea
-Comment[fa]=ویرایشگر نشانی پیام‌دهی فوری
-Comment[fi]=Pikaviestinnän osoitteet
-Comment[fr]=Éditeur d'adresses de messagerie instantanée
-Comment[fy]=Instant Messaging Adresbewurker
-Comment[gl]=Editor de Enderezos de Mensaxería Instantánea
-Comment[he]=עורך כתובות מסרים מידיים
-Comment[hu]=IM-címszerkesztő
-Comment[is]=Vistfangaritill fyrir skilaboðaforrit
-Comment[it]=Editor degli indirizzi per messaggi istantanei
-Comment[ja]=インスタントメッセージのアドレスを編集
-Comment[kk]=Лезде хабарласу адрестер өңдегіші
-Comment[km]=កម្មវិធី​និពន្ធ​អាសយដ្ឋាន​ដើម្បី​ផ្ញើ​សារ​បន្ទាន់
-Comment[ko]=인스턴트 메시징 주소 편집기
-Comment[lt]=Momentinių žinučių adresų redaktorius
-Comment[ms]=Pengedit Alamat Penghantaran Mesej Segera
-Comment[nb]=Adresse-redigerer for lynmelding
-Comment[nds]=Editor för Kortnarichten-Adressen
-Comment[ne]=दृष्टान्त संदेशन ठेगाना सम्पादक
-Comment[nl]=Instant Messaging Adresbewerker
-Comment[nn]=Adresseredigering for lynmelding
-Comment[pl]=Edytor adresów komunikatorów internetowych
-Comment[pt]=Editor de Endereços do Mensageiro Instantâneo
-Comment[pt_BR]=Editor de Endereços do Mensageiro Instantâneo
-Comment[ru]=Редактор контактов служб обмена сообщениями
-Comment[se]=Šleađgadieđáhusaid čujuhusdoaimmaheaddji
-Comment[sk]=Editor adries pre Instant Messaging
-Comment[sl]=Urejevalnik naslovov takojšnega sporočanja
-Comment[sr]=Едитор адреса тренутних порука
-Comment[sr@Latn]=Editor adresa trenutnih poruka
-Comment[sv]=Adresseditor för direktmeddelanden
-Comment[ta]= உடனடி செய்தி பரிமாற்றத்தின் முகவரி தொகுப்பான்
-Comment[tg]=Муҳаррири алоқоти хизматгоҳҳои мубодилаи иттилоот
-Comment[tr]=Hızlı Mesajlaşma Adres Düzenleyicisi
-Comment[uk]=Редактор адрес миттєвого зв'язку
-Comment[zh_CN]=即时通讯地址编辑器
-Comment[zh_TW]=即時通訊位址編輯器
X-TDE-ServiceTypes=KAddressBook/ContactEditorWidget
X-TDE-Library=libkaddrbk_instantmessaging
X-TDE-KAddressBook-CEWPluginVersion=1
+
+Name=Instant Messaging
+
+Comment=Instant Messaging Address Editor
diff --git a/kaddressbook/editors/imaddresswidget.cpp b/kaddressbook/editors/imaddresswidget.cpp
index 0a3336d6..4cd7813d 100644
--- a/kaddressbook/editors/imaddresswidget.cpp
+++ b/kaddressbook/editors/imaddresswidget.cpp
@@ -60,10 +60,10 @@ IMAddressWidget::IMAddressWidget( TQWidget *parent, TQValueList<KPluginInfo *> p
void IMAddressWidget::init()
{
- connect( cmbProtocol, TQT_SIGNAL( activated( const TQString& ) ),
- this, TQT_SLOT( slotProtocolChanged() ) );
- connect( edtAddress, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( slotAddressChanged( const TQString& ) ) );
+ connect( cmbProtocol, TQ_SIGNAL( activated( const TQString& ) ),
+ this, TQ_SLOT( slotProtocolChanged() ) );
+ connect( edtAddress, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( slotAddressChanged( const TQString& ) ) );
slotProtocolChanged();
}
diff --git a/kaddressbook/editors/imaddresswidget.h b/kaddressbook/editors/imaddresswidget.h
index 9724ce77..a44f69f7 100644
--- a/kaddressbook/editors/imaddresswidget.h
+++ b/kaddressbook/editors/imaddresswidget.h
@@ -41,7 +41,7 @@ class KPluginInfo;
*/
class IMAddressWidget : public IMAddressBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/editors/imeditorwidget.cpp b/kaddressbook/editors/imeditorwidget.cpp
index 38d641c4..9db30d9c 100644
--- a/kaddressbook/editors/imeditorwidget.cpp
+++ b/kaddressbook/editors/imeditorwidget.cpp
@@ -148,14 +148,14 @@ IMEditorWidget::IMEditorWidget( TQWidget *parent, const TQString &preferredIM, c
mWidget = new IMEditorBase( this );
setMainWidget( mWidget );
- connect( mWidget->btnAdd, TQT_SIGNAL( clicked() ), TQT_SLOT( slotAdd() ) );
- connect( mWidget->btnEdit, TQT_SIGNAL( clicked() ), TQT_SLOT( slotEdit() ) );
- connect( mWidget->btnDelete, TQT_SIGNAL( clicked() ), TQT_SLOT( slotDelete() ) );
- connect( mWidget->btnSetStandard, TQT_SIGNAL( clicked()), TQT_SLOT( slotSetStandard() ) );
- connect( mWidget->lvAddresses, TQT_SIGNAL( selectionChanged() ), TQT_SLOT( slotUpdateButtons() ) );
+ connect( mWidget->btnAdd, TQ_SIGNAL( clicked() ), TQ_SLOT( slotAdd() ) );
+ connect( mWidget->btnEdit, TQ_SIGNAL( clicked() ), TQ_SLOT( slotEdit() ) );
+ connect( mWidget->btnDelete, TQ_SIGNAL( clicked() ), TQ_SLOT( slotDelete() ) );
+ connect( mWidget->btnSetStandard, TQ_SIGNAL( clicked()), TQ_SLOT( slotSetStandard() ) );
+ connect( mWidget->lvAddresses, TQ_SIGNAL( selectionChanged() ), TQ_SLOT( slotUpdateButtons() ) );
- connect( mWidget->lvAddresses, TQT_SIGNAL( doubleClicked( TQListViewItem*, const TQPoint&, int ) ),
- TQT_SLOT( slotEdit() ) );
+ connect( mWidget->lvAddresses, TQ_SIGNAL( doubleClicked( TQListViewItem*, const TQPoint&, int ) ),
+ TQ_SLOT( slotEdit() ) );
setHelp( "managing-contacts-im-addresses" );
@@ -336,8 +336,8 @@ void IMEditorWidget::slotAdd()
IMAddressWidget *addressWid = new IMAddressWidget( &addDialog, mProtocols );
addDialog.enableButtonOK( false );
- connect( addressWid, TQT_SIGNAL( inValidState( bool ) ),
- &addDialog, TQT_SLOT( enableButtonOK( bool ) ) );
+ connect( addressWid, TQ_SIGNAL( inValidState( bool ) ),
+ &addDialog, TQ_SLOT( enableButtonOK( bool ) ) );
addDialog.setMainWidget( addressWid );
if ( addDialog.exec() == TQDialog::Accepted ) {
@@ -372,8 +372,8 @@ void IMEditorWidget::slotEdit()
KDialogBase::Ok | KDialogBase::Cancel );
IMAddressWidget *addressWid = new IMAddressWidget( &editDialog, mProtocols, current->protocol(),
current->address(), current->context() ) ;
- connect( addressWid, TQT_SIGNAL( inValidState( bool ) ),
- &editDialog, TQT_SLOT( enableButtonOK( bool ) ) );
+ connect( addressWid, TQ_SIGNAL( inValidState( bool ) ),
+ &editDialog, TQ_SLOT( enableButtonOK( bool ) ) );
editDialog.setMainWidget( addressWid );
if ( editDialog.exec() == TQDialog::Accepted ) {
diff --git a/kaddressbook/editors/imeditorwidget.h b/kaddressbook/editors/imeditorwidget.h
index 1119144c..4f347ca0 100644
--- a/kaddressbook/editors/imeditorwidget.h
+++ b/kaddressbook/editors/imeditorwidget.h
@@ -48,7 +48,7 @@ enum IMContext { Any, Home, Work };
*/
class IMEditorWidget : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/editors/kaddressbookimprotocol.desktop b/kaddressbook/editors/kaddressbookimprotocol.desktop
index bbe36f77..f4699216 100644
--- a/kaddressbook/editors/kaddressbookimprotocol.desktop
+++ b/kaddressbook/editors/kaddressbookimprotocol.desktop
@@ -2,55 +2,8 @@
Type=ServiceType
X-TDE-ServiceType=KABC/IMProtocol
X-TDE-KAddressBook-CEWVersion=1
+
Name=KAddressbook Instant Messaging Protocol
-Name[af]=KAddressbook kits boodskap protokol
-Name[bg]=Протокол за мигновени съобщения за адресника
-Name[bs]=KAddressbook protokol za instant poruke
-Name[ca]=Protocol de missatgeria instantània KAddressbook
-Name[cs]=KAddressbook instant messaging protokol
-Name[da]=KAddressbook kvikbesked-protokol
-Name[de]=Adressbuch Instant Messaging Protokoll
-Name[el]=Πρωτόκολλο στιγμιαίου μηνύματος του KAddressbook
-Name[eo]=KAddressbook Rapidmesaĝila Protokolo
-Name[es]=Protocolo de mensajería instantánea de KAddressbook
-Name[et]=TDE aadressiraamatu kiirsuhtlusprotokoll
-Name[eu]=KAddressbook berehalako mezularitza protokoloa
-Name[fa]=قرارداد پیام‌دهی فوری KAddressbook
-Name[fi]=KAddresbookin pikaviestintäprotokolla
-Name[fr]=Protocole de messagerie instantanée pour KAddressbook
-Name[fy]=KAddressbook Instant Messaging-protokol
-Name[gl]=Protocolo de Mensaxería Instantánea de KAddressbook
-Name[he]=פרוטוקול מסרים מידיים של KAddressbook
-Name[hu]=KAddressbook azonnali üzenetküldési protokoll
-Name[is]=KAddressbook skilaboðaforritið
-Name[it]=KAddressbook protocollo messaggistica istantanea
-Name[ja]=KAddressbook インスタントメッセージプロトコル
-Name[kk]=KAddressbook лезде хабарласу протоколы
-Name[km]=ពិធីការ​ផ្ញើសារ​បន្ទាន់​របស់ KAddressbook
-Name[ko]=KAddressbook 인스턴트 메시징 프로토콜
-Name[lt]=KAddressbook momentinių žinučių protokolas
-Name[ms]=Protokol Penghantaran Mesej Segera KAddressbook
-Name[nb]=KAdressbook lynmeldingsprotokoll
-Name[nds]=KAddressbook-Kortnarichten-Protokoll
-Name[ne]=केडीई ठेगानापुस्तिका दृष्टान्त संदेशन प्रोटोकल
-Name[nl]=KAddressbook Instant Messaging-protocol
-Name[nn]=Lynmeldingsprotokoll for TDE-adresseboka
-Name[pl]=Protokół komunikacji internetowej KAddressbook
-Name[pt]=Protocolo de Mensagens Instantâneas do KAdressbook
-Name[pt_BR]=Protocolo de Mensagens Instantâneas do KAddressbook
-Name[ru]=Протокол обмена сообщениями адресной книги TDE
-Name[se]=Šleađgadieđáhusprotokolla TDE-čujuhusgirjji várás
-Name[sk]=Protokol pre TDE Adresár Instant Messaging
-Name[sl]=Protokol takojšnega sporočanja za Adresar
-Name[sr]=KAddressbook протокол тренутних адреса
-Name[sr@Latn]=KAddressbook protokol trenutnih adresa
-Name[sv]=Direktmeddelandeprotokoll för adressboken
-Name[ta]=கேஅட்ரஸ்புக் உடனடி செய்தி பரிமாற்றம்
-Name[tg]=Протоколи мубодилаи иттилооти китоби адресии TDE
-Name[tr]=KAddressbook Hızlı Mesajlaşma Protokolü
-Name[uk]=Протокол миттєвого зв'язку KAddressbook
-Name[zh_CN]=KAddressbook 即时通讯协议
-Name[zh_TW]=KAddressbook 即時通訊協定
+
[PropertyDef::X-TDE-InstantMessagingKABCField]
Type=TQString
-
diff --git a/kaddressbook/editors/protocols/CMakeLists.txt b/kaddressbook/editors/protocols/CMakeLists.txt
index 87e3e32c..d93b0cf2 100644
--- a/kaddressbook/editors/protocols/CMakeLists.txt
+++ b/kaddressbook/editors/protocols/CMakeLists.txt
@@ -9,9 +9,12 @@
#
#################################################
-install( FILES
+tde_create_translated_desktop(
+ SOURCE
icqprotocol.desktop aimprotocol.desktop ircprotocol.desktop smsprotocol.desktop
gaduprotocol.desktop jabberprotocol.desktop yahooprotocol.desktop
msnprotocol.desktop groupwiseprotocol.desktop meanwhileprotocol.desktop
skypeprotocol.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/kaddressbook )
+ DESTINATION ${SERVICES_INSTALL_DIR}/kaddressbook
+ PO_DIR kaddressbook-desktops
+)
diff --git a/kaddressbook/editors/protocols/aimprotocol.desktop b/kaddressbook/editors/protocols/aimprotocol.desktop
index ee594e27..57c8d1ac 100644
--- a/kaddressbook/editors/protocols/aimprotocol.desktop
+++ b/kaddressbook/editors/protocols/aimprotocol.desktop
@@ -3,60 +3,7 @@ Type=Service
Icon=aim_protocol
X-TDE-ServiceTypes=KABC/IMProtocol,KPluginInfo
X-TDE-InstantMessagingKABCField=messaging/aim
-Comment=AIM Protocol
-Comment[ar]=ميفاق AIM
-Comment[be]=Пратакол AIM
-Comment[bg]=Протокол AIM
-Comment[br]=Komenad AIM
-Comment[bs]=AIM protokol
-Comment[ca]=Protocol AIM
-Comment[cs]=AIM protokol
-Comment[da]=AIM Protokol
-Comment[de]=AIM-Protokoll
-Comment[el]=Πρωτόκολλο AIM
-Comment[eo]=AIM-Protokolo
-Comment[es]=Protocolo AIM
-Comment[et]=AIM protokoll
-Comment[eu]=AIM protokoloa
-Comment[fa]=قرارداد AIM
-Comment[fi]=AIM-protokolla
-Comment[fr]=Protocole AIM
-Comment[fy]=AIM-protokol
-Comment[ga]=Prótacal AIM
-Comment[gl]=Protocolo AIM
-Comment[he]=פרוטוקול AIM
-Comment[hu]=AIM protokoll
-Comment[is]=AIM samskiptamátinn
-Comment[it]=Protocollo AIM
-Comment[ja]=AIM プロトコル
-Comment[kk]=AIM протоколы
-Comment[km]=ពិធីការ AIM
-Comment[ko]=AIM 프로토콜
-Comment[lt]=AIM protokolas
-Comment[mk]=AIM-протокол
-Comment[ms]=Protokol AIM
-Comment[nb]=AIM-protokoll
-Comment[nds]=AIM-Protokoll
-Comment[ne]=एआईएम प्रोटोकल
-Comment[nl]=AIM-protocol
-Comment[nn]=AIM-protokoll
-Comment[pa]=AIM ਪ੍ਰੋਟੋਕਾਲ
-Comment[pl]=Protokół AIM
-Comment[pt]=Protocolo AIM
-Comment[pt_BR]=Protocolo AIM
-Comment[ru]=Протокол AIM
-Comment[se]=AIM-protokolla
-Comment[sk]=Protokol AIM
-Comment[sl]=Protokol AIM
-Comment[sr]=AIM протокол
-Comment[sr@Latn]=AIM protokol
-Comment[sv]=AIM-protokoll
-Comment[ta]=AIM நெறிமுறை
-Comment[tg]=Протоколи AIM
-Comment[tr]=AIM Protokolü
-Comment[uk]=Протокол AIM
-Comment[zh_CN]=AIM 协议
-Comment[zh_TW]=AIM 協定
+
Name=AIM
-Name[ne]=एआईएम
+Comment=AIM Protocol
diff --git a/kaddressbook/editors/protocols/gaduprotocol.desktop b/kaddressbook/editors/protocols/gaduprotocol.desktop
index 15d1a279..10476171 100644
--- a/kaddressbook/editors/protocols/gaduprotocol.desktop
+++ b/kaddressbook/editors/protocols/gaduprotocol.desktop
@@ -3,60 +3,7 @@ Type=Service
Icon=gadu_protocol
X-TDE-ServiceTypes=KABC/IMProtocol,KPluginInfo
X-TDE-InstantMessagingKABCField=messaging/gadu
-Comment=Gadu-Gadu Protocol
-Comment[af]=Gadu-Gadu protokol
-Comment[ar]=ميفاق Gadu-Gadu
-Comment[be]=Пратакол Gadu-Gadu
-Comment[bg]=Протокол Gadu-Gadu
-Comment[br]=Komenad Gadu-Gadu
-Comment[bs]=Gadu-Gadu protokol
-Comment[ca]=Protocol Gadu-Gadu
-Comment[cs]=Gadu-Gadu protokol
-Comment[da]=Gadu-Gadu Protokol
-Comment[de]=Gadu-Gadu-Protokoll
-Comment[el]=Πρωτόκολλο Gadu-Gadu
-Comment[eo]=Gadu-Gadu Protokolo
-Comment[es]=Protocolo Gadu-Gadu
-Comment[et]=Gadu-Gadu protokoll
-Comment[eu]=Gadu-Gadu protokoloa
-Comment[fa]=قرارداد Gadu-Gadu
-Comment[fi]=Gadu-Gadu -protokolla
-Comment[fr]=Protocole Gadu-Gadu
-Comment[fy]=Gadu-Gadu-protokol
-Comment[ga]=Prótacal Gadu-Gadu
-Comment[gl]=Protocolo Gadu-Gadu
-Comment[he]=פרוטוקול Gadu-Gadu
-Comment[hu]=Gadu-Gadu protokoll
-Comment[is]=Gadu-Gadu samskiptamátinn
-Comment[it]=Protocollo Gadu-Gadu
-Comment[ja]=Gadu-Gadu プロトコル
-Comment[kk]=Gadu-Gadu протоколы
-Comment[km]=ពិធីការ Gadu-Gadu
-Comment[lt]=Gadu-Gadu protokolas
-Comment[mk]=Gadu-Gadu-протокол
-Comment[ms]=Protokol Gadu-Gadu
-Comment[nb]=Gadu-Gadu-protokoll
-Comment[nds]=Gadu-Gadu-Protokoll
-Comment[ne]=गाडु-गाडु प्रोटोकल
-Comment[nl]=Gadu-Gadu-protocol
-Comment[nn]=Gadu-Gadu-protokoll
-Comment[pl]=Protokół Gadu-Gadu
-Comment[pt]=Protocolo Gadu-Gadu
-Comment[pt_BR]=Protocolo Gadu-Gadu
-Comment[ru]=протокол Gadu-Gadu
-Comment[se]=Gadu-Gadu-protokolla
-Comment[sk]=Protokol Gadu-Gadu
-Comment[sl]=Protokol Gadu-Gadu
-Comment[sr]=Gadu-Gadu протокол
-Comment[sr@Latn]=Gadu-Gadu protokol
-Comment[sv]=Gadu-Gadu-protokoll
-Comment[ta]=கடு-கடு நெறிமுறை
-Comment[tg]=протоколи Gadu-Gadu
-Comment[tr]=Gadu-Gadu Protokolü
-Comment[uk]=Протокол Gadu-Gadu
-Comment[zh_CN]=Gadu-Gadu 协议
-Comment[zh_TW]=Gadu-Gadu 協定
+
Name=Gadu-Gadu
-Name[ne]=गाडु-गाडु
-Name[ta]=கடு-கடு
+Comment=Gadu-Gadu Protocol
diff --git a/kaddressbook/editors/protocols/groupwiseprotocol.desktop b/kaddressbook/editors/protocols/groupwiseprotocol.desktop
index fc6ccbd2..489f7859 100644
--- a/kaddressbook/editors/protocols/groupwiseprotocol.desktop
+++ b/kaddressbook/editors/protocols/groupwiseprotocol.desktop
@@ -3,41 +3,7 @@ Type=Service
Icon=groupwise_protocol
X-TDE-ServiceTypes=KABC/IMProtocol,KPluginInfo
X-TDE-InstantMessagingKABCField=messaging/groupwise
-Comment=Novell GroupWise Messenger
-Comment[af]=Novell GroupWise boodskappe
-Comment[bg]=Месинджър Novell GroupWise
-Comment[cs]=Novell GroupWise komunikátor
-Comment[el]=GroupWise Messenger της Novell
-Comment[eo]=Novell GroupWise Mesaĝilo
-Comment[es]=Servidor de mensajería de Novell GroupWise
-Comment[et]=Novelli GroupWise Messenger
-Comment[eu]=Novell GroupWise mezularia
-Comment[fa]=مدیر Novell GroupWise
-Comment[fr]=Messagerie GroupWise de Novell
-Comment[fy]=Novell GroupWise-messenger
-Comment[he]=מסנג'ר של Novell GroupWise
-Comment[is]=Novell GroupWise Samskiptatólið
-Comment[ja]=Novell GroupWise メッセンジャー
-Comment[kk]=Novell GroupWise хабарласу
-Comment[km]=កម្មវិធី​ផ្ញើ​សារ​របស់​ណូវែល - GroupWise
-Comment[lt]=Novell GroupWise momentinių žinučių klientas
-Comment[ms]=Pembawa mesej Novell GroupWise
-Comment[nds]=Novell-GroupWise-Kortnarichtenmaker
-Comment[ne]=नोभेल समूहगत म्यासेन्जर
-Comment[nl]=Novell GroupWise-messenger
-Comment[pl]=Komunikator Novell GroupWise
-Comment[pt_BR]=Mensageiro GroupWise da Novell
-Comment[ru]=Обмен сообщениями Novell GroupWise
-Comment[sr]=Novell-ов GroupWise Messenger
-Comment[sr@Latn]=Novell-ov GroupWise Messenger
-Comment[sv]=Novell Groupwise Messenger
-Comment[ta]=நோவல் குழுவாரியான செய்தியாளன்
-Comment[tr]=Novell GroupWise Mesajlaşma Uygulaması
-Comment[zh_CN]=Novell GroupWise 信使
+
Name=GroupWise
-Name[ne]=समूहगत
-Name[sr]=Groupware
-Name[sr@Latn]=Groupware
-Name[sv]=Groupwise
-Name[ta]=குழுவாரியாக
+Comment=Novell GroupWise Messenger
diff --git a/kaddressbook/editors/protocols/icqprotocol.desktop b/kaddressbook/editors/protocols/icqprotocol.desktop
index 5506acae..f37a403c 100644
--- a/kaddressbook/editors/protocols/icqprotocol.desktop
+++ b/kaddressbook/editors/protocols/icqprotocol.desktop
@@ -3,58 +3,7 @@ Type=Service
Icon=icq_protocol
X-TDE-ServiceTypes=KABC/IMProtocol,KPluginInfo
X-TDE-InstantMessagingKABCField=messaging/icq
-Comment=ICQ Protocol
-Comment[af]=ICQ protokol
-Comment[be]=Пратакол ICQ
-Comment[bg]=Протокол ICQ
-Comment[br]=Komenad ICQ
-Comment[bs]=ICQ protokol
-Comment[ca]=Protocol ICQ
-Comment[cs]=ICQ protokol
-Comment[da]=ICQ Protokol
-Comment[de]=ICQ-Protokoll
-Comment[el]=Πρωτόκολλο ICQ
-Comment[eo]=ICQ Protokolo
-Comment[es]=Protocolo ICQ
-Comment[et]=ICQ protokoll
-Comment[eu]=ICQ protokoloa
-Comment[fa]=قرارداد ICQ
-Comment[fi]=ICQ-protokolla
-Comment[fr]=Protocole ICQ
-Comment[fy]=ICQ-protokol
-Comment[ga]=Prótacal ICQ
-Comment[gl]=Protocolo ICQ
-Comment[he]=פרוטוקול ICQ
-Comment[hu]=ICQ protokoll
-Comment[is]=ICQ samskiptamátinn
-Comment[it]=Protocollo ICQ
-Comment[ja]=ICQ プロトコル
-Comment[kk]=ICQ протоколы
-Comment[km]=ពិធីការ ICQ
-Comment[lt]=ICQ protokolas
-Comment[mk]=ICQ-протокол
-Comment[ms]=Protokol ICQ
-Comment[nb]=ICQ-protokoll
-Comment[nds]=ICQ-Protokoll
-Comment[ne]=आईसीक्यू प्रोटोकल
-Comment[nl]=ICQ-protocol
-Comment[nn]=ICQ-protokoll
-Comment[pl]=Protokół ICQ
-Comment[pt]=Protocolo ICQ
-Comment[pt_BR]=Protocolo ICQ
-Comment[ru]=Протокол ICQ
-Comment[se]=ICQ-protokolla
-Comment[sk]=Protokol ICQ
-Comment[sl]=Protokol ICQ
-Comment[sr]=ICQ протокол
-Comment[sr@Latn]=ICQ protokol
-Comment[sv]=ICQ-protokoll
-Comment[ta]=ICQ நெறிமுறை
-Comment[tg]=Протоколи ICQ
-Comment[tr]=ICQ Protokolü
-Comment[uk]=Протокол ICQ
-Comment[zh_CN]=ICQ 协议
-Comment[zh_TW]=ICQ 協定
+
Name=ICQ
-Name[ne]=आईसीक्यू
+Comment=ICQ Protocol
diff --git a/kaddressbook/editors/protocols/ircprotocol.desktop b/kaddressbook/editors/protocols/ircprotocol.desktop
index 31583442..f29c87b1 100644
--- a/kaddressbook/editors/protocols/ircprotocol.desktop
+++ b/kaddressbook/editors/protocols/ircprotocol.desktop
@@ -3,28 +3,7 @@ Type=Service
Icon=irc_protocol
X-TDE-ServiceTypes=KABC/IMProtocol,KPluginInfo
X-TDE-InstantMessagingKABCField=messaging/irc
-Comment=Internet Relay Chat
-Comment[bg]=Протокол IRC
-Comment[fa]=گپ بازپخش اینترنت
-Comment[hu]=IRC (Internet Relay Chat)
-Comment[is]=Internet spjall
-Comment[ja]=インターネットリレーチャット
-Comment[kk]=Internet Relay Chat хабарласу
-Comment[km]=ជជែក​កំសាន្ត​តាមអ៊ីនធឺណិត
-Comment[lt]=Estafetinis Interneto pokalbis
-Comment[ne]=इन्टरनेटबाट प्रसारण कुराकानी
-Comment[pl]=IRC (Internet Relay Chat)
-Comment[pt_BR]=Protocolo de Bate-papo na Internet - IRC
-Comment[ru]=IRC
-Comment[sl]=Internet Relay Chat (»internetno prenešen klepet«)
-Comment[sr]=Ћаскање преко интернета
-Comment[sr@Latn]=Ćaskanje preko interneta
-Comment[ta]=இணைய வழங்கும் அறட்டை
-Comment[tg]=IRC (Internet Relay Chat)
-Comment[tr]=İnternet Genel Sohbeti
-Comment[uk]=IRChat
-Comment[zh_CN]=Internet 聊天
-Comment[zh_TW]=IRC
+
Name=IRC
-Name[ne]=आईआरसी
+Comment=Internet Relay Chat
diff --git a/kaddressbook/editors/protocols/jabberprotocol.desktop b/kaddressbook/editors/protocols/jabberprotocol.desktop
index ff47a027..463e0e95 100644
--- a/kaddressbook/editors/protocols/jabberprotocol.desktop
+++ b/kaddressbook/editors/protocols/jabberprotocol.desktop
@@ -3,60 +3,7 @@ Type=Service
Icon=jabber_protocol
X-TDE-ServiceTypes=KABC/IMProtocol,KPluginInfo
X-TDE-InstantMessagingKABCField=messaging/xmpp
-Comment=Jabber Protocol
-Comment[af]=Jabber protokol
-Comment[ar]=ميفاق Jabber
-Comment[be]=Пратакол Jabber
-Comment[bg]=Протокол Jabber
-Comment[br]=Komenad Jabber
-Comment[bs]=Jabber protokol
-Comment[ca]=Protocol Jabber
-Comment[cs]=Jabber protokol
-Comment[da]=Jabber Protokol
-Comment[de]=Jabber-Protokoll
-Comment[el]=Πρωτόκολλο Jabber
-Comment[eo]=Jabber Protokolo
-Comment[es]=Protocolo Jabber
-Comment[et]=Jabberi protokoll
-Comment[eu]=Jabber protokoloa
-Comment[fa]=قرارداد Jabber
-Comment[fi]=Jabber-protokolla
-Comment[fr]=Protocole Jabber
-Comment[fy]=Jabber-protokol
-Comment[ga]=Prótacal Jabber
-Comment[gl]=Protocolo Jabber
-Comment[he]=פרוטוקול Jabber
-Comment[hu]=Jabber protokoll
-Comment[is]=Jabber samskiptamátinn
-Comment[it]=Protocollo Jabber
-Comment[ja]=Jabber プロトコル
-Comment[kk]=Jabber протоколы
-Comment[km]=ពិធីការ Jabber
-Comment[lt]=Jabber protokolas
-Comment[mk]=Jabber-протокол
-Comment[ms]=Protokol Jabber
-Comment[nb]=Jabber-protokoll
-Comment[nds]=Jabber-Protokoll
-Comment[ne]=ज्याबर प्रोटोकल
-Comment[nl]=Jabber-protocol
-Comment[nn]=Jabber-protokoll
-Comment[pl]=Protokół Jabber
-Comment[pt]=Protocolo Jabber
-Comment[pt_BR]=Protocolo Jabber
-Comment[ru]=протокол Jabber
-Comment[se]=Jabber-protokolla
-Comment[sk]=Protokol Jabber
-Comment[sl]=Protokol Jabber
-Comment[sr]=Jabber протокол
-Comment[sr@Latn]=Jabber protokol
-Comment[sv]=Jabber-protokoll
-Comment[ta]=ஜாபர் நெறிமுறை
-Comment[tg]=протоколи Jabber
-Comment[tr]=Jabber Protokolü
-Comment[uk]=Протокол Jabber
-Comment[zh_CN]=Jabber 协议
-Comment[zh_TW]=Jabber 協定
+
Name=Jabber
-Name[ne]=ज्याबर
-Name[ta]=ஜாபர்
+Comment=Jabber Protocol
diff --git a/kaddressbook/editors/protocols/meanwhileprotocol.desktop b/kaddressbook/editors/protocols/meanwhileprotocol.desktop
index 1379762b..1be21728 100644
--- a/kaddressbook/editors/protocols/meanwhileprotocol.desktop
+++ b/kaddressbook/editors/protocols/meanwhileprotocol.desktop
@@ -3,58 +3,7 @@ Type=Service
Icon=meanwhile_protocol
X-TDE-ServiceTypes=KABC/IMProtocol,KPluginInfo
X-TDE-InstantMessagingKABCField=messaging/meanwhile
-Comment=Meanwhile Protocol
-Comment[af]=Meanwhile protokol
-Comment[ar]=ميفاق Meanwhile
-Comment[be]=Пратакол Meanwhile
-Comment[bg]=Протокол Meanwhile
-Comment[br]=Komenad Meanwhile
-Comment[ca]=Protocol Meanwhile
-Comment[cs]=Meanwhile protokol
-Comment[da]=Meanwhile Protokol
-Comment[de]=Meanwhile-Protokoll
-Comment[el]=Πρωτόκολλο Meanwhile
-Comment[eo]=Meanwhile Protokolo
-Comment[es]=Protocolo Meanwhile
-Comment[et]=Meanwhile'i protokoll
-Comment[eu]=Meanwhile protokoloa
-Comment[fa]=قرارداد در ضمن
-Comment[fi]=Meanwhile-protokolla
-Comment[fr]=Protocole Meanwhile
-Comment[fy]=Meanwhile-protokol
-Comment[ga]=Prótacal Meanwhile
-Comment[gl]=Protocolo Meanwhile
-Comment[he]=פרוטוקול Meanhwile
-Comment[hu]=Meanwhile protokoll
-Comment[is]=Meanwhile samskiptamátinn
-Comment[it]=Protocollo Meanwhile
-Comment[ja]=Meanwhile プロトコル
-Comment[kk]=Meanwhile протоколы
-Comment[km]=ពិធីការ Meanwhile
-Comment[lt]=Meanwhile protokolas
-Comment[mk]=Meanwhile-протокол
-Comment[ms]=Protokol Meanwhile
-Comment[nb]=Meanwhile-protokoll
-Comment[nds]=Meanwhile-Protokoll
-Comment[ne]=त्यसै समयको प्रोटोकल
-Comment[nl]=Meanwhile-protocol
-Comment[nn]=Meanwhile-protokollen
-Comment[pl]=Protokół Meanwhile
-Comment[pt]=Protocolo Meanwhile
-Comment[pt_BR]=Protocolo Meanwhile
-Comment[ru]=Протокол Meanwhile
-Comment[se]=Meanwhile-protokolla
-Comment[sk]=Meanwhile protokol
-Comment[sl]=Protokol Meanwhile
-Comment[sr]=Meanwhile протокол
-Comment[sr@Latn]=Meanwhile protokol
-Comment[sv]=Meanwhile-protokoll
-Comment[ta]=நெறிமுறை
-Comment[tr]=Meanwhile Protokolü
-Comment[uk]=Протокол Meanwhile
-Comment[zh_CN]=Meanwhile 协议
-Comment[zh_TW]=Meanwhile 協定
+
Name=Meanwhile
-Name[fa]=در ضمن
-Name[ne]=त्यस समयको
+Comment=Meanwhile Protocol
diff --git a/kaddressbook/editors/protocols/msnprotocol.desktop b/kaddressbook/editors/protocols/msnprotocol.desktop
index 2f3f533f..81bf8539 100644
--- a/kaddressbook/editors/protocols/msnprotocol.desktop
+++ b/kaddressbook/editors/protocols/msnprotocol.desktop
@@ -3,30 +3,7 @@ Type=Service
Icon=msn_protocol
X-TDE-ServiceTypes=KABC/IMProtocol,KPluginInfo
X-TDE-InstantMessagingKABCField=messaging/msn
-Comment=MSN Messenger
-Comment[af]=MSN boodskapper
-Comment[bg]=Протокол MSN
-Comment[cy]=Negesydd MSN
-Comment[eo]=MSN Mesaĝilo
-Comment[fa]=پیام‌رسان MSN
-Comment[fr]=Messagerie MSN
-Comment[is]=MSN spjallforritið
-Comment[ja]=MSN メッセンジャー
-Comment[km]=កម្មវិធី​ផ្ញើ​សារ MSN
-Comment[nds]=MSN-Kortnarichtenmaker
-Comment[ne]=एमएसएन म्यासेन्जर
-Comment[pa]=MSN ਸੁਨੇਹਾਦਾਰ
-Comment[ta]=MSN மெசஞ்சர்
-Comment[tr]=MSN Mesajcısı
+
Name=MSN Messenger
-Name[bg]=MSN
-Name[cy]=Negesydd MSN
-Name[eo]=MSN Mesaĝilo
-Name[fa]=پیام‌رسان MSN
-Name[ja]=MSN メッセンジャー
-Name[km]=កម្មវិធី​ផ្ញើសារ MSN
-Name[nds]=MSN-Kortnarichtenmaker
-Name[ne]=एमएसएन म्यासेन्जर
-Name[ta]=MSN மெசஞ்சர்
-Name[tr]=MSN Mesajcısı
+Comment=MSN Messenger
diff --git a/kaddressbook/editors/protocols/skypeprotocol.desktop b/kaddressbook/editors/protocols/skypeprotocol.desktop
index aea8e75a..e0ea41e7 100644
--- a/kaddressbook/editors/protocols/skypeprotocol.desktop
+++ b/kaddressbook/editors/protocols/skypeprotocol.desktop
@@ -3,50 +3,7 @@ Type=Service
Icon=skype_protocol
X-TDE-ServiceTypes=KABC/IMProtocol,KPluginInfo
X-TDE-InstantMessagingKABCField=messaging/skype
-Comment=Skype Internet Telephony
-Comment[af]=Skype Internet Telefoon
-Comment[bg]=Интернет телефония чрез Skype
-Comment[ca]=Telefonia per Internet Skype
-Comment[cs]=Internetová telefonie Skype
-Comment[da]=Skype internettelefoni
-Comment[de]=Internet-Telefonie mit Skype
-Comment[eo]=Skype Interreta Telefonado
-Comment[es]=Telefonía por internet con Skype
-Comment[et]=Internetitelefon Skype
-Comment[eu]=Skype-en internet telefonia
-Comment[fa]=ارتباط تلفنی اینترنت Skype
-Comment[fi]=Skype Internet-puhelin
-Comment[fr]=Téléphonie Internet Skype
-Comment[fy]=Skype ynternettelefony
-Comment[gl]=Telefonía por Internet con Skype
-Comment[he]=טלפוניית רשת של Skype
-Comment[hu]=Skype internetes telefon
-Comment[is]=Skype Internet sími
-Comment[it]=Telefonia internet Skype
-Comment[ja]=Skype インターネット電話
-Comment[kk]=Skype Интернет телефониясы
-Comment[km]=ទូរស័ព្ទ​តាម​អ៊ីនធឺណិត​ដោយ​ប្រើ Skype
-Comment[lt]=Skype Interneto telefonija
-Comment[mk]=Интернет-телефонија со Skype
-Comment[nb]=Skype IP-telefoni
-Comment[nds]=Internet-Telefoneren mit Skype
-Comment[ne]=स्काइप इन्टरनेट दूरभाषी
-Comment[nl]=Skype internettelefonie
-Comment[nn]=Skype Internett-telefoni
-Comment[pl]=Skype - telefonia internetowa
-Comment[pt]=Telefonia Internet Skype
-Comment[pt_BR]=Telefonia via Internet Skype
-Comment[ru]=Интернет-телефон Skype
-Comment[se]=Skype Interneahtta-telefoniija
-Comment[sk]=Skype Internet telefonovanie
-Comment[sl]=Internetno telefoniranje Skype
-Comment[sr]=Skype интернет телефонија
-Comment[sr@Latn]=Skype internet telefonija
-Comment[sv]=Skype Internettelefoni
-Comment[tr]=Skype İnternet Telefonu
-Comment[uk]=Інтернет-телефон Skype
-Comment[zh_CN]=Skype Internet 电话
-Comment[zh_TW]=Skype 網路電話
+
Name=Skype
-Name[eo]=kype
-Name[ne]=स्काइप
+
+Comment=Skype Internet Telephony
diff --git a/kaddressbook/editors/protocols/smsprotocol.desktop b/kaddressbook/editors/protocols/smsprotocol.desktop
index 94c31f8b..89508ae1 100644
--- a/kaddressbook/editors/protocols/smsprotocol.desktop
+++ b/kaddressbook/editors/protocols/smsprotocol.desktop
@@ -3,61 +3,7 @@ Type=Service
Icon=sms_protocol
X-TDE-ServiceTypes=KABC/IMProtocol,KPluginInfo
X-TDE-InstantMessagingKABCField=messaging/sms
-Comment=SMS Protocol
-Comment[af]=SMS protokol
-Comment[be]=Пратакол SMS
-Comment[bg]=Протокол SMS
-Comment[br]=Komenad SMS
-Comment[bs]=SMS poruke
-Comment[ca]=Protocol SMS
-Comment[cs]=SMS protokol
-Comment[da]=SMS Protokol
-Comment[de]=SMS-Protokoll
-Comment[el]=Πρωτόκολλο SMS
-Comment[eo]=SMS Protokolo
-Comment[es]=Protocolo SMS
-Comment[et]=SMS protokoll
-Comment[eu]=SMS protokoloa
-Comment[fa]=قرارداد پیام کوتاه
-Comment[fi]=SMS-protokolla
-Comment[fr]=Protocole SMS
-Comment[fy]=SMS-protokol
-Comment[ga]=Prótacal SMS
-Comment[gl]=Protocolo SMS
-Comment[he]=פרוטוקול SMS
-Comment[hu]=SMS protokoll
-Comment[is]=SMS samskiptamátinn
-Comment[it]=Protocollo SMS
-Comment[ja]=SMS プロトコル
-Comment[kk]=SMS протоколы
-Comment[km]=ពិធីការ​សេវា​សារ​ខ្លីៗ
-Comment[lt]=SMS protokolas
-Comment[mk]=SMS-протокол
-Comment[ms]=Protokol SMS
-Comment[nb]=SMS Protokoll
-Comment[nds]=SMS-Protokoll
-Comment[ne]=एसएमएस प्रोटोकल
-Comment[nl]=SMS-protocol
-Comment[nn]=SMS-protokoll
-Comment[pl]=Protokół SMS
-Comment[pt]=Protocolo SMS
-Comment[pt_BR]=Protocolo SMS
-Comment[ru]=протокол SMS
-Comment[se]=SMS-protokolla
-Comment[sk]=Protokol SMS
-Comment[sl]=Protokol SMS
-Comment[sr]=SMS протокол
-Comment[sr@Latn]=SMS protokol
-Comment[sv]=SMS-protokoll
-Comment[ta]=SMS நெறிமுறை
-Comment[tg]=протоколи SMS
-Comment[tr]=SMS Protokolü
-Comment[uk]=Протокол SMS
-Comment[zh_CN]=短信息协议
-Comment[zh_TW]=SMS 協定
+
Name=SMS
-Name[fa]=پیام کوتاه
-Name[km]=សេវា​សារ​ខ្លីៗ
-Name[ne]=एसएमएस
-Name[zh_CN]=短信息
+Comment=SMS Protocol
diff --git a/kaddressbook/editors/protocols/yahooprotocol.desktop b/kaddressbook/editors/protocols/yahooprotocol.desktop
index 79091727..9b2a1a39 100644
--- a/kaddressbook/editors/protocols/yahooprotocol.desktop
+++ b/kaddressbook/editors/protocols/yahooprotocol.desktop
@@ -3,63 +3,7 @@ Type=Service
Icon=yahoo_protocol
X-TDE-ServiceTypes=KABC/IMProtocol,KPluginInfo
X-TDE-InstantMessagingKABCField=messaging/yahoo
-Comment=Yahoo Protocol
-Comment[af]=Yahoo protokol
-Comment[ar]=ميفاق Yahoo
-Comment[be]=Пратакол Yahoo
-Comment[bg]=Протокол Yahoo
-Comment[br]=Komenad Yahoo
-Comment[bs]=Yahoo protokol
-Comment[ca]=Protocol Yahoo
-Comment[cs]=Yahoo protokol
-Comment[da]=Yahoo Protokol
-Comment[de]=Yahoo!-Protokoll
-Comment[el]=Πρωτόκολλο Yahoo
-Comment[eo]=Yahoo Protokolo
-Comment[es]=Protocolo Yahoo
-Comment[et]=Yahoo protokoll
-Comment[eu]=Yahoo protokoloa
-Comment[fa]=قرارداد یاهو
-Comment[fi]=Yahoo-protokolla
-Comment[fr]=Protocole Yahoo
-Comment[fy]=Yahoo-protokol
-Comment[ga]=Prótacal Yahoo
-Comment[gl]=Protocolo Yahoo
-Comment[he]=פרוטוקול Yahoo
-Comment[hu]=Yahoo protokoll
-Comment[is]=Yahoo samskiptamátinn
-Comment[it]=Protocollo Yahoo
-Comment[ja]=Yahoo プロトコル
-Comment[kk]=Yahoo протоколы
-Comment[km]=ពិធីការ​យ៉ាហ៊ូ
-Comment[lt]=Yahoo protokolas
-Comment[mk]=Yahoo-протокол
-Comment[ms]=Protokol Yahoo
-Comment[nb]=Yahoo-protokoll
-Comment[nds]=Yahoo-Protokoll
-Comment[ne]=याहू प्रोटोकल
-Comment[nl]=Yahoo-protocol
-Comment[nn]=Yahoo-protokoll
-Comment[pl]=Protokół Yahoo
-Comment[pt]=Protocolo Yahoo
-Comment[pt_BR]=Protocolo Yahoo
-Comment[ru]=Протокол Yahoo
-Comment[se]=Yahoo-protokolla
-Comment[sk]=Protokol Yahoo
-Comment[sl]=Protokol Yahoo
-Comment[sr]=Yahoo протокол
-Comment[sr@Latn]=Yahoo protokol
-Comment[sv]=Yahoo-protokoll
-Comment[ta]=Yahoo நெறிமுறை
-Comment[tg]=Протоколи Yahoo
-Comment[tr]=Yahoo Protokolü
-Comment[uk]=Протокол Yahoo
-Comment[zh_CN]=Yahoo 协议
-Comment[zh_TW]=Yahoo 協定
+
Name=Yahoo
-Name[de]=Yahoo!
-Name[fa]=یاهو
-Name[km]=យ៉ាហ៊ូ
-Name[ne]=याहू
-Name[pa]=ਯਾਹੂ
+Comment=Yahoo Protocol
diff --git a/kaddressbook/emaileditwidget.cpp b/kaddressbook/emaileditwidget.cpp
index d517f0b6..ead36a0c 100644
--- a/kaddressbook/emaileditwidget.cpp
+++ b/kaddressbook/emaileditwidget.cpp
@@ -97,15 +97,15 @@ EmailEditWidget::EmailEditWidget( TQWidget *parent, const char *name )
mEmailEdit = new KLineEdit( this );
mEmailEdit->setValidator( new EmailValidator );
- connect( mEmailEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( textChanged( const TQString& ) ) );
- connect( mEmailEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SIGNAL( modified() ) );
+ connect( mEmailEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( textChanged( const TQString& ) ) );
+ connect( mEmailEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SIGNAL( modified() ) );
label->setBuddy( mEmailEdit );
topLayout->addWidget( mEmailEdit, 0, 1 );
mEditButton = new TQPushButton( i18n( "Edit Email Addresses..." ), this);
- connect( mEditButton, TQT_SIGNAL( clicked() ), TQT_SLOT( edit() ) );
+ connect( mEditButton, TQ_SIGNAL( clicked() ), TQ_SLOT( edit() ) );
topLayout->addMultiCellWidget( mEditButton, 1, 1, 0, 1 );
topLayout->activate();
@@ -185,26 +185,26 @@ EmailEditDialog::EmailEditDialog( const TQStringList &list, TQWidget *parent,
// Make sure there is room for the scrollbar
mEmailListBox->setMinimumHeight( mEmailListBox->sizeHint().height() + 30 );
- connect( mEmailListBox, TQT_SIGNAL( highlighted( int ) ),
- TQT_SLOT( selectionChanged( int ) ) );
- connect( mEmailListBox, TQT_SIGNAL( selected( int ) ),
- TQT_SLOT( edit() ) );
+ connect( mEmailListBox, TQ_SIGNAL( highlighted( int ) ),
+ TQ_SLOT( selectionChanged( int ) ) );
+ connect( mEmailListBox, TQ_SIGNAL( selected( int ) ),
+ TQ_SLOT( edit() ) );
topLayout->addMultiCellWidget( mEmailListBox, 0, 3, 0, 1 );
mAddButton = new TQPushButton( i18n( "Add..." ), page );
- connect( mAddButton, TQT_SIGNAL( clicked() ), TQT_SLOT( add() ) );
+ connect( mAddButton, TQ_SIGNAL( clicked() ), TQ_SLOT( add() ) );
topLayout->addWidget( mAddButton, 0, 2 );
mEditButton = new TQPushButton( i18n( "Edit..." ), page );
- connect( mEditButton, TQT_SIGNAL( clicked() ), TQT_SLOT( edit() ) );
+ connect( mEditButton, TQ_SIGNAL( clicked() ), TQ_SLOT( edit() ) );
topLayout->addWidget( mEditButton, 1, 2 );
mRemoveButton = new TQPushButton( i18n( "Remove" ), page );
- connect( mRemoveButton, TQT_SIGNAL( clicked() ), TQT_SLOT( remove() ) );
+ connect( mRemoveButton, TQ_SIGNAL( clicked() ), TQ_SLOT( remove() ) );
topLayout->addWidget( mRemoveButton, 2, 2 );
mStandardButton = new TQPushButton( i18n( "Set Standard" ), page );
- connect( mStandardButton, TQT_SIGNAL( clicked() ), TQT_SLOT( standard() ) );
+ connect( mStandardButton, TQ_SIGNAL( clicked() ), TQ_SLOT( standard() ) );
topLayout->addWidget( mStandardButton, 3, 2 );
topLayout->activate();
diff --git a/kaddressbook/emaileditwidget.h b/kaddressbook/emaileditwidget.h
index 46d259a4..3f5d0a8d 100644
--- a/kaddressbook/emaileditwidget.h
+++ b/kaddressbook/emaileditwidget.h
@@ -43,7 +43,7 @@ class TDEListView;
*/
class EmailEditWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -70,7 +70,7 @@ class EmailEditWidget : public TQWidget
class EmailEditDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/extensionmanager.cpp b/kaddressbook/extensionmanager.cpp
index 0e88486c..bdc0801d 100644
--- a/kaddressbook/extensionmanager.cpp
+++ b/kaddressbook/extensionmanager.cpp
@@ -52,7 +52,7 @@ ExtensionManager::ExtensionManager( TQWidget* extensionBar, TQWidgetStack* detai
Q_ASSERT( mExtensionBar );
TQVBoxLayout* layout = new TQVBoxLayout( mExtensionBar );
mSplitter = new TQSplitter( mExtensionBar );
- mSplitter->setOrientation( Qt::Vertical );
+ mSplitter->setOrientation( TQt::Vertical );
layout->addWidget( mSplitter );
createExtensionWidgets();
@@ -60,7 +60,7 @@ ExtensionManager::ExtensionManager( TQWidget* extensionBar, TQWidgetStack* detai
mActionCollection = new TDEActionCollection( this, "ActionCollection" );
extensionBar->setShown( false );
- TQTimer::singleShot( 0, this, TQT_SLOT( createActions() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( createActions() ) );
}
ExtensionManager::~ExtensionManager()
@@ -162,13 +162,13 @@ void ExtensionManager::createActions()
delete mMapper;
mMapper = new TQSignalMapper( this, "SignalMapper" );
- connect( mMapper, TQT_SIGNAL( mapped( const TQString& ) ),
- this, TQT_SLOT( activationToggled( const TQString& ) ) );
+ connect( mMapper, TQ_SIGNAL( mapped( const TQString& ) ),
+ this, TQ_SLOT( activationToggled( const TQString& ) ) );
ExtensionData::List::ConstIterator it;
for ( TQMap<TQString, ExtensionData>::Iterator it = mExtensionMap.begin(), end = mExtensionMap.end(); it != end; ++it ) {
ExtensionData& data = it.data();
- data.action = new TDEToggleAction( data.title, 0, mMapper, TQT_SLOT( map() ),
+ data.action = new TDEToggleAction( data.title, 0, mMapper, TQ_SLOT( map() ),
mActionCollection,
TQString( data.identifier + "_extension" ).latin1() );
mMapper->setMapping( data.action, data.identifier );
@@ -202,10 +202,10 @@ void ExtensionManager::createExtensionWidgets()
wdg = new AddresseeEditorExtension( mCore, mDetailsStack );
wdg->hide();
- connect( wdg, TQT_SIGNAL( modified( const TDEABC::Addressee::List& ) ),
- TQT_SIGNAL( modified( const TDEABC::Addressee::List& ) ) );
- connect( wdg, TQT_SIGNAL( deleted( const TQStringList& ) ),
- TQT_SIGNAL( deleted( const TQStringList& ) ) );
+ connect( wdg, TQ_SIGNAL( modified( const TDEABC::Addressee::List& ) ),
+ TQ_SIGNAL( modified( const TDEABC::Addressee::List& ) ) );
+ connect( wdg, TQ_SIGNAL( deleted( const TQStringList& ) ),
+ TQ_SIGNAL( deleted( const TQStringList& ) ) );
ExtensionData data;
data.identifier = wdg->identifier();
@@ -239,10 +239,10 @@ void ExtensionManager::createExtensionWidgets()
if ( wdg->identifier() == "distribution_list_editor_ng" )
mSplitter->moveToFirst( wdg );
wdg->hide();
- connect( wdg, TQT_SIGNAL( modified( const TDEABC::Addressee::List& ) ),
- TQT_SIGNAL( modified( const TDEABC::Addressee::List& ) ) );
- connect( wdg, TQT_SIGNAL( deleted( const TQStringList& ) ),
- TQT_SIGNAL( deleted( const TQStringList& ) ) );
+ connect( wdg, TQ_SIGNAL( modified( const TDEABC::Addressee::List& ) ),
+ TQ_SIGNAL( modified( const TDEABC::Addressee::List& ) ) );
+ connect( wdg, TQ_SIGNAL( deleted( const TQStringList& ) ),
+ TQ_SIGNAL( deleted( const TQStringList& ) ) );
ExtensionData data;
data.identifier = wdg->identifier();
diff --git a/kaddressbook/extensionmanager.h b/kaddressbook/extensionmanager.h
index fafa2e3b..a44983ac 100644
--- a/kaddressbook/extensionmanager.h
+++ b/kaddressbook/extensionmanager.h
@@ -55,7 +55,7 @@ class ExtensionData
class ExtensionManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/features/CMakeLists.txt b/kaddressbook/features/CMakeLists.txt
index 7317b3b4..d3e016b6 100644
--- a/kaddressbook/features/CMakeLists.txt
+++ b/kaddressbook/features/CMakeLists.txt
@@ -37,9 +37,11 @@ endif( )
##### other data ################################
-install( FILES
- ${DESKTOP} resourceselection.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/kaddressbook )
+tde_create_translated_desktop(
+ SOURCE ${DESKTOP} resourceselection.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/kaddressbook
+ PO_DIR kaddressbook-desktops
+)
##### libkaddrbk_distributionlist (module) ######
diff --git a/kaddressbook/features/distributionlist.desktop b/kaddressbook/features/distributionlist.desktop
index fcb294f8..6b923fbb 100644
--- a/kaddressbook/features/distributionlist.desktop
+++ b/kaddressbook/features/distributionlist.desktop
@@ -1,112 +1,9 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_distributionlist
-Name=KAB Distribution List Plugin
-Name[af]=KAB verspreiding lys inprop module
-Name[ar]=ملحق قائمة توزيع KAB
-Name[be]=Дапаўненне KAB "Сьпіс распаўсюджвання"
-Name[bg]=Приставка за списъка за разпращане на KAB
-Name[br]=Lugent roll ingaladur evit KAB
-Name[bs]=KAB dodatak za distribucione liste
-Name[ca]=Endollable de la llista de distribució KAB
-Name[cs]=Modul distribučního seznamu
-Name[cy]=Ategyn Rhestr Ddosbarthu KAB
-Name[da]=KAB-Distribution liste-plugin
-Name[de]=Verteilerlisten-Modul für Adressbuch
-Name[el]=Πρόσθετο λίστας διανομής του KAB
-Name[eo]=KAB Distribulista Kromprogramo
-Name[es]=Plugin KAB para listas de distribución
-Name[et]=KAB postiloendi plugin
-Name[eu]=KAB banaketa zerrenda plugin-a
-Name[fa]=وصلۀ فهرست توزیع KAB
-Name[fi]=KAB-jakelulistaliitännäinen
-Name[fr]=Module de liste de diffusion pour KAB
-Name[fy]=KAB Distribúsjelist-plugin
-Name[gl]=Extensión de Lista de Distribución KAB
-Name[hi]=केएबी वितरण सूची प्लगइन
-Name[hu]=KAB címlista bővítőmodul
-Name[is]=Íforrit fyrir KAB dreifilista
-Name[it]=Plugin lista di distribuzione KAB
-Name[ja]=KAB 配布リストプラグイン
-Name[kk]=KAB тарату тізімінің плагин модулі
-Name[km]=កម្មវិធី​ជំនួយ​បញ្ជី​ចែកចាយ​របស់ KAB
-Name[lt]=KAB platinimo sąrašo priedas
-Name[ms]=Plugin Senarai Agihan KAB
-Name[nb]=KAB programtillegg for distribusjonslister
-Name[nds]=Verdeellist-Moduul för KAdressbook
-Name[ne]=KAB वितरण सूची प्लगइन
-Name[nl]=KAB Distributielijst-plugin
-Name[nn]=Programtillegg for KAB distribusjonsliste
-Name[pl]=Wtyczka KAB do obsługi list wysyłkowych
-Name[pt]='Plugin' de Lista de Distribuição do KAB
-Name[pt_BR]=Plug-in de Lista de Distribuição do KAB
-Name[ru]=Списки рассылки
-Name[se]=KAB:a distribušuvdnalistu lassemoduvla
-Name[sk]=KAB plugin distribučného zoznamu
-Name[sl]=Vstavek za distribucijski seznam KAB
-Name[sr]=Прикључак KAB-а за дистрибуционе листе
-Name[sr@Latn]=Priključak KAB-a za distribucione liste
-Name[sv]=Adressbokens insticksprogram för distributionslistor
-Name[ta]=KABயின் பகிர்ந்தளித்தல் பட்டியல் சொருகுப்பொருள்
-Name[tg]=Рӯйхати ба ҳар тараф мефиристодагӣ
-Name[tr]=KAB Dağıtım Listesi Eklentisi
-Name[uk]=Втулок списку розповсюдження KAB
-Name[uz]=Тарқатиш рўйхат плагини
-Name[zh_CN]=KAB 分发列表插件
-Comment=Plugin for managing distribution lists
-Comment[af]=Inprop module vir die bestuur van verspreiding lyste
-Comment[ar]=ملحق لإدارة قوائم التوزيع
-Comment[be]=Дапаўненне для кіравання сьпісамі распаўсюджвання
-Comment[bg]=Приставка за управление на списъци
-Comment[br]=Lugent melestradur ar rolloù ingaladur
-Comment[bs]=Dodatak za upravljanje distribucionim listama
-Comment[ca]=Endollable per a gestionar llistes de distribució
-Comment[cs]=Modul pro správu distribučních seznamů
-Comment[cy]=Ategyn ar gyfer rheoli rhestri dosbarthu
-Comment[da]=Plugin til at håndtere distributionslister
-Comment[de]=Modul zur Verwaltung von Verteilerlisten
-Comment[el]=Πρόσθετο για τη διαχείριση λιστών διανομής
-Comment[eo]=Kromaĵo por administri distribulistojn
-Comment[es]=Plugin para gestionar listas de distribución
-Comment[et]=Plugin postiloendite haldamiseks
-Comment[eu]=Banaketa zerrendak kudeatzeko plugin-a
-Comment[fa]=وصله برای مدیریت فهرستهای توزیع
-Comment[fi]=Liitännäinen jakelulistojen hallintaan
-Comment[fr]=Module pour gérer des listes de diffusion
-Comment[fy]=Plugin foar nit behearen fan distribúsjelisten
-Comment[gl]=Plugin para manexar listas de distribución
-Comment[he]=תוסף לניהול רשימות תפוצה
-Comment[hi]=वितरण सूची प्रबंधन के लिए प्लगइन
-Comment[hu]=Bővítőmodul címlisták kezeléséhez
-Comment[is]=Íforrit til að sjá um dreifilista
-Comment[it]=Plugin per gestire liste di distribuzione
-Comment[ja]=配布リスト管理用プラグイン
-Comment[kk]=Тарату тізімімен айналысу плагин модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ដើម្បី​គ្រប់គ្រង​បញ្ជី​ចែកចាយ
-Comment[lt]=Priedas platinimo sąrašų tvarkymui
-Comment[ms]=Plug masuk untuk pengurusan senarai edaran
-Comment[nb]=Programtillegg for å håndtere distribusjonslister
-Comment[nds]=Moduul för't Plegen vun Verdeellisten
-Comment[ne]=व्यवस्थापन वितरण सूचीका लागि प्लगइन
-Comment[nl]=Plugin voor het beheren van distributielijsten
-Comment[nn]=Programtillegg for handtering av distibusjonsliste
-Comment[pl]=Wtyczka do zarządzania listami wysyłkowymi
-Comment[pt]=Um 'plugin' para gerir as listas de distribuição
-Comment[pt_BR]=Plug-in para gerenciar listas de distribuição
-Comment[ro]=Modul pentru administrarea listelor de distribuţie
-Comment[ru]=Работа со списками рассылок
-Comment[se]=Lassemoduvla mii gieđahallá distribušuvdnalisttuid
-Comment[sk]=Plugin pre správu distribučných zoznamov
-Comment[sl]=Vstavek za upravljanje distribucijskih seznamov
-Comment[sr]=Прикључак за управљање дистрибуционим листама
-Comment[sr@Latn]=Priključak za upravljanje distribucionim listama
-Comment[sv]=Insticksprogram för att hantera distributionslistor
-Comment[ta]=பகிர்தல் பட்டியல் நிர்வகித்தலின் சொருகுப்பொருள்
-Comment[tg]=Кор бо рӯйхати ба ҳар тараф мефиристодагӣ
-Comment[tr]=Dağıtım listelerini yönetmek için eklenti
-Comment[uk]=Втулок для керування списками розповсюдження
-Comment[uz]=Тарқатиш рўйхатларни бошқариш учу плагин
-Comment[zh_CN]=管理分发列表的插件
-Comment[zh_TW]=管理分配清單外掛程式
Type=Service
+X-TDE-Library=libkaddrbk_distributionlist
X-TDE-ServiceTypes=KAddressBook/Extension
X-TDE-KAddressBook-ExtensionPluginVersion=1
+
+Name=KAB Distribution List Plugin
+
+Comment=Plugin for managing distribution lists
diff --git a/kaddressbook/features/distributionlistng.desktop b/kaddressbook/features/distributionlistng.desktop
index a92e1676..f54d4646 100644
--- a/kaddressbook/features/distributionlistng.desktop
+++ b/kaddressbook/features/distributionlistng.desktop
@@ -1,78 +1,9 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_distributionlistng
-Name=KAB Distribution List Next Generation Plugin
-Name[bg]=Приставка от следващо поколение за списъка за разпращане на KAB
-Name[ca]=Endollable de la propera generació de la llista de distribució KAB
-Name[da]=Næste generations-plugin til KAB-Distribution-liste
-Name[de]=Verteilerlisten-Modul für neues Adressbuch
-Name[el]=Πρόσθετο επόμενης γενιάς λίστας διανομής του KAB
-Name[et]=KAB postiloendi järgmise põlvkonna plugin
-Name[it]=Plugin lista di distribuzione KAB di nuova generazione
-Name[ja]=KAB 配布リスト次世代プラグイン
-Name[nds]=Verbetert Verdeellist-Moduul för KAdressbook
-Name[nl]=Plugin voor KAB Distributielijst (Nieuwe Generatie)
-Name[pl]=Wtyczka KAB do obsługi list wysyłkowych
-Name[sk]=KAB plugin distribučného zoznamu ďaľšej generácie
-Name[sr]=Прикључак KAB-а наредне генерације за дистрибуционе листе
-Name[sr@Latn]=Priključak KAB-a naredne generacije za distribucione liste
-Name[sv]=Adressbokens nästa generation insticksprogram för distributionslistor
-Name[zh_CN]=KAB 分发列表生成插件
-Name[zh_TW]=KAB 分派清單下一代外掛程式
-Comment=Plugin for managing distribution lists
-Comment[af]=Inprop module vir die bestuur van verspreiding lyste
-Comment[ar]=ملحق لإدارة قوائم التوزيع
-Comment[be]=Дапаўненне для кіравання сьпісамі распаўсюджвання
-Comment[bg]=Приставка за управление на списъци
-Comment[br]=Lugent melestradur ar rolloù ingaladur
-Comment[bs]=Dodatak za upravljanje distribucionim listama
-Comment[ca]=Endollable per a gestionar llistes de distribució
-Comment[cs]=Modul pro správu distribučních seznamů
-Comment[cy]=Ategyn ar gyfer rheoli rhestri dosbarthu
-Comment[da]=Plugin til at håndtere distributionslister
-Comment[de]=Modul zur Verwaltung von Verteilerlisten
-Comment[el]=Πρόσθετο για τη διαχείριση λιστών διανομής
-Comment[eo]=Kromaĵo por administri distribulistojn
-Comment[es]=Plugin para gestionar listas de distribución
-Comment[et]=Plugin postiloendite haldamiseks
-Comment[eu]=Banaketa zerrendak kudeatzeko plugin-a
-Comment[fa]=وصله برای مدیریت فهرستهای توزیع
-Comment[fi]=Liitännäinen jakelulistojen hallintaan
-Comment[fr]=Module pour gérer des listes de diffusion
-Comment[fy]=Plugin foar nit behearen fan distribúsjelisten
-Comment[gl]=Plugin para manexar listas de distribución
-Comment[he]=תוסף לניהול רשימות תפוצה
-Comment[hi]=वितरण सूची प्रबंधन के लिए प्लगइन
-Comment[hu]=Bővítőmodul címlisták kezeléséhez
-Comment[is]=Íforrit til að sjá um dreifilista
-Comment[it]=Plugin per gestire liste di distribuzione
-Comment[ja]=配布リスト管理用プラグイン
-Comment[kk]=Тарату тізімімен айналысу плагин модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ដើម្បី​គ្រប់គ្រង​បញ្ជី​ចែកចាយ
-Comment[lt]=Priedas platinimo sąrašų tvarkymui
-Comment[ms]=Plug masuk untuk pengurusan senarai edaran
-Comment[nb]=Programtillegg for å håndtere distribusjonslister
-Comment[nds]=Moduul för't Plegen vun Verdeellisten
-Comment[ne]=व्यवस्थापन वितरण सूचीका लागि प्लगइन
-Comment[nl]=Plugin voor het beheren van distributielijsten
-Comment[nn]=Programtillegg for handtering av distibusjonsliste
-Comment[pl]=Wtyczka do zarządzania listami wysyłkowymi
-Comment[pt]=Um 'plugin' para gerir as listas de distribuição
-Comment[pt_BR]=Plug-in para gerenciar listas de distribuição
-Comment[ro]=Modul pentru administrarea listelor de distribuţie
-Comment[ru]=Работа со списками рассылок
-Comment[se]=Lassemoduvla mii gieđahallá distribušuvdnalisttuid
-Comment[sk]=Plugin pre správu distribučných zoznamov
-Comment[sl]=Vstavek za upravljanje distribucijskih seznamov
-Comment[sr]=Прикључак за управљање дистрибуционим листама
-Comment[sr@Latn]=Priključak za upravljanje distribucionim listama
-Comment[sv]=Insticksprogram för att hantera distributionslistor
-Comment[ta]=பகிர்தல் பட்டியல் நிர்வகித்தலின் சொருகுப்பொருள்
-Comment[tg]=Кор бо рӯйхати ба ҳар тараф мефиристодагӣ
-Comment[tr]=Dağıtım listelerini yönetmek için eklenti
-Comment[uk]=Втулок для керування списками розповсюдження
-Comment[uz]=Тарқатиш рўйхатларни бошқариш учу плагин
-Comment[zh_CN]=管理分发列表的插件
-Comment[zh_TW]=管理分配清單外掛程式
Type=Service
+X-TDE-Library=libkaddrbk_distributionlistng
X-TDE-ServiceTypes=KAddressBook/Extension
X-TDE-KAddressBook-ExtensionPluginVersion=1
+
+Name=KAB Distribution List Next Generation Plugin
+
+Comment=Plugin for managing distribution lists
diff --git a/kaddressbook/features/distributionlistngwidget.cpp b/kaddressbook/features/distributionlistngwidget.cpp
index 4a4a20a2..181744ad 100644
--- a/kaddressbook/features/distributionlistngwidget.cpp
+++ b/kaddressbook/features/distributionlistngwidget.cpp
@@ -131,51 +131,51 @@ KAB::DistributionListNg::MainWidget::MainWidget( KAB::Core *core, TQWidget *pare
mAddButton = new TQPushButton( this );
mAddButton->setIconSet( SmallIconSet( "add" ) );
TQToolTip::add( mAddButton, i18n( "Add distribution list" ) );
- connect( mAddButton, TQT_SIGNAL(clicked()), core, TQT_SLOT(newDistributionList()) );
+ connect( mAddButton, TQ_SIGNAL(clicked()), core, TQ_SLOT(newDistributionList()) );
buttonLayout->addWidget( mAddButton );
mEditButton = new TQPushButton( this );
mEditButton->setIconSet( SmallIconSet( "edit" ) );
TQToolTip::add( mEditButton, i18n( "Edit distribution list" ) );
- connect( mEditButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(editSelectedDistributionList()) );
+ connect( mEditButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(editSelectedDistributionList()) );
buttonLayout->addWidget( mEditButton );
mRemoveButton = new TQPushButton( this );
mRemoveButton->setIconSet( SmallIconSet( "remove" ) );
TQToolTip::add( mRemoveButton, i18n( "Remove distribution list" ) );
- connect( mRemoveButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(deleteSelectedDistributionList()) );
+ connect( mRemoveButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(deleteSelectedDistributionList()) );
buttonLayout->addWidget( mRemoveButton );
mListBox = new ListBox( this );
- connect( mListBox, TQT_SIGNAL( contextMenuRequested( TQListBoxItem*, const TQPoint& ) ),
- this, TQT_SLOT( contextMenuRequested( TQListBoxItem*, const TQPoint& ) ) );
- connect( mListBox, TQT_SIGNAL( dropped( const TQString &, const TDEABC::Addressee::List & ) ),
- this, TQT_SLOT( contactsDropped( const TQString &, const TDEABC::Addressee::List & ) ) );
- connect( mListBox, TQT_SIGNAL( highlighted( int ) ),
- this, TQT_SLOT( itemSelected( int ) ) );
- connect( mListBox, TQT_SIGNAL(doubleClicked(TQListBoxItem*)), TQT_SLOT(editSelectedDistributionList()) );
+ connect( mListBox, TQ_SIGNAL( contextMenuRequested( TQListBoxItem*, const TQPoint& ) ),
+ this, TQ_SLOT( contextMenuRequested( TQListBoxItem*, const TQPoint& ) ) );
+ connect( mListBox, TQ_SIGNAL( dropped( const TQString &, const TDEABC::Addressee::List & ) ),
+ this, TQ_SLOT( contactsDropped( const TQString &, const TDEABC::Addressee::List & ) ) );
+ connect( mListBox, TQ_SIGNAL( highlighted( int ) ),
+ this, TQ_SLOT( itemSelected( int ) ) );
+ connect( mListBox, TQ_SIGNAL(doubleClicked(TQListBoxItem*)), TQ_SLOT(editSelectedDistributionList()) );
layout->addWidget( mListBox );
- connect( core, TQT_SIGNAL( contactsUpdated() ),
- this, TQT_SLOT( updateEntries() ) );
- connect( core->addressBook(), TQT_SIGNAL( addressBookChanged( AddressBook* ) ),
- this, TQT_SLOT( updateEntries() ) );
+ connect( core, TQ_SIGNAL( contactsUpdated() ),
+ this, TQ_SLOT( updateEntries() ) );
+ connect( core->addressBook(), TQ_SIGNAL( addressBookChanged( AddressBook* ) ),
+ this, TQ_SLOT( updateEntries() ) );
// When contacts are changed, update both distr list combo and contents of displayed distr list
- connect( core, TQT_SIGNAL( contactsUpdated() ),
- this, TQT_SLOT( updateEntries() ) );
+ connect( core, TQ_SIGNAL( contactsUpdated() ),
+ this, TQ_SLOT( updateEntries() ) );
- TQTimer::singleShot( 0, this, TQT_SLOT( updateEntries() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( updateEntries() ) );
}
void KAB::DistributionListNg::MainWidget::contextMenuRequested( TQListBoxItem *item, const TQPoint &point )
{
TQGuardedPtr<TDEPopupMenu> menu = new TDEPopupMenu( this );
- menu->insertItem( i18n( "New Distribution List..." ), core(), TQT_SLOT( newDistributionList() ) );
+ menu->insertItem( i18n( "New Distribution List..." ), core(), TQ_SLOT( newDistributionList() ) );
if ( item && ( item->text() !=i18n( "All Contacts" ) ) )
{
- menu->insertItem( i18n( "Edit..." ), this, TQT_SLOT( editSelectedDistributionList() ) );
- menu->insertItem( i18n( "Delete" ), this, TQT_SLOT( deleteSelectedDistributionList() ) );
+ menu->insertItem( i18n( "Edit..." ), this, TQ_SLOT( editSelectedDistributionList() ) );
+ menu->insertItem( i18n( "Delete" ), this, TQ_SLOT( deleteSelectedDistributionList() ) );
}
menu->exec( point );
delete menu;
diff --git a/kaddressbook/features/distributionlistngwidget.h b/kaddressbook/features/distributionlistngwidget.h
index c8cf84d3..75cd50ce 100644
--- a/kaddressbook/features/distributionlistngwidget.h
+++ b/kaddressbook/features/distributionlistngwidget.h
@@ -46,7 +46,7 @@ namespace DistributionListNg {
class ListBox : public TDEListBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
ListBox( TQWidget* parent = 0 );
@@ -66,7 +66,7 @@ protected:
class MainWidget : public KAB::ExtensionWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/features/distributionlistwidget.cpp b/kaddressbook/features/distributionlistwidget.cpp
index 28a6f8ff..76324853 100644
--- a/kaddressbook/features/distributionlistwidget.cpp
+++ b/kaddressbook/features/distributionlistwidget.cpp
@@ -158,19 +158,19 @@ DistributionListWidget::DistributionListWidget( KAB::Core *core, TQWidget *paren
mNameCombo = new TQComboBox( this );
topLayout->addWidget( mNameCombo, 0, 0 );
- connect( mNameCombo, TQT_SIGNAL( activated( int ) ), TQT_SLOT( updateContactView() ) );
+ connect( mNameCombo, TQ_SIGNAL( activated( int ) ), TQ_SLOT( updateContactView() ) );
mCreateListButton = new TQPushButton( i18n( "New List..." ), this );
topLayout->addWidget( mCreateListButton, 0, 1 );
- connect( mCreateListButton, TQT_SIGNAL( clicked() ), TQT_SLOT( createList() ) );
+ connect( mCreateListButton, TQ_SIGNAL( clicked() ), TQ_SLOT( createList() ) );
mEditListButton = new TQPushButton( i18n( "Rename List..." ), this );
topLayout->addWidget( mEditListButton, 0, 2 );
- connect( mEditListButton, TQT_SIGNAL( clicked() ), TQT_SLOT( editList() ) );
+ connect( mEditListButton, TQ_SIGNAL( clicked() ), TQ_SLOT( editList() ) );
mRemoveListButton = new TQPushButton( i18n( "Remove List" ), this );
topLayout->addWidget( mRemoveListButton, 0, 3 );
- connect( mRemoveListButton, TQT_SIGNAL( clicked() ), TQT_SLOT( removeList() ) );
+ connect( mRemoveListButton, TQ_SIGNAL( clicked() ), TQ_SLOT( removeList() ) );
mContactView = new DistributionListView( this );
mContactView->addColumn( i18n( "Name" ) );
@@ -180,40 +180,40 @@ DistributionListWidget::DistributionListWidget( KAB::Core *core, TQWidget *paren
mContactView->setAllColumnsShowFocus( true );
mContactView->setFullWidth( true );
topLayout->addMultiCellWidget( mContactView, 1, 1, 0, 3 );
- connect( mContactView, TQT_SIGNAL( selectionChanged() ),
- TQT_SLOT( selectionContactViewChanged() ) );
- connect( mContactView, TQT_SIGNAL( dropped( TQDropEvent*, TQListViewItem* ) ),
- TQT_SLOT( dropped( TQDropEvent*, TQListViewItem* ) ) );
+ connect( mContactView, TQ_SIGNAL( selectionChanged() ),
+ TQ_SLOT( selectionContactViewChanged() ) );
+ connect( mContactView, TQ_SIGNAL( dropped( TQDropEvent*, TQListViewItem* ) ),
+ TQ_SLOT( dropped( TQDropEvent*, TQListViewItem* ) ) );
mAddContactButton = new TQPushButton( i18n( "Add Contact" ), this );
mAddContactButton->setEnabled( false );
topLayout->addWidget( mAddContactButton, 2, 0 );
- connect( mAddContactButton, TQT_SIGNAL( clicked() ), TQT_SLOT( addContact() ) );
+ connect( mAddContactButton, TQ_SIGNAL( clicked() ), TQ_SLOT( addContact() ) );
mEntryCountLabel = new TQLabel( this );
topLayout->addWidget( mEntryCountLabel, 2, 1 );
mChangeEmailButton = new TQPushButton( i18n( "Change Email..." ), this );
topLayout->addWidget( mChangeEmailButton, 2, 2 );
- connect( mChangeEmailButton, TQT_SIGNAL( clicked() ), TQT_SLOT( changeEmail() ) );
+ connect( mChangeEmailButton, TQ_SIGNAL( clicked() ), TQ_SLOT( changeEmail() ) );
mRemoveContactButton = new TQPushButton( i18n( "Remove Contact" ), this );
topLayout->addWidget( mRemoveContactButton, 2, 3 );
- connect( mRemoveContactButton, TQT_SIGNAL( clicked() ), TQT_SLOT( removeContact() ) );
+ connect( mRemoveContactButton, TQ_SIGNAL( clicked() ), TQ_SLOT( removeContact() ) );
#ifdef TDEPIM_NEW_DISTRLISTS
// When contacts are changed, update both distr list combo and contents of displayed distr list
- connect( core, TQT_SIGNAL( contactsUpdated() ),
- this, TQT_SLOT( updateNameCombo() ) );
+ connect( core, TQ_SIGNAL( contactsUpdated() ),
+ this, TQ_SLOT( updateNameCombo() ) );
#else
mManager = new TDEABC::DistributionListManager( core->addressBook() );
- connect( TDEABC::DistributionListWatcher::self(), TQT_SIGNAL( changed() ),
- this, TQT_SLOT( updateNameCombo() ) );
+ connect( TDEABC::DistributionListWatcher::self(), TQ_SIGNAL( changed() ),
+ this, TQ_SLOT( updateNameCombo() ) );
#endif
- connect( core->addressBook(), TQT_SIGNAL( addressBookChanged( AddressBook* ) ),
- this, TQT_SLOT( updateNameCombo() ) );
+ connect( core->addressBook(), TQ_SIGNAL( addressBookChanged( AddressBook* ) ),
+ this, TQ_SLOT( updateNameCombo() ) );
updateNameCombo();
diff --git a/kaddressbook/features/distributionlistwidget.h b/kaddressbook/features/distributionlistwidget.h
index e502dda1..0b7e032c 100644
--- a/kaddressbook/features/distributionlistwidget.h
+++ b/kaddressbook/features/distributionlistwidget.h
@@ -47,7 +47,7 @@ class DistributionListManager;
class DistributionListWidget : public KAB::ExtensionWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -107,7 +107,7 @@ class DistributionListWidget : public KAB::ExtensionWidget
*/
class DistributionListView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/features/resourceselection.cpp b/kaddressbook/features/resourceselection.cpp
index 1d80c915..4a16c598 100644
--- a/kaddressbook/features/resourceselection.cpp
+++ b/kaddressbook/features/resourceselection.cpp
@@ -142,19 +142,19 @@ ResourceSelection::ResourceSelection( KAB::Core *core, TQWidget *parent, const c
AddressBookWrapper *wrapper = static_cast<AddressBookWrapper*>( core->addressBook() );
mManager = wrapper->getResourceManager();
- connect( mAddButton, TQT_SIGNAL( clicked() ), TQT_SLOT( add() ) );
- connect( mEditButton, TQT_SIGNAL( clicked() ), TQT_SLOT( edit() ) );
- connect( mRemoveButton, TQT_SIGNAL( clicked() ), TQT_SLOT( remove() ) );
+ connect( mAddButton, TQ_SIGNAL( clicked() ), TQ_SLOT( add() ) );
+ connect( mEditButton, TQ_SIGNAL( clicked() ), TQ_SLOT( edit() ) );
+ connect( mRemoveButton, TQ_SIGNAL( clicked() ), TQ_SLOT( remove() ) );
- connect( mListView, TQT_SIGNAL( clicked( TQListViewItem* ) ),
- TQT_SLOT( currentChanged( TQListViewItem* ) ) );
+ connect( mListView, TQ_SIGNAL( clicked( TQListViewItem* ) ),
+ TQ_SLOT( currentChanged( TQListViewItem* ) ) );
- connect( mListView, TQT_SIGNAL( contextMenuRequested ( TQListViewItem *,
+ connect( mListView, TQ_SIGNAL( contextMenuRequested ( TQListViewItem *,
const TQPoint &, int ) ),
- TQT_SLOT( contextMenuRequested( TQListViewItem *, const TQPoint &,
+ TQ_SLOT( contextMenuRequested( TQListViewItem *, const TQPoint &,
int ) ) );
- TQTimer::singleShot( 0, this, TQT_SLOT( updateView() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( updateView() ) );
}
ResourceSelection::~ResourceSelection()
@@ -167,24 +167,24 @@ void ResourceSelection::contextMenuRequested ( TQListViewItem *i,
ResourceItem *item = static_cast<ResourceItem *>( i );
TQPopupMenu *menu = new TQPopupMenu( this );
- connect( menu, TQT_SIGNAL( aboutToHide() ), menu, TQT_SLOT( deleteLater() ) );
+ connect( menu, TQ_SIGNAL( aboutToHide() ), menu, TQ_SLOT( deleteLater() ) );
if ( item ) {
int reloadId = menu->insertItem( i18n("Re&load"), this,
- TQT_SLOT( reloadResource() ) );
+ TQ_SLOT( reloadResource() ) );
menu->setItemEnabled( reloadId, item->resource()->isActive() );
int saveId = menu->insertItem( i18n("&Save"), this,
- TQT_SLOT( saveResource() ) );
+ TQ_SLOT( saveResource() ) );
menu->setItemEnabled( saveId, item->resource()->isActive() );
menu->insertSeparator();
-// menu->insertItem( i18n("Show &Info"), this, TQT_SLOT( showInfo() ) );
+// menu->insertItem( i18n("Show &Info"), this, TQ_SLOT( showInfo() ) );
- menu->insertItem( i18n("&Edit..."), this, TQT_SLOT( edit() ) );
- menu->insertItem( i18n("&Remove"), this, TQT_SLOT( remove() ) );
+ menu->insertItem( i18n("&Edit..."), this, TQ_SLOT( edit() ) );
+ menu->insertItem( i18n("&Remove"), this, TQ_SLOT( remove() ) );
menu->insertSeparator();
}
- menu->insertItem( i18n("&Add..."), this, TQT_SLOT( add() ) );
+ menu->insertItem( i18n("&Add..."), this, TQ_SLOT( add() ) );
menu->popup( pos );
}
@@ -368,23 +368,23 @@ void ResourceSelection::updateView()
KPIM::ResourceABC* resource = dynamic_cast<KPIM::ResourceABC *>( *it );
if ( resource ) {
disconnect( resource, 0, this, 0 );
- connect( resource, TQT_SIGNAL( signalSubresourceAdded( KPIM::ResourceABC *,
+ connect( resource, TQ_SIGNAL( signalSubresourceAdded( KPIM::ResourceABC *,
const TQString &, const TQString & ) ),
- TQT_SLOT( slotSubresourceAdded( KPIM::ResourceABC *,
+ TQ_SLOT( slotSubresourceAdded( KPIM::ResourceABC *,
const TQString &, const TQString & ) ) );
- connect( resource, TQT_SIGNAL( signalSubresourceRemoved( KPIM::ResourceABC *,
+ connect( resource, TQ_SIGNAL( signalSubresourceRemoved( KPIM::ResourceABC *,
const TQString &, const TQString & ) ),
- TQT_SLOT( slotSubresourceRemoved( KPIM::ResourceABC *,
+ TQ_SLOT( slotSubresourceRemoved( KPIM::ResourceABC *,
const TQString &, const TQString & ) ) );
- connect( resource, TQT_SIGNAL( signalSubresourceChanged( KPIM::ResourceABC *,
+ connect( resource, TQ_SIGNAL( signalSubresourceChanged( KPIM::ResourceABC *,
const TQString &, const TQString & ) ),
- TQT_SLOT( slotSubresourceChanged( KPIM::ResourceABC *,
+ TQ_SLOT( slotSubresourceChanged( KPIM::ResourceABC *,
const TQString &, const TQString & ) ) );
- //connect( resource, TQT_SIGNAL( resourceSaved( KPIM::ResourceABC * ) ),
- // TQT_SLOT( closeResource( KPIM::ResourceABC * ) ) );
+ //connect( resource, TQ_SIGNAL( resourceSaved( KPIM::ResourceABC * ) ),
+ // TQ_SLOT( closeResource( KPIM::ResourceABC * ) ) );
item->createSubresourceItems();
}
}
diff --git a/kaddressbook/features/resourceselection.desktop b/kaddressbook/features/resourceselection.desktop
index 69675d0c..05bb194c 100644
--- a/kaddressbook/features/resourceselection.desktop
+++ b/kaddressbook/features/resourceselection.desktop
@@ -1,108 +1,9 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_resourceselection
-Name=Address Book Management Plugin
-Name[af]=Adres boek bestuur inprop module
-Name[be]=Дапаўненне "Кіраванне адраснамі кнігамі"
-Name[bg]=Приставка за управление на адресника
-Name[br]=Lugent melestradur ar c'harnedoù chomlec'hioù
-Name[bs]=Dodatak za rukovanje adresarom
-Name[ca]=Endollable de gestió de llibretes d'adreces
-Name[cs]=Modul pro správu knih adres
-Name[da]=Plugin for adressebogshåndtering
-Name[de]=Adressbuchverwaltungs-Modul
-Name[el]=Πρόσθετο διαχείρισης βιβλίου διευθύνσεων
-Name[eo]=Adresar-administra kromaĵo
-Name[es]=Extensión para gestionar la libreta de direcciones
-Name[et]=Aadressihalduri plugin
-Name[eu]=Helbide-liburu kudeaketa plugin-a
-Name[fa]=وصلۀ مدیریت کتاب نشانی
-Name[fi]=Osoitekirjan ylläpidon laajennus
-Name[fr]=Module de gestion de carnet d'adresses
-Name[fy]=Plugin foar adresboekbehear
-Name[ga]=Breiseán Bhainisteoireacht Leabhar na Seoltaí
-Name[gl]=Extensión para xestión do Caderno de Enderezos
-Name[he]=תוסף מנהל הכתובות
-Name[hu]=Címjegyzékkezelő bővítőmodul
-Name[is]=Umsjónaríforrit vistfangaflettis
-Name[it]=Plugin per gestire rubriche indirizzi
-Name[ja]=アドレス帳管理プラグイン
-Name[kk]=Адрестік кітапшамен айналысу плагин модулі
-Name[km]=កម្មវិធី​ជំនួយ​ការ​គ្រប់គ្រង​សៀវភៅ​អាសយដ្ឋាន
-Name[lt]=Adresų knygelės tvarkymo priedas
-Name[mk]=Приклучок за менаџирање адресари
-Name[ms]=Plugin Pengurusan Buku Alamat
-Name[nb]=Programtillegg for adressebok behandling
-Name[nds]=Adressbookpleeg-Moduul
-Name[ne]=ठेगाना पुस्तिका व्यवस्थापन प्लगइन
-Name[nl]=Plugin voor adresboekbeheer
-Name[nn]=Programtillegg for adressebokhandtering
-Name[pl]=Wtyczka zarządzania Książką adresową
-Name[pt]='Plugin' de Gestão do Livro de Endereços
-Name[pt_BR]=Plug-in de Gerenciamento do Livro de Endereços
-Name[ru]=Управление адресной книгой
-Name[se]=Lassemoduvla mii gieđáhalla čujuhusgirjjiid
-Name[sk]=Modul pre správu adresára
-Name[sl]=Vstavek Upravitelj adresarjev
-Name[sr]=Прикључак управљања адресаром
-Name[sr@Latn]=Priključak upravljanja adresarom
-Name[sv]=Insticksprogram för adressbokshantering
-Name[ta]=முகவரி புத்தகம் மேலாண்மை சொருகுப்பொருள்
-Name[tg]=Идоракунии китоби адресӣ
-Name[tr]=Adres Defteri Düzenleme Eklentisi
-Name[uk]=Втулок для керування адресною книгою
-Name[zh_CN]=地址簿管理插件
-Name[zh_TW]=管理通訊錄外掛程式
-Comment=Plugin for managing address books
-Comment[af]=Inprop module om adres boeke te bestuur
-Comment[be]=Дапаўненне для кіравання адраснамі кнігамі
-Comment[bg]=Приставка за управление на адресника
-Comment[br]=Lugent melestradur ar c'harnedoù chomlec'hioù
-Comment[bs]=Dodatak za upravljanje adresarima
-Comment[ca]=Endollable per gestionar llibretes d'adreces
-Comment[cs]=Modul pro správu knih adres
-Comment[da]=Plugin til at håndtere adressebøger
-Comment[de]=Modul zur Verwaltung von Adressbüchern
-Comment[el]=Πρόσθετο για τη διαχείριση βιβλίων διευθύνσεων
-Comment[eo]=Kromaĵo por administri ddresarojn
-Comment[es]=Extenxión para gestionar libretas de direcciones
-Comment[et]=Plugin aadressiraamatute haldamiseks
-Comment[eu]=Helbide-liburuak kudeatzeko plugin-a
-Comment[fa]=وصله برای مدیریت کتابهای نشانی
-Comment[fi]=Osoitekirjojen ylläpidon laajennus
-Comment[fr]=Module pour gérer les carnets d'adresses
-Comment[fy]=Plugin foar it behearen fan adresboeken
-Comment[gl]=Extensión para xestionar cadernos de enderezos
-Comment[he]=תוסף לניהול פנקסי כתובות
-Comment[hu]=Bővítőmodul címjegyzékek kezeléséhez
-Comment[is]=Íforrit til að sjá um vistfangaskrár
-Comment[it]=Plugin per gestire rubriche indirizzi
-Comment[ja]=アドレス帳管理用プラグイン
-Comment[kk]=Адрестік кітапшамен айналысу плагин модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ដើម្បី​គ្រប់គ្រង​សៀវភៅ​អាសយដ្ឋាន
-Comment[lt]=Priedas adresų knygelių tvarkymui
-Comment[mk]=Приклучок за менаџирање адресари
-Comment[ms]=Plugin untuk pengurusan buku alamat
-Comment[nb]=Programtillegg for å håndtere adressebøker
-Comment[nds]=Moduul för't Plegen vun Adressböker
-Comment[ne]=ठगाना पुस्तिका व्यवस्थापनका लागि प्लगइन
-Comment[nl]=Plugin voor het beheren van adresboeken
-Comment[nn]=Programtillegg for handtering av adressebøker
-Comment[pl]=Wtyczka do zarządzania książkami adresowymi
-Comment[pt]=Um 'plugin' para gerir os livros de endereços
-Comment[pt_BR]=Plug-in para gerenciar livros de endereços
-Comment[ru]=Управление адресными книгами
-Comment[se]=Lassemoduvla mii gieđahallá čujuhusgirjjiid
-Comment[sk]=Modul pre správu adresárov
-Comment[sl]=Vstavek za upravljanje adresarjev
-Comment[sr]=Прикључак за управљање адресарима
-Comment[sr@Latn]=Priključak za upravljanje adresarima
-Comment[sv]=Insticksprogram för att hantera adressböcker
-Comment[ta]=பகிர்தல் பட்டியல் நிர்வகித்தலின் சொருகுப்பொருள்
-Comment[tg]=Идоракунии китобҳои адресӣ
-Comment[tr]=Adres defteterini düzenlemek için eklenti
-Comment[uk]=Втулок для керування адресними книгами
-Comment[zh_CN]=管理地址簿的插件
-Comment[zh_TW]=管理通訊錄外掛程式
Type=Service
+X-TDE-Library=libkaddrbk_resourceselection
X-TDE-ServiceTypes=KAddressBook/Extension
X-TDE-KAddressBook-ExtensionPluginVersion=1
+
+Name=Address Book Management Plugin
+
+Comment=Plugin for managing address books
diff --git a/kaddressbook/features/resourceselection.h b/kaddressbook/features/resourceselection.h
index a627fb51..f4914742 100644
--- a/kaddressbook/features/resourceselection.h
+++ b/kaddressbook/features/resourceselection.h
@@ -37,7 +37,7 @@ class ResourceItem;
class ResourceSelection : public KAB::ExtensionWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/filtereditdialog.cpp b/kaddressbook/filtereditdialog.cpp
index 09c06ae4..684fe1e6 100644
--- a/kaddressbook/filtereditdialog.cpp
+++ b/kaddressbook/filtereditdialog.cpp
@@ -124,8 +124,8 @@ void FilterEditDialog::initGUI()
mNameEdit->setFocus();
topLayout->addWidget( label, 0, 0 );
topLayout->addWidget( mNameEdit, 0, 1 );
- connect( mNameEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( filterNameTextChanged( const TQString&) ) );
+ connect( mNameEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( filterNameTextChanged( const TQString&) ) );
mCategoriesView = new TDEListView( page );
mCategoriesView->addColumn( i18n( "Category" ) );
@@ -260,16 +260,16 @@ void FilterDialog::initGUI()
mFilterListBox = new TDEListBox( page );
topLayout->addWidget( mFilterListBox, 0, 0 );
- connect( mFilterListBox, TQT_SIGNAL( selectionChanged( TQListBoxItem * ) ),
- TQT_SLOT( selectionChanged( TQListBoxItem * ) ) );
- connect( mFilterListBox, TQT_SIGNAL( doubleClicked ( TQListBoxItem * ) ),
- TQT_SLOT( edit() ) );
-
- KButtonBox *buttonBox = new KButtonBox( page, Qt::Vertical );
- buttonBox->addButton( i18n( "&Add..." ), TQT_TQOBJECT(this), TQT_SLOT( add() ) );
- mEditButton = buttonBox->addButton( i18n( "&Edit..." ), TQT_TQOBJECT(this), TQT_SLOT( edit() ) );
+ connect( mFilterListBox, TQ_SIGNAL( selectionChanged( TQListBoxItem * ) ),
+ TQ_SLOT( selectionChanged( TQListBoxItem * ) ) );
+ connect( mFilterListBox, TQ_SIGNAL( doubleClicked ( TQListBoxItem * ) ),
+ TQ_SLOT( edit() ) );
+
+ KButtonBox *buttonBox = new KButtonBox( page, TQt::Vertical );
+ buttonBox->addButton( i18n( "&Add..." ), this, TQ_SLOT( add() ) );
+ mEditButton = buttonBox->addButton( i18n( "&Edit..." ), this, TQ_SLOT( edit() ) );
mEditButton->setEnabled( false );
- mRemoveButton = buttonBox->addButton( i18n( "&Remove" ), TQT_TQOBJECT(this), TQT_SLOT( remove() ) );
+ mRemoveButton = buttonBox->addButton( i18n( "&Remove" ), this, TQ_SLOT( remove() ) );
mRemoveButton->setEnabled( false );
buttonBox->layout();
diff --git a/kaddressbook/filtereditdialog.h b/kaddressbook/filtereditdialog.h
index 3e2c9acf..39698ad7 100644
--- a/kaddressbook/filtereditdialog.h
+++ b/kaddressbook/filtereditdialog.h
@@ -39,7 +39,7 @@ class TDEListView;
class FilterDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -70,7 +70,7 @@ class FilterDialog : public KDialogBase
class FilterEditDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
FilterEditDialog( TQWidget *parent, const char *name = 0 );
diff --git a/kaddressbook/filterselectionwidget.cpp b/kaddressbook/filterselectionwidget.cpp
index 7daca0a4..41619cc5 100644
--- a/kaddressbook/filterselectionwidget.cpp
+++ b/kaddressbook/filterselectionwidget.cpp
@@ -38,8 +38,8 @@ FilterSelectionWidget::FilterSelectionWidget( TQWidget *parent, const char *name
mFilterCombo = new KComboBox( this );
label->setBuddy( mFilterCombo );
- connect( mFilterCombo, TQT_SIGNAL( activated( int ) ),
- this, TQT_SIGNAL( filterActivated( int ) ) );
+ connect( mFilterCombo, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SIGNAL( filterActivated( int ) ) );
}
FilterSelectionWidget::~FilterSelectionWidget()
diff --git a/kaddressbook/filterselectionwidget.h b/kaddressbook/filterselectionwidget.h
index 4e0c6728..f0ebba2a 100644
--- a/kaddressbook/filterselectionwidget.h
+++ b/kaddressbook/filterselectionwidget.h
@@ -35,7 +35,7 @@ class KComboBox;
*/
class FilterSelectionWidget : public TQHBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/freebusywidget.cpp b/kaddressbook/freebusywidget.cpp
index 491a9465..f1d11f0b 100644
--- a/kaddressbook/freebusywidget.cpp
+++ b/kaddressbook/freebusywidget.cpp
@@ -45,8 +45,8 @@ FreeBusyWidget::FreeBusyWidget( TDEABC::AddressBook *ab, TQWidget *parent, const
label->setBuddy( mURL );
layout->addWidget( mURL );
- connect( mURL, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( setModified() ) );
+ connect( mURL, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( setModified() ) );
}
FreeBusyWidget::~FreeBusyWidget()
diff --git a/kaddressbook/freebusywidget.h b/kaddressbook/freebusywidget.h
index d9c9ba50..1098b9af 100644
--- a/kaddressbook/freebusywidget.h
+++ b/kaddressbook/freebusywidget.h
@@ -30,7 +30,7 @@
class FreeBusyWidget : public KAB::ContactEditorWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/geowidget.cpp b/kaddressbook/geowidget.cpp
index 8e9726c5..b364202e 100644
--- a/kaddressbook/geowidget.cpp
+++ b/kaddressbook/geowidget.cpp
@@ -84,21 +84,21 @@ GeoWidget::GeoWidget( TDEABC::AddressBook *ab, TQWidget *parent, const char *nam
mExtendedButton->setEnabled( false );
topLayout->addMultiCellWidget( mExtendedButton, 3, 3, 1, 2 );
- connect( mLatitudeBox, TQT_SIGNAL( valueChanged( double ) ),
- TQT_SLOT( setModified() ) );
- connect( mLongitudeBox, TQT_SIGNAL( valueChanged( double ) ),
- TQT_SLOT( setModified() ) );
- connect( mExtendedButton, TQT_SIGNAL( clicked() ),
- TQT_SLOT( editGeoData() ) );
-
- connect( mGeoIsValid, TQT_SIGNAL( toggled( bool ) ),
- mLatitudeBox, TQT_SLOT( setEnabled( bool ) ) );
- connect( mGeoIsValid, TQT_SIGNAL( toggled( bool ) ),
- mLongitudeBox, TQT_SLOT( setEnabled( bool ) ) );
- connect( mGeoIsValid, TQT_SIGNAL( toggled( bool ) ),
- mExtendedButton, TQT_SLOT( setEnabled( bool ) ) );
- connect( mGeoIsValid, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( setModified() ) );
+ connect( mLatitudeBox, TQ_SIGNAL( valueChanged( double ) ),
+ TQ_SLOT( setModified() ) );
+ connect( mLongitudeBox, TQ_SIGNAL( valueChanged( double ) ),
+ TQ_SLOT( setModified() ) );
+ connect( mExtendedButton, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( editGeoData() ) );
+
+ connect( mGeoIsValid, TQ_SIGNAL( toggled( bool ) ),
+ mLatitudeBox, TQ_SLOT( setEnabled( bool ) ) );
+ connect( mGeoIsValid, TQ_SIGNAL( toggled( bool ) ),
+ mLongitudeBox, TQ_SLOT( setEnabled( bool ) ) );
+ connect( mGeoIsValid, TQ_SIGNAL( toggled( bool ) ),
+ mExtendedButton, TQ_SLOT( setEnabled( bool ) ) );
+ connect( mGeoIsValid, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( setModified() ) );
}
GeoWidget::~GeoWidget()
@@ -174,7 +174,7 @@ GeoDialog::GeoDialog( TQWidget *parent, const char *name )
mCityCombo = new KComboBox( page );
topLayout->addWidget( mCityCombo, 0, 1 );
- TQGroupBox *sexagesimalGroup = new TQGroupBox( 0, Qt::Vertical, i18n( "Sexagesimal" ), page );
+ TQGroupBox *sexagesimalGroup = new TQGroupBox( 0, TQt::Vertical, i18n( "Sexagesimal" ), page );
TQGridLayout *sexagesimalLayout = new TQGridLayout( sexagesimalGroup->layout(),
2, 5, spacingHint() );
@@ -225,26 +225,26 @@ GeoDialog::GeoDialog( TQWidget *parent, const char *name )
loadCityList();
- connect( mMapWidget, TQT_SIGNAL( changed() ),
- TQT_SLOT( geoMapChanged() ) );
- connect( mCityCombo, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( cityInputChanged() ) );
- connect( mLatDegrees, TQT_SIGNAL( valueChanged( int ) ),
- TQT_SLOT( sexagesimalInputChanged() ) );
- connect( mLatMinutes, TQT_SIGNAL( valueChanged( int ) ),
- TQT_SLOT( sexagesimalInputChanged() ) );
- connect( mLatSeconds, TQT_SIGNAL( valueChanged( int ) ),
- TQT_SLOT( sexagesimalInputChanged() ) );
- connect( mLatDirection, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( sexagesimalInputChanged() ) );
- connect( mLongDegrees, TQT_SIGNAL( valueChanged( int ) ),
- TQT_SLOT( sexagesimalInputChanged() ) );
- connect( mLongMinutes, TQT_SIGNAL( valueChanged( int ) ),
- TQT_SLOT( sexagesimalInputChanged() ) );
- connect( mLongSeconds, TQT_SIGNAL( valueChanged( int ) ),
- TQT_SLOT( sexagesimalInputChanged() ) );
- connect( mLongDirection, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( sexagesimalInputChanged() ) );
+ connect( mMapWidget, TQ_SIGNAL( changed() ),
+ TQ_SLOT( geoMapChanged() ) );
+ connect( mCityCombo, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( cityInputChanged() ) );
+ connect( mLatDegrees, TQ_SIGNAL( valueChanged( int ) ),
+ TQ_SLOT( sexagesimalInputChanged() ) );
+ connect( mLatMinutes, TQ_SIGNAL( valueChanged( int ) ),
+ TQ_SLOT( sexagesimalInputChanged() ) );
+ connect( mLatSeconds, TQ_SIGNAL( valueChanged( int ) ),
+ TQ_SLOT( sexagesimalInputChanged() ) );
+ connect( mLatDirection, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( sexagesimalInputChanged() ) );
+ connect( mLongDegrees, TQ_SIGNAL( valueChanged( int ) ),
+ TQ_SLOT( sexagesimalInputChanged() ) );
+ connect( mLongMinutes, TQ_SIGNAL( valueChanged( int ) ),
+ TQ_SLOT( sexagesimalInputChanged() ) );
+ connect( mLongSeconds, TQ_SIGNAL( valueChanged( int ) ),
+ TQ_SLOT( sexagesimalInputChanged() ) );
+ connect( mLongDirection, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( sexagesimalInputChanged() ) );
TDEAcceleratorManager::manage( this );
}
diff --git a/kaddressbook/geowidget.h b/kaddressbook/geowidget.h
index 9694edcc..62742bb6 100644
--- a/kaddressbook/geowidget.h
+++ b/kaddressbook/geowidget.h
@@ -50,7 +50,7 @@ typedef struct {
class GeoWidget : public KAB::ContactEditorWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -77,7 +77,7 @@ class GeoWidget : public KAB::ContactEditorWidget
class GeoDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -123,7 +123,7 @@ class GeoDialog : public KDialogBase
class GeoMapWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/imagewidget.cpp b/kaddressbook/imagewidget.cpp
index f10bf7b2..2ff5bdef 100644
--- a/kaddressbook/imagewidget.cpp
+++ b/kaddressbook/imagewidget.cpp
@@ -109,7 +109,7 @@ ImageButton::ImageButton( const TQString &title, TQWidget *parent )
{
setAcceptDrops( true );
- connect( this, TQT_SIGNAL( clicked() ), TQT_SLOT( load() ) );
+ connect( this, TQ_SIGNAL( clicked() ), TQ_SLOT( load() ) );
}
void ImageButton::setReadOnly( bool readOnly )
@@ -206,7 +206,7 @@ void ImageButton::mousePressEvent( TQMouseEvent *event )
void ImageButton::mouseMoveEvent( TQMouseEvent *event )
{
- if ( (event->state() & Qt::LeftButton) &&
+ if ( (event->state() & TQt::LeftButton) &&
(event->pos() - mDragStartPos).manhattanLength() >
TDEGlobalSettings::dndEventDelay() ) {
startDrag();
@@ -216,7 +216,7 @@ void ImageButton::mouseMoveEvent( TQMouseEvent *event )
void ImageButton::contextMenuEvent( TQContextMenuEvent *event )
{
TQPopupMenu menu( this );
- menu.insertItem( i18n( "Reset" ), this, TQT_SLOT( clear() ) );
+ menu.insertItem( i18n( "Reset" ), this, TQ_SLOT( clear() ) );
menu.exec( event->globalPos() );
}
@@ -254,7 +254,7 @@ ImageBaseWidget::ImageBaseWidget( const TQString &title,
TQVBoxLayout *topLayout = new TQVBoxLayout( this, KDialog::marginHint(),
KDialog::spacingHint() );
- TQGroupBox *box = new TQGroupBox( 0, Qt::Vertical, title, this );
+ TQGroupBox *box = new TQGroupBox( 0, TQt::Vertical, title, this );
TQVBoxLayout *layout = new TQVBoxLayout( box->layout(), KDialog::spacingHint() );
mImageButton = new ImageButton( i18n( "Picture" ), box );
@@ -264,7 +264,7 @@ ImageBaseWidget::ImageBaseWidget( const TQString &title,
topLayout->addWidget( box );
- connect( mImageButton, TQT_SIGNAL( changed() ), TQT_SIGNAL( changed() ) );
+ connect( mImageButton, TQ_SIGNAL( changed() ), TQ_SIGNAL( changed() ) );
}
ImageBaseWidget::~ImageBaseWidget()
@@ -302,8 +302,8 @@ ImageWidget::ImageWidget( TDEABC::AddressBook *ab, TQWidget *parent, const char
mLogoWidget = new ImageBaseWidget( TDEABC::Addressee::logoLabel(), this );
layout->addWidget( mLogoWidget );
- connect( mPhotoWidget, TQT_SIGNAL( changed() ), TQT_SLOT( setModified() ) );
- connect( mLogoWidget, TQT_SIGNAL( changed() ), TQT_SLOT( setModified() ) );
+ connect( mPhotoWidget, TQ_SIGNAL( changed() ), TQ_SLOT( setModified() ) );
+ connect( mLogoWidget, TQ_SIGNAL( changed() ), TQ_SLOT( setModified() ) );
}
void ImageWidget::loadContact( TDEABC::Addressee *addr )
diff --git a/kaddressbook/imagewidget.h b/kaddressbook/imagewidget.h
index 77c26478..1cfcdd2d 100644
--- a/kaddressbook/imagewidget.h
+++ b/kaddressbook/imagewidget.h
@@ -37,7 +37,7 @@
*/
class ImageLoader : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -55,7 +55,7 @@ class ImageLoader : public TQObject
*/
class ImageButton : public TQPushButton
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -97,7 +97,7 @@ class ImageButton : public TQPushButton
class ImageBaseWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/imeditwidget.cpp b/kaddressbook/imeditwidget.cpp
index b7f812db..6f7ebf29 100644
--- a/kaddressbook/imeditwidget.cpp
+++ b/kaddressbook/imeditwidget.cpp
@@ -53,15 +53,15 @@ IMEditWidget::IMEditWidget( TQWidget *parent, TDEABC::Addressee &addr, const cha
topLayout->addWidget( label, 0, 0 );
mIMEdit = new KLineEdit( this );
- connect( mIMEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( textChanged( const TQString& ) ) );
- connect( mIMEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SIGNAL( modified() ) );
+ connect( mIMEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( textChanged( const TQString& ) ) );
+ connect( mIMEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SIGNAL( modified() ) );
label->setBuddy( mIMEdit );
topLayout->addWidget( mIMEdit, 0, 1 );
mEditButton = new TQPushButton( i18n( "Edit IM Addresses..." ), this);
- connect( mEditButton, TQT_SIGNAL( clicked() ), TQT_SLOT( edit() ) );
+ connect( mEditButton, TQ_SIGNAL( clicked() ), TQ_SLOT( edit() ) );
topLayout->addMultiCellWidget( mEditButton, 1, 1, 0, 1 );
topLayout->activate();
diff --git a/kaddressbook/imeditwidget.h b/kaddressbook/imeditwidget.h
index ce6b1a94..571ca64d 100644
--- a/kaddressbook/imeditwidget.h
+++ b/kaddressbook/imeditwidget.h
@@ -43,7 +43,7 @@ class TDEListView;
*/
class IMEditWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/incsearchwidget.cpp b/kaddressbook/incsearchwidget.cpp
index efd68ebd..96b655b4 100644
--- a/kaddressbook/incsearchwidget.cpp
+++ b/kaddressbook/incsearchwidget.cpp
@@ -73,18 +73,18 @@ IncSearchWidget::IncSearchWidget( TQWidget *parent, const char *name )
mInputTimer = new TQTimer( this );
- connect( mInputTimer, TQT_SIGNAL( timeout() ),
- TQT_SLOT( timeout() ) );
- connect( mSearchText, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( announceDoSearch() ) );
- connect( mSearchText, TQT_SIGNAL( returnPressed() ),
- TQT_SLOT( announceDoSearch() ) );
- connect( mFieldCombo, TQT_SIGNAL( activated( const TQString& ) ),
- TQT_SLOT( announceDoSearch() ) );
- connect( button, TQT_SIGNAL( clicked() ),
- mSearchText, TQT_SLOT( clear() ) );
- connect( button, TQT_SIGNAL( clicked() ),
- TQT_SLOT( announceDoSearch() ) );
+ connect( mInputTimer, TQ_SIGNAL( timeout() ),
+ TQ_SLOT( timeout() ) );
+ connect( mSearchText, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( announceDoSearch() ) );
+ connect( mSearchText, TQ_SIGNAL( returnPressed() ),
+ TQ_SLOT( announceDoSearch() ) );
+ connect( mFieldCombo, TQ_SIGNAL( activated( const TQString& ) ),
+ TQ_SLOT( announceDoSearch() ) );
+ connect( button, TQ_SIGNAL( clicked() ),
+ mSearchText, TQ_SLOT( clear() ) );
+ connect( button, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( announceDoSearch() ) );
initFields();
diff --git a/kaddressbook/incsearchwidget.h b/kaddressbook/incsearchwidget.h
index 3d573202..6f3c666d 100644
--- a/kaddressbook/incsearchwidget.h
+++ b/kaddressbook/incsearchwidget.h
@@ -34,7 +34,7 @@ class KLineEdit;
class IncSearchWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/interfaces/CMakeLists.txt b/kaddressbook/interfaces/CMakeLists.txt
index b0511b83..97a634ee 100644
--- a/kaddressbook/interfaces/CMakeLists.txt
+++ b/kaddressbook/interfaces/CMakeLists.txt
@@ -33,10 +33,13 @@ install( FILES
##### other data ################################
-install( FILES
+tde_create_translated_desktop(
+ SOURCE
kaddressbook_contacteditorwidget.desktop
kaddressbook_extension.desktop kaddressbook_xxport.desktop
- DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+ DESTINATION ${SERVICETYPES_INSTALL_DIR}
+ PO_DIR kaddressbook-desktops
+)
##### kabinterfaces (shared) ####################
diff --git a/kaddressbook/interfaces/configurewidget.h b/kaddressbook/interfaces/configurewidget.h
index 33bc6f76..5660fed9 100644
--- a/kaddressbook/interfaces/configurewidget.h
+++ b/kaddressbook/interfaces/configurewidget.h
@@ -27,7 +27,7 @@
#include <tqwidget.h>
#include <tdeconfig.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace TDEABC {
class AddressBook;
diff --git a/kaddressbook/interfaces/contacteditorwidget.h b/kaddressbook/interfaces/contacteditorwidget.h
index 85195dd8..5c44e3ec 100644
--- a/kaddressbook/interfaces/contacteditorwidget.h
+++ b/kaddressbook/interfaces/contacteditorwidget.h
@@ -28,7 +28,7 @@
#include <tdeabc/addressbook.h>
#include <klibloader.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#define KAB_CEW_PLUGIN_VERSION 1
@@ -36,7 +36,7 @@ namespace KAB {
class KDE_EXPORT ContactEditorWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/interfaces/core.h b/kaddressbook/interfaces/core.h
index 0132399c..1c578e23 100644
--- a/kaddressbook/interfaces/core.h
+++ b/kaddressbook/interfaces/core.h
@@ -35,7 +35,7 @@
#include <tdeabc/field.h>
#include <kcommand.h>
#include <kxmlguiclient.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace TDEABC {
class AddressBook;
@@ -54,7 +54,7 @@ class SearchManager;
class KDE_EXPORT Core : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -155,32 +155,32 @@ class KDE_EXPORT Core : public TQObject
virtual void setContactSelected( const TQString &uid ) = 0;
/**
- DCOP METHOD: Adds the given email address to address book.
+ DCOP method: Adds the given email address to address book.
*/
virtual void addEmail( const TQString& addr ) = 0;
/**
- DCOP METHOD: Imports the vCard, located at the given url.
+ DCOP method: Imports the vCard, located at the given url.
*/
virtual void importVCard( const KURL& url ) = 0;
/**
- DCOP METHOD: Imports the given vCard.
+ DCOP method: Imports the given vCard.
*/
virtual void importVCardFromData( const TQString& vCard ) = 0;
/**
- DCOP METHOD: Opens contact editor to input a new contact.
+ DCOP method: Opens contact editor to input a new contact.
*/
virtual void newContact() = 0;
/**
- DCOP METHOD: Opens distribution list editor to input a new distribution list.
+ DCOP method: Opens distribution list editor to input a new distribution list.
*/
virtual void newDistributionList() = 0;
/**
- DCOP METHOD: Returns the name of the contact, that matches the given
+ DCOP method: Returns the name of the contact, that matches the given
phone number.
*/
virtual TQString getNameByPhone( const TQString& phone ) = 0;
diff --git a/kaddressbook/interfaces/extensionwidget.h b/kaddressbook/interfaces/extensionwidget.h
index 3de00edd..8422a3c2 100644
--- a/kaddressbook/interfaces/extensionwidget.h
+++ b/kaddressbook/interfaces/extensionwidget.h
@@ -28,7 +28,7 @@
#include <tdeabc/addressbook.h>
#include <klibloader.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#define KAB_EXTENSIONWIDGET_PLUGIN_VERSION 1
@@ -38,7 +38,7 @@ class ConfigureWidget;
class KDE_EXPORT ExtensionWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/interfaces/kaddressbook_contacteditorwidget.desktop b/kaddressbook/interfaces/kaddressbook_contacteditorwidget.desktop
index aba04ef1..9c51ec38 100644
--- a/kaddressbook/interfaces/kaddressbook_contacteditorwidget.desktop
+++ b/kaddressbook/interfaces/kaddressbook_contacteditorwidget.desktop
@@ -1,54 +1,8 @@
[Desktop Entry]
Type=ServiceType
X-TDE-ServiceType=KAddressBook/ContactEditorWidget
+
Comment=KAddressBook Contact Editor Widget Plugin
-Comment[af]=KAddressBook kontak redigeerder inprop module
-Comment[bg]=Приставка за редактиране на контактите от адресника
-Comment[bs]=KAddressBook dodatak za prozor za izmjenu kontakta
-Comment[ca]=Endollable de l'estri editor de contactes de la llibreta d'adreces
-Comment[cs]=Modul widgetu editoru kontaktů KAddressBook
-Comment[da]=KAddressBook plugin til kontakteditorkontrol
-Comment[de]=Adressbuch Kontakteditor-Modul
-Comment[el]=Πρόσθετο επεξεργασίας επαφής του KAddressBook
-Comment[eo]=Kromaĵo por KAddressBook Kontaktredaktila Fenestraĵo
-Comment[es]=Accesorio de elemento de editor de contactos para KAddressBook
-Comment[et]=TDE aadressiraamatu kontaktide redigeerimise plugin
-Comment[eu]=KAddressBook-en kontaktu editore trepetaren plugin-a
-Comment[fa]=وصلۀ عنصر ویرایشگر تماس KAddressBook
-Comment[fi]=Osoitekirjan yhteystietojen muokkainliitännäinen
-Comment[fr]=Module d'édition de contacts de KAddressBook
-Comment[fy]=KAddressBook Kontaktbewurker-plugin
-Comment[gl]=Extensión Editor de Contactos para KAddressBook
-Comment[he]=תוסף תצוגה עבור עורך אנשי קשר של פנקס הכתובות
-Comment[hu]=KAddressBook névjegyszerkesztő bővítőmodul
-Comment[is]=KAddressbook tengiliðaritils íforrit
-Comment[it]=Plugin editor dei contatti di KAddressbook
-Comment[ja]=KAddressbook 連絡先エディタ ウィジェット プラグイン
-Comment[kk]=Адрестік кітапшаның контактты өңдеу модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ធាតុ​ក្រាហ្វិក​កម្មវិធី​និពន្ធ​ទំនាក់ទំនង​របស់ KAddressBook
-Comment[lt]=KAddressBook kontaktų redaktoriaus valdiklių priedas
-Comment[mk]=Приклучок за уредување контакти во КАдресар
-Comment[ms]=Plugin Widget Editor Orang Hubungan KAddressBook
-Comment[nb]=KAddressbook programtillegg for kontakt redigeringselement
-Comment[nds]=Editormoduul för KAdressbook-Kontakten
-Comment[ne]=केडीई ठेगाना पुस्तिका सम्पर्क सम्पादक विजेट प्लगइन
-Comment[nl]=KAddressBook Contacteditor-plugin
-Comment[nn]=Programtillegg for kontaktredigering i TDE-adresseboka
-Comment[pl]=Wtyczka okna edycji wizytówki dla KAddressBook
-Comment[pt]='Plugin' de Edição de 'Widgets' de Contacto do KAddressbook
-Comment[pt_BR]=Plug-in do Editor de Contatos do KAddressBook
-Comment[ru]=Редактор контакта адресной книги TDE
-Comment[sk]=KAddressBook modul pre editor kontaktov
-Comment[sl]=Vstavek gradnika urejevalnika stikov za Adresar
-Comment[sr]=KAddressBook прикључак контроле едитора контаката
-Comment[sr@Latn]=KAddressBook priključak kontrole editora kontakata
-Comment[sv]=Kadressbok-insticksprogram för kontakteditor
-Comment[ta]=கேமுகவரிபுத்தகம் தொடர்பு தொகுப்பான் சாளர சொருகுப்பொருள்
-Comment[tg]=Муҳаррири алоқоти китоби адресии TDE
-Comment[tr]=Adres Defteri Kişi Düzenleyici Parçacık Eklentisi
-Comment[uk]=Втулок редагування контактів адресної книги
-Comment[zh_CN]=KAddressBook 联系人编辑部件插件
-Comment[zh_TW]=KAddressBook 聯絡人編輯器外掛程式
[PropertyDef::X-TDE-KAddressBook-CEWPluginVersion]
Type=int
diff --git a/kaddressbook/interfaces/kaddressbook_extension.desktop b/kaddressbook/interfaces/kaddressbook_extension.desktop
index b5741b6f..880a3f59 100644
--- a/kaddressbook/interfaces/kaddressbook_extension.desktop
+++ b/kaddressbook/interfaces/kaddressbook_extension.desktop
@@ -1,58 +1,8 @@
[Desktop Entry]
Type=ServiceType
X-TDE-ServiceType=KAddressBook/Extension
+
Comment=KAddressBook Extension Plugin
-Comment[af]=KAddressBook uitbrei inprop module
-Comment[be]=Дапаўненне K Адраснай кнігі "Пашырэнне"
-Comment[bg]=Приставка-разширение за адресника
-Comment[bs]=KAddressBook dodatak proširenja
-Comment[ca]=Endollable Extension per al KAddressBook
-Comment[cs]=Rozšiřující modul pro Knihu adres
-Comment[cy]=Ategyn Estyniad KLlyfrCyfeiriadau
-Comment[da]=KAddressBook udvidelsesplugin
-Comment[de]=Erweiterungsmodul für Adressbuch
-Comment[el]=Πρόσθετο επέκτασης του KAddressBook
-Comment[eo]=KAddressBook Etendiga Kromaĵo
-Comment[es]=Plugin de extensión de KAddressBook
-Comment[et]=TDE aadressiraamatu laiendi plugin
-Comment[eu]=KAddressBook-en luzapen plugin-a
-Comment[fa]=وصلۀ پسوند KAddressBook
-Comment[fi]=KAddressbookin laajennusliitännäinen
-Comment[fr]=Module d'extension pour KAddressBook
-Comment[fy]=KAddressBook taheaksel plugin
-Comment[gl]=Engadido de Extensión para KAddressBook
-Comment[he]=תוסף הרחבה עבור פנקס הכתובות
-Comment[hi]=के-एड्रेस-बुक विस्तार प्लगइन
-Comment[hu]=KAddressBook kiegészítő modul
-Comment[is]=KAddressbook viðbótar íforrit
-Comment[it]=Plugin estensione di KAddressbook
-Comment[ja]=KAddressbook 拡張プラグイン
-Comment[kk]=KAddressBook кеңейту модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ផ្នែក​បន្ថែម​របស់ KAddressBook
-Comment[lt]=KAddressBook praplėtimo priedas
-Comment[mk]=Приклучок за екстензии во КАдресар
-Comment[ms]=Plug masuk Sambungan KAddressBook
-Comment[nb]=KAddressbook-programtillegg for utvidelser
-Comment[nds]=Verwiedernmodüul för KAdressbook
-Comment[ne]=केडीई ठेगाना पुस्तिका विस्तार प्लगइन
-Comment[nl]=KAddressBook Extensie Plugin
-Comment[nn]=Programtillegg for utviding av TDE-adresseboka
-Comment[pl]=Wtyczka rozszerzenia dla KAddressBook
-Comment[pt]='Plugin' de Extensão do KAddressbook
-Comment[pt_BR]=Plug-in de Extensão do KAddressBook
-Comment[ro]=Modul de extensie KAddressBook
-Comment[ru]=Расширение адресной книги TDE
-Comment[sk]=KAddressBook plugin rozšírení
-Comment[sl]=Razširitveni vstavek za Adresar
-Comment[sr]=Прикључак KAddressBook-а за проширења
-Comment[sr@Latn]=Priključak KAddressBook-a za proširenja
-Comment[sv]=Kadressbok-utökningsinsticksprogram
-Comment[ta]=கேமுகவரிப்புத்தகம் விரிவாக்க சொருகுப்பொருள்
-Comment[tg]=Модули вусъатоти китоби адресии TDE
-Comment[tr]=KAdresDefteri Uzantı Eklentisi
-Comment[uk]=Втулок розширення адресної книги KAddressBook
-Comment[zh_CN]=KAddressBook 扩展插件
-Comment[zh_TW]=KAddressBook 延伸外掛程式
[PropertyDef::X-TDE-KAddressBook-ExtensionPluginVersion]
Type=int
diff --git a/kaddressbook/interfaces/kaddressbook_xxport.desktop b/kaddressbook/interfaces/kaddressbook_xxport.desktop
index 86864e16..b18cf4fc 100644
--- a/kaddressbook/interfaces/kaddressbook_xxport.desktop
+++ b/kaddressbook/interfaces/kaddressbook_xxport.desktop
@@ -1,60 +1,8 @@
[Desktop Entry]
Type=ServiceType
X-TDE-ServiceType=KAddressBook/XXPort
+
Comment=KAddressBook Import/Export Plugin
-Comment[af]=KAddressBook Invoer/Uitvoer inprop module
-Comment[be]=Дапаўненне K Адраснай кнігі "Імпарт/Экспарт"
-Comment[bg]=Приставка за импортиране/експортиране на данни от адресника
-Comment[br]=Lugent enporzh/ezporzh evit KAddressBook
-Comment[bs]=KAddressBook dodatak za uvoz/izvoz
-Comment[ca]=Endollable d'importació/exportació per a la llibreta d'adreces
-Comment[cs]=Modul knihy adres pro import/export
-Comment[cy]=Ategyn Mewnforio/Allforio KLlyfrCyfeiriadau
-Comment[da]=KAddressBook Import/Eksport-plugin
-Comment[de]=Import/Export-Modul für Adressbuch
-Comment[el]=Πρόσθετο εισαγωγής/εξαγωγής του KAddressBook
-Comment[eo]=KAddressBook Import-/Eksport-Kromaĵo
-Comment[es]=Plugin para importar/exportar en KAddressBook
-Comment[et]=TDE aadressiraamatu import/eksportplugin
-Comment[eu]=KAddressBook-en inportazio/esportazio plugin-a
-Comment[fa]=وصلۀ صادرات/واردات KAddressBook
-Comment[fi]=KAddressbookin tuonti/vienti-liitännäinen
-Comment[fr]=Module d'import / export pour KAddressBook
-Comment[fy]=KAddressBook Ymport/Eksport Plugin
-Comment[gl]=Extensión de Importación/Exportación para KAddressBook
-Comment[he]=תוסף ייבוא/יצוא עבור פנקס הכתובות
-Comment[hi]=के-एड्रेस-बुक आयात/निर्यात प्लगइन
-Comment[hu]=KAddressBook importálási/exportálási bővítőmodul
-Comment[is]=KAddressbook flytja inn/út íforrit
-Comment[it]=Plugin importa/esporta di KAddressbook
-Comment[ja]=KAddressbook インポート/エクスポートプラグイン
-Comment[kk]=KAddressBook импорт/экспорт модулі
-Comment[km]=កម្មវិធី​ជំនួយ​នាំចូល/នាំចេញ​របស់ KAddressBook
-Comment[lt]=KAddressBook importo/eksporto priedas
-Comment[mk]=Приклучок за внесување/изнесување во КАдресар
-Comment[ms]=Plug masuk Import Eksport KAddressBook
-Comment[nb]=KAddressbook-programtillegg for import/eksport
-Comment[nds]=Import-/Exportmoduul för KAdressbook
-Comment[ne]=केडीई ठेगाना पुस्तिका आयात/निर्यात प्लगइन
-Comment[nn]=Programtillegg for importering/ekportering i TDE-adresseboka
-Comment[pl]=Wtyczka importu/eksportu dla KAddressBook
-Comment[pt]='Plugin' de Importação/Exportação do KAddressbook
-Comment[pt_BR]=Plug-in de Importação/Exportação do KAddressBook
-Comment[ro]=Modul de import/export pentru KAddressBook
-Comment[ru]=Экспорт и импорт адресной книги
-Comment[sk]=KAddressBook import/export plugin
-Comment[sl]=Vstavek za uvoz in izvoz iz Adresarja
-Comment[sr]=Прикључак KAddressBook-а за увоз/извоз
-Comment[sr@Latn]=Priključak KAddressBook-a za uvoz/izvoz
-Comment[sv]=Kadressbok-insticksprogram för import/export
-Comment[ta]=கேமுகவரிப்புத்தகம் ஏற்றுமதி/இறக்குமதி சொருகுப்பொருள்
-Comment[tg]=Содирот ва воридоти китоби адрес
-Comment[tr]=KAdresDefteri Al/Gönder Eklentisi
-Comment[uk]=Втулок імпорту/експорту адресної книги KAddressBook
-Comment[uz]=Манзиллар дафтари учун импорт/экспорт плагини
-Comment[zh_CN]=KAddressBook 导入/导出插件
-Comment[zh_TW]=KAddressBook 匯入/匯出外掛程式
[PropertyDef::X-TDE-KAddressBook-XXPortPluginVersion]
Type=int
-
diff --git a/kaddressbook/interfaces/xxport.cpp b/kaddressbook/interfaces/xxport.cpp
index a2874e8c..ca7da285 100644
--- a/kaddressbook/interfaces/xxport.cpp
+++ b/kaddressbook/interfaces/xxport.cpp
@@ -50,10 +50,10 @@ XXPort::XXPort( TDEABC::AddressBook *ab, TQWidget *parent,
d->mExportMapper = new TQSignalMapper( this );
d->mImportMapper = new TQSignalMapper( this );
- connect( d->mExportMapper, TQT_SIGNAL( mapped( const TQString& ) ),
- TQT_SLOT( slotExportActivated( const TQString& ) ) );
- connect( d->mImportMapper, TQT_SIGNAL( mapped( const TQString& ) ),
- TQT_SLOT( slotImportActivated( const TQString& ) ) );
+ connect( d->mExportMapper, TQ_SIGNAL( mapped( const TQString& ) ),
+ TQ_SLOT( slotExportActivated( const TQString& ) ) );
+ connect( d->mImportMapper, TQ_SIGNAL( mapped( const TQString& ) ),
+ TQ_SLOT( slotImportActivated( const TQString& ) ) );
}
XXPort::~XXPort()
@@ -77,7 +77,7 @@ TDEABC::AddresseeList XXPort::importContacts( const TQString& ) const
void XXPort::createImportAction( const TQString &label, const TQString &data )
{
TQString id = "file_import_" + identifier() + ( data.isEmpty() ? TQString( "" ) : "_" + data );
- TDEAction *action = new TDEAction( label, 0, d->mImportMapper, TQT_SLOT( map() ), actionCollection(), id.latin1() );
+ TDEAction *action = new TDEAction( label, 0, d->mImportMapper, TQ_SLOT( map() ), actionCollection(), id.latin1() );
d->mImportMapper->setMapping( action, ( data.isEmpty() ? TQString( "<empty>" ) : data ) );
@@ -87,7 +87,7 @@ void XXPort::createImportAction( const TQString &label, const TQString &data )
void XXPort::createExportAction( const TQString &label, const TQString &data )
{
TQString id = "file_export_" + identifier() + ( data.isEmpty() ? TQString( "" ) : "_" + data );
- TDEAction *action = new TDEAction( label, 0, d->mExportMapper, TQT_SLOT( map() ), actionCollection(), id.latin1() );
+ TDEAction *action = new TDEAction( label, 0, d->mExportMapper, TQ_SLOT( map() ), actionCollection(), id.latin1() );
d->mExportMapper->setMapping( action, ( data.isEmpty() ? TQString( "<empty>" ) : data ) );
diff --git a/kaddressbook/interfaces/xxport.h b/kaddressbook/interfaces/xxport.h
index b0dd43e7..bed5b057 100644
--- a/kaddressbook/interfaces/xxport.h
+++ b/kaddressbook/interfaces/xxport.h
@@ -30,7 +30,7 @@
#include <tdeabc/addresseelist.h>
#include <klibloader.h>
#include <kxmlguiclient.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#define KAB_XXPORT_PLUGIN_VERSION 1
@@ -67,7 +67,7 @@ namespace KAB {
class KDE_EXPORT XXPort : public TQObject, virtual public KXMLGUIClient
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/jumpbuttonbar.cpp b/kaddressbook/jumpbuttonbar.cpp
index 878fff5d..f58546ca 100644
--- a/kaddressbook/jumpbuttonbar.cpp
+++ b/kaddressbook/jumpbuttonbar.cpp
@@ -72,7 +72,7 @@ JumpButtonBar::JumpButtonBar( KAB::Core *core, TQWidget *parent, const char *nam
layout->setAutoAdd( true );
layout->setResizeMode( TQLayout::FreeResize );
- mGroupBox = new TQButtonGroup( 1, Qt::Horizontal, this );
+ mGroupBox = new TQButtonGroup( 1, TQt::Horizontal, this );
mGroupBox->setExclusive( true );
mGroupBox->layout()->setSpacing( 0 );
mGroupBox->layout()->setMargin( 0 );
@@ -98,7 +98,7 @@ void JumpButtonBar::updateButtons()
TQFontMetrics fm = fontMetrics();
TQPushButton *btn = new TQPushButton( "", this );
btn->hide();
- TQSize buttonSize = style().tqsizeFromContents( TQStyle::CT_PushButton, btn,
+ TQSize buttonSize = style().sizeFromContents( TQStyle::CT_PushButton, btn,
fm.size( ShowPrefix, "X - X") ).
expandedTo( TQApplication::globalStrut() );
delete btn;
@@ -132,7 +132,7 @@ void JumpButtonBar::updateButtons()
for ( uint i = 0; i < characters.count(); ++i ) {
JumpButton *button = new JumpButton( characters[ i ], TQString(),
mGroupBox );
- connect( button, TQT_SIGNAL( clicked() ), this, TQT_SLOT( letterClicked() ) );
+ connect( button, TQ_SIGNAL( clicked() ), this, TQ_SLOT( letterClicked() ) );
mButtons.append( button );
button->show();
}
@@ -151,7 +151,7 @@ void JumpButtonBar::updateButtons()
if ( characters.count() - current <= possibleButtons - i ) {
JumpButton *button = new JumpButton( characters[ current ],
TQString(), mGroupBox );
- connect( button, TQT_SIGNAL( clicked() ), this, TQT_SLOT( letterClicked() ) );
+ connect( button, TQ_SIGNAL( clicked() ), this, TQ_SLOT( letterClicked() ) );
mButtons.append( button );
button->show();
current++;
@@ -163,7 +163,7 @@ void JumpButtonBar::updateButtons()
range.append( characters[ j ] );
JumpButton *button = new JumpButton( characters[ current ],
characters[ pos ], mGroupBox );
- connect( button, TQT_SIGNAL( clicked() ), this, TQT_SLOT( letterClicked() ) );
+ connect( button, TQ_SIGNAL( clicked() ), this, TQ_SLOT( letterClicked() ) );
mButtons.append( button );
button->show();
current = ( i + 1 ) * offset;
diff --git a/kaddressbook/jumpbuttonbar.h b/kaddressbook/jumpbuttonbar.h
index 48a52018..4be2fafc 100644
--- a/kaddressbook/jumpbuttonbar.h
+++ b/kaddressbook/jumpbuttonbar.h
@@ -46,7 +46,7 @@ class Field;
*/
class JumpButtonBar : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 2f60f046..85b08976 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -94,7 +94,7 @@
KABCore::KABCore( KXMLGUIClient *client, bool readWrite, TQWidget *parent,
const TQString &file, const char *name )
- : KAB::Core( client, TQT_TQOBJECT(parent), name ), mStatusBar( 0 ), mViewManager( 0 ),
+ : KAB::Core( client, parent, name ), mStatusBar( 0 ), mViewManager( 0 ),
mExtensionManager( 0 ), mJumpButtonBar( 0 ), mCategorySelectDialog( 0 ),
mCategoryEditDialog( 0 ), mLdapSearchDialog( 0 ), mReadWrite( readWrite ),
mModified( false )
@@ -104,8 +104,8 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, TQWidget *parent,
mIsPart = !parent->isA( "KAddressBookMain" );
mAddressBookChangedTimer = new TQTimer( this );
- connect( mAddressBookChangedTimer, TQT_SIGNAL( timeout() ),
- this, TQT_SLOT( addressBookChanged() ) );
+ connect( mAddressBookChangedTimer, TQ_SIGNAL( timeout() ),
+ this, TQ_SLOT( addressBookChanged() ) );
if ( file.isEmpty() ) {
mAddressBook = TDEABC::StdAddressBook::self( true );
@@ -140,51 +140,51 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, TQWidget *parent,
mAddressBook->addCustomField( i18n( "Blog" ), TDEABC::Field::Personal,
"BlogFeed", "KADDRESSBOOK" );
- mSearchManager = new KAB::SearchManager( mAddressBook, TQT_TQOBJECT(parent) );
+ mSearchManager = new KAB::SearchManager( mAddressBook, parent );
- connect( mSearchManager, TQT_SIGNAL( contactsUpdated() ),
- this, TQT_SLOT( slotContactsUpdated() ) );
+ connect( mSearchManager, TQ_SIGNAL( contactsUpdated() ),
+ this, TQ_SLOT( slotContactsUpdated() ) );
initGUI();
- connect( mAddressBook, TQT_SIGNAL( addressBookChanged( AddressBook* ) ),
- TQT_SLOT( delayedAddressBookChanged() ) );
- connect( mAddressBook, TQT_SIGNAL( loadingFinished( Resource* ) ),
- TQT_SLOT( delayedAddressBookChanged() ) );
+ connect( mAddressBook, TQ_SIGNAL( addressBookChanged( AddressBook* ) ),
+ TQ_SLOT( delayedAddressBookChanged() ) );
+ connect( mAddressBook, TQ_SIGNAL( loadingFinished( Resource* ) ),
+ TQ_SLOT( delayedAddressBookChanged() ) );
mIncSearchWidget->setFocus();
- connect( mViewManager, TQT_SIGNAL( selected( const TQString& ) ),
- TQT_SLOT( setContactSelected( const TQString& ) ) );
- connect( mViewManager, TQT_SIGNAL( executed( const TQString& ) ),
- TQT_SLOT( editContact( const TQString& ) ) );
- connect( mViewManager, TQT_SIGNAL( modified() ),
- TQT_SLOT( setModified() ) );
- connect( mViewManager, TQT_SIGNAL( urlDropped( const KURL& ) ),
- mXXPortManager, TQT_SLOT( importVCard( const KURL& ) ) );
- connect( mViewManager, TQT_SIGNAL( viewFieldsChanged() ),
- TQT_SLOT( updateIncSearchWidget() ) );
- connect( mExtensionManager, TQT_SIGNAL( modified( const TDEABC::Addressee::List& ) ),
- this, TQT_SLOT( extensionModified( const TDEABC::Addressee::List& ) ) );
- connect( mExtensionManager, TQT_SIGNAL( deleted( const TQStringList& ) ),
- this, TQT_SLOT( extensionDeleted( const TQStringList& ) ) );
-
- connect( mXXPortManager, TQT_SIGNAL( modified() ),
- TQT_SLOT( setModified() ) );
-
- connect( mDetailsViewer, TQT_SIGNAL( highlightedMessage( const TQString& ) ),
- TQT_SLOT( detailsHighlighted( const TQString& ) ) );
-
- connect( mIncSearchWidget, TQT_SIGNAL( scrollUp() ),
- mViewManager, TQT_SLOT( scrollUp() ) );
- connect( mIncSearchWidget, TQT_SIGNAL( scrollDown() ),
- mViewManager, TQT_SLOT( scrollDown() ) );
+ connect( mViewManager, TQ_SIGNAL( selected( const TQString& ) ),
+ TQ_SLOT( setContactSelected( const TQString& ) ) );
+ connect( mViewManager, TQ_SIGNAL( executed( const TQString& ) ),
+ TQ_SLOT( editContact( const TQString& ) ) );
+ connect( mViewManager, TQ_SIGNAL( modified() ),
+ TQ_SLOT( setModified() ) );
+ connect( mViewManager, TQ_SIGNAL( urlDropped( const KURL& ) ),
+ mXXPortManager, TQ_SLOT( importVCard( const KURL& ) ) );
+ connect( mViewManager, TQ_SIGNAL( viewFieldsChanged() ),
+ TQ_SLOT( updateIncSearchWidget() ) );
+ connect( mExtensionManager, TQ_SIGNAL( modified( const TDEABC::Addressee::List& ) ),
+ this, TQ_SLOT( extensionModified( const TDEABC::Addressee::List& ) ) );
+ connect( mExtensionManager, TQ_SIGNAL( deleted( const TQStringList& ) ),
+ this, TQ_SLOT( extensionDeleted( const TQStringList& ) ) );
+
+ connect( mXXPortManager, TQ_SIGNAL( modified() ),
+ TQ_SLOT( setModified() ) );
+
+ connect( mDetailsViewer, TQ_SIGNAL( highlightedMessage( const TQString& ) ),
+ TQ_SLOT( detailsHighlighted( const TQString& ) ) );
+
+ connect( mIncSearchWidget, TQ_SIGNAL( scrollUp() ),
+ mViewManager, TQ_SLOT( scrollUp() ) );
+ connect( mIncSearchWidget, TQ_SIGNAL( scrollDown() ),
+ mViewManager, TQ_SLOT( scrollDown() ) );
mAddressBookService = new KAddressBookService( this );
mCommandHistory = new KCommandHistory( actionCollection(), true );
- connect( mCommandHistory, TQT_SIGNAL( commandExecuted() ),
- mSearchManager, TQT_SLOT( reload() ) );
+ connect( mCommandHistory, TQ_SIGNAL( commandExecuted() ),
+ mSearchManager, TQ_SLOT( reload() ) );
mSearchManager->reload();
@@ -1026,10 +1026,10 @@ void KABCore::openLDAPDialog()
if ( !mLdapSearchDialog ) {
mLdapSearchDialog = new LDAPSearchDialog( mAddressBook, this, mWidget );
- connect( mLdapSearchDialog, TQT_SIGNAL( addresseesAdded() ),
- TQT_SLOT( addressBookChanged() ) );
- connect( mLdapSearchDialog, TQT_SIGNAL( addresseesAdded() ),
- TQT_SLOT( setModified() ) );
+ connect( mLdapSearchDialog, TQ_SIGNAL( addresseesAdded() ),
+ TQ_SLOT( addressBookChanged() ) );
+ connect( mLdapSearchDialog, TQ_SIGNAL( addresseesAdded() ),
+ TQ_SLOT( setModified() ) );
} else
mLdapSearchDialog->restoreSettings();
@@ -1043,8 +1043,8 @@ void KABCore::configure()
saveSettings();
KCMultiDialog dlg( mWidget, "", true );
- connect( &dlg, TQT_SIGNAL( configCommitted() ),
- this, TQT_SLOT( configurationChanged() ) );
+ connect( &dlg, TQ_SIGNAL( configCommitted() ),
+ this, TQ_SLOT( configurationChanged() ) );
dlg.addModule( "kabconfig.desktop" );
dlg.addModule( "kabldapconfig.desktop" );
@@ -1157,10 +1157,10 @@ AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( TQWidget *parent,
{
AddresseeEditorDialog *dialog = new AddresseeEditorDialog( this, parent,
name ? name : "editorDialog" );
- connect( dialog, TQT_SIGNAL( contactModified( const TDEABC::Addressee& ) ),
- TQT_SLOT( contactModified( const TDEABC::Addressee& ) ) );
- connect( dialog, TQT_SIGNAL( editorDestroyed( const TQString& ) ),
- TQT_SLOT( slotEditorDestroyed( const TQString& ) ) );
+ connect( dialog, TQ_SIGNAL( contactModified( const TDEABC::Addressee& ) ),
+ TQ_SLOT( contactModified( const TDEABC::Addressee& ) ) );
+ connect( dialog, TQ_SIGNAL( editorDestroyed( const TQString& ) ),
+ TQ_SLOT( slotEditorDestroyed( const TQString& ) ) );
return dialog;
}
@@ -1199,23 +1199,23 @@ void KABCore::initGUI()
searchTB->boxLayout()->setSpacing( KDialog::spacingHint() );
mIncSearchWidget = new IncSearchWidget( searchTB, "tde toolbar widget");
searchTB->setStretchableWidget( mIncSearchWidget );
- connect( mIncSearchWidget, TQT_SIGNAL( doSearch( const TQString& ) ),
- TQT_SLOT( incrementalTextSearch( const TQString& ) ) );
+ connect( mIncSearchWidget, TQ_SIGNAL( doSearch( const TQString& ) ),
+ TQ_SLOT( incrementalTextSearch( const TQString& ) ) );
mDetailsSplitter = new TQSplitter( mWidget );
mLeftSplitter = new TQSplitter( mDetailsSplitter );
- mLeftSplitter->setOrientation( KABPrefs::instance()->contactListAboveExtensions() ? Qt::Vertical : Qt::Horizontal );
+ mLeftSplitter->setOrientation( KABPrefs::instance()->contactListAboveExtensions() ? TQt::Vertical : TQt::Horizontal );
topLayout->addWidget( searchTB );
topLayout->addWidget( mDetailsSplitter );
mDetailsStack = new TQWidgetStack( mDetailsSplitter );
mExtensionManager = new ExtensionManager( new TQWidget( mLeftSplitter ), mDetailsStack, this, this );
- connect( mExtensionManager, TQT_SIGNAL( detailsWidgetDeactivated( TQWidget* ) ),
- this, TQT_SLOT( deactivateDetailsWidget( TQWidget* ) ) );
- connect( mExtensionManager, TQT_SIGNAL( detailsWidgetActivated( TQWidget* ) ),
- this, TQT_SLOT( activateDetailsWidget( TQWidget* ) ) );
+ connect( mExtensionManager, TQ_SIGNAL( detailsWidgetDeactivated( TQWidget* ) ),
+ this, TQ_SLOT( deactivateDetailsWidget( TQWidget* ) ) );
+ connect( mExtensionManager, TQ_SIGNAL( detailsWidgetActivated( TQWidget* ) ),
+ this, TQ_SLOT( activateDetailsWidget( TQWidget* ) ) );
TQWidget *viewWidget = new TQWidget( mLeftSplitter );
if ( KABPrefs::instance()->contactListAboveExtensions() )
@@ -1244,8 +1244,8 @@ void KABCore::initGUI()
i18n( "Click this button if you want to add more contacts to "
"the current distribution list. You will be shown a dialog that allows "
"to enter a list of existing contacts to this distribution list." ) );
- connect( mAddDistListButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( editSelectedDistributionList() ) );
+ connect( mAddDistListButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( editSelectedDistributionList() ) );
buttonLayout->addWidget( mAddDistListButton );
mDistListButtonWidget->setShown( false );
viewLayout->addWidget( mDistListButtonWidget );
@@ -1257,16 +1257,16 @@ void KABCore::initGUI()
TQWhatsThis::add( mRemoveDistListButton,
i18n( "Click this button if you want to remove the selected contacts from "
"the current distribution list." ) );
- connect( mRemoveDistListButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( removeSelectedContactsFromDistList() ) );
+ connect( mRemoveDistListButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( removeSelectedContactsFromDistList() ) );
buttonLayout->addWidget( mRemoveDistListButton );
#endif
mFilterSelectionWidget = new FilterSelectionWidget( searchTB , "tde toolbar widget" );
mViewManager->setFilterSelectionWidget( mFilterSelectionWidget );
- connect( mFilterSelectionWidget, TQT_SIGNAL( filterActivated( int ) ),
- mViewManager, TQT_SLOT( setActiveFilter( int ) ) );
+ connect( mFilterSelectionWidget, TQ_SIGNAL( filterActivated( int ) ),
+ mViewManager, TQ_SLOT( setActiveFilter( int ) ) );
mDetailsWidget = new TQWidget( mDetailsSplitter );
mDetailsLayout = new TQHBoxLayout( mDetailsWidget );
@@ -1280,19 +1280,19 @@ void KABCore::initGUI()
detailsPageLayout->addWidget( mDetailsViewer );
mDistListEntryView = new KAB::DistributionListEntryView( this, mWidget );
- connect( mDistListEntryView, TQT_SIGNAL( distributionListClicked( const TQString& ) ),
- this, TQT_SLOT( sendMailToDistributionList( const TQString& ) ) );
+ connect( mDistListEntryView, TQ_SIGNAL( distributionListClicked( const TQString& ) ),
+ this, TQ_SLOT( sendMailToDistributionList( const TQString& ) ) );
mDetailsStack->addWidget( mDistListEntryView );
mDetailsStack->addWidget( mDetailsWidget );
mDetailsStack->raiseWidget( mDetailsWidget );
mDetailsSplitter->moveToLast( mDetailsStack );
- connect( mDetailsViewer, TQT_SIGNAL( addressClicked( const TQString&) ),
- this, TQT_SLOT( showContactsAddress( const TQString& ) ) );
+ connect( mDetailsViewer, TQ_SIGNAL( addressClicked( const TQString&) ),
+ this, TQ_SLOT( showContactsAddress( const TQString& ) ) );
topLayout->setStretchFactor( mDetailsSplitter, 1 );
- mXXPortManager = new XXPortManager( this, TQT_TQOBJECT(mWidget) );
+ mXXPortManager = new XXPortManager( this, mWidget );
initActions();
}
@@ -1303,62 +1303,62 @@ void KABCore::createJumpButtonBar()
mDetailsLayout->addWidget( mJumpButtonBar );
mDetailsLayout->setStretchFactor( mJumpButtonBar, 1 );
- connect( mJumpButtonBar, TQT_SIGNAL( jumpToLetter( const TQString& ) ),
- TQT_SLOT( incrementalJumpButtonSearch( const TQString& ) ) );
- connect( mViewManager, TQT_SIGNAL( sortFieldChanged() ),
- mJumpButtonBar, TQT_SLOT( updateButtons() ) );
+ connect( mJumpButtonBar, TQ_SIGNAL( jumpToLetter( const TQString& ) ),
+ TQ_SLOT( incrementalJumpButtonSearch( const TQString& ) ) );
+ connect( mViewManager, TQ_SIGNAL( sortFieldChanged() ),
+ mJumpButtonBar, TQ_SLOT( updateButtons() ) );
}
void KABCore::initActions()
{
- connect( TQApplication::clipboard(), TQT_SIGNAL( dataChanged() ),
- TQT_SLOT( clipboardDataChanged() ) );
+ connect( TQApplication::clipboard(), TQ_SIGNAL( dataChanged() ),
+ TQ_SLOT( clipboardDataChanged() ) );
TDEAction *action;
// file menu
mActionMail = new TDEAction( i18n( "&Send Email to Contact..." ), "mail-send", 0,
- this, TQT_SLOT( sendMail() ), actionCollection(), "file_mail" );
- action = KStdAction::print( this, TQT_SLOT( print() ), actionCollection() );
+ this, TQ_SLOT( sendMail() ), actionCollection(), "file_mail" );
+ action = KStdAction::print( this, TQ_SLOT( print() ), actionCollection() );
mActionMail->setWhatsThis( i18n( "Send a mail to all selected contacts." ) );
action->setWhatsThis( i18n( "Print a special number of contacts." ) );
mActionSave = KStdAction::save( this,
- TQT_SLOT( save() ), actionCollection(), "file_sync" );
+ TQ_SLOT( save() ), actionCollection(), "file_sync" );
mActionSave->setWhatsThis( i18n( "Save all changes of the address book to the storage backend." ) );
action = new TDEAction( i18n( "&New Contact..." ), "identity", CTRL+Key_N, this,
- TQT_SLOT( newContact() ), actionCollection(), "file_new_contact" );
+ TQ_SLOT( newContact() ), actionCollection(), "file_new_contact" );
action->setWhatsThis( i18n( "Create a new contact<p>You will be presented with a dialog where you can add all data about a person, including addresses and phone numbers." ) );
action = new TDEAction( i18n( "&New Distribution List..." ), "kontact_contacts", 0, this,
- TQT_SLOT( newDistributionList() ), actionCollection(), "file_new_distributionlist" );
+ TQ_SLOT( newDistributionList() ), actionCollection(), "file_new_distributionlist" );
action->setWhatsThis( i18n( "Create a new distribution list<p>You will be presented with a dialog where you can create a new distribution list." ) );
mActionMailVCard = new TDEAction( i18n("Send &Contact..."), "mail_post_to", 0,
- this, TQT_SLOT( mailVCard() ),
+ this, TQ_SLOT( mailVCard() ),
actionCollection(), "file_mail_vcard" );
mActionMailVCard->setWhatsThis( i18n( "Send a mail with the selected contact as attachment." ) );
mActionChat = new TDEAction( i18n("Chat &With..."), 0,
- this, TQT_SLOT( startChat() ),
+ this, TQ_SLOT( startChat() ),
actionCollection(), "file_chat" );
mActionChat->setWhatsThis( i18n( "Start a chat with the selected contact." ) );
mActionEditAddressee = new TDEAction( i18n( "&Edit Contact..." ), "edit", 0,
- this, TQT_SLOT( editContact() ),
+ this, TQ_SLOT( editContact() ),
actionCollection(), "file_properties" );
mActionEditAddressee->setWhatsThis( i18n( "Edit a contact<p>You will be presented with a dialog where you can change all data about a person, including addresses and phone numbers." ) );
mActionMerge = new TDEAction( i18n( "&Merge Contacts" ), "", 0,
- this, TQT_SLOT( mergeContacts() ),
+ this, TQ_SLOT( mergeContacts() ),
actionCollection(), "edit_merge" );
// edit menu
- mActionCopy = KStdAction::copy( this, TQT_SLOT( copyContacts() ), actionCollection() );
- mActionCut = KStdAction::cut( this, TQT_SLOT( cutContacts() ), actionCollection() );
- mActionPaste = KStdAction::paste( this, TQT_SLOT( pasteContacts() ), actionCollection() );
- action = KStdAction::selectAll( this, TQT_SLOT( selectAllContacts() ), actionCollection() );
+ mActionCopy = KStdAction::copy( this, TQ_SLOT( copyContacts() ), actionCollection() );
+ mActionCut = KStdAction::cut( this, TQ_SLOT( cutContacts() ), actionCollection() );
+ mActionPaste = KStdAction::paste( this, TQ_SLOT( pasteContacts() ), actionCollection() );
+ action = KStdAction::selectAll( this, TQ_SLOT( selectAllContacts() ), actionCollection() );
mActionCopy->setWhatsThis( i18n( "Copy the currently selected contact(s) to system clipboard in vCard format." ) );
mActionCut->setWhatsThis( i18n( "Cuts the currently selected contact(s) to system clipboard in vCard format." ) );
mActionPaste->setWhatsThis( i18n( "Paste the previously cut or copied contacts from clipboard." ) );
@@ -1367,19 +1367,19 @@ void KABCore::initActions()
// mActionRedo->setWhatsThis( i18n( "Redoes the last <b>Cut</b>, <b>Copy</b> or <b>Paste</b>." ) );
mActionDelete = new TDEAction( i18n( "&Delete Contact" ), "edit-delete",
- Key_Delete, this, TQT_SLOT( deleteContacts() ),
+ Key_Delete, this, TQ_SLOT( deleteContacts() ),
actionCollection(), "edit_delete" );
mActionDelete->setWhatsThis( i18n( "Delete all selected contacts." ) );
mActionCopyAddresseeTo = new TDEAction( i18n( "&Copy Contact To..." ), "", 0,
- this, TQT_SLOT( copySelectedContactToResource() ),
+ this, TQ_SLOT( copySelectedContactToResource() ),
actionCollection(), "copy_contact_to" );
const TQString copyMoveWhatsThis = i18n( "Store a contact in a different Addressbook<p>You will be presented with a dialog where you can select a new storage place for this contact." );
mActionCopyAddresseeTo->setWhatsThis( copyMoveWhatsThis );
mActionMoveAddresseeTo = new TDEAction( i18n( "M&ove Contact To..." ), "", 0,
- this, TQT_SLOT( moveSelectedContactToResource() ),
+ this, TQ_SLOT( moveSelectedContactToResource() ),
actionCollection(), "move_contact_to" );
mActionMoveAddresseeTo->setWhatsThis( copyMoveWhatsThis );
@@ -1388,41 +1388,41 @@ void KABCore::initActions()
actionCollection(), "options_show_jump_bar" );
mActionJumpBar->setWhatsThis( i18n( "Toggle whether the jump button bar shall be visible." ) );
mActionJumpBar->setCheckedState( i18n( "Hide Jump Bar") );
- connect( mActionJumpBar, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( setJumpButtonBarVisible( bool ) ) );
+ connect( mActionJumpBar, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( setJumpButtonBarVisible( bool ) ) );
mActionDetails = new TDEToggleAction( i18n( "Show Details" ), 0, 0,
actionCollection(), "options_show_details" );
mActionDetails->setWhatsThis( i18n( "Toggle whether the details page shall be visible." ) );
mActionDetails->setCheckedState( i18n( "Hide Details") );
- connect( mActionDetails, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( setDetailsVisible( bool ) ) );
+ connect( mActionDetails, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( setDetailsVisible( bool ) ) );
if ( mIsPart )
action = new TDEAction( i18n( "&Configure Address Book..." ), "configure", 0,
- this, TQT_SLOT( configure() ), actionCollection(),
+ this, TQ_SLOT( configure() ), actionCollection(),
"kaddressbook_configure" );
else
- action = KStdAction::preferences( this, TQT_SLOT( configure() ), actionCollection() );
+ action = KStdAction::preferences( this, TQ_SLOT( configure() ), actionCollection() );
action->setWhatsThis( i18n( "You will be presented with a dialog, that offers you all possibilities to configure KAddressBook." ) );
// misc
action = new TDEAction( i18n( "&Lookup Addresses in LDAP Directory..." ), "edit-find", 0,
- this, TQT_SLOT( openLDAPDialog() ), actionCollection(), "ldap_lookup" );
+ this, TQ_SLOT( openLDAPDialog() ), actionCollection(), "ldap_lookup" );
action->setWhatsThis( i18n( "Search for contacts on a LDAP server<p>You will be presented with a dialog, where you can search for contacts and select the ones you want to add to your local address book." ) );
mActionWhoAmI = new TDEAction( i18n( "Set as Personal Contact Data" ), "preferences-desktop-personal", 0, this,
- TQT_SLOT( setWhoAmI() ), actionCollection(),
+ TQ_SLOT( setWhoAmI() ), actionCollection(),
"edit_set_personal" );
mActionWhoAmI->setWhatsThis( i18n( "Set the personal contact<p>The data of this contact will be used in many other TDE applications, so you do not have to input your personal data several times." ) );
mActionCategories = new TDEAction( i18n( "Select Categories..." ), 0, this,
- TQT_SLOT( setCategories() ), actionCollection(),
+ TQ_SLOT( setCategories() ), actionCollection(),
"edit_set_categories" );
mActionCategories->setWhatsThis( i18n( "Set the categories for all selected contacts." ) );
TDEAction *clearLocation = new TDEAction( i18n( "Clear Search Bar" ),
TQApplication::reverseLayout() ? "clear_left" : "locationbar_erase",
- CTRL+Key_L, this, TQT_SLOT( slotClearSearchBar() ), actionCollection(), "clear_search" );
+ CTRL+Key_L, this, TQ_SLOT( slotClearSearchBar() ), actionCollection(), "clear_search" );
clearLocation->setWhatsThis( i18n( "Clear Search Bar<p>"
"Clears the content of the quick search bar." ) );
@@ -1490,9 +1490,9 @@ void KABCore::setCategories()
// Show the category dialog
if ( mCategorySelectDialog == 0 ) {
mCategorySelectDialog = new KPIM::CategorySelectDialog( KABPrefs::instance(), mWidget );
- connect( mCategorySelectDialog, TQT_SIGNAL( categoriesSelected( const TQStringList& ) ),
- TQT_SLOT( categoriesSelected( const TQStringList& ) ) );
- connect( mCategorySelectDialog, TQT_SIGNAL( editCategories() ), TQT_SLOT( editCategories() ) );
+ connect( mCategorySelectDialog, TQ_SIGNAL( categoriesSelected( const TQStringList& ) ),
+ TQ_SLOT( categoriesSelected( const TQStringList& ) ) );
+ connect( mCategorySelectDialog, TQ_SIGNAL( editCategories() ), TQ_SLOT( editCategories() ) );
}
mCategorySelectDialog->show();
@@ -1537,8 +1537,8 @@ void KABCore::editCategories()
{
if ( mCategoryEditDialog == 0 ) {
mCategoryEditDialog = new KPIM::CategoryEditDialog( KABPrefs::instance(), mWidget );
- connect( mCategoryEditDialog, TQT_SIGNAL( categoryConfigChanged() ),
- mCategorySelectDialog, TQT_SLOT( updateCategoryConfig() ) );
+ connect( mCategoryEditDialog, TQ_SIGNAL( categoryConfigChanged() ),
+ mCategorySelectDialog, TQ_SLOT( updateCategoryConfig() ) );
}
mCategoryEditDialog->show();
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
index 2a4bb2f4..43ce8bb3 100644
--- a/kaddressbook/kabcore.h
+++ b/kaddressbook/kabcore.h
@@ -33,7 +33,7 @@
#include <tqwidget.h>
#include "core.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace TDEABC {
class AddressBook;
@@ -82,7 +82,7 @@ typedef struct {
class KDE_EXPORT KABCore : public KAB::Core
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -293,38 +293,38 @@ class KDE_EXPORT KABCore : public KAB::Core
void contactModified( const TDEABC::Addressee &addr );
/**
- DCOP METHOD: Adds the given email address to address book.
+ DCOP method: Adds the given email address to address book.
*/
virtual void addEmail( const TQString& addr );
/**
- DCOP METHOD: Imports the vCard, located at the given url.
+ DCOP method: Imports the vCard, located at the given url.
*/
virtual void importVCard( const KURL& url );
/**
- DCOP METHOD: Imports the given vCard.
+ DCOP method: Imports the given vCard.
*/
virtual void importVCardFromData( const TQString& vCard );
/**
- DCOP METHOD: Opens contact editor to input a new contact.
+ DCOP method: Opens contact editor to input a new contact.
*/
virtual void newContact();
/**
- DCOP METHOD: Opens distribution list editor to create a new distribution list
+ DCOP method: Opens distribution list editor to create a new distribution list
*/
virtual void newDistributionList();
/**
- DCOP METHOD: Returns the name of the contact, that matches the given
+ DCOP method: Returns the name of the contact, that matches the given
phone number.
*/
virtual TQString getNameByPhone( const TQString& phone );
/**
- DCOP METHOD: Handle command line arguments, return true if handled
+ DCOP method: Handle command line arguments, return true if handled
and false if no args was given. The iface is either the mainwin or the part.
*/
bool handleCommandLine( KAddressBookIface* iface );
diff --git a/kaddressbook/kaddressbook.desktop b/kaddressbook/kaddressbook.desktop
index 3842037e..2beb4a01 100644
--- a/kaddressbook/kaddressbook.desktop
+++ b/kaddressbook/kaddressbook.desktop
@@ -1,72 +1,8 @@
[Desktop Entry]
Name=KAddressBook
-Name[cy]=KAddressBook/LlyfrKyfeiriadau
-Name[de]=Adressbuch
-Name[et]=TDE aadressiraamat
-Name[eu]=Helbide-liburua
-Name[fi]=Osoitekirja
-Name[fr]=Carnet d'adresses
-Name[he]=פנקס כתובות
-Name[mk]=КАдресар
-Name[nds]=KAdressbook
-Name[ne]=केडीई ठेगाना पुस्तिका
-Name[nn]=TDE-adressebok
-Name[pl]=Książka adresowa
-Name[sk]=Adresár
-Name[sv]=Adressbok
-Name[ta]=கேமுகவரிப் புத்தகம்
-Name[tr]=TDE Adres Defteri
-Name[zh_TW]=KAddressBook 通訊錄
+
GenericName=Address Manager
-GenericName[af]=Adres Bestuurder
-GenericName[bg]=Адресник
-GenericName[br]=Merour ar chomlec'hioù
-GenericName[ca]=Gestor d'adreces
-GenericName[cs]=Správce adres
-GenericName[cy]=Rheolydd Cyfeiriadau
-GenericName[da]=Adressehåndtering
-GenericName[de]=Adressverwaltung
-GenericName[el]=Διαχειριστής διευθύνσεων
-GenericName[eo]=Adresadministrilo
-GenericName[es]=Gestor de direcciones
-GenericName[et]=Aadressihaldur
-GenericName[eu]=Helbide kudeatzailea
-GenericName[fa]=مدیر نشانی
-GenericName[fi]=Osoitteenhallinta
-GenericName[fr]=Gestionnaire d'adresses
-GenericName[fy]=Adresboekbehearder
-GenericName[ga]=Bainisteoir na Seoltaí
-GenericName[gl]=Xestor de Enderezos
-GenericName[he]=מנהל הכתובות
-GenericName[hu]=Címjegyzékkezelő
-GenericName[is]=Vistfangastjóri
-GenericName[it]=Gestore degli indirizzi
-GenericName[ja]=アドレスマネージャ
-GenericName[kk]=Адрестік кітапшасы
-GenericName[km]=កម្មវិធី​គ្រប់គ្រង​អាសយដ្ឋាន
-GenericName[lt]=Adresų tvarkyklė
-GenericName[mk]=Менаџер на адреси
-GenericName[ms]=Pengurus Alamat
-GenericName[nb]=Addressehåndterer
-GenericName[nds]=Adresspleger
-GenericName[ne]=ठेगाना प्रबन्धक
-GenericName[nl]=Adresboekbeheerder
-GenericName[nn]=Adressehandterar
-GenericName[pa]=ਸਿਰਨਾਵਾਂ ਪ੍ਰਬੰਧਕ
-GenericName[pl]=Menedżer adresów
-GenericName[pt]=Livro de Endereços
-GenericName[pt_BR]=Livro de Endereços
-GenericName[ru]=Адресная книга
-GenericName[se]=Čujuhusgieđahalli
-GenericName[sk]=Správca adries
-GenericName[sl]=Upravitelj naslovov
-GenericName[sr]=Менаџер адреса
-GenericName[sr@Latn]=Menadžer adresa
-GenericName[sv]=Adresshanterare
-GenericName[ta]=முகவரி மேலாளர்
-GenericName[tr]=Adres Yöneticisi
-GenericName[uk]=Менеджер адрес
-GenericName[zh_CN]=地址管理器
+
Exec=kaddressbook %u
Icon=kaddressbook
Type=Application
diff --git a/kaddressbook/kaddressbook_part.cpp b/kaddressbook/kaddressbook_part.cpp
index 566ffd71..ec815ff6 100644
--- a/kaddressbook/kaddressbook_part.cpp
+++ b/kaddressbook/kaddressbook_part.cpp
@@ -51,7 +51,7 @@ KAddressbookPart::KAddressbookPart( TQWidget *parentWidget, const char *widgetNa
// create a canvas to insert our widget
TQWidget *canvas = new TQWidget( parentWidget, widgetName );
- canvas->setFocusPolicy( TQ_ClickFocus );
+ canvas->setFocusPolicy( TQWidget::ClickFocus );
setWidget( canvas );
TQVBoxLayout *topLayout = new TQVBoxLayout( canvas );
diff --git a/kaddressbook/kaddressbook_part.h b/kaddressbook/kaddressbook_part.h
index 1a161c11..7bac322a 100644
--- a/kaddressbook/kaddressbook_part.h
+++ b/kaddressbook/kaddressbook_part.h
@@ -36,7 +36,7 @@ class KABCore;
class KAddressbookPart: public KParts::ReadOnlyPart, virtual public KAddressBookIface
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/kaddressbook_view.desktop b/kaddressbook/kaddressbook_view.desktop
index 8be5916c..5e89a2c2 100644
--- a/kaddressbook/kaddressbook_view.desktop
+++ b/kaddressbook/kaddressbook_view.desktop
@@ -1,59 +1,8 @@
[Desktop Entry]
Type=ServiceType
X-TDE-ServiceType=KAddressBook/View
+
Comment=KAddressBook View Plugin
-Comment[af]=KAddressBook besigtig inprop module
-Comment[be]=Дапаўненне K Адраснай кнігі "Выгляд"
-Comment[bg]=Приставка за преглед на адресника
-Comment[br]=Lugent gwell KAddressBook
-Comment[bs]=KAddressBook dodatak za pregledanje
-Comment[ca]=Endollable visor de la llibreta d'adreces
-Comment[cs]=Modul knihu adres pro zobrazování
-Comment[cy]=Ategyn Golwg KLlyfrCyfeiriadau
-Comment[da]=KAddressBook visningsplugin
-Comment[de]=Betrachter-Modul für Adressbuch
-Comment[el]=Πρόσθετο προβολής του KAddressBook
-Comment[eo]=KAddressBook Rigardo-Kromaĵo
-Comment[es]=Plugin del visor de KAddressBook
-Comment[et]=TDE aadressiraamatu vaatamise plugin
-Comment[eu]=KAddressBook-en bistaratze plugin-a
-Comment[fa]=وصلۀ نمای KAddressBook
-Comment[fi]=KAddressbook näyttöliitännäinen
-Comment[fr]=Module d'affichage pour KAddressBook
-Comment[fy]=KAddressBook Werjefte Plugin
-Comment[gl]=Extensión de Visualización para KAddressBook
-Comment[he]=תוסף תצוגה עבור פנקס הכתובות
-Comment[hi]=के-एड्रेस-बुक दृश्य प्लगइन
-Comment[hu]=KAddressBook nézeti bővítőmodul
-Comment[is]=KAddressbook birtingar íforrit
-Comment[it]=Plugin visualizzazione di KAddressbook
-Comment[ja]=Addressbook ビュープラグイン
-Comment[kk]=Адрестік кітапшасын қарау модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ទិដ្ឋភាព​របស់ KAddressBook
-Comment[lt]=KAddressBook peržiūros priedas
-Comment[mk]=Приклучок за преглед на КАдресар
-Comment[ms]=Plug masuk Pelihat KAddressBook
-Comment[nb]=KAddressbook-programtillegg for visning
-Comment[nds]=Kiekermoduul för KAdressbook
-Comment[ne]=केडीई ठेगाना पुस्तिका दृश्य प्लगइन
-Comment[nl]=KAddressBook Weergave Plugin
-Comment[nn]=Programtillegg for vising av TDE-adresseboka
-Comment[pl]=Wtyczka widoku KAddressBook
-Comment[pt]='Plugin' da Janela do KAddressBook
-Comment[pt_BR]=Plug-in de Visualização do KAddressBook
-Comment[ro]=Modul de vizualizare KAddressBook
-Comment[ru]=Просмотр адресной книги TDE
-Comment[sk]=KAddressBook plugin prehliadača
-Comment[sl]=Vstavek za ogled v Adresarju
-Comment[sr]=Прикључак KAddressBook-а за преглед
-Comment[sr@Latn]=Priključak KAddressBook-a za pregled
-Comment[sv]=Kadressbok-visningsinsticksprogram
-Comment[ta]=கேமுகவரிப்புத்தகம் காட்சி சொருகுப்பொருள்
-Comment[tg]=Модули намоиши китоби адресии TDE
-Comment[tr]=KAdresDefteri Gösterim Eklentisi
-Comment[uk]=Втулок перегляду адресної книги KAddressBook
-Comment[zh_CN]=KAddressBook 查看插件
-Comment[zh_TW]=KAddressBook 檢視外掛程式
[PropertyDef::X-TDE-KAddressBook-ViewPluginVersion]
Type=int
diff --git a/kaddressbook/kaddressbookiface.h b/kaddressbook/kaddressbookiface.h
index b7fa5f5c..c02922d3 100644
--- a/kaddressbook/kaddressbookiface.h
+++ b/kaddressbook/kaddressbookiface.h
@@ -27,7 +27,7 @@
#include <dcopobject.h>
#include <kurl.h>
#include <tqstringlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KDE_EXPORT KAddressBookIface : virtual public DCOPObject
{
diff --git a/kaddressbook/kaddressbookmain.cpp b/kaddressbook/kaddressbookmain.cpp
index bfcea2b6..ca6df18b 100644
--- a/kaddressbook/kaddressbookmain.cpp
+++ b/kaddressbook/kaddressbookmain.cpp
@@ -150,13 +150,13 @@ bool KAddressBookMain::queryClose()
void KAddressBookMain::initActions()
{
- KStdAction::quit( TQT_TQOBJECT(this), TQT_SLOT( close() ), actionCollection() );
+ KStdAction::quit( this, TQ_SLOT( close() ), actionCollection() );
TDEAction *action;
- action = KStdAction::keyBindings( TQT_TQOBJECT(this), TQT_SLOT( configureKeyBindings() ), actionCollection() );
+ action = KStdAction::keyBindings( this, TQ_SLOT( configureKeyBindings() ), actionCollection() );
action->setWhatsThis( i18n( "You will be presented with a dialog, where you can configure the application wide shortcuts." ) );
- KStdAction::configureToolbars( TQT_TQOBJECT(this), TQT_SLOT( configureToolbars() ), actionCollection() );
+ KStdAction::configureToolbars( this, TQ_SLOT( configureToolbars() ), actionCollection() );
}
void KAddressBookMain::configureKeyBindings()
@@ -177,8 +177,8 @@ void KAddressBookMain::configureToolbars()
saveMainWindowSettings( TDEGlobal::config(), "MainWindow" );
KEditToolbar edit( factory() );
- connect( &edit, TQT_SIGNAL( newToolbarConfig() ),
- this, TQT_SLOT( newToolbarConfig() ) );
+ connect( &edit, TQ_SIGNAL( newToolbarConfig() ),
+ this, TQ_SLOT( newToolbarConfig() ) );
edit.exec();
}
diff --git a/kaddressbook/kaddressbookmain.h b/kaddressbook/kaddressbookmain.h
index 90420659..0bc2aa39 100644
--- a/kaddressbook/kaddressbookmain.h
+++ b/kaddressbook/kaddressbookmain.h
@@ -44,7 +44,7 @@ class KABCore;
*/
class KAddressBookMain : public TDEMainWindow, virtual public KAddressBookIface
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/kaddressbookview.cpp b/kaddressbook/kaddressbookview.cpp
index d86103db..07df33b6 100644
--- a/kaddressbook/kaddressbookview.cpp
+++ b/kaddressbook/kaddressbookview.cpp
@@ -43,8 +43,8 @@ KAddressBookView::KAddressBookView( KAB::Core *core, TQWidget *parent,
{
initGUI();
- connect( mCore->searchManager(), TQT_SIGNAL( contactsUpdated() ),
- TQT_SLOT( updateView() ) );
+ connect( mCore->searchManager(), TQ_SIGNAL( contactsUpdated() ),
+ TQ_SLOT( updateView() ) );
}
KAddressBookView::~KAddressBookView()
diff --git a/kaddressbook/kaddressbookview.h b/kaddressbook/kaddressbookview.h
index 8090408d..668c5a1d 100644
--- a/kaddressbook/kaddressbookview.h
+++ b/kaddressbook/kaddressbookview.h
@@ -31,7 +31,7 @@
#include <tdeabc/field.h>
#include <klibloader.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "filter.h"
#include "viewconfigurewidget.h"
@@ -55,7 +55,7 @@ namespace TDEABC { class AddressBook; }
*/
class KDE_EXPORT KAddressBookView : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/kcmconfigs/CMakeLists.txt b/kaddressbook/kcmconfigs/CMakeLists.txt
index 82d494cd..78a05866 100644
--- a/kaddressbook/kcmconfigs/CMakeLists.txt
+++ b/kaddressbook/kcmconfigs/CMakeLists.txt
@@ -27,9 +27,11 @@ link_directories(
##### other data ################################
-install( FILES
- kabconfig.desktop kabldapconfig.desktop kabcustomfields.desktop
- DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE kabconfig.desktop kabldapconfig.desktop kabcustomfields.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR kaddressbook-desktops
+)
##### kcm_kabconfig (module) ####################
diff --git a/kaddressbook/kcmconfigs/addhostdialog.h b/kaddressbook/kcmconfigs/addhostdialog.h
index 5c900c07..301b9f9f 100644
--- a/kaddressbook/kcmconfigs/addhostdialog.h
+++ b/kaddressbook/kcmconfigs/addhostdialog.h
@@ -34,7 +34,7 @@ class TQSpinBox;
class AddHostDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/kcmconfigs/addresseewidget.cpp b/kaddressbook/kcmconfigs/addresseewidget.cpp
index ad1364f5..35bc17a1 100644
--- a/kaddressbook/kcmconfigs/addresseewidget.cpp
+++ b/kaddressbook/kcmconfigs/addresseewidget.cpp
@@ -46,20 +46,20 @@ NamePartWidget::NamePartWidget( const TQString &title, const TQString &label,
{
TQHBoxLayout *layout = new TQHBoxLayout( this );
- TQGroupBox *group = new TQGroupBox( 0, Qt::Vertical, title, this );
+ TQGroupBox *group = new TQGroupBox( 0, TQt::Vertical, title, this );
TQGridLayout *groupLayout = new TQGridLayout( group->layout(), 2, 2,
KDialog::spacingHint() );
mBox = new TQListBox( group );
- connect( mBox, TQT_SIGNAL( selectionChanged( TQListBoxItem* ) ),
- TQT_SLOT( selectionChanged( TQListBoxItem* ) ) );
+ connect( mBox, TQ_SIGNAL( selectionChanged( TQListBoxItem* ) ),
+ TQ_SLOT( selectionChanged( TQListBoxItem* ) ) );
groupLayout->addWidget( mBox, 0, 0 );
- KButtonBox *bbox = new KButtonBox( group, Qt::Vertical );
- mAddButton = bbox->addButton( i18n( "Add..." ), TQT_TQOBJECT(this), TQT_SLOT( add() ) );
- mEditButton = bbox->addButton( i18n( "Edit..." ), TQT_TQOBJECT(this), TQT_SLOT( edit() ) );
+ KButtonBox *bbox = new KButtonBox( group, TQt::Vertical );
+ mAddButton = bbox->addButton( i18n( "Add..." ), this, TQ_SLOT( add() ) );
+ mEditButton = bbox->addButton( i18n( "Edit..." ), this, TQ_SLOT( edit() ) );
mEditButton->setEnabled( false );
- mRemoveButton = bbox->addButton( i18n( "Remove" ), TQT_TQOBJECT(this), TQT_SLOT( remove() ) );
+ mRemoveButton = bbox->addButton( i18n( "Remove" ), this, TQ_SLOT( remove() ) );
mRemoveButton->setEnabled( false );
bbox->layout();
groupLayout->addWidget( bbox, 0, 1 );
@@ -157,10 +157,10 @@ AddresseeWidget::AddresseeWidget( TQWidget *parent, const char *name )
mFormattedNameCombo->insertItem( i18n( "Reverse Name" ) );
layout->addMultiCellWidget( mFormattedNameCombo, 1, 1, 1, 2 );
- connect( mPrefix, TQT_SIGNAL( modified() ), TQT_SIGNAL( modified() ) );
- connect( mInclusion, TQT_SIGNAL( modified() ), TQT_SIGNAL( modified() ) );
- connect( mSuffix, TQT_SIGNAL( modified() ), TQT_SIGNAL( modified() ) );
- connect( mFormattedNameCombo, TQT_SIGNAL( activated( int ) ), TQT_SIGNAL( modified() ) );
+ connect( mPrefix, TQ_SIGNAL( modified() ), TQ_SIGNAL( modified() ) );
+ connect( mInclusion, TQ_SIGNAL( modified() ), TQ_SIGNAL( modified() ) );
+ connect( mSuffix, TQ_SIGNAL( modified() ), TQ_SIGNAL( modified() ) );
+ connect( mFormattedNameCombo, TQ_SIGNAL( activated( int ) ), TQ_SIGNAL( modified() ) );
}
AddresseeWidget::~AddresseeWidget()
diff --git a/kaddressbook/kcmconfigs/addresseewidget.h b/kaddressbook/kcmconfigs/addresseewidget.h
index ec476096..46651903 100644
--- a/kaddressbook/kcmconfigs/addresseewidget.h
+++ b/kaddressbook/kcmconfigs/addresseewidget.h
@@ -35,7 +35,7 @@ class TQPushButton;
class NamePartWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -68,7 +68,7 @@ class NamePartWidget : public TQWidget
class AddresseeWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/kcmconfigs/extensionconfigdialog.h b/kaddressbook/kcmconfigs/extensionconfigdialog.h
index 0aa97f74..5c3ae856 100644
--- a/kaddressbook/kcmconfigs/extensionconfigdialog.h
+++ b/kaddressbook/kcmconfigs/extensionconfigdialog.h
@@ -34,7 +34,7 @@ class ConfigureWidget;
class ExtensionConfigDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/kcmconfigs/kabconfig.desktop b/kaddressbook/kcmconfigs/kabconfig.desktop
index 5c19519a..da7759ff 100644
--- a/kaddressbook/kcmconfigs/kabconfig.desktop
+++ b/kaddressbook/kcmconfigs/kabconfig.desktop
@@ -13,162 +13,7 @@ X-TDE-ParentComponents=kaddressbook,kontact_kaddressbookplugin
X-TDE-CfgDlgHierarchy=KAB
Name=General
-Name[af]=Algemeen
-Name[ar]=عام
-Name[bg]=Общи
-Name[br]=Pennañ
-Name[cs]=Obecné
-Name[cy]=Cyffredinol
-Name[da]=Generelt
-Name[de]=Allgemein
-Name[el]=Γενικά
-Name[eo]=Ĝenerala
-Name[et]=Üldine
-Name[eu]=Orokorra
-Name[fa]=عمومی
-Name[fi]=Yleinen
-Name[fr]=Général
-Name[fy]=Algemien
-Name[ga]=Ginearálta
-Name[gl]=Xeral
-Name[he]=כללי
-Name[hu]=Általános
-Name[is]=Almennt
-Name[it]=Generale
-Name[ja]=全般
-Name[kk]=Жалпы
-Name[km]=ទូទៅ
-Name[lt]=Bendras
-Name[mk]=Општо
-Name[ms]=Umum
-Name[nb]=Generelt
-Name[nds]=Allgemeen
-Name[ne]=साधारण
-Name[nl]=Algemeen
-Name[nn]=Generelt
-Name[pa]=ਸਧਾਰਨ
-Name[pl]=Ogólne
-Name[pt]=Geral
-Name[pt_BR]=Geral
-Name[ru]=Общие
-Name[se]=Oppalaš
-Name[sk]=Všeobecné
-Name[sl]=Splošno
-Name[sr]=Опште
-Name[sr@Latn]=Opšte
-Name[sv]=Allmänt
-Name[ta]=பொதுவான
-Name[th]=ทั่วไป
-Name[tr]=Genel
-Name[uk]=Загальні
-Name[uz]=Умумий
-Name[zh_CN]=常规
+
Comment=Configure the Address Book
-Comment[af]=Stel die adres boek op
-Comment[ar]=إعداد دفتر العناوين
-Comment[be]=Настроіць адрасную кнігу
-Comment[bg]=Настройки на адресника
-Comment[br]=Kefluniañ ar c'harned chomlec'hioù
-Comment[bs]=Podesite Adresar
-Comment[ca]=Configura la Llibreta d'adreces
-Comment[cs]=Nastavit knihu adres
-Comment[cy]=Ffurfweddu'r Llyfr Cyfeiriadau
-Comment[da]=Indstil adressebogen
-Comment[de]=Adressbuch einrichten
-Comment[el]=Ρύθμιση του Βιβλίου διευθύνσεων
-Comment[eo]=Agordi la Adreslibron
-Comment[es]=Configura la libreta de direcciones
-Comment[et]=Aadressiraamatu seadistamine
-Comment[eu]=Konfiguratu helbide-liburua
-Comment[fa]=پیکربندی کتاب نشانی
-Comment[fi]=Muokkaa osoitekirjan asetuksia
-Comment[fr]=Configurer le carnet d'adresses
-Comment[fy]=Hjir kinne jo, jo adresboek oanpasse
-Comment[ga]=Cumraigh an Leabhar Seoltaí
-Comment[gl]=Configurar o Caderno de Enderezos
-Comment[he]=הגדרת הפנקס כתובת
-Comment[hi]=पता पुस्तिका कॉन्फ़िगर करें
-Comment[hu]=A címjegyzék beállítása
-Comment[is]=Stilla vistfangaskrána
-Comment[it]=Configura la rubrica indirizzi
-Comment[ja]=アドレス帳設定
-Comment[kk]=Адрестік кітапшаны баптау
-Comment[km]=កំណត់​រចនាសម្ព័ន្ធ​សៀវភៅ​អាសយដ្ឋាន
-Comment[lt]=Konfigūruoti adresų knygelę
-Comment[mk]=Конфигурирајте го адресарот
-Comment[ms]=Konfigurkan Buku Alamat
-Comment[nb]=Oppsett for adresseboka
-Comment[nds]=Adressbook instellen
-Comment[ne]=ठेगाना पुस्तिका कन्फिगर गर्नुहोस्
-Comment[nl]=Hier kunt u uw adresboek aanpassen
-Comment[nn]=Setja opp adressebok
-Comment[pl]=Konfiguracja Książki adresowej
-Comment[pt]=Configuração do Livro de Endereços
-Comment[pt_BR]=Configurar o Livro de Endereços
-Comment[ro]=Configurează cartea de adrese
-Comment[ru]=Настройка адресной книги
-Comment[se]=Heivet čujuhusgirjji
-Comment[sk]=Nastavenie Adresára
-Comment[sl]=Nastavi Adresar
-Comment[sr]=Подешавање адресара
-Comment[sr@Latn]=Podešavanje adresara
-Comment[sv]=Anpassa adressboken
-Comment[ta]=கேமுகவரிப்புத்தகத்தை கட்டமை
-Comment[tg]=Танзимоти китоби адрес
-Comment[tr]=Adres Defterini Yapılandır
-Comment[uk]=Налаштування адресної книги
-Comment[uz]=Манзиллар дафтарини мослаш
-Comment[zh_CN]=配置地址簿
-Comment[zh_TW]=設定通訊錄
+
Keywords=kaddressbook; configure; settings;
-Keywords[af]=kaddressbook; configure;settings;adres;
-Keywords[be]=K Адрасная кніга; настроіць; настаўленні; kaddressbook; configure; settings;
-Keywords[bg]=адресни;адресна;книга;визитник;визитка;картичка;kaddressbook; configure; settings;
-Keywords[br]=kaddressbook; kefluniañ; dibarzhoù;
-Keywords[bs]=kaddressbook; configure; settings; podesi; podesite; postavke; konfiguracija;
-Keywords[ca]=llibreta d'adreces; configura; opcions;
-Keywords[cs]=kniha adres;nastavení;
-Keywords[cy]=kaddressbook; ffurfweddu;godosiadau;
-Keywords[da]=kaddressbook; indstil; opsætning;
-Keywords[de]=KAddressbook;Adressbuch;
-Keywords[el]=kaddressbook; ρύθμιση; ρυθμίσεις;
-Keywords[eo]=kaddressbook;adresaro;agordo;
-Keywords[es]=kaddressbook; configurar; opciones;
-Keywords[et]=kde aadressiraamat; seadistamine; seadistused;
-Keywords[eu]=kaddressbook; konfiguratu; ezarpenak;
-Keywords[fa]=kaddressbook، پیکربندی، تنظیمات‌;
-Keywords[fi]=kaddressbook; aseta; asetukset;
-Keywords[fr]=carnet d'adresses;adresses;kab;kaddressbook;configurer;paramètres;paramètre;
-Keywords[fy]=adresboek;KAB;kab;kaddressbook;ynstellings;configuratie;
-Keywords[ga]=kaddressbook; cumraigh; cumraíocht; socruithe;
-Keywords[gl]=kaddressbook; configurar; opcións;
-Keywords[hi]=केएड्रेसबुक; कॉन्फ़िगर; विन्यास ;
-Keywords[hu]=kaddressbook; konfigurálás; beállítások;
-Keywords[is]=kaddressbook; stillingar; stilla;
-Keywords[it]=kaddressbook; configura; impostazioni;
-Keywords[ja]=kaddressbook 設定;
-Keywords[km]=kaddressbook;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;
-Keywords[lt]=kaddressbook; configure; settings; konfigūravimas; nustatymai;
-Keywords[mk]=kaddressbook; configure; settings; КАдресар; конфигурирање; конфигурација; поставување;
-Keywords[ms]=;selaraskan; tetapan; kaddressbook; configure; settings;
-Keywords[nb]=kaddressbook; sette opp; innstillinger;
-Keywords[nds]=KAddressbook;KAdressbook;Adressbook;instellen;
-Keywords[ne]=केडीई ठेगाना पुस्तिका; कन्फिगर; सेटिङ;
-Keywords[nl]=adresboek;KAB;kab;kaddressbook;instellingen;configuratie;
-Keywords[nn]=adressebok; oppsett; innstillingar;
-Keywords[pl]=kaddressbook; książka adresowa;adresy;konfiguracja;ustawienia;opcje;
-Keywords[pt]=kaddressbook; configurar; configuração;
-Keywords[pt_BR]=kaddressbook; configurar; configurações;
-Keywords[ro]=kaddressbook;configurare;setări;
-Keywords[ru]=kaddressbook;адресная книга;настройка;
-Keywords[se]=čujuhusgirji;heivehus;heivehusat;
-Keywords[sl]=kaddressbook; adresar; nastavi; nastavitve;
-Keywords[sr]=kaddressbook; configure; settings; подеси; поставке;
-Keywords[sr@Latn]=kaddressbook; configure; settings; podesi; postavke;
-Keywords[sv]=adressbok; anpassa; inställningar;
-Keywords[ta]=கேமுகவரிப்புத்தகம்;கட்டமைப்பு;அமைவுகள்;
-Keywords[tg]=kaddressbook;китоби адрес;танзимот;
-Keywords[tr]=kadresdefteri; yapılandırma; ayarlar;
-Keywords[uk]=kaddressbook; налаштування; параметри;
-Keywords[uz]=kaddressbook; мослаш; мосламалар; манзиллар дафтари;
-Keywords[zh_CN]=kaddressbook; configure; settings; 配置; 设置;
diff --git a/kaddressbook/kcmconfigs/kabconfigwidget.cpp b/kaddressbook/kcmconfigs/kabconfigwidget.cpp
index b41bdf84..07574e56 100644
--- a/kaddressbook/kcmconfigs/kabconfigwidget.cpp
+++ b/kaddressbook/kcmconfigs/kabconfigwidget.cpp
@@ -59,7 +59,7 @@ KABConfigWidget::KABConfigWidget( TQWidget *parent, const char *name )
TQVBoxLayout *layout = new TQVBoxLayout( generalPage, KDialog::marginHint(),
KDialog::spacingHint() );
- TQGroupBox *groupBox = new TQGroupBox( 0, Qt::Vertical, i18n( "General" ), generalPage );
+ TQGroupBox *groupBox = new TQGroupBox( 0, TQt::Vertical, i18n( "General" ), generalPage );
TQBoxLayout *boxLayout = new TQVBoxLayout( groupBox->layout() );
boxLayout->setAlignment( TQt::AlignTop );
@@ -96,7 +96,7 @@ KABConfigWidget::KABConfigWidget( TQWidget *parent, const char *name )
layout->addWidget( groupBox );
- groupBox = new TQGroupBox( 0, Qt::Vertical, i18n( "Script-Hooks" ), generalPage );
+ groupBox = new TQGroupBox( 0, TQt::Vertical, i18n( "Script-Hooks" ), generalPage );
TQGridLayout *grid = new TQGridLayout( groupBox->layout(), 3, 2,
KDialog::spacingHint() );
label = new TQLabel( i18n( "Phone:" ), groupBox );
@@ -126,7 +126,7 @@ KABConfigWidget::KABConfigWidget( TQWidget *parent, const char *name )
layout->addWidget( groupBox );
- groupBox = new TQGroupBox( 0, Qt::Vertical, i18n( "Location Map" ), generalPage );
+ groupBox = new TQGroupBox( 0, TQt::Vertical, i18n( "Location Map" ), generalPage );
boxLayout = new TQVBoxLayout( groupBox->layout(), KDialog::spacingHint() );
boxLayout->setAlignment( TQt::AlignTop );
@@ -141,22 +141,22 @@ KABConfigWidget::KABConfigWidget( TQWidget *parent, const char *name )
boxLayout->addWidget( mLocationMapURL );
layout->addWidget( groupBox );
- connect( mNameParsing, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( modified() ) );
- connect( mViewsSingleClickBox, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( modified() ) );
- connect( mTradeAsFamilyName, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( modified() ) );
- connect( mLimitContactDisplay, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( modified() ) );
- connect( mPhoneHook, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SLOT( modified() ) );
- connect( mSMSHook, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SLOT( modified() ) );
- connect( mFaxHook, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SLOT( modified() ) );
- connect( mLocationMapURL, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SLOT( modified() ) );
- connect( mEditorCombo, TQT_SIGNAL( activated( int ) ), TQT_SLOT( modified() ) );
+ connect( mNameParsing, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( modified() ) );
+ connect( mViewsSingleClickBox, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( modified() ) );
+ connect( mTradeAsFamilyName, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( modified() ) );
+ connect( mLimitContactDisplay, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( modified() ) );
+ connect( mPhoneHook, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( modified() ) );
+ connect( mSMSHook, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( modified() ) );
+ connect( mFaxHook, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( modified() ) );
+ connect( mLocationMapURL, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( modified() ) );
+ connect( mEditorCombo, TQ_SIGNAL( activated( int ) ), TQ_SLOT( modified() ) );
tabWidget->addTab( generalPage, i18n( "General" ) );
// Addressee page
mAddresseeWidget = new AddresseeWidget( this );
tabWidget->addTab( mAddresseeWidget, i18n( "Contact" ) );
- connect( mAddresseeWidget, TQT_SIGNAL( modified() ), TQT_SLOT( modified() ) );
+ connect( mAddresseeWidget, TQ_SIGNAL( modified() ), TQ_SLOT( modified() ) );
}
void KABConfigWidget::restoreSettings()
diff --git a/kaddressbook/kcmconfigs/kabconfigwidget.h b/kaddressbook/kcmconfigs/kabconfigwidget.h
index 5ee3c789..5d6c0506 100644
--- a/kaddressbook/kcmconfigs/kabconfigwidget.h
+++ b/kaddressbook/kcmconfigs/kabconfigwidget.h
@@ -38,7 +38,7 @@ class AddresseeWidget;
class KABConfigWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/kcmconfigs/kabcustomfields.desktop b/kaddressbook/kcmconfigs/kabcustomfields.desktop
index 0df0ccf6..28e77ff8 100644
--- a/kaddressbook/kcmconfigs/kabcustomfields.desktop
+++ b/kaddressbook/kcmconfigs/kabcustomfields.desktop
@@ -12,149 +12,7 @@ X-TDE-ParentComponents=kaddressbook,kontact_kaddressbookplugin
X-TDE-CfgDlgHierarchy=KAB
Name=Custom Pages
-Name[af]=Pasmaak Blaaie
-Name[ar]=الصفحات المعتادة
-Name[bg]=Потребителски полета
-Name[br]=Pajennoù dre ziouer
-Name[bs]=Vlastite stranice
-Name[ca]=Pàgines a mida
-Name[cs]=Vlastní stránky
-Name[da]=Brugervalgte sider
-Name[de]=Benutzerdefinierte Seiten
-Name[el]=Προσαρμοσμένες σελίδες
-Name[eo]=Propraj Paĝoj
-Name[es]=Páginas personalizadas
-Name[et]=Omaloodud leheküljed
-Name[eu]=Orri pertsonalizatuak
-Name[fa]=صفحات سفارشی
-Name[fi]=Omat sivut
-Name[fr]=Pages personnalisées
-Name[fy]=Oanpaste siden
-Name[ga]=Leathanaigh Shaincheaptha
-Name[gl]=Páxinas Personalizadas
-Name[he]=דפים מותאמים אישית
-Name[hu]=Egyéni lapok
-Name[is]=Sérsniðnar síður
-Name[it]=Pagine personalizzate
-Name[ja]=カスタムページ
-Name[kk]=Қосымша парақтар
-Name[km]=ទំព័រ​ផ្ទាល់​ខ្លួន
-Name[lt]=Pasirinkti puslapiai
-Name[mk]=Сопствени страници
-Name[ms]=Halaman Kebiasaan
-Name[nb]=Tilpassede sider
-Name[nds]=Egen Sieden
-Name[ne]=अनुकूल पृष्ठ
-Name[nl]=Aangepaste pagina's
-Name[nn]=Tilpassa sider
-Name[pl]=Własne strony
-Name[pt]=Páginas Personalizadas
-Name[pt_BR]=Páginas personalizadas
-Name[ru]=Дополнительные поля
-Name[se]=Iežat siiddut
-Name[sk]=Vlastné stránky
-Name[sl]=Prilagojene strani
-Name[sr]=Посебне странице
-Name[sr@Latn]=Posebne stranice
-Name[sv]=Egna sidor
-Name[ta]=தனிபயன் பக்கங்கள்
-Name[tg]=Варақаҳои замимавии истифодашаванда
-Name[tr]=Özel Sayfa
-Name[uk]=Нетипові сторінки
-Name[zh_CN]=定制页
+
Comment=Configure the Custom Pages
-Comment[af]=Stel die pasmaak blaaie op
-Comment[ar]=إعداد الصفحات المعتادة
-Comment[bg]=Настройки на потребителските полета
-Comment[br]=Kefluniañ ar pajennoù diouzhoc'h
-Comment[bs]=Podesite vlastite stranice
-Comment[ca]=Configura les pàgines a mida
-Comment[cs]=Nastavení vlastních stránek
-Comment[da]=Indstil de selvvalgte sider
-Comment[de]=Einstellungen für benutzerdefinierte Seiten
-Comment[el]=Ρύθμιση των προσαρμοσμένων σελίδων
-Comment[eo]=Agordi la proprajn paĝojn
-Comment[es]=Configura las páginas personalizadas
-Comment[et]=Omaloodud lehekülgede seadistamine
-Comment[eu]=Konfiguratu orri pertsonalizatuak
-Comment[fa]=پیکربندی صفحات سفارشی
-Comment[fi]=Muokkaa omia sivuja
-Comment[fr]=Configurer les pages personnalisées
-Comment[fy]=Hjir kinne jo de oanpaste siden ynstelle
-Comment[ga]=Cumraigh na Leathanaigh Shaincheaptha
-Comment[gl]=Configurar as Páxinas Personalizadas
-Comment[he]=הגדר את הדפים המותאמים אישית
-Comment[hu]=Az egyéni lapok beállítása
-Comment[is]=Stilla sérsniðnu síðurnar
-Comment[it]=Configura le pagine personalizzate
-Comment[ja]=カスタムページの設定
-Comment[kk]=Қосымша парақтарды баптау
-Comment[km]=កំណត់​រចនាសម្ព័ន្ធ​ទំព័រ​ផ្ទាល់​ខ្លួន
-Comment[lt]=Konfigūruoti darbastalių skaičių ir pavadinimus
-Comment[mk]=Конфигурирајте ги сопствените страници
-Comment[ms]=Konfigurkan Halaman Langganan
-Comment[nb]=Stille inn de tilpassede sidene
-Comment[nds]=Egen Sieden instellen
-Comment[ne]=अनुकूल पृष्ठ कन्फिगर गर्नुहोस्
-Comment[nl]=Hier kunt u de aangepaste pagina's instellen
-Comment[nn]=Set opp dei tilpassa sidene
-Comment[pl]=Konfiguracja własnych stron
-Comment[pt]=Configurar as Páginas Personalizadas
-Comment[pt_BR]=Configurar Páginas personalizadas
-Comment[ru]=Настройка пользовательских вкладок
-Comment[se]=Heivet iežat siidduid
-Comment[sk]=Nastavenie vlastných stránok
-Comment[sl]=Nastavi prilagojene strani
-Comment[sr]=Подешавање посебних страница
-Comment[sr@Latn]=Podešavanje posebnih stranica
-Comment[sv]=Anpassa egna sidor
-Comment[ta]=தனிபயன் பக்கங்களை கட்டமை
-Comment[tg]=Танзимоти варақаҳои замимавии истифодашаванда
-Comment[tr]=Özel Sayfaları Yapılandır
-Comment[uk]=Налаштування нетипових сторінок
-Comment[zh_CN]=配置定制页
-Comment[zh_TW]=設定 Custom Pages
+
Keywords=kaddressbook; configure; settings; custom fields;
-Keywords[bg]=адресник; потребителски; полета; настройки; настройване; kaddressbook; configure; settings; custom fields;
-Keywords[bs]=kaddressbook; configure; settings; custom fields; podesite; postavke; vlastite; vlastito;
-Keywords[ca]=llibreta d'adreces; configura; opcions; camps a mida;
-Keywords[cs]=kniha adres;nastavení;vlastní pole;
-Keywords[da]=kaddressbook; indstil; opsætning; brugervalgte felter;
-Keywords[de]=KAddressbook;Konfigurieren;Einstellungen;benutzerdefinierte Felder;Einrichten ;
-Keywords[el]=kaddressbook; ρύθμιση; ρυθμίσεις; προσαρμοσμένα πεδία;
-Keywords[es]=kaddressbook; configurar; opciones; campos personalizados;
-Keywords[et]=kde aadressiraamat; seadistamine; seadistused; omaloodud väljad;
-Keywords[eu]=kaddressbook; konfiguratu; ezarpenak; eremu pertsonalizatuak;
-Keywords[fa]=kaddresAPsbook، پیکربندی، تنظیمات، حوزه‌های سفارشی‌;
-Keywords[fi]=osoitekirja; aseta; asetukset; omat kentät;
-Keywords[fr]=carnet d'adresses;adresses;kab;kaddressbook;configurer;paramètres;paramètre;champ;personnalisé;
-Keywords[fy]=adresboek;KAB;kab;kaddressbook;ynstellings;konfiguraasje;oanpaste fjilden;
-Keywords[ga]=kaddressbook; cumraith; cumraíocht; socruithe; réimsí saincheaptha;
-Keywords[gl]=kaddressbook; configurar; opcións; campos personalizados;
-Keywords[hu]=kaddressbook; beállítás; beállítások; egyéni mezők;
-Keywords[is]=kaddressbook; stillingar; stilla; sérsniðnir reitir;
-Keywords[it]=kaddressbook; configura; impostazioni; campi personalizzati;
-Keywords[ja]=kaddressbook、設定、設定;カスタムフィールド;
-Keywords[km]=kaddressbook;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;វាល​ផ្ទាល់​ខ្លួន;
-Keywords[lt]=kaddressbook; configure; settings; custom fields; pasirinkti laukai;konfigūruoti; nustatymai;
-Keywords[mk]=kaddressbook; configure; settings; custom fields; КАдресар; конфигурација; конфигурирање; сопствени полиња;
-Keywords[ms]=kaddressbook; konfigur; seting; medan kebiasaan;
-Keywords[nb]=kaddressbook; sette opp; innstillinger;
-Keywords[nds]=KAddressbook;KAdressbook;Adressbook;instellen;egen Feller;
-Keywords[ne]=केडीई ठेगाना पुस्तिका; कन्फिगर; सेटिङ; अनुकूल फिल्ड;
-Keywords[nl]=adresboek;KAB;kab;kaddressbook;instellingen;configuratie;aangepaste velden;
-Keywords[nn]=adressebok; oppsett; innstillingar; tilpassa felt;
-Keywords[pl]=kaddressbook;książka adresowa;konfiguracja;ustawienia; własne pola;
-Keywords[pt]=kaddressbook; configurar; configuração; campos personalizados;
-Keywords[pt_BR]=kaddressbook;configurar;configurações; campos personalizados;
-Keywords[ru]=kaddressbook;адресная книга;настройка;
-Keywords[sk]=kaddressbook;nastavenie;vlastné polia;
-Keywords[sl]=kaddressbook; adresar; nastavi; nastavitve; polja; prilagojena;
-Keywords[sr]=kaddressbook; подеси; поставке; посебна поља;
-Keywords[sr@Latn]=kaddressbook; podesi; postavke; posebna polja;
-Keywords[sv]=adressbok; anpassa; inställningar; egna fält;
-Keywords[ta]=கேமுகவரிப்புத்தகம்;கட்டமை; அமைவுகள்; தனிபயன் புலங்கள்;
-Keywords[tg]=kaddressbook;китоби адрес;танзимот;
-Keywords[tr]=kaddressbook;adres defteri;yapılandır;yapılandırma;özel alanlar;
-Keywords[uk]=kaddressbook; налаштування; параметри; нетипові поля;
-Keywords[zh_CN]=kaddressbook; configure; settings; custom fields; 配置; 设置; 定制项;
diff --git a/kaddressbook/kcmconfigs/kabldapconfig.desktop b/kaddressbook/kcmconfigs/kabldapconfig.desktop
index 663d9622..76eb1c55 100644
--- a/kaddressbook/kcmconfigs/kabldapconfig.desktop
+++ b/kaddressbook/kcmconfigs/kabldapconfig.desktop
@@ -12,155 +12,7 @@ X-TDE-ParentComponents=kaddressbook,kontact_kaddressbookplugin
X-TDE-CfgDlgHierarchy=KAB
Name=LDAP Lookup
-Name[af]=LDAP Opkyk
-Name[ar]=البحث في LDAP
-Name[bg]=Търсене в LDAP
-Name[br]=Klask LDAP
-Name[bs]=LDAP pretraga
-Name[ca]=Recerca LDAP
-Name[cs]=LDAP vyhledávání
-Name[cy]=Chwiliad LDAP
-Name[da]=LDAP-Opslag
-Name[de]=LDAP-Nachschlagefunktion
-Name[el]=Αναζήτηση LDAP
-Name[eo]=LDAP-Serĉo
-Name[es]=Búsqueda LDAP
-Name[et]=LDAP otsing
-Name[eu]=LDAP bilaketa
-Name[fa]=مراجعه به LDAP
-Name[fi]=LDAP-haku
-Name[fr]=Consultation LDAP
-Name[fy]=LDAP-sykasksje
-Name[ga]=Cuardach LDAP
-Name[gl]=Procura LDAP
-Name[hi]=एलडीएपी तलाश
-Name[hu]=LDAP-lekérdezés
-Name[is]=LDAP uppfletting
-Name[it]=Ricerca LDAP
-Name[ja]=LDAP 検索
-Name[kk]=LDAP іздеу
-Name[km]=ស្វែងរក LDAP
-Name[lt]=LDAP paieška
-Name[mk]=Пребарување во LDAP
-Name[nb]=LDAP oppslag
-Name[nds]=LDAP-Naslaan
-Name[ne]=एलडीएपी खोजी गर्नुहोस्
-Name[nl]=LDAP-zoekactie
-Name[nn]=LDAP oppslag
-Name[pa]=LDAP ਖੋਜ
-Name[pl]=Wyszukiwanie LDAP
-Name[pt]=Pesquisa na LDAP
-Name[pt_BR]=Procura LDAP
-Name[ro]=Căutare LDAP
-Name[ru]=Каталоги LDAP
-Name[sk]=LDAP hľadanie
-Name[sl]=Vpogled v LDAP
-Name[sr]=LDAP потрага
-Name[sr@Latn]=LDAP potraga
-Name[sv]=LDAP-uppslagning
-Name[ta]=LDAP லுக்கப்
-Name[tg]=Ҷустуҷӯ дар каталогҳои LDAP
-Name[tr]=LDAP Tarama
-Name[uk]=Пошук через LDAP
-Name[zh_CN]=LDAP 查询
+
Comment=Configure the Address Book LDAP Settings
-Comment[af]=Stel die adres boek se LDAP opstelling op.
-Comment[bg]=Настройки на адресника за използване на сървър LDAP
-Comment[bs]=Podesite LDAP postavke Adresara
-Comment[ca]=Configura les opcions de la Llibreta d'adreces LDAP
-Comment[cs]=Nastavit LDAP pro Knihu adres
-Comment[cy]=Ffurfweddu gosodiadau LDAP y Llyfr Cyfeiriadau
-Comment[da]=Indstil adressebogens LDAP-opsætning
-Comment[de]=Adressbuch-Modul für LDAP-Einstellungen
-Comment[el]=Αλλάξτε τις ρυθμίσεις LDAP του Βιβλίου διευθύνσεων
-Comment[eo]=Agordo de tenejo
-Comment[es]=Configura las opciones de búsqueda LDAP en la libreta de direcciones
-Comment[et]=Aadressiraamatu LDAP seadistused
-Comment[eu]=Konfiguratu Helbide-liburuaren LDAP ezarpenak
-Comment[fa]=پیکربندی تنظیمات LDAP کتاب نشانی‌
-Comment[fi]=Aseta osoitekirjan LDAP-asetuksia
-Comment[fr]=Configurer les paramètres du carnet d'adresses LDAP
-Comment[fy]=Hjir kinne jo de LDAP-ynstellings foar jo adresboek ynstelle
-Comment[gl]=Configurar as opcións do Caderno de Enderezos de LDAP
-Comment[he]=הגדר את פנקס הכתובות מבוסס LDAP
-Comment[hi]=पता पुस्तिका एलडीएपी विन्यास कॉन्फ़िगर करें
-Comment[hu]=A címjegyzék LDAP-beállításainak megváltoztatása
-Comment[is]=Breyta LDAP stillingum vistfangaskráarinnar
-Comment[it]=Configurare le impostazioni LDAP della rubrica indirizzi
-Comment[ja]=アドレス帳 LDAP 設定
-Comment[kk]=Адрестік кітапшаның LDAP параметрлерін баптау
-Comment[km]=កំណត់​រចនាសម្ព័ន្ធ​ការ​កំណត់ LDAP របស់​សៀវភៅ​អាសយដ្ឋាន
-Comment[lt]=Konfigūruoti adresų knygelės LDAP nustatymus
-Comment[mk]=Конфигурирајте ги поставувањата за LDAP за адресарот
-Comment[ms]=Konfigurkan Seting Buku Alamat LDAP
-Comment[nb]=Sett opp LDAP-innstillinger for adresseboka
-Comment[nds]=LDAP-Instellen för KAdressbook
-Comment[ne]=ठेगाना पुस्तिका एलडीएपी सेटिङ कन्फिगर गर्नुहोस्
-Comment[nl]=Hier kunt u de LDAP-instellingen voor uw adresboek instellen
-Comment[nn]=Setja opp LDAP-innstillingar for adresseboka
-Comment[pl]=Konfiguracja ustawień LDAP dla Książki adresowej
-Comment[pt]=Configurar as opções de LDAP do Livro de Endereços
-Comment[pt_BR]=Configurar as Definições para LDAP do Livro de Endereços
-Comment[ru]=Настройка серверов LDAP адресной книги
-Comment[sk]=Nastavenie LDAP volieb Adresára
-Comment[sl]=Prilagodi nastavitve LDAP v Adresarju
-Comment[sr]=Подешавање LDAP поставки адресара
-Comment[sr@Latn]=Podešavanje LDAP postavki adresara
-Comment[sv]=Anpassa adressbokens LDAP-inställningar
-Comment[ta]=கேமுகவரிபுத்தகத்தை உருவமை LDAP அமைவுகள்
-Comment[tg]=Танзимоти серверҳои LDAP-и китоби адрес
-Comment[tr]=Adres Defteri LDAP Ayarlarını Yapılandır
-Comment[uk]=Налаштування параметрів LDAP для адресної книги
-Comment[uz]=LDAP манзиллар дафтарини мослаш
-Comment[zh_CN]=配置地址簿 LDAP 设置
-Comment[zh_TW]=設定通訊錄 LDAP 設定
+
Keywords=kaddressbook; configure; settings; LDAP;
-Keywords[be]=K Адрасная кніга; настроіць; настраўленні; kaddressbook; configure; settings; LDAP;
-Keywords[bg]=адресник;адрес;адресна;книга;сървър;всички;kaddressbook; configure; settings; LDAP;
-Keywords[br]=kaddressbook; kefluniañ; dibarzhoù; LDAP;
-Keywords[bs]=kaddressbook; configure; settings; LDAP; podesi; postavke; podesite; konfiguracija;
-Keywords[ca]=llibreta d'adreces; configura; opcions; LDAP;
-Keywords[cs]=kniha adres;nastavení;LDAP;
-Keywords[cy]=kaddressbook;ffurfweddu; gosodiadau;LDAP;
-Keywords[da]=kaddressbook; indstil; opsætning; LDAP;
-Keywords[de]=KAddressbook;LDAP;Einstellungen; Einrichten;
-Keywords[el]=kaddressbook; ρύθμιση; ρυθμίσεις; LDAP;
-Keywords[es]=kaddressbook; configurar; opciones; LDAP;
-Keywords[et]=kde aadressiraamat; seadistamine; seadistused; LDAP;
-Keywords[eu]=kaddressbook; konfiguratu;ezarpenak; LDAP;
-Keywords[fa]=kaddressbook، پیکربندی، تنظیمات، LDAP;
-Keywords[fi]=kaddressbook; aseta; asetukset; LDAP;
-Keywords[fr]=carnet d'adresses;adresses;kab;kaddressbook;configurer;paramètres;paramètre;LDAP;
-Keywords[fy]=adresboek;kaddressbook;LDAP;
-Keywords[ga]=kaddressbook; cumraigh; cumraíocht; socruithe; LDAP;
-Keywords[gl]=kaddressbook; configurar;opcións; LDAP;
-Keywords[hi]=केएड्रेसबुक; कॉन्फ़िगर; विन्यास;एलडीएपी;
-Keywords[hu]=kaddressbook; konfiguráció; beállítások; LDAP;
-Keywords[is]=kaddressbook; stillingar; stilla; LDAP;
-Keywords[it]=kaddressbook; configura; impostazioni; LDAP;
-Keywords[ja]=kaddressbook LDAP 設定;
-Keywords[km]=kaddressbook;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;LDAP;
-Keywords[lt]=kaddressbook; configure; settings; LDAP; nustatymai; konfigūruoti;
-Keywords[mk]=kaddressbook; configure; settings; LDAP; кадресар; конфигурација; конфигурирање; поставувања;
-Keywords[ms]=selaraskan; tetapan; kaddressbook; configure; settings; LDAP;
-Keywords[nb]=kaddressbook; sette opp; innstillinger; LDAP;
-Keywords[nds]=KAdressbook;Adressbook;LDAP;instellen;
-Keywords[ne]=केडीई ठेगाना पुस्तिका; कन्फिगर; सेटिङ; एलडीएपी;
-Keywords[nl]=adresboek;kaddressbook;LDAP;
-Keywords[nn]=adressebok; oppsett; innstillingar; LDAP;
-Keywords[pl]=kaddressbook; książka adresowa;konfiguracja;ustawienia;opcje; LDAP;
-Keywords[pt]=kaddressbook; configurar; configuração; LDAP;
-Keywords[pt_BR]=kaddressbook; configurar; configurações; LDAP;
-Keywords[ro]=kaddressbook;configurare;setări;LDAP;
-Keywords[ru]=kaddressbook; configure; settings; LDAP; адресная книга; настройки;
-Keywords[se]=čujuhusgirji;heivehus;heivehit;LDAP;
-Keywords[sl]=kaddressbook;adresar; nastavi; nastavitve; LDAP;
-Keywords[sr]=kaddressbook; configure; settings; подеси; поставке; LDAP;
-Keywords[sr@Latn]=kaddressbook; configure; settings; podesi; postavke; LDAP;
-Keywords[sv]=adressbok; anpassa; inställningar; LDAP;
-Keywords[ta]=கேமுகவரிபுத்தகம்;கட்டமைப்பு;அமைவுகள்;LDAP;
-Keywords[tg]=kaddressbook; configure; settings; LDAP; китоби адрес; танзимот;
-Keywords[tr]=adres defteri;yapılandırma;ayarlar;LDAP;
-Keywords[uk]=kaddressbook; налаштування; параметри; LDAP;
-Keywords[uz]=kaddressbook; мослаш; мосламалар; манзиллар дафтари; LDAP;
-Keywords[zh_CN]=kaddressbook; configure; settings; LDAP; 配置; 设置;
diff --git a/kaddressbook/kcmconfigs/kcmkabconfig.cpp b/kaddressbook/kcmconfigs/kcmkabconfig.cpp
index db05432c..7bc6abd6 100644
--- a/kaddressbook/kcmconfigs/kcmkabconfig.cpp
+++ b/kaddressbook/kcmconfigs/kcmkabconfig.cpp
@@ -31,7 +31,7 @@
#include "kcmkabconfig.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
extern "C"
{
@@ -47,7 +47,7 @@ KCMKabConfig::KCMKabConfig( TQWidget *parent, const char *name )
mConfigWidget = new KABConfigWidget( this, "mConfigWidget" );
layout->addWidget( mConfigWidget );
- connect( mConfigWidget, TQT_SIGNAL( changed( bool ) ), TQT_SIGNAL( changed( bool ) ) );
+ connect( mConfigWidget, TQ_SIGNAL( changed( bool ) ), TQ_SIGNAL( changed( bool ) ) );
load();
diff --git a/kaddressbook/kcmconfigs/kcmkabconfig.h b/kaddressbook/kcmconfigs/kcmkabconfig.h
index b4b18b0e..d97eb1d8 100644
--- a/kaddressbook/kcmconfigs/kcmkabconfig.h
+++ b/kaddressbook/kcmconfigs/kcmkabconfig.h
@@ -30,7 +30,7 @@ class KABConfigWidget;
class KCMKabConfig : public TDECModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/kcmconfigs/kcmkabcustomfields.cpp b/kaddressbook/kcmconfigs/kcmkabcustomfields.cpp
index dcbcd2c5..8905b899 100644
--- a/kaddressbook/kcmconfigs/kcmkabcustomfields.cpp
+++ b/kaddressbook/kcmconfigs/kcmkabcustomfields.cpp
@@ -29,7 +29,7 @@
#include <tqregexp.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
extern "C"
{
diff --git a/kaddressbook/kcmconfigs/kcmkabldapconfig.cpp b/kaddressbook/kcmconfigs/kcmkabldapconfig.cpp
index 73e8c5a2..da6bf49b 100644
--- a/kaddressbook/kcmconfigs/kcmkabldapconfig.cpp
+++ b/kaddressbook/kcmconfigs/kcmkabldapconfig.cpp
@@ -32,7 +32,7 @@
#include "kcmkabldapconfig.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
extern "C"
{
@@ -48,7 +48,7 @@ KCMKabLdapConfig::KCMKabLdapConfig( TQWidget *parent, const char *name )
mConfigWidget = new LDAPOptionsWidget( this );
layout->addWidget( mConfigWidget );
- connect( mConfigWidget, TQT_SIGNAL( changed( bool ) ), TQT_SIGNAL( changed( bool ) ) );
+ connect( mConfigWidget, TQ_SIGNAL( changed( bool ) ), TQ_SIGNAL( changed( bool ) ) );
load();
diff --git a/kaddressbook/kcmconfigs/kcmkabldapconfig.h b/kaddressbook/kcmconfigs/kcmkabldapconfig.h
index 2e823814..9ea25e83 100644
--- a/kaddressbook/kcmconfigs/kcmkabldapconfig.h
+++ b/kaddressbook/kcmconfigs/kcmkabldapconfig.h
@@ -32,7 +32,7 @@ class LDAPOptionsWidget;
class KCMKabLdapConfig : public TDECModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/kcmconfigs/ldapoptionswidget.cpp b/kaddressbook/kcmconfigs/ldapoptionswidget.cpp
index 4e4b15a9..f8bcfdb9 100644
--- a/kaddressbook/kcmconfigs/ldapoptionswidget.cpp
+++ b/kaddressbook/kcmconfigs/ldapoptionswidget.cpp
@@ -80,14 +80,14 @@ LDAPOptionsWidget::LDAPOptionsWidget( TQWidget* parent, const char* name )
mHostListView->addColumn( TQString() );
mHostListView->header()->hide();
- connect( mHostListView, TQT_SIGNAL( selectionChanged( TQListViewItem* ) ),
- TQT_SLOT( slotSelectionChanged( TQListViewItem* ) ) );
- connect( mHostListView, TQT_SIGNAL(doubleClicked( TQListViewItem *, const TQPoint &, int )), this, TQT_SLOT(slotEditHost()));
- connect( mHostListView, TQT_SIGNAL( clicked( TQListViewItem* ) ),
- TQT_SLOT( slotItemClicked( TQListViewItem* ) ) );
-
- connect( mUpButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotMoveUp() ) );
- connect( mDownButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotMoveDown() ) );
+ connect( mHostListView, TQ_SIGNAL( selectionChanged( TQListViewItem* ) ),
+ TQ_SLOT( slotSelectionChanged( TQListViewItem* ) ) );
+ connect( mHostListView, TQ_SIGNAL(doubleClicked( TQListViewItem *, const TQPoint &, int )), this, TQ_SLOT(slotEditHost()));
+ connect( mHostListView, TQ_SIGNAL( clicked( TQListViewItem* ) ),
+ TQ_SLOT( slotItemClicked( TQListViewItem* ) ) );
+
+ connect( mUpButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotMoveUp() ) );
+ connect( mDownButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotMoveDown() ) );
}
LDAPOptionsWidget::~LDAPOptionsWidget()
@@ -288,10 +288,10 @@ void LDAPOptionsWidget::initGUI()
layout->addWidget( groupBox );
KButtonBox *buttons = new KButtonBox( this );
- buttons->addButton( i18n( "&Add Host..." ), TQT_TQOBJECT(this), TQT_SLOT( slotAddHost() ) );
- mEditButton = buttons->addButton( i18n( "&Edit Host..." ), TQT_TQOBJECT(this), TQT_SLOT( slotEditHost() ) );
+ buttons->addButton( i18n( "&Add Host..." ), this, TQ_SLOT( slotAddHost() ) );
+ mEditButton = buttons->addButton( i18n( "&Edit Host..." ), this, TQ_SLOT( slotEditHost() ) );
mEditButton->setEnabled( false );
- mRemoveButton = buttons->addButton( i18n( "&Remove Host" ), TQT_TQOBJECT(this), TQT_SLOT( slotRemoveHost() ) );
+ mRemoveButton = buttons->addButton( i18n( "&Remove Host" ), this, TQ_SLOT( slotRemoveHost() ) );
mRemoveButton->setEnabled( false );
buttons->layout();
diff --git a/kaddressbook/kcmconfigs/ldapoptionswidget.h b/kaddressbook/kcmconfigs/ldapoptionswidget.h
index 5471b0b6..fbb32a1f 100644
--- a/kaddressbook/kcmconfigs/ldapoptionswidget.h
+++ b/kaddressbook/kcmconfigs/ldapoptionswidget.h
@@ -33,7 +33,7 @@ class TQPushButton;
class LDAPOptionsWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/keywidget.cpp b/kaddressbook/keywidget.cpp
index c0417b7e..890bf644 100644
--- a/kaddressbook/keywidget.cpp
+++ b/kaddressbook/keywidget.cpp
@@ -61,9 +61,9 @@ KeyWidget::KeyWidget( TQWidget *parent, const char *name )
mExportButton->setEnabled( false );
layout->addMultiCellWidget( mExportButton, 3, 3, 0, 1 );
- connect( mAddButton, TQT_SIGNAL( clicked() ), TQT_SLOT( addKey() ) );
- connect( mRemoveButton, TQT_SIGNAL( clicked() ), TQT_SLOT( removeKey() ) );
- connect( mExportButton, TQT_SIGNAL( clicked() ), TQT_SLOT( exportKey() ) );
+ connect( mAddButton, TQ_SIGNAL( clicked() ), TQ_SLOT( addKey() ) );
+ connect( mRemoveButton, TQ_SIGNAL( clicked() ), TQ_SLOT( removeKey() ) );
+ connect( mExportButton, TQ_SIGNAL( clicked() ), TQ_SLOT( exportKey() ) );
}
KeyWidget::~KeyWidget()
diff --git a/kaddressbook/keywidget.h b/kaddressbook/keywidget.h
index 3507af80..b317eef6 100644
--- a/kaddressbook/keywidget.h
+++ b/kaddressbook/keywidget.h
@@ -33,7 +33,7 @@ class TQPushButton;
class KeyWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/ldapsearchdialog.cpp b/kaddressbook/ldapsearchdialog.cpp
index 4b01cf6f..07668b71 100644
--- a/kaddressbook/ldapsearchdialog.cpp
+++ b/kaddressbook/ldapsearchdialog.cpp
@@ -152,7 +152,7 @@ LDAPSearchDialog::LDAPSearchDialog( TDEABC::AddressBook *ab, KABCore *core,
page );
groupBox->setFrameShape( TQGroupBox::Box );
groupBox->setFrameShadow( TQGroupBox::Sunken );
- groupBox->setColumnLayout( 0, Qt::Vertical );
+ groupBox->setColumnLayout( 0, TQt::Vertical );
TQGridLayout *boxLayout = new TQGridLayout( groupBox->layout(), 2,
5, spacingHint() );
boxLayout->setColStretch( 1, 1 );
@@ -202,9 +202,9 @@ LDAPSearchDialog::LDAPSearchDialog( TDEABC::AddressBook *ab, KABCore *core,
mResultListView->setShowSortIndicator( true );
topLayout->addWidget( mResultListView );
- KButtonBox *buttons = new KButtonBox( page, Qt::Horizontal );
- buttons->addButton( i18n( "Select All" ), TQT_TQOBJECT(this), TQT_SLOT( slotSelectAll() ) );
- buttons->addButton( i18n( "Unselect All" ), TQT_TQOBJECT(this), TQT_SLOT( slotUnselectAll() ) );
+ KButtonBox *buttons = new KButtonBox( page, TQt::Horizontal );
+ buttons->addButton( i18n( "Select All" ), this, TQ_SLOT( slotSelectAll() ) );
+ buttons->addButton( i18n( "Unselect All" ), this, TQ_SLOT( slotUnselectAll() ) );
topLayout->addWidget( buttons );
@@ -222,10 +222,10 @@ LDAPSearchDialog::LDAPSearchDialog( TDEABC::AddressBook *ab, KABCore *core,
mNumHosts = 0;
mIsOK = false;
- connect( mRecursiveCheckbox, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SLOT( slotSetScope( bool ) ) );
- connect( mSearchButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotStartSearch() ) );
+ connect( mRecursiveCheckbox, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SLOT( slotSetScope( bool ) ) );
+ connect( mSearchButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotStartSearch() ) );
setTabOrder(mSearchEdit, mFilterCombo);
setTabOrder(mFilterCombo, mSearchButton);
@@ -264,7 +264,7 @@ void LDAPSearchDialog::restoreSettings()
} else {
mIsOK = true;
for ( int j = 0; j < mNumHosts; ++j ) {
- KPIM::LdapClient* ldapClient = new KPIM::LdapClient( 0, TQT_TQOBJECT(this), "ldapclient" );
+ KPIM::LdapClient* ldapClient = new KPIM::LdapClient( 0, this, "ldapclient" );
KPIM::LdapServer ldapServer;
KPIM::LdapSearch::readConfig( ldapServer, config, j, true );
ldapClient->setServer( ldapServer );
@@ -275,12 +275,12 @@ void LDAPSearchDialog::restoreSettings()
ldapClient->setAttrs( attrs );
- connect( ldapClient, TQT_SIGNAL( result( const KPIM::LdapObject& ) ),
- this, TQT_SLOT( slotAddResult( const KPIM::LdapObject& ) ) );
- connect( ldapClient, TQT_SIGNAL( done() ),
- this, TQT_SLOT( slotSearchDone() ) );
- connect( ldapClient, TQT_SIGNAL( error( const TQString& ) ),
- this, TQT_SLOT( slotError( const TQString& ) ) );
+ connect( ldapClient, TQ_SIGNAL( result( const KPIM::LdapObject& ) ),
+ this, TQ_SLOT( slotAddResult( const KPIM::LdapObject& ) ) );
+ connect( ldapClient, TQ_SIGNAL( done() ),
+ this, TQ_SLOT( slotSearchDone() ) );
+ connect( ldapClient, TQ_SIGNAL( error( const TQString& ) ),
+ this, TQ_SLOT( slotError( const TQString& ) ) );
mLdapClientList.append( ldapClient );
}
@@ -387,10 +387,10 @@ void LDAPSearchDialog::slotStartSearch()
TQApplication::setOverrideCursor( TQt::waitCursor );
mSearchButton->setText( i18n( "Stop" ) );
- disconnect( mSearchButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotStartSearch() ) );
- connect( mSearchButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotStopSearch() ) );
+ disconnect( mSearchButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotStartSearch() ) );
+ connect( mSearchButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotStopSearch() ) );
bool startsWith = (mSearchType->currentItem() == 1);
@@ -419,10 +419,10 @@ void LDAPSearchDialog::slotSearchDone()
return;
}
- disconnect( mSearchButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotStopSearch() ) );
- connect( mSearchButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotStartSearch() ) );
+ disconnect( mSearchButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotStopSearch() ) );
+ connect( mSearchButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotStartSearch() ) );
mSearchButton->setText( i18n( "&Search" ) );
TQApplication::restoreOverrideCursor();
diff --git a/kaddressbook/ldapsearchdialog.h b/kaddressbook/ldapsearchdialog.h
index 1d38c88a..a10bbfde 100644
--- a/kaddressbook/ldapsearchdialog.h
+++ b/kaddressbook/ldapsearchdialog.h
@@ -49,7 +49,7 @@ namespace TDEABC {
class LDAPSearchDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/nameeditdialog.cpp b/kaddressbook/nameeditdialog.cpp
index 0d350ae7..6d90324a 100644
--- a/kaddressbook/nameeditdialog.cpp
+++ b/kaddressbook/nameeditdialog.cpp
@@ -105,7 +105,7 @@ NameEditDialog::NameEditDialog( const TDEABC::Addressee &addr, int type,
mFormattedNameCombo = new KComboBox( page );
mFormattedNameCombo->setEnabled( !readOnly );
layout->addWidget( mFormattedNameCombo, 5, 1 );
- connect( mFormattedNameCombo, TQT_SIGNAL( activated( int ) ), TQT_SLOT( typeChanged( int ) ) );
+ connect( mFormattedNameCombo, TQ_SIGNAL( activated( int ) ), TQ_SLOT( typeChanged( int ) ) );
mFormattedNameEdit = new KLineEdit( page );
mFormattedNameEdit->setEnabled( type == CustomName && !readOnly );
@@ -113,8 +113,8 @@ NameEditDialog::NameEditDialog( const TDEABC::Addressee &addr, int type,
mParseBox = new TQCheckBox( i18n( "Parse name automatically" ), page );
mParseBox->setEnabled( !readOnly );
- connect( mParseBox, TQT_SIGNAL( toggled(bool) ), TQT_SLOT( parseBoxChanged(bool) ) );
- connect( mParseBox, TQT_SIGNAL( toggled(bool) ), TQT_SLOT( modified() ) );
+ connect( mParseBox, TQ_SIGNAL( toggled(bool) ), TQ_SLOT( parseBoxChanged(bool) ) );
+ connect( mParseBox, TQ_SIGNAL( toggled(bool) ), TQ_SLOT( modified() ) );
layout->addMultiCellWidget( mParseBox, 6, 6, 0, 1 );
// Fill in the values
@@ -159,24 +159,24 @@ NameEditDialog::NameEditDialog( const TDEABC::Addressee &addr, int type,
TDEAcceleratorManager::manage( this );
- connect( mPrefixCombo, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( modified() ) );
- connect( mGivenNameEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( modified() ) );
- connect( mAdditionalNameEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( modified() ) );
- connect( mFamilyNameEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( modified() ) );
- connect( mSuffixCombo, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( modified() ) );
- connect( mFormattedNameCombo, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( modified() ) );
- connect( mFormattedNameCombo, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( formattedNameTypeChanged() ) );
- connect( mFormattedNameEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( modified() ) );
- connect( mFormattedNameEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( formattedNameChanged( const TQString& ) ) );
+ connect( mPrefixCombo, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( modified() ) );
+ connect( mGivenNameEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( modified() ) );
+ connect( mAdditionalNameEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( modified() ) );
+ connect( mFamilyNameEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( modified() ) );
+ connect( mSuffixCombo, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( modified() ) );
+ connect( mFormattedNameCombo, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( modified() ) );
+ connect( mFormattedNameCombo, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( formattedNameTypeChanged() ) );
+ connect( mFormattedNameEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( modified() ) );
+ connect( mFormattedNameEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( formattedNameChanged( const TQString& ) ) );
initTypeCombo();
mFormattedNameCombo->setCurrentItem( type );
diff --git a/kaddressbook/nameeditdialog.h b/kaddressbook/nameeditdialog.h
index 277031d9..12b74939 100644
--- a/kaddressbook/nameeditdialog.h
+++ b/kaddressbook/nameeditdialog.h
@@ -39,7 +39,7 @@ class KComboBox;
*/
class NameEditDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/phoneeditwidget.cpp b/kaddressbook/phoneeditwidget.cpp
index 80f45cff..e4857ae7 100644
--- a/kaddressbook/phoneeditwidget.cpp
+++ b/kaddressbook/phoneeditwidget.cpp
@@ -56,10 +56,10 @@ PhoneTypeCombo::PhoneTypeCombo( TQWidget *parent )
update();
- connect( this, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( selected( int ) ) );
- connect( this, TQT_SIGNAL( activated( int ) ),
- this, TQT_SIGNAL( modified() ) );
+ connect( this, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( selected( int ) ) );
+ connect( this, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SIGNAL( modified() ) );
}
PhoneTypeCombo::~PhoneTypeCombo()
@@ -137,8 +137,8 @@ PhoneNumberWidget::PhoneNumberWidget( TQWidget *parent )
layout->addWidget( mTypeCombo );
layout->addWidget( mNumberEdit );
- connect( mTypeCombo, TQT_SIGNAL( modified() ), TQT_SIGNAL( modified() ) );
- connect( mNumberEdit, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SIGNAL( modified() ) );
+ connect( mTypeCombo, TQ_SIGNAL( modified() ), TQ_SIGNAL( modified() ) );
+ connect( mNumberEdit, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SIGNAL( modified() ) );
}
void PhoneNumberWidget::setNumber( const TDEABC::PhoneNumber &number )
@@ -183,11 +183,11 @@ PhoneEditWidget::PhoneEditWidget( TQWidget *parent, const char *name )
mRemoveButton->setMaximumSize( mRemoveButton->sizeHint() );
layout->addWidget( mRemoveButton, 1, 1 );
- mMapper = new TQSignalMapper( TQT_TQOBJECT(this) );
- connect( mMapper, TQT_SIGNAL( mapped( int ) ), TQT_SLOT( changed( int ) ) );
+ mMapper = new TQSignalMapper( this );
+ connect( mMapper, TQ_SIGNAL( mapped( int ) ), TQ_SLOT( changed( int ) ) );
- connect( mAddButton, TQT_SIGNAL( clicked() ), TQT_SLOT( add() ) );
- connect( mRemoveButton, TQT_SIGNAL( clicked() ), TQT_SLOT( remove() ) );
+ connect( mAddButton, TQ_SIGNAL( clicked() ), TQ_SLOT( add() ) );
+ connect( mRemoveButton, TQ_SIGNAL( clicked() ), TQ_SLOT( remove() ) );
}
PhoneEditWidget::~PhoneEditWidget()
@@ -271,8 +271,8 @@ void PhoneEditWidget::recreateNumberWidgets()
PhoneNumberWidget *wdg = new PhoneNumberWidget( this );
wdg->setNumber( *it );
- mMapper->setMapping( TQT_TQOBJECT(wdg), counter );
- connect( wdg, TQT_SIGNAL( modified() ), mMapper, TQT_SLOT( map() ) );
+ mMapper->setMapping( wdg, counter );
+ connect( wdg, TQ_SIGNAL( modified() ), mMapper, TQ_SLOT( map() ) );
mWidgetLayout->addWidget( wdg );
mWidgets.append( wdg );
@@ -303,7 +303,7 @@ PhoneTypeDialog::PhoneTypeDialog( int type, TQWidget *parent )
mPreferredBox = new TQCheckBox( i18n( "This is the preferred phone number" ), page );
layout->addWidget( mPreferredBox );
- mGroup = new TQButtonGroup( 2, Qt::Horizontal, i18n( "Types" ), page );
+ mGroup = new TQButtonGroup( 2, TQt::Horizontal, i18n( "Types" ), page );
layout->addWidget( mGroup );
// fill widgets
diff --git a/kaddressbook/phoneeditwidget.h b/kaddressbook/phoneeditwidget.h
index 13c08891..eb1fbf0a 100644
--- a/kaddressbook/phoneeditwidget.h
+++ b/kaddressbook/phoneeditwidget.h
@@ -38,7 +38,7 @@ class KComboBox;
class PhoneTypeCombo : public KComboBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -65,7 +65,7 @@ class PhoneTypeCombo : public KComboBox
class PhoneNumberWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -90,7 +90,7 @@ class PhoneNumberWidget : public TQWidget
*/
class PhoneEditWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -130,7 +130,7 @@ class PhoneEditWidget : public TQWidget
*/
class PhoneTypeDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
PhoneTypeDialog( int type, TQWidget *parent );
diff --git a/kaddressbook/printing/detailledstyle.h b/kaddressbook/printing/detailledstyle.h
index 05f30bae..4197755e 100644
--- a/kaddressbook/printing/detailledstyle.h
+++ b/kaddressbook/printing/detailledstyle.h
@@ -35,7 +35,7 @@ namespace KABPrinting {
class DetailledPrintStyle : public PrintStyle
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/printing/mikesstyle.h b/kaddressbook/printing/mikesstyle.h
index fe1be422..ccaf4a66 100644
--- a/kaddressbook/printing/mikesstyle.h
+++ b/kaddressbook/printing/mikesstyle.h
@@ -35,7 +35,7 @@ class PrintProgress;
class MikesStyle : public PrintStyle
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/printing/printingwizard.cpp b/kaddressbook/printing/printingwizard.cpp
index eecf434c..a9375e3c 100644
--- a/kaddressbook/printing/printingwizard.cpp
+++ b/kaddressbook/printing/printingwizard.cpp
@@ -75,7 +75,7 @@ PrintingWizard::PrintingWizard( KPrinter *printer, TDEABC::AddressBook* ab,
mStylePage = new StylePage( mAddressBook, this );
- connect( mStylePage, TQT_SIGNAL( styleChanged(int) ), TQT_SLOT( slotStyleSelected(int) ) );
+ connect( mStylePage, TQ_SIGNAL( styleChanged(int) ), TQ_SLOT( slotStyleSelected(int) ) );
insertPage( mStylePage, i18n("Choose Printing Style"), -1 );
registerStyles();
diff --git a/kaddressbook/printing/printingwizard.h b/kaddressbook/printing/printingwizard.h
index 3d2d0b27..bd26b2c1 100644
--- a/kaddressbook/printing/printingwizard.h
+++ b/kaddressbook/printing/printingwizard.h
@@ -49,7 +49,7 @@ namespace KABPrinting {
*/
class PrintingWizard : public KWizard
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/printing/printprogress.h b/kaddressbook/printing/printprogress.h
index 481543a2..b23f069a 100644
--- a/kaddressbook/printing/printprogress.h
+++ b/kaddressbook/printing/printprogress.h
@@ -39,7 +39,7 @@ namespace KABPrinting {
*/
class PrintProgress : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/printing/printstyle.h b/kaddressbook/printing/printstyle.h
index 9eeca876..6984a7f5 100644
--- a/kaddressbook/printing/printstyle.h
+++ b/kaddressbook/printing/printstyle.h
@@ -59,7 +59,7 @@ class PrintProgress;
class PrintStyle : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/printing/selectionpage.cpp b/kaddressbook/printing/selectionpage.cpp
index 39b1c4a8..5a42444b 100644
--- a/kaddressbook/printing/selectionpage.cpp
+++ b/kaddressbook/printing/selectionpage.cpp
@@ -51,7 +51,7 @@ SelectionPage::SelectionPage( TQWidget* parent, const char* name )
mButtonGroup = new TQButtonGroup( this );
mButtonGroup->setFrameShape( TQButtonGroup::NoFrame );
- mButtonGroup->setColumnLayout( 0, Qt::Vertical );
+ mButtonGroup->setColumnLayout( 0, TQt::Vertical );
mButtonGroup->layout()->setSpacing( KDialog::spacingHint() );
mButtonGroup->layout()->setMargin( KDialog::marginHint() );
@@ -90,8 +90,8 @@ SelectionPage::SelectionPage( TQWidget* parent, const char* name )
topLayout->addWidget( mButtonGroup );
- connect( mFiltersCombo, TQT_SIGNAL( activated(int) ), TQT_SLOT( filterChanged(int) ) );
- connect( mCategoriesView, TQT_SIGNAL( clicked(TQListViewItem*) ), TQT_SLOT( categoryClicked(TQListViewItem*) ) );
+ connect( mFiltersCombo, TQ_SIGNAL( activated(int) ), TQ_SLOT( filterChanged(int) ) );
+ connect( mCategoriesView, TQ_SIGNAL( clicked(TQListViewItem*) ), TQ_SLOT( categoryClicked(TQListViewItem*) ) );
}
SelectionPage::~SelectionPage()
diff --git a/kaddressbook/printing/selectionpage.h b/kaddressbook/printing/selectionpage.h
index a7b10d26..06a6f3a5 100644
--- a/kaddressbook/printing/selectionpage.h
+++ b/kaddressbook/printing/selectionpage.h
@@ -34,7 +34,7 @@ class TQRadioButton;
class SelectionPage : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/printing/stylepage.cpp b/kaddressbook/printing/stylepage.cpp
index 0df14931..2278b6b4 100644
--- a/kaddressbook/printing/stylepage.cpp
+++ b/kaddressbook/printing/stylepage.cpp
@@ -44,7 +44,7 @@ StylePage::StylePage( TDEABC::AddressBook *ab, TQWidget* parent, const char* na
mSortTypeCombo->insertItem( i18n( "Ascending" ) );
mSortTypeCombo->insertItem( i18n( "Descending" ) );
- connect( mStyleCombo, TQT_SIGNAL( activated( int ) ), TQT_SIGNAL( styleChanged( int ) ) );
+ connect( mStyleCombo, TQ_SIGNAL( activated( int ) ), TQ_SIGNAL( styleChanged( int ) ) );
}
StylePage::~StylePage()
@@ -121,7 +121,7 @@ void StylePage::initGUI()
topLayout->addMultiCellWidget( label, 0, 0, 0, 1 );
TQButtonGroup *group = new TQButtonGroup( i18n( "Sorting" ), this );
- group->setColumnLayout( 0, Qt::Vertical );
+ group->setColumnLayout( 0, TQt::Vertical );
TQGridLayout *sortLayout = new TQGridLayout( group->layout(), 2, 2,
KDialog::spacingHint() );
sortLayout->setAlignment( TQt::AlignTop );
@@ -141,7 +141,7 @@ void StylePage::initGUI()
topLayout->addWidget( group, 1, 0 );
group = new TQButtonGroup( i18n( "Print Style" ), this );
- group->setColumnLayout( 0, Qt::Vertical );
+ group->setColumnLayout( 0, TQt::Vertical );
TQVBoxLayout *styleLayout = new TQVBoxLayout( group->layout(),
KDialog::spacingHint() );
diff --git a/kaddressbook/printing/stylepage.h b/kaddressbook/printing/stylepage.h
index 9b6958f7..6bccdda0 100644
--- a/kaddressbook/printing/stylepage.h
+++ b/kaddressbook/printing/stylepage.h
@@ -37,7 +37,7 @@ class KComboBox;
class StylePage : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/searchmanager.h b/kaddressbook/searchmanager.h
index 3972110c..4646f90b 100644
--- a/kaddressbook/searchmanager.h
+++ b/kaddressbook/searchmanager.h
@@ -36,7 +36,7 @@ namespace KAB {
class SearchManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/secrecywidget.cpp b/kaddressbook/secrecywidget.cpp
index ae2b9c49..56b888ca 100644
--- a/kaddressbook/secrecywidget.cpp
+++ b/kaddressbook/secrecywidget.cpp
@@ -42,8 +42,8 @@ SecrecyWidget::SecrecyWidget( TQWidget *parent, const char *name )
for ( it = list.begin(); it != list.end(); ++it )
mSecrecyCombo->insertItem( TDEABC::Secrecy::typeLabel( *it ), *it );
- connect( mSecrecyCombo, TQT_SIGNAL( activated( const TQString& ) ),
- TQT_SIGNAL( changed() ) );
+ connect( mSecrecyCombo, TQ_SIGNAL( activated( const TQString& ) ),
+ TQ_SIGNAL( changed() ) );
}
SecrecyWidget::~SecrecyWidget()
diff --git a/kaddressbook/secrecywidget.h b/kaddressbook/secrecywidget.h
index 1424d5e5..0d43bc5b 100644
--- a/kaddressbook/secrecywidget.h
+++ b/kaddressbook/secrecywidget.h
@@ -31,7 +31,7 @@ class KComboBox;
class SecrecyWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/simpleaddresseeeditor.cpp b/kaddressbook/simpleaddresseeeditor.cpp
index 7d7914b9..3cfce3f8 100644
--- a/kaddressbook/simpleaddresseeeditor.cpp
+++ b/kaddressbook/simpleaddresseeeditor.cpp
@@ -72,16 +72,16 @@ void SimpleAddresseeEditor::initGui()
mNameEdit = new KLineEdit( this );
topLayout->addWidget( mNameEdit, 0, 1 );
- connect( mNameEdit, TQT_SIGNAL( textChanged( const TQString & ) ),
- TQT_SLOT( emitModified() ) );
+ connect( mNameEdit, TQ_SIGNAL( textChanged( const TQString & ) ),
+ TQ_SLOT( emitModified() ) );
label = new TQLabel( i18n( "Email:" ), this );
topLayout->addWidget( label, 1, 0 );
mEmailEdit = new KLineEdit( this );
topLayout->addWidget( mEmailEdit, 1, 1 );
- connect( mEmailEdit, TQT_SIGNAL( textChanged( const TQString & ) ),
- TQT_SLOT( emitModified() ) );
+ connect( mEmailEdit, TQ_SIGNAL( textChanged( const TQString & ) ),
+ TQ_SLOT( emitModified() ) );
}
void SimpleAddresseeEditor::load()
diff --git a/kaddressbook/simpleaddresseeeditor.h b/kaddressbook/simpleaddresseeeditor.h
index 6f297edc..1efda9e8 100644
--- a/kaddressbook/simpleaddresseeeditor.h
+++ b/kaddressbook/simpleaddresseeeditor.h
@@ -31,7 +31,7 @@ class KLineEdit;
class SimpleAddresseeEditor : public AddresseeEditorBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
SimpleAddresseeEditor( TQWidget *parent, const char *name = 0 );
diff --git a/kaddressbook/soundwidget.cpp b/kaddressbook/soundwidget.cpp
index dd10e211..ff2c2b38 100644
--- a/kaddressbook/soundwidget.cpp
+++ b/kaddressbook/soundwidget.cpp
@@ -62,20 +62,20 @@ SoundWidget::SoundWidget( TDEABC::AddressBook *ab, TQWidget *parent, const char
mUseSoundUrl->setEnabled( false );
topLayout->addWidget( mUseSoundUrl, 1, 2 );
- connect( mSoundUrl, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( setModified() ) );
- connect( mSoundUrl, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( urlChanged( const TQString& ) ) );
- connect( mUseSoundUrl, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( setModified() ) );
- connect( mUseSoundUrl, TQT_SIGNAL( toggled( bool ) ),
- mPlayButton, TQT_SLOT( setDisabled( bool ) ) );
- connect( mSoundUrl, TQT_SIGNAL( urlSelected( const TQString& ) ),
- TQT_SLOT( loadSound() ) );
- connect( mSoundUrl, TQT_SIGNAL( urlSelected( const TQString& ) ),
- TQT_SLOT( updateGUI() ) );
- connect( mPlayButton, TQT_SIGNAL( clicked() ),
- TQT_SLOT( playSound() ) );
+ connect( mSoundUrl, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( setModified() ) );
+ connect( mSoundUrl, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( urlChanged( const TQString& ) ) );
+ connect( mUseSoundUrl, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( setModified() ) );
+ connect( mUseSoundUrl, TQ_SIGNAL( toggled( bool ) ),
+ mPlayButton, TQ_SLOT( setDisabled( bool ) ) );
+ connect( mSoundUrl, TQ_SIGNAL( urlSelected( const TQString& ) ),
+ TQ_SLOT( loadSound() ) );
+ connect( mSoundUrl, TQ_SIGNAL( urlSelected( const TQString& ) ),
+ TQ_SLOT( updateGUI() ) );
+ connect( mPlayButton, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( playSound() ) );
TQWhatsThis::add( this, i18n( "This field stores a sound file which contains the name of the contact to clarify the pronunciation." ) );
TQWhatsThis::add( mUseSoundUrl, i18n( "Save only the URL to the sound file, not the whole object." ) );
diff --git a/kaddressbook/soundwidget.h b/kaddressbook/soundwidget.h
index 12283b4a..530da098 100644
--- a/kaddressbook/soundwidget.h
+++ b/kaddressbook/soundwidget.h
@@ -35,7 +35,7 @@ class TQPushButton;
class SoundWidget : public KAB::ContactEditorWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/thumbnailcreator/CMakeLists.txt b/kaddressbook/thumbnailcreator/CMakeLists.txt
index 00173bfe..ff8c2974 100644
--- a/kaddressbook/thumbnailcreator/CMakeLists.txt
+++ b/kaddressbook/thumbnailcreator/CMakeLists.txt
@@ -21,7 +21,11 @@ link_directories(
##### other data ################################
-install( FILES ldifvcardthumbnail.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE ldifvcardthumbnail.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR kaddressbook-desktops
+)
##### ldifvcardthumbnail (module) ###############
diff --git a/kaddressbook/thumbnailcreator/ldifvcardthumbnail.desktop b/kaddressbook/thumbnailcreator/ldifvcardthumbnail.desktop
index ffa63a09..a0aa3fa5 100644
--- a/kaddressbook/thumbnailcreator/ldifvcardthumbnail.desktop
+++ b/kaddressbook/thumbnailcreator/ldifvcardthumbnail.desktop
@@ -1,56 +1,8 @@
[Desktop Entry]
Type=Service
-Name=Electronic Business Card Files
-Name[af]=Elektroniese Besigheid kaartjie lêers
-Name[ar]=ملفّات بطاقة الأعمال الإلكترونيّة
-Name[bg]=Файлове за електронна визитка
-Name[bs]=Datoteke elektronskih vizit karti
-Name[ca]=Fitxers targeta de visita electrònica
-Name[cs]=Soubory s elektronickými vizitkami
-Name[cy]=Ffeiliau Cerdyn Busnes Electronig
-Name[da]=Elektroniske forretningskort-filer
-Name[de]=Dateien für elektronische Visitenkarten
-Name[el]=Αρχεία επαγγελματικών ηλεκτρονικών καρτών
-Name[eo]=Dosieroj de Elektronika Vizitkarto
-Name[es]=Archivos de tarjetas de visita electrónicas
-Name[et]=Elektrooniline visiitkaart
-Name[eu]=Electronic Business Card fitxategiak
-Name[fa]=پرونده‌های کارت تجاری الکترونیکی
-Name[fi]=Sähköiset käyntikorttitiedostot
-Name[fr]=Fichiers de cartes de commerce électroniques
-Name[fy]=Elektronyske fisitekaartsjetriemmen
-Name[gl]=Ficheiros de Tarxetas de Visita Electrónicas
-Name[hi]=इलेक्ट्रानिक व्यापार कार्ड फ़ाइलें
-Name[hu]=Elektronikus névjegykártyák
-Name[is]=Skrár með rafrænum nafnspjöldum
-Name[it]=Biglietto da visita elettronico
-Name[ja]=電子ビジネスカードファイル
-Name[kk]=Электрондық визитка файлдары
-Name[km]=ឯកសារ​នាមប័ណ្ណ​អេឡិចត្រូនិច
-Name[lt]=Elektroninės verslo kortelės bylos
-Name[mk]=Датотеки со електронски деловни картички
-Name[ms]=Fail Kad Perniagaan Elektronik
-Name[nb]=Filer for elektroniske visittkort
-Name[nds]=Dateien mit elektroonsche Visitenkoorten
-Name[ne]=बिद्युतीय व्यवसायीक कार्ड फाइल
-Name[nl]=Elektronische visitekaartbestanden
-Name[nn]=Filer for elektroniske visittkort
-Name[pl]=Pliki elektronicznych wizytówek
-Name[pt]=Ficheiros de Cartões Profissionais Electrónicos
-Name[pt_BR]=Arquivos de Cartão de Visita Eletrônico
-Name[ru]=Файлы электронных визиток
-Name[sk]=Súbory elektronických vizitiek
-Name[sl]=Datoteke elektronskih vizitk
-Name[sr]=Фајлови електронске пословне картице
-Name[sr@Latn]=Fajlovi elektronske poslovne kartice
-Name[sv]=Elektroniska visitkortsfiler
-Name[ta]=மின்னணு தொழில் அட்டை கோப்புகள்
-Name[tg]=Файлҳои визиткаи электронӣ
-Name[tr]=Elektronik İş Kartı Dosyaları
-Name[uk]=файли електронних візитних карток
-Name[zh_CN]=电子名片文件
-Name[zh_TW]=電子名片檔
X-TDE-ServiceTypes=ThumbCreator
MimeTypes=text/x-vcard,text/x-ldif
X-TDE-Library=ldifvcardthumbnail
CacheThumbnail=false
+
+Name=Electronic Business Card Files
diff --git a/kaddressbook/viewconfigurefieldspage.cpp b/kaddressbook/viewconfigurefieldspage.cpp
index 828825fa..537e2ced 100644
--- a/kaddressbook/viewconfigurefieldspage.cpp
+++ b/kaddressbook/viewconfigurefieldspage.cpp
@@ -214,7 +214,7 @@ void ViewConfigureFieldsPage::initGUI()
mCategoryCombo->insertItem( TDEABC::Field::categoryLabel( TDEABC::Field::Personal ) );
mCategoryCombo->insertItem( TDEABC::Field::categoryLabel( TDEABC::Field::Organization ) );
mCategoryCombo->insertItem( TDEABC::Field::categoryLabel( TDEABC::Field::CustomCategory ) );
- connect( mCategoryCombo, TQT_SIGNAL( activated(int) ), TQT_SLOT( slotShowFields(int) ) );
+ connect( mCategoryCombo, TQ_SIGNAL( activated(int) ), TQ_SLOT( slotShowFields(int) ) );
gl->addWidget( mCategoryCombo, 0, 0 );
TQLabel *label = new TQLabel( i18n( "&Selected fields:" ), this );
@@ -235,12 +235,12 @@ void ViewConfigureFieldsPage::initGUI()
mAddButton = new TQToolButton( this );
mAddButton->setIconSet( TQApplication::reverseLayout() ? SmallIconSet( "1leftarrow" ) : SmallIconSet( "1rightarrow" ) );
- connect( mAddButton, TQT_SIGNAL( clicked() ), TQT_SLOT( slotSelect() ) );
+ connect( mAddButton, TQ_SIGNAL( clicked() ), TQ_SLOT( slotSelect() ) );
vb1->addWidget( mAddButton );
mRemoveButton = new TQToolButton( this );
mRemoveButton->setIconSet( TQApplication::reverseLayout() ? SmallIconSet( "1rightarrow" ) : SmallIconSet( "1leftarrow" ) );
- connect( mRemoveButton, TQT_SIGNAL( clicked() ), TQT_SLOT( slotUnSelect() ) );
+ connect( mRemoveButton, TQ_SIGNAL( clicked() ), TQ_SLOT( slotUnSelect() ) );
vb1->addWidget( mRemoveButton );
vb1->addStretch();
@@ -251,12 +251,12 @@ void ViewConfigureFieldsPage::initGUI()
mUpButton = new TQToolButton( this );
mUpButton->setIconSet( SmallIconSet( "1uparrow" ) );
- connect( mUpButton, TQT_SIGNAL( clicked() ), TQT_SLOT( slotMoveUp() ) );
+ connect( mUpButton, TQ_SIGNAL( clicked() ), TQ_SLOT( slotMoveUp() ) );
vb2->addWidget( mUpButton );
mDownButton = new TQToolButton( this );
mDownButton->setIconSet( SmallIconSet( "1downarrow" ) );
- connect( mDownButton, TQT_SIGNAL( clicked() ), TQT_SLOT( slotMoveDown() ) );
+ connect( mDownButton, TQ_SIGNAL( clicked() ), TQ_SLOT( slotMoveDown() ) );
vb2->addWidget( mDownButton );
vb2->addStretch();
@@ -275,9 +275,9 @@ void ViewConfigureFieldsPage::initGUI()
gl->activate();
- connect( mUnSelectedBox, TQT_SIGNAL( selectionChanged() ), TQT_SLOT( slotButtonsEnabled() ) );
- connect( mSelectedBox, TQT_SIGNAL( selectionChanged() ), TQT_SLOT( slotButtonsEnabled() ) );
- connect( mSelectedBox, TQT_SIGNAL( currentChanged( TQListBoxItem * ) ), TQT_SLOT( slotButtonsEnabled() ) );
+ connect( mUnSelectedBox, TQ_SIGNAL( selectionChanged() ), TQ_SLOT( slotButtonsEnabled() ) );
+ connect( mSelectedBox, TQ_SIGNAL( selectionChanged() ), TQ_SLOT( slotButtonsEnabled() ) );
+ connect( mSelectedBox, TQ_SIGNAL( currentChanged( TQListBoxItem * ) ), TQ_SLOT( slotButtonsEnabled() ) );
slotButtonsEnabled();
}
diff --git a/kaddressbook/viewconfigurefieldspage.h b/kaddressbook/viewconfigurefieldspage.h
index 9b66b159..f1718bd0 100644
--- a/kaddressbook/viewconfigurefieldspage.h
+++ b/kaddressbook/viewconfigurefieldspage.h
@@ -37,7 +37,7 @@ class TQToolButton;
class ViewConfigureFieldsPage : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/viewconfigurefilterpage.cpp b/kaddressbook/viewconfigurefilterpage.cpp
index c0d7fa7c..76a355ee 100644
--- a/kaddressbook/viewconfigurefilterpage.cpp
+++ b/kaddressbook/viewconfigurefilterpage.cpp
@@ -41,7 +41,7 @@ ViewConfigureFilterPage::ViewConfigureFilterPage( TQWidget *parent,
TQBoxLayout *topLayout = new TQVBoxLayout( this, 0, KDialog::spacingHint() );
mFilterGroup = new TQButtonGroup();
- connect( mFilterGroup, TQT_SIGNAL( clicked( int ) ), TQT_SLOT( buttonClicked( int ) ) );
+ connect( mFilterGroup, TQ_SIGNAL( clicked( int ) ), TQ_SLOT( buttonClicked( int ) ) );
TQLabel *label = new TQLabel( i18n( "The default filter will be activated whenever"
" this view is displayed. This feature allows you to configure views that only"
diff --git a/kaddressbook/viewconfigurefilterpage.h b/kaddressbook/viewconfigurefilterpage.h
index a29bf880..a879337f 100644
--- a/kaddressbook/viewconfigurefilterpage.h
+++ b/kaddressbook/viewconfigurefilterpage.h
@@ -33,7 +33,7 @@ class TDEConfig;
class ViewConfigureFilterPage : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/viewconfigurewidget.h b/kaddressbook/viewconfigurewidget.h
index 839078e6..ad6c8e33 100644
--- a/kaddressbook/viewconfigurewidget.h
+++ b/kaddressbook/viewconfigurewidget.h
@@ -25,7 +25,7 @@
#define VIEWCONFIGUREWIDGET_H
#include <kdialogbase.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqpixmap.h>
#include "configurewidget.h"
@@ -47,7 +47,7 @@ class ViewConfigureFilterPage;
*/
class KDE_EXPORT ViewConfigureWidget : public KAB::ConfigureWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -87,7 +87,7 @@ class KDE_EXPORT ViewConfigureWidget : public KAB::ConfigureWidget
class ViewConfigureDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/viewmanager.cpp b/kaddressbook/viewmanager.cpp
index 47ef542e..125b95c7 100644
--- a/kaddressbook/viewmanager.cpp
+++ b/kaddressbook/viewmanager.cpp
@@ -216,15 +216,15 @@ void ViewManager::setActiveView( const TQString &name )
view->readConfig( config );
// The manager just relays the signals
- connect( view, TQT_SIGNAL( selected( const TQString& ) ),
- TQT_SIGNAL( selected( const TQString & ) ) );
- connect( view, TQT_SIGNAL( executed( const TQString& ) ),
- TQT_SIGNAL( executed( const TQString& ) ) );
- connect( view, TQT_SIGNAL( modified() ), TQT_SIGNAL( modified() ) );
- connect( view, TQT_SIGNAL( dropped( TQDropEvent* ) ),
- TQT_SLOT( dropped( TQDropEvent* ) ) );
- connect( view, TQT_SIGNAL( startDrag() ), TQT_SLOT( startDrag() ) );
- connect( view, TQT_SIGNAL( sortFieldChanged() ), TQT_SIGNAL( sortFieldChanged() ) );
+ connect( view, TQ_SIGNAL( selected( const TQString& ) ),
+ TQ_SIGNAL( selected( const TQString & ) ) );
+ connect( view, TQ_SIGNAL( executed( const TQString& ) ),
+ TQ_SIGNAL( executed( const TQString& ) ) );
+ connect( view, TQ_SIGNAL( modified() ), TQ_SIGNAL( modified() ) );
+ connect( view, TQ_SIGNAL( dropped( TQDropEvent* ) ),
+ TQ_SLOT( dropped( TQDropEvent* ) ) );
+ connect( view, TQ_SIGNAL( startDrag() ), TQ_SLOT( startDrag() ) );
+ connect( view, TQ_SIGNAL( sortFieldChanged() ), TQ_SIGNAL( sortFieldChanged() ) );
}
}
@@ -568,33 +568,33 @@ void ViewManager::initActions()
#if TDE_VERSION >= 309
mActionSelectView->setMenuAccelsEnabled( false );
#endif
- connect( mActionSelectView, TQT_SIGNAL( activated( const TQString& ) ),
- TQT_SLOT( setActiveView( const TQString& ) ) );
+ connect( mActionSelectView, TQ_SIGNAL( activated( const TQString& ) ),
+ TQ_SLOT( setActiveView( const TQString& ) ) );
TDEAction *action;
- action = new TDEAction( i18n( "Modify View..." ), "configure", 0, TQT_TQOBJECT(this),
- TQT_SLOT( editView() ), mCore->actionCollection(),
+ action = new TDEAction( i18n( "Modify View..." ), "configure", 0, this,
+ TQ_SLOT( editView() ), mCore->actionCollection(),
"view_modify" );
action->setWhatsThis( i18n( "By pressing this button a dialog opens that allows you to modify the view of the addressbook. There you can add or remove fields that you want to be shown or hidden in the addressbook like the name for example." ) );
- action = new TDEAction( i18n( "Add View..." ), "window-new", 0, TQT_TQOBJECT(this),
- TQT_SLOT( addView() ), mCore->actionCollection(),
+ action = new TDEAction( i18n( "Add View..." ), "window-new", 0, this,
+ TQ_SLOT( addView() ), mCore->actionCollection(),
"view_add" );
action->setWhatsThis( i18n( "You can add a new view by choosing one from the dialog that appears after pressing the button. You have to give the view a name, so that you can distinguish between the different views." ) );
mActionDeleteView = new TDEAction( i18n( "Delete View" ), "view_remove", 0,
- TQT_TQOBJECT(this), TQT_SLOT( deleteView() ),
+ this, TQ_SLOT( deleteView() ),
mCore->actionCollection(), "view_delete" );
mActionDeleteView->setWhatsThis( i18n( "By pressing this button you can delete the actual view, which you have added before." ) );
- action = new TDEAction( i18n( "Refresh View" ), "reload", 0, TQT_TQOBJECT(this),
- TQT_SLOT( refreshView() ), mCore->actionCollection(),
+ action = new TDEAction( i18n( "Refresh View" ), "reload", 0, this,
+ TQ_SLOT( refreshView() ), mCore->actionCollection(),
"view_refresh" );
action->setWhatsThis( i18n( "The view will be refreshed by pressing this button." ) );
- action = new TDEAction( i18n( "Edit &Filters..." ), "filter", 0, TQT_TQOBJECT(this),
- TQT_SLOT( configureFilters() ), mCore->actionCollection(),
+ action = new TDEAction( i18n( "Edit &Filters..." ), "filter", 0, this,
+ TQ_SLOT( configureFilters() ), mCore->actionCollection(),
"options_edit_filters" );
action->setWhatsThis( i18n( "Edit the contact filters<p>You will be presented with a dialog, where you can add, remove and edit filters." ) );
}
diff --git a/kaddressbook/viewmanager.h b/kaddressbook/viewmanager.h
index 9820607e..ce9abbc2 100644
--- a/kaddressbook/viewmanager.h
+++ b/kaddressbook/viewmanager.h
@@ -49,7 +49,7 @@ namespace TDEABC { class AddressBook; }
*/
class ViewManager : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/views/CMakeLists.txt b/kaddressbook/views/CMakeLists.txt
index e97fc29e..9bc4509a 100644
--- a/kaddressbook/views/CMakeLists.txt
+++ b/kaddressbook/views/CMakeLists.txt
@@ -29,9 +29,11 @@ link_directories(
##### other data ################################
-install( FILES
- cardview.desktop iconview.desktop tableview.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/kaddressbook )
+tde_create_translated_desktop(
+ SOURCE cardview.desktop iconview.desktop tableview.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/kaddressbook
+ PO_DIR kaddressbook-desktops
+)
##### libkaddrbk_cardview (module) ##############
diff --git a/kaddressbook/views/cardview.cpp b/kaddressbook/views/cardview.cpp
index 9b1ef52a..749dc13f 100644
--- a/kaddressbook/views/cardview.cpp
+++ b/kaddressbook/views/cardview.cpp
@@ -316,7 +316,7 @@ void CardViewItem::paintCard( TQPainter *p, TQColorGroup &cg )
// if we are the current item and the view has focus, draw focus rect
if ( mView->currentItem() == this && mView->hasFocus() ) {
- mView->style().tqdrawPrimitive( TQStyle::PE_FocusRect, p,
+ mView->style().drawPrimitive( TQStyle::PE_FocusRect, p,
TQRect( 0, 0, mView->itemWidth(), h + (2 * mg) ), cg,
TQStyle::Style_FocusAtBorder,
TQStyleOption( isSelected() ? cg.highlight() : cg.base() ) );
@@ -587,10 +587,10 @@ CardView::CardView( TQWidget *parent, const char *name )
viewport()->setMouseTracking( true );
viewport()->setFocusProxy( this );
- viewport()->setFocusPolicy(TQ_WheelFocus );
+ viewport()->setFocusPolicy(TQWidget::WheelFocus );
viewport()->setBackgroundMode( PaletteBase );
- connect( d->mTimer, TQT_SIGNAL( timeout() ), this, TQT_SLOT( tryShowFullText() ) );
+ connect( d->mTimer, TQ_SIGNAL( timeout() ), this, TQ_SLOT( tryShowFullText() ) );
setBackgroundMode( PaletteBackground, PaletteBase );
@@ -1022,7 +1022,7 @@ void CardView::contentsMousePressEvent( TQMouseEvent *e )
emit clicked( item );
// The RMB click
- if ( e->button() & Qt::RightButton ) {
+ if ( e->button() & TQt::RightButton ) {
// clear previous selection
bool blocked = signalsBlocked();
blockSignals( true );
@@ -1056,7 +1056,7 @@ void CardView::contentsMousePressEvent( TQMouseEvent *e )
item->repaintCard();
emit selectionChanged();
} else if ( d->mSelectionMode == CardView::Extended ) {
- if ( (e->button() & Qt::LeftButton) && (e->state() & TQt::ShiftButton) ) {
+ if ( (e->button() & TQt::LeftButton) && (e->state() & TQt::ShiftButton) ) {
if ( item == other )
return;
@@ -1083,11 +1083,11 @@ void CardView::contentsMousePressEvent( TQMouseEvent *e )
}
emit selectionChanged();
- } else if ( (e->button() & Qt::LeftButton) && (e->state() & TQt::ControlButton) ) {
+ } else if ( (e->button() & TQt::LeftButton) && (e->state() & TQt::ControlButton) ) {
item->setSelected( !item->isSelected() );
item->repaintCard();
emit selectionChanged();
- } else if ( e->button() & Qt::LeftButton ) {
+ } else if ( e->button() & TQt::LeftButton ) {
bool b = signalsBlocked();
blockSignals( true );
selectAll( false );
@@ -1158,7 +1158,7 @@ void CardView::contentsMouseMoveEvent( TQMouseEvent *e )
return;
}
- if ( d->mLastClickOnItem && (e->state() & Qt::LeftButton) &&
+ if ( d->mLastClickOnItem && (e->state() & TQt::LeftButton) &&
((e->pos() - d->mLastClickPos).manhattanLength() > 4)) {
startDrag();
diff --git a/kaddressbook/views/cardview.desktop b/kaddressbook/views/cardview.desktop
index 1b72a5b9..015bc313 100644
--- a/kaddressbook/views/cardview.desktop
+++ b/kaddressbook/views/cardview.desktop
@@ -1,61 +1,7 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_cardview
-Name=Card View
-Name[af]=Kaard Aansig
-Name[ar]=عرض البظاقة
-Name[be]=У выглядзе картак
-Name[bg]=Преглед като карти
-Name[br]=Gwell ar c'hartennoù
-Name[bs]=Pogled kartice
-Name[ca]=Vista de targeta
-Name[cs]=Pohled s kartičkami
-Name[cy]=Gweld Cerdyn
-Name[da]=Kort-visning
-Name[de]=Visitenkarten-Betrachter
-Name[el]=Προβολή καρτών
-Name[eo]=Kartrigardo
-Name[es]=Vista de tarjeta
-Name[et]=Kaardivaade
-Name[eu]=Txartel ikuspegia
-Name[fa]=نمای کارت
-Name[fi]=Korttinäkymä
-Name[fr]=Vue en cartes
-Name[fy]=Kaartwerjefte
-Name[gl]=Vista de tarxetas
-Name[he]=תצוגת כרטיס
-Name[hi]=कार्ड दृश्य
-Name[hu]=Kártyanézet
-Name[is]=Spjaldsýn
-Name[it]=Vista scheda
-Name[ja]=カードビュー
-Name[kk]=Визитка
-Name[km]=ទិដ្ឋភាព​កាត
-Name[lt]=Kortelės vaizdas
-Name[mk]=Преглед со картички
-Name[ms]=Pelihat Kad
-Name[nb]=Kortvisning
-Name[nds]=Visitenkoort-Kieker
-Name[ne]=कार्ड दृश्य
-Name[nl]=Kaartweergave
-Name[nn]=Kortvising
-Name[pa]=ਕਾਰਡ ਦਰਿਸ਼
-Name[pl]=Widok kartek
-Name[pt]=Vista em Cartões
-Name[pt_BR]=Visualização de Cartão
-Name[ro]=Vizualizare card
-Name[ru]=Карточки
-Name[se]=Goartačájeheapmi
-Name[sk]=Prezeranie karty
-Name[sl]=Kartični prikaz
-Name[sr]=Приказ са картицама
-Name[sr@Latn]=Prikaz sa karticama
-Name[sv]=Kortvy
-Name[ta]=அட்டைக் காட்சி
-Name[tg]=Варақа
-Name[tr]=Kart Görünümü
-Name[uk]=Вигляд картками
-Name[zh_CN]=卡片视图
-Name[zh_TW]=卡片檢視
Type=Service
+X-TDE-Library=libkaddrbk_cardview
X-TDE-ServiceTypes=KAddressBook/View
X-TDE-KAddressBook-ViewPluginVersion=1
+
+Name=Card View
diff --git a/kaddressbook/views/cardview.h b/kaddressbook/views/cardview.h
index d064e03d..92c7f8f2 100644
--- a/kaddressbook/views/cardview.h
+++ b/kaddressbook/views/cardview.h
@@ -195,7 +195,7 @@ class CardView : public TQScrollView
{
friend class CardViewItem;
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/views/colorlistbox.cpp b/kaddressbook/views/colorlistbox.cpp
index 54ad38b3..a72a644b 100644
--- a/kaddressbook/views/colorlistbox.cpp
+++ b/kaddressbook/views/colorlistbox.cpp
@@ -28,7 +28,7 @@
ColorListBox::ColorListBox( TQWidget *parent, const char *name, WFlags f )
:TDEListBox( parent, name, f ), mCurrentOnDragEnter(-1)
{
- connect( this, TQT_SIGNAL(selected(int)), this, TQT_SLOT(newColor(int)) );
+ connect( this, TQ_SIGNAL(selected(int)), this, TQ_SLOT(newColor(int)) );
setAcceptDrops( true);
}
diff --git a/kaddressbook/views/colorlistbox.h b/kaddressbook/views/colorlistbox.h
index 62b7e5a8..f860bf82 100644
--- a/kaddressbook/views/colorlistbox.h
+++ b/kaddressbook/views/colorlistbox.h
@@ -25,7 +25,7 @@
class ColorListBox : public TDEListBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/views/configurecardviewdialog.cpp b/kaddressbook/views/configurecardviewdialog.cpp
index 2fe22f8c..cbe70109 100644
--- a/kaddressbook/views/configurecardviewdialog.cpp
+++ b/kaddressbook/views/configurecardviewdialog.cpp
@@ -201,7 +201,7 @@ void CardViewLookNFeelPage::initGUI()
loTab->setSpacing( spacing );
loTab->setMargin( margin );
- TQGroupBox *gbGeneral = new TQGroupBox( 1, Qt::Horizontal, i18n("General"), loTab );
+ TQGroupBox *gbGeneral = new TQGroupBox( 1, TQt::Horizontal, i18n("General"), loTab );
cbDrawSeps = new TQCheckBox( i18n("Draw &separators"), gbGeneral );
@@ -215,7 +215,7 @@ void CardViewLookNFeelPage::initGUI()
sbSpacing = new TQSpinBox( 0, 100, 1, hbPadding );
lSpacing->setBuddy( sbSpacing );
- TQGroupBox *gbCards = new TQGroupBox( 1, Qt::Horizontal, i18n("Cards"), loTab );
+ TQGroupBox *gbCards = new TQGroupBox( 1, TQt::Horizontal, i18n("Cards"), loTab );
TQHBox *hbMargin = new TQHBox( gbCards );
TQLabel *lMargin = new TQLabel( i18n("&Margin:"), hbMargin );
@@ -246,7 +246,7 @@ void CardViewLookNFeelPage::initGUI()
colorTab->setSpacing( spacing );
colorTab->setMargin( spacing );
cbEnableCustomColors = new TQCheckBox( i18n("&Enable custom colors"), colorTab );
- connect( cbEnableCustomColors, TQT_SIGNAL(clicked()), this, TQT_SLOT(enableColors()) );
+ connect( cbEnableCustomColors, TQ_SIGNAL(clicked()), this, TQ_SLOT(enableColors()) );
lbColors = new ColorListBox( colorTab );
tabs->addTab( colorTab, i18n("&Colors") );
@@ -265,7 +265,7 @@ void CardViewLookNFeelPage::initGUI()
fntTab->setMargin( spacing );
cbEnableCustomFonts = new TQCheckBox( i18n("&Enable custom fonts"), fntTab );
- connect( cbEnableCustomFonts, TQT_SIGNAL(clicked()), this, TQT_SLOT(enableFonts()) );
+ connect( cbEnableCustomFonts, TQ_SIGNAL(clicked()), this, TQ_SLOT(enableFonts()) );
vbFonts = new TQWidget( fntTab );
TQGridLayout *gFnts = new TQGridLayout( vbFonts, 2, 3 );
@@ -277,14 +277,14 @@ void CardViewLookNFeelPage::initGUI()
lTextFont->setFrameStyle( TQFrame::Panel|TQFrame::Sunken );
btnFont = new KPushButton( i18n("Choose..."), vbFonts );
lTFnt->setBuddy( btnFont );
- connect( btnFont, TQT_SIGNAL(clicked()), this, TQT_SLOT(setTextFont()) );
+ connect( btnFont, TQ_SIGNAL(clicked()), this, TQ_SLOT(setTextFont()) );
TQLabel *lHFnt = new TQLabel( i18n("&Header font:"), vbFonts );
lHeaderFont = new TQLabel( vbFonts );
lHeaderFont->setFrameStyle( TQFrame::Panel|TQFrame::Sunken );
btnHeaderFont = new KPushButton( i18n("Choose..."), vbFonts );
lHFnt->setBuddy( btnHeaderFont );
- connect( btnHeaderFont, TQT_SIGNAL(clicked()), this, TQT_SLOT(setHeaderFont()) );
+ connect( btnHeaderFont, TQ_SIGNAL(clicked()), this, TQ_SLOT(setHeaderFont()) );
fntTab->setStretchFactor( new TQWidget( fntTab ), 1 );
diff --git a/kaddressbook/views/configurecardviewdialog.h b/kaddressbook/views/configurecardviewdialog.h
index afb938a6..c57594cb 100644
--- a/kaddressbook/views/configurecardviewdialog.h
+++ b/kaddressbook/views/configurecardviewdialog.h
@@ -79,7 +79,7 @@ class ConfigureCardViewWidget : public ViewConfigureWidget
class CardViewLookNFeelPage : public TQVBox {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/views/configuretableviewdialog.cpp b/kaddressbook/views/configuretableviewdialog.cpp
index 1bd70c29..eb508b3d 100644
--- a/kaddressbook/views/configuretableviewdialog.cpp
+++ b/kaddressbook/views/configuretableviewdialog.cpp
@@ -113,7 +113,7 @@ void LookAndFeelPage::initGUI()
{
TQVBoxLayout *layout = new TQVBoxLayout(this, 0, KDialogBase::spacingHint());
- TQButtonGroup *group = new TQButtonGroup(1, Qt::Horizontal,
+ TQButtonGroup *group = new TQButtonGroup(1, TQt::Horizontal,
i18n("Row Separator"), this);
layout->addWidget(group);
@@ -128,8 +128,8 @@ void LookAndFeelPage::initGUI()
mBackgroundBox = new TQCheckBox(i18n("Enable background image:"), this,
"mBackgroundBox");
- connect(mBackgroundBox, TQT_SIGNAL(toggled(bool)),
- TQT_SLOT(enableBackgroundToggled(bool)));
+ connect(mBackgroundBox, TQ_SIGNAL(toggled(bool)),
+ TQ_SLOT(enableBackgroundToggled(bool)));
backgroundLayout->addWidget(mBackgroundBox);
mBackgroundName = new KURLRequester(this, "mBackgroundName");
diff --git a/kaddressbook/views/configuretableviewdialog.h b/kaddressbook/views/configuretableviewdialog.h
index fc38d0da..fdc644be 100644
--- a/kaddressbook/views/configuretableviewdialog.h
+++ b/kaddressbook/views/configuretableviewdialog.h
@@ -62,7 +62,7 @@ class ConfigureTableViewWidget : public ViewConfigureWidget
*/
class LookAndFeelPage : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/views/contactlistview.cpp b/kaddressbook/views/contactlistview.cpp
index 3a01974b..b23f415c 100644
--- a/kaddressbook/views/contactlistview.cpp
+++ b/kaddressbook/views/contactlistview.cpp
@@ -278,8 +278,8 @@ ContactListView::ContactListView(KAddressBookTableView *view,
setSelectionModeExt( TDEListView::Extended );
setDropVisualizer(false);
- connect(this, TQT_SIGNAL(dropped(TQDropEvent*)),
- this, TQT_SLOT(itemDropped(TQDropEvent*)));
+ connect(this, TQ_SIGNAL(dropped(TQDropEvent*)),
+ this, TQ_SLOT(itemDropped(TQDropEvent*)));
new DynamicTip( this );
}
@@ -314,7 +314,7 @@ void ContactListView::contentsMousePressEvent(TQMouseEvent* e)
// To initiate a drag operation
void ContactListView::contentsMouseMoveEvent( TQMouseEvent *e )
{
- if ((e->state() & Qt::LeftButton) && (e->pos() - presspos).manhattanLength() > 4 ) {
+ if ((e->state() & TQt::LeftButton) && (e->pos() - presspos).manhattanLength() > 4 ) {
emit startAddresseeDrag();
}
else
diff --git a/kaddressbook/views/contactlistview.h b/kaddressbook/views/contactlistview.h
index 138830b6..a2d70aa2 100644
--- a/kaddressbook/views/contactlistview.h
+++ b/kaddressbook/views/contactlistview.h
@@ -84,7 +84,7 @@ private:
class ContactListView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/views/iconview.desktop b/kaddressbook/views/iconview.desktop
index 43c5d387..0f384ff5 100644
--- a/kaddressbook/views/iconview.desktop
+++ b/kaddressbook/views/iconview.desktop
@@ -1,74 +1,7 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_iconview
-Name=Icon View
-Name[af]=Ikoon Aansig
-Name[ar]=عرض الأيقونات
-Name[az]=Timsal Görünüşü
-Name[be]=У выглядзе піктаграмаў
-Name[bg]=Преглед като икони
-Name[br]=Gwel Arlun
-Name[bs]=Ikone
-Name[ca]=Vista d'icona
-Name[cs]=Pohled s ikonami
-Name[cy]=Gweld Eicon
-Name[da]=Ikon-visning
-Name[de]=Symbolansicht
-Name[el]=Προβολή εικονιδίων
-Name[eo]=Piktogramrigardo
-Name[es]=Vista de icono
-Name[et]=Ikoonivaade
-Name[eu]=Ikono ikuspegia
-Name[fa]=نمای شمایل
-Name[fi]=Kuvakenäkymä
-Name[fr]=Icônes
-Name[fy]=Byldkaikewerjefte
-Name[ga]=Amharc Deilbhíní
-Name[gl]=Vista en iconas
-Name[he]=תצוגת סמלים
-Name[hi]=प्रतीक दृश्य
-Name[hr]=Ikonski pogled
-Name[hu]=Ikonos nézet
-Name[id]=Tampilan Ikon
-Name[is]=Táknmyndasýn
-Name[it]=Vista a icone
-Name[ja]=アイコンビュー
-Name[kk]=Таңбаша
-Name[km]=ទិដ្ឋភាព​រូបតំណាង
-Name[lt]=Rodyti piktogramas
-Name[lv]=Ikonu Skatījums
-Name[mk]=Преглед со икони
-Name[ms]=Pelihat Ikon
-Name[mt]=Ikoni
-Name[nb]=Ikonvisning
-Name[nds]=Lüttbildansicht
-Name[ne]=प्रतिमा दृश्य
-Name[nl]=Pictogramweergave
-Name[nn]=Ikonvising
-Name[pa]=ਆਈਕਾਨ ਦਰਿਸ਼
-Name[pl]=Widok ikon
-Name[pt]=Vista por Ícones
-Name[pt_BR]=Visualização de Ícone
-Name[ro]=Vizualizare iconică
-Name[ru]=Значки
-Name[rw]=Igaragaza ry'Agashushondanga
-Name[se]=Govaščájeheapmi
-Name[sk]=Prehliadanie ikon
-Name[sl]=Ikoniziran prikaz
-Name[sr]=Приказ са иконама
-Name[sr@Latn]=Prikaz sa ikonama
-Name[sv]=Ikonvy
-Name[ta]=சின்னத்தின் காட்சி
-Name[tg]=Ишоротҳо
-Name[th]=มุมมองแบบไอคอน
-Name[tr]=Simge Görünümü
-Name[uk]=Вигляд піктограмами
-Name[uz]=Нишонча кўринишида
-Name[ven]=Mbonalelo ya aikhono
-Name[vi]=Xem icon
-Name[xh]=Imboniselo ye Icon
-Name[zh_CN]=图标视图
-Name[zh_TW]=圖示檢視
-Name[zu]=Umboniso we Icon
Type=Service
+X-TDE-Library=libkaddrbk_iconview
X-TDE-ServiceTypes=KAddressBook/View
X-TDE-KAddressBook-ViewPluginVersion=1
+
+Name=Icon View
diff --git a/kaddressbook/views/kaddressbookcardview.cpp b/kaddressbook/views/kaddressbookcardview.cpp
index 9c6b55e1..a61ba3a9 100644
--- a/kaddressbook/views/kaddressbookcardview.cpp
+++ b/kaddressbook/views/kaddressbookcardview.cpp
@@ -156,16 +156,16 @@ KAddressBookCardView::KAddressBookCardView( KAB::Core *core,
layout->addWidget( mCardView );
// Connect up the signals
- connect( mCardView, TQT_SIGNAL( executed( CardViewItem* ) ),
- this, TQT_SLOT( addresseeExecuted( CardViewItem* ) ) );
- connect( mCardView, TQT_SIGNAL( selectionChanged() ),
- this, TQT_SLOT( addresseeSelected() ) );
- connect( mCardView, TQT_SIGNAL( addresseeDropped( TQDropEvent* ) ),
- this, TQT_SIGNAL( dropped( TQDropEvent* ) ) );
- connect( mCardView, TQT_SIGNAL( startAddresseeDrag() ),
- this, TQT_SIGNAL( startDrag() ) );
- connect( mCardView, TQT_SIGNAL( contextMenuRequested( CardViewItem*, const TQPoint& ) ),
- this, TQT_SLOT( rmbClicked( CardViewItem*, const TQPoint& ) ) );
+ connect( mCardView, TQ_SIGNAL( executed( CardViewItem* ) ),
+ this, TQ_SLOT( addresseeExecuted( CardViewItem* ) ) );
+ connect( mCardView, TQ_SIGNAL( selectionChanged() ),
+ this, TQ_SLOT( addresseeSelected() ) );
+ connect( mCardView, TQ_SIGNAL( addresseeDropped( TQDropEvent* ) ),
+ this, TQ_SIGNAL( dropped( TQDropEvent* ) ) );
+ connect( mCardView, TQ_SIGNAL( startAddresseeDrag() ),
+ this, TQ_SIGNAL( startDrag() ) );
+ connect( mCardView, TQ_SIGNAL( contextMenuRequested( CardViewItem*, const TQPoint& ) ),
+ this, TQ_SLOT( rmbClicked( CardViewItem*, const TQPoint& ) ) );
}
KAddressBookCardView::~KAddressBookCardView()
@@ -185,18 +185,18 @@ void KAddressBookCardView::readConfig( TDEConfig *config )
// costum colors?
if ( config->readBoolEntry( "EnableCustomColors", false ) ) {
TQPalette p( mCardView->palette() );
- TQColor c = p.color( TQPalette::Normal, TQColorGroup::Base );
- p.setColor( TQPalette::Normal, TQColorGroup::Base, config->readColorEntry( "BackgroundColor", &c ) );
- c = p.color( TQPalette::Normal, TQColorGroup::Text );
- p.setColor( TQPalette::Normal, TQColorGroup::Text, config->readColorEntry( "TextColor", &c ) );
- c = p.color( TQPalette::Normal, TQColorGroup::Button );
- p.setColor( TQPalette::Normal, TQColorGroup::Button, config->readColorEntry( "HeaderColor", &c ) );
- c = p.color( TQPalette::Normal, TQColorGroup::ButtonText );
- p.setColor( TQPalette::Normal, TQColorGroup::ButtonText, config->readColorEntry( "HeaderTextColor", &c ) );
- c = p.color( TQPalette::Normal, TQColorGroup::Highlight );
- p.setColor( TQPalette::Normal, TQColorGroup::Highlight, config->readColorEntry( "HighlightColor", &c ) );
- c = p.color( TQPalette::Normal, TQColorGroup::HighlightedText );
- p.setColor( TQPalette::Normal, TQColorGroup::HighlightedText, config->readColorEntry( "HighlightedTextColor", &c ) );
+ TQColor c = p.color( TQPalette::Active, TQColorGroup::Base );
+ p.setColor( TQPalette::Active, TQColorGroup::Base, config->readColorEntry( "BackgroundColor", &c ) );
+ c = p.color( TQPalette::Active, TQColorGroup::Text );
+ p.setColor( TQPalette::Active, TQColorGroup::Text, config->readColorEntry( "TextColor", &c ) );
+ c = p.color( TQPalette::Active, TQColorGroup::Button );
+ p.setColor( TQPalette::Active, TQColorGroup::Button, config->readColorEntry( "HeaderColor", &c ) );
+ c = p.color( TQPalette::Active, TQColorGroup::ButtonText );
+ p.setColor( TQPalette::Active, TQColorGroup::ButtonText, config->readColorEntry( "HeaderTextColor", &c ) );
+ c = p.color( TQPalette::Active, TQColorGroup::Highlight );
+ p.setColor( TQPalette::Active, TQColorGroup::Highlight, config->readColorEntry( "HighlightColor", &c ) );
+ c = p.color( TQPalette::Active, TQColorGroup::HighlightedText );
+ p.setColor( TQPalette::Active, TQColorGroup::HighlightedText, config->readColorEntry( "HighlightedTextColor", &c ) );
mCardView->viewport()->setPalette( p );
} else {
// needed if turned off during a session.
@@ -227,15 +227,15 @@ void KAddressBookCardView::readConfig( TDEConfig *config )
mCardView->setItemSpacing( config->readNumEntry( "ItemSpacing", 10 ) );
mCardView->setSeparatorWidth( config->readNumEntry( "SeparatorWidth", 2 ) );
- disconnect( mCardView, TQT_SIGNAL( executed( CardViewItem* ) ),
- this, TQT_SLOT( addresseeExecuted( CardViewItem* ) ) );
+ disconnect( mCardView, TQ_SIGNAL( executed( CardViewItem* ) ),
+ this, TQ_SLOT( addresseeExecuted( CardViewItem* ) ) );
if ( KABPrefs::instance()->honorSingleClick() )
- connect( mCardView, TQT_SIGNAL( executed( CardViewItem* ) ),
- this, TQT_SLOT( addresseeExecuted( CardViewItem* ) ) );
+ connect( mCardView, TQ_SIGNAL( executed( CardViewItem* ) ),
+ this, TQ_SLOT( addresseeExecuted( CardViewItem* ) ) );
else
- connect( mCardView, TQT_SIGNAL( doubleClicked( CardViewItem* ) ),
- this, TQT_SLOT( addresseeExecuted( CardViewItem* ) ) );
+ connect( mCardView, TQ_SIGNAL( doubleClicked( CardViewItem* ) ),
+ this, TQ_SLOT( addresseeExecuted( CardViewItem* ) ) );
}
void KAddressBookCardView::writeConfig( TDEConfig *config )
diff --git a/kaddressbook/views/kaddressbookcardview.h b/kaddressbook/views/kaddressbookcardview.h
index 15c77a7c..447614ad 100644
--- a/kaddressbook/views/kaddressbookcardview.h
+++ b/kaddressbook/views/kaddressbookcardview.h
@@ -42,7 +42,7 @@ class AddresseeCardView;
*/
class KAddressBookCardView : public KAddressBookView
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -77,7 +77,7 @@ class KAddressBookCardView : public KAddressBookView
class AddresseeCardView : public CardView
{
- Q_OBJECT
+ TQ_OBJECT
public:
AddresseeCardView( TQWidget *parent, const char *name = 0 );
diff --git a/kaddressbook/views/kaddressbookiconview.cpp b/kaddressbook/views/kaddressbookiconview.cpp
index 3021f692..66aff6d1 100644
--- a/kaddressbook/views/kaddressbookiconview.cpp
+++ b/kaddressbook/views/kaddressbookiconview.cpp
@@ -70,8 +70,8 @@ AddresseeIconView::AddresseeIconView( TQWidget *parent, const char *name )
setSorting( true, true );
setMode( TDEIconView::Select );
- connect( this, TQT_SIGNAL( dropped( TQDropEvent*, const TQValueList<TQIconDragItem>& ) ),
- this, TQT_SLOT( itemDropped( TQDropEvent*, const TQValueList<TQIconDragItem>& ) ) );
+ connect( this, TQ_SIGNAL( dropped( TQDropEvent*, const TQValueList<TQIconDragItem>& ) ),
+ this, TQ_SLOT( itemDropped( TQDropEvent*, const TQValueList<TQIconDragItem>& ) ) );
}
AddresseeIconView::~AddresseeIconView()
@@ -145,16 +145,16 @@ KAddressBookIconView::KAddressBookIconView( KAB::Core *core,
layout->addWidget( mIconView );
// Connect up the signals
- connect( mIconView, TQT_SIGNAL( executed( TQIconViewItem* ) ),
- this, TQT_SLOT( addresseeExecuted( TQIconViewItem* ) ) );
- connect( mIconView, TQT_SIGNAL( selectionChanged() ),
- this, TQT_SLOT( addresseeSelected() ) );
- connect( mIconView, TQT_SIGNAL( addresseeDropped( TQDropEvent* ) ),
- this, TQT_SIGNAL( dropped( TQDropEvent* ) ) );
- connect( mIconView, TQT_SIGNAL( startAddresseeDrag() ),
- this, TQT_SIGNAL( startDrag() ) );
- connect( mIconView, TQT_SIGNAL( contextMenuRequested( TQIconViewItem*, const TQPoint& ) ),
- this, TQT_SLOT( rmbClicked( TQIconViewItem*, const TQPoint& ) ) );
+ connect( mIconView, TQ_SIGNAL( executed( TQIconViewItem* ) ),
+ this, TQ_SLOT( addresseeExecuted( TQIconViewItem* ) ) );
+ connect( mIconView, TQ_SIGNAL( selectionChanged() ),
+ this, TQ_SLOT( addresseeSelected() ) );
+ connect( mIconView, TQ_SIGNAL( addresseeDropped( TQDropEvent* ) ),
+ this, TQ_SIGNAL( dropped( TQDropEvent* ) ) );
+ connect( mIconView, TQ_SIGNAL( startAddresseeDrag() ),
+ this, TQ_SIGNAL( startDrag() ) );
+ connect( mIconView, TQ_SIGNAL( contextMenuRequested( TQIconViewItem*, const TQPoint& ) ),
+ this, TQ_SLOT( rmbClicked( TQIconViewItem*, const TQPoint& ) ) );
}
KAddressBookIconView::~KAddressBookIconView()
@@ -171,15 +171,15 @@ void KAddressBookIconView::readConfig( TDEConfig *config )
{
KAddressBookView::readConfig( config );
- disconnect( mIconView, TQT_SIGNAL( executed( TQIconViewItem* ) ),
- this, TQT_SLOT( addresseeExecuted( TQIconViewItem* ) ) );
+ disconnect( mIconView, TQ_SIGNAL( executed( TQIconViewItem* ) ),
+ this, TQ_SLOT( addresseeExecuted( TQIconViewItem* ) ) );
if ( KABPrefs::instance()->honorSingleClick() )
- connect( mIconView, TQT_SIGNAL( executed( TQIconViewItem* ) ),
- this, TQT_SLOT( addresseeExecuted( TQIconViewItem* ) ) );
+ connect( mIconView, TQ_SIGNAL( executed( TQIconViewItem* ) ),
+ this, TQ_SLOT( addresseeExecuted( TQIconViewItem* ) ) );
else
- connect( mIconView, TQT_SIGNAL( doubleClicked( TQIconViewItem* ) ),
- this, TQT_SLOT( addresseeExecuted( TQIconViewItem* ) ) );
+ connect( mIconView, TQ_SIGNAL( doubleClicked( TQIconViewItem* ) ),
+ this, TQ_SLOT( addresseeExecuted( TQIconViewItem* ) ) );
}
TQStringList KAddressBookIconView::selectedUids()
diff --git a/kaddressbook/views/kaddressbookiconview.h b/kaddressbook/views/kaddressbookiconview.h
index feb9edf3..d4d7bf93 100644
--- a/kaddressbook/views/kaddressbookiconview.h
+++ b/kaddressbook/views/kaddressbookiconview.h
@@ -41,7 +41,7 @@ namespace TDEABC { class AddressBook; }
*/
class KAddressBookIconView : public KAddressBookView
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -75,7 +75,7 @@ class KAddressBookIconView : public KAddressBookView
class AddresseeIconView : public TDEIconView
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/views/kaddressbooktableview.cpp b/kaddressbook/views/kaddressbooktableview.cpp
index ad39eb64..6b633303 100644
--- a/kaddressbook/views/kaddressbooktableview.cpp
+++ b/kaddressbook/views/kaddressbooktableview.cpp
@@ -103,16 +103,16 @@ KAddressBookTableView::~KAddressBookTableView()
void KAddressBookTableView::reconstructListView()
{
if ( mListView ) {
- disconnect( mListView, TQT_SIGNAL( selectionChanged() ),
- this, TQT_SLOT( addresseeSelected() ) );
- disconnect( mListView, TQT_SIGNAL( executed( TQListViewItem* ) ),
- this, TQT_SLOT( addresseeExecuted( TQListViewItem* ) ) );
- disconnect( mListView, TQT_SIGNAL( doubleClicked( TQListViewItem* ) ),
- this, TQT_SLOT( addresseeExecuted( TQListViewItem* ) ) );
- disconnect( mListView, TQT_SIGNAL( startAddresseeDrag() ),
- this, TQT_SIGNAL( startDrag() ) );
- disconnect( mListView, TQT_SIGNAL( addresseeDropped( TQDropEvent* ) ),
- this, TQT_SIGNAL( dropped( TQDropEvent* ) ) );
+ disconnect( mListView, TQ_SIGNAL( selectionChanged() ),
+ this, TQ_SLOT( addresseeSelected() ) );
+ disconnect( mListView, TQ_SIGNAL( executed( TQListViewItem* ) ),
+ this, TQ_SLOT( addresseeExecuted( TQListViewItem* ) ) );
+ disconnect( mListView, TQ_SIGNAL( doubleClicked( TQListViewItem* ) ),
+ this, TQ_SLOT( addresseeExecuted( TQListViewItem* ) ) );
+ disconnect( mListView, TQ_SIGNAL( startAddresseeDrag() ),
+ this, TQ_SIGNAL( startDrag() ) );
+ disconnect( mListView, TQ_SIGNAL( addresseeDropped( TQDropEvent* ) ),
+ this, TQ_SIGNAL( dropped( TQDropEvent* ) ) );
delete mListView;
}
@@ -141,23 +141,23 @@ void KAddressBookTableView::reconstructListView()
mListView->setFullWidth( true );
- connect( mListView, TQT_SIGNAL( selectionChanged() ),
- this, TQT_SLOT( addresseeSelected() ) );
- connect( mListView, TQT_SIGNAL( startAddresseeDrag() ),
- this, TQT_SIGNAL( startDrag() ) );
- connect( mListView, TQT_SIGNAL( addresseeDropped( TQDropEvent* ) ),
- this, TQT_SIGNAL( dropped( TQDropEvent* ) ) );
- connect( mListView, TQT_SIGNAL( contextMenu( TDEListView*, TQListViewItem*, const TQPoint& ) ),
- this, TQT_SLOT( rmbClicked( TDEListView*, TQListViewItem*, const TQPoint& ) ) );
- connect( mListView->header(), TQT_SIGNAL( clicked( int ) ),
- this, TQT_SIGNAL( sortFieldChanged() ) );
+ connect( mListView, TQ_SIGNAL( selectionChanged() ),
+ this, TQ_SLOT( addresseeSelected() ) );
+ connect( mListView, TQ_SIGNAL( startAddresseeDrag() ),
+ this, TQ_SIGNAL( startDrag() ) );
+ connect( mListView, TQ_SIGNAL( addresseeDropped( TQDropEvent* ) ),
+ this, TQ_SIGNAL( dropped( TQDropEvent* ) ) );
+ connect( mListView, TQ_SIGNAL( contextMenu( TDEListView*, TQListViewItem*, const TQPoint& ) ),
+ this, TQ_SLOT( rmbClicked( TDEListView*, TQListViewItem*, const TQPoint& ) ) );
+ connect( mListView->header(), TQ_SIGNAL( clicked( int ) ),
+ this, TQ_SIGNAL( sortFieldChanged() ) );
if ( KABPrefs::instance()->honorSingleClick() )
- connect( mListView, TQT_SIGNAL( executed( TQListViewItem* ) ),
- this, TQT_SLOT( addresseeExecuted( TQListViewItem* ) ) );
+ connect( mListView, TQ_SIGNAL( executed( TQListViewItem* ) ),
+ this, TQ_SLOT( addresseeExecuted( TQListViewItem* ) ) );
else
- connect( mListView, TQT_SIGNAL( doubleClicked( TQListViewItem* ) ),
- this, TQT_SLOT( addresseeExecuted( TQListViewItem* ) ) );
+ connect( mListView, TQ_SIGNAL( doubleClicked( TQListViewItem* ) ),
+ this, TQ_SLOT( addresseeExecuted( TQListViewItem* ) ) );
refresh();
@@ -187,13 +187,13 @@ void KAddressBookTableView::readConfig( TDEConfig *config )
if ( config->readBoolEntry( "InstantMessagingPresence", false ) ) {
if ( !mIMProxy ) {
mIMProxy = KIMProxy::instance( kapp->dcopClient() );
- connect( mIMProxy, TQT_SIGNAL( sigContactPresenceChanged( const TQString& ) ),
- this, TQT_SLOT( updatePresence( const TQString& ) ) );
+ connect( mIMProxy, TQ_SIGNAL( sigContactPresenceChanged( const TQString& ) ),
+ this, TQ_SLOT( updatePresence( const TQString& ) ) );
}
} else {
if ( mIMProxy ) {
- disconnect( mIMProxy, TQT_SIGNAL( sigContactPresenceChanged( const TQString& ) ),
- this, TQT_SLOT( updatePresence( const TQString& ) ) );
+ disconnect( mIMProxy, TQ_SIGNAL( sigContactPresenceChanged( const TQString& ) ),
+ this, TQ_SLOT( updatePresence( const TQString& ) ) );
mIMProxy = 0;
}
}
diff --git a/kaddressbook/views/kaddressbooktableview.h b/kaddressbook/views/kaddressbooktableview.h
index 7d258d2a..432a2164 100644
--- a/kaddressbook/views/kaddressbooktableview.h
+++ b/kaddressbook/views/kaddressbooktableview.h
@@ -61,7 +61,7 @@ class KAddressBookTableView : public KAddressBookView
{
friend class ContactListView;
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/views/tableview.desktop b/kaddressbook/views/tableview.desktop
index dccf7566..3ba5eaf3 100644
--- a/kaddressbook/views/tableview.desktop
+++ b/kaddressbook/views/tableview.desktop
@@ -1,62 +1,7 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_tableview
-Name=Table View
-Name[af]=Tabel Aansig
-Name[ar]=عرض الجدول
-Name[be]=У выглядзе табліцы
-Name[bg]=Преглед в таблица
-Name[br]=Gwel taolenn
-Name[bs]=Pogled tabele
-Name[ca]=Vista de taula
-Name[cs]=Tabulkový pohled
-Name[cy]=Golwg Tabl
-Name[da]=Tabel-visning
-Name[de]=Tabellenansicht
-Name[el]=Προβολή πίνακα
-Name[eo]=Tabelrigardo
-Name[es]=Vista de tabla
-Name[et]=Tabelivaade
-Name[eu]=Taula ikupegia
-Name[fa]=نمای جدول
-Name[fi]=Taulukkonäkymä
-Name[fr]=Vue en tableaux
-Name[fy]=Tabelwerjefte
-Name[gl]=Vista de árbore
-Name[he]=תצוגת טבלה
-Name[hi]=टेबल दृश्य
-Name[hu]=Táblázatos nézet
-Name[is]=Töflusýn
-Name[it]=Vista tabella
-Name[ja]=テーブルビュー
-Name[kk]=Кесте
-Name[km]=ទិដ្ឋភាព​តារាង
-Name[lt]=Lentelės vaizdas
-Name[mk]=Преглед со табела
-Name[ms]=Pelihat Jadual
-Name[nb]=Tabellvisning
-Name[nds]=Tabellansicht
-Name[ne]=तालिका दृश्य
-Name[nl]=Tabelweergave
-Name[nn]=Tabellvising
-Name[pa]=ਸਾਰਣੀ ਦਰਿਸ਼
-Name[pl]=Widok tabeli
-Name[pt]=Vista em Tabela
-Name[pt_BR]=Visualização de Tabela
-Name[ro]=Vizualizare tabel
-Name[ru]=Таблица
-Name[se]=Tabeallačájeheapmi
-Name[sk]=Prezeranie tabuľky
-Name[sl]=Tabelarični prikaz
-Name[sr]=Табеларни приказ
-Name[sr@Latn]=Tabelarni prikaz
-Name[sv]=Tabellvy
-Name[ta]=அட்டவணை காட்சி
-Name[tg]=Ҷадвал
-Name[tr]=Tablo Görünümü
-Name[uk]=Вигляд таблицею
-Name[uz]=Жадвал кўринишида
-Name[zh_CN]=表格视图
-Name[zh_TW]=表格檢視
Type=Service
+X-TDE-Library=libkaddrbk_tableview
X-TDE-ServiceTypes=KAddressBook/View
X-TDE-KAddressBook-ViewPluginVersion=1
+
+Name=Table View
diff --git a/kaddressbook/xxport/CMakeLists.txt b/kaddressbook/xxport/CMakeLists.txt
index 2811f517..37765253 100644
--- a/kaddressbook/xxport/CMakeLists.txt
+++ b/kaddressbook/xxport/CMakeLists.txt
@@ -34,11 +34,14 @@ endif( )
##### other data ################################
-install( FILES
+tde_create_translated_desktop(
+ SOURCE
csv_xxport.desktop vcard_xxport.desktop kde2_xxport.desktop
bookmark_xxport.desktop eudora_xxport.desktop ldif_xxport.desktop
opera_xxport.desktop pab_xxport.desktop ${GNOKII_DESKTOP}
- DESTINATION ${SERVICES_INSTALL_DIR}/kaddressbook )
+ DESTINATION ${SERVICES_INSTALL_DIR}/kaddressbook
+ PO_DIR kaddressbook-desktops
+)
install( FILES
csv_xxportui.rc vcard_xxportui.rc kde2_xxportui.rc bookmark_xxportui.rc
diff --git a/kaddressbook/xxport/bookmark_xxport.desktop b/kaddressbook/xxport/bookmark_xxport.desktop
index 4beaa53a..d12cc3c7 100644
--- a/kaddressbook/xxport/bookmark_xxport.desktop
+++ b/kaddressbook/xxport/bookmark_xxport.desktop
@@ -1,101 +1,9 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_bookmark_xxport
-Name=KAB Bookmark XXPort Plugin
-Name[af]=KAB boekmerk XXPort inprop module
-Name[be]=Дапаўненне KAB "Экспарт у закладкі"
-Name[bg]=Приставка за XXPort отметки в KAB
-Name[br]=Lugent XXPorzh sined KAB
-Name[bs]=KAB dodatak za XXPort zabilješki
-Name[ca]=Endollable d'importació/exportació de punts per al KAB
-Name[cs]=Exportní modul záložek
-Name[cy]=Ategyn XXPort Tudnodau KAB
-Name[da]=KAB Bogmærke XXPort-plugin
-Name[de]=Lesezeichen-XXPort-Modul für Adressbuch
-Name[el]=Πρόσθετο εξαγωγής σελιδοδεικτών του KAB
-Name[es]=Plugin de KAB para {im,ex}portar marcadores
-Name[et]=KAB järjehoidjate eksportplugin
-Name[eu]=KAB-en laster-marka in/esportazio plugin-a
-Name[fa]=وصلۀ XXPort چوب الف KAB
-Name[fi]=KAB-kirjanmerkkiliitännäinen
-Name[fr]=Module d'import / export de signets pour KAB
-Name[fy]=KAB Blêdwizer XXPort-plugin
-Name[gl]=Extensión XXPort de Marcadores para KAB
-Name[hi]=केएबी पसंदीदा XXपोर्ट प्लगइन
-Name[hu]=KAB könyvjelzőkezelő XXPort bővítőmodul
-Name[is]=Íforrit fyrir KAB XXPort bókarmerki
-Name[ja]=KAB ブックマーク インポート/エクスポートプラグイン
-Name[kk]=Бетбелгіні экспорт ету
-Name[km]=កម្មវិធី​ជំនួយ KAB Bookmark XXPort
-Name[lt]=KAB žymelių XXPort priedas
-Name[ms]=Plug masuk KAB Tanda Laman XXPort
-Name[nb]=KAB-programtillegg for bokmerkeeksport
-Name[nds]=Leesteken-Exportmoduul för KAdressbook
-Name[ne]=KAB पुस्तकचिनो XXPort प्लगइन
-Name[nl]=KAB Bladwijzer XXPort-plugin
-Name[nn]=KAB-bokmerke XXPort-programtillegg
-Name[pl]=Wtyczka KAB do eksportu zakładek
-Name[pt]='Plugin' de Exportação XXPort de Favoritos do KAB
-Name[pt_BR]=Plug-in de Exportação de Marcadores do KAB
-Name[ru]=Экспорт закладок
-Name[sk]=KAB modul pre xxport záložiek
-Name[sl]=Vstavek KAB Bookmark XXPort
-Name[sr]=XXPort прикључак KAB-а за маркере
-Name[sr@Latn]=XXPort priključak KAB-a za markere
-Name[sv]=Adressbokens överföringsinsticksprogram för bokmärken
-Name[ta]=KAB புக்மார்க் ஏற்றுமதி சொருகுப்பொருள்
-Name[tg]=Содироти поягузор
-Name[tr]=KAB Yer imleri XXPort Eklentisi
-Name[uk]=Втулок обміну закладками KAB
-Name[zh_CN]=KAB 书签 XXPort 插件
-Name[zh_TW]=KAB Bookmark XXPort 外掛程式
-Comment=Plugin to export the web addresses of the contacts as bookmarks
-Comment[af]=Inprop module wat die web adresse van kontakte as boekmerke uitvoer
-Comment[bg]=Приставка за експортиране на уеб адресите на контактите, като отметки
-Comment[bs]=Dodatak za izvoz web adresa kontakata u formi zabilješki
-Comment[ca]=Endollable per a exportar les adreces web dels contactes com a punts
-Comment[cs]=Modul pro exportování webových adres kontaktů jako záložky
-Comment[cy]=Ategyn i allforio cyfeiriadau gwê y cysylltau fel tudnodau
-Comment[da]=Plugin til at eksporte netadresser for kontakter som bogmærker
-Comment[de]=Modul zum Export von Web-Adressen der Kontakte als Lesezeichen
-Comment[el]=Πρόσθετο για εξαγωγή των διευθύνσεων ιστοσελίδων των επαφών σαν σελιδοδείκτες
-Comment[es]=Plugin para exportar las direcciones web de los contactos como marcadores
-Comment[et]=Plugin kontaktide veebiaadresside eksportimiseks järjehoidjatena
-Comment[eu]=Kontaktuen web-helbideak laster-markak bezala esportatzeko plugin-a
-Comment[fa]=وصله برای صادرات نشانیهای وب تماسها به عنوان چوب الفها
-Comment[fi]=Liitännäinen, joka muuntaa kontaktien sisältämät verkko-osoitteet kirjanmerkeiksi
-Comment[fr]=Module d'export des adresses internet des contacts en signets
-Comment[fy]=Plugin foar it eksportearjen fan de webadressen fan de kontaktpersoanen as blêdwizers
-Comment[gl]=Extensión para exportar os enderezos web dos contactos como marcadores
-Comment[hi]=सम्पर्कों के वेब पते को पसंदीदा के रूप में निर्यात करने का प्लगइन
-Comment[hu]=Bővítőmodul webcímek exportáláshoz, könyvjelzőként
-Comment[is]=Íforrit til að skrá vefföng tengiliða sem bókarmerki
-Comment[it]=Plugin per esportare come segnalibro gli indirizzi web dei contatti
-Comment[ja]=連絡先のウェブアドレスをブックマークとしてエクスポートするプラグイン
-Comment[kk]=Контакттың веб адрестерін бетбелгіге экспорттау модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ដើម្បី​នាំចេញ​អាសយដ្ឋាន​បណ្ដាញ​របស់​ទំនាក់ទំនង ជា​ចំណាំ
-Comment[lt]=Priedas skirtas žiniatinklio adresų kontaktuose eksportavimui į žymeles
-Comment[mk]=Приклучок за изнесување на веб-адресите на контактите како обележувачи
-Comment[ms]= Plug masuk untuk eksport alamat web untuk perhubungan sebagai tanda laman
-Comment[nb]=Programtillegg som eksporterer kontaktenes nett-addresser som bokmerker
-Comment[nds]=Moduul för't Exporteren vun Kontakt-Nettadressen as Leestekens
-Comment[ne]=पुस्तकचिनो अनुरुपका सम्पर्कका वेब ठेगानाको निर्यात गर्न प्लगइन गर्नुहोस्
-Comment[nl]=Plugin voor het exporteren van de webadressen van de contactpersonen als bladwijzers
-Comment[nn]=Programtillegg for å eksportera nettadresser av kontaktar som bokmerker
-Comment[pl]=Wtyczka eksportująca adresy WWW z wizytówek jako zakładki
-Comment[pt]=Um 'plugin' para exportar os endereços Web dos contactos como favoritos
-Comment[pt_BR]=Plug-in para exportar os endereços web de contatos como marcadores
-Comment[ru]=Экспорт веб-адресов контактов как закладок
-Comment[sk]=Modul pre export webových adries kontaktov ako záložiek
-Comment[sl]=Vstavek za izvoz spletnih naslovov stikov v obliki zaznamkov
-Comment[sr]=Прикључак за извоз веб-адреса контаката као маркера
-Comment[sr@Latn]=Priključak za izvoz veb-adresa kontakata kao markera
-Comment[sv]=Insticksprogram för export av kontaktwebbadresser som bokmärken
-Comment[ta]=இணைய முகவரிகளின் தொடர்புகளை புத்தக குறிப்புகளாக ஏற்றுவதற்கு சொருகுப்பொருள்
-Comment[tg]=Модул барои содироти веб-адресҳои алоқа ҳамчун поягузор
-Comment[tr]=Bağlantıların web adreslerini yeri imleri olarak aktarmak için eklenti
-Comment[uk]=Втулок для експорту адрес контактів у Тенетах як закладок
-Comment[zh_CN]=将联系人的网址导出为书签的插件
-Comment[zh_TW]=匯出聯絡人的網頁成書籤的外掛程式
Type=Service
+X-TDE-Library=libkaddrbk_bookmark_xxport
X-TDE-ServiceTypes=KAddressBook/XXPort
X-TDE-KAddressBook-XXPortPluginVersion=1
+
+Name=KAB Bookmark XXPort Plugin
+
+Comment=Plugin to export the web addresses of the contacts as bookmarks
diff --git a/kaddressbook/xxport/bookmark_xxport.h b/kaddressbook/xxport/bookmark_xxport.h
index fde6fe4d..03fe7d0d 100644
--- a/kaddressbook/xxport/bookmark_xxport.h
+++ b/kaddressbook/xxport/bookmark_xxport.h
@@ -29,7 +29,7 @@
class BookmarkXXPort : public KAB::XXPort
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/xxport/csv_xxport.desktop b/kaddressbook/xxport/csv_xxport.desktop
index 8f185580..3f887334 100644
--- a/kaddressbook/xxport/csv_xxport.desktop
+++ b/kaddressbook/xxport/csv_xxport.desktop
@@ -1,100 +1,9 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_csv_xxport
-Name=KAB CSV XXPort Plugin
-Name[af]=KAB CSV XXPort inprop module
-Name[be]=Дапаўненне KAB "Імпарт/Экспарт CSV"
-Name[bg]=Приставка за CSV XXPort на KAB
-Name[br]=Lugent XXPorzh CSV KAB
-Name[bs]=KAB dodatak za CSV XXPort
-Name[ca]=Endollable d'importació/exportació CSV per al KAB
-Name[cs]=Exportní modul CSV
-Name[cy]=Ategyn XXPort CSV KAB
-Name[da]=KAB CSV XXPort-plugin
-Name[de]=CSV-XXPort-Modul für Adressbuch
-Name[el]=Πρόσθετο εισαγωγής/εξαγωγής CSV του KAB
-Name[es]=Plugin de KAB para {im,ex}portar CSV
-Name[et]=KAB CSV eksport/importplugin
-Name[eu]=KAB-en CSV in/esportazioa plugin-a
-Name[fa]=وصلۀ KAB CSV XXPort
-Name[fi]=KAB CSV -liitännäinen
-Name[fr]=Module d'import / export CSV pour KAB
-Name[gl]=Extensión XXPort de CSV para KAB
-Name[he]=תוסף ייבוא/ייצוא של קבצי CSV של KAB
-Name[hi]=केएबी सीएसवी XXपोर्ट प्लगइन
-Name[hu]=KAB XXPort bővítőmodul
-Name[is]=Íforrit fyrir KAV CSV XXPort
-Name[ja]=KAB CSV インポート/エクスポートプラグイン
-Name[kk]=CSV файлды экспорт/импорт ету
-Name[km]=កម្មវិធី​ជំនួយ KAB CSV XXPort
-Name[lt]=KAB CSV XXPort priedas
-Name[ms]=Plug masuk KAB CSV XXPort
-Name[nb]=KAB-programtillegg for CSV-eksport
-Name[nds]=CSV-Im-/Exportmoduul för KAdressbook
-Name[ne]=KAB CSV XXPort प्लगइन
-Name[nn]=KAB CSV XXPort programtillegg
-Name[pl]=Wtyczka KAB do importu/eksportu z/do formatu CSV
-Name[pt]='Plugin' XXPort para CSV do KAB
-Name[pt_BR]=Plug-in de Im/Exportação de CSV do KAB
-Name[ru]=Экспорт/импорт в файлы CSV
-Name[sl]=Vstavek KAB CSV XXPort
-Name[sr]=XXPort прикључак KAB-а за CSV
-Name[sr@Latn]=XXPort priključak KAB-a za CSV
-Name[sv]=Adressbokens CSV-överföringsinsticksprogram
-Name[ta]=KAB CSV ஏற்றுமதி சொருகுப்பொருள்
-Name[tg]=Содирот/воридот ба файлҳои CSV
-Name[tr]=KAB CSV XXPort Eklentisi
-Name[uk]=Втулок KAB для обміну через CSV
-Name[zh_CN]=KAB CSV XXPort 插件
-Name[zh_TW]=KAB CSV XXPort 外掛程式
-Comment=Plugin to import and export contacts in CSV format
-Comment[af]=Inprop module wat kontakte in CSV formaat invoer en uitvoer
-Comment[be]=Дапаўненне для імпарту і экспарту кантактаў у фармаце CSV
-Comment[bg]=Приставка за импортиране/експортиране на контактите във формат CSV
-Comment[bs]=Dodatak za uvoz i izvoz kontakata u CSV formatu
-Comment[ca]=Endollable per a importar i exportar contactes en format CSV
-Comment[cs]=Modul pro import a export kontaktů ve formátu CSV
-Comment[cy]=Ategyn i fewnforio ac allforio cysylltau mewn fformat CSV
-Comment[da]=Plugin til at importere og eksportere kontakter i CSV-format
-Comment[de]=Modul zum Import/Export von Kontakten im CSV-Format
-Comment[el]=Πρόσθετο για εισαγωγή και εξαγωγή των επαφών μορφής CSV
-Comment[es]=Plugin para importar y exportar contactos en formato CSV
-Comment[et]=Plugin kontaktide importimiseks ja eksportimiseks CSV vormingus
-Comment[eu]=CSV formatuan kontaktuak esportatu eta inportatzeko plugin-a
-Comment[fa]=وصله برای واردات و صادرات تماسها در قالب CSV
-Comment[fi]=Liitännäinen kontaktien vientiin ja tuontiin CSV-muodossa
-Comment[fr]=Module d'import / export de contacts au format CSV
-Comment[fy]=Plugin foar it ymportearjen en eksportearjen fan kontaktpersoanen yn CSV-formaat
-Comment[gl]=Extensión para importar e exportar contactos e formato CSV
-Comment[hi]=सम्पर्कों को सीएसवी फार्मेट में निर्यात करने का प्लगइन
-Comment[hu]=Bővítőmodul névjegyek importálásához/exportálásához, CSV formátumban
-Comment[is]=Íforrit til að flytja tengiliði inn og út í CSV sniði
-Comment[it]=Plugin per importare ed esportare contatti in formato CSV
-Comment[ja]=CSV フォーマットで連絡先をインポート/エクスポートするプラグイン
-Comment[kk]=Контакттарды CSV пішіміне экспорт/импорт ету модулі
-Comment[km]=កម្មវិធី ជំនួយ​ដើម្បី​នាំចូល និង​នាំចេញ​ទំនាក់ទំនង​ក្នុង​ទ្រង់ទ្រាយ​ជា CSV ។
-Comment[lt]=Priedas, skirtas kontaktų eksportui ir importui CSV formatu
-Comment[mk]=Приклучок за внесување и изнесување контакти во CSV-формат
-Comment[ms]=Plug masuk untuk import dan eksport alamat perhubungan di dalam format CSV
-Comment[nb]=Programtillegg for import/eksport av kontakter i CSV-format
-Comment[nds]=Moduul för't Im- un Exporteren vun Kontakten in't CSV-Formaat
-Comment[ne]=CSV ढाँचाका सम्पर्क आयात र निर्यात गर्न प्लगइन गर्नुहोस्
-Comment[nl]=Plugin voor het importeren en exporteren van contactpersonen in CSV-formaat
-Comment[nn]=Programtillegg for å importera og eksportera kontaktar i CSV-format
-Comment[pl]=Wtyczka do importowania i eksportowania wizytówek w formacie CSV
-Comment[pt]=Um 'plugin' para importar e exportar contactos no formato CSV
-Comment[pt_BR]=Plug-in para importar e exportar contatos em formato CSV
-Comment[ru]=Импорт и экспорт контактов в формате CSV
-Comment[sk]=Modul pre import a export kontaktov vo formáte CSV
-Comment[sl]=Vstavek za uvoz in izvoz stikov v obliki CSV
-Comment[sr]=Прикључак за увоз и извоз контаката у CSV формат
-Comment[sr@Latn]=Priključak za uvoz i izvoz kontakata u CSV format
-Comment[sv]=Insticksprogram för import och export av kontakter med CSV-format
-Comment[ta]=CSV வடிவத்தில் ஏற்றுமதி மற்றும் இறக்குமதி தொடர்புகளுக்கான சொருகுப்பொருள்
-Comment[tg]=Модул барои воридот ва содироти алоқа ба формати CSV
-Comment[tr]=CSV biçimindeki bağlantıları alma ve gönderme eklentisi
-Comment[uk]=Втулок для імпорту та експорту контактів у форматі CSV
-Comment[zh_CN]=导入和导出 CSV 格式联系人的插件
-Comment[zh_TW]=以 CSV 格式匯入與匯出聯絡人外掛程式
Type=Service
+X-TDE-Library=libkaddrbk_csv_xxport
X-TDE-ServiceTypes=KAddressBook/XXPort
X-TDE-KAddressBook-XXPortPluginVersion=1
+
+Name=KAB CSV XXPort Plugin
+
+Comment=Plugin to import and export contacts in CSV format
diff --git a/kaddressbook/xxport/csv_xxport.h b/kaddressbook/xxport/csv_xxport.h
index f0a28fde..473507b6 100644
--- a/kaddressbook/xxport/csv_xxport.h
+++ b/kaddressbook/xxport/csv_xxport.h
@@ -28,7 +28,7 @@
class CSVXXPort : public KAB::XXPort
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/xxport/csvimportdialog.cpp b/kaddressbook/xxport/csvimportdialog.cpp
index 091d277f..589bfb24 100644
--- a/kaddressbook/xxport/csvimportdialog.cpp
+++ b/kaddressbook/xxport/csvimportdialog.cpp
@@ -121,33 +121,33 @@ CSVImportDialog::CSVImportDialog( TDEABC::AddressBook *ab, TQWidget *parent,
reloadCodecs();
- connect( mDelimiterBox, TQT_SIGNAL( clicked( int ) ),
- this, TQT_SLOT( delimiterClicked( int ) ) );
- connect( mDelimiterEdit, TQT_SIGNAL( returnPressed() ),
- this, TQT_SLOT( returnPressed() ) );
- connect( mDelimiterEdit, TQT_SIGNAL( textChanged ( const TQString& ) ),
- this, TQT_SLOT( textChanged ( const TQString& ) ) );
- connect( mComboLine, TQT_SIGNAL( activated( const TQString& ) ),
- this, TQT_SLOT( lineSelected( const TQString& ) ) );
- connect( mComboQuote, TQT_SIGNAL( activated( const TQString& ) ),
- this, TQT_SLOT( textquoteSelected( const TQString& ) ) );
- connect( mIgnoreDuplicates, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( ignoreDuplicatesChanged( int ) ) );
- connect( mCodecCombo, TQT_SIGNAL( activated( const TQString& ) ),
- this, TQT_SLOT( codecChanged() ) );
-
- connect( mUrlRequester, TQT_SIGNAL( returnPressed( const TQString& ) ),
- this, TQT_SLOT( setFile( const TQString& ) ) );
- connect( mUrlRequester, TQT_SIGNAL( urlSelected( const TQString& ) ),
- this, TQT_SLOT( setFile( const TQString& ) ) );
- connect( mUrlRequester->lineEdit(), TQT_SIGNAL( textChanged ( const TQString& ) ),
- this, TQT_SLOT( urlChanged( const TQString& ) ) );
-
- connect( this, TQT_SIGNAL( user1Clicked() ),
- this, TQT_SLOT( applyTemplate() ) );
-
- connect( this, TQT_SIGNAL( user2Clicked() ),
- this, TQT_SLOT( saveTemplate() ) );
+ connect( mDelimiterBox, TQ_SIGNAL( clicked( int ) ),
+ this, TQ_SLOT( delimiterClicked( int ) ) );
+ connect( mDelimiterEdit, TQ_SIGNAL( returnPressed() ),
+ this, TQ_SLOT( returnPressed() ) );
+ connect( mDelimiterEdit, TQ_SIGNAL( textChanged ( const TQString& ) ),
+ this, TQ_SLOT( textChanged ( const TQString& ) ) );
+ connect( mComboLine, TQ_SIGNAL( activated( const TQString& ) ),
+ this, TQ_SLOT( lineSelected( const TQString& ) ) );
+ connect( mComboQuote, TQ_SIGNAL( activated( const TQString& ) ),
+ this, TQ_SLOT( textquoteSelected( const TQString& ) ) );
+ connect( mIgnoreDuplicates, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( ignoreDuplicatesChanged( int ) ) );
+ connect( mCodecCombo, TQ_SIGNAL( activated( const TQString& ) ),
+ this, TQ_SLOT( codecChanged() ) );
+
+ connect( mUrlRequester, TQ_SIGNAL( returnPressed( const TQString& ) ),
+ this, TQ_SLOT( setFile( const TQString& ) ) );
+ connect( mUrlRequester, TQ_SIGNAL( urlSelected( const TQString& ) ),
+ this, TQ_SLOT( setFile( const TQString& ) ) );
+ connect( mUrlRequester->lineEdit(), TQ_SIGNAL( textChanged ( const TQString& ) ),
+ this, TQ_SLOT( urlChanged( const TQString& ) ) );
+
+ connect( this, TQ_SIGNAL( user1Clicked() ),
+ this, TQ_SLOT( applyTemplate() ) );
+
+ connect( this, TQ_SIGNAL( user2Clicked() ),
+ this, TQ_SLOT( saveTemplate() ) );
}
CSVImportDialog::~CSVImportDialog()
@@ -383,7 +383,7 @@ void CSVImportDialog::initGUI()
// Delimiter: comma, semicolon, tab, space, other
mDelimiterBox = new TQButtonGroup( i18n( "Delimiter" ), mPage );
- mDelimiterBox->setColumnLayout( 0, Qt::Vertical );
+ mDelimiterBox->setColumnLayout( 0, TQt::Vertical );
mDelimiterBox->layout()->setSpacing( spacingHint() );
mDelimiterBox->layout()->setMargin( marginHint() );
TQGridLayout *delimiterLayout = new TQGridLayout( mDelimiterBox->layout() );
diff --git a/kaddressbook/xxport/csvimportdialog.h b/kaddressbook/xxport/csvimportdialog.h
index da91c019..2dce71f4 100644
--- a/kaddressbook/xxport/csvimportdialog.h
+++ b/kaddressbook/xxport/csvimportdialog.h
@@ -40,7 +40,7 @@ class TQTable;
class CSVImportDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/xxport/eudora_xxport.desktop b/kaddressbook/xxport/eudora_xxport.desktop
index 65484ae5..15967133 100644
--- a/kaddressbook/xxport/eudora_xxport.desktop
+++ b/kaddressbook/xxport/eudora_xxport.desktop
@@ -1,102 +1,9 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_eudora_xxport
-Name=KAB Eudora XXPort Plugin
-Name[af]=KAB Eudora XXPort inprop module
-Name[be]=Дапаўненне KAB "Імпарт/Экспарт Eudora"
-Name[bg]=Приставка за Eudora XXPort на KAB
-Name[br]=Lugent XXPorzh Eudora KAB
-Name[bs]=KAB dodatak za Eudora XXPort
-Name[ca]=Endollable d'importació/exportació Eudora per al KAB
-Name[cs]=Exportní modul do Eudory
-Name[cy]=Ategyn XXPort Eudora KAB
-Name[da]=KAB Eudora XXPort-plugin
-Name[de]=Eudora-XXPort-Modul für Adressbuch
-Name[el]=Πρόσθετο εισαγωγής/εξαγωγής Eudora του KAB
-Name[es]=Plugin de KAB para {ex,im}portar de Eudora
-Name[et]=KAB Eudora eksport/importplugin
-Name[eu]=KAB-en Eudora in/esportazio plugin-a
-Name[fa]=وصلۀ KAB Eudora XXPort
-Name[fi]=KAB Euroda -liitännäinen
-Name[fr]=Module d'import / export Eudora pour KAB
-Name[gl]=Extensión XXPort de Eudora para KA
-Name[he]=תוסף ייבוא/ייצוא עבור Eurdora של KAB
-Name[hi]=केएबी यूडोरा XXपोर्ट प्लगइन
-Name[hu]=KAB Eudora XXPort bővítőmodul
-Name[is]=Íforrit fyrir KAB Eudora XXPort
-Name[ja]=KAB Eudora インポート/エクスポートプラグイン
-Name[kk]=Eudora-ға экспорт/импорт ету
-Name[km]=កម្មវិធី​ជំនួយ KAB Eudora XXPort
-Name[lt]=KAB Eudora XXPort priedas
-Name[ms]=Plug masuk KAB Eudora XXPort
-Name[nb]=KAB-programtillegg for Eudora-eksport
-Name[nds]=Eudora-Im-/Exportmoduul för KAdressbook
-Name[ne]=KAB यूडोरा XXPort प्लगइन
-Name[nn]=KAB Eudora XXPort programtillegg
-Name[pl]=Wtyczka KAB do importu/eksportu wizytówek Eudory
-Name[pt]='Plugin' XXPort para Eudora do KAB
-Name[pt_BR]=Plug-in de Im/Exportação de/para Eudora do KAB
-Name[ru]=Обмен информацией с Eudora
-Name[sk]=KAB modul pre xxport Eudora
-Name[sl]=Vstavek KAB Eudora XXPort
-Name[sr]=XXPort прикључак KAB-а за Eudora-у
-Name[sr@Latn]=XXPort priključak KAB-a za Eudora-u
-Name[sv]=Adressbokens Eudora-överföringsinsticksprogram
-Name[ta]=KAB யுடோரா XXபோர்ட் சொருகுப்பொருள்
-Name[tg]=Мубодилаи иттилоот бо Eudora
-Name[tr]=KAB Eudora XXPort Eklentisi
-Name[uk]=Втулок KAB для обміну з Eudora
-Name[zh_CN]=KAB Eudora XXPort 插件
-Name[zh_TW]=KAB Eudora XXPort 外掛程式
-Comment=Plugin to import and export Eudora contacts
-Comment[af]=Inprop module wat kontakte in Eudora formaat invoer en uitvoer
-Comment[be]=Дапаўненне для імпарту і экспарту кантактаў Eudora
-Comment[bg]=Приставка за импортиране/експортиране на контактите във формат на Eudora
-Comment[bs]=Dodatak za uvoz i izvoz kontakata iz Eudore
-Comment[ca]=Endollable per a importar i exportar contactes de l'Eudora
-Comment[cs]=Modul pro import a export kontaktů programu Eudora
-Comment[cy]=Ategyn i fewnforio ac allforio cysylltau Eudora
-Comment[da]=Plugin til at importere og eksportere Eudora-kontakter
-Comment[de]=Modul zum Import/Export von Eudora-Kontakten
-Comment[el]=Πρόσθετο για εισαγωγή και εξαγωγή επαφών του Eudora
-Comment[es]=Plugin para importar y exportar contactos de Eudora
-Comment[et]=Plugin Eudora kontaktide importimiseks ja eksportimiseks
-Comment[eu]=Eudora kontaktuak inportatu/esportatzeko plugin-a
-Comment[fa]=وصله برای واردات و صادرات تماسهای Eudora
-Comment[fi]=Liitännäinen Eudora-kontaktien tuomiseen ja viemiseen
-Comment[fr]=Module d'import / export de contacts Eudora
-Comment[fy]=Plugin foar it importearjen en eksportearjen fan Eudora-kontaktpersoanen
-Comment[gl]=Extensión para importar e exportar contactos Eudora
-Comment[hi]=यूडोरा सम्पर्कों को आयात और निर्यात करने का प्लगइन
-Comment[hu]=Bővítőmodul Eudora névjegyek importálásához/exportálásához
-Comment[is]=Íforrit til að flytja inn og út Eudora tengiliði
-Comment[it]=Plugin importare ed esportare contatti Eudora
-Comment[ja]=Eudora の連絡先をインポート/エクスポートするプラグイン
-Comment[kk]=Eudora контакттарды экспорт/импорт ету модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ដើម្បី​នាំចូល និង​នាំចេញ​ទំនាក់ទំនង​របស់ Eudora
-Comment[lt]=Priedas Eudora kontaktų importui ir eksportui
-Comment[mk]=Приклучок за внесување и изнесување контакти од Eudora
-Comment[ms]=Plug masuk untuk import dan eksport alamat perhubungan Eudora
-Comment[nb]=Programtillegg for import/eksport av Eudora-kontakter
-Comment[nds]=Moduul för't Im- un Exporteren vun Eudora-Kontakten
-Comment[ne]=यूडोरा सम्पर्क आयात निर्यात गर्न प्लगइन गर्नुहोस्
-Comment[nl]=Plugin voor het importeren en exporteren van Eudora-contactpersonen
-Comment[nn]=Programtillegg for å importera og eksportera Eudora-kontaktar
-Comment[pl]=Wtyczka do importowania i eksportowania wizytówek z/do Eudory
-Comment[pt]=Um 'plugin' para importar e exportar contactos do Eudora
-Comment[pt_BR]=Plug-in para importar e exportar contatos do Eudora
-Comment[ro]=Modul de importat şi exportat contacte Eudora
-Comment[ru]=Импорт и экспорт контактов Eudora
-Comment[sk]=Modul pre import a export kontaktov Eudora
-Comment[sl]=Vstavek za uvoz in izvoz stikov Eudore
-Comment[sr]=Прикључак за увоз и извоз Eudora контаката
-Comment[sr@Latn]=Priključak za uvoz i izvoz Eudora kontakata
-Comment[sv]=Insticksprogram för import och export av Eudora-kontakter
-Comment[ta]=யுடோரா ஏற்றுமதி மற்றும் இறக்குமதி செய்ய சொருகுப்பொருள்
-Comment[tg]=Модул барои воридот ва содироти алоқаи Eudora
-Comment[tr]=Eudora bağlantılarını alma ve gönderme eklentisi
-Comment[uk]=Втулок для імпорту та експорту контактів з або до Eudora
-Comment[zh_CN]=导入和导出 Eudora 联系人的插件
-Comment[zh_TW]=匯入與匯出 Eudora 聯絡人的外掛程式
Type=Service
+X-TDE-Library=libkaddrbk_eudora_xxport
X-TDE-ServiceTypes=KAddressBook/XXPort
X-TDE-KAddressBook-XXPortPluginVersion=1
+
+Name=KAB Eudora XXPort Plugin
+
+Comment=Plugin to import and export Eudora contacts
diff --git a/kaddressbook/xxport/eudora_xxport.h b/kaddressbook/xxport/eudora_xxport.h
index b6b34602..1f6007f5 100644
--- a/kaddressbook/xxport/eudora_xxport.h
+++ b/kaddressbook/xxport/eudora_xxport.h
@@ -28,7 +28,7 @@
class EudoraXXPort : public KAB::XXPort
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/xxport/gnokii_xxport.cpp b/kaddressbook/xxport/gnokii_xxport.cpp
index 5755784a..e1be330a 100644
--- a/kaddressbook/xxport/gnokii_xxport.cpp
+++ b/kaddressbook/xxport/gnokii_xxport.cpp
@@ -1597,5 +1597,3 @@ bool GNOKIIXXPort::exportContacts( const TDEABC::AddresseeList &list, const TQSt
******************************************************************************/
#include "gnokii_xxport.moc"
-
-/* vim: set sts=4 ts=4 sw=4: */
diff --git a/kaddressbook/xxport/gnokii_xxport.desktop b/kaddressbook/xxport/gnokii_xxport.desktop
index 43d06699..d4b0dd93 100644
--- a/kaddressbook/xxport/gnokii_xxport.desktop
+++ b/kaddressbook/xxport/gnokii_xxport.desktop
@@ -1,101 +1,9 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_gnokii_xxport
-Name=KAB Mobile Phone XXPort Plugin
-Name[af]=KAB selfoon XXPort inprop module
-Name[bg]=Приставка за XXPort на мобилен телефон на KAB
-Name[bs]=KAB dodatak XXPort u/iz mobilnog telefona
-Name[ca]=Endollable d'importació/exportació de telèfon mòbil per al KAB
-Name[cs]=Exportní modul do mobilního telefonu
-Name[cy]=Ategyn XXPort Ffôn Symudol KAB
-Name[da]=KAB Mobiltelefon XXPort-plugin
-Name[de]=Mobiltelefon-XXPort-Modul für Adressbuch
-Name[el]=Πρόσθετο εισαγωγής/εξαγωγής κινητών τηλεφώνων του KAB
-Name[es]=Plugin de KAB para {im,ex}portar números de móvil
-Name[et]=KAB mobiiltelefoni eksport/importplugin
-Name[eu]=KAB-en mugikorren in/esporatazio plugin-a
-Name[fa]=وصلۀ XXPort تلفن همراه KAB
-Name[fi]=KAB-matkapuhelinliitännäinen
-Name[fr]=Module d'import / export de téléphone portable pour KAB
-Name[fy]=KAB Mobile Tillefoan XXPort-plugin
-Name[gl]=Extensión XXPort de Teléfono Móbil para KAB
-Name[he]=תוסף ייבוא/ייצוא עבור טלפונים ניידים של KAB
-Name[hi]=केएबी मोबाइल फोन XXपोर्ट प्लगइन
-Name[hu]=KAB mobiltelefon XXPort bővítőmodul
-Name[is]=Íforrit fyrir KAB farsíma XXPort
-Name[it]=Plugin KAB telefono cellulare XXPort
-Name[ja]=KAB 携帯電話インポート/エクスポートプラグイン
-Name[kk]=Қалта телефонға экспорт/импорт ету
-Name[km]=កម្មវិធី​ជំនួយ KAB Mobile Phone XXPort
-Name[lt]=KAB mobilaus telefono XXPort priedas
-Name[ms]=Plug masuk KAB Fon Mudah Alih XXPort
-Name[nb]=KAB-programtillegg for mobiltelefon
-Name[nds]=Mobiltelefoon-Im-/Exportmoduul för KAdressbook
-Name[ne]=KAB मोबाइल फोन XXPort प्लगइन
-Name[nl]=KAB Mobiele Telefoon XXPort-plugin
-Name[nn]=KAB Mobiltelefon XXPort programtillegg
-Name[pl]=Wtyczka KAB do importu/eksportu z/do telefonu komórkowego
-Name[pt]='Plugin' XXPort para Telemóveis do KAB
-Name[pt_BR]=Plug-in de Im/Exportação de/para Telefone Móvel do KAB
-Name[ru]=Синхронизация с мобильным телефоном
-Name[sk]=KAB modul pre xxport z mobilu
-Name[sl]=Vstavek KAB Mobile Phone XXPort
-Name[sr]=XXPort прикључак KAB-а за мобилне телефоне
-Name[sr@Latn]=XXPort priključak KAB-a za mobilne telefone
-Name[sv]=Adressbokens överföringsinsticksprogram för mobiltelefon
-Name[ta]=KAB நடமாடும் தொலைபேசி XXபோர்ட் சொருகுப்பொருள்
-Name[tg]=Синхронизатсия бо телефони мобилӣ
-Name[tr]=KAB Cep Telefonu XXPort Eklentisi
-Name[uk]=Втулок KAB для обміну з мобільними телефонами
-Name[zh_CN]=KAB 移动电话 XXPort 插件
-Name[zh_TW]=KAB Mobile Phone XXPort 外掛程式
-Comment=Mobile Phone Plugin to Import and Export Addressbook Entries
-Comment[af]=Inprop module wat kontakte in selfoon formaat invoer en uitvoer
-Comment[bg]=Приставка за експортиране/импортиране на контактите от/към мобилен телефон
-Comment[bs]=Dodatak za uvoz i izvoz stavki adresara iz mobilnog telefona
-Comment[ca]=Endollable de telèfon mòbil per a importar i exportar entrades de la llibreta d'adreces
-Comment[cs]=Modul mobilního telefonu pro import a export záznamů Knihy adres
-Comment[cy]=Ategyn Ffôn Symudol i fewnforio ac allforio cofnodion y Llyfr Cyfeiriadau
-Comment[da]=Mobiltelefon-plugin til at importere og eksportere adressebogsindgange
-Comment[de]=Mobiltelefon-Modul zum Import/Export von Adressbuch-Einträgen
-Comment[el]=Πρόσθετο για εισαγωγή και εξαγωγή επαφών βιβλίου διευθύνσεων από κινητά τηλέφωνα
-Comment[es]=Plugin para importar y exportar números de móviles de las entradas de la libreta de direcciones
-Comment[et]=Mobiiltelefoni plugin aadressiraamatu kirjete importimiseks ja eksportimiseks
-Comment[eu]=Helbide-liburuko sarrerak in/esportatzeko mugikorren plugin-a
-Comment[fa]=وصلۀ تلفن همراه جهت واردات و صادرات مدخلهای کتاب نشانی
-Comment[fi]=Matkapuhelinliitännäinen osoitekirjan kontaktien tuontiin ja vientiin.
-Comment[fr]=Module de téléphone portable pour importer et exporter des entrées du carnet d'adresses
-Comment[fy]=Mobile-tillefoan-plugin faor it importearjen en eksportearjen fan adresboekitems
-Comment[gl]=Extensión de Teléfono Móbil para importar e exportar entradas do caderno de enderezos
-Comment[hi]=पता पुस्तिका प्रविष्टियों को आयात और निर्यात करने का मोबाइल फोन प्लगइन
-Comment[hu]=Mobiltelefonos bővítőmodul címbejegyzések importálásához/exportálásához
-Comment[is]=Íforrit til að færa tengilið milli póstfangaskrár og farsíma
-Comment[it]=Plugin per importare ed esportare voci della rubrica da un telefono cellulare
-Comment[ja]=アドレス帳のエントリをインポート/エクスポートする携帯電話用プラグイン
-Comment[kk]=Қалта телефонға адр. кітапша жазуын экспорт/импорт ету модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ទូរស័ព្ទ​ចល័ត​ដើម្បី​នាំចូល និង​នាំចេញ​ធាតុ​សៀវភៅ​អាសយដ្ឋាន
-Comment[lt]=Priedas skirtas importuoti ir eksportuoti adresų knygelės įrašus į mobiliuosius telefonus
-Comment[mk]=Приклучок за мобилни телефони за внесување и изнесување контакти од адресарот
-Comment[ms]=Plug masuk Fon Mudah Alih untuk Import dan Eksport Input Buku Alamat
-Comment[nb]=Programtillegg for import/eksport av adressebok fra/til mobiltelefon
-Comment[nds]=Mobiltelefoon-Moduul för't Im- un Exporteren vun KAdressbook-Indrääg
-Comment[ne]=ठेगाना पुस्तिका प्रविष्टि आयात र निर्यात गर्न मोबाइल फोन प्लगइन गर्नुहोस्
-Comment[nl]=Mobiele-telefoon-plugin voor het importeren en exporteren van adresboekitems
-Comment[nn]=Programtillegg for å importera og eksportera adressebokoppføringar i mobiltelefon
-Comment[pl]=Wtyczka do importowania i eksportowania wizytówek z/do telefonu komórkowego
-Comment[pt]=Um 'plugin' para importar e exportar contactos da agenda do telemóvel
-Comment[pt_BR]=Plug-in para Importar e Exportar Entradas do Livro de Endereços de/para Telefone Móvel
-Comment[ru]=Импорт и экспорт контактов мобильного телефона
-Comment[sk]=Modul pre import a export kontaktov z modulu
-Comment[sl]=Vstavek za uvoz in izvoz vnosov v adresarju prenosnih telefonov.
-Comment[sr]=Прикључак за увоз и извоз ставки из адресара у мобилни телефон
-Comment[sr@Latn]=Priključak za uvoz i izvoz stavki iz adresara u mobilni telefon
-Comment[sv]=Insticksprogram för import och export av adressboksposter till mobiltelefon
-Comment[ta]=முகவரி புத்தகத்தின் உள்ளிடுகளை ஏற்றுமதி மற்றும் இறக்குமதி செய்ய செல்பேசி மூலம் சொருகுப்பொருள்
-Comment[tg]=Модул барои воридот ва содироти алоқаи телефони мобилӣ
-Comment[tr]=Adres Defteri Girdilerini Cep Telefonuna Alma ve Gönderme Eklentisi
-Comment[uk]=Втулок для імпорту та експорту записів у адресній книзі мобільних телефонів
-Comment[zh_CN]=导入和导出地址簿项的移动电话插件
-Comment[zh_TW]=匯入與匯出通訊錄的手機外掛程式
Type=Service
+X-TDE-Library=libkaddrbk_gnokii_xxport
X-TDE-ServiceTypes=KAddressBook/XXPort
X-TDE-KAddressBook-XXPortPluginVersion=1
+
+Name=KAB Mobile Phone XXPort Plugin
+
+Comment=Mobile Phone Plugin to Import and Export Addressbook Entries
diff --git a/kaddressbook/xxport/gnokii_xxport.h b/kaddressbook/xxport/gnokii_xxport.h
index b41aace1..c24c4b14 100644
--- a/kaddressbook/xxport/gnokii_xxport.h
+++ b/kaddressbook/xxport/gnokii_xxport.h
@@ -28,7 +28,7 @@
class GNOKIIXXPort : public KAB::XXPort
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/xxport/kde2_xxport.desktop b/kaddressbook/xxport/kde2_xxport.desktop
index e99621b1..8c1067cd 100644
--- a/kaddressbook/xxport/kde2_xxport.desktop
+++ b/kaddressbook/xxport/kde2_xxport.desktop
@@ -1,103 +1,9 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_kde2_xxport
-Name=KAB KDE2 XXPort Plugin
-Name[af]=KAB KDE2 XXPort inprop module
-Name[be]=Дапаўненне KAB "Імпарт/Экспарт KDE2"
-Name[bg]=Приставка за KDE2 XXPort на KAB
-Name[br]=Lugent XXPorzh KAB KDE2
-Name[bs]=KAB dodatak za KDE2 XXPort
-Name[ca]=Endollable d'importació/exportació KDE2 per al KAB
-Name[cs]=Exportní modul KDE2
-Name[cy]=Ategyn XXPort KDE2 KAB
-Name[da]=KAB KDE2 XXPort-plugin
-Name[de]=KDE2-XXPort-Modul für Adressbuch
-Name[el]=Πρόσθετο εισαγωγής KDE2 του KAB
-Name[es]=Plugin KAB para {im,ex}portar KDE2
-Name[et]=KAB KDE2 importplugin
-Name[eu]=KAB-en KDE2 in/esportazio plugin-a
-Name[fa]=وصلۀ KAB KDE2 XXPort
-Name[fi]=KAB KDE2 -liitännäinen
-Name[fr]=Module d'import / export de KDE 2 pour KAB
-Name[fy]=KAB KDE2 XXPort-plugin
-Name[gl]=Extensión XXPort de KDE2 para KAB
-Name[he]=תוסף ייבוא/ייצוא עבור KDE2 של KAB
-Name[hi]=केएबी केडीई2 XXपोर्ट प्लगइन
-Name[hu]=KAB KDE2 XXPort bővítőmodul
-Name[is]=Íforrit fyrir KAB KDE2 XXPort
-Name[ja]=KAB KDE2 インポート/プラグイン
-Name[kk]=KDE2 пішімінен импорт ету
-Name[km]=កម្មវិធី​ជំនួយ KAB KDE2 XXPort
-Name[lt]=KAB KDE2 XXPort priedas
-Name[ms]=Plug masuk KAB KDE2 XXPort
-Name[nb]=KAB-programtillegg for KDE2
-Name[nds]=KDE2-Importmoduul för KAdressbook
-Name[ne]=KAB KDE2 XXPort प्लगइन
-Name[nl]=KAB KDE2 XXPort-plugin
-Name[nn]=KAB KDE2 XXPort programtillegg
-Name[pl]=Wtyczka KAB do importu książki adresowej KDE2
-Name[pt]='Plugin' XXPort para KDE2 do KAB
-Name[pt_BR]=Plug-in de Importação de KDE2 do KAB
-Name[ru]=Импорт адресной книги KDE2
-Name[sl]=Vstavek KAB KDE2 XXPort
-Name[sr]=XXPort прикључак KAB-а за KDE2
-Name[sr@Latn]=XXPort priključak KAB-a za KDE2
-Name[sv]=Adressbokens KDE 2-överföringsinsticksprogram
-Name[ta]=KAB KDE2 ஏற்றுமதி சொருகுப்பொருள்
-Name[tg]=Воридоти китоби адресии KDE2
-Name[tr]=KAB KDE2 XXPort Eklentisi
-Name[uk]=Втулок KAB для обміну з KDE2
-Name[zh_CN]=KAB KDE2 XXPort 插件
-Name[zh_TW]=KAB KDE2 XXPort 外掛程式
-Comment=Plugin to import the old KDE 2 address book
-Comment[af]=Inprop module om 'n ou KDE 2 adres boek in te voer
-Comment[be]=Дапаўненне для імпарту старой адраснай кнігі KDE 2
-Comment[bg]=Приставка за импортиране на контактите от адресника в KDE 2
-Comment[bs]=Dodatak za uvoz iz starog KDE 2 adresara
-Comment[ca]=Endollable per a importar l'antiga llibreta d'adreces del KDE 2
-Comment[cs]=Modul pro import staré KDE 2 knihy adres
-Comment[cy]=Ategyn i fewnforio'r hen lyfr cyfeiriadau KDE2
-Comment[da]=Plugin til at importere den gamle KDE 2 adressebog
-Comment[de]=Modul zum Import von Adressbüchern aus KDE 2
-Comment[el]=Πρόσθετο για εισαγωγή του παλιού βιβλίου διευθύνσεων του KDE 2
-Comment[es]=Plugin para importar de la libreta de direcciones de KDE 2
-Comment[et]=Plugin vana KDE2 aadressiraamatu importimiseks
-Comment[eu]=KDE2-ko helbide-liburu zaharrak inporatzeko plugin-a
-Comment[fa]=وصله برای واردات کتاب نشانی قدیمی KDE ۲
-Comment[fi]=Liitännäinen vanhan KDE2-osoitekirjan tuontiin
-Comment[fr]=Module d'import du vieux carnet d'adresses de KDE 2
-Comment[fy]=Plugin foar it importearjen fan it âlde KDE 2-adresboek
-Comment[gl]=Extensión para importar o vello caderno de enderezos de KDE 2
-Comment[hi]=पुराना केडीई 2 पता पुस्तिका को आयात के लिए प्लगइन
-Comment[hu]=Bővítőmodul KDE2-es címjegyzék importálásához
-Comment[is]=Íforrit til að færa inn gömlu KDE2 vistfangaskrána
-Comment[it]=Plugin per importare le vecchie voci della rubrica di KDE2
-Comment[ja]=古い KDE 2 アドレス帳をインポートするプラグイン
-Comment[kk]=Ескі KDE2 адр.кітапшасынан импорт ету модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ដើម្បី​នាំចូល​សៀវភៅ​អាសយដ្ឋាន KDE 2 ចាស់ៗ
-Comment[lt]=Priedas senosios KDE 2 adresų knygelės importui
-Comment[mk]=Приклучок за внесување на старите адресари од KDE 2
-Comment[ms]=Plug masuk untuk import buku alamat lama KDE 2
-Comment[nb]=Programtillegg for å importere adressebok fra KDE2
-Comment[nds]=Moduul för't Importeren vun KDE2-Adressböker
-Comment[ne]=पूरानो केडीई २ ठेगाना पुस्तिका आयात गर्न प्लगइन गर्नुहोस्
-Comment[nl]=Plugin voor het importeren van het oude KDE 2-adresboek
-Comment[nn]=Programtillegg for å importera den gamle KDE 2 adresseboka
-Comment[pl]=Wtyczka do importu starej książki adresowej z KDE 2
-Comment[pt]=Um 'plugin' para importar o livro de endereços antigo do KDE 2
-Comment[pt_BR]=Plug-in para importar o antigo livro de endereços do KDE2
-Comment[ru]=Импорт файлов адресной книги KDE2
-Comment[sk]=Plugin pre import starej knihy adries z KDE 2
-Comment[sl]=Vstavek za uvoz starih adresarjev iz KDE 2
-Comment[sr]=Прикључак за увоз старог KDE 2 адресара
-Comment[sr@Latn]=Priključak za uvoz starog KDE 2 adresara
-Comment[sv]=Insticksprogram för import av den gamla KDE 2 adressboken
-Comment[ta]=பழைய KDE 2 கேமுகவரிபுத்தகத்தை ஏற்றுமதி செய்ய சொருகுப்பொருள்
-Comment[tg]=Модул барои воридоти файлҳои китобиадресии KDE2
-Comment[tr]=KDE 2 adres defteri bilgilerini alma eklentisi
-Comment[uk]=Втулок для імпорту адресної книги старого формату часів KDE 2
-Comment[uz]=Эски KDE 2 манзиллар дафтарини импорт қилиш учун плагин
-Comment[zh_CN]=导入旧的 KDE 2 地址簿的插件
-Comment[zh_TW]=匯入舊的 KDE2 通訊錄的外掛程式
Type=Service
+X-TDE-Library=libkaddrbk_kde2_xxport
X-TDE-ServiceTypes=KAddressBook/XXPort
X-TDE-KAddressBook-XXPortPluginVersion=1
+
+Name=KAB KDE2 XXPort Plugin
+
+Comment=Plugin to import the old KDE 2 address book
diff --git a/kaddressbook/xxport/kde2_xxport.h b/kaddressbook/xxport/kde2_xxport.h
index 694b0b1b..146fa117 100644
--- a/kaddressbook/xxport/kde2_xxport.h
+++ b/kaddressbook/xxport/kde2_xxport.h
@@ -28,7 +28,7 @@
class KDE2XXPort : public KAB::XXPort
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/xxport/ldif_xxport.desktop b/kaddressbook/xxport/ldif_xxport.desktop
index d4932957..06068315 100644
--- a/kaddressbook/xxport/ldif_xxport.desktop
+++ b/kaddressbook/xxport/ldif_xxport.desktop
@@ -1,103 +1,9 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_ldif_xxport
-Name=KAB LDIF XXPort Plugin
-Name[af]=KAB LDIF XXPort inprop module
-Name[be]=Дапаўненне KAB "Імпарт LDIF"
-Name[bg]=Приставка за LDIF XXPort на KAB
-Name[br]=Lugent XXPorzh KAB LDIF
-Name[bs]=KAB dodatak za LDIF XXPort
-Name[ca]=Endollable per importació/exportació de LDIF per al KAB
-Name[cs]=Exportní modul LDIF
-Name[cy]=Ategyn XXPort LDIF KAB
-Name[da]=KAB LDIF XXPort-plugin
-Name[de]=LDIF-XXPort-Modul für Adressbuch
-Name[el]=Πρόσθετο εισαγωγής/εξαγωγής LDIF του KAB
-Name[es]=Plugin para {im,ex}portar LDIF
-Name[et]=KAB LDIF eksport/importplugin
-Name[eu]=KAB-en LDIF in/esportazio plugin-a
-Name[fa]=وصلۀ KAB LDIF XXPort
-Name[fi]=KAB LDIF -liitännäinen
-Name[fr]=Module d'import / export LDIF pour KAB
-Name[fy]=KAB LDIF XXPort-plugin
-Name[gl]=Extensión XXPort de LDIF para KAB
-Name[he]=תוסף ייבוא/ייצוא עבור LDIF של KAB
-Name[hi]=केएबी एलडीआईएफ XXपोर्ट प्लगइन
-Name[hu]=KAB LDIF XXPort bővítőmodul
-Name[is]=Íforrit fyrir KAB LDIF XXPort
-Name[ja]=KAB LDIF インポート/エクスポートプラグイン
-Name[kk]=LDIF пішіміне экспорт/импорт ету
-Name[km]=កម្មវិធី​ជំនួយ KAB LDIF XXPort
-Name[lt]=KAB LDIF XXPort priedas
-Name[ms]=Plug masuk KAB LDIF XXPort
-Name[nb]=KAB-programtillegg for LDIF-format
-Name[nds]=LDIF-Im-/Exportmoduul för KAdressbook
-Name[ne]=KAB LDIF XXPort प्लगइन
-Name[nl]=KAB LDIF XXPort-plugin
-Name[nn]=KAB LDIF XXPort programtillegg
-Name[pl]=Wtyczka KAB do importu/eksportu z/do formatu LDIF
-Name[pt]='Plugin' XXPort para LDIF do KAB
-Name[pt_BR]=Plug-in de Im/Exportação de LDIF do KAB
-Name[ru]=Обмен информацией через LDIF
-Name[sk]=KAB modul pre xxport LDIF
-Name[sl]=Vstavek KAB LDIF XXPort
-Name[sr]=XXPort прикључак KAB-а за LDIF
-Name[sr@Latn]=XXPort priključak KAB-a za LDIF
-Name[sv]=Adressbokens LDIF-överföringsinsticksprogram
-Name[ta]=KAB LDIF சோதனை சொருகுப்பொருள்
-Name[tg]=Мубодилаи иттилоот аз KDE2
-Name[tr]=KAB LDIF XXPort Eklentisi
-Name[uk]=Втулок KAB для обміну через LDIF
-Name[zh_CN]=KAB LDIF XXPort 插件
-Name[zh_TW]=KAB LDIF XXPort 外掛程式
-Comment=Plugin to import and export contacts in Netscape and Mozilla LDIF format
-Comment[af]=Inprop module wat kontakte in Netscape/Mozilla LDIF formaat invoer en uitvoer
-Comment[be]=Дапаўненне для імпарту кантактаў у фармаце Netscape/Mozilla LDIF
-Comment[bg]=Приставка за импортиране/експортиране на контактите във формат на Netscape и Mozilla (LDIF)
-Comment[bs]=Dodatak za uvoz i izvoz kontakata iz LDIF formata koji koriste Netscape i Mozilla
-Comment[ca]=Endollable per a importar i exportar contactes en el format LDIF de Mozilla i Netscape
-Comment[cs]=Modul pro import a export kontaktů ve formátu Netscape a Mozilla LDIF
-Comment[cy]=Ategyn i fewnforio ac allforio cysylltau yn fformat LDIF Netscape a Mozilla
-Comment[da]=Plugin til at importere og eksportere kontakter i Netscape og Mozilla LDIF-format
-Comment[de]=Modul zum Import/Export von Kontakten im LDIF-Format aus Netscape und Mozilla
-Comment[el]=Πρόσθετο για εισαγωγή και εξαγωγή επαφών μορφής LDIF του Netscape και Mozilla
-Comment[es]=Plugin para importar y exportar contactos en el formato de intercambio LDIF de Netscape y Mozilla
-Comment[et]=Plugin kontaktide importimiseks ja ekportimiseks Netscape ja Mozilla LDIF vormingus
-Comment[eu]=Netscape eta Mozilla-ren LDIF formatuan kontaktuak in/esportatzeko plugin-a
-Comment[fa]=وصله برای واردات و صادرات تماسها در قالب LDIF موزیلا و نت‌اسکیپ
-Comment[fi]=Liitännäinen Netscapen ja Mozillan LDIF-muodon kontaktien tuontiin ja vientiin
-Comment[fr]=Module d'import / export des contacts au format LDIF Mozilla et Netscape
-Comment[fy]=Plugin foar it ymportearjen en eksportearjen fan kontaktpersoanen yn Netscape's en Mozilla's LDIF-formaat
-Comment[gl]=Extensión para importar e exportar contactos en formato LDIF de Netscape e Mozilla
-Comment[hi]=नेटस्केप तथा मोजिला एलडीआईएफ फार्मेट में सम्पर्कों को आयात और निर्यात करने का प्लगइन
-Comment[hu]=Bővítőmodul Netscape és Mozilla LDIF formátumú névjegyek importálásához/exportálásához
-Comment[is]=Íforrit sem flytur flytja inn eða út tengiliði í Netscape og Mozilla LDIF sniði
-Comment[it]=Plugin per importare ed esportare contatti in formato Netscape e Mozilla LDIF
-Comment[ja]=Netscape と Mozilla の LDIF フォーマットで連絡先をインポート/エクスポートするプラグイン
-Comment[kk]=Netscape пен Mozilla LDIF пішіміне экспорт/импорт ету модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ដើម្បី​នាំចូល និង​នាំចេញ​ទំនាក់ទំនង​ក្នុង​ទ្រង់ទ្រាយ​ជា Netscape និង Mozilla LDIF
-Comment[lt]=Priedas, skirtas kontaktų importavimui ir eksportavimui Netscape ir Mozilla LDIFF formatu
-Comment[mk]=Приклучок за внесување и изнесување контакти во форматите на Netscape и Mozilla LDIF
-Comment[ms]=Plug masuk untuk import dan eksport alamat perhubungan di dalam format LDIF Netscape dan Mozilla
-Comment[nb]=Programtillegg for import/eksport av kontakter i Netscape og Mozillas LDIF-format
-Comment[nds]=Moduul för't Im- un Exporteren vun Kontakten in't LDIF-Formaat vun Netscape und Mozilla
-Comment[ne]=नेटस्क्येप र मोजिला LDIF ढाँचामा आयात निर्यात गर्न प्लगइन गर्नुहोस्
-Comment[nl]=Plugin voor het importeren en exporteren van contactpersonen in Netscape's en Mozilla's LDIF-formaat
-Comment[nn]=Programtillegg for å importera og eksportera kontaktar i Netscape og Mozilla LDIF-format
-Comment[pl]=Wtyczka do importowania i eksportowania wizytówek z/do formatu LDIF używanego przez Mozillę i Netscape'a
-Comment[pt]=Um 'plugin' para importar e exportar os contactos no formato LDIF do Netscape e do Mozilla
-Comment[pt_BR]=Plug-in para importar e exportar contatos no formato LDIF do Netscape e Mozilla
-Comment[ru]=Импорт и экспорт контактов через формат LDIF Netscape и Mozilla
-Comment[sk]=Modul pre import a export kontaktov z Netscape a Mozilla formátu LDIF
-Comment[sl]=Vstavek za uvoz in izvoz stikov v obliki LDIF (Netscape in Mozilla)
-Comment[sr]=Прикључак за увоз и извоз контаката у Netscape и Mozilla LDIF формат
-Comment[sr@Latn]=Priključak za uvoz i izvoz kontakata u Netscape i Mozilla LDIF format
-Comment[sv]=Insticksprogram för import och export av kontakter med Netscapes och Mozillas LDIF-format
-Comment[ta]=நெட்ஸ்கேப் மற்றும் மொசில்லா LDIF வடிவமைப்பை ஏற்றுமதி/இறக்குமதியில் தொடர்புக்கொள்ள சொருகுப்பொருள்
-Comment[tg]=Модул барои воридот ва содироти алоқа аз формати LDIF Netscape ва Mozilla
-Comment[tr]=Netscape ve Mozilla'nın LDIF biçimindeki bağlantılarını alma ve gönderme eklentisi
-Comment[uk]=Втулок для імпорту та експорту контактів у LDIF сумісний з Netscape та Mozilla
-Comment[zh_CN]=导入和导出 Netscape 和 Mozilla LDIF 格式联系人的插件
-Comment[zh_TW]=匯入與匯出 Netscape 與 Mozilla LDIF 格式聯絡人的外掛程式
Type=Service
+X-TDE-Library=libkaddrbk_ldif_xxport
X-TDE-ServiceTypes=KAddressBook/XXPort
X-TDE-KAddressBook-XXPortPluginVersion=1
+
+Name=KAB LDIF XXPort Plugin
+
+Comment=Plugin to import and export contacts in Netscape and Mozilla LDIF format
diff --git a/kaddressbook/xxport/ldif_xxport.h b/kaddressbook/xxport/ldif_xxport.h
index 1e8282a8..11cbd40b 100644
--- a/kaddressbook/xxport/ldif_xxport.h
+++ b/kaddressbook/xxport/ldif_xxport.h
@@ -29,7 +29,7 @@
class LDIFXXPort : public KAB::XXPort
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/xxport/opera_xxport.desktop b/kaddressbook/xxport/opera_xxport.desktop
index c405a506..088d2dea 100644
--- a/kaddressbook/xxport/opera_xxport.desktop
+++ b/kaddressbook/xxport/opera_xxport.desktop
@@ -1,101 +1,9 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_opera_xxport
-Name=KAB Opera XXPort Plugin
-Name[af]=KAB Opera XXPort inprop module
-Name[be]=Дапаўненне KAB "Імпарт Opera"
-Name[bg]=Приставка за Opera XXPort на KAB
-Name[br]=Lugent KAB Opera XXPort
-Name[bs]=KAB dodatak za Opera XXPort
-Name[ca]=Endollable d'importació/exportació d'Opera per al KAB
-Name[cs]=Exportní modul do Opery
-Name[cy]=Ategyn XXPort Opera KAB
-Name[da]=KAB Opera XXPort-plugin
-Name[de]=Opera-XXPort-Modul für Adressbuch
-Name[el]=Πρόσθετο εισαγωγής Opera του KAB
-Name[es]=Plugin KAB para {im,ex}portar Opera
-Name[et]=KAB Opera importplugin
-Name[eu]=KAB-en Opera in/esportazio plugin-a
-Name[fa]=وصلۀ KAB Opera XXPort
-Name[fi]=KAB Opera -liitännäinen
-Name[fr]=Module d'import / export Opera pour KAB
-Name[gl]=Extensión XXPort para de Opera KAB
-Name[he]=תוסף ייבוא/ייצוא עבור Opera של KAB
-Name[hi]=केएबी ऑपेरा XXपोर्ट प्लगइन
-Name[hu]=KAB Opera XXPort bővítőmodul
-Name[is]=Íforrit fyrir KAP Opera XXPort
-Name[ja]=KAB Opera インポート/エクスポートプラグイン
-Name[kk]=Opera пішіміне экспорт/импорт ету
-Name[km]=កម្មវិធី​ជំនួយ KAB Opera XXPort
-Name[lt]=KAB Opera XXPort priedas
-Name[ms]=Plugin KAB Opera XXPort
-Name[nb]=KAB-programtillegg for Opera
-Name[nds]=Opera-Importmoduul för KAdressbook
-Name[ne]=KAB ओपेरा XXPort प्लगइन
-Name[nn]=KAB Opera XXPort programtillegg
-Name[pl]=Wtyczka KAB do importu z Opery
-Name[pt]='Plugin' XXPort para Opera do KAB
-Name[pt_BR]=Plug-in de Importação de Opera do KAB
-Name[ru]=Обмен информацией с Opera
-Name[sk]=KAB modul pre xxport z Opera
-Name[sl]=Vstavek KAB Opera XXPort
-Name[sr]=XXPort прикључак KAB-а за Opera-у
-Name[sr@Latn]=XXPort priključak KAB-a za Opera-u
-Name[sv]=AdressbokensOpera-överföringsinsticksprogram
-Name[ta]=KAB ஓப்பெரா ஏற்றுமதி சொருகுப்பொருள்
-Name[tg]=Мубодилаи иттилоот бо Opera
-Name[tr]=KAB Opera XXPort Eklentisi
-Name[uk]=Name=Втулок KAB для обміну з Opera
-Name[zh_CN]=KAB Opera XXPort 插件
-Name[zh_TW]=KAB Opera XXPort 外掛程式
-Comment=Plugin to import Opera contacts
-Comment[af]=Inprop module wat kontakte in Opera formaat invoer
-Comment[be]=Дапаўненне для імпарту кантактаў Opera
-Comment[bg]=Приставка за импортиране на контактите от Опера
-Comment[bs]=Dodatak za uvoz kontakata iz Opere
-Comment[ca]=Endollable per a importar contactes des d'Opera
-Comment[cs]=Modul pro import a export kontaktů programu Opera
-Comment[cy]=Ategyn i fewnforio cysylltau Opera
-Comment[da]=Plugin til at importere Opera-kontakter
-Comment[de]=Modul zum Import von Opera-Kontakten
-Comment[el]=Πρόσθετο για εισαγωγή επαφών του Opera
-Comment[es]=Plugin para importar contactos de Opera
-Comment[et]=Plugin Opera kontaktide importimiseks
-Comment[eu]=Operaren kontaktuak inportatzeko plugin-a
-Comment[fa]=وصله برای واردات تماسهای Opera
-Comment[fi]=Liitännäinen Operan kontaktien tuomiseen
-Comment[fr]=Module d'import de contacts Opera
-Comment[fy]=Plugin foar ymportearjen fan Opera's kontaktpersoanen
-Comment[gl]=Extensión para importar contactos de Opera
-Comment[hi]=ऑपेरा सम्पर्कों को आयात करने का प्लगइन
-Comment[hu]=Bővítőmodul Opera névjegyek importálásához
-Comment[is]=Íforrit til flytja inn eða út Opera tengiliði
-Comment[it]=Plugin per importare contatti da Opera
-Comment[ja]=Opera の連絡先をインポートするプラグイン
-Comment[kk]=Opera контактарын экспорт/импорт ету модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ដើម្បី​នាំចូល​ទំនាក់ទំនង​របស់ Opera
-Comment[lt]=Priedas Opera kontaktų importui
-Comment[mk]=Приклучок за внесување контакти од Opera
-Comment[ms]=Plug masuk untuk import alamat perhubungan Opera
-Comment[nb]=Programtillegg for å importere Opera-kontakter
-Comment[nds]=Modul för't Importeren vun Opera-Kontakten
-Comment[ne]=ओपेरा सम्पर्क आयात गर्न प्लगइन गर्नुहोस्
-Comment[nl]=Plugin voor het importeren an Opera's contactpersonen
-Comment[nn]=Programtillegg for å imortera Opera-kontaktar
-Comment[pl]=Wtyczka do importu wizytówek z Opery
-Comment[pt]=Um 'plugin' para importar os contactos do Opera
-Comment[pt_BR]=Plug-in para importar contatos do Opera
-Comment[ru]=Импорт контактов Opera
-Comment[sk]=Plugin pre import kontaktov z Opera
-Comment[sl]=Vstavek za uvoz stikov iz Opere
-Comment[sr]=Прикључак за увоз Opera контаката
-Comment[sr@Latn]=Priključak za uvoz Opera kontakata
-Comment[sv]=Insticksprogram för import av Opera-kontakter
-Comment[ta]=ஓப்பெரா தொடர்புகளை இறக்குமதி செய்ய சொருகுப்பொருள்
-Comment[tg]=Модул барои воридоти алоқаи Opera
-Comment[tr]=Opera bağlantılarını alma eklentisi
-Comment[uk]=Втулок для імпорту контактів Opera
-Comment[zh_CN]=导入 Opera 联系人的插件
-Comment[zh_TW]=匯入 Opera 聯絡人的外掛程式
Type=Service
+X-TDE-Library=libkaddrbk_opera_xxport
X-TDE-ServiceTypes=KAddressBook/XXPort
X-TDE-KAddressBook-XXPortPluginVersion=1
+
+Name=KAB Opera XXPort Plugin
+
+Comment=Plugin to import Opera contacts
diff --git a/kaddressbook/xxport/opera_xxport.h b/kaddressbook/xxport/opera_xxport.h
index ce0a33ec..e0723c58 100644
--- a/kaddressbook/xxport/opera_xxport.h
+++ b/kaddressbook/xxport/opera_xxport.h
@@ -29,7 +29,7 @@
class OperaXXPort : public KAB::XXPort
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/xxport/pab_pablib.cpp b/kaddressbook/xxport/pab_pablib.cpp
index 344647f6..bae854c2 100644
--- a/kaddressbook/xxport/pab_pablib.cpp
+++ b/kaddressbook/xxport/pab_pablib.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- pablib.cxx - description
+ pablib.cpp - description
-------------------
begin : Tue Jul 4 2000
copyright : (C) 2000 by Hans Dijkema
diff --git a/kaddressbook/xxport/pab_pablib.h b/kaddressbook/xxport/pab_pablib.h
index 910688cc..f7cf7645 100644
--- a/kaddressbook/xxport/pab_pablib.h
+++ b/kaddressbook/xxport/pab_pablib.h
@@ -1,5 +1,5 @@
/***************************************************************************
- pablib.hxx - description
+ pablib.h - description
-------------------
begin : Tue Jul 4 2000
copyright : (C) 2000 by Hans Dijkema
@@ -16,8 +16,8 @@
***************************************************************************/
-#ifndef PAB_LIB_HXX
-#define PAB_LIB_HXX
+#ifndef PAB_LIB_H
+#define PAB_LIB_H
#include <tdelocale.h>
#include <tqfile.h>
diff --git a/kaddressbook/xxport/pab_xxport.cpp b/kaddressbook/xxport/pab_xxport.cpp
index 21070acf..59c00f82 100644
--- a/kaddressbook/xxport/pab_xxport.cpp
+++ b/kaddressbook/xxport/pab_xxport.cpp
@@ -67,5 +67,3 @@ TDEABC::AddresseeList PABXXPort::importContacts( const TQString& ) const
}
#include "pab_xxport.moc"
-
-// vim: ts=2 sw=2 et
diff --git a/kaddressbook/xxport/pab_xxport.desktop b/kaddressbook/xxport/pab_xxport.desktop
index 6f815780..01133e51 100644
--- a/kaddressbook/xxport/pab_xxport.desktop
+++ b/kaddressbook/xxport/pab_xxport.desktop
@@ -1,101 +1,9 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_pab_xxport
-Name=KAB MS Exchange Personal Addressbook XXPort Plugin
-Name[af]=KAB MS Exchange adresboek XXPort inprop module
-Name[be]=Дапаўненне KAB "Імпарт пэрсанальнай адраснай кнігі MS Exchange"
-Name[bg]=Приставка за XXPort на MS Exchange на KAB
-Name[bs]=KAB dodatak za MS Exchange Personal Addressbook XXPort
-Name[ca]=Endollable d'importació/exportació de la llibreta d'adreces personal d'MS Exchange per al KAB
-Name[cs]=Exportní modul do adresáře MS Exchange
-Name[cy]=Ategyn XXPort Llyfr Cyfeiriadau Personol MS Exchange KAB
-Name[da]=KAB MS Exchange personlig adressebog XXPort Plugin
-Name[de]=MS-Exchange-Adressbuch-XXPort-Modul
-Name[el]=Πρόσθετο εισαγωγής MS Exchange προσωπικού βιβλίου διευθύνσεων του KAB
-Name[es]=Plugin de KAB para {im,ex}portar libretas de direcciones personales de MS Exchange
-Name[et]=KAB MS Exchange personaalse aadressiraamatu importplugin
-Name[eu]=KAB-en MS Exchange Personal helbide-liburu in/esportazio plugin-a
-Name[fa]=وصلۀ XXPort کتاب نشانی شخصی مبادلۀ KAB MS
-Name[fi]=KAB MS Exchangen henkilökohtaisen osoitekirjan liitännäinen
-Name[fr]=Module d'import / export de carnets d'adresses personnels de MS Exchange pour KAB
-Name[fy]=KAB MS Exchange Personal Addressbook XXPort-plugin
-Name[gl]=Extensión XXPort do Caderno de Enderezos de MS Exchange para KAB
-Name[hi]=केएबी एमएस एक्सचेंज निजी पता पुस्तिका XXपोर्ट प्लगइन
-Name[hu]=KAB XXPort bővítőmodul MS Exchange személyes címjegyzékekhez
-Name[is]=Íforrit fyrir KAB MS Exchange Personal Addressbook XXPort
-Name[ja]=KAB MS Exchange パーソナルアドレス帳インポート/エクスポートプラグイン
-Name[kk]=MS Exchange адрестік кітапшасына экспорт/импорт ету
-Name[km]=កម្មវិធី​ជំនួយ KAB MS Exchange Personal Addressbook XXPort
-Name[lt]=KAB MS Exchange asmeninės adresų knygelės XXPort priedas
-Name[ms]=Plugin Buku Alamat Peribadi KAB MS Exchange XXPort Plugin
-Name[nb]=KAB-programtillegg for import fra MS Exchange
-Name[nds]=MSExchange-Importmoduul för KAdressbook
-Name[ne]=KAB MS बिनिमय व्यक्तिगत ठेगाना पुस्तिका XXPort प्लगइन
-Name[nl]=KAB MS Exchange Personal Addressbook XXPort-plugin
-Name[nn]=KAB MS Exchange personleg adressebok XXPort programtillegg
-Name[pl]=Wtyczka KAB do importu Osobistej książki adresowej MS Exchange
-Name[pt]='Plugin' XXPort do Livro de Endereços Pessoal do MS Exchange para o KAB
-Name[pt_BR]=Plug-in do KAB para Im/Exportação de/para Livro de Endereços Pessoal do MS Exchange
-Name[ru]=Импорт контактов MS Exchange
-Name[sk]=KAB modul pre xxport z osobného adresára MS Exchange
-Name[sl]=Vstavek KAB MS Exchange Personal Addressbook XXPort
-Name[sr]=XXPort прикључак KAB-а за MS Exchange лични адресар
-Name[sr@Latn]=XXPort priključak KAB-a za MS Exchange lični adresar
-Name[sv]=Adressbokens överföringsinsticksprogram för MS Exchange personlig adressbok
-Name[ta]=KAB MS Exchange Personal Address Books ஏற்றுமதி சொருகுப்பொருள்
-Name[tg]=Воридоти алоқаҳои MS Exchange
-Name[tr]=KAB MS Exchange Kişisel Adres Defteri XXPort Eklentisi
-Name[uk]=Втулок KAB для обміну з персональною адресною книгою MS Exchange
-Name[zh_CN]=KAB MS Exchange 个人地址簿 XXPort 插件
-Name[zh_TW]=KAB MS Exchange Personal Addressbook XXPort 外掛程式
-Comment=Plugin to import MS Exchange Personal Address Books
-Comment[af]=Inprop module wat kontakte in MS Exchange adresboek formaat invoer
-Comment[be]=Дапаўненне для імпарту пэрсанальнай адраснай кнігі MS Exchange
-Comment[bg]=Приставка за импортиране на контактите от MS Exchange Personal Address Books
-Comment[bs]=Dodatak za uvoz iz MS Exchange personalnog adresara
-Comment[ca]=Endollable per a importar des de la llibreta d'adreces personal d'MS Exchange
-Comment[cs]=Modul pro import osobní knihy adres MS Exchange
-Comment[cy]=Ategyn i fewnforio Llyfrau Cyfeiriadau Personol MS Exchange
-Comment[da]=Plugin til at importere MS Exchange personlige adressebøger
-Comment[de]=Modul für den Import von persönlichen Adressbüchern aus MS Exchange
-Comment[el]=Πρόσθετο για εισαγωγή προσωπικών βιβλίων διευθύνσεων του MS Exchange
-Comment[es]=Plugin para importar libretas de direcciones personales de MS Exchange
-Comment[et]=Plugin MS Exchange personaalse aadressiraamatu importimiseks
-Comment[eu]=MS Exchange Personal helbid-liburuak in/esportatzeko plugina-
-Comment[fa]=وصله برای واردات کتابهای نشانی شخصی مبادلۀ MS
-Comment[fi]=Liitännäinen MS Exchangen henkilökohtaisten osoitekirjojen tuontiin
-Comment[fr]=Module d'import des carnets d'adresses personnels MS Exchange
-Comment[fy]=Plugin foar it ymporteajen fan MS Exchange-adresboeken
-Comment[gl]=Extensión para importar Cadernos de Enderezos Persoais de MS Exchange
-Comment[hi]=एमएस एक्सचेंज निजी पता पुस्तिका को आयात करने का प्लगइन
-Comment[hu]=Bővítőmodul MS Exchange személyes címjegyzékek importálásához
-Comment[is]=Íforrit til að flytja tengiliði í eða úr MS Exchange Personal Address Book
-Comment[it]=Plugin per importare rubriche personali da MS Exchange
-Comment[ja]=MS Exchange パーソナルアドレス帳をインポートするプラグイン
-Comment[kk]=MS Exchange адрестік кітапшасына экспорт/импорт ету модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ដើម្បី​នាំចូល​សៀវភៅ​អាសយដ្ឋាន​ផ្ទាល់​ខ្លួន​របស់ MS Exchange
-Comment[lt]=Priedas leidžiantis importuoti MS Exchange asmenines adresų knygeles
-Comment[mk]=Приклучок за внесување лични адресари од MS Exchange
-Comment[ms]=Plugin untuk mengimpot Buku Alamat Peribadi MS Exchange
-Comment[nb]=Programtillegg for import av personlige adressebøker fra MS Exchange
-Comment[nds]=Moduul för't Importeren vun persöönliche Adressböker ut MS Exchange
-Comment[ne]=MS बिनिमय व्यक्तिगत ठेगाना पुस्तिका आयात गर्न प्लगइन गर्नुहोस्
-Comment[nl]=Plugin voor het importeren van MS Exchange-adresboeken
-Comment[nn]=Programtillegg for å imortera MS Exchange personleg adressebok
-Comment[pl]=Wtyczka do importu Osobistej książki adresowej z MS Exchange
-Comment[pt]=Um 'plugin' para importar os livros de endereços pessoais do MS Exchange
-Comment[pt_BR]=Plug-in para importar Livros de Endereços Pessoais do MS Exchange
-Comment[ru]=Импорт персональных адресных книг MS Exchange
-Comment[sk]=Modul pre import osobných adresárov MS Exchange
-Comment[sl]=Vstavek za uvoz osebnih adresarjev MS Exchange
-Comment[sr]=Прикључак за увоз MS Exchange личних адресара
-Comment[sr@Latn]=Priključak za uvoz MS Exchange ličnih adresara
-Comment[sv]=Insticksprogram för import av MS Exchange personliga adressböcker
-Comment[ta]=MS Exchange Personal Address Books இறக்குமதி செய்ய சொருகுப்பொருள்
-Comment[tg]=Модул барои воридоти китобҳои адреси шахсии MS Exchange
-Comment[tr]=MS Exchange Kişisel Adres Defteri aktarım eklentisi
-Comment[uk]=Втулок для імпорту персональних адресних книг MS Exchange
-Comment[zh_CN]=导入 MS Exchange 个人地址簿的插件
-Comment[zh_TW]=匯入 MS Exchange Personal 通訊錄的外掛程式
Type=Service
+X-TDE-Library=libkaddrbk_pab_xxport
X-TDE-ServiceTypes=KAddressBook/XXPort
X-TDE-KAddressBook-XXPortPluginVersion=1
+
+Name=KAB MS Exchange Personal Addressbook XXPort Plugin
+
+Comment=Plugin to import MS Exchange Personal Address Books
diff --git a/kaddressbook/xxport/pab_xxport.h b/kaddressbook/xxport/pab_xxport.h
index 796894a0..b3b6fb29 100644
--- a/kaddressbook/xxport/pab_xxport.h
+++ b/kaddressbook/xxport/pab_xxport.h
@@ -29,7 +29,7 @@
class PABXXPort : public KAB::XXPort
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/xxport/vcard_xxport.desktop b/kaddressbook/xxport/vcard_xxport.desktop
index a5f5c77e..e42450f9 100644
--- a/kaddressbook/xxport/vcard_xxport.desktop
+++ b/kaddressbook/xxport/vcard_xxport.desktop
@@ -1,103 +1,9 @@
[Desktop Entry]
-X-TDE-Library=libkaddrbk_vcard_xxport
-Name=KAB vCard XXPort Plugin
-Name[af]=KAB vCard XXPort inprop module
-Name[be]=Дапаўненне KAB "Імпарт/Экспарт vCard"
-Name[bg]=Приставка за vCard XXPort на KAB
-Name[br]=Lugent KAB vCard XXPort
-Name[bs]=KAB dodatak za vCard XXPort
-Name[ca]=Endollable d'importació/exportació vCard per al KAB
-Name[cs]=Exportní modul vCard
-Name[cy]=Ategyn XXPort vCard KAB
-Name[da]=KAB vCard XXPort-plugin
-Name[de]=vCard-XXPort-Modul für Adressbuch
-Name[el]=Πρόσθετο εισαγωγής/εξαγωγής vCard του KAB
-Name[es]=Plugin KAB para {im,ex}portar vCard
-Name[et]=KAB vCardi eksport/importplugin
-Name[eu]=KAB-en vCard in/esportazio plugin-a
-Name[fa]=وصلۀ KAB vCard XXPort
-Name[fi]=KAB vCard liitännäinen
-Name[fr]=Module d'import / export vCard pour KAB
-Name[fy]=KAB vCard XXPort-plugin
-Name[gl]=Extensión XXPort de vCard para KAB
-Name[he]=תוסף ייבוא/ייצוא עבור vCard של KAB
-Name[hi]=केएबी वी-कार्डXXपोर्ट प्लगइन
-Name[hu]=KAB vCard XXPort bővítőmodul
-Name[is]=Íforrit fyrir KAB vCard XXPort
-Name[ja]=KAB vCazrd インポート/エクスポートプラグイン
-Name[kk]=vCard-ты экспорт/импорт ету
-Name[km]=កម្មវិធី​ជំនួយ KAB vCard XXPort
-Name[lt]=KAB vCard XXPort priedas
-Name[ms]=Plugin KAB vCard XXPort
-Name[nb]=KAB-programtillegg for vCard
-Name[nds]=vCard-Im-/Exportmoduul för KAdressbook
-Name[ne]=KAB भी कार्ड XXPort प्लगइन
-Name[nl]=KAB vCard XXPort-plugin
-Name[nn]=KAB vCard XXPort programtillegg
-Name[pl]=Wtyczka KAB do importu/eksportu z/do formatu vCard
-Name[pt]='Plugin' XXPort para vCard do KAB
-Name[pt_BR]=Plug-in de Im/Exportação de vCard do KAB
-Name[ru]=Работа с vCard
-Name[sk]=KAB modul pre xxport z vCard
-Name[sl]=Vstavek KAB vCard XXPort
-Name[sr]=XXPort прикључак KAB-а за vCard
-Name[sr@Latn]=XXPort priključak KAB-a za vCard
-Name[sv]=Adressbokens vCard-överföringsinsticksprogram
-Name[ta]=kab vஅட்டைxxபோர்ட் சொருகுப்பொருள்
-Name[tg]=Кор бо vCard
-Name[tr]=KAB vCard XXPort Eklentisi
-Name[uk]=Втулок KAB для обміну через vCard
-Name[zh_CN]=KAB vCard XXPort 插件
-Name[zh_TW]=KAB vCard XXPort 外掛程式
-Comment=Plugin to import and export contacts in vCard format
-Comment[af]=Inprop module wat kontakte in vCard formaat invoer en uitvoer
-Comment[be]=Дапаўненне для імпарту і экспарту кантактаў у фармаце vCard
-Comment[bg]=Приставка за експортиране/импортиране на контактите във формат на vCard
-Comment[bs]=Dodatak za uvoz i izvoz kontakata u vCard formatu
-Comment[ca]=Endollable per a importar i exportar contactes en el format vCard
-Comment[cs]=Modul pro import a export kontaktů ve formátu vCard
-Comment[cy]=Ategyn i fewnforio ac allforio cysylltau yn fformat vCard
-Comment[da]=Plugin til at importere og eksportere kontakter i vCard-format
-Comment[de]=Modul für Import/Export von Kontakten im vCard-Format
-Comment[el]=Πρόσθετο για εισαγωγή και εξαγωγή επαφών μορφής vCard
-Comment[es]=Plugin para importar y exportar contactos en formato vCard
-Comment[et]=Plugin kontaktide importimiseks ja eksportimiseks vCardi vormingus
-Comment[eu]=vCard formatuko kontaktuak in/esportatzeko plugin-a
-Comment[fa]=وصله برای واردات و صادرات تماسها در قالب vCard
-Comment[fi]=Liitännäinen vCard-muodossa olevien kontaktien tuontiin ja vientiin
-Comment[fr]=Module d'import / export de contacts au format vCard
-Comment[fy]=Plugin foar it ymportearjen fan kontaktpersoanen yn vCard-formaat
-Comment[gl]=Plugin para importar e exportar contactos en formato vCard
-Comment[hi]=सम्पर्कों को वी-कार्ड फार्मेट में आयात और निर्यात करने का प्लगइन
-Comment[hu]=Bővítőmodul vCard névjegyek importálásához/exportálásához
-Comment[is]=Íforrit til að flytja inn eða út tengiliði í vCard sniði
-Comment[it]=Plugin per importare ed esportare contatti in formato vCard
-Comment[ja]=vCard フォーマットで連絡先をインポート/エクスポートするプラグイン
-Comment[kk]=vCard пішіміне экспорт/импорт ету модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ដើម្បី​នាំចូល និង​នាំចេញ​ទំនាក់ទំនង​ក្នុង​ទ្រង់ទ្រាយ​ជា vCard
-Comment[lt]=Įskiepis kontaktų importavimui ir eksportavimui vCard formatu
-Comment[mk]=Приклучок за внесување и изнесување контакти во vCard-формат
-Comment[ms]=Plugin untuk mengimpot dan mengekspot orang hubungan dalam format vCard
-Comment[nb]=Programtillegg for import og eksport av kontakter i vCard-format
-Comment[nds]=Moduul för't Im-/Exporteren vun Kontakten in't vCard-Formaat
-Comment[ne]=भी कार्ड ढाँचामा आयात र निर्यात गर्न प्लगइन गर्नुहोस्
-Comment[nl]=Plugin voor het importeren en exporteren van contactpersonen in vCard-formaat
-Comment[nn]=Programtillegg for å importera og eksportera kontaktar i vCard-format
-Comment[pl]=Wtyczka do importu i eksportu wizytówek w formacie vCard
-Comment[pt]=Um 'plugin' para importar e exportar os contactos no formato vCard
-Comment[pt_BR]=Plug-in para importar e exportar contatos no formato vCard
-Comment[ru]=Импорта и экспорт контактов в формате vCard
-Comment[sk]=Plugin pre import a export kontaktov v vCard formáte
-Comment[sl]=Vstavek za uvoz in izvoz stikov v obliki vCard
-Comment[sr]=Прикључак за увоз и извоз контаката у vCard формат
-Comment[sr@Latn]=Priključak za uvoz i izvoz kontakata u vCard format
-Comment[sv]=Insticksprogram för import och export av kontakter med vCard-format
-Comment[ta]=ஏற்றுமதி மற்றும் இறக்குமதி தொடர்புகளை vஅட்டை வடிவமைப்பில் செலுத்த சொருகுப்பொருள்
-Comment[tg]=Модул барои воридот ва содироти алоқот ба формати vCard
-Comment[tr]=vCard biçimi bağlantıları alma ve gönderme eklentisi
-Comment[uk]=Втулок для імпорту та експорту контактів у форматі vCard
-Comment[zh_CN]=导入和导出 vCard 格式联系人的插件
-Comment[zh_TW]=匯入與匯出 vCard 格式聯絡人的外掛程式
Type=Service
+X-TDE-Library=libkaddrbk_vcard_xxport
X-TDE-ServiceTypes=KAddressBook/XXPort
X-TDE-KAddressBook-XXPortPluginVersion=1
+
+Name=KAB vCard XXPort Plugin
+
+Comment=Plugin to import and export contacts in vCard format
diff --git a/kaddressbook/xxport/vcard_xxport.h b/kaddressbook/xxport/vcard_xxport.h
index c5f66f93..780d7ccc 100644
--- a/kaddressbook/xxport/vcard_xxport.h
+++ b/kaddressbook/xxport/vcard_xxport.h
@@ -29,7 +29,7 @@
class VCardXXPort : public KAB::XXPort
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/xxportmanager.cpp b/kaddressbook/xxportmanager.cpp
index bdc48f6b..3424e98e 100644
--- a/kaddressbook/xxportmanager.cpp
+++ b/kaddressbook/xxportmanager.cpp
@@ -146,10 +146,10 @@ void XXPortManager::loadPlugins()
mCore->guiClient()->insertChildClient( obj );
mXXPortObjects.insert( obj->identifier(), obj );
- connect( obj, TQT_SIGNAL( exportActivated( const TQString&, const TQString& ) ),
- this, TQT_SLOT( slotExport( const TQString&, const TQString& ) ) );
- connect( obj, TQT_SIGNAL( importActivated( const TQString&, const TQString& ) ),
- this, TQT_SLOT( slotImport( const TQString&, const TQString& ) ) );
+ connect( obj, TQ_SIGNAL( exportActivated( const TQString&, const TQString& ) ),
+ this, TQ_SLOT( slotExport( const TQString&, const TQString& ) ) );
+ connect( obj, TQ_SIGNAL( importActivated( const TQString&, const TQString& ) ),
+ this, TQ_SLOT( slotImport( const TQString&, const TQString& ) ) );
obj->setTDEApplication( kapp );
}
diff --git a/kaddressbook/xxportmanager.h b/kaddressbook/xxportmanager.h
index 3da145d4..02057213 100644
--- a/kaddressbook/xxportmanager.h
+++ b/kaddressbook/xxportmanager.h
@@ -29,7 +29,7 @@
#include <kurl.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "xxport.h"
@@ -39,7 +39,7 @@ class Core;
class KDE_EXPORT XXPortManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kaddressbook/xxportselectdialog.cpp b/kaddressbook/xxportselectdialog.cpp
index b6849aac..449ea60d 100644
--- a/kaddressbook/xxportselectdialog.cpp
+++ b/kaddressbook/xxportselectdialog.cpp
@@ -51,10 +51,10 @@ XXPortSelectDialog::XXPortSelectDialog( KAB::Core *core, bool sort,
{
initGUI();
- connect( mFiltersCombo, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( filterChanged( int ) ) );
- connect( mCategoriesView, TQT_SIGNAL( clicked( TQListViewItem* ) ),
- TQT_SLOT( categoryClicked( TQListViewItem* ) ) );
+ connect( mFiltersCombo, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( filterChanged( int ) ) );
+ connect( mCategoriesView, TQ_SIGNAL( clicked( TQListViewItem* ) ),
+ TQ_SLOT( categoryClicked( TQListViewItem* ) ) );
// setup filters
mFilters = Filter::restore( kapp->config(), "Filter" );
@@ -186,7 +186,7 @@ void XXPortSelectDialog::initGUI()
topLayout->addWidget( label );
mButtonGroup = new TQButtonGroup( i18n( "Selection" ), page );
- mButtonGroup->setColumnLayout( 0, Qt::Vertical );
+ mButtonGroup->setColumnLayout( 0, TQt::Vertical );
mButtonGroup->layout()->setSpacing( KDialog::spacingHint() );
mButtonGroup->layout()->setMargin( KDialog::marginHint() );
@@ -225,7 +225,7 @@ void XXPortSelectDialog::initGUI()
topLayout->addWidget( mButtonGroup );
TQButtonGroup *sortingGroup = new TQButtonGroup( i18n( "Sorting" ), page );
- sortingGroup->setColumnLayout( 0, Qt::Vertical );
+ sortingGroup->setColumnLayout( 0, TQt::Vertical );
TQGridLayout *sortLayout = new TQGridLayout( sortingGroup->layout(), 2, 2,
KDialog::spacingHint() );
sortLayout->setAlignment( TQt::AlignTop );
diff --git a/kaddressbook/xxportselectdialog.h b/kaddressbook/xxportselectdialog.h
index d9355e5b..725dfd22 100644
--- a/kaddressbook/xxportselectdialog.h
+++ b/kaddressbook/xxportselectdialog.h
@@ -44,7 +44,7 @@ class KComboBox;
class XXPortSelectDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kalarm/CMakeL10n.txt b/kalarm/CMakeL10n.txt
index 9ee46461..5b682152 100644
--- a/kalarm/CMakeL10n.txt
+++ b/kalarm/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_create_template( "kalarm" )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/kalarm-desktops/"
+ SOURCES *.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/kalarm/CMakeLists.txt b/kalarm/CMakeLists.txt
index b93cc671..484caae9 100644
--- a/kalarm/CMakeLists.txt
+++ b/kalarm/CMakeLists.txt
@@ -48,8 +48,18 @@ endif( )
##### other data ################################
tde_install_icons( )
-install( FILES kalarm.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
-install( FILES kalarm.tray.desktop DESTINATION ${AUTOSTART_INSTALL_DIR} )
+
+tde_create_translated_desktop(
+ SOURCE kalarm.desktop
+ PO_DIR kalarm-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE kalarm.tray.desktop
+ DESTINATION ${AUTOSTART_INSTALL_DIR}
+ PO_DIR kalarm-desktops
+)
+
install( FILES kalarmui.rc DESTINATION ${DATA_INSTALL_DIR}/kalarm )
install( FILES uninstall.desktop DESTINATION ${APPS_INSTALL_DIR}/Applications RENAME kalarm.desktop )
diff --git a/kalarm/alarmcalendar.cpp b/kalarm/alarmcalendar.cpp
index d0150d00..f47e962c 100644
--- a/kalarm/alarmcalendar.cpp
+++ b/kalarm/alarmcalendar.cpp
@@ -717,7 +717,7 @@ void AlarmCalendar::purgeIfQueued()
void AlarmCalendar::startPurgeTimer()
{
if (mPurgeDays > 0)
- StartOfDayTimer::connect(this, TQT_SLOT(slotPurge()));
+ StartOfDayTimer::connect(this, TQ_SLOT(slotPurge()));
}
/******************************************************************************
diff --git a/kalarm/alarmcalendar.h b/kalarm/alarmcalendar.h
index 91977ea9..a06498e7 100644
--- a/kalarm/alarmcalendar.h
+++ b/kalarm/alarmcalendar.h
@@ -35,7 +35,7 @@ class TDEConfig;
*/
class AlarmCalendar : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
virtual ~AlarmCalendar();
diff --git a/kalarm/alarmlistview.cpp b/kalarm/alarmlistview.cpp
index 6d7e5f9e..a436e3d0 100644
--- a/kalarm/alarmlistview.cpp
+++ b/kalarm/alarmlistview.cpp
@@ -348,7 +348,7 @@ TQString AlarmListView::whatsThisText(int column) const
void AlarmListView::contentsMousePressEvent(TQMouseEvent* e)
{
TQListView::contentsMousePressEvent(e);
- if (e->button() == Qt::LeftButton)
+ if (e->button() == TQt::LeftButton)
{
TQPoint p(contentsToViewport(e->pos()));
if (itemAt(p))
diff --git a/kalarm/alarmlistview.h b/kalarm/alarmlistview.h
index a48def33..9da667ed 100644
--- a/kalarm/alarmlistview.h
+++ b/kalarm/alarmlistview.h
@@ -63,7 +63,7 @@ class AlarmListViewItem : public EventListViewItemBase
class AlarmListView : public EventListViewBase
{
- Q_OBJECT
+ TQ_OBJECT
// needed by TQObject::isA() calls
public:
enum ColumnIndex { // default column order
diff --git a/kalarm/alarmtimewidget.cpp b/kalarm/alarmtimewidget.cpp
index 615696cf..6586b896 100644
--- a/kalarm/alarmtimewidget.cpp
+++ b/kalarm/alarmtimewidget.cpp
@@ -83,7 +83,7 @@ void AlarmTimeWidget::init(int mode)
"If a recurrence is configured, the start date/time will be adjusted "
"to the first recurrence on or after the entered date/time.");
- connect(this, TQT_SIGNAL(buttonSet(int)), TQT_SLOT(slotButtonSet(int)));
+ connect(this, TQ_SIGNAL(buttonSet(int)), TQ_SLOT(slotButtonSet(int)));
TQBoxLayout* topLayout = new TQVBoxLayout(this, 0, KDialog::spacingHint());
if (!title().isEmpty())
{
@@ -101,7 +101,7 @@ void AlarmTimeWidget::init(int mode)
// Date edit box
mDateEdit = new DateEdit(this);
mDateEdit->setFixedSize(mDateEdit->sizeHint());
- connect(mDateEdit, TQT_SIGNAL(dateEntered(const TQDate&)), TQT_SLOT(dateTimeChanged()));
+ connect(mDateEdit, TQ_SIGNAL(dateEntered(const TQDate&)), TQ_SLOT(dateTimeChanged()));
static const TQString enterDateText = i18n("Enter the date to schedule the alarm.");
TQWhatsThis::add(mDateEdit, ((mode & DEFER_TIME) ? enterDateText
: TQString("%1\n%2").arg(enterDateText).arg(recurText)));
@@ -112,7 +112,7 @@ void AlarmTimeWidget::init(int mode)
timeBox->setSpacing(2*KDialog::spacingHint());
mTimeEdit = new TimeEdit(timeBox);
mTimeEdit->setFixedSize(mTimeEdit->sizeHint());
- connect(mTimeEdit, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(dateTimeChanged()));
+ connect(mTimeEdit, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(dateTimeChanged()));
static const TQString enterTimeText = i18n("Enter the time to schedule the alarm.");
TQWhatsThis::add(mTimeEdit,
((mode & DEFER_TIME) ? TQString("%1\n\n%2").arg(enterTimeText).arg(TimeSpinBox::shiftWhatsThis())
@@ -129,7 +129,7 @@ void AlarmTimeWidget::init(int mode)
mAnyTimeAllowed = true;
mAnyTimeCheckBox = new CheckBox(i18n("An&y time"), timeBox);
mAnyTimeCheckBox->setFixedSize(mAnyTimeCheckBox->sizeHint());
- connect(mAnyTimeCheckBox, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotAnyTimeToggled(bool)));
+ connect(mAnyTimeCheckBox, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotAnyTimeToggled(bool)));
TQWhatsThis::add(mAnyTimeCheckBox, i18n("Schedule the alarm for any time during the day"));
}
@@ -145,7 +145,7 @@ void AlarmTimeWidget::init(int mode)
mDelayTimeEdit = new TimeSpinBox(1, maxDelayTime, this);
mDelayTimeEdit->setValue(maxDelayTime);
mDelayTimeEdit->setFixedSize(mDelayTimeEdit->sizeHint());
- connect(mDelayTimeEdit, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(delayTimeChanged(int)));
+ connect(mDelayTimeEdit, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(delayTimeChanged(int)));
TQWhatsThis::add(mDelayTimeEdit,
((mode & DEFER_TIME) ? TQString("%1\n\n%2").arg(i18n_TimeAfterPeriod()).arg(TimeSpinBox::shiftWhatsThis())
: TQString("%1\n%2\n\n%3").arg(i18n_TimeAfterPeriod()).arg(recurText).arg(TimeSpinBox::shiftWhatsThis())));
@@ -182,7 +182,7 @@ void AlarmTimeWidget::init(int mode)
setButton(id(mAtTimeRadio));
// Timeout every minute to update alarm time fields.
- MinuteTimer::connect(TQT_TQOBJECT(this), TQT_SLOT(slotTimer()));
+ MinuteTimer::connect(this, TQ_SLOT(slotTimer()));
}
/******************************************************************************
diff --git a/kalarm/alarmtimewidget.h b/kalarm/alarmtimewidget.h
index 47659adb..d384c054 100644
--- a/kalarm/alarmtimewidget.h
+++ b/kalarm/alarmtimewidget.h
@@ -33,7 +33,7 @@ class TimeSpinBox;
class AlarmTimeWidget : public ButtonGroup
{
- Q_OBJECT
+ TQ_OBJECT
public:
enum { // 'mode' values for constructor. May be OR'ed together.
diff --git a/kalarm/birthdaydlg.cpp b/kalarm/birthdaydlg.cpp
index c98a9987..0a1cd157 100644
--- a/kalarm/birthdaydlg.cpp
+++ b/kalarm/birthdaydlg.cpp
@@ -85,13 +85,13 @@ BirthdayDlg::BirthdayDlg(TQWidget* parent)
mPrefixText = config->readEntry(TQString::fromLatin1("BirthdayPrefix"), i18n("Birthday: "));
mSuffixText = config->readEntry(TQString::fromLatin1("BirthdaySuffix"));
- TQGroupBox* textGroup = new TQGroupBox(2, Qt::Horizontal, i18n("Alarm Text"), topWidget);
+ TQGroupBox* textGroup = new TQGroupBox(2, TQt::Horizontal, i18n("Alarm Text"), topWidget);
topLayout->addWidget(textGroup);
TQLabel* label = new TQLabel(i18n("Pre&fix:"), textGroup);
mPrefix = new BLineEdit(mPrefixText, textGroup);
mPrefix->setMinimumSize(mPrefix->sizeHint());
label->setBuddy(mPrefix);
- connect(mPrefix, TQT_SIGNAL(focusLost()), TQT_SLOT(slotTextLostFocus()));
+ connect(mPrefix, TQ_SIGNAL(focusLost()), TQ_SLOT(slotTextLostFocus()));
TQWhatsThis::add(mPrefix,
i18n("Enter text to appear before the person's name in the alarm message, "
"including any necessary trailing spaces."));
@@ -100,12 +100,12 @@ BirthdayDlg::BirthdayDlg(TQWidget* parent)
mSuffix = new BLineEdit(mSuffixText, textGroup);
mSuffix->setMinimumSize(mSuffix->sizeHint());
label->setBuddy(mSuffix);
- connect(mSuffix, TQT_SIGNAL(focusLost()), TQT_SLOT(slotTextLostFocus()));
+ connect(mSuffix, TQ_SIGNAL(focusLost()), TQ_SLOT(slotTextLostFocus()));
TQWhatsThis::add(mSuffix,
i18n("Enter text to appear after the person's name in the alarm message, "
"including any necessary leading spaces."));
- TQGroupBox* group = new TQGroupBox(1, Qt::Horizontal, i18n("Select Birthdays"), topWidget);
+ TQGroupBox* group = new TQGroupBox(1, TQt::Horizontal, i18n("Select Birthdays"), topWidget);
topLayout->addWidget(group);
mAddresseeList = new BListView(group);
mAddresseeList->setMultiSelection(true);
@@ -114,7 +114,7 @@ BirthdayDlg::BirthdayDlg(TQWidget* parent)
mAddresseeList->setFullWidth(true);
mAddresseeList->addColumn(i18n("Name"));
mAddresseeList->addColumn(i18n("Birthday"));
- connect(mAddresseeList, TQT_SIGNAL(selectionChanged()), TQT_SLOT(slotSelectionChanged()));
+ connect(mAddresseeList, TQ_SIGNAL(selectionChanged()), TQ_SLOT(slotSelectionChanged()));
TQWhatsThis::add(mAddresseeList,
i18n("Select birthdays to set alarms for.\n"
"This list shows all birthdays in KAddressBook except those for which alarms already exist.\n\n"
@@ -198,7 +198,7 @@ void BirthdayDlg::loadAddressBook()
#if KDE_IS_VERSION(3,1,90)
mAddressBook = TDEABC::StdAddressBook::self(true);
if (mAddressBook)
- connect(mAddressBook, TQT_SIGNAL(addressBookChanged(AddressBook*)), TQT_SLOT(updateSelectionList()));
+ connect(mAddressBook, TQ_SIGNAL(addressBookChanged(AddressBook*)), TQ_SLOT(updateSelectionList()));
#else
mAddressBook = TDEABC::StdAddressBook::self();
if (mAddressBook)
@@ -421,7 +421,7 @@ BListView::BListView(TQWidget* parent, const char* name)
: TDEListView(parent, name)
{
TDEAccel* accel = new TDEAccel(this);
- accel->insert(TDEStdAccel::SelectAll, TQT_TQOBJECT(this), TQT_SLOT(slotSelectAll()));
- accel->insert(TDEStdAccel::Deselect, TQT_TQOBJECT(this), TQT_SLOT(slotDeselect()));
+ accel->insert(TDEStdAccel::SelectAll, this, TQ_SLOT(slotSelectAll()));
+ accel->insert(TDEStdAccel::Deselect, this, TQ_SLOT(slotDeselect()));
accel->readSettings();
}
diff --git a/kalarm/birthdaydlg.h b/kalarm/birthdaydlg.h
index ee551146..aa7c66ae 100644
--- a/kalarm/birthdaydlg.h
+++ b/kalarm/birthdaydlg.h
@@ -42,7 +42,7 @@ class BListView;
class BirthdayDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
BirthdayDlg(TQWidget* parent = 0);
@@ -79,7 +79,7 @@ class BirthdayDlg : public KDialogBase
class BLineEdit : public TQLineEdit
{
- Q_OBJECT
+ TQ_OBJECT
public:
BLineEdit(TQWidget* parent = 0, const char* name = 0)
@@ -94,7 +94,7 @@ class BLineEdit : public TQLineEdit
class BListView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
BListView(TQWidget* parent = 0, const char* name = 0);
diff --git a/kalarm/daemon.cpp b/kalarm/daemon.cpp
index 842514d9..fd099632 100644
--- a/kalarm/daemon.cpp
+++ b/kalarm/daemon.cpp
@@ -95,7 +95,7 @@ void Daemon::initialise()
{
if (!mInstance)
mInstance = new Daemon();
- connect(AlarmCalendar::activeCalendar(), TQT_SIGNAL(calendarSaved(AlarmCalendar*)), mInstance, TQT_SLOT(slotCalendarSaved(AlarmCalendar*)));
+ connect(AlarmCalendar::activeCalendar(), TQ_SIGNAL(calendarSaved(AlarmCalendar*)), mInstance, TQ_SLOT(slotCalendarSaved(AlarmCalendar*)));
}
/******************************************************************************
@@ -111,10 +111,10 @@ void Daemon::createDcopHandler()
mRunning = isRunning(false);
mStatusTimerInterval = Preferences::daemonTrayCheckInterval();
- Preferences::connect(TQT_SIGNAL(preferencesChanged()), mInstance, TQT_SLOT(slotPreferencesChanged()));
+ Preferences::connect(TQ_SIGNAL(preferencesChanged()), mInstance, TQ_SLOT(slotPreferencesChanged()));
mStatusTimer = new TQTimer(mInstance);
- connect(mStatusTimer, TQT_SIGNAL(timeout()), mInstance, TQT_SLOT(timerCheckIfRunning()));
+ connect(mStatusTimer, TQ_SIGNAL(timeout()), mInstance, TQ_SLOT(timerCheckIfRunning()));
mStatusTimer->start(mStatusTimerInterval * 1000); // check regularly if daemon is running
}
@@ -145,7 +145,7 @@ bool Daemon::start()
kdDebug(5950) << "Daemon::start(): Alarm daemon started" << endl;
mStartTimeout = 5000/startCheckInterval + 1; // check daemon status for 5 seconds before giving up
mStartTimer = new TQTimer(mInstance);
- connect(mStartTimer, TQT_SIGNAL(timeout()), mInstance, TQT_SLOT(checkIfStarted()));
+ connect(mStartTimer, TQ_SIGNAL(timeout()), mInstance, TQ_SLOT(checkIfStarted()));
mStartTimer->start(startCheckInterval);
mInstance->checkIfStarted();
return true;
@@ -201,7 +201,7 @@ bool Daemon::registerWith(bool reregister)
return false;
}
mRegisterTimer = new TQTimer(mInstance);
- connect(mRegisterTimer, TQT_SIGNAL(timeout()), mInstance, TQT_SLOT(registerTimerExpired()));
+ connect(mRegisterTimer, TQ_SIGNAL(timeout()), mInstance, TQ_SLOT(registerTimerExpired()));
mRegisterTimer->start(REGISTER_TIMEOUT * 1000); // wait for the reply
return true;
}
@@ -327,7 +327,7 @@ void Daemon::updateRegisteredStatus(bool timeout)
// The daemon has newly been detected as registered with DCOP.
// Wait for a short time to ensure that it is ready for DCOP calls.
mStatus = RUNNING;
- TQTimer::singleShot(startCheckInterval, mInstance, TQT_SLOT(slotStarted()));
+ TQTimer::singleShot(startCheckInterval, mInstance, TQ_SLOT(slotStarted()));
break;
case RUNNING:
if (timeout)
@@ -569,8 +569,8 @@ void Daemon::slotPreferencesChanged()
AlarmEnableAction* Daemon::createAlarmEnableAction(TDEActionCollection* actions, const char* name)
{
AlarmEnableAction* a = new AlarmEnableAction(0, actions, name);
- connect(a, TQT_SIGNAL(userClicked(bool)), mInstance, TQT_SLOT(setAlarmsEnabled(bool)));
- connect(mInstance, TQT_SIGNAL(daemonRunning(bool)), a, TQT_SLOT(setCheckedActual(bool)));
+ connect(a, TQ_SIGNAL(userClicked(bool)), mInstance, TQ_SLOT(setAlarmsEnabled(bool)));
+ connect(mInstance, TQ_SIGNAL(daemonRunning(bool)), a, TQ_SLOT(setCheckedActual(bool)));
return a;
}
diff --git a/kalarm/daemon.h b/kalarm/daemon.h
index 4feba1bb..b7441038 100644
--- a/kalarm/daemon.h
+++ b/kalarm/daemon.h
@@ -36,7 +36,7 @@ class NotificationHandler;
class Daemon : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
static void initialise();
@@ -119,7 +119,7 @@ class Daemon : public TQObject
class AlarmEnableAction : public TDEToggleAction
{
- Q_OBJECT
+ TQ_OBJECT
public:
AlarmEnableAction(int accel, TQObject* parent, const char* name = 0);
diff --git a/kalarm/dcophandler.cpp b/kalarm/dcophandler.cpp
index 5fa716e1..45eddac6 100644
--- a/kalarm/dcophandler.cpp
+++ b/kalarm/dcophandler.cpp
@@ -323,7 +323,7 @@ DateTime DcopHandler::convertStartDateTime(const TQString& startDateTime)
if (startDateTime.length() > 10)
{
// Both a date and a time are specified
- start = TQDateTime::fromString(startDateTime, Qt::ISODate);
+ start = TQDateTime::fromString(startDateTime, TQt::ISODate);
}
else
{
@@ -337,12 +337,12 @@ DateTime DcopHandler::convertStartDateTime(const TQString& startDateTime)
if (t.isEmpty())
{
// It's a date
- start = TQDate::fromString(startDateTime, Qt::ISODate);
+ start = TQDate::fromString(startDateTime, TQt::ISODate);
}
else
{
// It's a time, so use today as the date
- start.set(TQDate::currentDate(), TQTime::fromString(t, Qt::ISODate));
+ start.set(TQDate::currentDate(), TQTime::fromString(t, TQt::ISODate));
}
}
if (!start.isValid())
@@ -424,7 +424,7 @@ bool DcopHandler::convertRecurrence(DateTime& start, KARecurrence& recurrence, c
kdError(5950) << "DCOP call: alarm is date-only, but recurrence end is date/time" << endl;
return false;
}
- end.setDate(TQDate::fromString(endDateTime, Qt::ISODate));
+ end.setDate(TQDate::fromString(endDateTime, TQt::ISODate));
}
else
{
@@ -433,7 +433,7 @@ bool DcopHandler::convertRecurrence(DateTime& start, KARecurrence& recurrence, c
kdError(5950) << "DCOP call: alarm is timed, but recurrence end is date-only" << endl;
return false;
}
- end = TQDateTime::fromString(endDateTime, Qt::ISODate);
+ end = TQDateTime::fromString(endDateTime, TQt::ISODate);
}
if (!end.isValid())
{
diff --git a/kalarm/deferdlg.cpp b/kalarm/deferdlg.cpp
index c5fab880..7a37f3f9 100644
--- a/kalarm/deferdlg.cpp
+++ b/kalarm/deferdlg.cpp
@@ -53,7 +53,7 @@ DeferAlarmDlg::DeferAlarmDlg(const TQString& caption, const DateTime& initialDT,
mTimeWidget = new AlarmTimeWidget(AlarmTimeWidget::DEFER_TIME, page, "timeGroup");
mTimeWidget->setDateTime(initialDT);
mTimeWidget->setMinDateTimeIsCurrent();
- connect(mTimeWidget, TQT_SIGNAL(pastMax()), TQT_SLOT(slotPastLimit()));
+ connect(mTimeWidget, TQ_SIGNAL(pastMax()), TQ_SLOT(slotPastLimit()));
layout->addWidget(mTimeWidget);
layout->addSpacing(spacingHint());
diff --git a/kalarm/deferdlg.h b/kalarm/deferdlg.h
index 37f8b144..70fb1e6e 100644
--- a/kalarm/deferdlg.h
+++ b/kalarm/deferdlg.h
@@ -29,7 +29,7 @@ class AlarmTimeWidget;
class DeferAlarmDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
DeferAlarmDlg(const TQString& caption, const DateTime& initialDT,
diff --git a/kalarm/editdlg.cpp b/kalarm/editdlg.cpp
index ff35e918..a95b35db 100644
--- a/kalarm/editdlg.cpp
+++ b/kalarm/editdlg.cpp
@@ -211,7 +211,7 @@ EditAlarmDlg::EditAlarmDlg(bool Template, const TQString& caption, TQWidget* par
mTabs->addTab(mainPageBox, i18n("&Alarm"));
mMainPageIndex = 0;
PageFrame* mainPage = new PageFrame(mainPageBox);
- connect(mainPage, TQT_SIGNAL(shown()), TQT_SLOT(slotShowMainPage()));
+ connect(mainPage, TQ_SIGNAL(shown()), TQ_SLOT(slotShowMainPage()));
TQVBoxLayout* topLayout = new TQVBoxLayout(mainPage, 0, spacingHint());
// Recurrence tab
@@ -220,15 +220,15 @@ EditAlarmDlg::EditAlarmDlg(bool Template, const TQString& caption, TQWidget* par
mTabs->addTab(recurTab, TQString());
mRecurPageIndex = 1;
mRecurrenceEdit = new RecurrenceEdit(readOnly, recurTab, "recurPage");
- connect(mRecurrenceEdit, TQT_SIGNAL(shown()), TQT_SLOT(slotShowRecurrenceEdit()));
- connect(mRecurrenceEdit, TQT_SIGNAL(typeChanged(int)), TQT_SLOT(slotRecurTypeChange(int)));
- connect(mRecurrenceEdit, TQT_SIGNAL(frequencyChanged()), TQT_SLOT(slotRecurFrequencyChange()));
- connect(mRecurrenceEdit, TQT_SIGNAL(repeatNeedsInitialisation()), TQT_SLOT(slotSetSubRepetition()));
+ connect(mRecurrenceEdit, TQ_SIGNAL(shown()), TQ_SLOT(slotShowRecurrenceEdit()));
+ connect(mRecurrenceEdit, TQ_SIGNAL(typeChanged(int)), TQ_SLOT(slotRecurTypeChange(int)));
+ connect(mRecurrenceEdit, TQ_SIGNAL(frequencyChanged()), TQ_SLOT(slotRecurFrequencyChange()));
+ connect(mRecurrenceEdit, TQ_SIGNAL(repeatNeedsInitialisation()), TQ_SLOT(slotSetSubRepetition()));
// Alarm action
mActionGroup = new ButtonGroup(i18n("Action"), mainPage, "actionGroup");
- connect(mActionGroup, TQT_SIGNAL(buttonSet(int)), TQT_SLOT(slotAlarmTypeChanged(int)));
+ connect(mActionGroup, TQ_SIGNAL(buttonSet(int)), TQ_SLOT(slotAlarmTypeChanged(int)));
topLayout->addWidget(mActionGroup, 1);
TQBoxLayout* layout = new TQVBoxLayout(mActionGroup, marginHint(), spacingHint());
layout->addSpacing(fontMetrics().lineSpacing()/2);
@@ -273,7 +273,7 @@ EditAlarmDlg::EditAlarmDlg(bool Template, const TQString& caption, TQWidget* par
layout->addWidget(mEmailFrame);
// Deferred date/time: visible only for a deferred recurring event.
- mDeferGroup = new TQGroupBox(1, Qt::Vertical, i18n("Deferred Alarm"), mainPage, "deferGroup");
+ mDeferGroup = new TQGroupBox(1, TQt::Vertical, i18n("Deferred Alarm"), mainPage, "deferGroup");
topLayout->addWidget(mDeferGroup);
TQLabel* label = new TQLabel(i18n("Deferred to:"), mDeferGroup);
label->setFixedSize(label->sizeHint());
@@ -281,7 +281,7 @@ EditAlarmDlg::EditAlarmDlg(bool Template, const TQString& caption, TQWidget* par
mDeferChangeButton = new TQPushButton(i18n("C&hange..."), mDeferGroup);
mDeferChangeButton->setFixedSize(mDeferChangeButton->sizeHint());
- connect(mDeferChangeButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotEditDeferral()));
+ connect(mDeferChangeButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotEditDeferral()));
TQWhatsThis::add(mDeferChangeButton, i18n("Change the alarm's deferred time, or cancel the deferral"));
mDeferGroup->addSpace(0);
@@ -291,7 +291,7 @@ EditAlarmDlg::EditAlarmDlg(bool Template, const TQString& caption, TQWidget* par
if (mTemplate)
{
mTemplateTimeGroup = new ButtonGroup(i18n("Time"), mainPage, "templateGroup");
- connect(mTemplateTimeGroup, TQT_SIGNAL(buttonSet(int)), TQT_SLOT(slotTemplateTimeType(int)));
+ connect(mTemplateTimeGroup, TQ_SIGNAL(buttonSet(int)), TQ_SLOT(slotTemplateTimeType(int)));
layout->addWidget(mTemplateTimeGroup);
grid = new TQGridLayout(mTemplateTimeGroup, 2, 2, marginHint(), spacingHint());
grid->addRowSpacing(0, fontMetrics().lineSpacing()/2);
@@ -355,7 +355,7 @@ EditAlarmDlg::EditAlarmDlg(bool Template, const TQString& caption, TQWidget* par
else
{
mTimeWidget = new AlarmTimeWidget(i18n("Time"), AlarmTimeWidget::AT_TIME, mainPage, "timeGroup");
- connect(mTimeWidget, TQT_SIGNAL(anyTimeToggled(bool)), TQT_SLOT(slotAnyTimeToggled(bool)));
+ connect(mTimeWidget, TQ_SIGNAL(anyTimeToggled(bool)), TQ_SLOT(slotAnyTimeToggled(bool)));
topLayout->addWidget(mTimeWidget);
}
@@ -489,7 +489,7 @@ void EditAlarmDlg::initCommand(TQWidget* parent)
mCmdTypeScript = new CheckBox(i18n_p_EnterScript(), mCommandFrame);
mCmdTypeScript->setFixedSize(mCmdTypeScript->sizeHint());
- connect(mCmdTypeScript, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotCmdScriptToggled(bool)));
+ connect(mCmdTypeScript, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotCmdScriptToggled(bool)));
TQWhatsThis::add(mCmdTypeScript, i18n("Check to enter the contents of a script instead of a shell command line"));
frameLayout->addWidget(mCmdTypeScript, 0, TQt::AlignAuto);
@@ -595,7 +595,7 @@ void EditAlarmDlg::initEmail(TQWidget* parent)
mEmailAddressButton = new TQPushButton(mEmailFrame);
mEmailAddressButton->setPixmap(SmallIcon("contents"));
mEmailAddressButton->setFixedSize(mEmailAddressButton->sizeHint());
- connect(mEmailAddressButton, TQT_SIGNAL(clicked()), TQT_SLOT(openAddressBook()));
+ connect(mEmailAddressButton, TQ_SIGNAL(clicked()), TQ_SLOT(openAddressBook()));
TQToolTip::add(mEmailAddressButton, i18n("Open address book"));
TQWhatsThis::add(mEmailAddressButton, i18n("Select email addresses from your address book."));
grid->addWidget(mEmailAddressButton, 1, 2);
@@ -635,12 +635,12 @@ list->setGeometry(rect.left() - 50, rect.top(), rect.width(), rect.height());
grid->setColStretch(1, 1);
mEmailAddAttachButton = new TQPushButton(i18n("Add..."), mEmailFrame);
- connect(mEmailAddAttachButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotAddAttachment()));
+ connect(mEmailAddAttachButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotAddAttachment()));
TQWhatsThis::add(mEmailAddAttachButton, i18n("Add an attachment to the email."));
grid->addWidget(mEmailAddAttachButton, 0, 2);
mEmailRemoveButton = new TQPushButton(i18n("Remo&ve"), mEmailFrame);
- connect(mEmailRemoveButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotRemoveAttachment()));
+ connect(mEmailRemoveButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotRemoveAttachment()));
TQWhatsThis::add(mEmailRemoveButton, i18n("Remove the highlighted attachment from the email."));
grid->addWidget(mEmailRemoveButton, 1, 2);
diff --git a/kalarm/editdlg.h b/kalarm/editdlg.h
index 93a3de07..f6e2b16a 100644
--- a/kalarm/editdlg.h
+++ b/kalarm/editdlg.h
@@ -57,7 +57,7 @@ class PickAlarmFileRadio;
class EditAlarmDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
enum MessageType { MESSAGE, FILE };
diff --git a/kalarm/editdlgprivate.h b/kalarm/editdlgprivate.h
index 8851b58b..f44824fb 100644
--- a/kalarm/editdlgprivate.h
+++ b/kalarm/editdlgprivate.h
@@ -26,7 +26,7 @@
class PageFrame : public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
public:
PageFrame(TQWidget* parent = 0, const char* name = 0) : TQFrame(parent, name) { }
@@ -38,7 +38,7 @@ class PageFrame : public TQFrame
class TextEdit : public KTextEdit
{
- Q_OBJECT
+ TQ_OBJECT
public:
TextEdit(TQWidget* parent, const char* name = 0);
diff --git a/kalarm/emailidcombo.cpp b/kalarm/emailidcombo.cpp
index 99f754c8..88cf3900 100644
--- a/kalarm/emailidcombo.cpp
+++ b/kalarm/emailidcombo.cpp
@@ -31,7 +31,7 @@ void EmailIdCombo::mousePressEvent(TQMouseEvent* e)
if (mReadOnly)
{
// Swallow up the event if it's the left button
- if (e->button() == Qt::LeftButton)
+ if (e->button() == TQt::LeftButton)
return;
}
KPIM::IdentityCombo::mousePressEvent(e);
diff --git a/kalarm/emailidcombo.h b/kalarm/emailidcombo.h
index a2cbabc2..630212d5 100644
--- a/kalarm/emailidcombo.h
+++ b/kalarm/emailidcombo.h
@@ -27,7 +27,7 @@
class EmailIdCombo : public KPIM::IdentityCombo
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit EmailIdCombo(KPIM::IdentityManager*, TQWidget* parent = 0, const char* name = 0);
diff --git a/kalarm/eventlistviewbase.cpp b/kalarm/eventlistviewbase.cpp
index 14a7afd6..2425a11b 100644
--- a/kalarm/eventlistviewbase.cpp
+++ b/kalarm/eventlistviewbase.cpp
@@ -199,7 +199,7 @@ void EventListViewBase::slotFind()
if (!mFind)
{
mFind = new Find(this);
- connect(mFind, TQT_SIGNAL(active(bool)), TQT_SIGNAL(findActive(bool)));
+ connect(mFind, TQ_SIGNAL(active(bool)), TQ_SIGNAL(findActive(bool)));
}
mFind->display();
}
diff --git a/kalarm/eventlistviewbase.h b/kalarm/eventlistviewbase.h
index 9f043f77..18d1a771 100644
--- a/kalarm/eventlistviewbase.h
+++ b/kalarm/eventlistviewbase.h
@@ -35,7 +35,7 @@ class Find;
class EventListViewBase : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
typedef TQValueList<EventListViewBase*> InstanceList;
diff --git a/kalarm/find.cpp b/kalarm/find.cpp
index 8e35cbe9..9e30388e 100644
--- a/kalarm/find.cpp
+++ b/kalarm/find.cpp
@@ -113,7 +113,7 @@ void Find::display()
"This option is only available if expired alarms are currently being displayed."));
grid->addWidget(mExpired, 1, 2, TQt::AlignAuto);
- mActiveExpiredSep = new KSeparator(Qt::Horizontal, kalarmWidgets);
+ mActiveExpiredSep = new KSeparator(TQt::Horizontal, kalarmWidgets);
grid->addMultiCellWidget(mActiveExpiredSep, 2, 2, 0, 2);
// Alarm actions
@@ -146,7 +146,7 @@ void Find::display()
mEmailType->setChecked(mOptions & FIND_EMAIL);
#ifndef MODAL_FIND
- connect(mDialog, TQT_SIGNAL(okClicked()), this, TQT_SLOT(slotFind()));
+ connect(mDialog, TQ_SIGNAL(okClicked()), this, TQ_SLOT(slotFind()));
#endif
}
@@ -245,7 +245,7 @@ void Find::slotFind()
#else
mFind = new KFind(mLastPattern, options, mListView, mDialog);
#endif
- connect(mFind, TQT_SIGNAL(destroyed()), TQT_SLOT(slotKFindDestroyed()));
+ connect(mFind, TQ_SIGNAL(destroyed()), TQ_SLOT(slotKFindDestroyed()));
mFind->closeFindNextDialog(); // prevent 'Find Next' dialog appearing
}
diff --git a/kalarm/find.h b/kalarm/find.h
index 493f10cc..dc838f3b 100644
--- a/kalarm/find.h
+++ b/kalarm/find.h
@@ -35,7 +35,7 @@ class EventListViewItemBase;
class Find : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit Find(EventListViewBase* parent);
diff --git a/kalarm/fontcolour.cpp b/kalarm/fontcolour.cpp
index 74feffb6..64a8cdce 100644
--- a/kalarm/fontcolour.cpp
+++ b/kalarm/fontcolour.cpp
@@ -68,7 +68,7 @@ FontColourChooser::FontColourChooser(TQWidget *parent, const char *name,
TQLabel* label = new TQLabel(i18n("&Foreground color:"), box);
box->setStretchFactor(new TQWidget(box), 0);
mFgColourButton = new ColourCombo(box);
- connect(mFgColourButton, TQT_SIGNAL(activated(const TQString&)), TQT_SLOT(setSampleColour()));
+ connect(mFgColourButton, TQ_SIGNAL(activated(const TQString&)), TQ_SLOT(setSampleColour()));
label->setBuddy(mFgColourButton);
TQWhatsThis::add(box, i18n("Select the alarm message foreground color"));
}
@@ -80,7 +80,7 @@ FontColourChooser::FontColourChooser(TQWidget *parent, const char *name,
TQLabel* label = new TQLabel(i18n("&Background color:"), box);
box->setStretchFactor(new TQWidget(box), 0);
mBgColourButton = new ColourCombo(box);
- connect(mBgColourButton, TQT_SIGNAL(activated(const TQString&)), TQT_SLOT(setSampleColour()));
+ connect(mBgColourButton, TQ_SIGNAL(activated(const TQString&)), TQ_SLOT(setSampleColour()));
label->setBuddy(mBgColourButton);
TQWhatsThis::add(box, i18n("Select the alarm message background color"));
hlayout->addStretch();
@@ -90,13 +90,13 @@ FontColourChooser::FontColourChooser(TQWidget *parent, const char *name,
TQHBoxLayout* layout = new TQHBoxLayout(topLayout);
TQPushButton* button = new TQPushButton(i18n("Add Co&lor..."), page);
button->setFixedSize(button->sizeHint());
- connect(button, TQT_SIGNAL(clicked()), TQT_SLOT(slotAddColour()));
+ connect(button, TQ_SIGNAL(clicked()), TQ_SLOT(slotAddColour()));
TQWhatsThis::add(button, i18n("Choose a new color to add to the color selection list."));
layout->addWidget(button);
mRemoveColourButton = new TQPushButton(i18n("&Remove Color"), page);
mRemoveColourButton->setFixedSize(mRemoveColourButton->sizeHint());
- connect(mRemoveColourButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotRemoveColour()));
+ connect(mRemoveColourButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotRemoveColour()));
TQWhatsThis::add(mRemoveColourButton,
i18n("Remove the color currently shown in the background color chooser, from the color selection list."));
layout->addWidget(mRemoveColourButton);
@@ -107,7 +107,7 @@ FontColourChooser::FontColourChooser(TQWidget *parent, const char *name,
TQHBoxLayout* layout = new TQHBoxLayout(topLayout);
mDefaultFont = new CheckBox(i18n("Use &default font"), page);
mDefaultFont->setMinimumSize(mDefaultFont->sizeHint());
- connect(mDefaultFont, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotDefaultFontToggled(bool)));
+ connect(mDefaultFont, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotDefaultFontToggled(bool)));
TQWhatsThis::add(mDefaultFont,
i18n("Check to use the default font current at the time the alarm is displayed."));
layout->addWidget(mDefaultFont);
diff --git a/kalarm/fontcolour.h b/kalarm/fontcolour.h
index e550831e..c70bcc56 100644
--- a/kalarm/fontcolour.h
+++ b/kalarm/fontcolour.h
@@ -34,7 +34,7 @@ class CheckBox;
class FontColourChooser : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit FontColourChooser(TQWidget* parent = 0, const char* name = 0,
diff --git a/kalarm/fontcolourbutton.cpp b/kalarm/fontcolourbutton.cpp
index 5321cdc9..a291a376 100644
--- a/kalarm/fontcolourbutton.cpp
+++ b/kalarm/fontcolourbutton.cpp
@@ -47,7 +47,7 @@ FontColourButton::FontColourButton(TQWidget* parent, const char* name)
mButton = new PushButton(i18n("Font && Co&lor..."), this);
mButton->setFixedSize(mButton->sizeHint());
- connect(mButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotButtonPressed()));
+ connect(mButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotButtonPressed()));
TQWhatsThis::add(mButton,
i18n("Choose the font, and foreground and background color, for the alarm message."));
layout->addWidget(mButton);
diff --git a/kalarm/fontcolourbutton.h b/kalarm/fontcolourbutton.h
index 6126ad64..efe799d4 100644
--- a/kalarm/fontcolourbutton.h
+++ b/kalarm/fontcolourbutton.h
@@ -33,7 +33,7 @@ class PushButton;
class FontColourButton : public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
public:
FontColourButton(TQWidget* parent = 0, const char* name = 0);
@@ -67,7 +67,7 @@ class FontColourButton : public TQFrame
// Font and colour selection dialog displayed by the push button
class FontColourDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
FontColourDlg(const TQColor& bg, const TQColor& fg, const TQFont&, bool defaultFont,
diff --git a/kalarm/functions.cpp b/kalarm/functions.cpp
index 9ae28740..455c27a2 100644
--- a/kalarm/functions.cpp
+++ b/kalarm/functions.cpp
@@ -747,7 +747,7 @@ bool readConfigWindowSize(const char* window, TQSize& result)
{
TDEConfig* config = TDEGlobal::config();
config->setGroup(TQString::fromLatin1(window));
- TQWidget* desktop = TQT_TQWIDGET(TDEApplication::desktop());
+ TQWidget* desktop = TDEApplication::desktop();
TQSize s = TQSize(config->readNumEntry(TQString::fromLatin1("Width %1").arg(desktop->width()), 0),
config->readNumEntry(TQString::fromLatin1("Height %1").arg(desktop->height()), 0));
if (s.isEmpty())
@@ -764,7 +764,7 @@ void writeConfigWindowSize(const char* window, const TQSize& size)
{
TDEConfig* config = TDEGlobal::config();
config->setGroup(TQString::fromLatin1(window));
- TQWidget* desktop = TQT_TQWIDGET(TDEApplication::desktop());
+ TQWidget* desktop = TDEApplication::desktop();
config->writeEntry(TQString::fromLatin1("Width %1").arg(desktop->width()), size.width());
config->writeEntry(TQString::fromLatin1("Height %1").arg(desktop->height()), size.height());
config->sync();
diff --git a/kalarm/kalarm.desktop b/kalarm/kalarm.desktop
index 65557336..f60c61ba 100644
--- a/kalarm/kalarm.desktop
+++ b/kalarm/kalarm.desktop
@@ -1,72 +1,12 @@
[Desktop Entry]
Name=KAlarm
-Name[af]=K-alarm
-Name[cy]=KLarwm
-Name[eo]=Alarmilo
-Name[hi]=के-अलार्म
-Name[ko]=TDE 알람
-Name[mk]=КАларм
-Name[ne]=केडीई संसूचक
-Name[nso]=KAlamo
-Name[pl]=Alarm
-Name[sv]=Kalarm
-Name[ta]=Kஅலாரம்
-Name[th]=เตือนการนัดหมาย - K
-Name[ven]=Alamu ya K
-Name[zh_TW]=KAlarm 鬧鐘
+
+GenericName=Personal Alarm Scheduler
+
Type=Application
Exec=kalarm -caption "%c" %i
Icon=kalarm
X-DocPath=kalarm/index.html
-GenericName=Personal Alarm Scheduler
-GenericName[af]=Persoonlike alarm skeduleerder
-GenericName[bg]=Аларма
-GenericName[bs]=Lični alarm
-GenericName[ca]=Planificador d'alarmes personals
-GenericName[cs]=Osobní plánovač alarmů
-GenericName[cy]=Trefnlennydd Larwm Personol
-GenericName[da]=Personlig skemalægning af alarm
-GenericName[de]=Persönliche Termin-Erinnerung
-GenericName[el]=Προσωπικός προγραμματιστής ειδοποιήσεων
-GenericName[eo]=Persona alarmplanilo
-GenericName[es]=Planificador de alarmas personales
-GenericName[et]=Meeldetuletuste ajastaja
-GenericName[eu]=Alarma pertsonalen programatzailea
-GenericName[fa]=زمان‌بند هشدار شخصی
-GenericName[fi]=Henkilökohtainen hälytysajastin
-GenericName[fr]=Planificateur d'alarme personnel
-GenericName[fy]=Persoanlike alarmplanner
-GenericName[gl]=Progamador Persoal de Alarmas
-GenericName[he]=מנהל זמן אישי
-GenericName[hi]=निजी अलार्म शेड्यूलर
-GenericName[hu]=Emlékeztetőkezelő
-GenericName[is]=Áminningakerfi
-GenericName[it]=Programmatore degli avvisi personali
-GenericName[ja]=個人アラームスケジューラ
-GenericName[kk]=Дербес ескертулер жоспарлағышы
-GenericName[km]=កម្មវិធី​កំណត់​ម៉ោង​រោទ៍​ផ្ទាល់​ខ្លួន
-GenericName[lt]=Asmeninių žinučių-priminimų planuoklis
-GenericName[mk]=Закажување лични аларми
-GenericName[ms]=Penjadual Penggera Peribadi
-GenericName[nb]=Personlig varslingsplanlegger
-GenericName[nds]=Persöönlich Anstöötgever
-GenericName[ne]=व्यक्तिगत संसूचक अनुसूचक
-GenericName[nl]=Persoonlijke alarmplanner
-GenericName[nn]=Planleggar for alarmar/påminningsmeldingar
-GenericName[pl]=Program przypominający o zdarzeniach
-GenericName[pt]=Gestor de Alarmes Pessoal
-GenericName[pt_BR]=Agendador de Alarme Pessoal
-GenericName[ru]=Напоминания
-GenericName[sk]=Osobný plánovač alarmov
-GenericName[sl]=Razporejevalnik osebnih alarmov
-GenericName[sr]=Лични планер аларма
-GenericName[sr@Latn]=Lični planer alarma
-GenericName[sv]=Personlig alarmschemaläggning
-GenericName[tg]=Идоракунии хотиррасониҳои шахсӣ
-GenericName[tr]=Kişisel Alarm
-GenericName[uk]=Персональний планувальник нагадувань
-GenericName[zh_CN]=个人日程提醒
-GenericName[zh_TW]=個人鬧鐘排程程式
Terminal=false
X-DCOP-ServiceType=Unique
X-TDE-StartupNotify=true
diff --git a/kalarm/kalarm.tray.desktop b/kalarm/kalarm.tray.desktop
index 19bf5a81..62c29353 100644
--- a/kalarm/kalarm.tray.desktop
+++ b/kalarm/kalarm.tray.desktop
@@ -1,72 +1,12 @@
[Desktop Entry]
Name=KAlarm
-Name[af]=K-alarm
-Name[cy]=KLarwm
-Name[eo]=Alarmilo
-Name[hi]=के-अलार्म
-Name[ko]=TDE 알람
-Name[mk]=КАларм
-Name[ne]=केडीई संसूचक
-Name[nso]=KAlamo
-Name[pl]=Alarm
-Name[sv]=Kalarm
-Name[ta]=Kஅலாரம்
-Name[th]=เตือนการนัดหมาย - K
-Name[ven]=Alamu ya K
-Name[zh_TW]=KAlarm 鬧鐘
+
+Comment=Personal Alarm Scheduler: start as system tray icon
+
Exec=kalarm --tray
Icon=kalarm
Type=Application
X-DocPath=kalarm/index.html
-Comment=Personal Alarm Scheduler: start as system tray icon
-Comment[af]=Persoonlike alarm skeduleerder: begin as stelsel laai ikoon
-Comment[bg]=Аларма: стартиране като икона в системния панел
-Comment[bs]=Lični alarm: pokreni kao ikonu u panelu
-Comment[ca]=Planificador d'alarma personal; s'inicia com a una icona a la safata del sistema
-Comment[cs]=Plánovač alarmů a připomenutí: spustit v systémové liště
-Comment[cy]=Trefnlennydd Larwm Personol: cychwynnwch fel eicon yn y cafn cysawd
-Comment[da]=Skemalægger personlig alarm: start som statusikon.
-Comment[de]=Erinnerungsfunktion im Systemabschnitt der Kontrollleiste
-Comment[el]=Προσωπικός προγραμματιστής ειδοποιήσεων: εκκίνηση σαν εικονίδιο στο πλαίσιο συστήματος
-Comment[es]=Programador de alarma personal: comenzar como icono de la bandeja del sistema
-Comment[et]=Häirete ja meeldetuletuste ajakava: käivitamine süsteemse doki ikoonina
-Comment[eu]=Alarma pertsonalen programatzailea: abiatu sistemaren bandejako ikono bezala
-Comment[fa]=زمان‌بند هشدار شخصی: آغاز به عنوان شمایل سینی سیستم
-Comment[fi]=Henkilökohtainen hälytysajastin: käynnistä paneelikuvake
-Comment[fr]=Planificateur d'alarme personnel : démarre dans la boîte à miniatures
-Comment[fy]=Persoanlike alarmplanner: begjinne yn it systeemfak
-Comment[gl]=Programador persoal de alarmas: iniciar como icona na bandexa do sistema
-Comment[he]=מתזמן הודעות תזכורת: הפעלה בתור סמל במגש המערכת
-Comment[hi]=निजी अलार्म शेड्यूलरः तंत्र तश्तरी प्रतीक की तरह प्रारंभ हों
-Comment[hu]=Az emlékeztető üzenetek megjelenítőprogramja: indítás a paneltálcában
-Comment[is]=Áminningakerfi: ræsir sem táknmynd á spjaldinu
-Comment[it]=Programmatore personale degli avvisi: all'avvio si mette nel vassoio di sistema
-Comment[ja]=個人アラームスケジューラ: システムトレイアイコンで起動
-Comment[kk]=Дербес ескертулер жоспарлағышы: жүйелік сөреде орналасады
-Comment[km]=កម្មវិធី​កំណត់​ម៉ោង​រោទ៍​ផ្ទាល់​ខ្លួន ៖ ចាប់ផ្ដើម​ជា​រូបតំណាង​ក្នុង​ថាស​ប្រព័ន្ធ
-Comment[lt]=Žinučių-priminimų planuoklis: paleisti kaip sisteminio dėklo ženkliuką
-Comment[mk]=Закажување лични аларми: стартувај во сис. лента
-Comment[ms]=Penjadual Penggera Peribadi: mulakan sebagai ikon dulang sistem
-Comment[nb]=Tidsplanlegger for alarm- og påminnelsesbeskjeder: start som ikon i systemkurven
-Comment[nds]=Anstöötgever binnen den Systeemafsnitt starten
-Comment[ne]=व्यक्तिगत संसूचक अनुसूचक: प्रणाली ट्रे प्रतिमा अनुरुप सुरु गर्नुहोस्
-Comment[nl]=Persoonlijke alarmplanner: opstarten in systeemvak
-Comment[nn]=Personleg alarmplanleggjar. Start som ikon i systemtrauet
-Comment[pl]=Program przypominający o zdarzeniach: startuje w tacce systemowej
-Comment[pt]=Escalonador de Alarmes Pessoal: iniciar como ícone da bandeja
-Comment[pt_BR]=Agendador de Alarme Pessoal: iniciar como um ícone na bandeja do sistema
-Comment[ru]=Персональный будильник (запускается в виде значка в панели задач)
-Comment[sk]=Osobný plánovač alarmov: spustiť v systémovej lište
-Comment[sl]=Razporejevalnik osebnih alarmov: zaženi kot ikono sistemske vrstice
-Comment[sr]=Лични планер аларма: покреће се као икона у системској касети
-Comment[sr@Latn]=Lični planer alarma: pokreće se kao ikona u sistemskoj kaseti
-Comment[sv]=Personlig alarmschemaläggare: starta som en ikon i systembrickan
-Comment[ta]=Personal Alarm Scheduler: கணினி தட்டு சின்னமாக துவங்கு
-Comment[tg]=Соати рӯимизии зангдори шахсӣ (ба намуди ишорот дар панели вазифа ба кор дароварда мешавад)
-Comment[tr]=Kişisel Alarm Zamanlayıcı
-Comment[uk]=Персональний планувальник нагадувань: стартує як піктограма в лотку
-Comment[zh_CN]=个人日程提醒程序:以系统托盘图标启动
-Comment[zh_TW]=警示/提醒訊息排程器:以系統列圖示的方式啟動
Terminal=false
X-TDE-autostart-phase=2
X-TDE-autostart-condition=kalarmrc:General:AutostartTrayDummy:false
diff --git a/kalarm/kalarmapp.cpp b/kalarm/kalarmapp.cpp
index 476a8c1f..d9adbf7c 100644
--- a/kalarm/kalarmapp.cpp
+++ b/kalarm/kalarmapp.cpp
@@ -109,7 +109,7 @@ KAlarmApp::KAlarmApp()
mSpeechEnabled(false)
{
Preferences::initialise();
- Preferences::connect(TQT_SIGNAL(preferencesChanged()), TQT_TQOBJECT(this), TQT_SLOT(slotPreferencesChanged()));
+ Preferences::connect(TQ_SIGNAL(preferencesChanged()), this, TQ_SLOT(slotPreferencesChanged()));
KCal::CalFormat::setApplication(aboutData()->programName(), AlarmCalendar::icalProductId());
KARecurrence::setDefaultFeb29Type(Preferences::defaultFeb29Type());
@@ -118,7 +118,7 @@ KAlarmApp::KAlarmApp()
if (AlarmCalendar::initialiseCalendars())
{
- connect(AlarmCalendar::expiredCalendar(), TQT_SIGNAL(purged()), TQT_SLOT(slotExpiredPurged()));
+ connect(AlarmCalendar::expiredCalendar(), TQ_SIGNAL(purged()), TQ_SLOT(slotExpiredPurged()));
TDEConfig* config = kapp->config();
config->setGroup(TQString::fromLatin1("General"));
@@ -849,7 +849,7 @@ void KAlarmApp::displayFatalError(const TQString& message)
mFatalError = 1;
mFatalMessage = message;
if (theInstance)
- TQTimer::singleShot(0, theInstance, TQT_SLOT(quitFatal()));
+ TQTimer::singleShot(0, theInstance, TQ_SLOT(quitFatal()));
}
}
@@ -873,7 +873,7 @@ void KAlarmApp::quitFatal()
theInstance->quitIf(1, true);
break;
}
- TQTimer::singleShot(1000, this, TQT_SLOT(quitFatal()));
+ TQTimer::singleShot(1000, this, TQ_SLOT(quitFatal()));
}
/******************************************************************************
@@ -989,7 +989,7 @@ bool KAlarmApp::displayTrayIcon(bool show, MainWindow* parent)
creating = false;
}
mTrayWindow = new TrayWindow(parent ? parent : MainWindow::firstWindow());
- connect(mTrayWindow, TQT_SIGNAL(deleted()), TQT_SIGNAL(trayIconToggled()));
+ connect(mTrayWindow, TQ_SIGNAL(deleted()), TQ_SIGNAL(trayIconToggled()));
mTrayWindow->show();
emit trayIconToggled();
@@ -998,7 +998,7 @@ bool KAlarmApp::displayTrayIcon(bool show, MainWindow* parent)
mCheckingSystemTray = true;
mSavedNoSystemTray = mNoSystemTray;
mNoSystemTray = false;
- TQTimer::singleShot(0, this, TQT_SLOT(slotSystemTrayTimer()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotSystemTrayTimer()));
}
}
else if (mTrayWindow)
@@ -1212,7 +1212,7 @@ bool KAlarmApp::scheduleEvent(KAEvent::Action action, const TQString& text, cons
// Queue the alarm for insertion into the calendar file
mDcopQueue.append(DcopTQEntry(event));
if (mInitialised)
- TQTimer::singleShot(0, this, TQT_SLOT(processQueue()));
+ TQTimer::singleShot(0, this, TQ_SLOT(processQueue()));
return true;
}
@@ -1234,7 +1234,7 @@ bool KAlarmApp::handleEvent(const TQString& urlString, const TQString& eventID,
}
mDcopQueue.append(DcopTQEntry(function, eventID));
if (mInitialised)
- TQTimer::singleShot(0, this, TQT_SLOT(processQueue()));
+ TQTimer::singleShot(0, this, TQ_SLOT(processQueue()));
return true;
}
@@ -1751,16 +1751,16 @@ ShellProcess* KAlarmApp::doShellCommand(const TQString& command, const KAEvent&
comms = TDEProcess::AllOutput;
}
ShellProcess* proc = new ShellProcess(cmd);
- connect(proc, TQT_SIGNAL(shellExited(ShellProcess*)), TQT_SLOT(slotCommandExited(ShellProcess*)));
+ connect(proc, TQ_SIGNAL(shellExited(ShellProcess*)), TQ_SLOT(slotCommandExited(ShellProcess*)));
TQGuardedPtr<ShellProcess> logproc = 0;
if (comms == TDEProcess::AllOutput && !event.logFile().isEmpty())
{
// Output is to be appended to a log file.
// Set up a logging process to write the command's output to.
- connect(proc, TQT_SIGNAL(receivedStdout(TDEProcess*,char*,int)), TQT_SLOT(slotCommandOutput(TDEProcess*,char*,int)));
- connect(proc, TQT_SIGNAL(receivedStderr(TDEProcess*,char*,int)), TQT_SLOT(slotCommandOutput(TDEProcess*,char*,int)));
+ connect(proc, TQ_SIGNAL(receivedStdout(TDEProcess*,char*,int)), TQ_SLOT(slotCommandOutput(TDEProcess*,char*,int)));
+ connect(proc, TQ_SIGNAL(receivedStderr(TDEProcess*,char*,int)), TQ_SLOT(slotCommandOutput(TDEProcess*,char*,int)));
logproc = new ShellProcess(TQString::fromLatin1("cat >>%1").arg(event.logFile()));
- connect(logproc, TQT_SIGNAL(shellExited(ShellProcess*)), TQT_SLOT(slotLogProcExited(ShellProcess*)));
+ connect(logproc, TQ_SIGNAL(shellExited(ShellProcess*)), TQ_SLOT(slotLogProcExited(ShellProcess*)));
logproc->start(TDEProcess::Stdin);
TQCString heading;
if (alarm && alarm->dateTime().isValid())
@@ -1940,7 +1940,7 @@ void KAlarmApp::setUpDcop()
{
mInitialised = true; // we're now ready to handle DCOP calls
Daemon::createDcopHandler();
- TQTimer::singleShot(0, this, TQT_SLOT(processQueue())); // process anything already queued
+ TQTimer::singleShot(0, this, TQ_SLOT(processQueue())); // process anything already queued
}
}
diff --git a/kalarm/kalarmapp.h b/kalarm/kalarmapp.h
index 852143ed..17f707ea 100644
--- a/kalarm/kalarmapp.h
+++ b/kalarm/kalarmapp.h
@@ -47,7 +47,7 @@ class ShellProcess;
class KAlarmApp : public KUniqueApplication
{
- Q_OBJECT
+ TQ_OBJECT
public:
~KAlarmApp();
diff --git a/kalarm/kalarmd/CMakeLists.txt b/kalarm/kalarmd/CMakeLists.txt
index 9ca5fc36..aad30024 100644
--- a/kalarm/kalarmd/CMakeLists.txt
+++ b/kalarm/kalarmd/CMakeLists.txt
@@ -25,8 +25,17 @@ link_directories(
##### other data ################################
-install( FILES kalarmd.autostart.desktop DESTINATION ${AUTOSTART_INSTALL_DIR} )
-install( FILES kalarmd.desktop DESTINATION ${APPS_INSTALL_DIR}/.hidden )
+tde_create_translated_desktop(
+ SOURCE kalarmd.autostart.desktop
+ DESTINATION ${AUTOSTART_INSTALL_DIR}
+ PO_DIR kalarm-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE kalarmd.desktop
+ DESTINATION ${APPS_INSTALL_DIR}/.hidden
+ PO_DIR kalarm-desktops
+)
##### kalarmd (executable) ######################
diff --git a/kalarm/kalarmd/adapp.h b/kalarm/kalarmd/adapp.h
index 96b24d92..62992094 100644
--- a/kalarm/kalarmd/adapp.h
+++ b/kalarm/kalarmd/adapp.h
@@ -30,7 +30,7 @@ class AlarmDaemon;
class AlarmDaemonApp : public KUniqueApplication
{
- Q_OBJECT
+ TQ_OBJECT
public:
AlarmDaemonApp();
diff --git a/kalarm/kalarmd/adcalendar.cpp b/kalarm/kalarmd/adcalendar.cpp
index b1033eb0..699e9684 100644
--- a/kalarm/kalarmd/adcalendar.cpp
+++ b/kalarm/kalarmd/adcalendar.cpp
@@ -96,7 +96,7 @@ bool ADCalendar::loadFile(bool reset)
KURL dest;
dest.setPath(mTempFileName);
TDEIO::FileCopyJob* job = TDEIO::file_copy(url, dest, -1, true);
- connect(job, TQT_SIGNAL(result(TDEIO::Job*)), TQT_SLOT(slotDownloadJobResult(TDEIO::Job*)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job*)), TQ_SLOT(slotDownloadJobResult(TDEIO::Job*)));
}
return true;
}
diff --git a/kalarm/kalarmd/adcalendar.h b/kalarm/kalarmd/adcalendar.h
index bbc96214..3ba59978 100644
--- a/kalarm/kalarmd/adcalendar.h
+++ b/kalarm/kalarmd/adcalendar.h
@@ -29,7 +29,7 @@ class ADCalendar;
// Alarm Daemon calendar access
class ADCalendar : public KCal::CalendarLocal
{
- Q_OBJECT
+ TQ_OBJECT
public:
typedef TQValueList<ADCalendar*>::ConstIterator ConstIterator;
diff --git a/kalarm/kalarmd/alarmdaemon.cpp b/kalarm/kalarmd/alarmdaemon.cpp
index 573cac0d..71c39f1e 100644
--- a/kalarm/kalarmd/alarmdaemon.cpp
+++ b/kalarm/kalarmd/alarmdaemon.cpp
@@ -119,7 +119,7 @@ AlarmDaemon::AlarmDaemon(bool autostart, TQObject *parent, const char *name)
}
}
// Give some extra time to KAlarm to be fully restored, then proceed as usual
- TQTimer::singleShot(3000, this, TQT_SLOT(autostartKAlarm()));
+ TQTimer::singleShot(3000, this, TQ_SLOT(autostartKAlarm()));
}
}
}
@@ -168,7 +168,7 @@ void AlarmDaemon::startMonitoring()
{
// Set up the alarm timer
mAlarmTimer = new TQTimer(this);
- connect(mAlarmTimer, TQT_SIGNAL(timeout()), TQT_SLOT(checkAlarmsSlot()));
+ connect(mAlarmTimer, TQ_SIGNAL(timeout()), TQ_SLOT(checkAlarmsSlot()));
setTimerStatus();
// Start monitoring calendar files.
@@ -216,7 +216,7 @@ void AlarmDaemon::reloadCal(ADCalendar* cal, bool reset)
{
cal->close();
if (!cal->setLoadedConnected())
- connect(cal, TQT_SIGNAL(loaded(ADCalendar*, bool)), TQT_SLOT(calendarLoaded(ADCalendar*, bool)));
+ connect(cal, TQ_SIGNAL(loaded(ADCalendar*, bool)), TQ_SLOT(calendarLoaded(ADCalendar*, bool)));
cal->loadFile(reset);
}
else if (reset)
diff --git a/kalarm/kalarmd/alarmdaemon.h b/kalarm/kalarmd/alarmdaemon.h
index a3260a58..85509ebd 100644
--- a/kalarm/kalarmd/alarmdaemon.h
+++ b/kalarm/kalarmd/alarmdaemon.h
@@ -31,7 +31,7 @@ class ADCalendar;
class AlarmDaemon : public TQObject, virtual public AlarmDaemonIface
{
- Q_OBJECT
+ TQ_OBJECT
public:
AlarmDaemon(bool autostart, TQObject* parent = 0, const char* name = 0);
diff --git a/kalarm/kalarmd/kalarmd.autostart.desktop b/kalarm/kalarmd/kalarmd.autostart.desktop
index 8bb91706..5672c077 100644
--- a/kalarm/kalarmd/kalarmd.autostart.desktop
+++ b/kalarm/kalarmd/kalarmd.autostart.desktop
@@ -1,98 +1,11 @@
[Desktop Entry]
Name=KAlarm Daemon
-Name[af]=KAlarm Bediener
-Name[bg]=Демон на KAlarm
-Name[br]=Diaoul KAlarm
-Name[ca]=Dimoni KAlarm
-Name[cs]=KAlarm démon
-Name[da]=KAlarm Dæmon
-Name[de]=KAlarm Erinnerungsprogramm
-Name[el]=Δαίμονας KAlarm
-Name[eo]=KAlarm-demono
-Name[es]=Daemon de KAlarm
-Name[et]=KAlarmi häiredeemon
-Name[eu]=KAlarm deabrua
-Name[fa]=شبح KAlarm
-Name[fi]=Hälytyspalvelin
-Name[fr]=Démon d'alarme
-Name[ga]=Deamhan KAlarm
-Name[gl]=Daemon de KAlarm
-Name[he]=תהליך הרקע תזכורות
-Name[hu]=KAlarm szolgáltatás
-Name[is]=KAlarm þjónn
-Name[it]=Demone degli avvisi
-Name[ja]=KAlarm デーモン
-Name[kk]=KAlarm қызметі
-Name[km]=ដេមិន KAlarm
-Name[lt]=KAlarm tarnyba
-Name[mk]=Даемон за КАларм
-Name[ms]=Daemon KAlarm
-Name[nb]=KAlarm-nisse
-Name[nds]=KAlarm-Dämoon
-Name[ne]=केडीई संसूचक डेइमन
-Name[nn]=KAlarm-nisse
-Name[pl]=Demon alarmowy
-Name[pt]=Servidor do KAlarm
-Name[pt_BR]=Servidor do KAlarm
-Name[ru]=Служба уведомлений
-Name[sk]=KAlarm démon
-Name[sl]=Demon KAlarm
-Name[sr]=Демон KAlarm-а
-Name[sr@Latn]=Demon KAlarm-a
-Name[sv]=Alarmdemon
-Name[ta]=கேஅலாரம் டெமான்
-Name[tr]=KAlarm Servis Programı
-Name[uk]=Демон KAlarm
-Name[zh_CN]=KAlarm 进程
-Name[zh_TW]=KAlarm 守護程式
+
+Comment=KAlarm alarm daemon autostart at login
+
Exec=kalarmd --autostart
Icon=kalarm
Type=Application
-Comment=KAlarm alarm daemon autostart at login
-Comment[af]=Begin KAlarm bediener outomaties tydens aanteken
-Comment[bg]=Автоматично стартиране на процеса на алармата KAlarm при влизане в системата
-Comment[ca]=Dimoni d'inici automàtic de l'alarma KAlarm en connectar
-Comment[cs]=Automatické spouštění alarmovacího démona při startu
-Comment[da]=KAlarm-alarmdæmon autostart ved login
-Comment[de]=Autostart des KAlarm Erinnerungsprogramms von KOrganizer bei der Anmeldung
-Comment[el]=Αυτόματη εκκίνηση του δαίμονα KAlarm κατά τη σύνδεση
-Comment[es]=Inicio automático al ingresar del daemon de alarma de KAlarm
-Comment[et]=KAlarmi häiredeemoni automaatne käivitamine
-Comment[eu]=KAlarm alarma deabrua saioa hastean automatikoki abiatzen da
-Comment[fa]=آغاز خودکار هشدار KAlarm در ورود
-Comment[fi]=KOrganizer/KAlarm-hälytyspalvelimen automaattikäynnistys sisäänkirjautuessa
-Comment[fr]=Le démon d'alarme de KOrganizer et de KAlarm démarre automatiquement lors de la connexion
-Comment[fy]=KAlarm alarmdaemon automatysk begjinne by it oanmelden
-Comment[gl]=Autoinicio á entrada do daemon de KAlarm
-Comment[he]=הפעלה אוטומטית של תהליך הרקע תזכורות של KAlarm בעת ההפעלה
-Comment[hu]=A KAlarm emlékeztető szolgáltatás automatikus elindítása
-Comment[is]=Ræsa KAlarm áminningaþjónn sjálfkrafa við byrjun setu
-Comment[it]=Avvio automatico del demone degli avvisi
-Comment[ja]=KAlarm アラームデーモンのログイン時の自動起動
-Comment[kk]=KAlarm қызметі жүйеге кіргенде жегіледі
-Comment[km]=ចាប់ផ្ដើម​ដេមិន​រោទ៍​របស់ KAlarm ពេល​ចូល
-Comment[lt]=KOrganizer/KAlarm priminimų tarnybos automatinis paleidimas prisiregistruojant
-Comment[mk]=Даемон за аларми од КАларм - автом. старт при најава
-Comment[ms]= Automula daemon penggera KAlarm semasa log masuk
-Comment[nb]=start alarmnisse ved innlogging
-Comment[nds]=KAlarm-Dämoon bi't Anmellen automaatsch starten
-Comment[ne]=लगइनमा केडीई संसूचक संसूचक डेइमन स्वत: सुरुआत हुन्छ
-Comment[nl]=KAlarm alarmdaemon automatisch starten bij login
-Comment[nn]=Start alarmnisse ved innlogging
-Comment[pl]=Demon alarmu KOrganizera uruchamiany przy zalogowaniu
-Comment[pt]=Servidor de alarme do KAlarm auto-iniciado no arranque
-Comment[pt_BR]=Servidor de alarmes do KAlarm inicia automaticamente no login
-Comment[ru]=Служба уведомлений TDE
-Comment[sk]=Automatické spustenie kAlarm démona pri štarte
-Comment[sl]=Samodejni zagon alarmskega strežnika KAlarma ob zagonu
-Comment[sr]=Аутоматско покретање алармног демона KAlarm-а по пријављивању
-Comment[sr@Latn]=Automatsko pokretanje alarmnog demona KAlarm-a po prijavljivanju
-Comment[sv]=Kalarm-alarmdemon, automatisk start vid inloggning
-Comment[ta]=உள்நுழையும்போது கேஅலாரம் அலாரம் டெமான் தானாகவே துவங்கும்
-Comment[tr]=KAlarm alarm servis programı (açılışta başlar)
-Comment[uk]=Автозавантаження демона нагадувань KAlarm
-Comment[zh_CN]=登录时自动启动 KAlarm 定时守护进程
-Comment[zh_TW]=登入時自動啟動 KAlarm 鬧鐘守護程式
Terminal=false
NoDisplay=true
X-TDE-autostart-phase=2
diff --git a/kalarm/kalarmd/kalarmd.desktop b/kalarm/kalarmd/kalarmd.desktop
index 3da0eb33..edb210b6 100644
--- a/kalarm/kalarmd/kalarmd.desktop
+++ b/kalarm/kalarmd/kalarmd.desktop
@@ -1,50 +1,6 @@
[Desktop Entry]
Name=KAlarm Daemon
-Name[af]=KAlarm Bediener
-Name[bg]=Демон на KAlarm
-Name[br]=Diaoul KAlarm
-Name[ca]=Dimoni KAlarm
-Name[cs]=KAlarm démon
-Name[da]=KAlarm Dæmon
-Name[de]=KAlarm Erinnerungsprogramm
-Name[el]=Δαίμονας KAlarm
-Name[eo]=KAlarm-demono
-Name[es]=Daemon de KAlarm
-Name[et]=KAlarmi häiredeemon
-Name[eu]=KAlarm deabrua
-Name[fa]=شبح KAlarm
-Name[fi]=Hälytyspalvelin
-Name[fr]=Démon d'alarme
-Name[ga]=Deamhan KAlarm
-Name[gl]=Daemon de KAlarm
-Name[he]=תהליך הרקע תזכורות
-Name[hu]=KAlarm szolgáltatás
-Name[is]=KAlarm þjónn
-Name[it]=Demone degli avvisi
-Name[ja]=KAlarm デーモン
-Name[kk]=KAlarm қызметі
-Name[km]=ដេមិន KAlarm
-Name[lt]=KAlarm tarnyba
-Name[mk]=Даемон за КАларм
-Name[ms]=Daemon KAlarm
-Name[nb]=KAlarm-nisse
-Name[nds]=KAlarm-Dämoon
-Name[ne]=केडीई संसूचक डेइमन
-Name[nn]=KAlarm-nisse
-Name[pl]=Demon alarmowy
-Name[pt]=Servidor do KAlarm
-Name[pt_BR]=Servidor do KAlarm
-Name[ru]=Служба уведомлений
-Name[sk]=KAlarm démon
-Name[sl]=Demon KAlarm
-Name[sr]=Демон KAlarm-а
-Name[sr@Latn]=Demon KAlarm-a
-Name[sv]=Alarmdemon
-Name[ta]=கேஅலாரம் டெமான்
-Name[tr]=KAlarm Servis Programı
-Name[uk]=Демон KAlarm
-Name[zh_CN]=KAlarm 进程
-Name[zh_TW]=KAlarm 守護程式
+
Exec=kalarmd
Icon=kalarmd
Type=Application
diff --git a/kalarm/kamail.cpp b/kalarm/kamail.cpp
index faf3e5c3..0c33a3ae 100644
--- a/kalarm/kamail.cpp
+++ b/kalarm/kamail.cpp
@@ -944,7 +944,7 @@ TQString KAMail::getMailBody(TQ_UINT32 serialNumber)
arg << (int)0;
TQString body;
if (kapp->dcopClient()->call("kmail", "KMailIface", "getDecodedBodyPart(TQ_UINT32,int)", data, replyType, replyData)
- && replyType == TQSTRING_OBJECT_NAME_STRING)
+ && replyType == "TQString")
{
TQDataStream reply_stream(replyData, IO_ReadOnly);
reply_stream >> body;
diff --git a/kalarm/latecancel.cpp b/kalarm/latecancel.cpp
index ff684a77..6f656410 100644
--- a/kalarm/latecancel.cpp
+++ b/kalarm/latecancel.cpp
@@ -61,7 +61,7 @@ LateCancelSelector::LateCancelSelector(bool allowHourMinute, TQWidget* parent, c
TQBoxLayout* layout = new TQVBoxLayout(mCheckboxFrame, 0, 0);
mCheckbox = new CheckBox(i18n_n_CancelIfLate(), mCheckboxFrame);
mCheckbox->setFixedSize(mCheckbox->sizeHint());
- connect(mCheckbox, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotToggled(bool)));
+ connect(mCheckbox, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotToggled(bool)));
TQWhatsThis::add(mCheckbox, whatsThis);
layout->addWidget(mCheckbox, 0, TQt::AlignAuto);
@@ -72,7 +72,7 @@ LateCancelSelector::LateCancelSelector(bool allowHourMinute, TQWidget* parent, c
mTimeSelector = new TimeSelector(i18n("Cancel if late by 10 minutes", "Ca&ncel if late by"), TQString(),
whatsThis, i18n("Enter how late will cause the alarm to be canceled"),
allowHourMinute, mTimeSelectorFrame);
- connect(mTimeSelector, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotToggled(bool)));
+ connect(mTimeSelector, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotToggled(bool)));
layout->addWidget(mTimeSelector);
mLayout->addWidget(mStack);
diff --git a/kalarm/latecancel.h b/kalarm/latecancel.h
index 73bf7130..7baefb42 100644
--- a/kalarm/latecancel.h
+++ b/kalarm/latecancel.h
@@ -32,7 +32,7 @@ class CheckBox;
class LateCancelSelector : public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
public:
LateCancelSelector(bool allowHourMinute, TQWidget* parent, const char* name = 0);
diff --git a/kalarm/lib/buttongroup.cpp b/kalarm/lib/buttongroup.cpp
index 01864012..d1ba243f 100644
--- a/kalarm/lib/buttongroup.cpp
+++ b/kalarm/lib/buttongroup.cpp
@@ -29,25 +29,25 @@
ButtonGroup::ButtonGroup(TQWidget* parent, const char* name)
: TQButtonGroup(parent, name)
{
- connect(this, TQT_SIGNAL(clicked(int)), TQT_SIGNAL(buttonSet(int)));
+ connect(this, TQ_SIGNAL(clicked(int)), TQ_SIGNAL(buttonSet(int)));
}
ButtonGroup::ButtonGroup(const TQString& title, TQWidget* parent, const char* name)
: TQButtonGroup(title, parent, name)
{
- connect(this, TQT_SIGNAL(clicked(int)), TQT_SIGNAL(buttonSet(int)));
+ connect(this, TQ_SIGNAL(clicked(int)), TQ_SIGNAL(buttonSet(int)));
}
-ButtonGroup::ButtonGroup(int strips, Qt::Orientation orient, TQWidget* parent, const char* name)
+ButtonGroup::ButtonGroup(int strips, TQt::Orientation orient, TQWidget* parent, const char* name)
: TQButtonGroup(strips, orient, parent, name)
{
- connect(this, TQT_SIGNAL(clicked(int)), TQT_SIGNAL(buttonSet(int)));
+ connect(this, TQ_SIGNAL(clicked(int)), TQ_SIGNAL(buttonSet(int)));
}
-ButtonGroup::ButtonGroup(int strips, Qt::Orientation orient, const TQString& title, TQWidget* parent, const char* name)
+ButtonGroup::ButtonGroup(int strips, TQt::Orientation orient, const TQString& title, TQWidget* parent, const char* name)
: TQButtonGroup(strips, orient, title, parent, name)
{
- connect(this, TQT_SIGNAL(clicked(int)), TQT_SIGNAL(buttonSet(int)));
+ connect(this, TQ_SIGNAL(clicked(int)), TQ_SIGNAL(buttonSet(int)));
}
/******************************************************************************
@@ -57,7 +57,7 @@ ButtonGroup::ButtonGroup(int strips, Qt::Orientation orient, const TQString& tit
int ButtonGroup::insert(TQButton* button, int id)
{
id = TQButtonGroup::insert(button, id);
- connect(button, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotButtonToggled(bool)));
+ connect(button, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotButtonToggled(bool)));
return id;
}
diff --git a/kalarm/lib/buttongroup.h b/kalarm/lib/buttongroup.h
index d1038918..f26ab26d 100644
--- a/kalarm/lib/buttongroup.h
+++ b/kalarm/lib/buttongroup.h
@@ -37,7 +37,7 @@
*/
class ButtonGroup : public TQButtonGroup
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constructor.
@@ -57,7 +57,7 @@ class ButtonGroup : public TQButtonGroup
* @param parent The parent object of this widget.
* @param name The name of this widget.
*/
- ButtonGroup(int strips, Qt::Orientation orient, TQWidget* parent, const char* name = 0);
+ ButtonGroup(int strips, TQt::Orientation orient, TQWidget* parent, const char* name = 0);
/** Constructor.
* @param strips The number of rows or columns of buttons.
* @param orient The orientation (TQt::Horizontal or TQt::Vertical) of the button group.
@@ -65,7 +65,7 @@ class ButtonGroup : public TQButtonGroup
* @param parent The parent object of this widget.
* @param name The name of this widget.
*/
- ButtonGroup(int strips, Qt::Orientation orient, const TQString& title, TQWidget* parent, const char* name = 0);
+ ButtonGroup(int strips, TQt::Orientation orient, const TQString& title, TQWidget* parent, const char* name = 0);
/** Inserts a button in the group.
* This overrides the insert() method of TQButtonGroup, which should really be a virtual method...
* @param button The button to insert.
diff --git a/kalarm/lib/checkbox.cpp b/kalarm/lib/checkbox.cpp
index d6b02373..4b29d927 100644
--- a/kalarm/lib/checkbox.cpp
+++ b/kalarm/lib/checkbox.cpp
@@ -44,7 +44,7 @@ void CheckBox::setReadOnly(bool ro)
if ((int)ro != (int)mReadOnly)
{
mReadOnly = ro;
- setFocusPolicy(ro ? TQ_NoFocus : mFocusPolicy);
+ setFocusPolicy(ro ? TQWidget::NoFocus : mFocusPolicy);
if (ro)
clearFocus();
}
@@ -58,9 +58,9 @@ void CheckBox::setFocusWidget(TQWidget* w, bool enable)
mFocusWidget = w;
mFocusWidgetEnable = enable;
if (w)
- connect(this, TQT_SIGNAL(clicked()), TQT_SLOT(slotClicked()));
+ connect(this, TQ_SIGNAL(clicked()), TQ_SLOT(slotClicked()));
else
- disconnect(this, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotClicked()));
+ disconnect(this, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotClicked()));
}
/******************************************************************************
@@ -86,7 +86,7 @@ void CheckBox::mousePressEvent(TQMouseEvent* e)
if (mReadOnly)
{
// Swallow up the event if it's the left button
- if (e->button() == Qt::LeftButton)
+ if (e->button() == TQt::LeftButton)
return;
}
TQCheckBox::mousePressEvent(e);
@@ -97,7 +97,7 @@ void CheckBox::mouseReleaseEvent(TQMouseEvent* e)
if (mReadOnly)
{
// Swallow up the event if it's the left button
- if (e->button() == Qt::LeftButton)
+ if (e->button() == TQt::LeftButton)
return;
}
TQCheckBox::mouseReleaseEvent(e);
diff --git a/kalarm/lib/checkbox.h b/kalarm/lib/checkbox.h
index 020f9594..eb9afc88 100644
--- a/kalarm/lib/checkbox.h
+++ b/kalarm/lib/checkbox.h
@@ -41,7 +41,7 @@
*/
class CheckBox : public TQCheckBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constructor.
@@ -80,7 +80,7 @@ class CheckBox : public TQCheckBox
protected slots:
void slotClicked();
private:
- TQ_FocusPolicy mFocusPolicy; // default focus policy for the TQCheckBox
+ TQWidget::FocusPolicy mFocusPolicy; // default focus policy for the TQCheckBox
TQWidget* mFocusWidget; // widget to receive focus when button is clicked on
bool mFocusWidgetEnable; // enable focus widget before setting focus
bool mReadOnly; // value cannot be changed
diff --git a/kalarm/lib/colourcombo.cpp b/kalarm/lib/colourcombo.cpp
index 625933c7..d612180a 100644
--- a/kalarm/lib/colourcombo.cpp
+++ b/kalarm/lib/colourcombo.cpp
@@ -39,9 +39,9 @@ ColourCombo::ColourCombo(TQWidget* parent, const char* name, const TQColor& defa
mDisabled(false)
{
addColours();
- connect(this, TQT_SIGNAL(activated(int)), TQT_SLOT(slotActivated(int)));
- connect(this, TQT_SIGNAL(highlighted(int)), TQT_SLOT(slotHighlighted(int)));
- Preferences::connect(TQT_SIGNAL(preferencesChanged()), TQT_TQOBJECT(this), TQT_SLOT(slotPreferencesChanged()));
+ connect(this, TQ_SIGNAL(activated(int)), TQ_SLOT(slotActivated(int)));
+ connect(this, TQ_SIGNAL(highlighted(int)), TQ_SLOT(slotHighlighted(int)));
+ Preferences::connect(TQ_SIGNAL(preferencesChanged()), this, TQ_SLOT(slotPreferencesChanged()));
}
void ColourCombo::setColour(const TQColor& colour)
@@ -208,7 +208,7 @@ void ColourCombo::mousePressEvent(TQMouseEvent* e)
if (mReadOnly)
{
// Swallow up the event if it's the left button
- if (e->button() == Qt::LeftButton)
+ if (e->button() == TQt::LeftButton)
return;
}
TQComboBox::mousePressEvent(e);
diff --git a/kalarm/lib/colourcombo.h b/kalarm/lib/colourcombo.h
index 10be36da..d6c00343 100644
--- a/kalarm/lib/colourcombo.h
+++ b/kalarm/lib/colourcombo.h
@@ -42,7 +42,7 @@
*/
class ColourCombo : public TQComboBox
{
- Q_OBJECT
+ TQ_OBJECT
TQ_PROPERTY(TQColor color READ color WRITE setColor)
public:
diff --git a/kalarm/lib/combobox.cpp b/kalarm/lib/combobox.cpp
index 99577506..253881f5 100644
--- a/kalarm/lib/combobox.cpp
+++ b/kalarm/lib/combobox.cpp
@@ -47,7 +47,7 @@ void ComboBox::mousePressEvent(TQMouseEvent* e)
if (mReadOnly)
{
// Swallow up the event if it's the left button
- if (e->button() == Qt::LeftButton)
+ if (e->button() == TQt::LeftButton)
return;
}
TQComboBox::mousePressEvent(e);
diff --git a/kalarm/lib/combobox.h b/kalarm/lib/combobox.h
index f0402c72..cc915f0d 100644
--- a/kalarm/lib/combobox.h
+++ b/kalarm/lib/combobox.h
@@ -36,7 +36,7 @@
*/
class ComboBox : public TQComboBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constructor.
diff --git a/kalarm/lib/dateedit.cpp b/kalarm/lib/dateedit.cpp
index 29475f71..862e859f 100644
--- a/kalarm/lib/dateedit.cpp
+++ b/kalarm/lib/dateedit.cpp
@@ -28,7 +28,7 @@
DateEdit::DateEdit(TQWidget* parent, const char* name)
: KDateEdit(parent, name)
{
- connect(this, TQT_SIGNAL(dateEntered(const TQDate&)), TQT_SLOT(newDateEntered(const TQDate&)));
+ connect(this, TQ_SIGNAL(dateEntered(const TQDate&)), TQ_SLOT(newDateEntered(const TQDate&)));
}
void DateEdit::setMinDate(const TQDate& d, const TQString& errorDate)
@@ -91,7 +91,7 @@ void DateEdit::mousePressEvent(TQMouseEvent *e)
if (isReadOnly())
{
// Swallow up the event if it's the left button
- if (e->button() == Qt::LeftButton)
+ if (e->button() == TQt::LeftButton)
return;
}
KDateEdit::mousePressEvent(e);
diff --git a/kalarm/lib/dateedit.h b/kalarm/lib/dateedit.h
index 405566ec..47a040cb 100644
--- a/kalarm/lib/dateedit.h
+++ b/kalarm/lib/dateedit.h
@@ -36,7 +36,7 @@
*/
class DateEdit : public KDateEdit
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constructor.
diff --git a/kalarm/lib/datetime.h b/kalarm/lib/datetime.h
index d75aa94d..6b620494 100644
--- a/kalarm/lib/datetime.h
+++ b/kalarm/lib/datetime.h
@@ -169,7 +169,7 @@ class DateTime
* If it is a date-time, both time and date are included in the output.
* If it is date-only, only the date is included in the output.
*/
- TQString toString(Qt::DateFormat f = Qt::TextDate) const
+ TQString toString(TQt::DateFormat f = TQt::TextDate) const
{
if (mDateOnly)
return mDateTime.date().toString(f);
diff --git a/kalarm/lib/label.cpp b/kalarm/lib/label.cpp
index 7767a765..8a41d624 100644
--- a/kalarm/lib/label.cpp
+++ b/kalarm/lib/label.cpp
@@ -50,13 +50,13 @@ Label::Label(TQWidget* buddy, const TQString& text, TQWidget* parent, const char
void Label::setBuddy(TQWidget* bud)
{
if (mRadioButton)
- disconnect(mRadioButton, TQT_SIGNAL(destroyed()), this, TQT_SLOT(buddyDead()));
+ disconnect(mRadioButton, TQ_SIGNAL(destroyed()), this, TQ_SLOT(buddyDead()));
TQWidget* w = bud;
if (w)
{
while (w->focusProxy())
- w = TQT_TQWIDGET(w->focusProxy());
- if (!w->inherits(TQRADIOBUTTON_OBJECT_NAME_STRING))
+ w = w->focusProxy();
+ if (!w->inherits("TQRadioButton"))
w = 0;
}
if (!w)
@@ -74,7 +74,7 @@ void Label::setBuddy(TQWidget* bud)
mFocusWidget = new LabelFocusWidget(this);
TQLabel::setBuddy(mFocusWidget);
mRadioButton = (TQRadioButton*)bud;
- connect(mRadioButton, TQT_SIGNAL(destroyed()), this, TQT_SLOT(buddyDead()));
+ connect(mRadioButton, TQ_SIGNAL(destroyed()), this, TQ_SLOT(buddyDead()));
}
}
@@ -106,7 +106,7 @@ void Label::activated()
LabelFocusWidget::LabelFocusWidget(TQWidget* parent, const char* name)
: TQWidget(parent, name)
{
- setFocusPolicy(TQ_ClickFocus);
+ setFocusPolicy(TQWidget::ClickFocus);
setFixedSize(TQSize(1,1));
}
diff --git a/kalarm/lib/label.h b/kalarm/lib/label.h
index 5f26adc8..deae350f 100644
--- a/kalarm/lib/label.h
+++ b/kalarm/lib/label.h
@@ -40,7 +40,7 @@ class LabelFocusWidget;
*/
class Label : public TQLabel
{
- Q_OBJECT
+ TQ_OBJECT
friend class LabelFocusWidget;
public:
@@ -87,7 +87,7 @@ class Label : public TQLabel
// Private class for use by Label
class LabelFocusWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
LabelFocusWidget(TQWidget* parent, const char* name = 0);
diff --git a/kalarm/lib/lineedit.h b/kalarm/lib/lineedit.h
index ecfd5242..d715770f 100644
--- a/kalarm/lib/lineedit.h
+++ b/kalarm/lib/lineedit.h
@@ -42,7 +42,7 @@
*/
class LineEdit : public KLineEdit
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Types of drag and drop content which will be accepted.
diff --git a/kalarm/lib/pushbutton.cpp b/kalarm/lib/pushbutton.cpp
index f1f824d2..d47c1d9f 100644
--- a/kalarm/lib/pushbutton.cpp
+++ b/kalarm/lib/pushbutton.cpp
@@ -44,7 +44,7 @@ void PushButton::setReadOnly(bool ro)
if ((int)ro != (int)mReadOnly)
{
mReadOnly = ro;
- setFocusPolicy(ro ? TQ_NoFocus : mFocusPolicy);
+ setFocusPolicy(ro ? TQWidget::NoFocus : mFocusPolicy);
if (ro)
clearFocus();
}
@@ -55,7 +55,7 @@ void PushButton::mousePressEvent(TQMouseEvent* e)
if (mReadOnly)
{
// Swallow up the event if it's the left button
- if (e->button() == Qt::LeftButton)
+ if (e->button() == TQt::LeftButton)
return;
}
TQPushButton::mousePressEvent(e);
@@ -66,7 +66,7 @@ void PushButton::mouseReleaseEvent(TQMouseEvent* e)
if (mReadOnly)
{
// Swallow up the event if it's the left button
- if (e->button() == Qt::LeftButton)
+ if (e->button() == TQt::LeftButton)
return;
}
TQPushButton::mouseReleaseEvent(e);
diff --git a/kalarm/lib/pushbutton.h b/kalarm/lib/pushbutton.h
index fd357402..091060af 100644
--- a/kalarm/lib/pushbutton.h
+++ b/kalarm/lib/pushbutton.h
@@ -36,7 +36,7 @@
*/
class PushButton : public TQPushButton
{
- Q_OBJECT
+ TQ_OBJECT
TQ_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly)
public:
@@ -71,7 +71,7 @@ class PushButton : public TQPushButton
virtual void keyPressEvent(TQKeyEvent*);
virtual void keyReleaseEvent(TQKeyEvent*);
private:
- TQ_FocusPolicy mFocusPolicy; // default focus policy for the TQPushButton
+ TQWidget::FocusPolicy mFocusPolicy; // default focus policy for the TQPushButton
bool mReadOnly; // value cannot be changed
};
diff --git a/kalarm/lib/radiobutton.cpp b/kalarm/lib/radiobutton.cpp
index 18571ad7..62fb9b63 100644
--- a/kalarm/lib/radiobutton.cpp
+++ b/kalarm/lib/radiobutton.cpp
@@ -44,7 +44,7 @@ void RadioButton::setReadOnly(bool ro)
if ((int)ro != (int)mReadOnly)
{
mReadOnly = ro;
- setFocusPolicy(ro ? TQ_NoFocus : mFocusPolicy);
+ setFocusPolicy(ro ? TQWidget::NoFocus : mFocusPolicy);
if (ro)
clearFocus();
}
@@ -58,9 +58,9 @@ void RadioButton::setFocusWidget(TQWidget* w, bool enable)
mFocusWidget = w;
mFocusWidgetEnable = enable;
if (w)
- connect(this, TQT_SIGNAL(clicked()), TQT_SLOT(slotClicked()));
+ connect(this, TQ_SIGNAL(clicked()), TQ_SLOT(slotClicked()));
else
- disconnect(this, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotClicked()));
+ disconnect(this, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotClicked()));
}
/******************************************************************************
@@ -86,7 +86,7 @@ void RadioButton::mousePressEvent(TQMouseEvent* e)
if (mReadOnly)
{
// Swallow up the event if it's the left button
- if (e->button() == Qt::LeftButton)
+ if (e->button() == TQt::LeftButton)
return;
}
TQRadioButton::mousePressEvent(e);
@@ -97,7 +97,7 @@ void RadioButton::mouseReleaseEvent(TQMouseEvent* e)
if (mReadOnly)
{
// Swallow up the event if it's the left button
- if (e->button() == Qt::LeftButton)
+ if (e->button() == TQt::LeftButton)
return;
}
TQRadioButton::mouseReleaseEvent(e);
diff --git a/kalarm/lib/radiobutton.h b/kalarm/lib/radiobutton.h
index e983ebac..d3b47785 100644
--- a/kalarm/lib/radiobutton.h
+++ b/kalarm/lib/radiobutton.h
@@ -41,7 +41,7 @@
*/
class RadioButton : public TQRadioButton
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constructor.
@@ -80,7 +80,7 @@ class RadioButton : public TQRadioButton
protected slots:
void slotClicked();
private:
- TQ_FocusPolicy mFocusPolicy; // default focus policy for the TQRadioButton
+ TQWidget::FocusPolicy mFocusPolicy; // default focus policy for the TQRadioButton
TQWidget* mFocusWidget; // widget to receive focus when button is clicked on
bool mFocusWidgetEnable; // enable focus widget before setting focus
bool mReadOnly; // value cannot be changed
diff --git a/kalarm/lib/shellprocess.cpp b/kalarm/lib/shellprocess.cpp
index 1ed64df7..0fe0159b 100644
--- a/kalarm/lib/shellprocess.cpp
+++ b/kalarm/lib/shellprocess.cpp
@@ -56,8 +56,8 @@ bool ShellProcess::start(Communication comm)
return false;
}
KShellProcess::operator<<(mCommand);
- connect(this, TQT_SIGNAL(wroteStdin(TDEProcess*)), TQT_SLOT(writtenStdin(TDEProcess*)));
- connect(this, TQT_SIGNAL(processExited(TDEProcess*)), TQT_SLOT(slotExited(TDEProcess*)));
+ connect(this, TQ_SIGNAL(wroteStdin(TDEProcess*)), TQ_SLOT(writtenStdin(TDEProcess*)));
+ connect(this, TQ_SIGNAL(processExited(TDEProcess*)), TQ_SLOT(slotExited(TDEProcess*)));
if (!KShellProcess::start(TDEProcess::NotifyOnExit, comm))
{
mStatus = START_FAIL;
diff --git a/kalarm/lib/shellprocess.h b/kalarm/lib/shellprocess.h
index 3b198028..316d6ef7 100644
--- a/kalarm/lib/shellprocess.h
+++ b/kalarm/lib/shellprocess.h
@@ -49,7 +49,7 @@
*/
class ShellProcess : public KShellProcess
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Current status of the shell process.
diff --git a/kalarm/lib/slider.cpp b/kalarm/lib/slider.cpp
index 189c8941..5ee7a65a 100644
--- a/kalarm/lib/slider.cpp
+++ b/kalarm/lib/slider.cpp
@@ -26,12 +26,12 @@ Slider::Slider(TQWidget* parent, const char* name)
mReadOnly(false)
{ }
-Slider::Slider(Qt::Orientation o, TQWidget* parent, const char* name)
+Slider::Slider(TQt::Orientation o, TQWidget* parent, const char* name)
: TQSlider(o, parent, name),
mReadOnly(false)
{ }
-Slider::Slider(int minval, int maxval, int pageStep, int value, Qt::Orientation o, TQWidget* parent, const char* name)
+Slider::Slider(int minval, int maxval, int pageStep, int value, TQt::Orientation o, TQWidget* parent, const char* name)
: TQSlider(minval, maxval, pageStep, value, o, parent, name),
mReadOnly(false)
{ }
@@ -54,7 +54,7 @@ void Slider::mousePressEvent(TQMouseEvent* e)
if (mReadOnly)
{
// Swallow up the event if it's the left button
- if (e->button() == Qt::LeftButton)
+ if (e->button() == TQt::LeftButton)
return;
}
TQSlider::mousePressEvent(e);
diff --git a/kalarm/lib/slider.h b/kalarm/lib/slider.h
index bd8e750a..dc36e3ce 100644
--- a/kalarm/lib/slider.h
+++ b/kalarm/lib/slider.h
@@ -36,7 +36,7 @@
*/
class Slider : public TQSlider
{
- Q_OBJECT
+ TQ_OBJECT
TQ_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly)
public:
@@ -50,7 +50,7 @@ class Slider : public TQSlider
* @param parent The parent object of this widget.
* @param name The name of this widget.
*/
- explicit Slider(Qt::Orientation orient, TQWidget* parent = 0, const char* name = 0);
+ explicit Slider(TQt::Orientation orient, TQWidget* parent = 0, const char* name = 0);
/** Constructor.
* @param minValue The minimum value which the slider can have.
* @param maxValue The maximum value which the slider can have.
@@ -60,7 +60,7 @@ class Slider : public TQSlider
* @param parent The parent object of this widget.
* @param name The name of this widget.
*/
- Slider(int minValue, int maxValue, int pageStep, int value, Qt::Orientation orient,
+ Slider(int minValue, int maxValue, int pageStep, int value, TQt::Orientation orient,
TQWidget* parent = 0, const char* name = 0);
/** Returns true if the slider is read only. */
bool isReadOnly() const { return mReadOnly; }
diff --git a/kalarm/lib/spinbox.cpp b/kalarm/lib/spinbox.cpp
index a55492ec..667d5c7c 100644
--- a/kalarm/lib/spinbox.cpp
+++ b/kalarm/lib/spinbox.cpp
@@ -56,7 +56,7 @@ void SpinBox::init()
// Find the spin widgets which are part of the spin boxes, in order to
// handle their shift-button presses.
- TQObjectList* spinwidgets = queryList(TQSPINWIDGET_OBJECT_NAME_STRING, 0, false, true);
+ TQObjectList* spinwidgets = queryList("TQSpinWidget", 0, false, true);
TQSpinWidget* spin = (TQSpinWidget*)spinwidgets->getFirst();
if (spin)
spin->installEventFilter(this); // handle shift-button presses
@@ -65,7 +65,7 @@ void SpinBox::init()
#if KDE_IS_VERSION(3,1,90)
// Detect when the text field is edited
- connect(editor(), TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(textEdited()));
+ connect(editor(), TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(textEdited()));
#endif
}
@@ -201,7 +201,7 @@ void SpinBox::updateDisplay()
*/
bool SpinBox::eventFilter(TQObject* obj, TQEvent* e)
{
- if (TQT_BASE_OBJECT(obj) == TQT_BASE_OBJECT(editor()))
+ if (obj == editor())
{
int step = 0;
bool shift = false;
@@ -263,7 +263,7 @@ bool SpinBox::eventFilter(TQObject* obj, TQEvent* e)
case TQEvent::MouseButtonDblClick:
{
TQMouseEvent* me = (TQMouseEvent*)e;
- if (me->button() == Qt::LeftButton)
+ if (me->button() == TQt::LeftButton)
{
// It's a left button press. Set normal or shift stepping as appropriate.
if (mReadOnly)
@@ -281,7 +281,7 @@ bool SpinBox::eventFilter(TQObject* obj, TQEvent* e)
case TQEvent::MouseButtonRelease:
{
TQMouseEvent* me = (TQMouseEvent*)e;
- if (me->button() == Qt::LeftButton && mShiftMouse)
+ if (me->button() == TQt::LeftButton && mShiftMouse)
{
setShiftStepping(false, mCurrentButton); // cancel shift stepping
return false; // forward event to the destination widget
@@ -291,7 +291,7 @@ bool SpinBox::eventFilter(TQObject* obj, TQEvent* e)
case TQEvent::MouseMove:
{
TQMouseEvent* me = (TQMouseEvent*)e;
- if (me->state() & Qt::LeftButton)
+ if (me->state() & TQt::LeftButton)
{
// The left button is down. Track which spin button it's in.
if (mReadOnly)
@@ -325,7 +325,7 @@ bool SpinBox::eventFilter(TQObject* obj, TQEvent* e)
TQKeyEvent* ke = (TQKeyEvent*)e;
int key = ke->key();
int state = ke->state();
- if ((state & Qt::LeftButton)
+ if ((state & TQt::LeftButton)
&& (key == TQt::Key_Shift || key == TQt::Key_Alt))
{
// The left mouse button is down, and the Shift or Alt key has changed
diff --git a/kalarm/lib/spinbox.h b/kalarm/lib/spinbox.h
index 7712cdec..930e8235 100644
--- a/kalarm/lib/spinbox.h
+++ b/kalarm/lib/spinbox.h
@@ -41,7 +41,7 @@
*/
class SpinBox : public TQSpinBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constructor.
diff --git a/kalarm/lib/spinbox2.cpp b/kalarm/lib/spinbox2.cpp
index 360d2a2a..328813e2 100644
--- a/kalarm/lib/spinbox2.cpp
+++ b/kalarm/lib/spinbox2.cpp
@@ -85,15 +85,15 @@ void SpinBox2::init()
mSpinbox->setSelectOnStep(false); // default
mUpdown2->setSelectOnStep(false); // always false
setFocusProxy(mSpinbox);
- mUpdown2->setFocusPolicy(TQ_NoFocus);
+ mUpdown2->setFocusPolicy(TQWidget::NoFocus);
mSpinMirror = new SpinMirror(mUpdown2, mUpdown2Frame, this);
if (!mirrorStyle(style()))
mSpinMirror->hide(); // hide mirrored spin buttons when they are inappropriate
- connect(mSpinbox, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(valueChange()));
- connect(mSpinbox, TQT_SIGNAL(valueChanged(int)), TQT_SIGNAL(valueChanged(int)));
- connect(mSpinbox, TQT_SIGNAL(valueChanged(const TQString&)), TQT_SIGNAL(valueChanged(const TQString&)));
- connect(mUpdown2, TQT_SIGNAL(stepped(int)), TQT_SLOT(stepPage(int)));
- connect(mUpdown2, TQT_SIGNAL(styleUpdated()), TQT_SLOT(updateMirror()));
+ connect(mSpinbox, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(valueChange()));
+ connect(mSpinbox, TQ_SIGNAL(valueChanged(int)), TQ_SIGNAL(valueChanged(int)));
+ connect(mSpinbox, TQ_SIGNAL(valueChanged(const TQString&)), TQ_SIGNAL(valueChanged(const TQString&)));
+ connect(mUpdown2, TQ_SIGNAL(stepped(int)), TQ_SLOT(stepPage(int)));
+ connect(mUpdown2, TQ_SIGNAL(styleUpdated()), TQ_SLOT(updateMirror()));
}
void SpinBox2::setReadOnly(bool ro)
@@ -291,7 +291,7 @@ void SpinBox2::getMetrics() const
wGap = 0;
// Make style-specific adjustments for a better appearance
- if (style().inherits(TQMOTIFPLUSSTYLE_OBJECT_NAME_STRING))
+ if (style().inherits("TQMotifPlusStyle"))
{
xSpinbox = 0; // show the edit control left border
wGap = 2; // leave a space to the right of the left-hand pair of spin buttons
@@ -403,7 +403,7 @@ SpinMirror::SpinMirror(SpinBox* spinbox, TQFrame* spinFrame, TQWidget* parent, c
// Find the spin widget which is part of the spin box, in order to
// pass on its shift-button presses.
- TQObjectList* spinwidgets = spinbox->queryList(TQSPINWIDGET_OBJECT_NAME_STRING, 0, false, true);
+ TQObjectList* spinwidgets = spinbox->queryList("TQSpinWidget", 0, false, true);
mSpinWidget = (SpinBox*)spinwidgets->getFirst();
delete spinwidgets;
}
@@ -451,7 +451,7 @@ void SpinMirror::contentsMouseEvent(TQMouseEvent* e)
{
case TQEvent::MouseButtonPress:
case TQEvent::MouseButtonRelease:
- TQTimer::singleShot(0, this, TQT_SLOT(redraw()));
+ TQTimer::singleShot(0, this, TQ_SLOT(redraw()));
break;
default:
break;
@@ -481,11 +481,11 @@ bool SpinMirror::event(TQEvent* e)
case TQEvent::Leave:
case TQEvent::Enter:
TQApplication::postEvent(mSpinWidget, new TQEvent(e->type()));
- TQTimer::singleShot(0, this, TQT_SLOT(redraw()));
+ TQTimer::singleShot(0, this, TQ_SLOT(redraw()));
break;
case TQEvent::FocusIn:
mSpinbox->setFocus();
- TQTimer::singleShot(0, this, TQT_SLOT(redraw()));
+ TQTimer::singleShot(0, this, TQ_SLOT(redraw()));
break;
default:
break;
diff --git a/kalarm/lib/spinbox2.h b/kalarm/lib/spinbox2.h
index fe082524..c63f9152 100644
--- a/kalarm/lib/spinbox2.h
+++ b/kalarm/lib/spinbox2.h
@@ -55,7 +55,7 @@ class ExtraSpinBox;
*/
class SpinBox2 : public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constructor.
diff --git a/kalarm/lib/spinbox2private.h b/kalarm/lib/spinbox2private.h
index 093d8c8a..2aac3f6b 100644
--- a/kalarm/lib/spinbox2private.h
+++ b/kalarm/lib/spinbox2private.h
@@ -33,7 +33,7 @@
class ExtraSpinBox : public SpinBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit ExtraSpinBox(TQWidget* parent, const char* name = 0)
@@ -60,7 +60,7 @@ class ExtraSpinBox : public SpinBox
class SpinMirror : public TQCanvasView
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit SpinMirror(SpinBox*, TQFrame* spinFrame, TQWidget* parent = 0, const char* name = 0);
diff --git a/kalarm/lib/synchtimer.cpp b/kalarm/lib/synchtimer.cpp
index eecef7d4..e32cf659 100644
--- a/kalarm/lib/synchtimer.cpp
+++ b/kalarm/lib/synchtimer.cpp
@@ -48,11 +48,11 @@ void SynchTimer::connecT(TQObject* receiver, const char* member)
Connection connection(receiver, member);
if (mConnections.find(connection) != mConnections.end())
return; // the slot is already connected, so ignore request
- connect(mTimer, TQT_SIGNAL(timeout()), receiver, member);
+ connect(mTimer, TQ_SIGNAL(timeout()), receiver, member);
mConnections.append(connection);
if (!mTimer->isActive())
{
- connect(mTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotTimer()));
+ connect(mTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(slotTimer()));
start();
}
}
diff --git a/kalarm/lib/synchtimer.h b/kalarm/lib/synchtimer.h
index 8d640f0b..2263589c 100644
--- a/kalarm/lib/synchtimer.h
+++ b/kalarm/lib/synchtimer.h
@@ -36,7 +36,7 @@ class TQTimer;
*/
class SynchTimer : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
virtual ~SynchTimer();
@@ -76,7 +76,7 @@ class SynchTimer : public TQObject
*/
class MinuteTimer : public SynchTimer
{
- Q_OBJECT
+ TQ_OBJECT
public:
virtual ~MinuteTimer() { mInstance = 0; }
@@ -116,7 +116,7 @@ class MinuteTimer : public SynchTimer
*/
class DailyTimer : public SynchTimer
{
- Q_OBJECT
+ TQ_OBJECT
public:
virtual ~DailyTimer();
diff --git a/kalarm/lib/timeedit.cpp b/kalarm/lib/timeedit.cpp
index 80713f2f..21215a6c 100644
--- a/kalarm/lib/timeedit.cpp
+++ b/kalarm/lib/timeedit.cpp
@@ -38,13 +38,13 @@ TimeEdit::TimeEdit(TQWidget* parent, const char* name)
bool use12hour = TDEGlobal::locale()->use12Clock();
mSpinBox = new TimeSpinBox(!use12hour, this);
mSpinBox->setFixedSize(mSpinBox->sizeHint());
- connect(mSpinBox, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotValueChanged(int)));
+ connect(mSpinBox, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(slotValueChanged(int)));
if (use12hour)
{
mAmPm = new ComboBox(this);
setAmPmCombo(1, 1); // add "am" and "pm" options to the combo box
mAmPm->setFixedSize(mAmPm->sizeHint());
- connect(mAmPm, TQT_SIGNAL(highlighted(int)), TQT_SLOT(slotAmPmChanged(int)));
+ connect(mAmPm, TQ_SIGNAL(highlighted(int)), TQ_SLOT(slotAmPmChanged(int)));
}
}
diff --git a/kalarm/lib/timeedit.h b/kalarm/lib/timeedit.h
index 4a74d576..cfe9185b 100644
--- a/kalarm/lib/timeedit.h
+++ b/kalarm/lib/timeedit.h
@@ -49,7 +49,7 @@ class TimeSpinBox;
*/
class TimeEdit : public TQHBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constructor.
diff --git a/kalarm/lib/timeperiod.cpp b/kalarm/lib/timeperiod.cpp
index 37c78702..b2290a77 100644
--- a/kalarm/lib/timeperiod.cpp
+++ b/kalarm/lib/timeperiod.cpp
@@ -63,12 +63,12 @@ TimePeriod::TimePeriod(bool allowHourMinute, TQWidget* parent, const char* name)
mSpinBox->setLineStep(1);
mSpinBox->setLineShiftStep(10);
mSpinBox->setRange(1, mMaxDays);
- connect(mSpinBox, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotDaysChanged(int)));
+ connect(mSpinBox, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(slotDaysChanged(int)));
mSpinStack->addWidget(mSpinBox, 0);
mTimeSpinBox = new TimeSpinBox(0, 99999, mSpinStack);
mTimeSpinBox->setRange(1, maxMinutes); // max 999H59M
- connect(mTimeSpinBox, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotTimeChanged(int)));
+ connect(mTimeSpinBox, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(slotTimeChanged(int)));
mSpinStack->addWidget(mTimeSpinBox, 1);
mSpinStack->setFixedSize(mSpinBox->sizeHint().expandedTo(mTimeSpinBox->sizeHint()));
@@ -88,7 +88,7 @@ TimePeriod::TimePeriod(bool allowHourMinute, TQWidget* parent, const char* name)
mUnitsCombo->insertItem(i18n_weeks());
mMaxUnitShown = WEEKS;
mUnitsCombo->setFixedSize(mUnitsCombo->sizeHint());
- connect(mUnitsCombo, TQT_SIGNAL(activated(int)), TQT_SLOT(slotUnitsSelected(int)));
+ connect(mUnitsCombo, TQ_SIGNAL(activated(int)), TQ_SLOT(slotUnitsSelected(int)));
setFocusProxy(mUnitsCombo);
setTabOrder(mUnitsCombo, mSpinStack);
diff --git a/kalarm/lib/timeperiod.h b/kalarm/lib/timeperiod.h
index e2e24819..e5cacc9b 100644
--- a/kalarm/lib/timeperiod.h
+++ b/kalarm/lib/timeperiod.h
@@ -49,7 +49,7 @@ class TimeSpinBox;
*/
class TimePeriod : public TQHBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Units for the time period.
diff --git a/kalarm/lib/timespinbox.cpp b/kalarm/lib/timespinbox.cpp
index 0ac932e6..db3d5400 100644
--- a/kalarm/lib/timespinbox.cpp
+++ b/kalarm/lib/timespinbox.cpp
@@ -31,7 +31,7 @@ class TimeSpinBox::TimeValidator : public TQValidator
{
public:
TimeValidator(int minMin, int maxMin, TQWidget* parent, const char* name = 0)
- : TQValidator(TQT_TQOBJECT(parent), name),
+ : TQValidator(parent, name),
minMinute(minMin), maxMinute(maxMin), m12Hour(false), mPm(false) { }
virtual State validate(TQString&, int&) const;
int minMinute, maxMinute;
@@ -70,7 +70,7 @@ TimeSpinBox::TimeSpinBox(bool use24hour, TQWidget* parent, const char* name)
setShiftSteps(5, 360); // shift-left button increments 5 min / 6 hours
setSelectOnStep(false);
setAlignment(TQt::AlignHCenter);
- connect(this, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotValueChanged(int)));
+ connect(this, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(slotValueChanged(int)));
}
/******************************************************************************
diff --git a/kalarm/lib/timespinbox.h b/kalarm/lib/timespinbox.h
index 6d9f5dbe..56482875 100644
--- a/kalarm/lib/timespinbox.h
+++ b/kalarm/lib/timespinbox.h
@@ -44,7 +44,7 @@
*/
class TimeSpinBox : public SpinBox2
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constructor for a wrapping time spin box which can be used to enter a time of day.
diff --git a/kalarm/mainwindow.cpp b/kalarm/mainwindow.cpp
index d0791216..66a93a9c 100644
--- a/kalarm/mainwindow.cpp
+++ b/kalarm/mainwindow.cpp
@@ -149,14 +149,14 @@ MainWindow::MainWindow(bool restored)
mListView->refresh(); // populate the alarm list
mListView->clearSelection();
- connect(mListView, TQT_SIGNAL(itemDeleted()), TQT_SLOT(slotDeletion()));
- connect(mListView, TQT_SIGNAL(selectionChanged()), TQT_SLOT(slotSelection()));
- connect(mListView, TQT_SIGNAL(contextMenuRequested(TQListViewItem*, const TQPoint&, int)),
- TQT_SLOT(slotContextMenuRequested(TQListViewItem*, const TQPoint&, int)));
- connect(mListView, TQT_SIGNAL(mouseButtonClicked(int, TQListViewItem*, const TQPoint&, int)),
- TQT_SLOT(slotMouseClicked(int, TQListViewItem*, const TQPoint&, int)));
- connect(mListView, TQT_SIGNAL(executed(TQListViewItem*)), TQT_SLOT(slotDoubleClicked(TQListViewItem*)));
- connect(mListView->header(), TQT_SIGNAL(indexChange(int, int, int)), TQT_SLOT(columnsReordered()));
+ connect(mListView, TQ_SIGNAL(itemDeleted()), TQ_SLOT(slotDeletion()));
+ connect(mListView, TQ_SIGNAL(selectionChanged()), TQ_SLOT(slotSelection()));
+ connect(mListView, TQ_SIGNAL(contextMenuRequested(TQListViewItem*, const TQPoint&, int)),
+ TQ_SLOT(slotContextMenuRequested(TQListViewItem*, const TQPoint&, int)));
+ connect(mListView, TQ_SIGNAL(mouseButtonClicked(int, TQListViewItem*, const TQPoint&, int)),
+ TQ_SLOT(slotMouseClicked(int, TQListViewItem*, const TQPoint&, int)));
+ connect(mListView, TQ_SIGNAL(executed(TQListViewItem*)), TQ_SLOT(slotDoubleClicked(TQListViewItem*)));
+ connect(mListView->header(), TQ_SIGNAL(indexChange(int, int, int)), TQ_SLOT(columnsReordered()));
initActions();
mWindowList.append(this);
@@ -182,7 +182,7 @@ MainWindow::~MainWindow()
else
theApp()->trayWindow()->removeWindow(this);
}
- MinuteTimer::disconnect(TQT_TQOBJECT(this));
+ MinuteTimer::disconnect(this);
mMinuteTimerActive = false; // to ensure that setUpdateTimer() works correctly
setUpdateTimer();
MainWindow* main = mainMainWindow();
@@ -326,70 +326,70 @@ void MainWindow::columnsReordered()
void MainWindow::initActions()
{
TDEActionCollection* actions = actionCollection();
- mActionTemplates = new TDEAction(i18n("&Templates..."), 0, TQT_TQOBJECT(this), TQT_SLOT(slotTemplates()), actions, "templates");
- mActionNew = KAlarm::createNewAlarmAction(i18n("&New..."), TQT_TQOBJECT(this), TQT_SLOT(slotNew()), actions, "new");
- mActionNewFromTemplate = KAlarm::createNewFromTemplateAction(i18n("New &From Template"), TQT_TQOBJECT(this), TQT_SLOT(slotNewFromTemplate(const KAEvent&)), actions, "newFromTempl");
- mActionCreateTemplate = new TDEAction(i18n("Create Tem&plate..."), 0, TQT_TQOBJECT(this), TQT_SLOT(slotNewTemplate()), actions, "createTemplate");
- mActionCopy = new TDEAction(i18n("&Copy..."), "edit-copy", TQt::SHIFT+TQt::Key_Insert, TQT_TQOBJECT(this), TQT_SLOT(slotCopy()), actions, "copy");
- mActionModify = new TDEAction(i18n("&Edit..."), "edit", TQt::CTRL+TQt::Key_E, TQT_TQOBJECT(this), TQT_SLOT(slotModify()), actions, "modify");
- mActionDelete = new TDEAction(i18n("&Delete"), "edit-delete", TQt::Key_Delete, TQT_TQOBJECT(this), TQT_SLOT(slotDelete()), actions, "delete");
- mActionReactivate = new TDEAction(i18n("Reac&tivate"), 0, TQt::CTRL+TQt::Key_R, TQT_TQOBJECT(this), TQT_SLOT(slotReactivate()), actions, "undelete");
- mActionEnable = new TDEAction(TQString(), 0, TQt::CTRL+TQt::Key_B, TQT_TQOBJECT(this), TQT_SLOT(slotEnable()), actions, "disable");
- mActionView = new TDEAction(i18n("&View"), "viewmag", TQt::CTRL+TQt::Key_W, TQT_TQOBJECT(this), TQT_SLOT(slotView()), actions, "view");
- mActionShowTime = new TDEToggleAction(i18n_a_ShowAlarmTimes(), TQt::CTRL+TQt::Key_M, TQT_TQOBJECT(this), TQT_SLOT(slotShowTime()), actions, "showAlarmTimes");
+ mActionTemplates = new TDEAction(i18n("&Templates..."), 0, this, TQ_SLOT(slotTemplates()), actions, "templates");
+ mActionNew = KAlarm::createNewAlarmAction(i18n("&New..."), this, TQ_SLOT(slotNew()), actions, "new");
+ mActionNewFromTemplate = KAlarm::createNewFromTemplateAction(i18n("New &From Template"), this, TQ_SLOT(slotNewFromTemplate(const KAEvent&)), actions, "newFromTempl");
+ mActionCreateTemplate = new TDEAction(i18n("Create Tem&plate..."), 0, this, TQ_SLOT(slotNewTemplate()), actions, "createTemplate");
+ mActionCopy = new TDEAction(i18n("&Copy..."), "edit-copy", TQt::SHIFT+TQt::Key_Insert, this, TQ_SLOT(slotCopy()), actions, "copy");
+ mActionModify = new TDEAction(i18n("&Edit..."), "edit", TQt::CTRL+TQt::Key_E, this, TQ_SLOT(slotModify()), actions, "modify");
+ mActionDelete = new TDEAction(i18n("&Delete"), "edit-delete", TQt::Key_Delete, this, TQ_SLOT(slotDelete()), actions, "delete");
+ mActionReactivate = new TDEAction(i18n("Reac&tivate"), 0, TQt::CTRL+TQt::Key_R, this, TQ_SLOT(slotReactivate()), actions, "undelete");
+ mActionEnable = new TDEAction(TQString(), 0, TQt::CTRL+TQt::Key_B, this, TQ_SLOT(slotEnable()), actions, "disable");
+ mActionView = new TDEAction(i18n("&View"), "viewmag", TQt::CTRL+TQt::Key_W, this, TQ_SLOT(slotView()), actions, "view");
+ mActionShowTime = new TDEToggleAction(i18n_a_ShowAlarmTimes(), TQt::CTRL+TQt::Key_M, this, TQ_SLOT(slotShowTime()), actions, "showAlarmTimes");
mActionShowTime->setCheckedState(i18n("Hide &Alarm Times"));
- mActionShowTimeTo = new TDEToggleAction(i18n_o_ShowTimeToAlarms(), TQt::CTRL+TQt::Key_I, TQT_TQOBJECT(this), TQT_SLOT(slotShowTimeTo()), actions, "showTimeToAlarms");
+ mActionShowTimeTo = new TDEToggleAction(i18n_o_ShowTimeToAlarms(), TQt::CTRL+TQt::Key_I, this, TQ_SLOT(slotShowTimeTo()), actions, "showTimeToAlarms");
mActionShowTimeTo->setCheckedState(i18n("Hide Time t&o Alarms"));
- mActionShowExpired = new TDEToggleAction(i18n_e_ShowExpiredAlarms(), "history", TQt::CTRL+TQt::Key_P, TQT_TQOBJECT(this), TQT_SLOT(slotShowExpired()), actions, "showExpiredAlarms");
+ mActionShowExpired = new TDEToggleAction(i18n_e_ShowExpiredAlarms(), "history", TQt::CTRL+TQt::Key_P, this, TQ_SLOT(slotShowExpired()), actions, "showExpiredAlarms");
mActionShowExpired->setCheckedState(i18n_e_HideExpiredAlarms());
- mActionToggleTrayIcon = new TDEToggleAction(i18n("Show in System &Tray"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotToggleTrayIcon()), actions, "showInSystemTray");
+ mActionToggleTrayIcon = new TDEToggleAction(i18n("Show in System &Tray"), 0, this, TQ_SLOT(slotToggleTrayIcon()), actions, "showInSystemTray");
mActionToggleTrayIcon->setCheckedState(i18n("Hide From System &Tray"));
- new TDEAction(i18n("Import &Alarms..."), 0, TQT_TQOBJECT(this), TQT_SLOT(slotImportAlarms()), actions, "importAlarms");
- new TDEAction(i18n("Import &Birthdays..."), 0, TQT_TQOBJECT(this), TQT_SLOT(slotBirthdays()), actions, "importBirthdays");
- new TDEAction(i18n("&Refresh Alarms"), "reload", 0, TQT_TQOBJECT(this), TQT_SLOT(slotResetDaemon()), actions, "refreshAlarms");
+ new TDEAction(i18n("Import &Alarms..."), 0, this, TQ_SLOT(slotImportAlarms()), actions, "importAlarms");
+ new TDEAction(i18n("Import &Birthdays..."), 0, this, TQ_SLOT(slotBirthdays()), actions, "importBirthdays");
+ new TDEAction(i18n("&Refresh Alarms"), "reload", 0, this, TQ_SLOT(slotResetDaemon()), actions, "refreshAlarms");
Daemon::createAlarmEnableAction(actions, "alarmEnable");
if (undoText.isNull())
{
// Get standard texts, etc., for Undo and Redo actions
- TDEAction* act = KStdAction::undo(TQT_TQOBJECT(this), 0, actions);
+ TDEAction* act = KStdAction::undo(this, 0, actions);
undoIcon = act->icon();
undoShortcut = act->shortcut();
undoText = act->text();
undoTextStripped = KAlarm::stripAccel(undoText);
delete act;
- act = KStdAction::redo(TQT_TQOBJECT(this), 0, actions);
+ act = KStdAction::redo(this, 0, actions);
redoIcon = act->icon();
redoShortcut = act->shortcut();
redoText = act->text();
redoTextStripped = KAlarm::stripAccel(redoText);
delete act;
}
- mActionUndo = new TDEToolBarPopupAction(undoText, undoIcon, undoShortcut, TQT_TQOBJECT(this), TQT_SLOT(slotUndo()), actions, "edit_undo");
- mActionRedo = new TDEToolBarPopupAction(redoText, redoIcon, redoShortcut, TQT_TQOBJECT(this), TQT_SLOT(slotRedo()), actions, "edit_redo");
- KStdAction::find(TQT_TQOBJECT(mListView), TQT_SLOT(slotFind()), actions);
- mActionFindNext = KStdAction::findNext(TQT_TQOBJECT(mListView), TQT_SLOT(slotFindNext()), actions);
- mActionFindPrev = KStdAction::findPrev(TQT_TQOBJECT(mListView), TQT_SLOT(slotFindPrev()), actions);
- KStdAction::selectAll(TQT_TQOBJECT(mListView), TQT_SLOT(slotSelectAll()), actions);
- KStdAction::deselect(TQT_TQOBJECT(mListView), TQT_SLOT(slotDeselect()), actions);
- KStdAction::quit(TQT_TQOBJECT(this), TQT_SLOT(slotQuit()), actions);
- KStdAction::keyBindings(TQT_TQOBJECT(this), TQT_SLOT(slotConfigureKeys()), actions);
- KStdAction::configureToolbars(TQT_TQOBJECT(this), TQT_SLOT(slotConfigureToolbar()), actions);
- KStdAction::preferences(TQT_TQOBJECT(this), TQT_SLOT(slotPreferences()), actions);
+ mActionUndo = new TDEToolBarPopupAction(undoText, undoIcon, undoShortcut, this, TQ_SLOT(slotUndo()), actions, "edit_undo");
+ mActionRedo = new TDEToolBarPopupAction(redoText, redoIcon, redoShortcut, this, TQ_SLOT(slotRedo()), actions, "edit_redo");
+ KStdAction::find(mListView, TQ_SLOT(slotFind()), actions);
+ mActionFindNext = KStdAction::findNext(mListView, TQ_SLOT(slotFindNext()), actions);
+ mActionFindPrev = KStdAction::findPrev(mListView, TQ_SLOT(slotFindPrev()), actions);
+ KStdAction::selectAll(mListView, TQ_SLOT(slotSelectAll()), actions);
+ KStdAction::deselect(mListView, TQ_SLOT(slotDeselect()), actions);
+ KStdAction::quit(this, TQ_SLOT(slotQuit()), actions);
+ KStdAction::keyBindings(this, TQ_SLOT(slotConfigureKeys()), actions);
+ KStdAction::configureToolbars(this, TQ_SLOT(slotConfigureToolbar()), actions);
+ KStdAction::preferences(this, TQ_SLOT(slotPreferences()), actions);
setStandardToolBarMenuEnabled(true);
createGUI(UI_FILE);
mContextMenu = static_cast<TDEPopupMenu*>(factory()->container("listContext", this));
mActionsMenu = static_cast<TDEPopupMenu*>(factory()->container("actions", this));
mMenuError = (!mContextMenu || !mActionsMenu);
- connect(mActionsMenu, TQT_SIGNAL(aboutToShow()), TQT_SLOT(updateActionsMenu()));
- connect(mActionUndo->popupMenu(), TQT_SIGNAL(aboutToShow()), TQT_SLOT(slotInitUndoMenu()));
- connect(mActionUndo->popupMenu(), TQT_SIGNAL(activated(int)), TQT_SLOT(slotUndoItem(int)));
- connect(mActionRedo->popupMenu(), TQT_SIGNAL(aboutToShow()), TQT_SLOT(slotInitRedoMenu()));
- connect(mActionRedo->popupMenu(), TQT_SIGNAL(activated(int)), TQT_SLOT(slotRedoItem(int)));
- connect(Undo::instance(), TQT_SIGNAL(changed(const TQString&, const TQString&)), TQT_SLOT(slotUndoStatus(const TQString&, const TQString&)));
- connect(mListView, TQT_SIGNAL(findActive(bool)), TQT_SLOT(slotFindActive(bool)));
- Preferences::connect(TQT_SIGNAL(preferencesChanged()), TQT_TQOBJECT(this), TQT_SLOT(slotPrefsChanged()));
- connect(theApp(), TQT_SIGNAL(trayIconToggled()), TQT_SLOT(updateTrayIconAction()));
+ connect(mActionsMenu, TQ_SIGNAL(aboutToShow()), TQ_SLOT(updateActionsMenu()));
+ connect(mActionUndo->popupMenu(), TQ_SIGNAL(aboutToShow()), TQ_SLOT(slotInitUndoMenu()));
+ connect(mActionUndo->popupMenu(), TQ_SIGNAL(activated(int)), TQ_SLOT(slotUndoItem(int)));
+ connect(mActionRedo->popupMenu(), TQ_SIGNAL(aboutToShow()), TQ_SLOT(slotInitRedoMenu()));
+ connect(mActionRedo->popupMenu(), TQ_SIGNAL(activated(int)), TQ_SLOT(slotRedoItem(int)));
+ connect(Undo::instance(), TQ_SIGNAL(changed(const TQString&, const TQString&)), TQ_SLOT(slotUndoStatus(const TQString&, const TQString&)));
+ connect(mListView, TQ_SIGNAL(findActive(bool)), TQ_SLOT(slotFindActive(bool)));
+ Preferences::connect(TQ_SIGNAL(preferencesChanged()), this, TQ_SLOT(slotPrefsChanged()));
+ connect(theApp(), TQ_SIGNAL(trayIconToggled()), TQ_SLOT(updateTrayIconAction()));
// Set menu item states
setEnableText(true);
@@ -485,13 +485,13 @@ void MainWindow::setUpdateTimer()
{
// Timeout every minute.
needTimer->mMinuteTimerActive = true;
- MinuteTimer::connect(TQT_TQOBJECT(needTimer), TQT_SLOT(slotUpdateTimeTo()));
+ MinuteTimer::connect(needTimer, TQ_SLOT(slotUpdateTimeTo()));
kdDebug(5950) << "MainWindow::setUpdateTimer(): started timer" << endl;
}
else if (!needTimer && timerWindow)
{
timerWindow->mMinuteTimerActive = false;
- MinuteTimer::disconnect(TQT_TQOBJECT(timerWindow));
+ MinuteTimer::disconnect(timerWindow);
kdDebug(5950) << "MainWindow::setUpdateTimer(): stopped timer" << endl;
}
}
@@ -895,7 +895,7 @@ void MainWindow::slotTemplates()
{
mTemplateDlg = TemplateDlg::create(this);
enableTemplateMenuItem(false); // disable menu item in all windows
- connect(mTemplateDlg, TQT_SIGNAL(finished()), TQT_SLOT(slotTemplatesEnd()));
+ connect(mTemplateDlg, TQ_SIGNAL(finished()), TQ_SLOT(slotTemplatesEnd()));
mTemplateDlg->show();
}
}
@@ -1088,7 +1088,7 @@ void MainWindow::slotConfigureToolbar()
{
saveMainWindowSettings(TDEGlobal::config(), WINDOW_NAME);
KEditToolbar dlg(factory());
- connect(&dlg, TQT_SIGNAL(newToolbarConfig()), TQT_TQOBJECT(this), TQT_SLOT(slotNewToolbarConfig()));
+ connect(&dlg, TQ_SIGNAL(newToolbarConfig()), this, TQ_SLOT(slotNewToolbarConfig()));
dlg.exec();
}
@@ -1350,7 +1350,7 @@ void MainWindow::slotContextMenuRequested(TQListViewItem* item, const TQPoint& p
*/
void MainWindow::slotMouseClicked(int button, TQListViewItem* item, const TQPoint& pt, int)
{
- if (button != Qt::RightButton && !item)
+ if (button != TQt::RightButton && !item)
{
kdDebug(5950) << "MainWindow::slotMouseClicked(left)" << endl;
mListView->clearSelection();
diff --git a/kalarm/mainwindow.h b/kalarm/mainwindow.h
index 2e39e027..fdb05b38 100644
--- a/kalarm/mainwindow.h
+++ b/kalarm/mainwindow.h
@@ -41,7 +41,7 @@ class TemplateMenuAction;
class MainWindow : public MainWindowBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kalarm/mainwindowbase.h b/kalarm/mainwindowbase.h
index 8ecdffe2..41e7867d 100644
--- a/kalarm/mainwindowbase.h
+++ b/kalarm/mainwindowbase.h
@@ -33,7 +33,7 @@
*/
class MainWindowBase : public TDEMainWindow
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kalarm/messagewin.cpp b/kalarm/messagewin.cpp
index 293d92b0..7479ce4e 100644
--- a/kalarm/messagewin.cpp
+++ b/kalarm/messagewin.cpp
@@ -429,12 +429,12 @@ void MessageWin::initView()
if (mDateTime.isDateOnly() || TQDate::currentDate().daysTo(mDateTime.date()) > 0)
{
setRemainingTextDay();
- MidnightTimer::connect(TQT_TQOBJECT(this), TQT_SLOT(setRemainingTextDay())); // update every day
+ MidnightTimer::connect(this, TQ_SLOT(setRemainingTextDay())); // update every day
}
else
{
setRemainingTextMinute();
- MinuteTimer::connect(TQT_TQOBJECT(this), TQT_SLOT(setRemainingTextMinute())); // update every minute
+ MinuteTimer::connect(this, TQ_SLOT(setRemainingTextMinute())); // update every minute
}
topLayout->addWidget(mRemainingText, 0, TQt::AlignHCenter);
topLayout->addSpacing(KDialog::spacingHint());
@@ -510,9 +510,9 @@ void MessageWin::initView()
mOkButton = new KPushButton(KStdGuiItem::close(), topWidget);
// Prevent accidental acknowledgement of the message if the user is typing when the window appears
mOkButton->clearFocus();
- mOkButton->setFocusPolicy(TQ_ClickFocus); // don't allow keyboard selection
+ mOkButton->setFocusPolicy(TQWidget::ClickFocus); // don't allow keyboard selection
mOkButton->setFixedSize(mOkButton->sizeHint());
- connect(mOkButton, TQT_SIGNAL(clicked()), TQT_SLOT(close()));
+ connect(mOkButton, TQ_SIGNAL(clicked()), TQ_SLOT(close()));
grid->addWidget(mOkButton, 0, gridIndex++, AlignHCenter);
TQWhatsThis::add(mOkButton, i18n("Acknowledge the alarm"));
@@ -520,9 +520,9 @@ void MessageWin::initView()
{
// Edit button
mEditButton = new TQPushButton(i18n("&Edit..."), topWidget);
- mEditButton->setFocusPolicy(TQ_ClickFocus); // don't allow keyboard selection
+ mEditButton->setFocusPolicy(TQWidget::ClickFocus); // don't allow keyboard selection
mEditButton->setFixedSize(mEditButton->sizeHint());
- connect(mEditButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotEdit()));
+ connect(mEditButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotEdit()));
grid->addWidget(mEditButton, 0, gridIndex++, AlignHCenter);
TQWhatsThis::add(mEditButton, i18n("Edit the alarm."));
}
@@ -531,9 +531,9 @@ void MessageWin::initView()
{
// Defer button
mDeferButton = new TQPushButton(i18n("&Defer..."), topWidget);
- mDeferButton->setFocusPolicy(TQ_ClickFocus); // don't allow keyboard selection
+ mDeferButton->setFocusPolicy(TQWidget::ClickFocus); // don't allow keyboard selection
mDeferButton->setFixedSize(mDeferButton->sizeHint());
- connect(mDeferButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotDefer()));
+ connect(mDeferButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotDefer()));
grid->addWidget(mDeferButton, 0, gridIndex++, AlignHCenter);
TQWhatsThis::add(mDeferButton,
i18n("Defer the alarm until later.\n"
@@ -550,7 +550,7 @@ void MessageWin::initView()
mSilenceButton = new TQPushButton(topWidget);
mSilenceButton->setPixmap(pixmap);
mSilenceButton->setFixedSize(mSilenceButton->sizeHint());
- connect(mSilenceButton, TQT_SIGNAL(clicked()), TQT_SLOT(stopPlay()));
+ connect(mSilenceButton, TQ_SIGNAL(clicked()), TQ_SLOT(stopPlay()));
grid->addWidget(mSilenceButton, 0, gridIndex++, AlignHCenter);
TQToolTip::add(mSilenceButton, i18n("Stop sound"));
TQWhatsThis::add(mSilenceButton, i18n("Stop playing the sound"));
@@ -567,7 +567,7 @@ void MessageWin::initView()
mKMailButton = new TQPushButton(topWidget);
mKMailButton->setPixmap(pixmap);
mKMailButton->setFixedSize(mKMailButton->sizeHint());
- connect(mKMailButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotShowKMailMessage()));
+ connect(mKMailButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotShowKMailMessage()));
grid->addWidget(mKMailButton, 0, gridIndex++, AlignHCenter);
TQToolTip::add(mKMailButton, i18n("Locate this email in KMail", "Locate in KMail"));
TQWhatsThis::add(mKMailButton, i18n("Locate and highlight this email in KMail"));
@@ -580,7 +580,7 @@ void MessageWin::initView()
mKAlarmButton = new TQPushButton(topWidget);
mKAlarmButton->setPixmap(pixmap);
mKAlarmButton->setFixedSize(mKAlarmButton->sizeHint());
- connect(mKAlarmButton, TQT_SIGNAL(clicked()), TQT_SLOT(displayMainWindow()));
+ connect(mKAlarmButton, TQ_SIGNAL(clicked()), TQ_SLOT(displayMainWindow()));
grid->addWidget(mKAlarmButton, 0, gridIndex++, AlignHCenter);
TQString actKAlarm = i18n("Activate KAlarm");
TQToolTip::add(mKAlarmButton, actKAlarm);
@@ -619,9 +619,9 @@ void MessageWin::setRemainingTextDay()
if (days <= 0 && !mDateTime.isDateOnly())
{
// The alarm is due today, so start refreshing every minute
- MidnightTimer::disconnect(TQT_TQOBJECT(this), TQT_SLOT(setRemainingTextDay()));
+ MidnightTimer::disconnect(this, TQ_SLOT(setRemainingTextDay()));
setRemainingTextMinute();
- MinuteTimer::connect(TQT_TQOBJECT(this), TQT_SLOT(setRemainingTextMinute())); // update every minute
+ MinuteTimer::connect(this, TQ_SLOT(setRemainingTextMinute())); // update every minute
}
else
{
@@ -796,14 +796,14 @@ void MessageWin::playAudio()
#else
// An audio file is specified. Because loading it may take some time,
// call it on a timer to allow the window to display first.
- TQTimer::singleShot(0, this, TQT_SLOT(slotPlayAudio()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotPlayAudio()));
#endif
}
else if (mSpeak)
{
// The message is to be spoken. In case of error messges,
// call it on a timer to allow the window to display first.
- TQTimer::singleShot(0, this, TQT_SLOT(slotSpeak()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotSpeak()));
}
}
@@ -868,7 +868,7 @@ void MessageWin::slotPlayAudio()
{
mFadeTimer = 0;
mPlayTimer = new TQTimer(this);
- connect(mPlayTimer, TQT_SIGNAL(timeout()), TQT_SLOT(checkAudioPlay()));
+ connect(mPlayTimer, TQ_SIGNAL(timeout()), TQ_SLOT(checkAudioPlay()));
mArtsDispatcher = new KArtsDispatcher;
mPlayedOnce = false;
mAudioFileStart = TQTime::currentTime();
@@ -935,7 +935,7 @@ void MessageWin::initAudio(bool firstTime)
}
mSilenceButton->setEnabled(true);
mPlayed = false;
- connect(mPlayObject, TQT_SIGNAL(playObjectCreated()), TQT_SLOT(checkAudioPlay()));
+ connect(mPlayObject, TQ_SIGNAL(playObjectCreated()), TQ_SLOT(checkAudioPlay()));
if (!mPlayObject->object().isNull())
checkAudioPlay();
}
@@ -976,7 +976,7 @@ void MessageWin::checkAudioPlay()
// Set up volume fade
mAudioFileStart = now;
mFadeTimer = new TQTimer(this);
- connect(mFadeTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotFade()));
+ connect(mFadeTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotFade()));
mFadeTimer->start(1000); // adjust volume every second
}
mPlayedOnce = true;
@@ -1186,7 +1186,7 @@ void MessageWin::show()
int delay = TQDateTime::currentDateTime().secsTo(mCloseTime);
if (delay < 0)
delay = 0;
- TQTimer::singleShot(delay * 1000, this, TQT_SLOT(close()));
+ TQTimer::singleShot(delay * 1000, this, TQ_SLOT(close()));
if (!delay)
return; // don't show the window if auto-closing is already due
}
@@ -1302,7 +1302,7 @@ void MessageWin::showEvent(TQShowEvent* se)
if (mAction == KAEvent::MESSAGE)
{
// Set the window size once the frame size is known
- TQTimer::singleShot(0, this, TQT_SLOT(setMaxSize()));
+ TQTimer::singleShot(0, this, TQ_SLOT(setMaxSize()));
}
}
mShown = true;
@@ -1345,7 +1345,7 @@ void MessageWin::displayComplete()
// Enable the window's buttons either now or after the configured delay
if (mButtonDelay > 0)
- TQTimer::singleShot(mButtonDelay, this, TQT_SLOT(enableButtons()));
+ TQTimer::singleShot(mButtonDelay, this, TQ_SLOT(enableButtons()));
else
enableButtons();
}
@@ -1497,7 +1497,7 @@ void MessageWin::setDeferralLimit(const KAEvent& event)
if (mDeferButton)
{
mDeferLimit = event.deferralLimit().dateTime();
- MidnightTimer::connect(TQT_TQOBJECT(this), TQT_SLOT(checkDeferralLimit())); // check every day
+ MidnightTimer::connect(this, TQ_SLOT(checkDeferralLimit())); // check every day
mDisableDeferral = false;
checkDeferralLimit();
}
@@ -1519,14 +1519,14 @@ void MessageWin::checkDeferralLimit()
int n = TQDate::currentDate().daysTo(mDeferLimit.date());
if (n > 0)
return;
- MidnightTimer::disconnect(TQT_TQOBJECT(this), TQT_SLOT(checkDeferralLimit()));
+ MidnightTimer::disconnect(this, TQ_SLOT(checkDeferralLimit()));
if (n == 0)
{
// The deferral limit will be reached today
n = TQTime::currentTime().secsTo(mDeferLimit.time());
if (n > 0)
{
- TQTimer::singleShot(n * 1000, this, TQT_SLOT(checkDeferralLimit()));
+ TQTimer::singleShot(n * 1000, this, TQ_SLOT(checkDeferralLimit()));
return;
}
}
diff --git a/kalarm/messagewin.h b/kalarm/messagewin.h
index 96f8b1f9..8cf48740 100644
--- a/kalarm/messagewin.h
+++ b/kalarm/messagewin.h
@@ -43,7 +43,7 @@ namespace KDE { class PlayObject; }
*/
class MessageWin : public MainWindowBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
MessageWin(); // for session management restoration only
diff --git a/kalarm/pickfileradio.cpp b/kalarm/pickfileradio.cpp
index 15b56d94..bdfb2bb4 100644
--- a/kalarm/pickfileradio.cpp
+++ b/kalarm/pickfileradio.cpp
@@ -41,10 +41,10 @@ PickFileRadio::PickFileRadio(TQPushButton* button, LineEdit* edit, const TQStrin
Q_ASSERT(parent);
Q_ASSERT(button);
mButton->setEnabled(false);
- connect(mButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotPickFile()));
+ connect(mButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotPickFile()));
if (mEdit)
mEdit->setEnabled(false);
- connect(mGroup, TQT_SIGNAL(buttonSet(int)), TQT_SLOT(slotSelectionChanged(int)));
+ connect(mGroup, TQ_SIGNAL(buttonSet(int)), TQ_SLOT(slotSelectionChanged(int)));
}
PickFileRadio::PickFileRadio(const TQString& text, TQButtonGroup* parent, const char* name)
@@ -64,10 +64,10 @@ void PickFileRadio::init(TQPushButton* button, LineEdit* edit)
mEdit = edit;
mButton = button;
mButton->setEnabled(false);
- connect(mButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotPickFile()));
+ connect(mButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotPickFile()));
if (mEdit)
mEdit->setEnabled(false);
- connect(mGroup, TQT_SIGNAL(buttonSet(int)), TQT_SLOT(slotSelectionChanged(int)));
+ connect(mGroup, TQ_SIGNAL(buttonSet(int)), TQ_SLOT(slotSelectionChanged(int)));
setReadOnly(RadioButton::isReadOnly());
}
@@ -165,7 +165,7 @@ void PickFileRadio::slotPickFile()
// No file is selected, so revert to the previous radio button selection.
// But wait a moment before setting the radio button, or it won't work.
mRevertId = true; // prevent picker dialogue popping up twice
- TQTimer::singleShot(0, this, TQT_SLOT(setLastId()));
+ TQTimer::singleShot(0, this, TQ_SLOT(setLastId()));
}
}
diff --git a/kalarm/pickfileradio.h b/kalarm/pickfileradio.h
index f30ca7f6..ba72d58c 100644
--- a/kalarm/pickfileradio.h
+++ b/kalarm/pickfileradio.h
@@ -49,7 +49,7 @@ class LineEdit;
*/
class PickFileRadio : public RadioButton
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constructor.
diff --git a/kalarm/prefdlg.cpp b/kalarm/prefdlg.cpp
index f439d609..38cd5603 100644
--- a/kalarm/prefdlg.cpp
+++ b/kalarm/prefdlg.cpp
@@ -263,7 +263,7 @@ MiscPrefTab::MiscPrefTab(TQVBox* frame)
// Run-on-demand radio button
mRunOnDemand = new TQRadioButton(i18n("&Run only on demand"), group, "runDemand");
mRunOnDemand->setFixedSize(mRunOnDemand->sizeHint());
- connect(mRunOnDemand, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotRunModeToggled(bool)));
+ connect(mRunOnDemand, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotRunModeToggled(bool)));
TQWhatsThis::add(mRunOnDemand,
i18n("Check to run KAlarm only when required.\n\n"
"Notes:\n"
@@ -274,7 +274,7 @@ MiscPrefTab::MiscPrefTab(TQVBox* frame)
// Run-in-system-tray radio button
mRunInSystemTray = new TQRadioButton(i18n("Run continuously in system &tray"), group, "runTray");
mRunInSystemTray->setFixedSize(mRunInSystemTray->sizeHint());
- connect(mRunInSystemTray, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotRunModeToggled(bool)));
+ connect(mRunInSystemTray, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotRunModeToggled(bool)));
TQWhatsThis::add(mRunInSystemTray,
i18n("Check to run KAlarm continuously in the TDE system tray.\n\n"
"Notes:\n"
@@ -286,7 +286,7 @@ MiscPrefTab::MiscPrefTab(TQVBox* frame)
// Run continuously options
mDisableAlarmsIfStopped = new TQCheckBox(i18n("Disa&ble alarms while not running"), group, "disableAl");
mDisableAlarmsIfStopped->setFixedSize(mDisableAlarmsIfStopped->sizeHint());
- connect(mDisableAlarmsIfStopped, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotDisableIfStoppedToggled(bool)));
+ connect(mDisableAlarmsIfStopped, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotDisableIfStoppedToggled(bool)));
TQWhatsThis::add(mDisableAlarmsIfStopped,
i18n("Check to disable alarms whenever KAlarm is not running. Alarms will only appear while the system tray icon is visible."));
grid->addMultiCellWidget(mDisableAlarmsIfStopped, 3, 3, 1, 2, alignment);
@@ -299,14 +299,14 @@ MiscPrefTab::MiscPrefTab(TQVBox* frame)
mAutostartTrayIcon = new TQCheckBox(i18n("Autostart at &login"), group, "autoTray");
#ifdef AUTOSTART_BY_KALARMD
- connect(mAutostartTrayIcon, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotAutostartToggled(bool)));
+ connect(mAutostartTrayIcon, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotAutostartToggled(bool)));
#endif
grid->addMultiCellWidget(mAutostartTrayIcon, 5, 5, 0, 2, alignment);
// Autostart alarm daemon
mAutostartDaemon = new TQCheckBox(i18n("Start alarm monitoring at lo&gin"), group, "startDaemon");
mAutostartDaemon->setFixedSize(mAutostartDaemon->sizeHint());
- connect(mAutostartDaemon, TQT_SIGNAL(clicked()), TQT_SLOT(slotAutostartDaemonClicked()));
+ connect(mAutostartDaemon, TQ_SIGNAL(clicked()), TQ_SLOT(slotAutostartDaemonClicked()));
TQWhatsThis::add(mAutostartDaemon,
i18n("Automatically start alarm monitoring whenever you start TDE, by running the alarm daemon (%1).\n\n"
"This option should always be checked unless you intend to discontinue use of KAlarm.")
@@ -346,7 +346,7 @@ MiscPrefTab::MiscPrefTab(TQVBox* frame)
grid->addRowSpacing(0, fontMetrics().lineSpacing()/2);
mKeepExpired = new TQCheckBox(i18n("Keep alarms after e&xpiry"), group, "keepExpired");
mKeepExpired->setFixedSize(mKeepExpired->sizeHint());
- connect(mKeepExpired, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotExpiredToggled(bool)));
+ connect(mKeepExpired, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotExpiredToggled(bool)));
TQWhatsThis::add(mKeepExpired,
i18n("Check to store alarms after expiry or deletion (except deleted alarms which were never triggered)."));
grid->addMultiCellWidget(mKeepExpired, 1, 1, 0, 1, alignment);
@@ -355,7 +355,7 @@ MiscPrefTab::MiscPrefTab(TQVBox* frame)
box->setSpacing(KDialog::spacingHint());
mPurgeExpired = new TQCheckBox(i18n("Discard ex&pired alarms after:"), box, "purgeExpired");
mPurgeExpired->setMinimumSize(mPurgeExpired->sizeHint());
- connect(mPurgeExpired, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotExpiredToggled(bool)));
+ connect(mPurgeExpired, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotExpiredToggled(bool)));
mPurgeAfter = new SpinBox(box);
mPurgeAfter->setMinValue(1);
mPurgeAfter->setLineShiftStep(10);
@@ -369,7 +369,7 @@ MiscPrefTab::MiscPrefTab(TQVBox* frame)
mClearExpired = new TQPushButton(i18n("Clear Expired Alar&ms"), group);
mClearExpired->setFixedSize(mClearExpired->sizeHint());
- connect(mClearExpired, TQT_SIGNAL(clicked()), TQT_SLOT(slotClearExpired()));
+ connect(mClearExpired, TQ_SIGNAL(clicked()), TQ_SLOT(slotClearExpired()));
TQWhatsThis::add(mClearExpired,
i18n("Delete all existing expired alarms."));
grid->addWidget(mClearExpired, 3, 1, alignment);
@@ -413,7 +413,7 @@ MiscPrefTab::MiscPrefTab(TQVBox* frame)
grid->addMultiCellWidget(box, row + 1, row + 1, 0, 2, TQt::AlignAuto);
TQRadioButton* radio = new TQRadioButton(i18n("Other:"), box);
radio->setFixedSize(radio->sizeHint());
- connect(radio, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotOtherTerminalToggled(bool)));
+ connect(radio, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotOtherTerminalToggled(bool)));
mXtermType->insert(radio, mXtermCount);
if (mXtermFirst < 0)
mXtermFirst = mXtermCount; // note the id of the first button
@@ -609,7 +609,7 @@ EmailPrefTab::EmailPrefTab(TQVBox* frame)
radio = new RadioButton(i18n("&Sendmail"), box, "sendmail");
radio->setMinimumSize(radio->sizeHint());
mEmailClient->insert(radio, Preferences::SENDMAIL);
- connect(mEmailClient, TQT_SIGNAL(buttonSet(int)), TQT_SLOT(slotEmailClientChanged(int)));
+ connect(mEmailClient, TQ_SIGNAL(buttonSet(int)), TQ_SLOT(slotEmailClientChanged(int)));
box->setFixedHeight(box->sizeHint().height());
TQWhatsThis::add(box,
i18n("Choose how to send email when an email alarm is triggered.\n"
@@ -637,7 +637,7 @@ EmailPrefTab::EmailPrefTab(TQVBox* frame)
grid->addWidget(label, 1, 0);
mFromAddressGroup = new ButtonGroup(group);
mFromAddressGroup->hide();
- connect(mFromAddressGroup, TQT_SIGNAL(buttonSet(int)), TQT_SLOT(slotFromAddrChanged(int)));
+ connect(mFromAddressGroup, TQ_SIGNAL(buttonSet(int)), TQ_SLOT(slotFromAddrChanged(int)));
// Line edit to enter a 'From' email address
radio = new RadioButton(group);
@@ -646,7 +646,7 @@ EmailPrefTab::EmailPrefTab(TQVBox* frame)
label->setBuddy(radio);
grid->addWidget(radio, 1, 1);
mEmailAddress = new TQLineEdit(group);
- connect(mEmailAddress, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(slotAddressChanged()));
+ connect(mEmailAddress, TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(slotAddressChanged()));
TQString whatsThis = i18n("Your email address, used to identify you as the sender when sending email alarms.");
TQWhatsThis::add(radio, whatsThis);
TQWhatsThis::add(mEmailAddress, whatsThis);
@@ -678,7 +678,7 @@ EmailPrefTab::EmailPrefTab(TQVBox* frame)
grid->addWidget(label, 5, 0);
mBccAddressGroup = new ButtonGroup(group);
mBccAddressGroup->hide();
- connect(mBccAddressGroup, TQT_SIGNAL(buttonSet(int)), TQT_SLOT(slotBccAddrChanged(int)));
+ connect(mBccAddressGroup, TQ_SIGNAL(buttonSet(int)), TQ_SLOT(slotBccAddrChanged(int)));
// Line edit to enter a 'Bcc' email address
radio = new RadioButton(group);
@@ -962,7 +962,7 @@ EditPrefTab::EditPrefTab(TQVBox* frame)
mSoundFileBrowse = new TQPushButton(box);
mSoundFileBrowse->setPixmap(SmallIcon("document-open"));
mSoundFileBrowse->setFixedSize(mSoundFileBrowse->sizeHint());
- connect(mSoundFileBrowse, TQT_SIGNAL(clicked()), TQT_SLOT(slotBrowseSoundFile()));
+ connect(mSoundFileBrowse, TQ_SIGNAL(clicked()), TQ_SLOT(slotBrowseSoundFile()));
TQToolTip::add(mSoundFileBrowse, i18n("Choose a sound file"));
TQWhatsThis::add(box,
i18n("Enter the default sound file to use in the alarm edit dialog."));
@@ -1201,7 +1201,7 @@ ViewPrefTab::ViewPrefTab(TQVBox* frame)
mTooltipShowAlarms = new TQCheckBox(i18n("Show next &24 hours' alarms"), group, "tooltipShow");
mTooltipShowAlarms->setMinimumSize(mTooltipShowAlarms->sizeHint());
- connect(mTooltipShowAlarms, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotTooltipAlarmsToggled(bool)));
+ connect(mTooltipShowAlarms, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotTooltipAlarmsToggled(bool)));
TQWhatsThis::add(mTooltipShowAlarms,
i18n("Specify whether to include in the system tray tooltip, a summary of alarms due in the next 24 hours"));
grid->addMultiCellWidget(mTooltipShowAlarms, 1, 1, 0, 2, TQt::AlignAuto);
@@ -1210,7 +1210,7 @@ ViewPrefTab::ViewPrefTab(TQVBox* frame)
box->setSpacing(KDialog::spacingHint());
mTooltipMaxAlarms = new TQCheckBox(i18n("Ma&ximum number of alarms to show:"), box, "tooltipMax");
mTooltipMaxAlarms->setMinimumSize(mTooltipMaxAlarms->sizeHint());
- connect(mTooltipMaxAlarms, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotTooltipMaxToggled(bool)));
+ connect(mTooltipMaxAlarms, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotTooltipMaxToggled(bool)));
mTooltipMaxAlarmCount = new SpinBox(1, 99, 1, box);
mTooltipMaxAlarmCount->setLineShiftStep(5);
mTooltipMaxAlarmCount->setMinimumSize(mTooltipMaxAlarmCount->sizeHint());
@@ -1221,14 +1221,14 @@ ViewPrefTab::ViewPrefTab(TQVBox* frame)
mTooltipShowTime = new TQCheckBox(MainWindow::i18n_m_ShowAlarmTime(), group, "tooltipTime");
mTooltipShowTime->setMinimumSize(mTooltipShowTime->sizeHint());
- connect(mTooltipShowTime, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotTooltipTimeToggled(bool)));
+ connect(mTooltipShowTime, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotTooltipTimeToggled(bool)));
TQWhatsThis::add(mTooltipShowTime,
i18n("Specify whether to show in the system tray tooltip, the time at which each alarm is due"));
grid->addMultiCellWidget(mTooltipShowTime, 3, 3, 1, 2, TQt::AlignAuto);
mTooltipShowTimeTo = new TQCheckBox(MainWindow::i18n_l_ShowTimeToAlarm(), group, "tooltipTimeTo");
mTooltipShowTimeTo->setMinimumSize(mTooltipShowTimeTo->sizeHint());
- connect(mTooltipShowTimeTo, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotTooltipTimeToToggled(bool)));
+ connect(mTooltipShowTimeTo, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotTooltipTimeToToggled(bool)));
TQWhatsThis::add(mTooltipShowTimeTo,
i18n("Specify whether to show in the system tray tooltip, how long until each alarm is due"));
grid->addMultiCellWidget(mTooltipShowTimeTo, 4, 4, 1, 2, TQt::AlignAuto);
diff --git a/kalarm/prefdlg.h b/kalarm/prefdlg.h
index a58e22d7..94a7da45 100644
--- a/kalarm/prefdlg.h
+++ b/kalarm/prefdlg.h
@@ -53,7 +53,7 @@ class MiscPrefTab;
// The Preferences dialog
class KAlarmPrefDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
static void display();
@@ -83,7 +83,7 @@ class KAlarmPrefDlg : public KDialogBase
// Base class for each tab in the Preferences dialog
class PrefsTabBase : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
PrefsTabBase(TQVBox*);
@@ -105,7 +105,7 @@ class PrefsTabBase : public TQWidget
// Miscellaneous tab of the Preferences dialog
class MiscPrefTab : public PrefsTabBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
MiscPrefTab(TQVBox*);
@@ -151,7 +151,7 @@ class MiscPrefTab : public PrefsTabBase
// Email tab of the Preferences dialog
class EmailPrefTab : public PrefsTabBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
EmailPrefTab(TQVBox*);
@@ -187,7 +187,7 @@ class EmailPrefTab : public PrefsTabBase
// Edit defaults tab of the Preferences dialog
class EditPrefTab : public PrefsTabBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
EditPrefTab(TQVBox*);
@@ -226,7 +226,7 @@ class EditPrefTab : public PrefsTabBase
// View tab of the Preferences dialog
class ViewPrefTab : public PrefsTabBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
ViewPrefTab(TQVBox*);
@@ -259,7 +259,7 @@ class ViewPrefTab : public PrefsTabBase
// Font & Colour tab of the Preferences dialog
class FontColourPrefTab : public PrefsTabBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
FontColourPrefTab(TQVBox*);
diff --git a/kalarm/preferences.h b/kalarm/preferences.h
index 77adeb58..cce6c6bb 100644
--- a/kalarm/preferences.h
+++ b/kalarm/preferences.h
@@ -41,7 +41,7 @@ class TQWidget;
// Settings configured in the Preferences dialog
class Preferences : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
enum MailClient { SENDMAIL, KMAIL };
diff --git a/kalarm/recurrenceedit.cpp b/kalarm/recurrenceedit.cpp
index 4a61ed66..feee5e84 100644
--- a/kalarm/recurrenceedit.cpp
+++ b/kalarm/recurrenceedit.cpp
@@ -103,7 +103,7 @@ RecurrenceEdit::RecurrenceEdit(bool readOnly, TQWidget* parent, const char* name
* selection of its corresponding radio button.
*/
- TQGroupBox* recurGroup = new TQGroupBox(1, Qt::Vertical, i18n("Recurrence Rule"), this, "recurGroup");
+ TQGroupBox* recurGroup = new TQGroupBox(1, TQt::Vertical, i18n("Recurrence Rule"), this, "recurGroup");
topLayout->addWidget(recurGroup);
TQFrame* ruleFrame = new TQFrame(recurGroup, "ruleFrame");
layout = new TQVBoxLayout(ruleFrame, 0);
@@ -111,12 +111,12 @@ RecurrenceEdit::RecurrenceEdit(bool readOnly, TQWidget* parent, const char* name
layout = new TQHBoxLayout(layout, 0);
TQBoxLayout* lay = new TQVBoxLayout(layout, 0);
- mRuleButtonGroup = new ButtonGroup(1, Qt::Horizontal, ruleFrame);
+ mRuleButtonGroup = new ButtonGroup(1, TQt::Horizontal, ruleFrame);
mRuleButtonGroup->setInsideMargin(0);
mRuleButtonGroup->setFrameStyle(TQFrame::NoFrame);
lay->addWidget(mRuleButtonGroup);
lay->addStretch(); // top-adjust the interval radio buttons
- connect(mRuleButtonGroup, TQT_SIGNAL(buttonSet(int)), TQT_SLOT(periodClicked(int)));
+ connect(mRuleButtonGroup, TQ_SIGNAL(buttonSet(int)), TQ_SLOT(periodClicked(int)));
mNoneButton = new RadioButton(i18n_Norecur(), mRuleButtonGroup);
mNoneButton->setFixedSize(mNoneButton->sizeHint());
@@ -172,8 +172,8 @@ RecurrenceEdit::RecurrenceEdit(bool readOnly, TQWidget* parent, const char* name
mSubRepetition = new RepetitionButton(i18n("Sub-Repetition"), true, ruleFrame);
mSubRepetition->setFixedSize(mSubRepetition->sizeHint());
mSubRepetition->setReadOnly(mReadOnly);
- connect(mSubRepetition, TQT_SIGNAL(needsInitialisation()), TQT_SIGNAL(repeatNeedsInitialisation()));
- connect(mSubRepetition, TQT_SIGNAL(changed()), TQT_SIGNAL(frequencyChanged()));
+ connect(mSubRepetition, TQ_SIGNAL(needsInitialisation()), TQ_SIGNAL(repeatNeedsInitialisation()));
+ connect(mSubRepetition, TQ_SIGNAL(changed()), TQ_SIGNAL(frequencyChanged()));
TQWhatsThis::add(mSubRepetition, i18n("Set up a repetition within the recurrence, to trigger the alarm multiple times each time the recurrence is due."));
lay->addSpacing(KDialog::spacingHint());
lay->addWidget(mSubRepetition);
@@ -196,11 +196,11 @@ RecurrenceEdit::RecurrenceEdit(bool readOnly, TQWidget* parent, const char* name
mMonthlyRule = new MonthlyRule(mReadOnly, ruleFrame, "monthFrame");
mYearlyRule = new YearlyRule(mReadOnly, ruleFrame, "yearFrame");
- connect(mSubDailyRule, TQT_SIGNAL(frequencyChanged()), this, TQT_SIGNAL(frequencyChanged()));
- connect(mDailyRule, TQT_SIGNAL(frequencyChanged()), this, TQT_SIGNAL(frequencyChanged()));
- connect(mWeeklyRule, TQT_SIGNAL(frequencyChanged()), this, TQT_SIGNAL(frequencyChanged()));
- connect(mMonthlyRule, TQT_SIGNAL(frequencyChanged()), this, TQT_SIGNAL(frequencyChanged()));
- connect(mYearlyRule, TQT_SIGNAL(frequencyChanged()), this, TQT_SIGNAL(frequencyChanged()));
+ connect(mSubDailyRule, TQ_SIGNAL(frequencyChanged()), this, TQ_SIGNAL(frequencyChanged()));
+ connect(mDailyRule, TQ_SIGNAL(frequencyChanged()), this, TQ_SIGNAL(frequencyChanged()));
+ connect(mWeeklyRule, TQ_SIGNAL(frequencyChanged()), this, TQ_SIGNAL(frequencyChanged()));
+ connect(mMonthlyRule, TQ_SIGNAL(frequencyChanged()), this, TQ_SIGNAL(frequencyChanged()));
+ connect(mYearlyRule, TQ_SIGNAL(frequencyChanged()), this, TQ_SIGNAL(frequencyChanged()));
mRuleStack = new TQWidgetStack(ruleFrame);
layout->addWidget(mRuleStack);
@@ -217,7 +217,7 @@ RecurrenceEdit::RecurrenceEdit(bool readOnly, TQWidget* parent, const char* name
// which specify how long the recurrence is to last.
mRangeButtonGroup = new ButtonGroup(i18n("Recurrence End"), this, "mRangeButtonGroup");
- connect(mRangeButtonGroup, TQT_SIGNAL(buttonSet(int)), TQT_SLOT(rangeTypeClicked()));
+ connect(mRangeButtonGroup, TQ_SIGNAL(buttonSet(int)), TQ_SLOT(rangeTypeClicked()));
topLayout->addWidget(mRangeButtonGroup);
TQVBoxLayout* vlayout = new TQVBoxLayout(mRangeButtonGroup, KDialog::marginHint(), KDialog::spacingHint());
@@ -239,7 +239,7 @@ RecurrenceEdit::RecurrenceEdit(bool readOnly, TQWidget* parent, const char* name
mRepeatCountEntry->setLineShiftStep(10);
mRepeatCountEntry->setSelectOnStep(false);
mRepeatCountEntry->setReadOnly(mReadOnly);
- connect(mRepeatCountEntry, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(repeatCountChanged(int)));
+ connect(mRepeatCountEntry, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(repeatCountChanged(int)));
TQWhatsThis::add(mRepeatCountEntry,
i18n("Enter the total number of times to trigger the alarm"));
mRepeatCountButton->setFocusWidget(mRepeatCountEntry);
@@ -272,7 +272,7 @@ RecurrenceEdit::RecurrenceEdit(bool readOnly, TQWidget* parent, const char* name
mEndAnyTimeCheckBox = new CheckBox(i18n("Any time"), mRangeButtonGroup);
mEndAnyTimeCheckBox->setFixedSize(mEndAnyTimeCheckBox->sizeHint());
mEndAnyTimeCheckBox->setReadOnly(mReadOnly);
- connect(mEndAnyTimeCheckBox, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotAnyTimeToggled(bool)));
+ connect(mEndAnyTimeCheckBox, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotAnyTimeToggled(bool)));
TQWhatsThis::add(mEndAnyTimeCheckBox,
i18n("Stop repeating the alarm after your first login on or after the specified end date"));
layout->addWidget(mEndDateButton);
@@ -300,7 +300,7 @@ RecurrenceEdit::RecurrenceEdit(bool readOnly, TQWidget* parent, const char* name
mExceptionDateList = new TQListBox(mExceptionGroup);
mExceptionDateList->setSizePolicy(TQSizePolicy(TQSizePolicy::Expanding, TQSizePolicy::Expanding));
- connect(mExceptionDateList, TQT_SIGNAL(selectionChanged()), TQT_SLOT(enableExceptionButtons()));
+ connect(mExceptionDateList, TQ_SIGNAL(selectionChanged()), TQ_SLOT(enableExceptionButtons()));
TQWhatsThis::add(mExceptionDateList,
i18n("The list of exceptions, i.e. dates/times excluded from the recurrence"));
vlayout->addWidget(mExceptionDateList);
@@ -325,21 +325,21 @@ RecurrenceEdit::RecurrenceEdit(bool readOnly, TQWidget* parent, const char* name
layout = new TQHBoxLayout(vlayout, KDialog::spacingHint());
TQPushButton* button = new TQPushButton(i18n("Add"), mExceptionGroup);
button->setFixedSize(button->sizeHint());
- connect(button, TQT_SIGNAL(clicked()), TQT_SLOT(addException()));
+ connect(button, TQ_SIGNAL(clicked()), TQ_SLOT(addException()));
TQWhatsThis::add(button,
i18n("Add the date entered above to the exceptions list"));
layout->addWidget(button);
mChangeExceptionButton = new TQPushButton(i18n("Change"), mExceptionGroup);
mChangeExceptionButton->setFixedSize(mChangeExceptionButton->sizeHint());
- connect(mChangeExceptionButton, TQT_SIGNAL(clicked()), TQT_SLOT(changeException()));
+ connect(mChangeExceptionButton, TQ_SIGNAL(clicked()), TQ_SLOT(changeException()));
TQWhatsThis::add(mChangeExceptionButton,
i18n("Replace the currently highlighted item in the exceptions list with the date entered above"));
layout->addWidget(mChangeExceptionButton);
mDeleteExceptionButton = new TQPushButton(i18n("Delete"), mExceptionGroup);
mDeleteExceptionButton->setFixedSize(mDeleteExceptionButton->sizeHint());
- connect(mDeleteExceptionButton, TQT_SIGNAL(clicked()), TQT_SLOT(deleteException()));
+ connect(mDeleteExceptionButton, TQ_SIGNAL(clicked()), TQ_SLOT(deleteException()));
TQWhatsThis::add(mDeleteExceptionButton,
i18n("Remove the currently highlighted item from the exceptions list"));
layout->addWidget(mDeleteExceptionButton);
@@ -712,7 +712,7 @@ void RecurrenceEdit::enableExceptionButtons()
mChangeExceptionButton->setEnabled(enable);
// Prevent the exceptions list box receiving keyboard focus is it's empty
- mExceptionDateList->setFocusPolicy(mExceptionDateList->count() ? TQ_WheelFocus : TQ_NoFocus);
+ mExceptionDateList->setFocusPolicy(mExceptionDateList->count() ? TQWidget::WheelFocus : TQWidget::NoFocus);
}
/******************************************************************************
@@ -1137,7 +1137,7 @@ Rule::Rule(const TQString& freqText, const TQString& freqWhatsThis, bool time, b
mIntSpinBox->setFixedSize(mIntSpinBox->sizeHint());
mIntSpinBox->setReadOnly(readOnly);
}
- connect(mSpinBox, TQT_SIGNAL(valueChanged(int)), TQT_SIGNAL(frequencyChanged()));
+ connect(mSpinBox, TQ_SIGNAL(valueChanged(int)), TQ_SIGNAL(frequencyChanged()));
label->setBuddy(mSpinBox);
label = new TQLabel(freqText, box);
label->setFixedSize(label->sizeHint());
@@ -1368,7 +1368,7 @@ MonthYearRule::MonthYearRule(const TQString& freqText, const TQString& freqWhats
mDayCombo->setReadOnly(readOnly);
TQWhatsThis::add(mDayCombo, i18n("Select the day of the month on which to repeat the alarm"));
mDayButton->setFocusWidget(mDayCombo);
- connect(mDayCombo, TQT_SIGNAL(activated(int)), TQT_SLOT(slotDaySelected(int)));
+ connect(mDayCombo, TQ_SIGNAL(activated(int)), TQ_SLOT(slotDaySelected(int)));
box->setStretchFactor(new TQWidget(box), 1); // left adjust the controls
box->setFixedHeight(box->sizeHint().height());
@@ -1418,7 +1418,7 @@ MonthYearRule::MonthYearRule(const TQString& freqText, const TQString& freqWhats
box->setStretchFactor(new TQWidget(box), 1); // left adjust the controls
box->setFixedHeight(box->sizeHint().height());
- connect(mButtonGroup, TQT_SIGNAL(buttonSet(int)), TQT_SLOT(clicked(int)));
+ connect(mButtonGroup, TQ_SIGNAL(buttonSet(int)), TQ_SLOT(clicked(int)));
}
MonthYearRule::DayPosType MonthYearRule::type() const
@@ -1567,7 +1567,7 @@ YearlyRule::YearlyRule(bool readOnly, TQWidget* parent, const char* name)
mMonthBox[i]->setReadOnly(readOnly);
grid->addWidget(mMonthBox[i], i%3, i/3, TQt::AlignAuto);
}
- connect(mMonthBox[1], TQT_SIGNAL(toggled(bool)), TQT_SLOT(enableFeb29()));
+ connect(mMonthBox[1], TQ_SIGNAL(toggled(bool)), TQ_SLOT(enableFeb29()));
w->setFixedHeight(w->sizeHint().height());
TQWhatsThis::add(w, i18n("Select the months of the year in which to repeat the alarm"));
diff --git a/kalarm/recurrenceedit.h b/kalarm/recurrenceedit.h
index 03d492c0..df99e4c7 100644
--- a/kalarm/recurrenceedit.h
+++ b/kalarm/recurrenceedit.h
@@ -55,7 +55,7 @@ class YearlyRule;
class RecurrenceEdit : public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
public:
// Don't alter the order of these recurrence types
diff --git a/kalarm/recurrenceeditprivate.h b/kalarm/recurrenceeditprivate.h
index a3824851..b8bf7818 100644
--- a/kalarm/recurrenceeditprivate.h
+++ b/kalarm/recurrenceeditprivate.h
@@ -46,7 +46,7 @@ class NoRule : public TQFrame
class Rule : public NoRule
{
- Q_OBJECT
+ TQ_OBJECT
public:
Rule(const TQString& freqText, const TQString& freqWhatsThis, bool time, bool readOnly,
@@ -72,7 +72,7 @@ class Rule : public NoRule
// Subdaily rule choices
class SubDailyRule : public Rule
{
- Q_OBJECT
+ TQ_OBJECT
public:
SubDailyRule(bool readOnly, TQWidget* parent, const char* name = 0);
@@ -81,7 +81,7 @@ class SubDailyRule : public Rule
// Daily/weekly rule choices base class
class DayWeekRule : public Rule
{
- Q_OBJECT
+ TQ_OBJECT
public:
DayWeekRule(const TQString& freqText, const TQString& freqWhatsThis, const TQString& daysWhatsThis,
@@ -116,7 +116,7 @@ class WeeklyRule : public DayWeekRule
// Monthly/yearly rule choices base class
class MonthYearRule : public Rule
{
- Q_OBJECT
+ TQ_OBJECT
public:
enum DayPosType { DATE, POS };
@@ -171,7 +171,7 @@ class MonthlyRule : public MonthYearRule
// Yearly rule choices
class YearlyRule : public MonthYearRule
{
- Q_OBJECT
+ TQ_OBJECT
public:
YearlyRule(bool readOnly, TQWidget* parent, const char* name = 0);
diff --git a/kalarm/reminder.cpp b/kalarm/reminder.cpp
index dd4b4151..7f327a85 100644
--- a/kalarm/reminder.cpp
+++ b/kalarm/reminder.cpp
@@ -52,7 +52,7 @@ Reminder::Reminder(const TQString& caption, const TQString& reminderWhatsThis, c
mTime = new TimeSelector(caption, i18n("in advance"), reminderWhatsThis,
valueWhatsThis, allowHourMinute, this, "timeOption");
mTime->setFixedSize(mTime->sizeHint());
- connect(mTime, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotReminderToggled(bool)));
+ connect(mTime, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotReminderToggled(bool)));
topLayout->addWidget(mTime);
if (showOnceOnly)
diff --git a/kalarm/reminder.h b/kalarm/reminder.h
index 14e2e9df..c8e55953 100644
--- a/kalarm/reminder.h
+++ b/kalarm/reminder.h
@@ -29,7 +29,7 @@ class CheckBox;
class Reminder : public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
public:
Reminder(const TQString& caption, const TQString& reminderWhatsThis, const TQString& valueWhatsThis,
diff --git a/kalarm/repetition.cpp b/kalarm/repetition.cpp
index 4305cd65..8a964eac 100644
--- a/kalarm/repetition.cpp
+++ b/kalarm/repetition.cpp
@@ -52,7 +52,7 @@ RepetitionButton::RepetitionButton(const TQString& caption, bool waitForInitiali
{
setToggleButton(true);
setOn(false);
- connect(this, TQT_SIGNAL(clicked()), TQT_SLOT(slotPressed()));
+ connect(this, TQ_SIGNAL(clicked()), TQ_SLOT(slotPressed()));
}
void RepetitionButton::set(int interval, int count)
@@ -166,12 +166,12 @@ RepetitionDlg::RepetitionDlg(const TQString& caption, bool readOnly, TQWidget* p
i18n("Enter the time between repetitions of the alarm"),
true, page);
mTimeSelector->setFixedSize(mTimeSelector->sizeHint());
- connect(mTimeSelector, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(intervalChanged(int)));
- connect(mTimeSelector, TQT_SIGNAL(toggled(bool)), TQT_SLOT(repetitionToggled(bool)));
+ connect(mTimeSelector, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(intervalChanged(int)));
+ connect(mTimeSelector, TQ_SIGNAL(toggled(bool)), TQ_SLOT(repetitionToggled(bool)));
topLayout->addWidget(mTimeSelector, 0, TQt::AlignAuto);
mButtonGroup = new ButtonGroup(page, "buttonGroup");
- connect(mButtonGroup, TQT_SIGNAL(buttonSet(int)), TQT_SLOT(typeClicked()));
+ connect(mButtonGroup, TQ_SIGNAL(buttonSet(int)), TQ_SLOT(typeClicked()));
topLayout->addWidget(mButtonGroup);
TQBoxLayout* vlayout = new TQVBoxLayout(mButtonGroup, marginHint(), spacing);
@@ -185,7 +185,7 @@ RepetitionDlg::RepetitionDlg(const TQString& caption, bool readOnly, TQWidget* p
mCount->setFixedSize(mCount->sizeHint());
mCount->setLineShiftStep(10);
mCount->setSelectOnStep(false);
- connect(mCount, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(countChanged(int)));
+ connect(mCount, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(countChanged(int)));
TQWhatsThis::add(mCount,
i18n("Enter the number of times to trigger the alarm after its initial occurrence"));
layout->addWidget(mCount);
@@ -200,7 +200,7 @@ RepetitionDlg::RepetitionDlg(const TQString& caption, bool readOnly, TQWidget* p
layout->addWidget(mDurationButton);
mDuration = new TimePeriod(true, mButtonGroup);
mDuration->setFixedSize(mDuration->sizeHint());
- connect(mDuration, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(durationChanged(int)));
+ connect(mDuration, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(durationChanged(int)));
TQWhatsThis::add(mDuration,
i18n("Enter the length of time to repeat the alarm"));
layout->addWidget(mDuration);
diff --git a/kalarm/repetition.h b/kalarm/repetition.h
index b28293c3..b59216ca 100644
--- a/kalarm/repetition.h
+++ b/kalarm/repetition.h
@@ -34,7 +34,7 @@ class RepetitionDlg;
class RepetitionButton : public TQPushButton
{
- Q_OBJECT
+ TQ_OBJECT
public:
RepetitionButton(const TQString& caption, bool waitForInitialisation, TQWidget* parent, const char* name = 0);
@@ -70,7 +70,7 @@ class RepetitionButton : public TQPushButton
class RepetitionDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
RepetitionDlg(const TQString& caption, bool readOnly, TQWidget* parent = 0, const char* name = 0);
diff --git a/kalarm/sounddlg.cpp b/kalarm/sounddlg.cpp
index cb539512..a94bb6fe 100644
--- a/kalarm/sounddlg.cpp
+++ b/kalarm/sounddlg.cpp
@@ -86,7 +86,7 @@ SoundDlg::SoundDlg(const TQString& file, float volume, float fadeVolume, int fad
mFilePlay = new TQPushButton(box);
mFilePlay->setPixmap(SmallIcon("media-playback-start"));
mFilePlay->setFixedSize(mFilePlay->sizeHint());
- connect(mFilePlay, TQT_SIGNAL(clicked()), TQT_SLOT(playSound()));
+ connect(mFilePlay, TQ_SIGNAL(clicked()), TQ_SLOT(playSound()));
TQToolTip::add(mFilePlay, i18n("Test the sound"));
TQWhatsThis::add(mFilePlay, i18n("Play the selected sound file."));
@@ -99,7 +99,7 @@ SoundDlg::SoundDlg(const TQString& file, float volume, float fadeVolume, int fad
mFileBrowseButton = new PushButton(box);
mFileBrowseButton->setPixmap(SmallIcon("document-open"));
mFileBrowseButton->setFixedSize(mFileBrowseButton->sizeHint());
- connect(mFileBrowseButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotPickFile()));
+ connect(mFileBrowseButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotPickFile()));
TQToolTip::add(mFileBrowseButton, i18n("Choose a file"));
TQWhatsThis::add(mFileBrowseButton, i18n("Select a sound file to play."));
@@ -128,12 +128,12 @@ SoundDlg::SoundDlg(const TQString& file, float volume, float fadeVolume, int fad
grid->addMultiCellWidget(box, 1, 1, 0, 2);
mVolumeCheckbox = new CheckBox(i18n_v_SetVolume(), box);
mVolumeCheckbox->setFixedSize(mVolumeCheckbox->sizeHint());
- connect(mVolumeCheckbox, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotVolumeToggled(bool)));
+ connect(mVolumeCheckbox, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotVolumeToggled(bool)));
TQWhatsThis::add(mVolumeCheckbox,
i18n("Select to choose the volume for playing the sound file."));
// Volume slider
- mVolumeSlider = new Slider(0, 100, 10, 0, Qt::Horizontal, box);
+ mVolumeSlider = new Slider(0, 100, 10, 0, TQt::Horizontal, box);
mVolumeSlider->setTickmarks(TQSlider::Below);
mVolumeSlider->setTickInterval(10);
mVolumeSlider->setSizePolicy(TQSizePolicy(TQSizePolicy::Expanding, TQSizePolicy::Fixed));
@@ -143,7 +143,7 @@ SoundDlg::SoundDlg(const TQString& file, float volume, float fadeVolume, int fad
// Fade checkbox
mFadeCheckbox = new CheckBox(i18n("Fade"), group);
mFadeCheckbox->setFixedSize(mFadeCheckbox->sizeHint());
- connect(mFadeCheckbox, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotFadeToggled(bool)));
+ connect(mFadeCheckbox, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotFadeToggled(bool)));
TQWhatsThis::add(mFadeCheckbox,
i18n("Select to fade the volume when the sound file first starts to play."));
grid->addMultiCellWidget(mFadeCheckbox, 2, 2, 1, 2, alignment);
@@ -168,7 +168,7 @@ SoundDlg::SoundDlg(const TQString& file, float volume, float fadeVolume, int fad
grid->addWidget(mFadeVolumeBox, 4, 2);
label = new TQLabel(i18n("Initial volume:"), mFadeVolumeBox);
label->setFixedSize(label->sizeHint());
- mFadeSlider = new Slider(0, 100, 10, 0, Qt::Horizontal, mFadeVolumeBox);
+ mFadeSlider = new Slider(0, 100, 10, 0, TQt::Horizontal, mFadeVolumeBox);
mFadeSlider->setTickmarks(TQSlider::Below);
mFadeSlider->setTickInterval(10);
mFadeSlider->setSizePolicy(TQSizePolicy(TQSizePolicy::Expanding, TQSizePolicy::Fixed));
@@ -303,7 +303,7 @@ void SoundDlg::playSound()
return;
}
mPlayTimer = new TQTimer(this);
- connect(mPlayTimer, TQT_SIGNAL(timeout()), TQT_SLOT(checkAudioPlay()));
+ connect(mPlayTimer, TQ_SIGNAL(timeout()), TQ_SLOT(checkAudioPlay()));
mArtsDispatcher = new KArtsDispatcher;
mPlayStarted = false;
KArtsServer aserver;
@@ -313,7 +313,7 @@ void SoundDlg::playSound()
mFilePlay->setPixmap(SmallIcon("media-playback-stop"));
TQToolTip::add(mFilePlay, i18n("Stop sound"));
TQWhatsThis::add(mFilePlay, i18n("Stop playing the sound"));
- connect(mPlayObject, TQT_SIGNAL(playObjectCreated()), TQT_SLOT(checkAudioPlay()));
+ connect(mPlayObject, TQ_SIGNAL(playObjectCreated()), TQ_SLOT(checkAudioPlay()));
if (!mPlayObject->object().isNull())
checkAudioPlay();
#endif
diff --git a/kalarm/sounddlg.h b/kalarm/sounddlg.h
index 70f01add..62c46ade 100644
--- a/kalarm/sounddlg.h
+++ b/kalarm/sounddlg.h
@@ -38,7 +38,7 @@ class Slider;
class SoundDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
SoundDlg(const TQString& file, float volume, float fadeVolume, int fadeSeconds, bool repeat,
diff --git a/kalarm/soundpicker.cpp b/kalarm/soundpicker.cpp
index 947e9fb9..d9e43190 100644
--- a/kalarm/soundpicker.cpp
+++ b/kalarm/soundpicker.cpp
@@ -74,7 +74,7 @@ SoundPicker::SoundPicker(TQWidget* parent, const char* name)
mTypeCombo->insertItem(i18n_File()); // index PLAY_FILE
mSpeakShowing = !theApp()->speechEnabled();
showSpeak(!mSpeakShowing); // index SPEAK (only displayed if appropriate)
- connect(mTypeCombo, TQT_SIGNAL(activated(int)), TQT_SLOT(slotTypeSelected(int)));
+ connect(mTypeCombo, TQ_SIGNAL(activated(int)), TQ_SLOT(slotTypeSelected(int)));
label->setBuddy(mTypeCombo);
soundLayout->addWidget(mTypeBox);
@@ -82,7 +82,7 @@ SoundPicker::SoundPicker(TQWidget* parent, const char* name)
mFilePicker = new PushButton(this);
mFilePicker->setPixmap(SmallIcon("playsound"));
mFilePicker->setFixedSize(mFilePicker->sizeHint());
- connect(mFilePicker, TQT_SIGNAL(clicked()), TQT_SLOT(slotPickFile()));
+ connect(mFilePicker, TQ_SIGNAL(clicked()), TQ_SLOT(slotPickFile()));
TQToolTip::add(mFilePicker, i18n("Configure sound file"));
TQWhatsThis::add(mFilePicker, i18n("Configure a sound file to play when the alarm is displayed."));
soundLayout->addWidget(mFilePicker);
diff --git a/kalarm/soundpicker.h b/kalarm/soundpicker.h
index 3f150b19..72ff4a86 100644
--- a/kalarm/soundpicker.h
+++ b/kalarm/soundpicker.h
@@ -32,7 +32,7 @@ class PushButton;
class SoundPicker : public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Sound options which can be selected for when the alarm is displayed.
diff --git a/kalarm/specialactions.cpp b/kalarm/specialactions.cpp
index fd4b7a7d..f2599e35 100644
--- a/kalarm/specialactions.cpp
+++ b/kalarm/specialactions.cpp
@@ -46,7 +46,7 @@ SpecialActionsButton::SpecialActionsButton(const TQString& caption, TQWidget* pa
{
setToggleButton(true);
setOn(false);
- connect(this, TQT_SIGNAL(clicked()), TQT_SLOT(slotButtonPressed()));
+ connect(this, TQ_SIGNAL(clicked()), TQ_SLOT(slotButtonPressed()));
TQWhatsThis::add(this,
i18n("Specify actions to execute before and after the alarm is displayed."));
}
diff --git a/kalarm/specialactions.h b/kalarm/specialactions.h
index 31df5545..db7192e5 100644
--- a/kalarm/specialactions.h
+++ b/kalarm/specialactions.h
@@ -30,7 +30,7 @@ class KLineEdit;
class SpecialActionsButton : public TQPushButton
{
- Q_OBJECT
+ TQ_OBJECT
public:
SpecialActionsButton(const TQString& caption, TQWidget* parent = 0, const char* name = 0);
@@ -56,7 +56,7 @@ class SpecialActionsButton : public TQPushButton
// Pre- and post-alarm actions widget
class SpecialActions : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
SpecialActions(TQWidget* parent = 0, const char* name = 0);
@@ -76,7 +76,7 @@ class SpecialActions : public TQWidget
// Pre- and post-alarm actions dialogue displayed by the push button
class SpecialActionsDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
SpecialActionsDlg(const TQString& preAction, const TQString& postAction,
diff --git a/kalarm/startdaytimer.cpp b/kalarm/startdaytimer.cpp
index 84f0096c..ef8ddf86 100644
--- a/kalarm/startdaytimer.cpp
+++ b/kalarm/startdaytimer.cpp
@@ -29,7 +29,7 @@ StartOfDayTimer* StartOfDayTimer::mInstance = 0;
StartOfDayTimer::StartOfDayTimer()
: DailyTimer(Preferences::startOfDay(), false)
{
- Preferences::connect(TQT_SIGNAL(startOfDayChanged(const TQTime&)), this, TQT_SLOT(startOfDayChanged(const TQTime&)));
+ Preferences::connect(TQ_SIGNAL(startOfDayChanged(const TQTime&)), this, TQ_SLOT(startOfDayChanged(const TQTime&)));
}
StartOfDayTimer* StartOfDayTimer::instance()
diff --git a/kalarm/startdaytimer.h b/kalarm/startdaytimer.h
index e422f617..23d84073 100644
--- a/kalarm/startdaytimer.h
+++ b/kalarm/startdaytimer.h
@@ -34,7 +34,7 @@
*/
class StartOfDayTimer : public DailyTimer
{
- Q_OBJECT
+ TQ_OBJECT
public:
virtual ~StartOfDayTimer() { }
diff --git a/kalarm/templatedlg.cpp b/kalarm/templatedlg.cpp
index 3754487a..ebf7f1c6 100644
--- a/kalarm/templatedlg.cpp
+++ b/kalarm/templatedlg.cpp
@@ -54,34 +54,34 @@ TemplateDlg::TemplateDlg(TQWidget* parent, const char* name)
mTemplateList = new TemplateListView(true, i18n("The list of alarm templates"), topWidget);
mTemplateList->setSelectionMode(TQListView::Extended);
mTemplateList->setSizePolicy(TQSizePolicy(TQSizePolicy::Expanding, TQSizePolicy::Expanding));
- connect(mTemplateList, TQT_SIGNAL(selectionChanged()), TQT_SLOT(slotSelectionChanged()));
+ connect(mTemplateList, TQ_SIGNAL(selectionChanged()), TQ_SLOT(slotSelectionChanged()));
layout->addWidget(mTemplateList);
layout = new TQVBoxLayout(topLayout);
TQPushButton* button = new TQPushButton(i18n("&New..."), topWidget);
- connect(button, TQT_SIGNAL(clicked()), TQT_SLOT(slotNew()));
+ connect(button, TQ_SIGNAL(clicked()), TQ_SLOT(slotNew()));
TQWhatsThis::add(button, i18n("Create a new alarm template"));
layout->addWidget(button);
mEditButton = new TQPushButton(i18n("&Edit..."), topWidget);
- connect(mEditButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotEdit()));
+ connect(mEditButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotEdit()));
TQWhatsThis::add(mEditButton, i18n("Edit the currently highlighted alarm template"));
layout->addWidget(mEditButton);
mCopyButton = new TQPushButton(i18n("Co&py"), topWidget);
- connect(mCopyButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotCopy()));
+ connect(mCopyButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotCopy()));
TQWhatsThis::add(mCopyButton,
i18n("Create a new alarm template based on a copy of the currently highlighted template"));
layout->addWidget(mCopyButton);
mDeleteButton = new TQPushButton(i18n("&Delete"), topWidget);
- connect(mDeleteButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotDelete()));
+ connect(mDeleteButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotDelete()));
TQWhatsThis::add(mDeleteButton, i18n("Delete the currently highlighted alarm template"));
layout->addWidget(mDeleteButton);
TDEAccel* accel = new TDEAccel(this);
- accel->insert(TDEStdAccel::SelectAll, TQT_TQOBJECT(mTemplateList), TQT_SLOT(slotSelectAll()));
- accel->insert(TDEStdAccel::Deselect, TQT_TQOBJECT(mTemplateList), TQT_SLOT(slotDeselect()));
+ accel->insert(TDEStdAccel::SelectAll, mTemplateList, TQ_SLOT(slotSelectAll()));
+ accel->insert(TDEStdAccel::Deselect, mTemplateList, TQ_SLOT(slotDeselect()));
accel->readSettings();
mTemplateList->refresh();
diff --git a/kalarm/templatedlg.h b/kalarm/templatedlg.h
index f85c1058..4d814eb8 100644
--- a/kalarm/templatedlg.h
+++ b/kalarm/templatedlg.h
@@ -29,7 +29,7 @@ class KAEvent;
class TemplateDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
static TemplateDlg* create(TQWidget* parent = 0, const char* name = 0);
diff --git a/kalarm/templatelistview.h b/kalarm/templatelistview.h
index 530a073a..7d7d084d 100644
--- a/kalarm/templatelistview.h
+++ b/kalarm/templatelistview.h
@@ -48,7 +48,7 @@ class TemplateListViewItem : public EventListViewItemBase
class TemplateListView : public EventListViewBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit TemplateListView(bool includeCmdAlarms, const TQString& whatsThisText, TQWidget* parent = 0, const char* name = 0);
diff --git a/kalarm/templatemenuaction.cpp b/kalarm/templatemenuaction.cpp
index 5da72a6d..1bcabf12 100644
--- a/kalarm/templatemenuaction.cpp
+++ b/kalarm/templatemenuaction.cpp
@@ -35,9 +35,9 @@ TemplateMenuAction::TemplateMenuAction(const TQString& label, const TQString& ic
: TDEActionMenu(label, icon, actions, name)
{
setDelayed(false);
- connect(popupMenu(), TQT_SIGNAL(aboutToShow()), TQT_SLOT(slotInitMenu()));
- connect(popupMenu(), TQT_SIGNAL(activated(int)), TQT_SLOT(slotSelected(int)));
- connect(this, TQT_SIGNAL(selected(const KAEvent&)), receiver, slot);
+ connect(popupMenu(), TQ_SIGNAL(aboutToShow()), TQ_SLOT(slotInitMenu()));
+ connect(popupMenu(), TQ_SIGNAL(activated(int)), TQ_SLOT(slotSelected(int)));
+ connect(this, TQ_SIGNAL(selected(const KAEvent&)), receiver, slot);
}
/******************************************************************************
diff --git a/kalarm/templatemenuaction.h b/kalarm/templatemenuaction.h
index abcbf92c..51a1e4fa 100644
--- a/kalarm/templatemenuaction.h
+++ b/kalarm/templatemenuaction.h
@@ -27,7 +27,7 @@ class KAEvent;
class TemplateMenuAction : public TDEActionMenu
{
- Q_OBJECT
+ TQ_OBJECT
public:
TemplateMenuAction(const TQString& label, const TQString& icon, TQObject* receiver,
diff --git a/kalarm/templatepickdlg.cpp b/kalarm/templatepickdlg.cpp
index b3bc4488..9acd8fb8 100644
--- a/kalarm/templatepickdlg.cpp
+++ b/kalarm/templatepickdlg.cpp
@@ -46,9 +46,9 @@ TemplatePickDlg::TemplatePickDlg(TQWidget* parent, const char* name)
mTemplateList = new TemplateListView(includeCmdAlarms, i18n("Select a template to base the new alarm on."), topWidget, "list");
mTemplateList->setSelectionMode(TQListView::Single);
mTemplateList->refresh(); // populate the template list
- connect(mTemplateList, TQT_SIGNAL(selectionChanged()), TQT_SLOT(slotSelectionChanged()));
+ connect(mTemplateList, TQ_SIGNAL(selectionChanged()), TQ_SLOT(slotSelectionChanged()));
// Require a real double click (even if KDE is in single-click mode) to accept the selection
- connect(mTemplateList, TQT_SIGNAL(doubleClicked(TQListViewItem*, const TQPoint&, int)), TQT_SLOT(slotOk()));
+ connect(mTemplateList, TQ_SIGNAL(doubleClicked(TQListViewItem*, const TQPoint&, int)), TQ_SLOT(slotOk()));
topLayout->addWidget(mTemplateList);
slotSelectionChanged(); // enable or disable the OK button
diff --git a/kalarm/templatepickdlg.h b/kalarm/templatepickdlg.h
index d0a68536..a72ef216 100644
--- a/kalarm/templatepickdlg.h
+++ b/kalarm/templatepickdlg.h
@@ -28,7 +28,7 @@ class KAEvent;
class TemplatePickDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
TemplatePickDlg(TQWidget* parent = 0, const char* name = 0);
diff --git a/kalarm/timeselector.cpp b/kalarm/timeselector.cpp
index de7ef828..710152b4 100644
--- a/kalarm/timeselector.cpp
+++ b/kalarm/timeselector.cpp
@@ -44,7 +44,7 @@ TimeSelector::TimeSelector(const TQString& selectText, const TQString& postfix,
TQHBoxLayout* layout = new TQHBoxLayout(topLayout, KDialog::spacingHint());
mSelect = new CheckBox(selectText, this);
mSelect->setFixedSize(mSelect->sizeHint());
- connect(mSelect, TQT_SIGNAL(toggled(bool)), TQT_SLOT(selectToggled(bool)));
+ connect(mSelect, TQ_SIGNAL(toggled(bool)), TQ_SLOT(selectToggled(bool)));
TQWhatsThis::add(mSelect, selectWhatsThis);
layout->addWidget(mSelect);
@@ -54,7 +54,7 @@ TimeSelector::TimeSelector(const TQString& selectText, const TQString& postfix,
mPeriod = new TimePeriod(allowHourMinute, box);
mPeriod->setFixedSize(mPeriod->sizeHint());
mPeriod->setSelectOnStep(false);
- connect(mPeriod, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(periodChanged(int)));
+ connect(mPeriod, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(periodChanged(int)));
mSelect->setFocusWidget(mPeriod);
mPeriod->setEnabled(false);
diff --git a/kalarm/timeselector.h b/kalarm/timeselector.h
index 00cf15c5..7bb8d332 100644
--- a/kalarm/timeselector.h
+++ b/kalarm/timeselector.h
@@ -30,7 +30,7 @@ class CheckBox;
class TimeSelector : public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
public:
TimeSelector(const TQString& selectText, const TQString& postfix, const TQString& selectWhatsThis,
diff --git a/kalarm/traywindow.cpp b/kalarm/traywindow.cpp
index 93afa2e5..90bd92ed 100644
--- a/kalarm/traywindow.cpp
+++ b/kalarm/traywindow.cpp
@@ -87,16 +87,16 @@ TrayWindow::TrayWindow(MainWindow* parent, const char* name)
TDEActionCollection* actcol = actionCollection();
AlarmEnableAction* a = Daemon::createAlarmEnableAction(actcol, "tAlarmEnable");
a->plug(contextMenu());
- connect(a, TQT_SIGNAL(switched(bool)), TQT_SLOT(setEnabledStatus(bool)));
- KAlarm::createNewAlarmAction(i18n("&New Alarm..."), TQT_TQOBJECT(this), TQT_SLOT(slotNewAlarm()), actcol, "tNew")->plug(contextMenu());
- KAlarm::createNewFromTemplateAction(i18n("New Alarm From &Template"), TQT_TQOBJECT(this), TQT_SLOT(slotNewFromTemplate(const KAEvent&)), actcol, "tNewFromTempl")->plug(contextMenu());
- KStdAction::preferences(TQT_TQOBJECT(this), TQT_SLOT(slotPreferences()), actcol)->plug(contextMenu());
+ connect(a, TQ_SIGNAL(switched(bool)), TQ_SLOT(setEnabledStatus(bool)));
+ KAlarm::createNewAlarmAction(i18n("&New Alarm..."), this, TQ_SLOT(slotNewAlarm()), actcol, "tNew")->plug(contextMenu());
+ KAlarm::createNewFromTemplateAction(i18n("New Alarm From &Template"), this, TQ_SLOT(slotNewFromTemplate(const KAEvent&)), actcol, "tNewFromTempl")->plug(contextMenu());
+ KStdAction::preferences(this, TQ_SLOT(slotPreferences()), actcol)->plug(contextMenu());
// Replace the default handler for the Quit context menu item
const char* quitName = KStdAction::name(KStdAction::Quit);
actcol->remove(actcol->action(quitName));
actcol->tdeaccel()->remove(quitName);
- KStdAction::quit(TQT_TQOBJECT(this), TQT_SLOT(slotQuit()), actcol);
+ KStdAction::quit(this, TQ_SLOT(slotQuit()), actcol);
// Set icon to correspond with the alarms enabled menu status
Daemon::checkStatus();
@@ -173,12 +173,12 @@ void TrayWindow::setEnabledStatus(bool status)
*/
void TrayWindow::mousePressEvent(TQMouseEvent* e)
{
- if (e->button() == Qt::LeftButton && !theApp()->wantRunInSystemTray())
+ if (e->button() == TQt::LeftButton && !theApp()->wantRunInSystemTray())
{
// Left click: display/hide the first main window
mAssocMainWindow = MainWindow::toggleWindow(mAssocMainWindow);
}
- else if (e->button() == Qt::MidButton)
+ else if (e->button() == TQt::MidButton)
MainWindow::executeNew(); // display a New Alarm dialog
else
KSystemTray::mousePressEvent(e);
@@ -191,7 +191,7 @@ void TrayWindow::mousePressEvent(TQMouseEvent* e)
*/
void TrayWindow::mouseReleaseEvent(TQMouseEvent* e)
{
- if (e->button() == Qt::LeftButton && mAssocMainWindow && mAssocMainWindow->isVisible())
+ if (e->button() == TQt::LeftButton && mAssocMainWindow && mAssocMainWindow->isVisible())
{
mAssocMainWindow->raise();
mAssocMainWindow->setActiveWindow();
diff --git a/kalarm/traywindow.h b/kalarm/traywindow.h
index 322df238..eecc7663 100644
--- a/kalarm/traywindow.h
+++ b/kalarm/traywindow.h
@@ -31,7 +31,7 @@ class TrayTooltip;
class TrayWindow : public KSystemTray
{
- Q_OBJECT
+ TQ_OBJECT
public:
TrayWindow(MainWindow* parent, const char* name = 0);
diff --git a/kalarm/undo.cpp b/kalarm/undo.cpp
index d1d3602f..38d152c7 100644
--- a/kalarm/undo.cpp
+++ b/kalarm/undo.cpp
@@ -207,7 +207,7 @@ Undo::List Undo::mRedoList;
Undo* Undo::instance()
{
if (!mInstance)
- mInstance = new Undo(TQT_TQOBJECT(kapp));
+ mInstance = new Undo(kapp);
return mInstance;
}
diff --git a/kalarm/undo.h b/kalarm/undo.h
index 0f76408a..2f964e75 100644
--- a/kalarm/undo.h
+++ b/kalarm/undo.h
@@ -32,7 +32,7 @@ class UndoItem;
class Undo : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
enum Type { NONE, UNDO, REDO };
diff --git a/kandy/CMakeL10n.txt b/kandy/CMakeL10n.txt
index 5b3e85ee..bd70afb8 100644
--- a/kandy/CMakeL10n.txt
+++ b/kandy/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_create_template( "kandy" )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/kandy.desktop/"
+ SOURCES src/kandy.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/kandy/src/CMakeLists.txt b/kandy/src/CMakeLists.txt
index 04130591..0cd08ec7 100644
--- a/kandy/src/CMakeLists.txt
+++ b/kandy/src/CMakeLists.txt
@@ -32,7 +32,7 @@ link_directories(
##### other data ################################
tde_install_icons( kandy )
-install( FILES kandy.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+tde_create_translated_desktop( kandy.desktop )
install( FILES uninstall.desktop RENAME kandy.desktop DESTINATION ${APPS_INSTALL_DIR}/Utilities )
install( FILES kandy.kcfg DESTINATION ${KCFG_INSTALL_DIR} )
install( FILES kandyui.rc kandymobileui.rc DESTINATION ${DATA_INSTALL_DIR}/kandy )
diff --git a/kandy/src/cmdpropertiesdialog.h b/kandy/src/cmdpropertiesdialog.h
index 62ab0e3e..ca75dd1e 100644
--- a/kandy/src/cmdpropertiesdialog.h
+++ b/kandy/src/cmdpropertiesdialog.h
@@ -30,7 +30,7 @@ class ATCommand;
class CmdPropertiesDialog : public CmdPropertiesDialog_base
{
- Q_OBJECT
+ TQ_OBJECT
public:
CmdPropertiesDialog(ATCommand *cmd,TQWidget* parent=0,const char* name=0,
diff --git a/kandy/src/cmdpropertiesdialog_base.ui b/kandy/src/cmdpropertiesdialog_base.ui
index 7454b740..9b589d73 100644
--- a/kandy/src/cmdpropertiesdialog_base.ui
+++ b/kandy/src/cmdpropertiesdialog_base.ui
@@ -164,9 +164,9 @@
<slot>reject()</slot>
</connection>
</connections>
-<Q_SLOTS>
+<slots>
<slot>editParameterName(TQListViewItem *)</slot>
<slot access="protected">slotAccept()</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
</UI>
diff --git a/kandy/src/commandscheduler.cpp b/kandy/src/commandscheduler.cpp
index cc18a666..d6a95390 100644
--- a/kandy/src/commandscheduler.cpp
+++ b/kandy/src/commandscheduler.cpp
@@ -35,8 +35,8 @@ CommandScheduler::CommandScheduler(Modem *modem,TQObject *parent,
TQObject(parent,name),
mModem(modem)
{
- connect(mModem,TQT_SIGNAL(gotLine(const char *)),
- TQT_SLOT(processOutput(const char *)));
+ connect(mModem,TQ_SIGNAL(gotLine(const char *)),
+ TQ_SLOT(processOutput(const char *)));
}
void CommandScheduler::execute(ATCommand *command)
diff --git a/kandy/src/commandscheduler.h b/kandy/src/commandscheduler.h
index 5e3323e0..a1fd9a23 100644
--- a/kandy/src/commandscheduler.h
+++ b/kandy/src/commandscheduler.h
@@ -33,7 +33,7 @@
class Modem;
class CommandScheduler : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
CommandScheduler (Modem *modem,TQObject *parent = 0, const char *name = 0);
diff --git a/kandy/src/kandy.cpp b/kandy/src/kandy.cpp
index 13bd4ff6..cd2e9826 100644
--- a/kandy/src/kandy.cpp
+++ b/kandy/src/kandy.cpp
@@ -81,12 +81,12 @@ Kandy::Kandy(CommandScheduler *scheduler)
setAutoSaveSettings();
// allow the view to change the statusbar and caption
- connect(mView, TQT_SIGNAL(signalChangeStatusbar(const TQString&)),
- this, TQT_SLOT(changeStatusbar(const TQString&)));
- connect(mView, TQT_SIGNAL(signalChangeCaption(const TQString&)),
- this, TQT_SLOT(changeCaption(const TQString&)));
+ connect(mView, TQ_SIGNAL(signalChangeStatusbar(const TQString&)),
+ this, TQ_SLOT(changeStatusbar(const TQString&)));
+ connect(mView, TQ_SIGNAL(signalChangeCaption(const TQString&)),
+ this, TQ_SLOT(changeCaption(const TQString&)));
- connect(mView,TQT_SIGNAL(modifiedChanged(bool)),TQT_SLOT(setTitle()));
+ connect(mView,TQ_SIGNAL(modifiedChanged(bool)),TQ_SLOT(setTitle()));
TDEConfig *config = TDEGlobal::config();
config->setGroup("General");
@@ -123,26 +123,26 @@ void Kandy::save(const TQString & filename)
void Kandy::setupActions()
{
- KStdAction::open(TQT_TQOBJECT(this), TQT_SLOT(fileOpen()), actionCollection());
- KStdAction::save(TQT_TQOBJECT(this), TQT_SLOT(fileSave()), actionCollection());
- KStdAction::saveAs(TQT_TQOBJECT(this), TQT_SLOT(fileSaveAs()), actionCollection());
-// KStdAction::print(TQT_TQOBJECT(this), TQT_SLOT(filePrint()), actionCollection());
- KStdAction::quit(TQT_TQOBJECT(this), TQT_SLOT(close()), actionCollection());
+ KStdAction::open(this, TQ_SLOT(fileOpen()), actionCollection());
+ KStdAction::save(this, TQ_SLOT(fileSave()), actionCollection());
+ KStdAction::saveAs(this, TQ_SLOT(fileSaveAs()), actionCollection());
+// KStdAction::print(this, TQ_SLOT(filePrint()), actionCollection());
+ KStdAction::quit(this, TQ_SLOT(close()), actionCollection());
createStandardStatusBarAction();
setStandardToolBarMenuEnabled(true);
- KStdAction::keyBindings(TQT_TQOBJECT(this), TQT_SLOT(optionsConfigureKeys()), actionCollection());
- KStdAction::configureToolbars(TQT_TQOBJECT(this), TQT_SLOT(optionsConfigureToolbars()), actionCollection());
- KStdAction::preferences(TQT_TQOBJECT(this), TQT_SLOT(optionsPreferences()), actionCollection());
+ KStdAction::keyBindings(this, TQ_SLOT(optionsConfigureKeys()), actionCollection());
+ KStdAction::configureToolbars(this, TQ_SLOT(optionsConfigureToolbars()), actionCollection());
+ KStdAction::preferences(this, TQ_SLOT(optionsPreferences()), actionCollection());
- new TDEAction(i18n("Mobile GUI"),0,TQT_TQOBJECT(this),TQT_SLOT(showMobileGui()),
+ new TDEAction(i18n("Mobile GUI"),0,this,TQ_SLOT(showMobileGui()),
actionCollection(),"show_mobilegui");
- mConnectAction = new TDEAction(i18n("Connect"),0,TQT_TQOBJECT(this),TQT_SLOT(modemConnect()),
+ mConnectAction = new TDEAction(i18n("Connect"),0,this,TQ_SLOT(modemConnect()),
actionCollection(),"modem_connect");
- mDisconnectAction = new TDEAction(i18n("Disconnect"),0,TQT_TQOBJECT(this),
- TQT_SLOT(modemDisconnect()),actionCollection(),
+ mDisconnectAction = new TDEAction(i18n("Disconnect"),0,this,
+ TQ_SLOT(modemDisconnect()),actionCollection(),
"modem_disconnect");
createGUI();
@@ -252,7 +252,7 @@ void Kandy::optionsConfigureToolbars()
// use the standard toolbar editor
saveMainWindowSettings( TDEGlobal::config(), autoSaveGroup() );
KEditToolbar dlg(actionCollection());
- connect(&dlg, TQT_SIGNAL(newToolbarConfig()), this, TQT_SLOT(newToolbarConfig()));
+ connect(&dlg, TQ_SIGNAL(newToolbarConfig()), this, TQ_SLOT(newToolbarConfig()));
dlg.exec();
}
diff --git a/kandy/src/kandy.desktop b/kandy/src/kandy.desktop
index ab134700..a6037bdd 100644
--- a/kandy/src/kandy.desktop
+++ b/kandy/src/kandy.desktop
@@ -1,118 +1,13 @@
[Desktop Entry]
Name=Kandy
-Name[hi]=केंडी
-Name[ne]=केन्डी
-Name[ta]=Kஅன்டி
+
+GenericName=Mobile Phone Tool
+
Comment=Tool for syncing address book data with mobile phones
-Comment[af]=Program om die adres boek data met die van 'n selfoon te sinkroniseer
-Comment[bg]=Инструмент за синхронизиране на адресника с мобилни телефони
-Comment[bs]=Alat za sinhroniziranje podataka između adresara i mobilnih telefona
-Comment[ca]=Eina per sincronitzar dades de la llibreta d'adreces amb telèfons mòbils
-Comment[cs]=Nástroj pro synchronizaci kontaktů s mobilními telefony
-Comment[da]=Værktøj til at synkronisere adressebogens data med mobiltelefoner
-Comment[de]=Werkzeug zum Abgleich von Adressbuchdaten mit dem Mobiltelefon
-Comment[el]=Εργαλείο συγχρονισμού βιβλίων διευθύνσεων με κινητά τηλέφωνα
-Comment[es]=Herramienta para sincronizar datos de la libreta de direcciones con teléfonos móviles
-Comment[et]=Vahend aadressiraamatu andmete sünkroniseerimiseks mobiiltelefoniga
-Comment[eu]=Helbide-liburua zure mugikorrarekin sinkronizatzeko tresna
-Comment[fa]=ابزار برای همگام‌سازی دادۀ کتاب نشانی با تلفنهای همراه
-Comment[fi]=Osoitekirjan tietojan ja kännykän liitostyökalu
-Comment[fr]=Outil pour synchroniser les données de carnets d'adresses avec les téléphones mobiles
-Comment[fy]=Helpmiddel om adresboekdata te syngronisearjen mei mobile tillefoans
-Comment[gl]=Ferramenta para sincronizar os datos do caderno de enderezos con teléfonos móbiles
-Comment[hu]=Segédprogram számítógép és mobiltelefon címjegyzékének szinkronizálásához
-Comment[is]=Tól sem samstillir vistfangagögn við farsíma
-Comment[it]=Strumento per sincronizzare i dati della rubrica indirizzi con i telefoni cellulari
-Comment[ja]=アドレス帳のデータを携帯電話と同期するためのツール
-Comment[kk]=Адрестік кітапшаны қалта телефонмен қадамдастыру құралы
-Comment[km]=ឧបករណ៍​សម្រាប់​ធ្វើ​សមកាលកម្ម​ទិន្នន័យ​សៀវភៅ​អាសយដ្ឋាន​ជាមួយ​នឹង​ទូរស័ព្ទ​ចល័ត
-Comment[lt]=Įrankis adresų knygelės sinchronizavimui su mobiliaisiais telefonais
-Comment[mk]=Алатка за синхронизирање адресари со мобилни телефони
-Comment[ms]=Alat untuk segerakkan data buku alamat dengan telefon bimbit
-Comment[nb]=Verktøy for synkronisering av adressebok med mobiltelefoner
-Comment[nds]=Synkroniseren vun Adressbookdaten mit Mobiltelefonen
-Comment[ne]=मोबाइल फोनमा ठेगाना पुस्तिका समक्रमण गर्नका लागि उपकरण
-Comment[nl]=Hulpmiddel om adresboekgegevens te synchroniseren met mobiele telefoons
-Comment[nn]=Verktøy for å synkronisera adresseboka med mobiltelefonar
-Comment[pl]=Narzędzie do synchronizacji książki adresowej z telefonami komórkowymi
-Comment[pt]=Ferramenta para sincronizar dados do livro de endereços com telemóveis
-Comment[pt_BR]=Ferramenta para a sincronização dos dados do livro de endereços com dispositivos móveis
-Comment[ru]=Программа синхронизации адресной книги с мобильным телефоном
-Comment[sk]=Nástroj pre synchronizáciu adresára s mobilmi
-Comment[sl]=Orodje za usklajevanje podatkov adresarja z mobilnim telefonom
-Comment[sr]=Алат за синхронизацију адресара са мобилним телефонима
-Comment[sr@Latn]=Alat za sinhronizaciju adresara sa mobilnim telefonima
-Comment[sv]=Verktyg för att synkronisera adressboksdata med mobiltelefoner
-Comment[ta]= செல்பேசி கொண்ட முகவரி புத்தக தரவின் ஒன்றிணைக்கப்படுவதற்கான கருவி
-Comment[tg]=Барномаи синхронизатсияи китоби адресӣ бо телефони мобилӣ
-Comment[tr]=Cep telefonları ile adres defteri paylaşımı için araç
-Comment[uk]=Інструмент для синхронізації даних адресної книги з мобільним телефоном
-Comment[zh_CN]=将地址簿数据与移动电话同步的工具
-Comment[zh_TW]=將通訊錄與手機同步的工具
+
Exec=kandy %i %m -caption "%c"
Icon=kandy
Type=Application
-GenericName=Mobile Phone Tool
-GenericName[af]=Mobiele Foon Program
-GenericName[bg]=Мобилни телефони
-GenericName[bs]=Alat za mobilne telefone
-GenericName[ca]=Eina per a telèfons mòbils
-GenericName[cs]=Nástroj pro mobilní telefony
-GenericName[cy]=Erfyn Ffôn Symudol
-GenericName[da]=Mobiltelefonværktøj
-GenericName[de]=Programm für Mobiltelefone
-GenericName[el]=Εργαλείο κινητών τηλεφώνων
-GenericName[eo]=Ilo por poŝtelefono
-GenericName[es]=Gestor de teléfonos móviles
-GenericName[et]=Mobiiltelefoni rakendus
-GenericName[eu]=Telefono mugikorrendako Tresna
-GenericName[fa]=ابزار تلفن همراه
-GenericName[fi]=Matkapuhelintyökalu
-GenericName[fr]=Outil de connexion à votre téléphone portable
-GenericName[fy]=Mobiele tillefoan-behear
-GenericName[gl]=Ferramenta para o Teléfono Móbil
-GenericName[he]=כלי טלפון נייד
-GenericName[hi]=मोबाइल फोन उपकरण
-GenericName[hr]=Alat za mobitele
-GenericName[hu]=Mobil-címjegyzék
-GenericName[is]=Farsímatól
-GenericName[it]=Strumento per i telefoni cellulari
-GenericName[ja]=携帯電話ツール
-GenericName[kk]=Қалта телефон құралы
-GenericName[km]=ឧបករណ៍​ទូរស័ព្ទ​ចល័ត
-GenericName[lt]=Mobilaus telefono įrankis
-GenericName[lv]=Mobīlā Telefona Rīks
-GenericName[mk]=Алатка за мобилни телефони
-GenericName[ms]=Alatan Fon Mudah Alih
-GenericName[nb]=Mobiltelefonverktøy
-GenericName[nds]=Mobiltelefoon-Warktüüch
-GenericName[ne]=मोबाइल फोन उपकरण
-GenericName[nl]=Mobiele telefoon-beheer
-GenericName[nn]=Mobiltelefonverktøy
-GenericName[nso]=Sebereka sago Thatha sa Mogala
-GenericName[pl]=Łącznik z telefonem komórkowym
-GenericName[pt]=Ferramenta para Telemóveis
-GenericName[pt_BR]=Ferramenta de Telefonia Móvel
-GenericName[ro]=Utilitar telefon mobil
-GenericName[ru]=Работа с мобильным телефоном
-GenericName[se]=Mátketelefuvdnareaidu
-GenericName[sk]=Nástroj pre mobily
-GenericName[sl]=Orodje za mobilni telefon
-GenericName[sr]=Алат за мобилни телефон
-GenericName[sr@Latn]=Alat za mobilni telefon
-GenericName[sv]=Verktyg för mobiltelefon
-GenericName[ta]=செல்பேசி கருவி
-GenericName[tg]=Кор бо телефони мобилӣ
-GenericName[th]=เครื่องมือสำหรับโทรศัพท์เคลื่อนที่
-GenericName[tr]=Cep Telefonu Aracı
-GenericName[uk]=Засіб для мобільних телефонів
-GenericName[uz]=Уяли телефон учун восита
-GenericName[ven]=Tshishumiswa tsha lutingo thendeleki
-GenericName[vi]=Công cụ điện thoại di động
-GenericName[xh]=Isixhobo Semfono-mfono Ekuhanjwa nayo
-GenericName[zh_CN]=移动电话工具
-GenericName[zh_TW]=行動電話工具
-GenericName[zu]=Ithuluzi Lamakhala ekhukhwini
Terminal=false
X-DCOP-ServiceType=Multi
Categories=Qt;TDE;Utility;Telephony;X-TDE-Utilities-Peripherals;
diff --git a/kandy/src/kandy.h b/kandy/src/kandy.h
index 77a646ba..18848541 100644
--- a/kandy/src/kandy.h
+++ b/kandy/src/kandy.h
@@ -47,7 +47,7 @@ class KandyPrefsDialog;
*/
class Kandy : public TDEMainWindow
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/kandy/src/kandyprefsdialog.cpp b/kandy/src/kandyprefsdialog.cpp
index 15a4eb8d..db7781de 100644
--- a/kandy/src/kandyprefsdialog.cpp
+++ b/kandy/src/kandyprefsdialog.cpp
@@ -292,66 +292,66 @@ void KandyPrefsDialog::setupAddressbookTab()
}
- connect( useHomeSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- HomeSuff->lineEdit(), TQT_SLOT(setEnabled(bool)) );
- connect( useHomeSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- HomeSuff->label(), TQT_SLOT(setEnabled(bool)) );
-
- connect( useWorkSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- WorkSuff->lineEdit(), TQT_SLOT(setEnabled(bool)) );
- connect( useWorkSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- WorkSuff->label(), TQT_SLOT(setEnabled(bool)) );
-
- connect( useMessagingSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- MessagingSuff->lineEdit(), TQT_SLOT(setEnabled(bool)) );
- connect( useMessagingSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- MessagingSuff->label(), TQT_SLOT(setEnabled(bool)) );
-
- connect( useFaxSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- FaxSuff->lineEdit(), TQT_SLOT(setEnabled(bool)) );
- connect( useFaxSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- FaxSuff->label(), TQT_SLOT(setEnabled(bool)) );
-
- connect( useCellSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- CellSuff->lineEdit(), TQT_SLOT(setEnabled(bool)) );
- connect( useCellSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- CellSuff->label(), TQT_SLOT(setEnabled(bool)) );
-
- connect( useVideoSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- VideoSuff->lineEdit(), TQT_SLOT(setEnabled(bool)) );
- connect( useVideoSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- VideoSuff->label(), TQT_SLOT(setEnabled(bool)) );
-
- connect( useMailboxSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- MailboxSuff->lineEdit(), TQT_SLOT(setEnabled(bool)) );
- connect( useMailboxSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- MailboxSuff->label(), TQT_SLOT(setEnabled(bool)) );
-
- connect( useModemSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- ModemSuff->lineEdit(), TQT_SLOT(setEnabled(bool)) );
- connect( useModemSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- ModemSuff->label(), TQT_SLOT(setEnabled(bool)) );
-
- connect( useCarSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- CarSuff->lineEdit(), TQT_SLOT(setEnabled(bool)) );
- connect( useCarSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- CarSuff->label(), TQT_SLOT(setEnabled(bool)) );
-
- connect( useISDNSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- ISDNSuff->lineEdit(), TQT_SLOT(setEnabled(bool)) );
- connect( useISDNSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- ISDNSuff->label(), TQT_SLOT(setEnabled(bool)) );
-
- connect( usePagerSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- PagerSuff->lineEdit(), TQT_SLOT(setEnabled(bool)) );
- connect( usePagerSuff->checkBox(), TQT_SIGNAL(toggled(bool)),
- PagerSuff->label(), TQT_SLOT(setEnabled(bool)) );
+ connect( useHomeSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ HomeSuff->lineEdit(), TQ_SLOT(setEnabled(bool)) );
+ connect( useHomeSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ HomeSuff->label(), TQ_SLOT(setEnabled(bool)) );
+
+ connect( useWorkSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ WorkSuff->lineEdit(), TQ_SLOT(setEnabled(bool)) );
+ connect( useWorkSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ WorkSuff->label(), TQ_SLOT(setEnabled(bool)) );
+
+ connect( useMessagingSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ MessagingSuff->lineEdit(), TQ_SLOT(setEnabled(bool)) );
+ connect( useMessagingSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ MessagingSuff->label(), TQ_SLOT(setEnabled(bool)) );
+
+ connect( useFaxSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ FaxSuff->lineEdit(), TQ_SLOT(setEnabled(bool)) );
+ connect( useFaxSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ FaxSuff->label(), TQ_SLOT(setEnabled(bool)) );
+
+ connect( useCellSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ CellSuff->lineEdit(), TQ_SLOT(setEnabled(bool)) );
+ connect( useCellSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ CellSuff->label(), TQ_SLOT(setEnabled(bool)) );
+
+ connect( useVideoSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ VideoSuff->lineEdit(), TQ_SLOT(setEnabled(bool)) );
+ connect( useVideoSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ VideoSuff->label(), TQ_SLOT(setEnabled(bool)) );
+
+ connect( useMailboxSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ MailboxSuff->lineEdit(), TQ_SLOT(setEnabled(bool)) );
+ connect( useMailboxSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ MailboxSuff->label(), TQ_SLOT(setEnabled(bool)) );
+
+ connect( useModemSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ ModemSuff->lineEdit(), TQ_SLOT(setEnabled(bool)) );
+ connect( useModemSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ ModemSuff->label(), TQ_SLOT(setEnabled(bool)) );
+
+ connect( useCarSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ CarSuff->lineEdit(), TQ_SLOT(setEnabled(bool)) );
+ connect( useCarSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ CarSuff->label(), TQ_SLOT(setEnabled(bool)) );
+
+ connect( useISDNSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ ISDNSuff->lineEdit(), TQ_SLOT(setEnabled(bool)) );
+ connect( useISDNSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ ISDNSuff->label(), TQ_SLOT(setEnabled(bool)) );
+
+ connect( usePagerSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ PagerSuff->lineEdit(), TQ_SLOT(setEnabled(bool)) );
+ connect( usePagerSuff->checkBox(), TQ_SIGNAL(toggled(bool)),
+ PagerSuff->label(), TQ_SLOT(setEnabled(bool)) );
}
void KandyPrefsDialog::setupWindowsTab()
{
TQFrame *topFrame = addPage(i18n("Windows"),0,
- DesktopIcon("window_list",TDEIcon::SizeMedium));
+ DesktopIcon("window_duplicate",TDEIcon::SizeMedium));
TQGridLayout *topLayout = new TQGridLayout(topFrame,6,2);
topLayout->setSpacing(spacingHint());
diff --git a/kandy/src/kandyprefsdialog.h b/kandy/src/kandyprefsdialog.h
index b927083b..24037602 100644
--- a/kandy/src/kandyprefsdialog.h
+++ b/kandy/src/kandyprefsdialog.h
@@ -41,7 +41,7 @@
*/
class KandyPrefsDialog : public KPrefsDialog
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Initialize dialog and pages */
diff --git a/kandy/src/kandyview.cpp b/kandy/src/kandyview.cpp
index 52e9de0a..51987b30 100644
--- a/kandy/src/kandyview.cpp
+++ b/kandy/src/kandyview.cpp
@@ -65,7 +65,7 @@ KandyView::KandyView(CommandScheduler *scheduler,TQWidget *parent)
TQBoxLayout *topLayout = new TQVBoxLayout( this );
- TQSplitter *mainSplitter = new TQSplitter( Qt::Horizontal, this );
+ TQSplitter *mainSplitter = new TQSplitter( TQt::Horizontal, this );
topLayout->addWidget( mainSplitter );
TQWidget *commandBox = new TQWidget( mainSplitter );
@@ -80,26 +80,26 @@ KandyView::KandyView(CommandScheduler *scheduler,TQWidget *parent)
mCommandList->addColumn( i18n( "Hex" ) );
commandLayout->addWidget( mCommandList );
- connect( mCommandList, TQT_SIGNAL( doubleClicked(TQListViewItem*) ),
- TQT_SLOT( executeCommand() ) );
+ connect( mCommandList, TQ_SIGNAL( doubleClicked(TQListViewItem*) ),
+ TQ_SLOT( executeCommand() ) );
TQPushButton *buttonAdd = new TQPushButton( i18n("Add..."), commandBox );
commandLayout->addWidget( buttonAdd );
- connect( buttonAdd, TQT_SIGNAL( clicked() ), TQT_SLOT( addCommand() ) );
+ connect( buttonAdd, TQ_SIGNAL( clicked() ), TQ_SLOT( addCommand() ) );
TQPushButton *buttonEdit = new TQPushButton( i18n("Edit..."), commandBox );
commandLayout->addWidget( buttonEdit );
- connect( buttonEdit, TQT_SIGNAL( clicked() ), TQT_SLOT( editCommand() ) );
+ connect( buttonEdit, TQ_SIGNAL( clicked() ), TQ_SLOT( editCommand() ) );
TQPushButton *buttonDelete = new TQPushButton( i18n("Delete"), commandBox );
commandLayout->addWidget( buttonDelete );
- connect( buttonDelete, TQT_SIGNAL( clicked() ), TQT_SLOT( deleteCommand() ) );
+ connect( buttonDelete, TQ_SIGNAL( clicked() ), TQ_SLOT( deleteCommand() ) );
TQPushButton *buttonExecute = new TQPushButton( i18n("Execute"), commandBox );
commandLayout->addWidget( buttonExecute );
- connect( buttonExecute, TQT_SIGNAL( clicked() ), TQT_SLOT( executeCommand() ) );
+ connect( buttonExecute, TQ_SIGNAL( clicked() ), TQ_SLOT( executeCommand() ) );
- TQSplitter *ioSplitter = new TQSplitter( Qt::Vertical, mainSplitter );
+ TQSplitter *ioSplitter = new TQSplitter( TQt::Vertical, mainSplitter );
TQWidget *inBox = new TQWidget( ioSplitter );
@@ -132,15 +132,15 @@ KandyView::KandyView(CommandScheduler *scheduler,TQWidget *parent)
mResultView = new TQTextEdit( resultBox );
mResultView->setReadOnly( true );
- connect (mInput,TQT_SIGNAL(returnPressed()),TQT_SLOT(processLastLine()));
+ connect (mInput,TQ_SIGNAL(returnPressed()),TQ_SLOT(processLastLine()));
- connect(mScheduler->modem(),TQT_SIGNAL(gotLine(const char *)),
- TQT_SLOT(appendOutput(const char *)));
+ connect(mScheduler->modem(),TQ_SIGNAL(gotLine(const char *)),
+ TQ_SLOT(appendOutput(const char *)));
- connect(mScheduler,TQT_SIGNAL(result(const TQString &)),
- mResultView,TQT_SLOT(setText(const TQString &)));
- connect(mScheduler,TQT_SIGNAL(commandProcessed(ATCommand *)),
- TQT_SLOT(setResult(ATCommand *)));
+ connect(mScheduler,TQ_SIGNAL(result(const TQString &)),
+ mResultView,TQ_SLOT(setText(const TQString &)));
+ connect(mScheduler,TQ_SIGNAL(commandProcessed(ATCommand *)),
+ TQ_SLOT(setResult(ATCommand *)));
}
KandyView::~KandyView()
@@ -158,7 +158,7 @@ void KandyView::importPhonebook()
{
#if 0
createMobileGui();
- connect (mMobileGui,TQT_SIGNAL(phonebookRead()),mMobileGui,TQT_SLOT(writeKab()));
+ connect (mMobileGui,TQ_SIGNAL(phonebookRead()),mMobileGui,TQ_SLOT(writeKab()));
mMobileGui->readPhonebook();
#endif
}
diff --git a/kandy/src/kandyview.h b/kandy/src/kandyview.h
index 5e6461d3..746d9916 100644
--- a/kandy/src/kandyview.h
+++ b/kandy/src/kandyview.h
@@ -50,7 +50,7 @@ class CmdPropertiesDialog;
*/
class KandyView : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/kandy/src/main.cpp b/kandy/src/main.cpp
index a22229d5..00ca8764 100644
--- a/kandy/src/main.cpp
+++ b/kandy/src/main.cpp
@@ -135,18 +135,18 @@ int main(int argc, char **argv)
args->clear();
- TQObject::connect(k,TQT_SIGNAL(showMobileWin()),m,TQT_SLOT(show()));
- TQObject::connect(m,TQT_SIGNAL(showTerminalWin()),k,TQT_SLOT(show()));
- TQObject::connect(m,TQT_SIGNAL(showPreferencesWin()),
- k,TQT_SLOT(optionsPreferences()));
-
- TQObject::connect( m->view(), TQT_SIGNAL( connectModem() ), k,
- TQT_SLOT( modemConnect() ) );
- TQObject::connect( m->view(), TQT_SIGNAL( disconnectModem() ), k,
- TQT_SLOT( modemDisconnect() ) );
-
- TQObject::connect( modem, TQT_SIGNAL( errorMessage( const TQString & ) ),
- k, TQT_SLOT( showErrorMessage( const TQString & ) ) );
+ TQObject::connect(k,TQ_SIGNAL(showMobileWin()),m,TQ_SLOT(show()));
+ TQObject::connect(m,TQ_SIGNAL(showTerminalWin()),k,TQ_SLOT(show()));
+ TQObject::connect(m,TQ_SIGNAL(showPreferencesWin()),
+ k,TQ_SLOT(optionsPreferences()));
+
+ TQObject::connect( m->view(), TQ_SIGNAL( connectModem() ), k,
+ TQ_SLOT( modemConnect() ) );
+ TQObject::connect( m->view(), TQ_SIGNAL( disconnectModem() ), k,
+ TQ_SLOT( modemDisconnect() ) );
+
+ TQObject::connect( modem, TQ_SIGNAL( errorMessage( const TQString & ) ),
+ k, TQ_SLOT( showErrorMessage( const TQString & ) ) );
initModem( modem );
diff --git a/kandy/src/mobilegui.cpp b/kandy/src/mobilegui.cpp
index 819d7e0f..eb1f79a7 100644
--- a/kandy/src/mobilegui.cpp
+++ b/kandy/src/mobilegui.cpp
@@ -220,10 +220,10 @@ MobileGui::MobileGui( CommandScheduler *scheduler, KandyPrefs *kprefs,
setMobState( UNLOADED );
// Setup signal handlers
- connect( mScheduler, TQT_SIGNAL( commandProcessed( ATCommand * ) ),
- TQT_SLOT( processResult( ATCommand * ) ) );
- connect( mScheduler->modem(), TQT_SIGNAL( gotLine( const char * ) ),
- TQT_SLOT( termAddOutput( const char * ) ) );
+ connect( mScheduler, TQ_SIGNAL( commandProcessed( ATCommand * ) ),
+ TQ_SLOT( processResult( ATCommand * ) ) );
+ connect( mScheduler->modem(), TQ_SIGNAL( gotLine( const char * ) ),
+ TQ_SLOT( termAddOutput( const char * ) ) );
}
diff --git a/kandy/src/mobilegui.h b/kandy/src/mobilegui.h
index 16431ae4..a8e27eaa 100644
--- a/kandy/src/mobilegui.h
+++ b/kandy/src/mobilegui.h
@@ -38,7 +38,7 @@ class AddressSyncer;
class MobileGui : public MobileGui_base, virtual public KandyIface
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kandy/src/mobilegui_base.ui b/kandy/src/mobilegui_base.ui
index 83f8149e..01d77f27 100644
--- a/kandy/src/mobilegui_base.ui
+++ b/kandy/src/mobilegui_base.ui
@@ -565,7 +565,7 @@
<tabstop>PushButton1</tabstop>
<tabstop>PushButton8_3</tabstop>
</tabstops>
-<Q_SLOTS>
+<slots>
<slot>readKabc()</slot>
<slot>readModelInformation()</slot>
<slot>readPhonebook()</slot>
@@ -578,6 +578,6 @@
<slot>termAddOutput( const char *line )</slot>
<slot>toggleConnection()</slot>
<slot>deleteMobPhonebook()</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
</UI>
diff --git a/kandy/src/mobilemain.cpp b/kandy/src/mobilemain.cpp
index 33da5f56..277ec288 100644
--- a/kandy/src/mobilemain.cpp
+++ b/kandy/src/mobilemain.cpp
@@ -55,10 +55,10 @@ MobileMain::MobileMain(CommandScheduler *scheduler, KandyPrefs *prefs)
setupActions();
statusBar()->insertItem(i18n(" Disconnected "),1,0,true);
- connect(mView,TQT_SIGNAL(statusMessage(const TQString &)),
- TQT_SLOT(showStatusMessage(const TQString &)));
- connect(mView,TQT_SIGNAL(transienStatusMessage(const TQString &)),
- TQT_SLOT(showTransienStatusMessage(const TQString &)));
+ connect(mView,TQ_SIGNAL(statusMessage(const TQString &)),
+ TQ_SLOT(showStatusMessage(const TQString &)));
+ connect(mView,TQ_SIGNAL(transienStatusMessage(const TQString &)),
+ TQ_SLOT(showTransienStatusMessage(const TQString &)));
statusBar()->show();
@@ -71,17 +71,17 @@ MobileMain::~MobileMain()
void MobileMain::setupActions()
{
- KStdAction::quit(TQT_TQOBJECT(this), TQT_SLOT(close()), actionCollection());
+ KStdAction::quit(this, TQ_SLOT(close()), actionCollection());
- new TDEAction(i18n("Terminal"),0,TQT_TQOBJECT(this),TQT_SLOT(showTerminal()),
+ new TDEAction(i18n("Terminal"),0,this,TQ_SLOT(showTerminal()),
actionCollection(),"show_terminal");
createStandardStatusBarAction();
setStandardToolBarMenuEnabled(true);
- KStdAction::keyBindings(TQT_TQOBJECT(this), TQT_SLOT(optionsConfigureKeys()), actionCollection());
- KStdAction::configureToolbars(TQT_TQOBJECT(this), TQT_SLOT(optionsConfigureToolbars()), actionCollection());
- KStdAction::preferences(TQT_TQOBJECT(this), TQT_SLOT(optionsPreferences()), actionCollection());
+ KStdAction::keyBindings(this, TQ_SLOT(optionsConfigureKeys()), actionCollection());
+ KStdAction::configureToolbars(this, TQ_SLOT(optionsConfigureToolbars()), actionCollection());
+ KStdAction::preferences(this, TQ_SLOT(optionsPreferences()), actionCollection());
createGUI("kandymobileui.rc");
}
@@ -130,7 +130,7 @@ void MobileMain::optionsConfigureToolbars()
// use the standard toolbar editor
saveMainWindowSettings( TDEGlobal::config(), autoSaveGroup() );
KEditToolbar dlg(actionCollection());
- connect(&dlg, TQT_SIGNAL(newToolbarConfig()), this, TQT_SLOT(newToolbarConfig()));
+ connect(&dlg, TQ_SIGNAL(newToolbarConfig()), this, TQ_SLOT(newToolbarConfig()));
dlg.exec();
}
diff --git a/kandy/src/mobilemain.h b/kandy/src/mobilemain.h
index 9270fb94..3d1ba2a3 100644
--- a/kandy/src/mobilemain.h
+++ b/kandy/src/mobilemain.h
@@ -45,7 +45,7 @@ class CommandScheduler;
*/
class MobileMain : public TDEMainWindow
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/kandy/src/modem.cpp b/kandy/src/modem.cpp
index 2a275bf4..ef16d00d 100644
--- a/kandy/src/modem.cpp
+++ b/kandy/src/modem.cpp
@@ -84,7 +84,7 @@ Modem::Modem( KandyPrefs *kprefs, TQObject *parent, const char *name ) :
timer = new TQTimer( this, "modemtimer" );
TQ_CHECK_PTR( timer );
- connect( timer, TQT_SIGNAL( timeout() ), TQT_SLOT( timerDone() ) );
+ connect( timer, TQ_SIGNAL( timeout() ), TQ_SLOT( timerDone() ) );
init();
xreset();
@@ -234,7 +234,7 @@ bool Modem::open()
sn = new TQSocketNotifier( fd, TQSocketNotifier::Read, this,
"modemsocketnotifier" );
TQ_CHECK_PTR( sn );
- connect( sn, TQT_SIGNAL( activated( int ) ), TQT_SLOT( readChar( int ) ) );
+ connect( sn, TQ_SIGNAL( activated( int ) ), TQ_SLOT( readChar( int ) ) );
mOpen = true;
@@ -372,7 +372,7 @@ void Modem::timerStart( int msec )
void Modem::receiveXModem( bool crc )
{
disconnect( sn, 0, this, 0 );
- connect( sn, TQT_SIGNAL( activated( int ) ), TQT_SLOT( readXChar( int ) ) );
+ connect( sn, TQ_SIGNAL( activated( int ) ), TQ_SLOT( readXChar( int ) ) );
xcrc = crc;
@@ -598,7 +598,7 @@ void Modem::xreset()
if ( sn ) {
disconnect( sn, 0, this, 0 );
- connect( sn, TQT_SIGNAL( activated( int ) ), TQT_SLOT( readChar( int ) ) );
+ connect( sn, TQ_SIGNAL( activated( int ) ), TQ_SLOT( readChar( int ) ) );
}
}
diff --git a/kandy/src/modem.h b/kandy/src/modem.h
index 65a5dd37..9c1216cb 100644
--- a/kandy/src/modem.h
+++ b/kandy/src/modem.h
@@ -45,7 +45,7 @@
class Modem : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
Modem(KandyPrefs *kprefs, TQObject *parent = 0, const char *name = 0);
diff --git a/karm/CMakeL10n.txt b/karm/CMakeL10n.txt
index c309de36..9d647558 100644
--- a/karm/CMakeL10n.txt
+++ b/karm/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_create_template( "karm" )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/karm-desktops/"
+ SOURCES *.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/karm/CMakeLists.txt b/karm/CMakeLists.txt
index a8cdc5a1..48286f44 100644
--- a/karm/CMakeLists.txt
+++ b/karm/CMakeLists.txt
@@ -38,7 +38,13 @@ link_directories(
##### other data ################################
tde_install_icons( karm )
-install( FILES karm_part.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+
+tde_create_translated_desktop(
+ SOURCE karm_part.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR karm-desktops
+)
+
install( FILES uninstall.desktop RENAME karm.desktop DESTINATION ${APPS_INSTALL_DIR}/Utilities )
install( FILES karmui.rc DESTINATION ${DATA_INSTALL_DIR}/karm )
install( FILES karmui.rc DESTINATION ${DATA_INSTALL_DIR}/karmpart )
diff --git a/karm/TODO b/karm/TODO
index e9024454..3669fe3f 100644
--- a/karm/TODO
+++ b/karm/TODO
@@ -1,6 +1,6 @@
* KarmWindow::makeMenus -> export TDEAction? KarmWindow::contextMenuRequest
* QPopupMenu should be static! put connect( ..contextMenu at the right place
-* mainwindow: move tray Q_SIGNALS into tray.cpp add mouse double-click action
+* mainwindow: move tray signals into tray.cpp add mouse double-click action
* (start new timer, stop old) to "Configure
Shortcuts" dialog.
diff --git a/karm/csvexportdialog.h b/karm/csvexportdialog.h
index 08bebd9d..7e4a6028 100644
--- a/karm/csvexportdialog.h
+++ b/karm/csvexportdialog.h
@@ -26,7 +26,7 @@
class CSVExportDialog : public CSVExportDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/karm/csvexportdialog_base.ui b/karm/csvexportdialog_base.ui
index 65d0fd90..091262c3 100644
--- a/karm/csvexportdialog_base.ui
+++ b/karm/csvexportdialog_base.ui
@@ -402,15 +402,13 @@
<tabstop>btnExport</tabstop>
<tabstop>btnCancel</tabstop>
</tabstops>
-<Q_SLOTS>
+<slots>
<slot>enableExportButton()</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
<includes>
+ <include location="global" impldecl="in implementation">kdateedit.h</include>
<include location="global" impldecl="in implementation">kpushbutton.h</include>
<include location="global" impldecl="in implementation">kurlrequester.h</include>
</includes>
-<includehints>
- <includehint>kdateedit.h</includehint>
-</includehints>
</UI>
diff --git a/karm/desktoptracker.cpp b/karm/desktoptracker.cpp
index 06216570..cf41d5b3 100644
--- a/karm/desktoptracker.cpp
+++ b/karm/desktoptracker.cpp
@@ -11,8 +11,8 @@ const int minimumInterval = 5; // seconds
DesktopTracker::DesktopTracker ()
{
// Setup desktop change handling
- connect( &kWinModule, TQT_SIGNAL( currentDesktopChanged(int) ),
- this, TQT_SLOT( handleDesktopChange(int) ));
+ connect( &kWinModule, TQ_SIGNAL( currentDesktopChanged(int) ),
+ this, TQ_SLOT( handleDesktopChange(int) ));
_desktopCount = kWinModule.numberOfDesktops();
_previousDesktop = kWinModule.currentDesktop()-1;
@@ -21,7 +21,7 @@ DesktopTracker::DesktopTracker ()
if( _previousDesktop < 0 ) _previousDesktop = 0;
_timer = new TQTimer(this);
- connect( _timer, TQT_SIGNAL( timeout() ), this, TQT_SLOT( changeTimers() ) );
+ connect( _timer, TQ_SIGNAL( timeout() ), this, TQ_SLOT( changeTimers() ) );
}
void DesktopTracker::handleDesktopChange( int desktop )
diff --git a/karm/desktoptracker.h b/karm/desktoptracker.h
index 78bc7fb8..d02931bd 100644
--- a/karm/desktoptracker.h
+++ b/karm/desktoptracker.h
@@ -20,7 +20,7 @@ const int maxDesktops = 20;
class DesktopTracker: public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/karm/doc/Mainpage.dox b/karm/doc/Mainpage.dox
index 44aae4ee..b1228f32 100644
--- a/karm/doc/Mainpage.dox
+++ b/karm/doc/Mainpage.dox
@@ -24,7 +24,7 @@ order and can return a pointer to a KCal::Todo object that holds the same
information.
Preferences is a singleton that stores configuration options. It raises
-Q_SIGNALS when options change (for example, the location where the karm data is
+signals when options change (for example, the location where the karm data is
stored) so the application can react and adjust.
KarmStorage is a singleton that creates an interface for storing KArm data.
@@ -35,7 +35,7 @@ format.
/** \page sig_slot_index Index of Signals and Slots
-To get an understanding of the flow program, it may be useful to see an overview of all of the Q_SIGNALS, Q_SLOTS, and
+To get an understanding of the flow program, it may be useful to see an overview of all of the signals, slots, and
connections. See \see connections to get an index of what signal is connected to which slot.
\section overview Summary of what each class provides
@@ -60,9 +60,9 @@ connections. See \see connections to get an index of what signal is connected to
<tr><td>Task</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>Y </td> <td>&nbsp;</td></tr>
</table>
-\section Q_SIGNALS Listing of all of the Q_SIGNALS
+\section signals Listing of all of the signals
-These are the Q_SIGNALS:
+These are the signals:
<ol>
<li>IdleTimer::extractTime(int)
<li>IdleTimer::stopTimer()
@@ -76,14 +76,14 @@ These are the Q_SIGNALS:
<li>Preferences::autoSavePeriod(int)
<li>Preferences::detectIdleness(bool)
<li>Preferences::idlenessTimeout(int)
- <li>Preferences::saveFile(QString)
+ <li>Preferences::saveFile(TQString)
<li>Preferences::setupChanged()
- <li>Preferences::timeLog(QString)
+ <li>Preferences::timeLog(TQString)
<li>Preferences::timeLoging(bool)
<li>Preferences::hideOnClose(bool)
</ol>
-\section Q_SLOTS Listing of the Q_SLOTS
+\section slots Listing of the slots
\subsection public Public Slots
@@ -100,8 +100,8 @@ These are the Q_SIGNALS:
<li>Karm::load()
<li>Karm::newSubTask()
<li>Karm::newTask()
- <li>Karm::newTask(QString, QListViewItem*)
- <li>Karm::parseLine(QString, long*, QString*, int*)
+ <li>Karm::newTask(TQString, QListViewItem*)
+ <li>Karm::parseLine(TQString, long*, TQString*, int*)
<li>Karm::resetSessionTimeForAllTasks()
<li>Karm::save()
<li>Karm::startTimer()
diff --git a/karm/edittaskdialog.cpp b/karm/edittaskdialog.cpp
index 3f18faa1..37d215d5 100644
--- a/karm/edittaskdialog.cpp
+++ b/karm/edittaskdialog.cpp
@@ -72,7 +72,7 @@ EditTaskDialog::EditTaskDialog( TQString caption, bool editDlg,
_absoluteRB = new TQRadioButton( i18n( "Edit &absolute" ), page,
"_absoluteRB" );
lay1->addWidget( _absoluteRB );
- connect( _absoluteRB, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotAbsolutePressed() ) );
+ connect( _absoluteRB, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotAbsolutePressed() ) );
// Absolute times
@@ -124,7 +124,7 @@ EditTaskDialog::EditTaskDialog( TQString caption, bool editDlg,
_relativeRB = new TQRadioButton( i18n( "Edit &relative (apply to both time and"
" session time)" ), page, "_relativeRB" );
lay1->addWidget( _relativeRB );
- connect( _relativeRB, TQT_SIGNAL( clicked() ), this, TQT_SLOT(slotRelativePressed()) );
+ connect( _relativeRB, TQ_SIGNAL( clicked() ), this, TQ_SLOT(slotRelativePressed()) );
// The relative times
TQHBoxLayout *lay4 = new TQHBoxLayout();
@@ -173,7 +173,7 @@ EditTaskDialog::EditTaskDialog( TQString caption, bool editDlg,
{
int lines = (int)(desktopCount/2);
if (lines*2 != desktopCount) lines++;
- groupBox = new TQButtonGroup( lines, Qt::Horizontal,
+ groupBox = new TQButtonGroup( lines, TQt::Horizontal,
i18n("In Desktop"), page, "_desktopsGB");
}
lay1->addWidget(groupBox);
@@ -207,7 +207,7 @@ EditTaskDialog::EditTaskDialog( TQString caption, bool editDlg,
for (int i=0; i<desktopCount; i++)
_deskBox[i]->setEnabled(enableDesktops);
- connect(_desktopCB, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotAutoTrackingPressed()));
+ connect(_desktopCB, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotAutoTrackingPressed()));
lay1->addStretch(1);
diff --git a/karm/edittaskdialog.h b/karm/edittaskdialog.h
index f913c978..cd173d33 100644
--- a/karm/edittaskdialog.h
+++ b/karm/edittaskdialog.h
@@ -42,7 +42,7 @@ class KArmTimeWidget;
class EditTaskDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/karm/idletimedetector.cpp b/karm/idletimedetector.cpp
index 110eacd0..bf4092f5 100644
--- a/karm/idletimedetector.cpp
+++ b/karm/idletimedetector.cpp
@@ -27,7 +27,7 @@ IdleTimeDetector::IdleTimeDetector(int maxIdle)
}
_timer = new TQTimer(this);
- connect(_timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(check()));
+ connect(_timer, TQ_SIGNAL(timeout()), this, TQ_SLOT(check()));
#else
_idleDetectionPossible = false;
#endif // HAVE_LIBXSS
diff --git a/karm/idletimedetector.h b/karm/idletimedetector.h
index 1b0b4497..b5645431 100644
--- a/karm/idletimedetector.h
+++ b/karm/idletimedetector.h
@@ -27,7 +27,7 @@ const int testInterval= secsPerMinute * 1000;
class IdleTimeDetector :public TQObject
{
-Q_OBJECT
+TQ_OBJECT
public:
diff --git a/karm/karm.tdevelop b/karm/karm.tdevelop
index e0436fba..963fa7c4 100644
--- a/karm/karm.tdevelop
+++ b/karm/karm.tdevelop
@@ -17,7 +17,7 @@
</general>
<kdevfileview>
<groups>
- <group pattern="*.cpp;*.cxx;*.h" name="Sources" />
+ <group pattern="*.cpp;*.h" name="Sources" />
<group pattern="*.ui" name="User Interface" />
<group pattern="*.png" name="Icons" />
<group pattern="*.po;*.ts" name="Translations" />
diff --git a/karm/karm_part.cpp b/karm/karm_part.cpp
index d1d6e509..25531967 100644
--- a/karm/karm_part.cpp
+++ b/karm/karm_part.cpp
@@ -25,7 +25,7 @@ karmPart::karmPart( TQWidget *parentWidget, const char *widgetName,
TQObject *parent, const char *name )
: DCOPObject ( "KarmDCOPIface" ), KParts::ReadWritePart(parent, name),
_accel ( new TDEAccel( parentWidget ) ),
- _watcher ( new TDEAccelMenuWatch( _accel, TQT_TQOBJECT(parentWidget) ) )
+ _watcher ( new TDEAccelMenuWatch( _accel, parentWidget ) )
{
// we need an instance
setInstance( karmPartFactory::instance() );
@@ -40,9 +40,9 @@ karmPart::karmPart( TQWidget *parentWidget, const char *widgetName,
setWidget(_taskView);
// create our actions
- KStdAction::open(this, TQT_SLOT(fileOpen()), actionCollection());
- KStdAction::saveAs(this, TQT_SLOT(fileSaveAs()), actionCollection());
- KStdAction::save(this, TQT_SLOT(save()), actionCollection());
+ KStdAction::open(this, TQ_SLOT(fileOpen()), actionCollection());
+ KStdAction::saveAs(this, TQ_SLOT(fileSaveAs()), actionCollection());
+ KStdAction::save(this, TQ_SLOT(save()), actionCollection());
makeMenus();
@@ -50,29 +50,29 @@ karmPart::karmPart( TQWidget *parentWidget, const char *widgetName,
// connections
- connect( _taskView, TQT_SIGNAL( totalTimesChanged( long, long ) ),
- this, TQT_SLOT( updateTime( long, long ) ) );
- connect( _taskView, TQT_SIGNAL( selectionChanged ( TQListViewItem * )),
- this, TQT_SLOT(slotSelectionChanged()));
- connect( _taskView, TQT_SIGNAL( updateButtons() ),
- this, TQT_SLOT(slotSelectionChanged()));
+ connect( _taskView, TQ_SIGNAL( totalTimesChanged( long, long ) ),
+ this, TQ_SLOT( updateTime( long, long ) ) );
+ connect( _taskView, TQ_SIGNAL( selectionChanged ( TQListViewItem * )),
+ this, TQ_SLOT(slotSelectionChanged()));
+ connect( _taskView, TQ_SIGNAL( updateButtons() ),
+ this, TQ_SLOT(slotSelectionChanged()));
// Setup context menu request handling
connect( _taskView,
- TQT_SIGNAL( contextMenuRequested( TQListViewItem*, const TQPoint&, int )),
+ TQ_SIGNAL( contextMenuRequested( TQListViewItem*, const TQPoint&, int )),
this,
- TQT_SLOT( contextMenuRequest( TQListViewItem*, const TQPoint&, int )));
+ TQ_SLOT( contextMenuRequest( TQListViewItem*, const TQPoint&, int )));
_tray = new KarmTray( this );
- connect( _tray, TQT_SIGNAL( quitSelected() ), TQT_SLOT( quit() ) );
+ connect( _tray, TQ_SIGNAL( quitSelected() ), TQ_SLOT( quit() ) );
- connect( _taskView, TQT_SIGNAL( timersActive() ), _tray, TQT_SLOT( startClock() ) );
- connect( _taskView, TQT_SIGNAL( timersActive() ), this, TQT_SLOT( enableStopAll() ));
- connect( _taskView, TQT_SIGNAL( timersInactive() ), _tray, TQT_SLOT( stopClock() ) );
- connect( _taskView, TQT_SIGNAL( timersInactive() ), this, TQT_SLOT( disableStopAll()));
- connect( _taskView, TQT_SIGNAL( tasksChanged( TQPtrList<Task> ) ),
- _tray, TQT_SLOT( updateToolTip( TQPtrList<Task> ) ));
+ connect( _taskView, TQ_SIGNAL( timersActive() ), _tray, TQ_SLOT( startClock() ) );
+ connect( _taskView, TQ_SIGNAL( timersActive() ), this, TQ_SLOT( enableStopAll() ));
+ connect( _taskView, TQ_SIGNAL( timersInactive() ), _tray, TQ_SLOT( stopClock() ) );
+ connect( _taskView, TQ_SIGNAL( timersInactive() ), this, TQ_SLOT( disableStopAll()));
+ connect( _taskView, TQ_SIGNAL( tasksChanged( TQPtrList<Task> ) ),
+ _tray, TQ_SLOT( updateToolTip( TQPtrList<Task> ) ));
_taskView->load();
@@ -113,119 +113,119 @@ void karmPart::makeMenus()
*actionNew,
*actionNewSub;
- (void) KStdAction::quit( this, TQT_SLOT( quit() ), actionCollection());
- (void) KStdAction::print( this, TQT_SLOT( print() ), actionCollection());
- actionKeyBindings = KStdAction::keyBindings( this, TQT_SLOT( keyBindings() ),
+ (void) KStdAction::quit( this, TQ_SLOT( quit() ), actionCollection());
+ (void) KStdAction::print( this, TQ_SLOT( print() ), actionCollection());
+ actionKeyBindings = KStdAction::keyBindings( this, TQ_SLOT( keyBindings() ),
actionCollection() );
- actionPreferences = KStdAction::preferences(TQT_TQOBJECT(_preferences),
- TQT_SLOT(showDialog()),
+ actionPreferences = KStdAction::preferences(_preferences,
+ TQ_SLOT(showDialog()),
actionCollection() );
- (void) KStdAction::save( this, TQT_SLOT( save() ), actionCollection() );
+ (void) KStdAction::save( this, TQ_SLOT( save() ), actionCollection() );
TDEAction* actionStartNewSession = new TDEAction( i18n("Start &New Session"),
0,
- TQT_TQOBJECT(this),
- TQT_SLOT( startNewSession() ),
+ this,
+ TQ_SLOT( startNewSession() ),
actionCollection(),
"start_new_session");
TDEAction* actionResetAll = new TDEAction( i18n("&Reset All Times"),
0,
- TQT_TQOBJECT(this),
- TQT_SLOT( resetAllTimes() ),
+ this,
+ TQ_SLOT( resetAllTimes() ),
actionCollection(),
"reset_all_times");
actionStart = new TDEAction( i18n("&Start"),
TQString::fromLatin1("1rightarrow"), Key_S,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( startCurrentTimer() ), actionCollection(),
+ _taskView,
+ TQ_SLOT( startCurrentTimer() ), actionCollection(),
"start");
actionStop = new TDEAction( i18n("S&top"),
TQString::fromLatin1("process-stop"), 0,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( stopCurrentTimer() ), actionCollection(),
+ _taskView,
+ TQ_SLOT( stopCurrentTimer() ), actionCollection(),
"stop");
actionStopAll = new TDEAction( i18n("Stop &All Timers"),
Key_Escape,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( stopAllTimers() ), actionCollection(),
+ _taskView,
+ TQ_SLOT( stopAllTimers() ), actionCollection(),
"stopAll");
actionStopAll->setEnabled(false);
actionNew = new TDEAction( i18n("&New..."),
TQString::fromLatin1("document-new"), CTRL+Key_N,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( newTask() ), actionCollection(),
+ _taskView,
+ TQ_SLOT( newTask() ), actionCollection(),
"new_task");
actionNewSub = new TDEAction( i18n("New &Subtask..."),
TQString::fromLatin1("application-vnd.tde.tdemultiple"), CTRL+ALT+Key_N,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( newSubTask() ), actionCollection(),
+ _taskView,
+ TQ_SLOT( newSubTask() ), actionCollection(),
"new_sub_task");
actionDelete = new TDEAction( i18n("&Delete"),
TQString::fromLatin1("edit-delete"), Key_Delete,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( deleteTask() ), actionCollection(),
+ _taskView,
+ TQ_SLOT( deleteTask() ), actionCollection(),
"delete_task");
actionEdit = new TDEAction( i18n("&Edit..."),
TQString::fromLatin1("edit"), CTRL + Key_E,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( editTask() ), actionCollection(),
+ _taskView,
+ TQ_SLOT( editTask() ), actionCollection(),
"edit_task");
// actionAddComment = new TDEAction( i18n("&Add Comment..."),
// TQString::fromLatin1("text-x-generic"),
// CTRL+ALT+Key_E,
-// TQT_TQOBJECT(_taskView),
-// TQT_SLOT( addCommentToTask() ),
+// _taskView,
+// TQ_SLOT( addCommentToTask() ),
// actionCollection(),
// "add_comment_to_task");
actionMarkAsComplete = new TDEAction( i18n("&Mark as Complete"),
TQString::fromLatin1("text-x-generic"),
CTRL+Key_M,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( markTaskAsComplete() ),
+ _taskView,
+ TQ_SLOT( markTaskAsComplete() ),
actionCollection(),
"mark_as_complete");
actionMarkAsIncomplete = new TDEAction( i18n("&Mark as Incomplete"),
TQString::fromLatin1("text-x-generic"),
CTRL+Key_M,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( markTaskAsIncomplete() ),
+ _taskView,
+ TQ_SLOT( markTaskAsIncomplete() ),
actionCollection(),
"mark_as_incomplete");
actionClipTotals = new TDEAction( i18n("&Copy Totals to Clipboard"),
TQString::fromLatin1("klipper"),
CTRL+Key_C,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( clipTotals() ),
+ _taskView,
+ TQ_SLOT( clipTotals() ),
actionCollection(),
"clip_totals");
actionClipHistory = new TDEAction( i18n("Copy &History to Clipboard"),
TQString::fromLatin1("klipper"),
CTRL+ALT+Key_C,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( clipHistory() ),
+ _taskView,
+ TQ_SLOT( clipHistory() ),
actionCollection(),
"clip_history");
new TDEAction( i18n("Import &Legacy Flat File..."), 0,
- TQT_TQOBJECT(_taskView), TQT_SLOT(loadFromFlatFile()), actionCollection(),
+ _taskView, TQ_SLOT(loadFromFlatFile()), actionCollection(),
"import_flatfile");
new TDEAction( i18n("&Export to CSV File..."), 0,
- TQT_TQOBJECT(_taskView), TQT_SLOT(exportcsvFile()), actionCollection(),
+ _taskView, TQ_SLOT(exportcsvFile()), actionCollection(),
"export_csvfile");
new TDEAction( i18n("Export &History to CSV File..."), 0,
- TQT_TQOBJECT(this), TQT_SLOT(exportcsvHistory()), actionCollection(),
+ this, TQ_SLOT(exportcsvHistory()), actionCollection(),
"export_csvhistory");
new TDEAction( i18n("Import Tasks From &Planner..."), 0,
- TQT_TQOBJECT(_taskView), TQT_SLOT(importPlanner()), actionCollection(),
+ _taskView, TQ_SLOT(importPlanner()), actionCollection(),
"import_planner");
new TDEAction( i18n("Configure KArm..."), 0,
- TQT_TQOBJECT(_preferences), TQT_SLOT(showDialog()), actionCollection(),
+ _preferences, TQ_SLOT(showDialog()), actionCollection(),
"configure_karm");
/*
new TDEAction( i18n("Import E&vents"), 0,
_taskView,
- TQT_SLOT( loadFromKOrgEvents() ), actionCollection(),
+ TQ_SLOT( loadFromKOrgEvents() ), actionCollection(),
"import_korg_events");
*/
@@ -287,12 +287,12 @@ void karmPart::setReadWrite(bool rw)
{
// notify your internal widget of the read-write state
if (rw)
- connect(_taskView, TQT_SIGNAL(textChanged()),
- this, TQT_SLOT(setModified()));
+ connect(_taskView, TQ_SIGNAL(textChanged()),
+ this, TQ_SLOT(setModified()));
else
{
- disconnect(_taskView, TQT_SIGNAL(textChanged()),
- this, TQT_SLOT(setModified()));
+ disconnect(_taskView, TQ_SIGNAL(textChanged()),
+ this, TQ_SLOT(setModified()));
}
ReadWritePart::setReadWrite(rw);
@@ -544,10 +544,10 @@ int karmPart::bookTime
// Parse datetime
if ( !rval )
{
- startDate = TQDate::fromString( datetime, Qt::ISODate );
+ startDate = TQDate::fromString( datetime, TQt::ISODate );
if ( datetime.length() > 10 ) // "YYYY-MM-DD".length() = 10
{
- startTime = TQTime::fromString( datetime, Qt::ISODate );
+ startTime = TQTime::fromString( datetime, TQt::ISODate );
}
else startTime = TQTime( 12, 0 );
if ( startDate.isValid() && startTime.isValid() )
diff --git a/karm/karm_part.desktop b/karm/karm_part.desktop
index 03a13afd..1295a067 100644
--- a/karm/karm_part.desktop
+++ b/karm/karm_part.desktop
@@ -1,15 +1,6 @@
[Desktop Entry]
Name=karmPart
-Name[cs]=karm komponenta
-Name[de]=KArm-Komponente
-Name[et]=KArmi komponent
-Name[fr]=Composant KArm
-Name[is]=karm hluti
-Name[nds]=karm-Komponent
-Name[pt]=Componente KArm
-Name[pt_BR]=Componente do KArm
-Name[sv]=Karm-delprogram
-Name[tr]=karmpart
+
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
X-TDE-ServiceTypes=KParts/ReadOnlyPart,KParts/ReadWritePart
X-TDE-Library=libkarmpart
diff --git a/karm/karm_part.h b/karm/karm_part.h
index 22a63cff..d4d50209 100644
--- a/karm/karm_part.h
+++ b/karm/karm_part.h
@@ -29,7 +29,7 @@ class TaskView;
*/
class karmPart : public KParts::ReadWritePart, virtual public KarmDCOPIface
{
- Q_OBJECT
+ TQ_OBJECT
private:
@@ -121,7 +121,7 @@ class TDEAboutData;
class karmPartFactory : public KParts::Factory
{
- Q_OBJECT
+ TQ_OBJECT
public:
karmPartFactory();
diff --git a/karm/karmstorage.cpp b/karm/karmstorage.cpp
index 1992c0f8..92f69ff6 100644
--- a/karm/karmstorage.cpp
+++ b/karm/karmstorage.cpp
@@ -132,8 +132,8 @@ TQString KarmStorage::load (TaskView* view, const Preferences* preferences, TQSt
}
_calendar = resource;
- TQObject::connect (_calendar, TQT_SIGNAL(resourceChanged(ResourceCalendar *)),
- view, TQT_SLOT(iCalFileModified(ResourceCalendar *)));
+ TQObject::connect (_calendar, TQ_SIGNAL(resourceChanged(ResourceCalendar *)),
+ view, TQ_SLOT(iCalFileModified(ResourceCalendar *)));
_calendar->setTimeZoneId( KPimPrefs::timezone() );
_calendar->setResourceName( TQString::fromLatin1("KArm") );
_calendar->open();
diff --git a/karm/karmstorage.h b/karm/karmstorage.h
index 796c42db..4087d3da 100644
--- a/karm/karmstorage.h
+++ b/karm/karmstorage.h
@@ -34,7 +34,7 @@
#include <calendarresources.h>
#include <vector>
#include "resourcecalendar.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQDateTime;
class Preferences;
diff --git a/karm/ktimewidget.cpp b/karm/ktimewidget.cpp
index fb18e8be..ecf632a7 100644
--- a/karm/ktimewidget.cpp
+++ b/karm/ktimewidget.cpp
@@ -17,7 +17,7 @@ class TimeValidator : public TQValidator
{
public:
TimeValidator( ValidatorType tp, TQWidget *parent=0, const char *name=0)
- : TQValidator(TQT_TQOBJECT(parent), name)
+ : TQValidator(parent, name)
{
_tp = tp;
}
diff --git a/karm/mainwindow.cpp b/karm/mainwindow.cpp
index 9c892f18..6edc6b2d 100644
--- a/karm/mainwindow.cpp
+++ b/karm/mainwindow.cpp
@@ -38,7 +38,7 @@ MainWindow::MainWindow( const TQString &icsfile )
: DCOPObject ( "KarmDCOPIface" ),
KParts::MainWindow(0,TQt::WStyle_ContextHelp),
_accel ( new TDEAccel( this ) ),
- _watcher ( new TDEAccelMenuWatch( _accel, TQT_TQOBJECT(this) ) ),
+ _watcher ( new TDEAccelMenuWatch( _accel, this ) ),
_totalSum ( 0 ),
_sessionSum( 0 )
{
@@ -57,33 +57,33 @@ MainWindow::MainWindow( const TQString &icsfile )
_watcher->updateMenus();
// connections
- connect( _taskView, TQT_SIGNAL( totalTimesChanged( long, long ) ),
- this, TQT_SLOT( updateTime( long, long ) ) );
- connect( _taskView, TQT_SIGNAL( selectionChanged ( TQListViewItem * )),
- this, TQT_SLOT(slotSelectionChanged()));
- connect( _taskView, TQT_SIGNAL( updateButtons() ),
- this, TQT_SLOT(slotSelectionChanged()));
- connect( _taskView, TQT_SIGNAL( setStatusBar( TQString ) ),
- this, TQT_SLOT(setStatusBar( TQString )));
+ connect( _taskView, TQ_SIGNAL( totalTimesChanged( long, long ) ),
+ this, TQ_SLOT( updateTime( long, long ) ) );
+ connect( _taskView, TQ_SIGNAL( selectionChanged ( TQListViewItem * )),
+ this, TQ_SLOT(slotSelectionChanged()));
+ connect( _taskView, TQ_SIGNAL( updateButtons() ),
+ this, TQ_SLOT(slotSelectionChanged()));
+ connect( _taskView, TQ_SIGNAL( setStatusBar( TQString ) ),
+ this, TQ_SLOT(setStatusBar( TQString )));
loadGeometry();
// Setup context menu request handling
connect( _taskView,
- TQT_SIGNAL( contextMenuRequested( TQListViewItem*, const TQPoint&, int )),
+ TQ_SIGNAL( contextMenuRequested( TQListViewItem*, const TQPoint&, int )),
this,
- TQT_SLOT( contextMenuRequest( TQListViewItem*, const TQPoint&, int )));
+ TQ_SLOT( contextMenuRequest( TQListViewItem*, const TQPoint&, int )));
_tray = new KarmTray( this );
- connect( _tray, TQT_SIGNAL( quitSelected() ), TQT_SLOT( quit() ) );
+ connect( _tray, TQ_SIGNAL( quitSelected() ), TQ_SLOT( quit() ) );
- connect( _taskView, TQT_SIGNAL( timersActive() ), _tray, TQT_SLOT( startClock() ) );
- connect( _taskView, TQT_SIGNAL( timersActive() ), this, TQT_SLOT( enableStopAll() ));
- connect( _taskView, TQT_SIGNAL( timersInactive() ), _tray, TQT_SLOT( stopClock() ) );
- connect( _taskView, TQT_SIGNAL( timersInactive() ), this, TQT_SLOT( disableStopAll()));
- connect( _taskView, TQT_SIGNAL( tasksChanged( TQPtrList<Task> ) ),
- _tray, TQT_SLOT( updateToolTip( TQPtrList<Task> ) ));
+ connect( _taskView, TQ_SIGNAL( timersActive() ), _tray, TQ_SLOT( startClock() ) );
+ connect( _taskView, TQ_SIGNAL( timersActive() ), this, TQ_SLOT( enableStopAll() ));
+ connect( _taskView, TQ_SIGNAL( timersInactive() ), _tray, TQ_SLOT( stopClock() ) );
+ connect( _taskView, TQ_SIGNAL( timersInactive() ), this, TQ_SLOT( disableStopAll()));
+ connect( _taskView, TQ_SIGNAL( tasksChanged( TQPtrList<Task> ) ),
+ _tray, TQ_SLOT( updateToolTip( TQPtrList<Task> ) ));
_taskView->load();
@@ -251,124 +251,124 @@ void MainWindow::makeMenus()
*actionNew,
*actionNewSub;
- (void) KStdAction::quit( TQT_TQOBJECT(this), TQT_SLOT( quit() ), actionCollection());
- (void) KStdAction::print( TQT_TQOBJECT(this), TQT_SLOT( print() ), actionCollection());
- actionKeyBindings = KStdAction::keyBindings( TQT_TQOBJECT(this), TQT_SLOT( keyBindings() ),
+ (void) KStdAction::quit( this, TQ_SLOT( quit() ), actionCollection());
+ (void) KStdAction::print( this, TQ_SLOT( print() ), actionCollection());
+ actionKeyBindings = KStdAction::keyBindings( this, TQ_SLOT( keyBindings() ),
actionCollection() );
- actionPreferences = KStdAction::preferences(TQT_TQOBJECT(_preferences),
- TQT_SLOT(showDialog()),
+ actionPreferences = KStdAction::preferences(_preferences,
+ TQ_SLOT(showDialog()),
actionCollection() );
- (void) KStdAction::save( TQT_TQOBJECT(this), TQT_SLOT( save() ), actionCollection() );
+ (void) KStdAction::save( this, TQ_SLOT( save() ), actionCollection() );
TDEAction* actionStartNewSession = new TDEAction( i18n("Start &New Session"),
0,
- TQT_TQOBJECT(this),
- TQT_SLOT( startNewSession() ),
+ this,
+ TQ_SLOT( startNewSession() ),
actionCollection(),
"start_new_session");
TDEAction* actionResetAll = new TDEAction( i18n("&Reset All Times"),
0,
- TQT_TQOBJECT(this),
- TQT_SLOT( resetAllTimes() ),
+ this,
+ TQ_SLOT( resetAllTimes() ),
actionCollection(),
"reset_all_times");
actionStart = new TDEAction( i18n("&Start"),
TQString::fromLatin1("1rightarrow"), Key_S,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( startCurrentTimer() ), actionCollection(),
+ _taskView,
+ TQ_SLOT( startCurrentTimer() ), actionCollection(),
"start");
actionStop = new TDEAction( i18n("S&top"),
TQString::fromLatin1("process-stop"), Key_S,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( stopCurrentTimer() ), actionCollection(),
+ _taskView,
+ TQ_SLOT( stopCurrentTimer() ), actionCollection(),
"stop");
actionStopAll = new TDEAction( i18n("Stop &All Timers"),
Key_Escape,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( stopAllTimers() ), actionCollection(),
+ _taskView,
+ TQ_SLOT( stopAllTimers() ), actionCollection(),
"stopAll");
actionStopAll->setEnabled(false);
actionNew = new TDEAction( i18n("&New..."),
TQString::fromLatin1("document-new"), CTRL+Key_N,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( newTask() ), actionCollection(),
+ _taskView,
+ TQ_SLOT( newTask() ), actionCollection(),
"new_task");
actionNewSub = new TDEAction( i18n("New &Subtask..."),
TQString::fromLatin1("application-vnd.tde.tdemultiple"), CTRL+ALT+Key_N,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( newSubTask() ), actionCollection(),
+ _taskView,
+ TQ_SLOT( newSubTask() ), actionCollection(),
"new_sub_task");
actionDelete = new TDEAction( i18n("&Delete"),
TQString::fromLatin1("edit-delete"), Key_Delete,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( deleteTask() ), actionCollection(),
+ _taskView,
+ TQ_SLOT( deleteTask() ), actionCollection(),
"delete_task");
actionEdit = new TDEAction( i18n("&Edit..."),
TQString::fromLatin1("edit"), CTRL + Key_E,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( editTask() ), actionCollection(),
+ _taskView,
+ TQ_SLOT( editTask() ), actionCollection(),
"edit_task");
// actionAddComment = new TDEAction( i18n("&Add Comment..."),
// TQString::fromLatin1("text-x-generic"),
// CTRL+ALT+Key_E,
-// TQT_TQOBJECT(_taskView),
-// TQT_SLOT( addCommentToTask() ),
+// _taskView,
+// TQ_SLOT( addCommentToTask() ),
// actionCollection(),
// "add_comment_to_task");
actionMarkAsComplete = new TDEAction( i18n("&Mark as Complete"),
TQString::fromLatin1("text-x-generic"),
CTRL+Key_M,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( markTaskAsComplete() ),
+ _taskView,
+ TQ_SLOT( markTaskAsComplete() ),
actionCollection(),
"mark_as_complete");
actionMarkAsIncomplete = new TDEAction( i18n("&Mark as Incomplete"),
TQString::fromLatin1("text-x-generic"),
CTRL+Key_M,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( markTaskAsIncomplete() ),
+ _taskView,
+ TQ_SLOT( markTaskAsIncomplete() ),
actionCollection(),
"mark_as_incomplete");
actionClipTotals = new TDEAction( i18n("&Copy Totals to Clipboard"),
TQString::fromLatin1("klipper"),
CTRL+Key_C,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( clipTotals() ),
+ _taskView,
+ TQ_SLOT( clipTotals() ),
actionCollection(),
"clip_totals");
// actionClipTotals will never be used again, overwrite it
actionClipTotals = new TDEAction( i18n("&Copy Session Time to Clipboard"),
TQString::fromLatin1("klipper"),
0,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( clipSession() ),
+ _taskView,
+ TQ_SLOT( clipSession() ),
actionCollection(),
"clip_session");
actionClipHistory = new TDEAction( i18n("Copy &History to Clipboard"),
TQString::fromLatin1("klipper"),
CTRL+ALT+Key_C,
- TQT_TQOBJECT(_taskView),
- TQT_SLOT( clipHistory() ),
+ _taskView,
+ TQ_SLOT( clipHistory() ),
actionCollection(),
"clip_history");
new TDEAction( i18n("Import &Legacy Flat File..."), 0,
- TQT_TQOBJECT(_taskView), TQT_SLOT(loadFromFlatFile()), actionCollection(),
+ _taskView, TQ_SLOT(loadFromFlatFile()), actionCollection(),
"import_flatfile");
new TDEAction( i18n("&Export to CSV File..."), 0,
- TQT_TQOBJECT(_taskView), TQT_SLOT(exportcsvFile()), actionCollection(),
+ _taskView, TQ_SLOT(exportcsvFile()), actionCollection(),
"export_csvfile");
new TDEAction( i18n("Export &History to CSV File..."), 0,
- TQT_TQOBJECT(this), TQT_SLOT(exportcsvHistory()), actionCollection(),
+ this, TQ_SLOT(exportcsvHistory()), actionCollection(),
"export_csvhistory");
new TDEAction( i18n("Import Tasks From &Planner..."), 0,
- TQT_TQOBJECT(_taskView), TQT_SLOT(importPlanner()), actionCollection(),
+ _taskView, TQ_SLOT(importPlanner()), actionCollection(),
"import_planner");
/*
new TDEAction( i18n("Import E&vents"), 0,
_taskView,
- TQT_SLOT( loadFromKOrgEvents() ), actionCollection(),
+ TQ_SLOT( loadFromKOrgEvents() ), actionCollection(),
"import_korg_events");
*/
@@ -578,10 +578,10 @@ int MainWindow::bookTime
// Parse datetime
if ( !rval )
{
- startDate = TQDate::fromString( datetime, Qt::ISODate );
+ startDate = TQDate::fromString( datetime, TQt::ISODate );
if ( datetime.length() > 10 ) // "YYYY-MM-DD".length() = 10
{
- startTime = TQTime::fromString( datetime, Qt::ISODate );
+ startTime = TQTime::fromString( datetime, TQt::ISODate );
}
else startTime = TQTime( 12, 0 );
if ( startDate.isValid() && startTime.isValid() )
@@ -718,10 +718,10 @@ TQString MainWindow::exportcsvfile( TQString filename, TQString from, TQString t
ReportCriteria rc;
rc.url=filename;
rc.from=TQDate::fromString( from );
- if ( rc.from.isNull() ) rc.from=TQDate::fromString( from, Qt::ISODate );
+ if ( rc.from.isNull() ) rc.from=TQDate::fromString( from, TQt::ISODate );
kdDebug(5970) << "rc.from " << rc.from << endl;
rc.to=TQDate::fromString( to );
- if ( rc.to.isNull() ) rc.to=TQDate::fromString( to, Qt::ISODate );
+ if ( rc.to.isNull() ) rc.to=TQDate::fromString( to, TQt::ISODate );
kdDebug(5970) << "rc.to " << rc.to << endl;
rc.reportType=(ReportCriteria::REPORTTYPE) type; // history report or totals report
rc.decimalMinutes=decimalMinutes;
diff --git a/karm/mainwindow.h b/karm/mainwindow.h
index 0e932484..7d055802 100644
--- a/karm/mainwindow.h
+++ b/karm/mainwindow.h
@@ -25,7 +25,7 @@ class TaskView;
class MainWindow : public KParts::MainWindow, virtual public KarmDCOPIface
{
- Q_OBJECT
+ TQ_OBJECT
private:
diff --git a/karm/preferences.cpp b/karm/preferences.cpp
index 29b242cf..e8a437ef 100644
--- a/karm/preferences.cpp
+++ b/karm/preferences.cpp
@@ -68,8 +68,8 @@ void Preferences::makeBehaviorPage()
topLevel->addStretch();
- connect( _doIdleDetectionW, TQT_SIGNAL( clicked() ), this,
- TQT_SLOT( idleDetectCheckBoxChanged() ));
+ connect( _doIdleDetectionW, TQ_SIGNAL( clicked() ), this,
+ TQ_SLOT( idleDetectCheckBoxChanged() ));
}
void Preferences::makeDisplayPage()
@@ -138,8 +138,8 @@ void Preferences::makeStoragePage()
topLevel->addStretch();
// checkboxes disable file selection controls
- connect( _doAutoSaveW, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( autoSaveCheckBoxChanged() ));
+ connect( _doAutoSaveW, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( autoSaveCheckBoxChanged() ));
}
void Preferences::disableIdleDetection()
diff --git a/karm/preferences.h b/karm/preferences.h
index 8ac92fed..51b52640 100644
--- a/karm/preferences.h
+++ b/karm/preferences.h
@@ -15,7 +15,7 @@ class KURLRequester;
class Preferences :public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/karm/printdialog.cpp b/karm/printdialog.cpp
index 9b4e3b78..128c892a 100644
--- a/karm/printdialog.cpp
+++ b/karm/printdialog.cpp
@@ -53,7 +53,7 @@ PrintDialog::PrintDialog()
layout->addStretch(1);
// Date Range
- TQGroupBox *rangeGroup = new TQGroupBox(1, Qt::Horizontal, i18n("Date Range"),
+ TQGroupBox *rangeGroup = new TQGroupBox(1, TQt::Horizontal, i18n("Date Range"),
page);
layout->addWidget(rangeGroup);
diff --git a/karm/printdialog.h b/karm/printdialog.h
index 18eb2695..d5316f8a 100644
--- a/karm/printdialog.h
+++ b/karm/printdialog.h
@@ -30,7 +30,7 @@ class KDateEdit;
class PrintDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/karm/support/CMakeLists.txt b/karm/support/CMakeLists.txt
index f0180549..b5eab2a3 100644
--- a/karm/support/CMakeLists.txt
+++ b/karm/support/CMakeLists.txt
@@ -9,4 +9,7 @@
#
#################################################
-install( FILES karm.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE karm.desktop
+ PO_DIR karm-desktops
+)
diff --git a/karm/support/karm.desktop b/karm/support/karm.desktop
index c7f66494..20a764ad 100644
--- a/karm/support/karm.desktop
+++ b/karm/support/karm.desktop
@@ -1,72 +1,8 @@
[Desktop Entry]
Name=KArm
-Name[af]=Karm
-Name[hi]=के-आर्म
-Name[sv]=Karm
-Name[ta]=Kஅம்
-Name[xh]=KAlrm
-Name[zh_TW]=KArm 個人時程紀錄
+
GenericName=Personal Time Tracker
-GenericName[af]=Persoonlike Tyd Volger
-GenericName[az]=Şəxsi Saat İzləyici
-GenericName[bg]=Отчитане на времето
-GenericName[br]=Roudenner amzer personel
-GenericName[bs]=Osobni mjerač vremena
-GenericName[ca]=Cronòmetre personal
-GenericName[cs]=Osobní měřič času
-GenericName[cy]=Dilynnydd Amser Personol
-GenericName[da]=Personlig tidsoversigt
-GenericName[de]=Persönliche Zeiterfassung
-GenericName[el]=Προσωπικός καταγραφέας χρόνου
-GenericName[eo]=Tempomezurilo por viaj aktivecoj
-GenericName[es]=Cronómetro personal
-GenericName[et]=Personaalne ajaarvestus
-GenericName[eu]=Kronometro pertsonala
-GenericName[fa]=ردیاب شخصی زمان
-GenericName[fi]=Henkilökohtainen ajanhallintaohjelma
-GenericName[fr]=Chronomètre individuel de tâches
-GenericName[fy]=Persoanlike tiidregistraasje
-GenericName[gl]=Xestor Persoal de Proxectos
-GenericName[he]=מנהל זמן אישי
-GenericName[hr]=Osobni mjerač vremena
-GenericName[hu]=Időfelhasználás-figyelő
-GenericName[id]=Tracker Waktu Pribadi
-GenericName[is]=Fylgjast með í hvað tíminn fer
-GenericName[it]=Segnatempo personale
-GenericName[kk]=Дербес уақыт қадағалағышы
-GenericName[km]=កម្មវិធី​តាមដាន​ពេលវេលា​ផ្ទាល់​ខ្លួន
-GenericName[ko]=일하는 시간을 잴 수 있습니다
-GenericName[lt]=Asmeninis laiko sekėjas
-GenericName[lv]=Personālais Laika Atsekotājs
-GenericName[mk]=Следење на личното време
-GenericName[ms]=Penjejak Waktu Peribadi
-GenericName[mt]=Żomm il-ħin personali
-GenericName[nb]=Personlig tidsoversikt
-GenericName[nds]=Persöönlich Tietlogbook
-GenericName[ne]=व्यक्तिगत समय ट्र्याकर
-GenericName[nl]=Tijdsregistratie
-GenericName[nn]=Personleg tidsmålar
-GenericName[nso]=Seswaranako sa Nako ya Botho
-GenericName[pl]=Osobisty Czasomierz
-GenericName[pt]=Gestor Pessoal de Tempo
-GenericName[pt_BR]=Gerenciador pessoal de tempo
-GenericName[ro]=Organizator timp personal
-GenericName[ru]=Учёт рабочего времени
-GenericName[sk]=Osobný merač času
-GenericName[sl]=Osebni merilec časa
-GenericName[sr]=Лични пратилац времена
-GenericName[sr@Latn]=Lični pratilac vremena
-GenericName[sv]=Personlig tidmätare
-GenericName[ta]=தனிப்பயன் நேரம் பின்பற்றி
-GenericName[tg]=Баҳисобгирии вақти корӣ
-GenericName[tr]=Kişisel Saat İzleyici
-GenericName[uk]=Персональний лічильник часу
-GenericName[ven]=Tshisedzulusi tsha tshifhinga tsha vhune
-GenericName[vi]=Trình đo thời gian
-GenericName[xh]=Umfumani Wexesha Lobuqu
-GenericName[zh_CN]=个人时间记录
-GenericName[zh_TW]=個人時程記錄
-GenericName[zu]=Umgcini Wesikhathi Esemfihlo
+
Exec=karm -caption "%c" %i %m
Icon=karm
Path=
diff --git a/karm/task.cpp b/karm/task.cpp
index 5b05407d..88c0e099 100644
--- a/karm/task.cpp
+++ b/karm/task.cpp
@@ -54,11 +54,11 @@ void Task::init( const TQString& taskName, long minutes, long sessionTime,
// If our parent is the taskview then connect our totalTimesChanged
// signal to its receiver
if ( ! parent() )
- connect( this, TQT_SIGNAL( totalTimesChanged ( long, long ) ),
- listView(), TQT_SLOT( taskTotalTimesChanged( long, long) ));
+ connect( this, TQ_SIGNAL( totalTimesChanged ( long, long ) ),
+ listView(), TQ_SLOT( taskTotalTimesChanged( long, long) ));
- connect( this, TQT_SIGNAL( deletingTask( Task* ) ),
- listView(), TQT_SLOT( deletingTask( Task* ) ));
+ connect( this, TQ_SIGNAL( deletingTask( Task* ) ),
+ listView(), TQ_SLOT( deletingTask( Task* ) ));
if (icons == 0) {
icons = new TQPtrVector<TQPixmap>(8);
@@ -80,7 +80,7 @@ void Task::init( const TQString& taskName, long minutes, long sessionTime,
_totalSessionTime = _sessionTime = sessionTime;
_timer = new TQTimer(this);
_desktops = desktops;
- connect(_timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(updateActiveIcon()));
+ connect(_timer, TQ_SIGNAL(timeout()), this, TQ_SLOT(updateActiveIcon()));
setPixmap(1, UserIcon(TQString::fromLatin1("empty-watch.xpm")));
_currentPic = 0;
_percentcomplete = percent_complete;
diff --git a/karm/task.h b/karm/task.h
index f375e271..97cc6109 100644
--- a/karm/task.h
+++ b/karm/task.h
@@ -40,7 +40,7 @@ class TQPixmap;
*/
class Task : public TQObject, public TQListViewItem
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/karm/taskview.cpp b/karm/taskview.cpp
index 796e46d2..ad0877f1 100644
--- a/karm/taskview.cpp
+++ b/karm/taskview.cpp
@@ -42,10 +42,10 @@ TaskView::TaskView(TQWidget *parent, const char *name, const TQString &icsfile )
_preferences = Preferences::instance( icsfile );
_storage = KarmStorage::instance();
- connect( this, TQT_SIGNAL( expanded( TQListViewItem * ) ),
- this, TQT_SLOT( itemStateChanged( TQListViewItem * ) ) );
- connect( this, TQT_SIGNAL( collapsed( TQListViewItem * ) ),
- this, TQT_SLOT( itemStateChanged( TQListViewItem * ) ) );
+ connect( this, TQ_SIGNAL( expanded( TQListViewItem * ) ),
+ this, TQ_SLOT( itemStateChanged( TQListViewItem * ) ) );
+ connect( this, TQ_SIGNAL( collapsed( TQListViewItem * ) ),
+ this, TQ_SLOT( itemStateChanged( TQListViewItem * ) ) );
// setup default values
previousColumnWidths[0] = previousColumnWidths[1]
@@ -65,49 +65,49 @@ TaskView::TaskView(TQWidget *parent, const char *name, const TQString &icsfile )
// set up the minuteTimer
_minuteTimer = new TQTimer(this);
- connect( _minuteTimer, TQT_SIGNAL( timeout() ), this, TQT_SLOT( minuteUpdate() ));
+ connect( _minuteTimer, TQ_SIGNAL( timeout() ), this, TQ_SLOT( minuteUpdate() ));
_minuteTimer->start(1000 * secsPerMinute);
// React when user changes iCalFile
- connect(_preferences, TQT_SIGNAL(iCalFile(TQString)),
- this, TQT_SLOT(iCalFileChanged(TQString)));
+ connect(_preferences, TQ_SIGNAL(iCalFile(TQString)),
+ this, TQ_SLOT(iCalFileChanged(TQString)));
// resize columns when config is changed
- connect(_preferences, TQT_SIGNAL( setupChanged() ), this,TQT_SLOT( adaptColumns() ));
+ connect(_preferences, TQ_SIGNAL( setupChanged() ), this,TQ_SLOT( adaptColumns() ));
_minuteTimer->start(1000 * secsPerMinute);
// Set up the idle detection.
_idleTimeDetector = new IdleTimeDetector( _preferences->idlenessTimeout() );
- connect( _idleTimeDetector, TQT_SIGNAL( extractTime(int) ),
- this, TQT_SLOT( extractTime(int) ));
- connect( _idleTimeDetector, TQT_SIGNAL( stopAllTimersAt(TQDateTime) ),
- this, TQT_SLOT( stopAllTimersAt(TQDateTime) ));
- connect( _preferences, TQT_SIGNAL( idlenessTimeout(int) ),
- _idleTimeDetector, TQT_SLOT( setMaxIdle(int) ));
- connect( _preferences, TQT_SIGNAL( detectIdleness(bool) ),
- _idleTimeDetector, TQT_SLOT( toggleOverAllIdleDetection(bool) ));
+ connect( _idleTimeDetector, TQ_SIGNAL( extractTime(int) ),
+ this, TQ_SLOT( extractTime(int) ));
+ connect( _idleTimeDetector, TQ_SIGNAL( stopAllTimersAt(TQDateTime) ),
+ this, TQ_SLOT( stopAllTimersAt(TQDateTime) ));
+ connect( _preferences, TQ_SIGNAL( idlenessTimeout(int) ),
+ _idleTimeDetector, TQ_SLOT( setMaxIdle(int) ));
+ connect( _preferences, TQ_SIGNAL( detectIdleness(bool) ),
+ _idleTimeDetector, TQ_SLOT( toggleOverAllIdleDetection(bool) ));
if (!_idleTimeDetector->isIdleDetectionPossible())
_preferences->disableIdleDetection();
// Setup auto save timer
_autoSaveTimer = new TQTimer(this);
- connect( _preferences, TQT_SIGNAL( autoSave(bool) ),
- this, TQT_SLOT( autoSaveChanged(bool) ));
- connect( _preferences, TQT_SIGNAL( autoSavePeriod(int) ),
- this, TQT_SLOT( autoSavePeriodChanged(int) ));
- connect( _autoSaveTimer, TQT_SIGNAL( timeout() ), this, TQT_SLOT( save() ));
+ connect( _preferences, TQ_SIGNAL( autoSave(bool) ),
+ this, TQ_SLOT( autoSaveChanged(bool) ));
+ connect( _preferences, TQ_SIGNAL( autoSavePeriod(int) ),
+ this, TQ_SLOT( autoSavePeriodChanged(int) ));
+ connect( _autoSaveTimer, TQ_SIGNAL( timeout() ), this, TQ_SLOT( save() ));
// Setup manual save timer (to save changes a little while after they happen)
_manualSaveTimer = new TQTimer(this);
- connect( _manualSaveTimer, TQT_SIGNAL( timeout() ), this, TQT_SLOT( save() ));
+ connect( _manualSaveTimer, TQ_SIGNAL( timeout() ), this, TQ_SLOT( save() ));
// Connect desktop tracker events to task starting/stopping
_desktopTracker = new DesktopTracker();
- connect( _desktopTracker, TQT_SIGNAL( reachedtActiveDesktop( Task* ) ),
- this, TQT_SLOT( startTimerFor(Task*) ));
- connect( _desktopTracker, TQT_SIGNAL( leftActiveDesktop( Task* ) ),
- this, TQT_SLOT( stopTimerFor(Task*) ));
+ connect( _desktopTracker, TQ_SIGNAL( reachedtActiveDesktop( Task* ) ),
+ this, TQ_SLOT( startTimerFor(Task*) ));
+ connect( _desktopTracker, TQ_SIGNAL( leftActiveDesktop( Task* ) ),
+ this, TQ_SLOT( stopTimerFor(Task*) ));
new TaskViewWhatsThis( this );
}
@@ -131,7 +131,7 @@ void TaskView::contentsMousePressEvent ( TQMouseEvent * e )
int leftborder = treeStepSize() * ( task->depth() + ( rootIsDecorated() ? 1 : 0)) + itemMargin();
if ((leftborder < e->x()) && (e->x() < 19 + leftborder ))
{
- if ( e->button() == Qt::LeftButton )
+ if ( e->button() == TQt::LeftButton )
if ( task->isComplete() ) task->setPercentComplete( 0, _storage );
else task->setPercentComplete( 100, _storage );
}
diff --git a/karm/taskview.h b/karm/taskview.h
index cbb5def7..c74f86cf 100644
--- a/karm/taskview.h
+++ b/karm/taskview.h
@@ -41,7 +41,7 @@ using namespace KCal;
class TaskView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/karm/tdeaccelmenuwatch.cpp b/karm/tdeaccelmenuwatch.cpp
index 5cb22366..3cc72ea8 100644
--- a/karm/tdeaccelmenuwatch.cpp
+++ b/karm/tdeaccelmenuwatch.cpp
@@ -27,7 +27,7 @@ void TDEAccelMenuWatch::setMenu( TQPopupMenu *menu )
if ( !_menuList.findRef( menu ) ) {
_menuList.append( menu );
- connect( menu, TQT_SIGNAL(destroyed()), this, TQT_SLOT(removeDeadMenu()) );
+ connect( menu, TQ_SIGNAL(destroyed()), this, TQ_SLOT(removeDeadMenu()) );
}
_menu = menu;
diff --git a/karm/tdeaccelmenuwatch.h b/karm/tdeaccelmenuwatch.h
index 89f96d94..c9e8aae6 100644
--- a/karm/tdeaccelmenuwatch.h
+++ b/karm/tdeaccelmenuwatch.h
@@ -34,7 +34,7 @@ class TQPopupMenu;
class TDEAccelMenuWatch : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
private:
diff --git a/karm/test/script.cpp b/karm/test/script.cpp
index f9fa9d9e..ab6f7579 100644
--- a/karm/test/script.cpp
+++ b/karm/test/script.cpp
@@ -47,14 +47,14 @@ Script::Script( const TQDir& workingDirectory )
m_proc = new TQProcess( this );
m_proc->setWorkingDirectory( workingDirectory );
- connect ( m_proc, TQT_SIGNAL( readyReadStdout() ),
- this , TQT_SLOT ( stdout() )
+ connect ( m_proc, TQ_SIGNAL( readyReadStdout() ),
+ this , TQ_SLOT ( stdout() )
);
- connect ( m_proc, TQT_SIGNAL( readyReadStderr() ),
- this , TQT_SLOT ( stderr() )
+ connect ( m_proc, TQ_SIGNAL( readyReadStderr() ),
+ this , TQ_SLOT ( stderr() )
);
- connect ( m_proc, TQT_SIGNAL( processExited() ),
- this , TQT_SLOT ( exit() )
+ connect ( m_proc, TQ_SIGNAL( processExited() ),
+ this , TQ_SLOT ( exit() )
);
}
@@ -79,7 +79,7 @@ int Script::run()
{
m_proc->start();
// This didn't work. But Ctrl-C does. :P
- //TQTimer::singleShot( m_timeoutInSeconds * 1000, m_proc, TQT_SLOT( kill() ) );
+ //TQTimer::singleShot( m_timeoutInSeconds * 1000, m_proc, TQ_SLOT( kill() ) );
//while ( ! m_proc->normalExit() );
while ( m_proc->isRunning() );
return m_status;
@@ -89,7 +89,7 @@ void Script::terminate()
{
// These both trigger processExited, so exit() will run.
m_proc->tryTerminate();
- TQTimer::singleShot( NICE_KILL_TIMEOUT_IN_SECS*1000, m_proc, TQT_SLOT( kill() ) );
+ TQTimer::singleShot( NICE_KILL_TIMEOUT_IN_SECS*1000, m_proc, TQ_SLOT( kill() ) );
}
void Script::exit()
diff --git a/karm/test/script.h b/karm/test/script.h
index 3aad9c87..89d2d3f7 100644
--- a/karm/test/script.h
+++ b/karm/test/script.h
@@ -30,7 +30,7 @@ class TQStringList;
class Script : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
Script( const TQDir& workingDirectory );
diff --git a/karm/tray.cpp b/karm/tray.cpp
index 5187c7e4..9332d1e0 100644
--- a/karm/tray.cpp
+++ b/karm/tray.cpp
@@ -35,8 +35,8 @@ KarmTray::KarmTray(MainWindow* parent)
{
// the timer that updates the "running" icon in the tray
_taskActiveTimer = new TQTimer(this);
- connect( _taskActiveTimer, TQT_SIGNAL( timeout() ), this,
- TQT_SLOT( advanceClock()) );
+ connect( _taskActiveTimer, TQ_SIGNAL( timeout() ), this,
+ TQ_SLOT( advanceClock()) );
if (icons == 0) {
icons = new TQPtrVector<TQPixmap>(8);
diff --git a/karm/tray.h b/karm/tray.h
index 45b3b702..1740a222 100644
--- a/karm/tray.h
+++ b/karm/tray.h
@@ -23,7 +23,7 @@ class MainWindow;
class KarmTray : public KSystemTray
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kdgantt/KDGanttMinimizeSplitter.cpp b/kdgantt/KDGanttMinimizeSplitter.cpp
index 6db8dcab..2339d1ce 100644
--- a/kdgantt/KDGanttMinimizeSplitter.cpp
+++ b/kdgantt/KDGanttMinimizeSplitter.cpp
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
*/
@@ -55,7 +55,7 @@ static int mouseOffset;
static int opaqueOldPos = -1; //### there's only one mouse, but this is a bit risky
-KDGanttSplitterHandle::KDGanttSplitterHandle( Qt::Orientation o,
+KDGanttSplitterHandle::KDGanttSplitterHandle( TQt::Orientation o,
KDGanttMinimizeSplitter *parent, const char * name )
: TQWidget( parent, name ), _activeButton( 0 ), _collapsed( false )
{
@@ -69,11 +69,11 @@ TQSize KDGanttSplitterHandle::sizeHint() const
return TQSize(8,8);
}
-void KDGanttSplitterHandle::setOrientation( Qt::Orientation o )
+void KDGanttSplitterHandle::setOrientation( TQt::Orientation o )
{
orient = o;
#ifndef TQT_NO_CURSOR
- if ( o == Qt::Horizontal )
+ if ( o == TQt::Horizontal )
setCursor( splitHCursor );
else
setCursor( splitVCursor );
@@ -84,7 +84,7 @@ void KDGanttSplitterHandle::setOrientation( Qt::Orientation o )
void KDGanttSplitterHandle::mouseMoveEvent( TQMouseEvent *e )
{
updateCursor( e->pos() );
- if ( !(e->state()&Qt::LeftButton) )
+ if ( !(e->state()&TQt::LeftButton) )
return;
if ( _activeButton != 0)
@@ -104,7 +104,7 @@ void KDGanttSplitterHandle::mouseMoveEvent( TQMouseEvent *e )
void KDGanttSplitterHandle::mousePressEvent( TQMouseEvent *e )
{
- if ( e->button() == Qt::LeftButton ) {
+ if ( e->button() == TQt::LeftButton ) {
_activeButton = onButton( e->pos() );
mouseOffset = s->pick(e->pos());
if ( _activeButton != 0)
@@ -119,7 +119,7 @@ void KDGanttSplitterHandle::updateCursor( const TQPoint& p)
setCursor( arrowCursor );
}
else {
- if ( orient == Qt::Horizontal )
+ if ( orient == TQt::Horizontal )
setCursor( splitHCursor );
else
setCursor( splitVCursor );
@@ -158,7 +158,7 @@ void KDGanttSplitterHandle::mouseReleaseEvent( TQMouseEvent *e )
updateCursor( e->pos() );
}
else {
- if ( !opaque() && e->button() == Qt::LeftButton ) {
+ if ( !opaque() && e->button() == TQt::LeftButton ) {
TQCOORD pos = s->pick(parentWidget()->mapFromGlobal(e->globalPos()))
- mouseOffset;
s->setRubberband( -1 );
@@ -241,7 +241,7 @@ void KDGanttSplitterHandle::paintEvent( TQPaintEvent * )
p.setBrush( colorGroup().background() );
p.setPen( colorGroup().foreground() );
p.drawRect( rect() );
- parentWidget()->style().tqdrawPrimitive( TQStyle::PE_Panel, &p, rect(),
+ parentWidget()->style().drawPrimitive( TQStyle::PE_Panel, &p, rect(),
parentWidget()->colorGroup());
int sw = 8; // Hardcoded, given I didn't use styles anymore, I didn't like to use their size
@@ -384,7 +384,7 @@ static TQSize minSizeHint( const TQWidget* w )
KDGanttMinimizeSplitter::KDGanttMinimizeSplitter( TQWidget *parent, const char *name )
:TQFrame(parent,name,WPaintUnclipped)
{
- orient = Qt::Horizontal;
+ orient = TQt::Horizontal;
init();
}
@@ -392,7 +392,7 @@ KDGanttMinimizeSplitter::KDGanttMinimizeSplitter( TQWidget *parent, const char *
Constructs a splitter with orientation \a o with the \a parent
and \a name arguments being passed on to the TQFrame constructor.
*/
-KDGanttMinimizeSplitter::KDGanttMinimizeSplitter( Qt::Orientation o, TQWidget *parent, const char *name )
+KDGanttMinimizeSplitter::KDGanttMinimizeSplitter( TQt::Orientation o, TQWidget *parent, const char *name )
:TQFrame(parent,name,WPaintUnclipped)
{
orient = o;
@@ -412,7 +412,7 @@ KDGanttMinimizeSplitter::~KDGanttMinimizeSplitter()
void KDGanttMinimizeSplitter::init()
{
data = new TQSplitterData;
- if ( orient == Qt::Horizontal )
+ if ( orient == TQt::Horizontal )
setSizePolicy( TQSizePolicy(TQSizePolicy::Expanding,TQSizePolicy::Minimum) );
else
setSizePolicy( TQSizePolicy(TQSizePolicy::Minimum,TQSizePolicy::Expanding) );
@@ -424,15 +424,15 @@ void KDGanttMinimizeSplitter::init()
\brief the orientation of the splitter
By default the orientation is horizontal (the widgets are side by side).
- The possible orientations are TQt:Vertical and Qt::Horizontal (the default).
+ The possible orientations are TQt:Vertical and TQt::Horizontal (the default).
*/
-void KDGanttMinimizeSplitter::setOrientation( Qt::Orientation o )
+void KDGanttMinimizeSplitter::setOrientation( TQt::Orientation o )
{
if ( orient == o )
return;
orient = o;
- if ( orient == Qt::Horizontal )
+ if ( orient == TQt::Horizontal )
setSizePolicy( TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Minimum ) );
else
setSizePolicy( TQSizePolicy( TQSizePolicy::Minimum, TQSizePolicy::Expanding ) );
@@ -562,7 +562,7 @@ void KDGanttMinimizeSplitter::setRubberband( int p )
TQRect r = contentsRect();
const int rBord = 3; //Themable????
int sw = style().pixelMetric(TQStyle::PM_SplitterWidth, this);
- if ( orient == Qt::Horizontal ) {
+ if ( orient == TQt::Horizontal ) {
if ( opaqueOldPos >= 0 )
paint.drawRect( opaqueOldPos + sw/2 - rBord , r.y(),
2*rBord, r.height() );
@@ -601,8 +601,8 @@ bool KDGanttMinimizeSplitter::event( TQEvent *e )
void KDGanttMinimizeSplitter::drawSplitter( TQPainter *p,
TQCOORD x, TQCOORD y, TQCOORD w, TQCOORD h )
{
- style().tqdrawPrimitive(TQStyle::PE_Splitter, p, TQRect(x, y, w, h), colorGroup(),
- (orientation() == Qt::Horizontal ?
+ style().drawPrimitive(TQStyle::PE_Splitter, p, TQRect(x, y, w, h), colorGroup(),
+ (orientation() == TQt::Horizontal ?
TQStyle::Style_Horizontal : 0));
}
@@ -644,9 +644,9 @@ void KDGanttMinimizeSplitter::moveSplitter( TQCOORD p, int id )
p = adjustPos( p, id );
TQSplitterLayoutStruct *s = data->list.at(id);
- int oldP = orient == Qt::Horizontal ? s->wid->x() : s->wid->y();
+ int oldP = orient == TQt::Horizontal ? s->wid->x() : s->wid->y();
bool upLeft;
- if ( TQApplication::reverseLayout() && orient == Qt::Horizontal ) {
+ if ( TQApplication::reverseLayout() && orient == TQt::Horizontal ) {
p += s->wid->width();
upLeft = p > oldP;
} else
@@ -661,8 +661,8 @@ void KDGanttMinimizeSplitter::moveSplitter( TQCOORD p, int id )
void KDGanttMinimizeSplitter::setG( TQWidget *w, int p, int s, bool isSplitter )
{
- if ( orient == Qt::Horizontal ) {
- if ( TQApplication::reverseLayout() && orient == Qt::Horizontal && !isSplitter )
+ if ( orient == TQt::Horizontal ) {
+ if ( TQApplication::reverseLayout() && orient == TQt::Horizontal && !isSplitter )
p = contentsRect().width() - p - s;
w->setGeometry( p, contentsRect().y(), s, contentsRect().height() );
} else
@@ -688,7 +688,7 @@ void KDGanttMinimizeSplitter::moveBefore( int pos, int id, bool upLeft )
} else if ( s->isSplitter ) {
int pos1, pos2;
int dd = s->sizer;
- if( TQApplication::reverseLayout() && orient == Qt::Horizontal ) {
+ if( TQApplication::reverseLayout() && orient == TQt::Horizontal ) {
pos1 = pos;
pos2 = pos + dd;
} else {
@@ -704,7 +704,7 @@ void KDGanttMinimizeSplitter::moveBefore( int pos, int id, bool upLeft )
}
} else {
int dd, newLeft, nextPos;
- if( TQApplication::reverseLayout() && orient == Qt::Horizontal ) {
+ if( TQApplication::reverseLayout() && orient == TQt::Horizontal ) {
dd = w->geometry().right() - pos;
dd = TQMAX( pick(minSize(w)), TQMIN(dd, pick(w->maximumSize())));
newLeft = pos+1;
@@ -741,7 +741,7 @@ void KDGanttMinimizeSplitter::moveAfter( int pos, int id, bool upLeft )
} else if ( s->isSplitter ) {
int dd = s->sizer;
int pos1, pos2;
- if( TQApplication::reverseLayout() && orient == Qt::Horizontal ) {
+ if( TQApplication::reverseLayout() && orient == TQt::Horizontal ) {
pos2 = pos - dd;
pos1 = pos2 + 1;
} else {
@@ -758,7 +758,7 @@ void KDGanttMinimizeSplitter::moveAfter( int pos, int id, bool upLeft )
} else {
int left = pick( w->pos() );
int right, dd,/* newRight,*/ newLeft, nextPos;
- if ( TQApplication::reverseLayout() && orient == Qt::Horizontal ) {
+ if ( TQApplication::reverseLayout() && orient == TQt::Horizontal ) {
dd = pos - left + 1;
dd = TQMAX( pick(minSize(w)), TQMIN(dd, pick(w->maximumSize())));
newLeft = pos-dd+1;
@@ -836,7 +836,7 @@ void KDGanttMinimizeSplitter::getRange( int id, int *min, int *max )
}
}
TQRect r = contentsRect();
- if ( orient == Qt::Horizontal && TQApplication::reverseLayout() ) {
+ if ( orient == TQt::Horizontal && TQApplication::reverseLayout() ) {
int splitterWidth = style().pixelMetric(TQStyle::PM_SplitterWidth, this);
if ( min )
*min = pick(r.topRight()) - TQMIN( maxB, pick(r.size())-minA ) - splitterWidth;
@@ -975,7 +975,7 @@ void KDGanttMinimizeSplitter::recalc( bool update )
if ( maxt < mint )
maxt = mint;
- if ( orient == Qt::Horizontal ) {
+ if ( orient == TQt::Horizontal ) {
setMaximumSize( maxl, maxt );
setMinimumSize( minl, mint );
} else {
@@ -1127,7 +1127,7 @@ TQSize KDGanttMinimizeSplitter::sizeHint() const
}
}
}
- return orientation() == Qt::Horizontal ? TQSize( l, t ) : TQSize( t, l );
+ return orientation() == TQt::Horizontal ? TQSize( l, t ) : TQSize( t, l );
}
@@ -1157,7 +1157,7 @@ TQSize KDGanttMinimizeSplitter::minimumSizeHint() const
}
}
}
- return orientation() == Qt::Horizontal ? TQSize( l, t ) : TQSize( t, l );
+ return orientation() == TQt::Horizontal ? TQSize( l, t ) : TQSize( t, l );
}
@@ -1531,7 +1531,7 @@ void kdganttGeomCalc( TQMemArray<TQLayoutStruct> &chain, int start, int count, i
*/
/*!
- \fn Qt::Orientation KDGanttMinimizeSplitter::orientation() const
+ \fn TQt::Orientation KDGanttMinimizeSplitter::orientation() const
Returns the orientation of the splitter.
*/
diff --git a/kdgantt/KDGanttMinimizeSplitter.h b/kdgantt/KDGanttMinimizeSplitter.h
index c1007359..3dfa659a 100644
--- a/kdgantt/KDGanttMinimizeSplitter.h
+++ b/kdgantt/KDGanttMinimizeSplitter.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
*/
@@ -42,7 +42,7 @@ class TQSplitterLayoutStruct;
class KDGanttMinimizeSplitter : public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
TQ_ENUMS( Direction )
TQ_PROPERTY( Orientation orientation READ orientation WRITE setOrientation )
@@ -53,11 +53,11 @@ public:
enum Direction { Left, Right, Up, Down };
KDGanttMinimizeSplitter( TQWidget* parent=0, const char* name=0 );
- KDGanttMinimizeSplitter( Qt::Orientation, TQWidget* parent=0, const char* name=0 );
+ KDGanttMinimizeSplitter( TQt::Orientation, TQWidget* parent=0, const char* name=0 );
~KDGanttMinimizeSplitter();
- virtual void setOrientation( Qt::Orientation );
- Qt::Orientation orientation() const { return orient; }
+ virtual void setOrientation( TQt::Orientation );
+ TQt::Orientation orientation() const { return orient; }
void setMinimizeDirection( Direction );
Direction minimizeDirection() const;
@@ -106,19 +106,19 @@ private:
void setG( TQWidget *w, int p, int s, bool isSplitter = FALSE );
TQCOORD pick( const TQPoint &p ) const
- { return orient == Qt::Horizontal ? p.x() : p.y(); }
+ { return orient == TQt::Horizontal ? p.x() : p.y(); }
TQCOORD pick( const TQSize &s ) const
- { return orient == Qt::Horizontal ? s.width() : s.height(); }
+ { return orient == TQt::Horizontal ? s.width() : s.height(); }
TQCOORD trans( const TQPoint &p ) const
- { return orient == Qt::Vertical ? p.x() : p.y(); }
+ { return orient == TQt::Vertical ? p.x() : p.y(); }
TQCOORD trans( const TQSize &s ) const
- { return orient == Qt::Vertical ? s.width() : s.height(); }
+ { return orient == TQt::Vertical ? s.width() : s.height(); }
TQSplitterData *data;
private:
- Qt::Orientation orient;
+ TQt::Orientation orient;
Direction _direction;
#ifndef DOXYGEN_SKIP_INTERNAL
friend class KDGanttSplitterHandle;
@@ -137,13 +137,13 @@ private: // Disabled copy constructor and operator=
// avoid a symbol clash on some platforms.
class KDGanttSplitterHandle : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
- KDGanttSplitterHandle( Qt::Orientation o,
+ KDGanttSplitterHandle( TQt::Orientation o,
KDGanttMinimizeSplitter *parent, const char* name=0 );
- void setOrientation( Qt::Orientation o );
- Qt::Orientation orientation() const { return orient; }
+ void setOrientation( TQt::Orientation o );
+ TQt::Orientation orientation() const { return orient; }
bool opaque() const { return s->opaqueResize(); }
@@ -162,7 +162,7 @@ protected:
void updateCursor( const TQPoint& p );
private:
- Qt::Orientation orient;
+ TQt::Orientation orient;
bool opaq;
int myId;
diff --git a/kdgantt/KDGanttSemiSizingControl.cpp b/kdgantt/KDGanttSemiSizingControl.cpp
index ed4943fd..6ea8375d 100644
--- a/kdgantt/KDGanttSemiSizingControl.cpp
+++ b/kdgantt/KDGanttSemiSizingControl.cpp
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
*/
@@ -65,7 +65,7 @@
KDGanttSemiSizingControl::KDGanttSemiSizingControl( TQWidget* parent,
const char* name ) :
- KDGanttSizingControl( parent, name ), _orient( Qt::Horizontal ),
+ KDGanttSizingControl( parent, name ), _orient( TQt::Horizontal ),
_arrowPos( Before ), _minimizedWidget(0), _maximizedWidget(0)
{
init();
@@ -84,7 +84,7 @@ KDGanttSemiSizingControl::KDGanttSemiSizingControl( TQWidget* parent,
the base class.
*/
-KDGanttSemiSizingControl::KDGanttSemiSizingControl( Qt::Orientation orientation,
+KDGanttSemiSizingControl::KDGanttSemiSizingControl( TQt::Orientation orientation,
TQWidget* parent,
const char* name ) :
KDGanttSizingControl( parent, name ), _orient( orientation ),
@@ -108,7 +108,7 @@ KDGanttSemiSizingControl::KDGanttSemiSizingControl( Qt::Orientation orientation,
*/
KDGanttSemiSizingControl::KDGanttSemiSizingControl( ArrowPosition arrowPosition,
- Qt::Orientation orientation,
+ TQt::Orientation orientation,
TQWidget* parent,
const char* name ) :
KDGanttSizingControl( parent, name ), _orient( orientation ),
@@ -186,7 +186,7 @@ TQWidget* KDGanttSemiSizingControl::maximizedWidget() const
\sa orientation()
*/
-void KDGanttSemiSizingControl::setOrientation( Qt::Orientation orientation )
+void KDGanttSemiSizingControl::setOrientation( TQt::Orientation orientation )
{
if ( _orient != orientation ) {
_orient = orientation;
@@ -201,7 +201,7 @@ void KDGanttSemiSizingControl::setOrientation( Qt::Orientation orientation )
\sa setOrientation()
*/
-Qt::Orientation KDGanttSemiSizingControl::orientation() const
+TQt::Orientation KDGanttSemiSizingControl::orientation() const
{
return _orient;
}
@@ -248,7 +248,7 @@ void KDGanttSemiSizingControl::init()
{
_but = new TQPushButton( this );
_but->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
- connect( _but, TQT_SIGNAL( clicked() ), this, TQT_SLOT(changeState()) );
+ connect( _but, TQ_SIGNAL( clicked() ), this, TQ_SLOT(changeState()) );
_layout = 0;
TQWhatsThis::add( _but, "Click on this button to show the \nlegend at the bottom of the widget");
TQToolTip::add( _but, "Show / hide legend");
@@ -262,12 +262,12 @@ void KDGanttSemiSizingControl::setup()
delete _layout;
TQBoxLayout* butLayout; // _layout will delete me
- if ( _orient == Qt::Horizontal || isMinimized() )
+ if ( _orient == TQt::Horizontal || isMinimized() )
_layout = new TQHBoxLayout( this );
else
_layout = new TQVBoxLayout( this );
- if ( _orient == Qt::Vertical && !isMinimized() )
+ if ( _orient == TQt::Vertical && !isMinimized() )
butLayout = new TQHBoxLayout( _layout );
else
butLayout = new TQVBoxLayout( _layout );
@@ -288,7 +288,7 @@ void KDGanttSemiSizingControl::setup()
}
//------------------------------ Setup the button at the correct possition
- if ( _arrowPos == After && _orient == Qt::Vertical && !isMinimized() ) {
+ if ( _arrowPos == After && _orient == TQt::Vertical && !isMinimized() ) {
butLayout->addStretch( 1 );
butLayout->addWidget( _but, 0, TQt::AlignLeft );
}
@@ -305,7 +305,7 @@ void KDGanttSemiSizingControl::setup()
else
widget = _maximizedWidget;
if( widget ) {
- if ( _arrowPos == Before || _orient == Qt::Vertical && !isMinimized() )
+ if ( _arrowPos == Before || _orient == TQt::Vertical && !isMinimized() )
_layout->addWidget( widget, 1 );
else
_layout->insertWidget( 0, widget, 1 );
@@ -318,20 +318,20 @@ void KDGanttSemiSizingControl::setup()
if ( isMinimized() ) {
widget = _minimizedWidget;
if( widget ) {
- if ( _arrowPos == Before || _orient == Qt::Vertical && !isMinimized() )
+ if ( _arrowPos == Before || _orient == TQt::Vertical && !isMinimized() )
_layout->addWidget( widget, 1 );
else
_layout->insertWidget( 0, widget, 1 );
}
}
else {
- if ( _arrowPos == Before || _orient == Qt::Vertical && !isMinimized() )
+ if ( _arrowPos == Before || _orient == TQt::Vertical && !isMinimized() )
_layout->addStretch( 1 );
else
_layout->insertStretch( 0, 1 );
widget = _maximizedWidget;
// the following is only the special case
- // arrowPos == Before and _orient == Qt::Vertical
+ // arrowPos == Before and _orient == TQt::Vertical
//widget->move( 0+x(), _but->height()+y());
}
}
diff --git a/kdgantt/KDGanttSemiSizingControl.h b/kdgantt/KDGanttSemiSizingControl.h
index 4dfac98d..a6d29e54 100644
--- a/kdgantt/KDGanttSemiSizingControl.h
+++ b/kdgantt/KDGanttSemiSizingControl.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
*/
@@ -44,17 +44,17 @@ class KDGanttSemiSizingControl : public KDGanttSizingControl
{
TQ_PROPERTY( ArrowPosition arrowPosition READ arrowPosition WRITE setArrowPosition )
TQ_ENUMS( ArrowPosition )
- Q_OBJECT
+ TQ_OBJECT
public:
enum ArrowPosition { Before, After };
KDGanttSemiSizingControl( TQWidget* parent = 0, const char* name = 0 );
- KDGanttSemiSizingControl( Qt::Orientation orientation, TQWidget* parent = 0,
+ KDGanttSemiSizingControl( TQt::Orientation orientation, TQWidget* parent = 0,
const char* name = 0 );
KDGanttSemiSizingControl( ArrowPosition arrowPosition,
- Qt::Orientation orientation, TQWidget* parent = 0,
+ TQt::Orientation orientation, TQWidget* parent = 0,
const char* name = 0 );
void setMinimizedWidget( TQWidget* widget );
@@ -62,8 +62,8 @@ public:
TQWidget* minimizedWidget() const;
TQWidget* maximizedWidget() const;
- void setOrientation( Qt::Orientation orientation );
- Qt::Orientation orientation() const;
+ void setOrientation( TQt::Orientation orientation );
+ TQt::Orientation orientation() const;
void setArrowPosition( ArrowPosition arrowPosition );
ArrowPosition arrowPosition() const;
@@ -79,7 +79,7 @@ protected:
TQPixmap pixmap( Direction );
private:
- Qt::Orientation _orient;
+ TQt::Orientation _orient;
ArrowPosition _arrowPos;
TQWidget* _minimizedWidget;
TQWidget* _maximizedWidget;
diff --git a/kdgantt/KDGanttSizingControl.cpp b/kdgantt/KDGanttSizingControl.cpp
index 3d174ad5..bf2b5a1c 100644
--- a/kdgantt/KDGanttSizingControl.cpp
+++ b/kdgantt/KDGanttSizingControl.cpp
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
*/
/****************************************************************************
diff --git a/kdgantt/KDGanttSizingControl.h b/kdgantt/KDGanttSizingControl.h
index 733f6035..3ef84e7b 100644
--- a/kdgantt/KDGanttSizingControl.h
+++ b/kdgantt/KDGanttSizingControl.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
*/
/****************************************************************************
@@ -37,7 +37,7 @@
class KDGanttSizingControl : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kdgantt/KDGanttView.cpp b/kdgantt/KDGanttView.cpp
index 440da7a7..e9adada9 100644
--- a/kdgantt/KDGanttView.cpp
+++ b/kdgantt/KDGanttView.cpp
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
@@ -81,7 +81,7 @@
*/
KDGanttView::KDGanttView( TQWidget* parent, const char* name )
- : KDGanttMinimizeSplitter( Qt::Vertical, parent, name ),
+ : KDGanttMinimizeSplitter( TQt::Vertical, parent, name ),
myCanvasView(0),
myTimeHeaderScroll(0),
mFixedHorizon( false )
@@ -100,17 +100,17 @@ KDGanttView::KDGanttView( TQWidget* parent, const char* name )
spacerLeft = new TQHBox( leftWidget );
myListView = new KDListView(leftWidget, this);
myListView->setVScrollBarMode (TQScrollView::AlwaysOff );
- connect( myListView, TQT_SIGNAL( selectionChanged( TQListViewItem* ) ),
- this, TQT_SLOT( slotSelectionChanged( TQListViewItem* ) ) );
+ connect( myListView, TQ_SIGNAL( selectionChanged( TQListViewItem* ) ),
+ this, TQ_SLOT( slotSelectionChanged( TQListViewItem* ) ) );
- connect( myListView, TQT_SIGNAL( mouseButtonClicked ( int, TQListViewItem * , const TQPoint &, int ) ), this, TQT_SLOT( slotmouseButtonClicked ( int , TQListViewItem * , const TQPoint &, int ) ) );
- connect( myListView, TQT_SIGNAL( contextMenuRequested ( TQListViewItem * , const TQPoint &, int ) ), this, TQT_SLOT( slotcontextMenuRequested ( TQListViewItem * , const TQPoint & , int ) ) );
+ connect( myListView, TQ_SIGNAL( mouseButtonClicked ( int, TQListViewItem * , const TQPoint &, int ) ), this, TQ_SLOT( slotmouseButtonClicked ( int , TQListViewItem * , const TQPoint &, int ) ) );
+ connect( myListView, TQ_SIGNAL( contextMenuRequested ( TQListViewItem * , const TQPoint &, int ) ), this, TQ_SLOT( slotcontextMenuRequested ( TQListViewItem * , const TQPoint & , int ) ) );
- connect( myListView, TQT_SIGNAL(currentChanged( TQListViewItem * ) ), this, TQT_SLOT(slotCurrentChanged ( TQListViewItem * ) ) );
- connect( myListView, TQT_SIGNAL(itemRenamed ( TQListViewItem * , int , const TQString & ) ), this, TQT_SLOT(slotItemRenamed ( TQListViewItem *, int , const TQString & ) ) );
- connect( myListView, TQT_SIGNAL(mouseButtonPressed( int, TQListViewItem * , const TQPoint &, int ) ), this, TQT_SLOT(slotMouseButtonPressed ( int , TQListViewItem * , const TQPoint & , int ) ) );
+ connect( myListView, TQ_SIGNAL(currentChanged( TQListViewItem * ) ), this, TQ_SLOT(slotCurrentChanged ( TQListViewItem * ) ) );
+ connect( myListView, TQ_SIGNAL(itemRenamed ( TQListViewItem * , int , const TQString & ) ), this, TQ_SLOT(slotItemRenamed ( TQListViewItem *, int , const TQString & ) ) );
+ connect( myListView, TQ_SIGNAL(mouseButtonPressed( int, TQListViewItem * , const TQPoint &, int ) ), this, TQ_SLOT(slotMouseButtonPressed ( int , TQListViewItem * , const TQPoint & , int ) ) );
- //connect( myListView, TQT_SIGNAL( ), this, TQT_SLOT( ) );
+ //connect( myListView, TQ_SIGNAL( ), this, TQ_SLOT( ) );
myTimeTable = new KDTimeTableWidget (rightWidget,this);
spacerRight = new TQWidget( rightWidget );
@@ -145,8 +145,8 @@ KDGanttView::KDGanttView( TQWidget* parent, const char* name )
setLineWidth( 2 );
myListView->setFrameStyle( TQFrame::NoFrame );
myListView->setMargin( 0 );
- TQObject::connect(myListView, TQT_SIGNAL ( expanded ( TQListViewItem * ) ) , myTimeTable , TQT_SLOT( expandItem(TQListViewItem * ))) ;
- TQObject::connect(myListView, TQT_SIGNAL (collapsed ( TQListViewItem * ) ) , myTimeTable , TQT_SLOT(collapseItem(TQListViewItem * ))) ;
+ TQObject::connect(myListView, TQ_SIGNAL ( expanded ( TQListViewItem * ) ) , myTimeTable , TQ_SLOT( expandItem(TQListViewItem * ))) ;
+ TQObject::connect(myListView, TQ_SIGNAL (collapsed ( TQListViewItem * ) ) , myTimeTable , TQ_SLOT(collapseItem(TQListViewItem * ))) ;
timeHeaderSpacerWidget->setFixedWidth(myCanvasView->verticalScrollBar()->width() );
listViewIsVisible = true;
@@ -158,7 +158,7 @@ KDGanttView::KDGanttView( TQWidget* parent, const char* name )
myTextColor = TQt::black;
myLegendItems = new TQPtrList<legendItem>;
- //TQObject::connect( this, TQT_SIGNAL (itemDoubleClicked( KDGanttViewItem* ) ) , this, TQT_SLOT( editItem( KDGanttViewItem* ))) ;
+ //TQObject::connect( this, TQ_SIGNAL (itemDoubleClicked( KDGanttViewItem* ) ) , this, TQ_SLOT( editItem( KDGanttViewItem* ))) ;
myItemAttributeDialog = new itemAttributeDialog();
setRepaintMode( KDGanttView::Medium );
//setRepaintMode( KDGanttView::Always );
@@ -166,19 +166,19 @@ KDGanttView::KDGanttView( TQWidget* parent, const char* name )
setHeaderVisible( false );
// now connecting the widgets
- connect(myCanvasView->horizontalScrollBar(), TQT_SIGNAL ( valueChanged ( int )) ,myTimeHeaderScroll->horizontalScrollBar(), TQT_SLOT( setValue ( int))) ;
- connect(myCanvasView, TQT_SIGNAL ( heightResized( int )) ,myTimeTable, TQT_SLOT( checkHeight ( int))) ;
- connect(myCanvasView, TQT_SIGNAL ( widthResized( int )) ,myTimeHeader, TQT_SLOT( checkWidth ( int))) ;
-
- TQObject::connect(myCanvasView->verticalScrollBar(), TQT_SIGNAL ( valueChanged ( int ) ) ,myListView->verticalScrollBar(), TQT_SLOT( setValue ( int ))) ;
- connect(myTimeHeader, TQT_SIGNAL ( sizeChanged( int ) ) ,this, TQT_SLOT(slotHeaderSizeChanged() )) ;
- connect(myTimeHeader, TQT_SIGNAL ( sizeChanged( int ) ) ,myTimeTable, TQT_SLOT(resetWidth( int ) )) ;
- connect(myListView, TQT_SIGNAL ( contentsMoving ( int, int ) ) ,myCanvasView, TQT_SLOT( moveMyContent( int, int ))) ;
- connect(myTimeTable, TQT_SIGNAL ( heightComputed ( int ) ) ,myCanvasView, TQT_SLOT( setMyContentsHeight( int ))) ;
+ connect(myCanvasView->horizontalScrollBar(), TQ_SIGNAL ( valueChanged ( int )) ,myTimeHeaderScroll->horizontalScrollBar(), TQ_SLOT( setValue ( int))) ;
+ connect(myCanvasView, TQ_SIGNAL ( heightResized( int )) ,myTimeTable, TQ_SLOT( checkHeight ( int))) ;
+ connect(myCanvasView, TQ_SIGNAL ( widthResized( int )) ,myTimeHeader, TQ_SLOT( checkWidth ( int))) ;
+
+ TQObject::connect(myCanvasView->verticalScrollBar(), TQ_SIGNAL ( valueChanged ( int ) ) ,myListView->verticalScrollBar(), TQ_SLOT( setValue ( int ))) ;
+ connect(myTimeHeader, TQ_SIGNAL ( sizeChanged( int ) ) ,this, TQ_SLOT(slotHeaderSizeChanged() )) ;
+ connect(myTimeHeader, TQ_SIGNAL ( sizeChanged( int ) ) ,myTimeTable, TQ_SLOT(resetWidth( int ) )) ;
+ connect(myListView, TQ_SIGNAL ( contentsMoving ( int, int ) ) ,myCanvasView, TQ_SLOT( moveMyContent( int, int ))) ;
+ connect(myTimeTable, TQ_SIGNAL ( heightComputed ( int ) ) ,myCanvasView, TQ_SLOT( setMyContentsHeight( int ))) ;
// the next three are for adding new ticks at left/right
- connect( myCanvasView->horizontalScrollBar(), TQT_SIGNAL (prevLine () ) ,this, TQT_SLOT(addTickLeft()));
- connect( myCanvasView->horizontalScrollBar(), TQT_SIGNAL (nextLine () ) ,this, TQT_SLOT(addTickRight()));
- connect( myCanvasView->horizontalScrollBar(), TQT_SIGNAL (valueChanged ( int ) ) ,this, TQT_SLOT( enableAdding( int )));
+ connect( myCanvasView->horizontalScrollBar(), TQ_SIGNAL (prevLine () ) ,this, TQ_SLOT(addTickLeft()));
+ connect( myCanvasView->horizontalScrollBar(), TQ_SIGNAL (nextLine () ) ,this, TQ_SLOT(addTickRight()));
+ connect( myCanvasView->horizontalScrollBar(), TQ_SIGNAL (valueChanged ( int ) ) ,this, TQ_SLOT( enableAdding( int )));
// now initing
fCenterTimeLineAfterShow = false;
@@ -458,11 +458,11 @@ void KDGanttView::slotmouseButtonClicked ( int button, TQListViewItem * item,
//emit mouseButtonClicked ( button , gItem, pos, c );
{
switch ( button ) {
- case Qt::LeftButton:
+ case TQt::LeftButton:
emit lvItemLeftClicked( gItem );
emit itemLeftClicked( gItem );
break;
- case Qt::MidButton:
+ case TQt::MidButton:
emit lvItemMidClicked( gItem );
emit itemMidClicked( gItem );
break;
@@ -553,18 +553,18 @@ void KDGanttView::setRepaintMode( RepaintMode mode )
break;
case Medium:
- connect( cvv, TQT_SIGNAL (sliderReleased () ) ,this, TQT_SLOT(forceRepaint()));
- connect( cvh, TQT_SIGNAL (sliderReleased () ) ,this, TQT_SLOT(forceRepaint()));
- connect( cvv, TQT_SIGNAL (nextLine () ) ,this, TQT_SLOT(forceRepaint()));
- connect( cvh, TQT_SIGNAL (nextLine () ) ,this, TQT_SLOT(forceRepaint()));
- connect( cvv, TQT_SIGNAL (prevLine () ) ,this, TQT_SLOT(forceRepaint()));
- connect( cvh, TQT_SIGNAL (prevLine () ) ,this, TQT_SLOT(forceRepaint()));
+ connect( cvv, TQ_SIGNAL (sliderReleased () ) ,this, TQ_SLOT(forceRepaint()));
+ connect( cvh, TQ_SIGNAL (sliderReleased () ) ,this, TQ_SLOT(forceRepaint()));
+ connect( cvv, TQ_SIGNAL (nextLine () ) ,this, TQ_SLOT(forceRepaint()));
+ connect( cvh, TQ_SIGNAL (nextLine () ) ,this, TQ_SLOT(forceRepaint()));
+ connect( cvv, TQ_SIGNAL (prevLine () ) ,this, TQ_SLOT(forceRepaint()));
+ connect( cvh, TQ_SIGNAL (prevLine () ) ,this, TQ_SLOT(forceRepaint()));
break;
case Always:
- connect( cvv, TQT_SIGNAL (valueChanged ( int ) ) ,this, TQT_SLOT(forceRepaint( int )));
- connect( cvh, TQT_SIGNAL (valueChanged ( int ) ) ,this, TQT_SLOT(forceRepaint( int )));
- connect( cvv, TQT_SIGNAL (sliderReleased () ) ,this, TQT_SLOT(forceRepaint()));
- connect( cvh, TQT_SIGNAL (sliderReleased () ) ,this, TQT_SLOT(forceRepaint()));
+ connect( cvv, TQ_SIGNAL (valueChanged ( int ) ) ,this, TQ_SLOT(forceRepaint( int )));
+ connect( cvh, TQ_SIGNAL (valueChanged ( int ) ) ,this, TQ_SLOT(forceRepaint( int )));
+ connect( cvv, TQ_SIGNAL (sliderReleased () ) ,this, TQ_SLOT(forceRepaint()));
+ connect( cvh, TQ_SIGNAL (sliderReleased () ) ,this, TQ_SLOT(forceRepaint()));
break;
}
}
diff --git a/kdgantt/KDGanttView.h b/kdgantt/KDGanttView.h
index 9a12bceb..cf528230 100644
--- a/kdgantt/KDGanttView.h
+++ b/kdgantt/KDGanttView.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDChart - a multi-platform charting engine
*/
@@ -69,7 +69,7 @@ class KDGanttMinimizeSplitter;
class KDGanttView : public KDGanttMinimizeSplitter
{
- Q_OBJECT
+ TQ_OBJECT
TQ_PROPERTY( bool showLegend READ showLegend WRITE setShowLegend )
diff --git a/kdgantt/KDGanttViewEventItem.cpp b/kdgantt/KDGanttViewEventItem.cpp
index f98bb0fd..d8880121 100644
--- a/kdgantt/KDGanttViewEventItem.cpp
+++ b/kdgantt/KDGanttViewEventItem.cpp
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
diff --git a/kdgantt/KDGanttViewEventItem.h b/kdgantt/KDGanttViewEventItem.h
index 6bddf5a4..7bfc561c 100644
--- a/kdgantt/KDGanttViewEventItem.h
+++ b/kdgantt/KDGanttViewEventItem.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
diff --git a/kdgantt/KDGanttViewItem.cpp b/kdgantt/KDGanttViewItem.cpp
index c24a3580..a3648a64 100644
--- a/kdgantt/KDGanttViewItem.cpp
+++ b/kdgantt/KDGanttViewItem.cpp
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
@@ -916,10 +916,10 @@ void KDGanttViewItem::createShape( KDCanvasPolygonItem* &itemShape,
// items which don't have any shapes
return;
}
- item->setBrush(Qt::SolidPattern);
+ item->setBrush(TQt::SolidPattern);
item->setZ(5);
itemShape = (KDCanvasPolygonItem*) item;
- itemBack->setBrush(Qt::SolidPattern);
+ itemBack->setBrush(TQt::SolidPattern);
itemBack->setZ(3);
itemShapeBack = (KDCanvasPolygonItem*) itemBack;
@@ -1306,11 +1306,11 @@ void KDGanttViewItem::updateCanvasItems()
if (blockUpdating) return;
TQPen p,pBack;
TQBrush b;
- b.setStyle(Qt::SolidPattern);
+ b.setStyle(TQt::SolidPattern);
if ( enabled() ) {
textCanvas->setColor(myTextColor);
if (isHighlighted) {
- b.setStyle(Qt::SolidPattern);
+ b.setStyle(TQt::SolidPattern);
b.setColor(myStartColorHL);
startShape->setBrush(b);
b.setColor(myMiddleColorHL);
@@ -1323,7 +1323,7 @@ void KDGanttViewItem::updateCanvasItems()
p.setColor(myEndColorHL);
endLine->setPen(p);
} else {
- b.setStyle(Qt::SolidPattern);
+ b.setStyle(TQt::SolidPattern);
b.setColor(myStartColor);
// tqDebug("update color %s %s", listViewText().latin1(),myStartColor.name().latin1() );
startShape->setBrush(b);
@@ -1341,7 +1341,7 @@ void KDGanttViewItem::updateCanvasItems()
//TQColor discol = TQt::lightGray;
TQColor discol = TQColor(232,232,232);
textCanvas->setColor( TQColor(150,150,150) );
- b.setStyle(Qt::SolidPattern);
+ b.setStyle(TQt::SolidPattern);
b.setColor(discol);
startShape->setBrush(b);
midShape->setBrush(b);
diff --git a/kdgantt/KDGanttViewItem.h b/kdgantt/KDGanttViewItem.h
index e645029d..948098fc 100644
--- a/kdgantt/KDGanttViewItem.h
+++ b/kdgantt/KDGanttViewItem.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
diff --git a/kdgantt/KDGanttViewSubwidgets.cpp b/kdgantt/KDGanttViewSubwidgets.cpp
index e747beec..4b1e3472 100644
--- a/kdgantt/KDGanttViewSubwidgets.cpp
+++ b/kdgantt/KDGanttViewSubwidgets.cpp
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
@@ -59,13 +59,13 @@
#include <kdebug.h>
KDTimeTableWidget:: KDTimeTableWidget( TQWidget* parent,KDGanttView* myGantt)
- : TQCanvas (TQT_TQOBJECT(parent))
+ : TQCanvas (parent)
{
myGanttView = myGantt;
taskLinksVisible = true;
flag_blockUpdating = false;
int_blockUpdating = 0;
- gridPen.setStyle(Qt::DotLine);
+ gridPen.setStyle(TQt::DotLine);
gridPen.setColor(TQColor(100,100,100));
maximumComputedGridHeight = 0;
denseLineCount = 0;
@@ -230,7 +230,7 @@ void KDTimeTableWidget::computeVerticalGrid()
*/
itcol.current()->setPen( TQPen(TQPen::NoPen) );
- itcol.current()->setBrush( TQBrush( colcol, Qt::SolidPattern) );
+ itcol.current()->setBrush( TQBrush( colcol, TQt::SolidPattern) );
itcol.current()->setSize(cw ,h );
itcol.current()->move( i, 0 );
itcol.current()->show();
@@ -244,7 +244,7 @@ void KDTimeTableWidget::computeVerticalGrid()
*/
temprect = new KDCanvasRectangle(this,0,Type_is_KDGanttGridItem);
temprect->setPen( TQPen(TQPen::NoPen) );
- temprect->setBrush( TQBrush( colcol, Qt::SolidPattern) );
+ temprect->setBrush( TQBrush( colcol, TQt::SolidPattern) );
temprect->setSize(cw ,h );
temprect->move( i, 0 );
temprect->setZ(-20);
@@ -276,7 +276,7 @@ void KDTimeTableWidget::computeVerticalGrid()
itcol.current()->setPoints(i+(cw/2),0,i+(cw/2),h);
*/
itcol.current()->setPen( TQPen(TQPen::NoPen) );
- itcol.current()->setBrush( TQBrush( colcol, Qt::SolidPattern) );
+ itcol.current()->setBrush( TQBrush( colcol, TQt::SolidPattern) );
itcol.current()->setSize(cw ,h );
itcol.current()->move( i, 0 );
itcol.current()->show();
@@ -284,7 +284,7 @@ void KDTimeTableWidget::computeVerticalGrid()
} else {
temprect = new KDCanvasRectangle(this,0,Type_is_KDGanttGridItem);
temprect->setPen( TQPen(TQPen::NoPen) );
- temprect->setBrush( TQBrush( colcol, Qt::SolidPattern) );
+ temprect->setBrush( TQBrush( colcol, TQt::SolidPattern) );
temprect->setSize(cw ,h );
temprect->move( i, 0 );
temprect->setZ(-20);
@@ -332,7 +332,7 @@ void KDTimeTableWidget::computeVerticalGrid()
itcol.current()->setPoints(i+mid,0,mid,h);
*/
itcol.current()->setPen( TQPen(TQPen::NoPen) );
- itcol.current()->setBrush( TQBrush( colcol, Qt::SolidPattern) );
+ itcol.current()->setBrush( TQBrush( colcol, TQt::SolidPattern) );
itcol.current()->setSize(mid ,h );
itcol.current()->move( left, 0 );
itcol.current()->show();
@@ -340,7 +340,7 @@ void KDTimeTableWidget::computeVerticalGrid()
} else {
temprect = new KDCanvasRectangle(this,0,Type_is_KDGanttGridItem);
temprect->setPen( TQPen(TQPen::NoPen) );
- temprect->setBrush( TQBrush( colcol, Qt::SolidPattern) );
+ temprect->setBrush( TQBrush( colcol, TQt::SolidPattern) );
temprect->setSize(mid,h );
temprect->move( left, 0 );
temprect->setZ(-20);
@@ -386,7 +386,7 @@ void KDTimeTableWidget::computeVerticalGrid()
itcol.current()->setPoints(i+mid,0,mid,h);
*/
itcol.current()->setPen( TQPen(TQPen::NoPen) );
- itcol.current()->setBrush( TQBrush( colcol, Qt::SolidPattern) );
+ itcol.current()->setBrush( TQBrush( colcol, TQt::SolidPattern) );
itcol.current()->setSize(mid ,h );
itcol.current()->move( left, 0 );
itcol.current()->show();
@@ -394,7 +394,7 @@ void KDTimeTableWidget::computeVerticalGrid()
} else {
temprect = new KDCanvasRectangle(this,0,Type_is_KDGanttGridItem);
temprect->setPen( TQPen(TQPen::NoPen) );
- temprect->setBrush( TQBrush( colcol, Qt::SolidPattern) );
+ temprect->setBrush( TQBrush( colcol, TQt::SolidPattern) );
temprect->setSize(mid ,h );
temprect->move( left, 0 );
temprect->setZ(-20);
@@ -725,42 +725,42 @@ KDTimeHeaderWidget:: KDTimeHeaderWidget( TQWidget* parent,KDGanttView* gant )
myPopupMenu = new TQPopupMenu(this);
TQPopupMenu * zoomPopupMenu = new TQPopupMenu(this);
myPopupMenu->insertItem (i18n("Zoom"),zoomPopupMenu, 1);
- zoomPopupMenu->insertItem( i18n("Zoom to 100%"),this, TQT_SLOT(setSettings(int)),0 ,21,21 );
- zoomPopupMenu->insertItem( i18n("Zoom to Fit"),this, TQT_SLOT(setSettings(int)),0 ,20,20 );
- zoomPopupMenu->insertItem( i18n("Zoom In (x 2)"),this, TQT_SLOT(setSettings(int)),0 ,22,22 );
- zoomPopupMenu->insertItem( i18n("Zoom In (x 6)"),this, TQT_SLOT(setSettings(int)),0 ,24,24 );
- zoomPopupMenu->insertItem( i18n("Zoom In (x 12)"),this, TQT_SLOT(setSettings(int)),0 ,26,26 );
- zoomPopupMenu->insertItem( i18n("Zoom Out (x 1/2)"),this, TQT_SLOT(setSettings(int)),0 ,23,23 );
- zoomPopupMenu->insertItem( i18n("Zoom Out (x 1/6)"),this, TQT_SLOT(setSettings(int)),0 ,25,25 );
- zoomPopupMenu->insertItem( i18n("Zoom Out (x 1/12)"),this, TQT_SLOT(setSettings(int)),0 ,27,27 );
+ zoomPopupMenu->insertItem( i18n("Zoom to 100%"),this, TQ_SLOT(setSettings(int)),0 ,21,21 );
+ zoomPopupMenu->insertItem( i18n("Zoom to Fit"),this, TQ_SLOT(setSettings(int)),0 ,20,20 );
+ zoomPopupMenu->insertItem( i18n("Zoom In (x 2)"),this, TQ_SLOT(setSettings(int)),0 ,22,22 );
+ zoomPopupMenu->insertItem( i18n("Zoom In (x 6)"),this, TQ_SLOT(setSettings(int)),0 ,24,24 );
+ zoomPopupMenu->insertItem( i18n("Zoom In (x 12)"),this, TQ_SLOT(setSettings(int)),0 ,26,26 );
+ zoomPopupMenu->insertItem( i18n("Zoom Out (x 1/2)"),this, TQ_SLOT(setSettings(int)),0 ,23,23 );
+ zoomPopupMenu->insertItem( i18n("Zoom Out (x 1/6)"),this, TQ_SLOT(setSettings(int)),0 ,25,25 );
+ zoomPopupMenu->insertItem( i18n("Zoom Out (x 1/12)"),this, TQ_SLOT(setSettings(int)),0 ,27,27 );
scalePopupMenu = new TQPopupMenu(this);
myPopupMenu->insertItem (i18n("Scale"),scalePopupMenu, 2);
- scalePopupMenu->insertItem( i18n("Minute"),this, TQT_SLOT(setSettings(int)),0 ,1,1 );
- scalePopupMenu->insertItem( i18n("Hour"),this, TQT_SLOT(setSettings(int)),0 ,2,2 );
- scalePopupMenu->insertItem( i18n("Day"),this, TQT_SLOT(setSettings(int)),0 ,3,3 );
- scalePopupMenu->insertItem( i18n("Week"),this, TQT_SLOT(setSettings(int)),0 ,4,4 );
- scalePopupMenu->insertItem( i18n("Month"),this, TQT_SLOT(setSettings(int)),0 ,5,5 );
- scalePopupMenu->insertItem( i18n("Auto"),this, TQT_SLOT(setSettings(int)),0 ,6,6 );
+ scalePopupMenu->insertItem( i18n("Minute"),this, TQ_SLOT(setSettings(int)),0 ,1,1 );
+ scalePopupMenu->insertItem( i18n("Hour"),this, TQ_SLOT(setSettings(int)),0 ,2,2 );
+ scalePopupMenu->insertItem( i18n("Day"),this, TQ_SLOT(setSettings(int)),0 ,3,3 );
+ scalePopupMenu->insertItem( i18n("Week"),this, TQ_SLOT(setSettings(int)),0 ,4,4 );
+ scalePopupMenu->insertItem( i18n("Month"),this, TQ_SLOT(setSettings(int)),0 ,5,5 );
+ scalePopupMenu->insertItem( i18n("Auto"),this, TQ_SLOT(setSettings(int)),0 ,6,6 );
scalePopupMenu->setCheckable ( true );
timePopupMenu = new TQPopupMenu(this);
myPopupMenu->insertItem (i18n("Time Format"),timePopupMenu, 3);
- timePopupMenu->insertItem( i18n("24 Hour"),this, TQT_SLOT(setSettings(int)),0 ,40,40 );
- timePopupMenu->insertItem( i18n("12 PM Hour"),this, TQT_SLOT(setSettings(int)),0 ,41,41 );
- timePopupMenu->insertItem( i18n("24:00 Hour"),this, TQT_SLOT(setSettings(int)),0 ,42,42 );
+ timePopupMenu->insertItem( i18n("24 Hour"),this, TQ_SLOT(setSettings(int)),0 ,40,40 );
+ timePopupMenu->insertItem( i18n("12 PM Hour"),this, TQ_SLOT(setSettings(int)),0 ,41,41 );
+ timePopupMenu->insertItem( i18n("24:00 Hour"),this, TQ_SLOT(setSettings(int)),0 ,42,42 );
yearPopupMenu = new TQPopupMenu(this);
myPopupMenu->insertItem (i18n("Year Format"),yearPopupMenu, 4);
- yearPopupMenu->insertItem( i18n("Four Digit"),this, TQT_SLOT(setSettings(int)),0 ,50,50 );
- yearPopupMenu->insertItem( i18n("Two Digit"),this, TQT_SLOT(setSettings(int)),0 ,51,51 );
- yearPopupMenu->insertItem( i18n("Two Digit Apostrophe"),this, TQT_SLOT(setSettings(int)),0 ,52,52 );
- yearPopupMenu->insertItem( i18n("No Date on Minute/Hour Scale"),this, TQT_SLOT(setSettings(int)),0 ,53,53 );
+ yearPopupMenu->insertItem( i18n("Four Digit"),this, TQ_SLOT(setSettings(int)),0 ,50,50 );
+ yearPopupMenu->insertItem( i18n("Two Digit"),this, TQ_SLOT(setSettings(int)),0 ,51,51 );
+ yearPopupMenu->insertItem( i18n("Two Digit Apostrophe"),this, TQ_SLOT(setSettings(int)),0 ,52,52 );
+ yearPopupMenu->insertItem( i18n("No Date on Minute/Hour Scale"),this, TQ_SLOT(setSettings(int)),0 ,53,53 );
gridPopupMenu = new TQPopupMenu(this);
myPopupMenu->insertItem (i18n("Grid"),gridPopupMenu,5);
- gridPopupMenu->insertItem( i18n("Show Minor Grid"),this, TQT_SLOT(setSettings(int)),0 ,10,10 );
- gridPopupMenu->insertItem( i18n("Show Major Grid"),this, TQT_SLOT(setSettings(int)),0 ,11,11 );
- gridPopupMenu->insertItem( i18n("Show No Grid"),this, TQT_SLOT(setSettings(int)),0 ,12,12 );
- myPopupMenu->insertItem( i18n("Print"),this, TQT_SLOT(setSettings(int)),0 ,30,30 );
- connect(myPopupMenu, TQT_SIGNAL ( aboutToShow () ) , this, TQT_SLOT( preparePopupMenu() )) ;
+ gridPopupMenu->insertItem( i18n("Show Minor Grid"),this, TQ_SLOT(setSettings(int)),0 ,10,10 );
+ gridPopupMenu->insertItem( i18n("Show Major Grid"),this, TQ_SLOT(setSettings(int)),0 ,11,11 );
+ gridPopupMenu->insertItem( i18n("Show No Grid"),this, TQ_SLOT(setSettings(int)),0 ,12,12 );
+ myPopupMenu->insertItem( i18n("Print"),this, TQ_SLOT(setSettings(int)),0 ,30,30 );
+ connect(myPopupMenu, TQ_SIGNAL ( aboutToShow () ) , this, TQ_SLOT( preparePopupMenu() )) ;
flagZoomToFit = false;
setShowMinorTicks( true );
myRealEnd = myHorizonEnd;
@@ -2447,16 +2447,16 @@ void KDTimeHeaderWidget::mousePressEvent ( TQMouseEvent * e )
{
mouseDown = false;
switch ( e->button() ) {
- case Qt::LeftButton:
+ case TQt::LeftButton:
mouseDown = true;
beginMouseDown = e->pos().x();
endMouseDown = e->pos().x();
break;
- case Qt::RightButton:
+ case TQt::RightButton:
if (flagShowPopupMenu)
myPopupMenu->popup(e->globalPos());
break;
- case Qt::MidButton:
+ case TQt::MidButton:
break;
default:
break;
@@ -2539,7 +2539,7 @@ void KDTimeHeaderWidget::mouseMoveEvent ( TQMouseEvent * e )
***************************************************************** */
KDLegendWidget:: KDLegendWidget( TQWidget* parent,
KDGanttMinimizeSplitter* legendParent ) :
- KDGanttSemiSizingControl ( KDGanttSemiSizingControl::Before, Qt::Vertical,
+ KDGanttSemiSizingControl ( KDGanttSemiSizingControl::Before, TQt::Vertical,
parent)
{
myLegendParent = legendParent;
@@ -2645,9 +2645,9 @@ void KDLegendWidget::clearLegend ( )
{
if ( myLegend ) delete myLegend;
if ( dock )
- myLegend = new TQGroupBox( 1, Qt::Horizontal, scroll->viewport() );
+ myLegend = new TQGroupBox( 1, TQt::Horizontal, scroll->viewport() );
else
- myLegend = new TQGroupBox( 1, Qt::Horizontal, i18n( "Legend" ), scroll->viewport() );
+ myLegend = new TQGroupBox( 1, TQt::Horizontal, i18n( "Legend" ), scroll->viewport() );
myLegend->setBackgroundColor( TQt::white );
myLegend->setFont( font() );
scroll->addChild( myLegend );
@@ -2702,7 +2702,7 @@ KDListView::KDListView(TQWidget* parent, KDGanttView* gantView):TQListView (pare
setDefaultRenameAction(TQListView::Accept);
setColumnWidthMode ( 0,Maximum );
_calendarMode = false;
- // TQObject::connect(this, TQT_SIGNAL ( pressed ( TQListViewItem * )) , this, TQT_SLOT( dragItem( TQListViewItem *))) ;
+ // TQObject::connect(this, TQ_SIGNAL ( pressed ( TQListViewItem * )) , this, TQ_SLOT( dragItem( TQListViewItem *))) ;
}
@@ -3177,52 +3177,52 @@ KDGanttCanvasView::KDGanttCanvasView( KDGanttView* sender,TQCanvas* canvas, TQWi
TQPopupMenu * newMenu = new TQPopupMenu( this );
TQPopupMenu * onView = new TQPopupMenu( this );
onView->insertItem( i18n( "Summary" ), this,
- TQT_SLOT ( newRootItem( int ) ), 0, 0 );
+ TQ_SLOT ( newRootItem( int ) ), 0, 0 );
onView->insertItem( i18n( "Event" ), this,
- TQT_SLOT ( newRootItem( int ) ), 0, 1);
+ TQ_SLOT ( newRootItem( int ) ), 0, 1);
onView->insertItem( i18n( "Task" ), this,
- TQT_SLOT ( newRootItem( int ) ), 0, 2 );
+ TQ_SLOT ( newRootItem( int ) ), 0, 2 );
onItem->insertItem( i18n( "New Root" ), onView );
newMenu->insertItem( i18n( "Summary" ),
- this, TQT_SLOT ( newChildItem( int) ), 0, 0 );
+ this, TQ_SLOT ( newChildItem( int) ), 0, 0 );
newMenu->insertItem( i18n( "Event" ),
- this, TQT_SLOT ( newChildItem( int ) ), 0, 1 );
+ this, TQ_SLOT ( newChildItem( int ) ), 0, 1 );
newMenu->insertItem( i18n( "Task" ),
- this, TQT_SLOT ( newChildItem( int ) ), 0, 2 );
+ this, TQ_SLOT ( newChildItem( int ) ), 0, 2 );
onItem->insertItem( i18n( "New Child" ), newMenu );
TQPopupMenu * afterMenu = new TQPopupMenu( this );
afterMenu->insertItem( i18n( "Summary" ),
- this, TQT_SLOT ( newChildItem( int) ), 0, 0+4 );
+ this, TQ_SLOT ( newChildItem( int) ), 0, 0+4 );
afterMenu->insertItem( i18n( "Event" ),
- this, TQT_SLOT ( newChildItem( int ) ), 0, 1+4 );
+ this, TQ_SLOT ( newChildItem( int ) ), 0, 1+4 );
afterMenu->insertItem( i18n( "Task" ),
- this, TQT_SLOT ( newChildItem( int ) ), 0, 2+4 );
+ this, TQ_SLOT ( newChildItem( int ) ), 0, 2+4 );
onItem->insertItem( i18n( "New After" ), afterMenu );
TQPopupMenu *pasteMenu = new TQPopupMenu( this );
pasteMenu->insertItem( i18n( "As Root" ),
- this, TQT_SLOT ( pasteItem( int ) ), 0, 0 );
+ this, TQ_SLOT ( pasteItem( int ) ), 0, 0 );
pasteMenu->insertItem( i18n( "As Child" ),
- this, TQT_SLOT ( pasteItem( int ) ), 0, 1 );
+ this, TQ_SLOT ( pasteItem( int ) ), 0, 1 );
pasteMenu->insertItem( i18n( "After" ),
- this, TQT_SLOT ( pasteItem( int ) ), 0, 2 );
+ this, TQ_SLOT ( pasteItem( int ) ), 0, 2 );
onItem->insertItem( i18n( "Paste" ), pasteMenu, 3 );
- onItem->insertItem( i18n( "Cut Item" ), this, TQT_SLOT ( cutItem() ) );
+ onItem->insertItem( i18n( "Cut Item" ), this, TQ_SLOT ( cutItem() ) );
onItem->setItemEnabled( 3, false );
myMyContentsHeight = 0;
_showItemAddPopupMenu = false;
- TQObject *scrollViewTimer = child( "scrollview scrollbar timer", TQTIMER_OBJECT_NAME_STRING, false );
+ TQObject *scrollViewTimer = child( "scrollview scrollbar timer", "TQTimer", false );
Q_ASSERT( scrollViewTimer );
if ( scrollViewTimer ) {
- disconnect( scrollViewTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(updateScrollBars() ) );
+ disconnect( scrollViewTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(updateScrollBars() ) );
}
// If they needed a scrollbar timer in scrollview...
- connect( &scrollBarTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(myUpdateScrollBars() ) );
+ connect( &scrollBarTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(myUpdateScrollBars() ) );
myScrollTimer = new TQTimer( this, "myScrollTimer" );
- connect( myScrollTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotScrollTimer() ) );
+ connect( myScrollTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( slotScrollTimer() ) );
autoScrollEnabled = false;
}
@@ -3516,7 +3516,7 @@ void KDGanttCanvasView::contentsMousePressEvent ( TQMouseEvent * e )
currentItem = 0;
movingItem = 0;
mouseDown = true;
- if (e->button() == Qt::RightButton && mySignalSender->editable()) {
+ if (e->button() == TQt::RightButton && mySignalSender->editable()) {
lastClickedItem = (KDGanttViewItem*) mySignalSender->myListView->itemAt( TQPoint(2,e->pos().y()));
if ( lastClickedItem ) {
if ( lastClickedItem->displaySubitemsAsGroup() && ! lastClickedItem->isOpen() ) {
@@ -3537,7 +3537,7 @@ void KDGanttCanvasView::contentsMousePressEvent ( TQMouseEvent * e )
TQCanvasItemList::Iterator it;
for ( it = il.begin(); it != il.end(); ++it ) {
switch ( e->button() ) {
- case Qt::LeftButton:
+ case TQt::LeftButton:
switch (getType(*it)) {
case Type_is_KDGanttViewItem:
currentItem = getItem(*it);
@@ -3590,7 +3590,7 @@ void KDGanttCanvasView::contentsMousePressEvent ( TQMouseEvent * e )
break;
}
break;
- case Qt::RightButton:
+ case TQt::RightButton:
switch (getType(*it)) {
case Type_is_KDGanttViewItem:
currentItem = getItem(*it);
@@ -3602,7 +3602,7 @@ void KDGanttCanvasView::contentsMousePressEvent ( TQMouseEvent * e )
break;
}
break;
- case Qt::MidButton:
+ case TQt::MidButton:
switch (getType(*it)) {
case Type_is_KDGanttViewItem:
currentItem = getItem(*it);
@@ -3618,10 +3618,10 @@ void KDGanttCanvasView::contentsMousePressEvent ( TQMouseEvent * e )
break;
}
}
- if (e->button() == Qt::RightButton ) {
+ if (e->button() == TQt::RightButton ) {
mySignalSender->gvContextMenuRequested( currentItem, e->globalPos() );
}
- if (autoScrollEnabled && e->button() == Qt::LeftButton) {
+ if (autoScrollEnabled && e->button() == TQt::LeftButton) {
myScrollTimer->start(50);
}
}
@@ -3643,7 +3643,7 @@ void KDGanttCanvasView::contentsMouseReleaseEvent ( TQMouseEvent * e )
// if ( currentLink || currentItem )
{
switch ( e->button() ) {
- case Qt::LeftButton:
+ case TQt::LeftButton:
myScrollTimer->stop();
{
mySignalSender->itemLeftClicked( currentItem );
@@ -3675,7 +3675,7 @@ void KDGanttCanvasView::contentsMouseReleaseEvent ( TQMouseEvent * e )
movingGVItem = 0;
}
break;
- case Qt::RightButton:
+ case TQt::RightButton:
{
mySignalSender->itemRightClicked( currentItem );
mySignalSender->gvItemRightClicked( currentItem );
@@ -3684,7 +3684,7 @@ void KDGanttCanvasView::contentsMouseReleaseEvent ( TQMouseEvent * e )
if ( currentLink )
mySignalSender->taskLinkRightClicked( currentLink );
break;
- case Qt::MidButton:
+ case TQt::MidButton:
{
mySignalSender->itemMidClicked( currentItem );
mySignalSender->gvItemMidClicked( currentItem );
@@ -3713,7 +3713,7 @@ void KDGanttCanvasView::contentsMouseDoubleClickEvent ( TQMouseEvent * e )
{
TQCanvasItemList il = canvas() ->collisions ( e->pos() );
- if ( il.isEmpty() && e->button() == Qt::LeftButton ) {
+ if ( il.isEmpty() && e->button() == TQt::LeftButton ) {
//not directly sending a signal here (encapsulation and whatnot)
mySignalSender->emptySpaceDoubleClicked(e);
return;
@@ -3722,7 +3722,7 @@ void KDGanttCanvasView::contentsMouseDoubleClickEvent ( TQMouseEvent * e )
TQCanvasItemList::Iterator it;
for ( it = il.begin(); it != il.end(); ++it ) {
switch ( e->button() ) {
- case Qt::LeftButton:
+ case TQt::LeftButton:
switch (getType(*it)) {
case Type_is_KDGanttViewItem:
if ( getItem(*it)->enabled() )
@@ -3739,7 +3739,7 @@ void KDGanttCanvasView::contentsMouseDoubleClickEvent ( TQMouseEvent * e )
}
break;
/*
- case Qt::RightButton:
+ case TQt::RightButton:
switch (getType(*it)) {
case Type_is_KDGanttViewItem:
mySignalSender->itemRightClicked(getItem(*it));
@@ -3751,7 +3751,7 @@ void KDGanttCanvasView::contentsMouseDoubleClickEvent ( TQMouseEvent * e )
break;
}
break;
- case Qt::MidButton:
+ case TQt::MidButton:
switch (getType(*it)) {
case Type_is_KDGanttViewItem:
mySignalSender->itemMidClicked(getItem(*it));
@@ -4025,7 +4025,7 @@ void KDIntervalColorRectangle::layout( KDTimeHeaderWidget* timeHeader, int heigh
if ( right == left )
++right;
setPen( TQPen(TQPen::NoPen) );
- setBrush( TQBrush(mColor, Qt::SolidPattern) );
+ setBrush( TQBrush(mColor, TQt::SolidPattern) );
setSize( right - left, height );
move( left, 0 );
show();
diff --git a/kdgantt/KDGanttViewSubwidgets.h b/kdgantt/KDGanttViewSubwidgets.h
index b793ac4b..ae700916 100644
--- a/kdgantt/KDGanttViewSubwidgets.h
+++ b/kdgantt/KDGanttViewSubwidgets.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
@@ -75,7 +75,7 @@ class KDTimeHeaderToolTip;
class KDTimeHeaderWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -253,7 +253,7 @@ class KDListView ;
class KDTimeTableWidget : public TQCanvas
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -330,7 +330,7 @@ private:
class KDLegendWidget : public KDGanttSemiSizingControl
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -357,7 +357,7 @@ public:
class KDGanttView;
class KDListView : public TQListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -486,7 +486,7 @@ class KDCanvasToolTip;
class KDGanttCanvasView : public TQCanvasView
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kdgantt/KDGanttViewSummaryItem.cpp b/kdgantt/KDGanttViewSummaryItem.cpp
index 7c400e54..184bf3c0 100644
--- a/kdgantt/KDGanttViewSummaryItem.cpp
+++ b/kdgantt/KDGanttViewSummaryItem.cpp
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
diff --git a/kdgantt/KDGanttViewSummaryItem.h b/kdgantt/KDGanttViewSummaryItem.h
index 7361adca..17fa8850 100644
--- a/kdgantt/KDGanttViewSummaryItem.h
+++ b/kdgantt/KDGanttViewSummaryItem.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
diff --git a/kdgantt/KDGanttViewTaskItem.cpp b/kdgantt/KDGanttViewTaskItem.cpp
index 9bdedaf8..653925c0 100644
--- a/kdgantt/KDGanttViewTaskItem.cpp
+++ b/kdgantt/KDGanttViewTaskItem.cpp
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
diff --git a/kdgantt/KDGanttViewTaskItem.h b/kdgantt/KDGanttViewTaskItem.h
index aa958d2c..2c3a2377 100644
--- a/kdgantt/KDGanttViewTaskItem.h
+++ b/kdgantt/KDGanttViewTaskItem.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
diff --git a/kdgantt/KDGanttViewTaskLink.cpp b/kdgantt/KDGanttViewTaskLink.cpp
index 555e70a7..9b044fc4 100644
--- a/kdgantt/KDGanttViewTaskLink.cpp
+++ b/kdgantt/KDGanttViewTaskLink.cpp
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
@@ -268,7 +268,7 @@ void KDGanttViewTaskLink::showMe( bool visible )
TQPen p;
TQBrush b;
p.setWidth(wid);
- b.setStyle(Qt::SolidPattern);
+ b.setStyle(TQt::SolidPattern);
if (ishighlighted) {
b.setColor(myColorHL);
p.setColor(myColorHL);
@@ -333,7 +333,7 @@ void KDGanttViewTaskLink::showMeType( bool visible )
TQPen p;
TQBrush b;
p.setWidth(wid);
- b.setStyle(Qt::SolidPattern);
+ b.setStyle(TQt::SolidPattern);
if (ishighlighted) {
b.setColor(myColorHL);
p.setColor(myColorHL);
diff --git a/kdgantt/KDGanttViewTaskLink.h b/kdgantt/KDGanttViewTaskLink.h
index ad16265b..228ccf5f 100644
--- a/kdgantt/KDGanttViewTaskLink.h
+++ b/kdgantt/KDGanttViewTaskLink.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
diff --git a/kdgantt/KDGanttViewTaskLinkGroup.cpp b/kdgantt/KDGanttViewTaskLinkGroup.cpp
index 3437dcd1..6c8d542e 100644
--- a/kdgantt/KDGanttViewTaskLinkGroup.cpp
+++ b/kdgantt/KDGanttViewTaskLinkGroup.cpp
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
diff --git a/kdgantt/KDGanttViewTaskLinkGroup.h b/kdgantt/KDGanttViewTaskLinkGroup.h
index b155b8b4..480309bc 100644
--- a/kdgantt/KDGanttViewTaskLinkGroup.h
+++ b/kdgantt/KDGanttViewTaskLinkGroup.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
diff --git a/kdgantt/KDGanttXMLTools.cpp b/kdgantt/KDGanttXMLTools.cpp
index af09edb4..02c3537a 100644
--- a/kdgantt/KDGanttXMLTools.cpp
+++ b/kdgantt/KDGanttXMLTools.cpp
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
@@ -266,20 +266,20 @@ void createTimeNode( TQDomDocument& doc, TQDomNode& parent,
}
-TQString penStyleToString( Qt::PenStyle style )
+TQString penStyleToString( TQt::PenStyle style )
{
switch( style ) {
- case Qt::NoPen:
+ case TQt::NoPen:
return "NoPen";
- case Qt::SolidLine:
+ case TQt::SolidLine:
return "SolidLine";
- case Qt::DashLine:
+ case TQt::DashLine:
return "DashLine";
- case Qt::DotLine:
+ case TQt::DotLine:
return "DotLine";
- case Qt::DashDotLine:
+ case TQt::DashDotLine:
return "DashDotLine";
- case Qt::DashDotDotLine:
+ case TQt::DashDotDotLine:
return "DashDotDotLine";
default: // should not happen
return "SolidLine";
@@ -288,39 +288,39 @@ TQString penStyleToString( Qt::PenStyle style )
-TQString brushStyleToString( Qt::BrushStyle style )
+TQString brushStyleToString( TQt::BrushStyle style )
{
// PENDING(kalle) Support custom patterns
switch( style ) {
- case Qt::NoBrush:
+ case TQt::NoBrush:
return "NoBrush";
- case Qt::SolidPattern:
+ case TQt::SolidPattern:
return "SolidPattern";
- case Qt::Dense1Pattern:
+ case TQt::Dense1Pattern:
return "Dense1Pattern";
- case Qt::Dense2Pattern:
+ case TQt::Dense2Pattern:
return "Dense2Pattern";
- case Qt::Dense3Pattern:
+ case TQt::Dense3Pattern:
return "Dense3Pattern";
- case Qt::Dense4Pattern:
+ case TQt::Dense4Pattern:
return "Dense4Pattern";
- case Qt::Dense5Pattern:
+ case TQt::Dense5Pattern:
return "Dense5Pattern";
- case Qt::Dense6Pattern:
+ case TQt::Dense6Pattern:
return "Dense6Pattern";
- case Qt::Dense7Pattern:
+ case TQt::Dense7Pattern:
return "Dense7Pattern";
- case Qt::HorPattern:
+ case TQt::HorPattern:
return "HorPattern";
- case Qt::VerPattern:
+ case TQt::VerPattern:
return "VerPattern";
- case Qt::CrossPattern:
+ case TQt::CrossPattern:
return "CrossPattern";
- case Qt::BDiagPattern:
+ case TQt::BDiagPattern:
return "BDiagPattern";
- case Qt::FDiagPattern:
+ case TQt::FDiagPattern:
return "FDiagPattern";
- case Qt::DiagCrossPattern:
+ case TQt::DiagCrossPattern:
return "DiagCrossPattern";
default: // should not happen (but can for a custom pattern)
return "SolidPattern";
@@ -399,7 +399,7 @@ bool readBrushNode( const TQDomElement& element, TQBrush& brush )
{
bool ok = true;
TQColor tempColor;
- Qt::BrushStyle tempStyle;
+ TQt::BrushStyle tempStyle;
TQPixmap tempPixmap;
TQDomNode node = element.firstChild();
while( !node.isNull() ) {
@@ -506,7 +506,7 @@ bool readPenNode( const TQDomElement& element, TQPen& pen )
bool ok = true;
int tempWidth;
TQColor tempColor;
- Qt::PenStyle tempStyle;
+ TQt::PenStyle tempStyle;
TQDomNode node = element.firstChild();
while( !node.isNull() ) {
TQDomElement element = node.toElement();
@@ -705,60 +705,60 @@ bool readTimeNode( const TQDomElement& element, TQTime& value )
-Qt::PenStyle stringToPenStyle( const TQString& style )
+TQt::PenStyle stringToPenStyle( const TQString& style )
{
if( style == "NoPen" )
- return Qt::NoPen;
+ return TQt::NoPen;
else if( style == "SolidLine" )
- return Qt::SolidLine;
+ return TQt::SolidLine;
else if( style == "DashLine" )
- return Qt::DashLine;
+ return TQt::DashLine;
else if( style == "DotLine" )
- return Qt::DotLine;
+ return TQt::DotLine;
else if( style == "DashDotLine" )
- return Qt::DashDotLine;
+ return TQt::DashDotLine;
else if( style == "DashDotDotLine" )
- return Qt::DashDotDotLine;
+ return TQt::DashDotDotLine;
else // should not happen
- return Qt::SolidLine;
+ return TQt::SolidLine;
}
-Qt::BrushStyle stringToBrushStyle( const TQString& style )
+TQt::BrushStyle stringToBrushStyle( const TQString& style )
{
// PENDING(kalle) Support custom patterns
if( style == "NoBrush" )
- return Qt::NoBrush;
+ return TQt::NoBrush;
else if( style == "SolidPattern" )
- return Qt::SolidPattern;
+ return TQt::SolidPattern;
else if( style == "Dense1Pattern" )
- return Qt::Dense1Pattern;
+ return TQt::Dense1Pattern;
else if( style == "Dense2Pattern" )
- return Qt::Dense2Pattern;
+ return TQt::Dense2Pattern;
else if( style == "Dense3Pattern" )
- return Qt::Dense3Pattern;
+ return TQt::Dense3Pattern;
else if( style == "Dense4Pattern" )
- return Qt::Dense4Pattern;
+ return TQt::Dense4Pattern;
else if( style == "Dense5Pattern" )
- return Qt::Dense5Pattern;
+ return TQt::Dense5Pattern;
else if( style == "Dense6Pattern" )
- return Qt::Dense6Pattern;
+ return TQt::Dense6Pattern;
else if( style == "Dense7Pattern" )
- return Qt::Dense7Pattern;
+ return TQt::Dense7Pattern;
else if( style == "HorPattern" )
- return Qt::HorPattern;
+ return TQt::HorPattern;
else if( style == "VerPattern" )
- return Qt::VerPattern;
+ return TQt::VerPattern;
else if( style == "CrossPattern" )
- return Qt::CrossPattern;
+ return TQt::CrossPattern;
else if( style == "BDiagPattern" )
- return Qt::BDiagPattern;
+ return TQt::BDiagPattern;
else if( style == "FDiagPattern" )
- return Qt::FDiagPattern;
+ return TQt::FDiagPattern;
else if( style == "DiagCrossPattern" )
- return Qt::DiagCrossPattern;
+ return TQt::DiagCrossPattern;
else // should not happen (but can with custom patterns)
- return Qt::SolidPattern;
+ return TQt::SolidPattern;
}
}
diff --git a/kdgantt/KDGanttXMLTools.h b/kdgantt/KDGanttXMLTools.h
index b1639c92..a7a61c1d 100644
--- a/kdgantt/KDGanttXMLTools.h
+++ b/kdgantt/KDGanttXMLTools.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C++ -*-
+/*
$Id$
KDGantt - a multi-platform charting engine
*/
@@ -45,10 +45,10 @@
#include <tqdatetime.h>
namespace KDGanttXML {
- TQString penStyleToString( Qt::PenStyle style );
- Qt::PenStyle stringToPenStyle( const TQString& style );
- TQString brushStyleToString( Qt::BrushStyle style );
- Qt::BrushStyle stringToBrushStyle( const TQString& style );
+ TQString penStyleToString( TQt::PenStyle style );
+ TQt::PenStyle stringToPenStyle( const TQString& style );
+ TQString brushStyleToString( TQt::BrushStyle style );
+ TQt::BrushStyle stringToBrushStyle( const TQString& style );
void createBoolNode( TQDomDocument& doc, TQDomNode& parent,
const TQString& elementName, bool value );
diff --git a/kdgantt/itemAttributeDialog.ui b/kdgantt/itemAttributeDialog.ui
index 5a34dbb5..2eaa3173 100644
--- a/kdgantt/itemAttributeDialog.ui
+++ b/kdgantt/itemAttributeDialog.ui
@@ -702,7 +702,7 @@
<variables>
<variable>KDGanttViewItem * myItem</variable>
</variables>
-<Q_SLOTS>
+<slots>
<slot>init()</slot>
<slot>ChangeText_clicked()</slot>
<slot>ChangeStart_clicked()</slot>
@@ -732,6 +732,6 @@
<slot>CalBox_toggled( bool mode )</slot>
<slot>PrioSlider_valueChanged( int val )</slot>
<slot returnType="KDGanttViewItem *">getItem()</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
</UI>
diff --git a/kgantt/kgantt/KGantt.cpp b/kgantt/kgantt/KGantt.cpp
index f16d4776..59df7764 100644
--- a/kgantt/kgantt/KGantt.cpp
+++ b/kgantt/kgantt/KGantt.cpp
@@ -58,8 +58,8 @@ KGantt::KGantt(KGanttItem* toplevelitem,
_ganttbar = new xQGanttBarView(_toplevelitem, _splitter);
_ganttbar->setPalette(pal1);
- connect(_ganttbar, TQT_SIGNAL(contentsMoving(int,int)),
- _ganttlist, TQT_SLOT(contentsMoved(int,int)));
+ connect(_ganttbar, TQ_SIGNAL(contentsMoving(int,int)),
+ _ganttlist, TQ_SLOT(contentsMoved(int,int)));
_ganttlist->setBarView(_ganttbar);
diff --git a/kgantt/kgantt/KGantt.h b/kgantt/kgantt/KGantt.h
index 887acfaf..e49e9045 100644
--- a/kgantt/kgantt/KGantt.h
+++ b/kgantt/kgantt/KGantt.h
@@ -38,7 +38,7 @@
#include <tqsplitter.h>
#include <tdepopupmenu.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "KGanttItem.h"
#include "xQGanttListView.h"
@@ -91,7 +91,7 @@ class KDE_EXPORT KGantt : public TQWidget
////////////////////////////////
{
- Q_OBJECT
+ TQ_OBJECT
diff --git a/kgantt/kgantt/KGanttBarConfig.cpp b/kgantt/kgantt/KGanttBarConfig.cpp
index ff5f4ee8..547373b1 100644
--- a/kgantt/kgantt/KGanttBarConfig.cpp
+++ b/kgantt/kgantt/KGanttBarConfig.cpp
@@ -20,8 +20,8 @@ KGanttBarConfig::KGanttBarConfig(xQGanttBarView* barview,
_barview = barview;
KColorButton* b = new KColorButton(this);
- connect(b, TQT_SIGNAL(changed(const TQColor&)),
- this, TQT_SLOT(changeBackground(const TQColor&)));
+ connect(b, TQ_SIGNAL(changed(const TQColor&)),
+ this, TQ_SLOT(changeBackground(const TQColor&)));
}
diff --git a/kgantt/kgantt/KGanttBarConfig.h b/kgantt/kgantt/KGanttBarConfig.h
index 2cd0f11d..0aac5082 100644
--- a/kgantt/kgantt/KGanttBarConfig.h
+++ b/kgantt/kgantt/KGanttBarConfig.h
@@ -37,7 +37,7 @@ class xQGanttBarView;
class KGanttBarConfig : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kgantt/kgantt/KGanttItem.cpp b/kgantt/kgantt/KGanttItem.cpp
index f032ede0..c517e767 100644
--- a/kgantt/kgantt/KGanttItem.cpp
+++ b/kgantt/kgantt/KGanttItem.cpp
@@ -94,8 +94,8 @@ KGanttItem::addRelation(KGanttItem* from, KGanttItem* to,
KGanttRelation* rel = new KGanttRelation(from,to,text);
_relations.append(rel);
- connect(rel, TQT_SIGNAL(destroyed(KGanttRelation*)),
- this, TQT_SLOT(removeRelation(KGanttRelation*)));
+ connect(rel, TQ_SIGNAL(destroyed(KGanttRelation*)),
+ this, TQ_SLOT(removeRelation(KGanttRelation*)));
emit changed(this, RelationAdded);
return rel;
@@ -130,8 +130,8 @@ KGanttItem::registerItem(KGanttItem* item)
{
_subitems.append(item);
- connect(item, TQT_SIGNAL(changed(KGanttItem*, KGanttItem::Change)),
- this, TQT_SLOT(subItemChanged(KGanttItem*, KGanttItem::Change)) );
+ connect(item, TQ_SIGNAL(changed(KGanttItem*, KGanttItem::Change)),
+ this, TQ_SLOT(subItemChanged(KGanttItem*, KGanttItem::Change)) );
bool minChanged = false;
bool maxChanged = false;
diff --git a/kgantt/kgantt/KGanttItem.h b/kgantt/kgantt/KGanttItem.h
index 99a63ee3..3472b889 100644
--- a/kgantt/kgantt/KGanttItem.h
+++ b/kgantt/kgantt/KGanttItem.h
@@ -38,7 +38,7 @@
#include <tqptrlist.h>
#include <tqpainter.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "KGanttRelation.h"
@@ -55,7 +55,7 @@ class KDE_EXPORT KGanttItem : public TQObject
//////////////////////////////////
{
- Q_OBJECT
+ TQ_OBJECT
diff --git a/kgantt/kgantt/KGanttRelation.cpp b/kgantt/kgantt/KGanttRelation.cpp
index e5eab3b4..13bba2aa 100644
--- a/kgantt/kgantt/KGanttRelation.cpp
+++ b/kgantt/kgantt/KGanttRelation.cpp
@@ -23,11 +23,11 @@ KGanttRelation::KGanttRelation(KGanttItem* from, KGanttItem* to,
_text = text;
_pen = TQPen(TQColor(20,20,20),1);
- connect(from, TQT_SIGNAL(destroyed(KGanttItem*)),
- this, TQT_SLOT(itemDestroyed(KGanttItem*)));
+ connect(from, TQ_SIGNAL(destroyed(KGanttItem*)),
+ this, TQ_SLOT(itemDestroyed(KGanttItem*)));
- connect(to, TQT_SIGNAL(destroyed(KGanttItem*)),
- this, TQT_SLOT(itemDestroyed(KGanttItem*)));
+ connect(to, TQ_SIGNAL(destroyed(KGanttItem*)),
+ this, TQ_SLOT(itemDestroyed(KGanttItem*)));
}
diff --git a/kgantt/kgantt/KGanttRelation.h b/kgantt/kgantt/KGanttRelation.h
index 08080bea..30028e80 100644
--- a/kgantt/kgantt/KGanttRelation.h
+++ b/kgantt/kgantt/KGanttRelation.h
@@ -49,7 +49,7 @@ class KGanttRelation : public TQObject
//////////////////////////////////
{
- Q_OBJECT
+ TQ_OBJECT
friend class KGanttItem;
diff --git a/kgantt/kgantt/itemedit.ui b/kgantt/kgantt/itemedit.ui
index 8ebfc02b..12677e2d 100644
--- a/kgantt/kgantt/itemedit.ui
+++ b/kgantt/kgantt/itemedit.ui
@@ -606,7 +606,7 @@
</grid>
</widget>
<layoutdefaults spacing="6" margin="11"/>
-<includehints>
- <includehint>knuminput.h</includehint>
-</includehints>
+<includes>
+ <include location="global" impldecl="in implementation">knuminput.h</include>
+</includes>
</UI>
diff --git a/kgantt/kgantt/itemedit2.ui b/kgantt/kgantt/itemedit2.ui
index 4e990183..0d308deb 100644
--- a/kgantt/kgantt/itemedit2.ui
+++ b/kgantt/kgantt/itemedit2.ui
@@ -323,7 +323,7 @@
</grid>
</widget>
<layoutdefaults spacing="6" margin="11"/>
-<includehints>
- <includehint>knuminput.h</includehint>
-</includehints>
+<includes>
+ <include location="global" impldecl="in implementation">knuminput.h</include>
+</includes>
</UI>
diff --git a/kgantt/kgantt/xQGanttBarView.cpp b/kgantt/kgantt/xQGanttBarView.cpp
index 60d25797..3e691c04 100644
--- a/kgantt/kgantt/xQGanttBarView.cpp
+++ b/kgantt/kgantt/xQGanttBarView.cpp
@@ -33,14 +33,14 @@ xQGanttBarView::xQGanttBarView(KGanttItem* toplevelitem,
_viewport->setMode(xQGanttBarViewPort::Select);
- connect(_viewport, TQT_SIGNAL(scroll(int,int)),
- this, TQT_SLOT(scrollBy(int,int)) );
+ connect(_viewport, TQ_SIGNAL(scroll(int,int)),
+ this, TQ_SLOT(scrollBy(int,int)) );
- connect(_viewport, TQT_SIGNAL(recalculated()),
- this, TQT_SLOT(drawHeader()) );
+ connect(_viewport, TQ_SIGNAL(recalculated()),
+ this, TQ_SLOT(drawHeader()) );
- connect(horizontalScrollBar(), TQT_SIGNAL(valueChanged(int)),
- this, TQT_SLOT(horizontalScrollBarChanged(int)) );
+ connect(horizontalScrollBar(), TQ_SIGNAL(valueChanged(int)),
+ this, TQ_SLOT(horizontalScrollBarChanged(int)) );
}
diff --git a/kgantt/kgantt/xQGanttBarView.h b/kgantt/kgantt/xQGanttBarView.h
index bec47a61..c1f4b1ba 100644
--- a/kgantt/kgantt/xQGanttBarView.h
+++ b/kgantt/kgantt/xQGanttBarView.h
@@ -51,7 +51,7 @@ class xQGanttBarView : public TQScrollView
//////////////////////////////////////////
{
- Q_OBJECT
+ TQ_OBJECT
diff --git a/kgantt/kgantt/xQGanttBarViewPort.cpp b/kgantt/kgantt/xQGanttBarViewPort.cpp
index 2c3a348e..5aca74c9 100644
--- a/kgantt/kgantt/xQGanttBarViewPort.cpp
+++ b/kgantt/kgantt/xQGanttBarViewPort.cpp
@@ -52,8 +52,8 @@ xQGanttBarViewPort::xQGanttBarViewPort(KGanttItem* toplevelitem,
_itemTextEdit->hide();
_itemTextEdit->setFrame(false);
- connect(_itemTextEdit, TQT_SIGNAL(returnPressed ()),
- this, TQT_SLOT(textEdited()));
+ connect(_itemTextEdit, TQ_SIGNAL(returnPressed ()),
+ this, TQ_SLOT(textEdited()));
_iconloader = new TDEIconLoader();
@@ -83,12 +83,12 @@ xQGanttBarViewPort::xQGanttBarViewPort(KGanttItem* toplevelitem,
_cursor_lupe = new TQCursor( TQPixmap(lupe) );
- connect(_toplevelitem, TQT_SIGNAL(changed(KGanttItem*, KGanttItem::Change)),
- this, TQT_SLOT(toplevelitemChanged(KGanttItem*, KGanttItem::Change)) );
+ connect(_toplevelitem, TQ_SIGNAL(changed(KGanttItem*, KGanttItem::Change)),
+ this, TQ_SLOT(toplevelitemChanged(KGanttItem*, KGanttItem::Change)) );
recalc(); adjustSize();
- setFocusPolicy(TQ_StrongFocus);
+ setFocusPolicy(TQWidget::StrongFocus);
_mode = Init;
}
@@ -116,8 +116,8 @@ xQGanttBarViewPort::toolbar(TQMainWindow* mw)
_toolbar->insertButton("ganttSelect.png", 0,
- TQT_SIGNAL(clicked()),
- TQT_TQOBJECT(this), TQT_SLOT(setSelect()),
+ TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(setSelect()),
true, i18n("Select") );
TDEPopupMenu *selectMenu = new TDEPopupMenu(_toolbar);
@@ -128,7 +128,7 @@ xQGanttBarViewPort::toolbar(TQMainWindow* mw)
*/
TQPixmap pix = _iconloader->loadIcon("ganttSelecttask.png", TDEIcon::Toolbar , 16 );
if(pix.isNull()) printf("ganttSelecttask.png not found !\n");
- selectMenu->insertItem(pix, i18n("Select All"), TQT_TQOBJECT(this), TQT_SLOT(selectAll()) );
+ selectMenu->insertItem(pix, i18n("Select All"), this, TQ_SLOT(selectAll()) );
/*
@@ -136,7 +136,7 @@ xQGanttBarViewPort::toolbar(TQMainWindow* mw)
*/
pix = _iconloader->loadIcon("ganttUnselecttask", TDEIcon::Toolbar , 16 );
if(pix.isNull()) printf("ganttUnselecttask.png not found !\n");
- selectMenu->insertItem(pix, i18n("Unselect All"), TQT_TQOBJECT(this), TQT_SLOT(unselectAll()) );
+ selectMenu->insertItem(pix, i18n("Unselect All"), this, TQ_SLOT(unselectAll()) );
TDEToolBarButton* b = _toolbar->getButton(0);
@@ -144,31 +144,31 @@ xQGanttBarViewPort::toolbar(TQMainWindow* mw)
_toolbar->insertButton("viewmag.png", 1,
- TQT_SIGNAL(clicked()),
- TQT_TQOBJECT(this), TQT_SLOT(setZoom()),
+ TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(setZoom()),
true, i18n("Zoom") );
TDEPopupMenu* zoomMenu = new TDEPopupMenu(_toolbar);
pix = _iconloader->loadIcon("viewmag.png", TDEIcon::Toolbar , 16 );
if(pix.isNull()) printf("viewmag.png not found !\n");
- zoomMenu->insertItem(pix, i18n("Zoom All"), TQT_TQOBJECT(this), TQT_SLOT(zoomAll()) );
+ zoomMenu->insertItem(pix, i18n("Zoom All"), this, TQ_SLOT(zoomAll()) );
zoomMenu->insertSeparator();
pix = _iconloader->loadIcon("viewmag+.png", TDEIcon::Toolbar , 16 );
if(pix.isNull()) printf("viewmag+.png not found !\n");
- zoomMenu->insertItem(pix, i18n("Zoom In +"), TQT_TQOBJECT(this), TQT_SLOT(zoomIn()) );
+ zoomMenu->insertItem(pix, i18n("Zoom In +"), this, TQ_SLOT(zoomIn()) );
pix = _iconloader->loadIcon("viewmag-.png", TDEIcon::Toolbar , 16 );
if(pix.isNull()) printf("viewmag-.png not found !\n");
- zoomMenu->insertItem(pix, i18n("Zoom Out -"), TQT_TQOBJECT(this), TQT_SLOT(zoomOut()) );
+ zoomMenu->insertItem(pix, i18n("Zoom Out -"), this, TQ_SLOT(zoomOut()) );
b = _toolbar->getButton(1);
b->setDelayedPopup(zoomMenu);
_toolbar->insertButton("move.png", 2,
- TQT_SIGNAL(clicked()),
- TQT_TQOBJECT(this), TQT_SLOT(setMove()),
+ TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(setMove()),
true, i18n("Move") );
return _toolbar;
@@ -191,17 +191,17 @@ xQGanttBarViewPort::initMenu()
TQPixmap pix = _iconloader->loadIcon("ganttSelect.png", TDEIcon::Toolbar , 16 );
if(pix.isNull()) printf("ganttSelect.png not found !\n");
- _selectMenu->insertItem(pix, i18n("Select Mode"), this, TQT_SLOT(setSelect()));
+ _selectMenu->insertItem(pix, i18n("Select Mode"), this, TQ_SLOT(setSelect()));
_selectMenu->insertSeparator();
pix = _iconloader->loadIcon("ganttSelecttask.png", TDEIcon::Toolbar , 16 );
if(pix.isNull()) printf("ganttSelecttask.png not found !\n");
- _selectMenu->insertItem(pix, i18n("Select All"), this, TQT_SLOT(selectAll()) );
+ _selectMenu->insertItem(pix, i18n("Select All"), this, TQ_SLOT(selectAll()) );
pix = _iconloader->loadIcon("ganttUnselecttask", TDEIcon::Toolbar , 16 );
if(pix.isNull()) printf("ganttUnselecttask.png not found !\n");
- _selectMenu->insertItem(pix, i18n("Unselect All"), this, TQT_SLOT(unselectAll()) );
+ _selectMenu->insertItem(pix, i18n("Unselect All"), this, TQ_SLOT(unselectAll()) );
_menu->insertItem( i18n("Select"), _selectMenu);
@@ -214,32 +214,32 @@ xQGanttBarViewPort::initMenu()
pix = _iconloader->loadIcon("viewmag.png", TDEIcon::Toolbar , 16 );
if(pix.isNull()) printf("viewmag.png not found !\n");
- _zoomMenu->insertItem(i18n("Zoom Mode"), this, TQT_SLOT(setZoom()) );
+ _zoomMenu->insertItem(i18n("Zoom Mode"), this, TQ_SLOT(setZoom()) );
_zoomMenu->insertSeparator();
- _zoomMenu->insertItem(pix, i18n("Zoom All"), this, TQT_SLOT(zoomAll()) );
+ _zoomMenu->insertItem(pix, i18n("Zoom All"), this, TQ_SLOT(zoomAll()) );
_zoomMenu->insertSeparator();
pix = _iconloader->loadIcon("viewmag+.png", TDEIcon::Toolbar , 16 );
if(pix.isNull()) printf("viewmag+.png not found !\n");
- _zoomMenu->insertItem(pix, i18n("Zoom In +"), this, TQT_SLOT(zoomIn()) );
+ _zoomMenu->insertItem(pix, i18n("Zoom In +"), this, TQ_SLOT(zoomIn()) );
pix = _iconloader->loadIcon("viewmag-.png", TDEIcon::Toolbar , 16 );
if(pix.isNull()) printf("viewmag-.png not found !\n");
- _zoomMenu->insertItem(pix, i18n("Zoom Out -"), this, TQT_SLOT(zoomOut()) );
+ _zoomMenu->insertItem(pix, i18n("Zoom Out -"), this, TQ_SLOT(zoomOut()) );
_menu->insertItem( "Zoom", _zoomMenu);
pix = _iconloader->loadIcon("move.png", TDEIcon::Toolbar , 16 );
if(pix.isNull()) printf("move.png not found !\n");
- _menu->insertItem(pix, i18n("Move Mode"), this, TQT_SLOT(setMove()) );
+ _menu->insertItem(pix, i18n("Move Mode"), this, TQ_SLOT(setMove()) );
_menu->insertSeparator();
pix = _iconloader->loadIcon("configure.png", TDEIcon::Toolbar , 16 );
if(pix.isNull()) printf("configure.png not found !\n");
- _menu->insertItem(pix, i18n("Configure Gantt..."), _parent, TQT_SLOT(showConfig()));
+ _menu->insertItem(pix, i18n("Configure Gantt..."), _parent, TQ_SLOT(showConfig()));
}
@@ -1017,8 +1017,8 @@ xQGanttBarViewPort::deleteSelectedItems()
#ifdef _DEBUG_
printf(" : %s \n", subitem->getText().latin1() );
#endif
- connect(subitem, TQT_SIGNAL(destroyed(KGanttItem*)),
- this, TQT_SLOT(itemDestroyed(KGanttItem*)));
+ connect(subitem, TQ_SIGNAL(destroyed(KGanttItem*)),
+ this, TQ_SLOT(itemDestroyed(KGanttItem*)));
}
list.remove(_toplevelitem);
diff --git a/kgantt/kgantt/xQGanttBarViewPort.h b/kgantt/kgantt/xQGanttBarViewPort.h
index c78ffd5a..09054552 100644
--- a/kgantt/kgantt/xQGanttBarViewPort.h
+++ b/kgantt/kgantt/xQGanttBarViewPort.h
@@ -89,7 +89,7 @@ class KDE_EXPORT xQGanttBarViewPort : public TQFrame
////////////////////////////////////////
{
- Q_OBJECT
+ TQ_OBJECT
friend class xQGanttBarView;
diff --git a/kgantt/kgantt/xQGanttBarViewPort_Events.cpp b/kgantt/kgantt/xQGanttBarViewPort_Events.cpp
index 52f017e2..94b59726 100644
--- a/kgantt/kgantt/xQGanttBarViewPort_Events.cpp
+++ b/kgantt/kgantt/xQGanttBarViewPort_Events.cpp
@@ -43,7 +43,7 @@ xQGanttBarViewPort::mousePressEvent(TQMouseEvent* e)
_itemTextEdit->hide();
// right mousebutton & control -> popup menu
- if(e->button() == Qt::RightButton && e->state() == ControlButton ) {
+ if(e->button() == TQt::RightButton && e->state() == ControlButton ) {
_menu->popup(e->globalPos());
return;
}
@@ -64,7 +64,7 @@ xQGanttBarViewPort::mousePressEvent(TQMouseEvent* e)
/*
* edit text
*/
- if(e->button() == Qt::MidButton && _mode == Select) {
+ if(e->button() == TQt::MidButton && _mode == Select) {
xTQTaskPosition* tp = _gItemList.find(_currentItem);
TQPainter p(this);
@@ -91,7 +91,7 @@ xQGanttBarViewPort::mousePressEvent(TQMouseEvent* e)
/*
* open/close item, move start, end, item
*/
- if(e->button() == Qt::LeftButton && _mode == Select) {
+ if(e->button() == TQt::LeftButton && _mode == Select) {
_timediff = 0;
@@ -210,21 +210,21 @@ xQGanttBarViewPort::mouseReleaseEvent(TQMouseEvent* e)
if(!_Mousemoved) {
- if(e->button() == Qt::LeftButton)
+ if(e->button() == TQt::LeftButton)
zoom(1.4, e->x(), e->y() );
- if(e->button() == Qt::RightButton)
+ if(e->button() == TQt::RightButton)
zoom(0.7, e->x(), e->y() );
- if(e->button() == Qt::MidButton)
+ if(e->button() == TQt::MidButton)
zoomAll();
}
else {
- if(_currentMButton == Qt::LeftButton) {
+ if(_currentMButton == TQt::LeftButton) {
TQPainter p(this);
TQPen pen(DashLine);
@@ -284,7 +284,7 @@ xQGanttBarViewPort::mouseMoveEvent(TQMouseEvent* e)
case Select: {
- if(_currentMButton == Qt::LeftButton && _currentItem) {
+ if(_currentMButton == TQt::LeftButton && _currentItem) {
TQPainter p(this);
p.setRasterOp(XorROP);
@@ -442,7 +442,7 @@ xQGanttBarViewPort::mouseMoveEvent(TQMouseEvent* e)
case Zoom: {
- if(_currentMButton == Qt::LeftButton) {
+ if(_currentMButton == TQt::LeftButton) {
static TQString strpos;
diff --git a/kgantt/kgantt/xQGanttListView.h b/kgantt/kgantt/xQGanttListView.h
index 34a89eb8..ec4f880a 100644
--- a/kgantt/kgantt/xQGanttListView.h
+++ b/kgantt/kgantt/xQGanttListView.h
@@ -48,7 +48,7 @@ class xQGanttListView : public TQScrollView
//////////////////////////////////////////////
{
- Q_OBJECT
+ TQ_OBJECT
diff --git a/kgantt/kgantt/xQGanttListViewPort.cpp b/kgantt/kgantt/xQGanttListViewPort.cpp
index d643fe8c..e12534ef 100644
--- a/kgantt/kgantt/xQGanttListViewPort.cpp
+++ b/kgantt/kgantt/xQGanttListViewPort.cpp
@@ -50,16 +50,16 @@ xQGanttListViewPort::setBarViewPort(xQGanttBarViewPort* v)
printf("setBarViewPort()\n");
- connect(_barviewport, TQT_SIGNAL(resized()),
- this, TQT_SLOT(barViewResized()));
+ connect(_barviewport, TQ_SIGNAL(resized()),
+ this, TQ_SLOT(barViewResized()));
- connect(_barviewport, TQT_SIGNAL(recalculated()),
- this, TQT_SLOT(update()));
+ connect(_barviewport, TQ_SIGNAL(recalculated()),
+ this, TQ_SLOT(update()));
/*
- connect(_barviewport, TQT_SIGNAL(contentsRepainted()),
- this, TQT_SLOT(barViewRepainted()));
+ connect(_barviewport, TQ_SIGNAL(contentsRepainted()),
+ this, TQ_SLOT(barViewRepainted()));
*/
}
diff --git a/kgantt/kgantt/xQGanttListViewPort.h b/kgantt/kgantt/xQGanttListViewPort.h
index ee2f4924..1f937521 100644
--- a/kgantt/kgantt/xQGanttListViewPort.h
+++ b/kgantt/kgantt/xQGanttListViewPort.h
@@ -48,7 +48,7 @@ class xQGanttListViewPort : public TQFrame
////////////////////////////////////////////
{
- Q_OBJECT
+ TQ_OBJECT
friend class xQGanttListView;
@@ -114,7 +114,7 @@ protected:
void mousePressEvent(TQMouseEvent* e) {
- if(e->button() == Qt::RightButton && e->state() == ControlButton ) {
+ if(e->button() == TQt::RightButton && e->state() == ControlButton ) {
_menu->popup(e->globalPos());
return;
}
diff --git a/kitchensync/CMakeL10n.txt b/kitchensync/CMakeL10n.txt
deleted file mode 100644
index b585ce4a..00000000
--- a/kitchensync/CMakeL10n.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-##### create translation templates ##############
-
-tde_l10n_auto_add_subdirectories( )
diff --git a/kitchensync/CMakeLists.txt b/kitchensync/CMakeLists.txt
deleted file mode 100644
index b5a2236b..00000000
--- a/kitchensync/CMakeLists.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-#################################################
-#
-# (C) 2010-2011 Serghei Amelian
-# serghei (DOT) amelian (AT) gmail.com
-#
-# Improvements and feedback are welcome
-#
-# This file is released under GPL >= 2
-#
-#################################################
-
-message( AUTHOR_WARNING
- " \n"
- " ---------------------------------------------------------- \n"
- " *** NOTE *** \n"
- " Building kitchensync is deprecated and should not be done. \n"
- " kitchensync will be dropped starting from R14.2.0. \n"
- " Please contact the TDE development team on ML if you wish \n"
- " kitchensync to be continued. \n"
- " ---------------------------------------------------------- \n")
-
-add_subdirectory( libqopensync )
-add_subdirectory( src )
diff --git a/kitchensync/Makefile.am b/kitchensync/Makefile.am
deleted file mode 100644
index f2bf61b4..00000000
--- a/kitchensync/Makefile.am
+++ /dev/null
@@ -1,3 +0,0 @@
-SUBDIRS = libqopensync src
-
-include $(top_srcdir)/admin/Doxyfile.am
diff --git a/kitchensync/configure.in.bot b/kitchensync/configure.in.bot
deleted file mode 100644
index a612d1b7..00000000
--- a/kitchensync/configure.in.bot
+++ /dev/null
@@ -1,8 +0,0 @@
-if test "$HAVE_OPENSYNC" = 0 -o "$HAVE_OPENSYNC_ENGINE" = 0; then
- echo ""
- echo "You're missing a compatible version of libopensync."
- echo "Version 0.19 or greater is needed."
- echo "kitchensync will not be built."
- echo ""
- all_tests=bad
-fi
diff --git a/kitchensync/configure.in.in b/kitchensync/configure.in.in
deleted file mode 100644
index 31bb902c..00000000
--- a/kitchensync/configure.in.in
+++ /dev/null
@@ -1,68 +0,0 @@
-dnl configure.in.in for OpenSync based KitchenSync
-dnl
-dnl Copyright (C) 2005 Holger Hans Peter Freyther
-dnl
-dnl Based on KPilot's configure.in
-dnl Copyright (C) 2000,2001 Adriaan de Groot
-dnl
-dnl This file is released under the terms of the GNU General Public
-dnl Licence (GPL) Version 2.
-
-
-
-dnl we need PKG_CONFIG for doing these tests
-AC_DEFUN([KITCHENSYNC_CHECK_OPENSYNC],[
-dnl AC_REQUIRE([PKG_CHECK_MODULES])
-
-dnl Say what we're doing
-AC_MSG_CHECKING(for opensync (for KitchenSync))
-AC_ARG_WITH(opensync,
-[ --with-opensync=PATH set prefix for opensync files],
-)dnl
-
-dnl change pkg_config_path if we have a OpenSync prefix
-dnl and also set it to our prefix
-if test -d "$with_opensync"; then
- export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/lib/pkgconfig:$with_opensync/lib/pkgconfig
-fi
-export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:$prefix/lib/pkgconfig:/usr/local/lib/pkgconfig
-
-
-HAVE_OPENSYNC=0
-HAVE_OPENSYNC_ENGINE=0
-PKG_CHECK_MODULES(OPENSYNC, opensync-1.0 >= 0.19, HAVE_OPENSYNC=1,HAVE_OPENSYNC=0)
-PKG_CHECK_MODULES(OPENSYNCENGINE, osengine-1.0 >= 0.19, HAVE_OPENSYNC_ENGINE=1, HAVE_OPENSYNC_ENGINE=0)
-PKG_CHECK_MODULES(LIBXML, libxml-2.0, , HAVE_OPENSYNC=0)
-PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.6, , HAVE_OPENSYNC=0)
-
-if test -z "PKG_CONFIG"; then
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-fi
-
-if test "$PKG_CONFIG" != "no"; then
- OPENSYNC_CONFIGDIR=`$PKG_CONFIG --variable=configdir "opensync-1.0"`
- OPENSYNC_PLUGINDIR=`$PKG_CONFIG --variable=plugindir "opensync-1.0"`
- OPENSYNC_FORMATSDIR=`$PKG_CONFIG --variable=formatsdir "opensync-1.0"`
- OPENSYNC_HEADERDIR=`$PKG_CONFIG --variable=headerdir "opensync-1.0"`
-fi
-
-AC_SUBST(OPENSYNC_CONFIGDIR)
-AC_SUBST(OPENSYNC_PLUGINDIR)
-AC_SUBST(OPENSYNC_FORMATSDIR)
-AC_SUBST(OPENSYNC_HEADERDIR)
-
-dnl Check if we can compile KitchenSync
-AM_CONDITIONAL(compile_kitchensync, test "$HAVE_OPENSYNC" = 1 -a "$HAVE_OPENSYNC_ENGINE" = 1)
-
-if test "$HAVE_OPENSYNC" = 1 -a "$HAVE_OPENSYNC_ENGINE" = 1 ; then
- AC_MSG_RESULT([found])
-else
- AC_MSG_RESULT([not found])
- DO_NOT_COMPILE="$DO_NOT_COMPILE kitchensync"
-fi
-
-])
-
-
-dnl Check For OpenSync support
-KITCHENSYNC_CHECK_OPENSYNC
diff --git a/kitchensync/libqopensync/CMakeLists.txt b/kitchensync/libqopensync/CMakeLists.txt
deleted file mode 100644
index c933d286..00000000
--- a/kitchensync/libqopensync/CMakeLists.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-#################################################
-#
-# (C) 2010-2011 Serghei Amelian
-# serghei (DOT) amelian (AT) gmail.com
-#
-# Improvements and feedback are welcome
-#
-# This file is released under GPL >= 2
-#
-#################################################
-
-include( ConfigureChecks.cmake )
-
-include_directories(
- ${CMAKE_CURRENT_BINARY_DIR}
- ${CMAKE_CURRENT_SOURCE_DIR}/..
- ${TDE_INCLUDE_DIR}
- ${TQT_INCLUDE_DIRS}
- ${OSENGINE_INCLUDE_DIRS}
- ${OPENSYNC_INCLUDE_DIRS}
-)
-
-link_directories(
- ${TQT_LIBRARY_DIRS}
-)
-
-
-##### qopensync (shared) ########################
-
-tde_add_library( qopensync SHARED AUTOMOC
- SOURCES
- callbackhandler.cpp conversion.cpp engine.cpp environment.cpp
- filter.cpp group.cpp member.cpp plugin.cpp result.cpp syncmapping.cpp
- syncupdates.cpp syncchange.cpp
- VERSION 0.0.0
- LINK tdeui-shared ${OSENGINE_LIBRARIES} ${OPENSYNC_LIBRARIES}
- DESTINATION ${LIB_INSTALL_DIR}
-)
diff --git a/kitchensync/libqopensync/ConfigureChecks.cmake b/kitchensync/libqopensync/ConfigureChecks.cmake
deleted file mode 100644
index 92d32930..00000000
--- a/kitchensync/libqopensync/ConfigureChecks.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-#################################################
-#
-# (C) 2010-2011 Serghei Amelian
-# serghei (DOT) amelian (AT) gmail.com
-#
-# Improvements and feedback are welcome
-#
-# This file is released under GPL >= 2
-#
-#################################################
-
-# NOTE is needed libopensync-0.22
-
-pkg_search_module( OPENSYNC opensync-1.0 )
-if( NOT OPENSYNC_FOUND )
- tde_message_fatal( "opensync-1.0 is requested, but was not found on your system" )
-endif( )
-
-pkg_search_module( OSENGINE osengine-1.0 )
-if( NOT OSENGINE_FOUND )
- tde_message_fatal( "osengine-1.0 is requested, but was not found on your system" )
-endif( )
diff --git a/kitchensync/libqopensync/Makefile.am b/kitchensync/libqopensync/Makefile.am
deleted file mode 100644
index 73bdae04..00000000
--- a/kitchensync/libqopensync/Makefile.am
+++ /dev/null
@@ -1,19 +0,0 @@
-INCLUDES = -I$(top_srcdir)/kitchensync/src \
- -I$(top_srcdir)/kitchensync \
- -I$(top_srcdir) \
- $(OPENSYNC_CFLAGS) \
- $(OPENSYNCENGINE_CFLAGS) \
- $(all_includes)
-
-lib_LTLIBRARIES = libqopensync.la
-
-libqopensync_la_SOURCES = callbackhandler.cpp conversion.cpp engine.cpp environment.cpp filter.cpp group.cpp \
- member.cpp plugin.cpp result.cpp syncmapping.cpp syncupdates.cpp \
- syncchange.cpp
-libqopensync_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) -no-undefined
-libqopensync_la_LIBADD = $(LIB_TDEUI) $(OPENSYNC_LIBS) $(OPENSYNCENGINE_LIBS)
-
-METASOURCES = AUTO
-
-messages: rc.cpp
- $(XGETTEXT) *.cpp *.h -o $(podir)/libqopensync.pot
diff --git a/kitchensync/libqopensync/callbackhandler.cpp b/kitchensync/libqopensync/callbackhandler.cpp
deleted file mode 100644
index f3ae4c68..00000000
--- a/kitchensync/libqopensync/callbackhandler.cpp
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <osengine/engine.h>
-
-#include <libqopensync/engine.h>
-
-#include <tqapplication.h>
-
-#include "callbackhandler.h"
-
-using namespace QSync;
-
-class CallbackHandler::ConflictEvent : public TQCustomEvent
-{
- public:
- ConflictEvent( const SyncMapping& mapping )
- : TQCustomEvent( ConflictEventType ), mMapping( mapping )
- {
- }
-
- SyncMapping mapping() const { return mMapping; }
-
- private:
- SyncMapping mMapping;
-};
-
-class CallbackHandler::ChangeEvent : public TQCustomEvent
-{
- public:
- ChangeEvent( const SyncChangeUpdate& change )
- : TQCustomEvent( ChangeEventType ), mChange( change )
- {
- }
-
- SyncChangeUpdate change() const { return mChange; }
-
- private:
- SyncChangeUpdate mChange;
-};
-
-class CallbackHandler::MappingEvent : public TQCustomEvent
-{
- public:
- MappingEvent( const SyncMappingUpdate& mapping )
- : TQCustomEvent( MappingEventType ), mMapping( mapping )
- {
- }
-
- SyncMappingUpdate mapping() const { return mMapping; }
-
- private:
- SyncMappingUpdate mMapping;
-};
-
-class CallbackHandler::EngineEvent : public TQCustomEvent
-{
- public:
- EngineEvent( const SyncEngineUpdate& engine )
- : TQCustomEvent( EngineEventType ), mEngine( engine )
- {
- }
-
- SyncEngineUpdate engine() const { return mEngine; }
-
- private:
- SyncEngineUpdate mEngine;
-};
-
-class CallbackHandler::MemberEvent : public TQCustomEvent
-{
- public:
- MemberEvent( const SyncMemberUpdate& member )
- : TQCustomEvent( MemberEventType ), mMember( member )
- {
- }
-
- SyncMemberUpdate member() const { return mMember; }
-
- private:
- SyncMemberUpdate mMember;
-};
-
-CallbackHandler::CallbackHandler()
-{
-}
-
-CallbackHandler::~CallbackHandler()
-{
-}
-
-void CallbackHandler::setEngine( Engine *engine )
-{
- mEngine = engine;
-
- osengine_set_conflict_callback( engine->mEngine, &conflict_callback, this );
- osengine_set_changestatus_callback( engine->mEngine, &change_callback, this );
- osengine_set_mappingstatus_callback( engine->mEngine, &mapping_callback, this );
- osengine_set_enginestatus_callback( engine->mEngine, &engine_callback, this );
- osengine_set_memberstatus_callback( engine->mEngine, &member_callback, this );
-}
-
-Engine* CallbackHandler::engine() const
-{
- return mEngine;
-}
-
-void CallbackHandler::customEvent( TQCustomEvent *event )
-{
- if ( event->type() == static_cast<TQEvent::Type>( ConflictEventType ) ) {
- ConflictEvent *conflictEvent = static_cast<ConflictEvent*>( event );
- emit conflict( conflictEvent->mapping() );
- } else if ( event->type() == static_cast<TQEvent::Type>( ChangeEventType ) ) {
- ChangeEvent *changeEvent = static_cast<ChangeEvent*>( event );
- emit change( changeEvent->change() );
- } else if ( event->type() == static_cast<TQEvent::Type>( MappingEventType ) ) {
- MappingEvent *mappingEvent = static_cast<MappingEvent*>( event );
- emit mapping( mappingEvent->mapping() );
- } else if ( event->type() == static_cast<TQEvent::Type>( EngineEventType ) ) {
- EngineEvent *engineEvent = static_cast<EngineEvent*>( event );
- emit engine( engineEvent->engine() );
- } else if ( event->type() == static_cast<TQEvent::Type>( MemberEventType ) ) {
- MemberEvent *memberEvent = static_cast<MemberEvent*>( event );
- emit member( memberEvent->member() );
- }
-}
-
-void CallbackHandler::conflict_callback( OSyncEngine *engine, OSyncMapping *omapping, void *data )
-{
- SyncMapping mapping( omapping, engine );
-
- CallbackHandler *handler = static_cast<CallbackHandler*>( data );
-
- TQApplication::postEvent( handler, new ConflictEvent( mapping ) );
-}
-
-void CallbackHandler::change_callback( OSyncEngine*, OSyncChangeUpdate *update, void *data )
-{
- SyncChangeUpdate change( update );
-
- CallbackHandler *handler = static_cast<CallbackHandler*>( data );
-
- TQApplication::postEvent( handler, new ChangeEvent( change ) );
-}
-
-void CallbackHandler::mapping_callback( OSyncMappingUpdate *update, void *data )
-{
- CallbackHandler *handler = static_cast<CallbackHandler*>( data );
-
- SyncMappingUpdate mapping( update, handler->engine()->mEngine );
-
- TQApplication::postEvent( handler, new MappingEvent( mapping ) );
-}
-
-void CallbackHandler::engine_callback( OSyncEngine*, OSyncEngineUpdate *update, void *data )
-{
- SyncEngineUpdate engine( update );
-
- CallbackHandler *handler = static_cast<CallbackHandler*>( data );
-
- TQApplication::postEvent( handler, new EngineEvent( engine ) );
-}
-
-void CallbackHandler::member_callback( OSyncMemberUpdate *update, void *data )
-{
- SyncMemberUpdate member( update );
-
- CallbackHandler *handler = static_cast<CallbackHandler*>( data );
-
- TQApplication::postEvent( handler, new MemberEvent( member ) );
-}
-
-#include "callbackhandler.moc"
diff --git a/kitchensync/libqopensync/callbackhandler.h b/kitchensync/libqopensync/callbackhandler.h
deleted file mode 100644
index 703e81fb..00000000
--- a/kitchensync/libqopensync/callbackhandler.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef TQSYNC_CALLBACKHANDLER_H
-#define TQSYNC_CALLBACKHANDLER_H
-
-#include <libqopensync/syncmapping.h>
-#include <libqopensync/syncupdates.h>
-
-#include <tqobject.h>
-
-class OSyncEngine;
-class OSyncMapping;
-class OSyncChangeUpdate;
-class OSyncMappingUpdate;
-class OSyncEngineUpdate;
-class OSyncMemberUpdate;
-
-class TQCustomEvent;
-
-namespace QSync {
-
-class Engine;
-
-class CallbackHandler : public TQObject
-{
- Q_OBJECT
-
-
- public:
- CallbackHandler();
- ~CallbackHandler();
-
- void setEngine( Engine *engine );
- Engine* engine() const;
-
- signals:
- void conflict( QSync::SyncMapping mapping );
- void change( const QSync::SyncChangeUpdate &update );
- void mapping( const QSync::SyncMappingUpdate &update );
- void engine( const QSync::SyncEngineUpdate &update );
- void member( const QSync::SyncMemberUpdate &update );
-
- protected:
- virtual void customEvent( TQCustomEvent *event );
-
- private:
- enum EventType {
- ConflictEventType = 4044,
- ChangeEventType,
- MappingEventType,
- EngineEventType,
- MemberEventType
- };
-
- class ConflictEvent;
- class ChangeEvent;
- class MappingEvent;
- class EngineEvent;
- class MemberEvent;
-
- static void conflict_callback( OSyncEngine*, OSyncMapping*, void* );
- static void change_callback( OSyncEngine*, OSyncChangeUpdate*, void* );
- static void mapping_callback( OSyncMappingUpdate*, void* );
- static void engine_callback( OSyncEngine*, OSyncEngineUpdate*, void* );
- static void member_callback( OSyncMemberUpdate*, void* );
-
- Engine* mEngine;
-};
-
-}
-
-#endif
diff --git a/kitchensync/libqopensync/conversion.cpp b/kitchensync/libqopensync/conversion.cpp
deleted file mode 100644
index 0be2fdb7..00000000
--- a/kitchensync/libqopensync/conversion.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2006 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <opensync/opensync.h>
-
-#include "conversion.h"
-
-using namespace QSync;
-
-Conversion::Conversion()
- : mEnvironment( 0 )
-{
-}
-
-Conversion::~Conversion()
-{
-}
-
-bool Conversion::isValid() const
-{
- return mEnvironment != 0;
-}
-
-TQStringList Conversion::objectTypes() const
-{
- Q_ASSERT( mEnvironment );
-
- OSyncFormatEnv *formatEnv = osync_conv_env_new( mEnvironment );
- Q_ASSERT( formatEnv );
-
- TQStringList types;
- for ( int i = 0; i < osync_conv_num_objtypes( formatEnv ); i++ ) {
- OSyncObjType *type = osync_conv_nth_objtype( formatEnv, i );
- types.append( TQString::fromUtf8( osync_objtype_get_name( type ) ) );
- }
-
- osync_conv_env_free( formatEnv );
-
- return types;
-}
diff --git a/kitchensync/libqopensync/conversion.h b/kitchensync/libqopensync/conversion.h
deleted file mode 100644
index 3e5204c9..00000000
--- a/kitchensync/libqopensync/conversion.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2006 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef TQSYNC_CONVERSION_H
-#define TQSYNC_CONVERSION_H
-
-#include <tqstringlist.h>
-
-class OSyncEnv;
-
-namespace QSync {
-
-class Conversion
-{
- friend class Environment;
-
- public:
- Conversion();
- ~Conversion();
-
- /**
- Returns whether the object is a valid conversion.
- */
- bool isValid() const;
-
- /**
- Returns the list of names of supported object types.
- */
- TQStringList objectTypes() const;
-
- private:
- OSyncEnv *mEnvironment;
-};
-
-}
-
-#endif
-
diff --git a/kitchensync/libqopensync/engine.cpp b/kitchensync/libqopensync/engine.cpp
deleted file mode 100644
index 6d48c72f..00000000
--- a/kitchensync/libqopensync/engine.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <opensync/opensync.h>
-#include <osengine/engine.h>
-
-#include "engine.h"
-
-using namespace QSync;
-
-Engine::Engine( const Group &group )
-{
- OSyncError *error = 0;
- mEngine = osengine_new( group.mGroup, &error );
-}
-
-Engine::~Engine()
-{
- osengine_free( mEngine );
- mEngine = 0;
-}
-
-Result Engine::initialize()
-{
- OSyncError *error = 0;
- if ( !osengine_init( mEngine, &error ) )
- return Result( &error );
- else
- return Result();
-}
-
-void Engine::finalize()
-{
- osengine_finalize( mEngine );
-}
-
-Result Engine::synchronize()
-{
- OSyncError *error = 0;
- if ( !osengine_synchronize( mEngine, &error ) )
- return Result( &error );
- else
- return Result();
-}
-
-void Engine::abort()
-{
- osengine_abort( mEngine );
-}
diff --git a/kitchensync/libqopensync/engine.h b/kitchensync/libqopensync/engine.h
deleted file mode 100644
index e014d3f4..00000000
--- a/kitchensync/libqopensync/engine.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef TQSYNC_ENGINE_H
-#define TQSYNC_ENGINE_H
-
-#include <libqopensync/group.h>
-
-class OSyncEngine;
-
-namespace QSync {
-
-class Engine
-{
- friend class CallbackHandler;
-
- public:
- /**
- Constructs an engine .
- */
- Engine( const Group &group );
-
- /**
- Destroys the engine.
- */
- ~Engine();
-
- /**
- Initializes the engine.
- */
- Result initialize();
-
- /**
- Finalizes the engine.
- */
- void finalize();
-
- /**
- Starts the synchronization process.
- */
- Result synchronize();
-
- /**
- Stops the synchronization process.
- */
- void abort();
-
- private:
- OSyncEngine *mEngine;
-};
-
-}
-
-#endif
diff --git a/kitchensync/libqopensync/environment.cpp b/kitchensync/libqopensync/environment.cpp
deleted file mode 100644
index f0d91808..00000000
--- a/kitchensync/libqopensync/environment.cpp
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include "environment.h"
-
-#include <opensync/opensync.h>
-
-using namespace QSync;
-
-Environment::Environment()
-{
- mEnvironment = osync_env_new();
-}
-
-Environment::~Environment()
-{
- osync_env_free( mEnvironment );
-}
-
-Environment::GroupIterator Environment::groupBegin()
-{
- GroupIterator it( this );
- it.mPos = 0;
-
- return it;
-}
-
-Environment::GroupIterator Environment::groupEnd()
-{
- GroupIterator it( this );
- it.mPos = groupCount();
-
- return it;
-}
-
-Environment::PluginIterator Environment::pluginBegin()
-{
- PluginIterator it( this );
- it.mPos = 0;
-
- return it;
-}
-
-Environment::PluginIterator Environment::pluginEnd()
-{
- PluginIterator it( this );
- it.mPos = pluginCount();
-
- return it;
-}
-
-Result Environment::initialize()
-{
- OSyncError *error = 0;
- if ( !osync_env_initialize( mEnvironment, &error ) )
- return Result( &error );
- else
- return Result();
-}
-
-Result Environment::finalize()
-{
- OSyncError *error = 0;
- if ( !osync_env_finalize( mEnvironment, &error ) )
- return Result( &error);
- else
- return Result();
-}
-
-int Environment::groupCount() const
-{
- return osync_env_num_groups( mEnvironment );
-}
-
-Group Environment::groupAt( int pos ) const
-{
- Group group;
-
- if ( pos < 0 || pos >= groupCount() )
- return group;
-
- OSyncGroup *ogroup = osync_env_nth_group( mEnvironment, pos );
- group.mGroup = ogroup;
-
- return group;
-}
-
-Group Environment::groupByName( const TQString &name ) const
-{
- Group group;
-
- OSyncGroup *ogroup = osync_env_find_group( mEnvironment, name.latin1() );
- if ( ogroup )
- group.mGroup = ogroup;
-
- return group;
-}
-
-Group Environment::addGroup()
-{
- Group group;
-
- OSyncGroup *ogroup = osync_group_new( mEnvironment );
- if ( ogroup )
- group.mGroup = ogroup;
-
- return group;
-}
-
-Result Environment::removeGroup( const Group &group )
-{
- OSyncError *error = 0;
- if ( !osync_group_delete( group.mGroup, &error ) )
- return Result( &error );
- else
- return Result();
-}
-
-int Environment::pluginCount() const
-{
- return osync_env_num_plugins( mEnvironment );
-}
-
-Plugin Environment::pluginAt( int pos ) const
-{
- Plugin plugin;
-
- if ( pos < 0 || pos >= pluginCount() )
- return plugin;
-
- OSyncPlugin *oplugin = osync_env_nth_plugin( mEnvironment, pos );
- plugin.mPlugin = oplugin;
-
- return plugin;
-}
-
-Plugin Environment::pluginByName( const TQString &name ) const
-{
- Plugin plugin;
-
- OSyncPlugin *oplugin = osync_env_find_plugin( mEnvironment, name.latin1() );
- if ( oplugin )
- plugin.mPlugin = oplugin;
-
- return plugin;
-}
-
-Conversion Environment::conversion() const
-{
- Conversion conversion;
- conversion.mEnvironment = mEnvironment;
-
- return conversion;
-}
diff --git a/kitchensync/libqopensync/environment.h b/kitchensync/libqopensync/environment.h
deleted file mode 100644
index 469ffd97..00000000
--- a/kitchensync/libqopensync/environment.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef OSYNC_ENVIRONMENT_H
-#define OSYNC_ENVIRONMENT_H
-
-#include <tqstring.h>
-
-#include <libqopensync/group.h>
-#include <libqopensync/plugin.h>
-#include <libqopensync/result.h>
-#include <libqopensync/conversion.h>
-
-struct OSyncEnv;
-
-namespace QSync {
-
-class Environment
-{
- public:
- Environment();
- ~Environment();
-
- class GroupIterator
- {
- friend class Environment;
-
- public:
- GroupIterator( Environment *environment )
- : mEnvironment( environment ), mPos( -1 )
- {
- }
-
- GroupIterator( const GroupIterator &it )
- {
- mEnvironment = it.mEnvironment;
- mPos = it.mPos;
- }
-
- Group operator*()
- {
- return mEnvironment->groupAt( mPos );
- }
-
- GroupIterator &operator++() { mPos++; return *this; }
- GroupIterator &operator++( int ) { mPos++; return *this; }
- GroupIterator &operator--() { mPos--; return *this; }
- GroupIterator &operator--( int ) { mPos--; return *this; }
- bool operator==( const GroupIterator &it ) { return mEnvironment == it.mEnvironment && mPos == it.mPos; }
- bool operator!=( const GroupIterator &it ) { return mEnvironment == it.mEnvironment && mPos != it.mPos; }
-
- private:
- Environment *mEnvironment;
- int mPos;
- };
-
- class PluginIterator
- {
- friend class Environment;
-
- public:
- PluginIterator( Environment *environment )
- : mEnvironment( environment ), mPos( -1 )
- {
- }
-
- PluginIterator( const PluginIterator &it )
- {
- mEnvironment = it.mEnvironment;
- mPos = it.mPos;
- }
-
- Plugin operator*()
- {
- return mEnvironment->pluginAt( mPos );
- }
-
- PluginIterator &operator++() { mPos++; return *this; }
- PluginIterator &operator++( int ) { mPos++; return *this; }
- PluginIterator &operator--() { mPos--; return *this; }
- PluginIterator &operator--( int ) { mPos--; return *this; }
- bool operator==( const PluginIterator &it ) { return mEnvironment == it.mEnvironment && mPos == it.mPos; }
- bool operator!=( const PluginIterator &it ) { return mEnvironment == it.mEnvironment && mPos != it.mPos; }
-
- private:
- Environment *mEnvironment;
- int mPos;
- };
-
- /**
- Returns an iterator pointing to the first item in the group list.
- This iterator equals groupEnd() if the group list is empty.
- */
- GroupIterator groupBegin();
-
- /**
- Returns an iterator pointing past the last item in the group list.
- This iterator equals groupBegin() if the group list is empty.
- */
- GroupIterator groupEnd();
-
- /**
- Returns an iterator pointing to the first item in the plugin list.
- This iterator equals pluginEnd() if the group list is empty.
- */
- PluginIterator pluginBegin();
-
- /**
- Returns an iterator pointing past the last item in the plugin list.
- This iterator equals pluginBegin() if the plugin list is empty.
- */
- PluginIterator pluginEnd();
-
- /**
- Initializes the environment ( e.g. loads the groups and plugins ).
- Has to be called before the groups or plugins can be accessed.
- */
- Result initialize();
-
- /**
- Finalizes the environment ( e.g. unloads the groups and plugins ).
- Should be the last call before the object is deleted.
- */
- Result finalize();
-
- /**
- Returns the number of groups.
- */
- int groupCount() const;
-
- /**
- Returns the group at position @param pos.
- */
- Group groupAt( int pos ) const;
-
- /**
- Returns a group by name or an invalid group when the group with this
- name doesn't exists.
- */
- Group groupByName( const TQString &name ) const;
-
- /**
- Adds a new group to the environment.
-
- @returns the new group.
- */
- Group addGroup();
-
- /**
- Removes a group from the environment.
- */
- Result removeGroup( const Group &group );
-
- /**
- Returns the number of plugins.
- */
- int pluginCount() const;
-
- /**
- Returns the plugin at position @param pos.
- */
- Plugin pluginAt( int pos ) const;
-
- /**
- Returns a plugin by name or an invalid plugin when the plugin with this
- name doesn't exists.
- */
- Plugin pluginByName( const TQString &name ) const;
-
- /**
- Returns the conversion object of this environment.
- */
- Conversion conversion() const;
-
- private:
- OSyncEnv *mEnvironment;
-};
-
-}
-
-#endif
diff --git a/kitchensync/libqopensync/filter.cpp b/kitchensync/libqopensync/filter.cpp
deleted file mode 100644
index dc5fe2ee..00000000
--- a/kitchensync/libqopensync/filter.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <opensync/opensync.h>
-
-#include "filter.h"
-
-using namespace QSync;
-
-Filter::Filter()
- : mFilter( 0 )
-{
-}
-
-Filter::~Filter()
-{
-}
-
-bool Filter::isValid() const
-{
- return (mFilter != 0);
-}
-
-void Filter::setConfiguration( const TQString &configuration )
-{
- Q_ASSERT( mFilter );
-
- osync_filter_set_config( mFilter, (const char*)configuration.utf8() );
-}
-
-TQString Filter::configuration() const
-{
- Q_ASSERT( mFilter );
-
- return TQString::fromUtf8( osync_filter_get_config( mFilter ) );
-}
-
diff --git a/kitchensync/libqopensync/filter.h b/kitchensync/libqopensync/filter.h
deleted file mode 100644
index 94d419a9..00000000
--- a/kitchensync/libqopensync/filter.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef TQSYNC_FILTER_H
-#define TQSYNC_FILTER_H
-
-#include <tqstring.h>
-
-class OSyncFilter;
-
-namespace QSync {
-
-class Filter
-{
- friend class Group;
-
- public:
- Filter();
- ~Filter();
-
- /**
- Returns whether the object is a valid filter.
- */
- bool isValid() const;
-
- /**
- Sets the configuration string of this filter. The format of
- string is filter specific.
- */
- void setConfiguration( const TQString &configuration );
-
- /**
- Returns the configuration string of this filter.
- */
- TQString configuration() const;
-
- bool operator==( const Filter &filter ) const { return mFilter == filter.mFilter; }
-
- private:
- OSyncFilter *mFilter;
-};
-
-}
-
-#endif
-
diff --git a/kitchensync/libqopensync/group.cpp b/kitchensync/libqopensync/group.cpp
deleted file mode 100644
index 85f6384d..00000000
--- a/kitchensync/libqopensync/group.cpp
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-/** hack includes **/
-#include <tqdom.h>
-#include <tqfile.h>
-/** hack includes **/
-
-#include <opensync/opensync.h>
-
-#include "conversion.h"
-#include "group.h"
-
-using namespace QSync;
-
-/**
- This class is a quick hack for OpenSync 0.19 and 0.20 because
- the engine doesn't stores the filter settings itself when calling
- osync_group_set_objtype_enabled(), so we have to store it for every
- group in a separated config file. This class encapsulates it.
- */
-GroupConfig::GroupConfig()
- : mGroup( 0 )
-{
-}
-
-TQStringList GroupConfig::activeObjectTypes() const
-{
- Q_ASSERT( mGroup );
-
- const TQString fileName = TQString( "%1/filter.conf" ).arg( osync_group_get_configdir( mGroup ) );
-
- TQFile file( fileName );
- if ( !file.open( IO_ReadOnly ) )
- return TQStringList();
-
- TQDomDocument document;
-
- TQString message;
- if ( !document.setContent( &file, &message ) ) {
- tqDebug( "Error on loading %s: %s", fileName.latin1(), message.latin1() );
- return TQStringList();
- }
- file.close();
-
- TQStringList objectTypes;
-
- TQDomElement element = document.documentElement();
- TQDomNode node = element.firstChild();
- while ( !node.isNull() ) {
- TQDomElement childElement = node.toElement();
- if ( !childElement.isNull() )
- objectTypes.append( childElement.tagName() );
-
- node = node.nextSibling();
- }
-
- return objectTypes;
-}
-
-void GroupConfig::setActiveObjectTypes( const TQStringList &objectTypes )
-{
- Q_ASSERT( mGroup );
-
- TQDomDocument document( "Filter" );
- document.appendChild( document.createProcessingInstruction(
- "xml", "version=\"1.0\" encoding=\"UTF-8\"" ) );
-
- TQDomElement element = document.createElement( "filter" );
- document.appendChild( element );
-
- for ( uint i = 0; i < objectTypes.count(); ++i ) {
- TQDomElement entry = document.createElement( objectTypes[ i ] );
- element.appendChild( entry );
- }
-
- const TQString fileName = TQString( "%1/filter.conf" ).arg( osync_group_get_configdir( mGroup ) );
-
- TQFile file( fileName );
- if ( !file.open( IO_WriteOnly ) )
- return;
-
- TQTextStream s( &file );
- s.setEncoding( TQTextStream::UnicodeUTF8 );
- s << document.toString();
- file.close();
-}
-
-
-Group::Group()
- : mGroup( 0 )
-{
-}
-
-Group::~Group()
-{
-}
-
-bool Group::isValid() const
-{
- return ( mGroup != 0 );
-}
-
-Group::Iterator Group::begin()
-{
- Iterator it( this );
- it.mPos = 0;
-
- return it;
-}
-
-Group::Iterator Group::end()
-{
- Iterator it( this );
- it.mPos = memberCount();
-
- return it;
-}
-
-void Group::setName( const TQString &name )
-{
- Q_ASSERT( mGroup );
-
- osync_group_set_name( mGroup, name.latin1() );
-}
-
-TQString Group::name() const
-{
- Q_ASSERT( mGroup );
-
- return TQString::fromLatin1( osync_group_get_name( mGroup ) );
-}
-
-void Group::setLastSynchronization( const TQDateTime &dateTime )
-{
- Q_ASSERT( mGroup );
-
- if ( dateTime.isValid() )
- osync_group_set_last_synchronization( mGroup, dateTime.toTime_t() );
-}
-
-TQDateTime Group::lastSynchronization() const
-{
- Q_ASSERT( mGroup );
-
- TQDateTime dateTime;
- time_t time = osync_group_get_last_synchronization( mGroup );
- if ( time != 0 )
- dateTime.setTime_t( time );
-
- return dateTime;
-}
-
-Group::LockType Group::lock()
-{
- Q_ASSERT( mGroup );
-
- OSyncLockState state = osync_group_lock( mGroup );
- switch ( state ) {
- default:
- case OSYNC_LOCK_OK:
- return LockOk;
- break;
- case OSYNC_LOCKED:
- return Locked;
- break;
- case OSYNC_LOCK_STALE:
- return LockStale;
- break;
- }
-}
-
-void Group::unlock( bool removeFile )
-{
- Q_ASSERT( mGroup );
-
- osync_group_unlock( mGroup, removeFile );
-}
-
-Member Group::addMember()
-{
- Q_ASSERT( mGroup );
-
- OSyncMember *omember = osync_member_new( mGroup );
-
- Member member;
- member.mMember = omember;
-
- save();
-
- return member;
-}
-
-void Group::removeMember( const Member &member )
-{
- Q_ASSERT( mGroup );
-
- osync_group_remove_member( mGroup, member.mMember );
-}
-
-int Group::memberCount() const
-{
- Q_ASSERT( mGroup );
-
- return osync_group_num_members( mGroup );
-}
-
-Member Group::memberAt( int pos ) const
-{
- Q_ASSERT( mGroup );
-
- Member member;
-
- if ( pos < 0 || pos >= memberCount() )
- return member;
-
- member.mMember = osync_group_nth_member( mGroup, pos );
-
- return member;
-}
-
-int Group::filterCount() const
-{
- Q_ASSERT( mGroup );
-
- return osync_group_num_filters( mGroup );
-}
-
-Filter Group::filterAt( int pos )
-{
- Q_ASSERT( mGroup );
-
- Filter filter;
-
- if ( pos < 0 || pos >= filterCount() )
- return filter;
-
- filter.mFilter = osync_group_nth_filter( mGroup, pos );
-
- return filter;
-}
-
-Result Group::save()
-{
- Q_ASSERT( mGroup );
-
- OSyncError *error = 0;
- if ( !osync_group_save( mGroup, &error ) )
- return Result( &error );
- else
- return Result();
-}
-
-void Group::setObjectTypeEnabled( const TQString &objectType, bool enabled )
-{
- Q_ASSERT( mGroup );
-
- osync_group_set_objtype_enabled( mGroup, objectType.utf8(), enabled );
-}
-
-bool Group::isObjectTypeEnabled( const TQString &objectType ) const
-{
- return osync_group_objtype_enabled( mGroup, objectType.utf8() );
-}
-
-GroupConfig Group::config() const
-{
- Q_ASSERT( mGroup );
-
- GroupConfig config;
- config.mGroup = mGroup;
-
- return config;
-}
diff --git a/kitchensync/libqopensync/group.h b/kitchensync/libqopensync/group.h
deleted file mode 100644
index fe9ceaeb..00000000
--- a/kitchensync/libqopensync/group.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef TQSYNC_GROUP_H
-#define TQSYNC_GROUP_H
-
-#include <tqdatetime.h>
-#include <tqstringlist.h>
-
-#include <libqopensync/filter.h>
-#include <libqopensync/member.h>
-
-class OSyncGroup;
-
-namespace QSync {
-
-/**
- @internal
- */
-class GroupConfig
-{
- friend class Group;
-
- public:
- GroupConfig();
-
- TQStringList activeObjectTypes() const;
- void setActiveObjectTypes( const TQStringList &objectTypes );
-
- private:
- OSyncGroup *mGroup;
-};
-
-
-class Group
-{
- friend class Engine;
- friend class Environment;
-
- public:
- enum LockType
- {
- LockOk,
- Locked,
- LockStale
- };
-
- Group();
- ~Group();
-
- /**
- Returns whether the object is a valid group.
- */
- bool isValid() const;
-
- class Iterator
- {
- friend class Group;
-
- public:
- Iterator( Group *group )
- : mGroup( group ), mPos( -1 )
- {
- }
-
- Iterator( const Iterator &it )
- {
- mGroup = it.mGroup;
- mPos = it.mPos;
- }
-
- Member operator*()
- {
- return mGroup->memberAt( mPos );
- }
-
- Iterator &operator++() { mPos++; return *this; }
- Iterator &operator++( int ) { mPos++; return *this; }
- Iterator &operator--() { mPos--; return *this; }
- Iterator &operator--( int ) { mPos--; return *this; }
- bool operator==( const Iterator &it ) { return mGroup == it.mGroup && mPos == it.mPos; }
- bool operator!=( const Iterator &it ) { return mGroup == it.mGroup && mPos != it.mPos; }
-
- private:
- Group *mGroup;
- int mPos;
- };
-
- /**
- Returns an iterator pointing to the first item in the member list.
- This iterator equals end() if the member list is empty.
- */
- Iterator begin();
-
- /**
- Returns an iterator pointing past the last item in the member list.
- This iterator equals begin() if the member list is empty.
- */
- Iterator end();
-
- /**
- Sets the name of the group.
- */
- void setName( const TQString &name );
-
- /**
- Returns the name of the group.
- */
- TQString name() const;
-
- /**
- Sets the time of the last successfull synchronization.
- */
- void setLastSynchronization( const TQDateTime &dateTime );
-
- /**
- Returns the time of the last successfull synchronization.
- */
- TQDateTime lastSynchronization() const;
-
- /**
- Locks the group.
-
- @returns The the result of the locking request.
- */
- LockType lock();
-
- /**
- Unlocks the group.
-
- @param removeFile Whether the lock file shall be removed.
- */
- void unlock( bool removeFile = true );
-
- /**
- Adds a new member to the group.
-
- @returns the new member.
- */
- Member addMember();
-
- /**
- Removes a member from the group.
- */
- void removeMember( const Member &member );
-
- /**
- Returns the number of members.
- */
- int memberCount() const;
-
- /**
- Returns the member at position @param pos.
- */
- Member memberAt( int pos ) const;
-
- /**
- Returns the number of filters.
- */
- int filterCount() const;
-
- /**
- Returns the filter at position @param pos.
- */
- Filter filterAt( int pos );
-
- /**
- Set, if the object type with given name is enabled for synchronisation for
- this group.
- */
- void setObjectTypeEnabled( const TQString &objectType, bool enabled );
-
- /**
- Returns whether the object type with given name is enabled for synchronisation for
- this group.
- */
- bool isObjectTypeEnabled( const TQString &objectType ) const;
-
- /**
- Saves the configuration to hard disc.
- */
- Result save();
-
- /**
- Returns the config object of this group.
-
- Note: This method is only available for OpenSync 0.19 and 0.20.
- */
- GroupConfig config() const;
-
- bool operator==( const Group &group ) const { return mGroup == group.mGroup; }
-
- private:
- OSyncGroup *mGroup;
-};
-
-}
-
-#endif
diff --git a/kitchensync/libqopensync/groupenv.cpp b/kitchensync/libqopensync/groupenv.cpp
deleted file mode 100644
index f392fd10..00000000
--- a/kitchensync/libqopensync/groupenv.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <opensync/opensync.h>
-#include <opensync/opensync-group.h>
-
-#include "group.h"
-#include "result.h"
-
-#include "groupenv.h"
-
-using namespace QSync;
-
-GroupEnv::GroupEnv()
-{
- OSyncError *error = 0;
- mGroupEnv = osync_group_env_new( &error );
-}
-
-GroupEnv::~GroupEnv()
-{
- osync_group_env_free( mGroupEnv );
-}
-
-Result GroupEnv::initialize()
-{
- Q_ASSERT( mGroupEnv );
-
- OSyncError *error = 0;
- if ( !osync_group_env_load_groups( mGroupEnv, NULL, &error ) )
- return Result( &error );
- else
- return Result();
-}
-
-void GroupEnv::finalize()
-{
-}
-
-int GroupEnv::groupCount() const
-{
- Q_ASSERT( mGroupEnv );
-
- return osync_group_env_num_groups( mGroupEnv );
-}
-
-Group GroupEnv::groupAt( int pos ) const
-{
- Q_ASSERT( mGroupEnv );
-
- Group group;
-
- if ( pos < 0 || pos >= groupCount() )
- return group;
-
- OSyncGroup *ogroup = osync_group_env_nth_group( mGroupEnv, pos );
- group.mGroup = ogroup;
-
- return group;
-}
-
-Group GroupEnv::groupByName( const TQString &name ) const
-{
- Q_ASSERT( mGroupEnv );
-
- Group group;
-
- OSyncGroup *ogroup = osync_group_env_find_group( mGroupEnv, name.latin1() );
- if ( ogroup )
- group.mGroup = ogroup;
-
- return group;
-}
-
-Group GroupEnv::addGroup( const TQString &name )
-{
- Q_ASSERT( mGroupEnv );
-
- Group group;
- OSyncError *error = 0;
-
- OSyncGroup *ogroup = osync_group_new( &error );
- if ( ogroup )
- group.mGroup = ogroup;
-
- group.setName( name );
-
- if ( !osync_group_env_add_group( mGroupEnv, ogroup, &error ) ) {
- Result res( &error );
- tqDebug( "Error on adding group: %s", res.message().latin1() );
- }
-
- return group;
-}
-
-void GroupEnv::removeGroup( const Group &group )
-{
- Q_ASSERT( mGroupEnv );
-
- group.cleanup();
-
- osync_group_env_remove_group( mGroupEnv, group.mGroup );
-}
diff --git a/kitchensync/libqopensync/groupenv.h b/kitchensync/libqopensync/groupenv.h
deleted file mode 100644
index 80179826..00000000
--- a/kitchensync/libqopensync/groupenv.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef OSYNC_GROUPENV_H
-#define OSYNC_GROUPENV_H
-
-#include <tqstring.h>
-
-struct OSyncGroupEnv;
-
-namespace QSync {
-
-class Group;
-class Result;
-
-class GroupEnv
-{
- public:
- GroupEnv();
- ~GroupEnv();
-
- /**
- Initializes the environment ( e.g. loads the groups and plugins ).
- Has to be called before the groups or plugins can be accessed.
- */
- Result initialize();
-
- /**
- Finalizes the environment ( e.g. unloads the groups and plugins ).
- Should be the last call before the object is deleted.
- */
- void finalize();
-
- /**
- Returns the number of groups.
- */
- int groupCount() const;
-
- /**
- Returns the group at position @param pos.
- */
- Group groupAt( int pos ) const;
-
- /**
- Returns a group by name or an invalid group when the group with this
- name doesn't exists.
- */
- Group groupByName( const TQString &name ) const;
-
- /**
- Adds a new group to the environment.
-
- @returns the new group.
- */
- Group addGroup( const TQString &name );
-
- /**
- Removes a group from the environment.
- */
- void removeGroup( const Group &group );
-
- private:
- OSyncGroupEnv *mGroupEnv;
-};
-
-}
-
-#endif
diff --git a/kitchensync/libqopensync/member.cpp b/kitchensync/libqopensync/member.cpp
deleted file mode 100644
index b672dd0f..00000000
--- a/kitchensync/libqopensync/member.cpp
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <opensync/opensync.h>
-#include <stdlib.h>
-
-#include "member.h"
-
-using namespace QSync;
-
-Member::Member()
- : mMember( 0 )
-{
-}
-
-Member::~Member()
-{
-}
-
-bool Member::isValid() const
-{
- OSyncError *error = 0;
-
- if ( !mMember )
- return false;
-
- if ( !osync_member_instance_plugin( mMember, pluginName().utf8(), &error ) ) {
- tqDebug( "Plugin %s is not valid: %s", pluginName().latin1(), osync_error_print( &error ) );
- osync_error_free( &error );
- return false;
- }
-
- return true;
-}
-
-TQString Member::configurationDirectory() const
-{
- Q_ASSERT( mMember );
-
- return TQString::fromLatin1( osync_member_get_configdir( mMember ) );
-}
-
-TQString Member::pluginName() const
-{
- Q_ASSERT( mMember );
-
- return TQString::fromLatin1( osync_member_get_pluginname( mMember ) );
-}
-
-Plugin Member::plugin() const
-{
- Q_ASSERT( mMember );
-
- Plugin plugin;
-
- OSyncPlugin *oplugin = osync_member_get_plugin( mMember );
- if ( oplugin )
- plugin.mPlugin = oplugin;
-
- return plugin;
-}
-
-int Member::id() const
-{
- Q_ASSERT( mMember );
-
- return osync_member_get_id( mMember );
-}
-
-void Member::setName( const TQString &name )
-{
- Q_ASSERT( mMember );
-
- osync_member_set_name( mMember, (const char*)name.utf8() );
-}
-
-TQString Member::name() const
-{
- Q_ASSERT( mMember );
-
- return TQString::fromUtf8( osync_member_get_name( mMember ) );
-}
-
-void Member::setConfiguration( const TQByteArray &configurationData )
-{
- Q_ASSERT( mMember );
-
- osync_member_set_config( mMember, configurationData.data(), configurationData.size() );
-}
-
-Result Member::configuration( TQByteArray &configurationData, bool useDefault )
-{
- Q_ASSERT( mMember );
-
- char *data;
- int size;
-
- OSyncError *error = 0;
- osync_bool ok = false;
- if ( useDefault )
- ok = osync_member_get_config_or_default( mMember, &data, &size, &error );
- else
- ok = osync_member_get_config( mMember, &data, &size, &error );
-
- if ( !ok ) {
- return Result( &error );
- } else {
- configurationData.resize( size );
- memcpy( configurationData.data(), data, size );
-
- return Result();
- }
-}
-
-Result Member::save()
-{
- Q_ASSERT( mMember );
-
- OSyncError *error = 0;
- if ( !osync_member_save( mMember, &error ) )
- return Result( &error );
- else
- return Result();
-}
-
-Result Member::instance( const Plugin &plugin )
-{
- OSyncError *error = 0;
- if ( !osync_member_instance_plugin( mMember, plugin.name().utf8(), &error ) )
- return Result( &error );
- else
- return Result();
-}
-
-bool Member::operator==( const Member &member ) const
-{
- return mMember == member.mMember;
-}
-
-TQString Member::scanDevices( const TQString &query )
-{
- Q_ASSERT( mMember );
-
- OSyncError *error = 0;
- char *data = (char*)osync_member_call_plugin( mMember, "scan_devices", const_cast<char*>( query.utf8().data() ), &error );
- if ( error != 0 ) {
- osync_error_free( &error );
- return TQString();
- } else {
- TQString xml = TQString::fromUtf8( data );
- free( data );
- return xml;
- }
-}
-
-bool Member::testConnection( const TQString &configuration )
-{
- Q_ASSERT( mMember );
-
- OSyncError *error = 0;
- int *result = (int*)osync_member_call_plugin( mMember, "test_connection", const_cast<char*>( configuration.utf8().data() ), &error );
- if ( error != 0 ) {
- osync_error_free( &error );
- return false;
- } else {
- bool value = ( *result == 1 ? true : false );
- free( result );
- return value;
- }
-}
diff --git a/kitchensync/libqopensync/member.h b/kitchensync/libqopensync/member.h
deleted file mode 100644
index 6fa3ee73..00000000
--- a/kitchensync/libqopensync/member.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef TQSYNC_MEMBER_H
-#define TQSYNC_MEMBER_H
-
-#include <libqopensync/plugin.h>
-#include <libqopensync/result.h>
-#include <libqopensync/plugin.h>
-
-class OSyncMember;
-
-namespace QSync {
-
-class Member
-{
- friend class Group;
- friend class SyncChange;
- friend class SyncMemberUpdate;
-
- public:
- Member();
- ~Member();
-
- /**
- Returns whether the member object is valid.
- */
- bool isValid() const;
-
- /**
- Returns the configuration directory.
- */
- TQString configurationDirectory() const;
-
- /**
- Returns the name of the plugin, the member belongs to.
- */
- TQString pluginName() const;
-
- /**
- Returns the plugin, the member belongs to.
- */
- Plugin plugin() const;
-
- /**
- Returns the id of the plugin.
- */
- int id() const;
-
- /**
- Sets the name of this member.
- */
- void setName( const TQString &name );
-
- /**
- Returns the name of this member.
- */
- TQString name() const;
-
- /**
- Sets the configuration data as byte array. The developer has to decide the
- type of the data ( e.g. xml, plain text, binary ).
- */
- void setConfiguration( const TQByteArray &configurationData );
-
- /**
- Gets the configuration data as byte array. The developer has to decide the
- type of the data ( e.g. xml, plain text, binary ).
-
- @param useDefault If set to true, return default config, if no config
- exists. If set to false, return error when no config
- exists.
-
- @returns The result of this operation.
- */
- Result configuration( TQByteArray &configurationData,
- bool useDefault = true );
-
- /**
- Saves the changes to the configuration to hard disc.
- */
- Result save();
-
- /**
- Make this member an instance of the given plugin.
- */
- Result instance( const Plugin & );
-
- bool operator==( const Member& ) const;
-
- /**
- This method can be used to query the plugin for scanning devices.
- The @param query is a plugin specific xml document as well as
- the return value.
- */
- TQString scanDevices( const TQString &query );
-
- /**
- This method can be used to test whether the plugin can connect
- to the device with the given configuration.
- */
- bool testConnection( const TQString &configuration );
-
- private:
- OSyncMember *mMember;
-};
-
-}
-
-#endif
-
diff --git a/kitchensync/libqopensync/plugin.cpp b/kitchensync/libqopensync/plugin.cpp
deleted file mode 100644
index acd54447..00000000
--- a/kitchensync/libqopensync/plugin.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <opensync/opensync.h>
-
-#include "plugin.h"
-
-using namespace QSync;
-
-Plugin::Plugin()
- : mPlugin( 0 )
-{
-}
-
-Plugin::~Plugin()
-{
-}
-
-bool Plugin::isValid() const
-{
- return ( mPlugin != 0 );
-}
-
-TQString Plugin::name() const
-{
- Q_ASSERT( mPlugin );
-
- return TQString::fromLatin1( osync_plugin_get_name( mPlugin ) );
-}
-
-TQString Plugin::longName() const
-{
- Q_ASSERT( mPlugin );
-
- return TQString::fromLatin1( osync_plugin_get_longname( mPlugin ) );
-}
-
-TQString Plugin::description() const
-{
- Q_ASSERT( mPlugin );
-
- return TQString::fromLatin1( osync_plugin_get_description( mPlugin ) );
-}
-
diff --git a/kitchensync/libqopensync/plugin.h b/kitchensync/libqopensync/plugin.h
deleted file mode 100644
index 1c6c219e..00000000
--- a/kitchensync/libqopensync/plugin.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef TQSYNC_PLUGIN_H
-#define TQSYNC_PLUGIN_H
-
-#include <tqstring.h>
-
-class OSyncPlugin;
-
-namespace QSync {
-
-class Plugin
-{
- friend class Environment;
- friend class Member;
-
- public:
- Plugin();
- ~Plugin();
-
- /**
- Returns whether the object is a valid plugin.
- */
- bool isValid() const;
-
- /**
- Returns the name of the plugin.
- */
- TQString name() const;
-
- /**
- Returns the long name of the plugin.
- */
- TQString longName() const;
-
- /**
- Returns the description of the plugin.
- */
- TQString description() const;
-
- private:
- OSyncPlugin *mPlugin;
-};
-
-}
-
-#endif
-
diff --git a/kitchensync/libqopensync/pluginenv.cpp b/kitchensync/libqopensync/pluginenv.cpp
deleted file mode 100644
index 5efcb97b..00000000
--- a/kitchensync/libqopensync/pluginenv.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
- Copyright (c) 2007 Daniel Gollub <dgollub@suse.de>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <opensync/opensync.h>
-#include <opensync/opensync-plugin.h>
-
-#include "plugin.h"
-#include "result.h"
-
-#include "pluginenv.h"
-
-using namespace QSync;
-
-PluginEnv::PluginEnv()
-{
- OSyncError *error = 0;
- mPluginEnv = osync_plugin_env_new( &error );
-}
-
-PluginEnv::~PluginEnv()
-{
- osync_plugin_env_free( mPluginEnv );
-}
-
-Result PluginEnv::initialize()
-{
- OSyncError *error = 0;
- if ( !osync_plugin_env_load( mPluginEnv, NULL, &error ) )
- return Result( &error );
- else
- return Result();
-}
-
-Result PluginEnv::finalize()
-{
- osync_plugin_env_free( mPluginEnv );
- return Result();
-}
-
-int PluginEnv::pluginCount() const
-{
- return osync_plugin_env_num_plugins( mPluginEnv );
-}
-
-Plugin PluginEnv::pluginAt( int pos ) const
-{
- Plugin plugin;
-
- if ( pos < 0 || pos >= pluginCount() )
- return plugin;
-
- OSyncPlugin *oplugin = osync_plugin_env_nth_plugin( mPluginEnv, pos );
- plugin.mPlugin = oplugin;
-
- return plugin;
-}
-
-Plugin PluginEnv::pluginByName( const TQString &name ) const
-{
- Plugin plugin;
-
- OSyncPlugin *oplugin = osync_plugin_env_find_plugin( mPluginEnv, name.latin1() );
- if ( oplugin )
- plugin.mPlugin = oplugin;
-
- return plugin;
-}
-
-/*
-Conversion PluginEnv::conversion() const
-{
- Conversion conversion;
- conversion.mPluginEnv = mPluginEnv;
-
- return conversion;
-}
-*/
diff --git a/kitchensync/libqopensync/pluginenv.h b/kitchensync/libqopensync/pluginenv.h
deleted file mode 100644
index 2acc4e54..00000000
--- a/kitchensync/libqopensync/pluginenv.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
- Copyright (c) 2007 Daniel Gollub <dgollub@suse.de>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef OSYNC_PLUGINENV_H
-#define OSYNC_PLUGINENV_H
-
-#include <tqstring.h>
-
-struct OSyncPluginEnv;
-
-namespace QSync {
-
-class Plugin;
-class Result;
-
-class PluginEnv
-{
- public:
- PluginEnv();
- ~PluginEnv();
-
- /**
- Initializes the environment ( e.g. loads the groups and plugins ).
- Has to be called before the groups or plugins can be accessed.
- */
- Result initialize();
-
- /**
- Finalizes the environment ( e.g. unloads the groups and plugins ).
- Should be the last call before the object is deleted.
- */
- Result finalize();
-
- /**
- Returns the number of plugins.
- */
- int pluginCount() const;
-
- /**
- Returns the plugin at position @param pos.
- */
- Plugin pluginAt( int pos ) const;
-
- /**
- Returns a plugin by name or an invalid plugin when the plugin with this
- name doesn't exists.
- */
- Plugin pluginByName( const TQString &name ) const;
-
- /**
- Returns the conversion object of this environment.
- */
-// Conversion conversion() const;
-
- private:
- OSyncPluginEnv *mPluginEnv;
-};
-
-}
-
-#endif
diff --git a/kitchensync/libqopensync/result.cpp b/kitchensync/libqopensync/result.cpp
deleted file mode 100644
index d38c32a3..00000000
--- a/kitchensync/libqopensync/result.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include "result.h"
-
-#include <opensync/opensync.h>
-
-using namespace QSync;
-
-Result::Result()
- : mType( NoError )
-{
-}
-
-Result::Result( Type type )
- : mType( type )
-{
-}
-
-Result::Result( OSyncError **error, bool deleteError )
-{
- OSyncErrorType otype = osync_error_get_type( error );
- Type type;
-
- switch ( otype ) {
- case OSYNC_NO_ERROR:
- type = NoError;
- break;
- default:
- case OSYNC_ERROR_GENERIC:
- type = GenericError;
- break;
- case OSYNC_ERROR_IO_ERROR:
- type = IOError;
- break;
- case OSYNC_ERROR_NOT_SUPPORTED:
- type = NotSupported;
- break;
- case OSYNC_ERROR_TIMEOUT:
- type = Timeout;
- break;
- case OSYNC_ERROR_DISCONNECTED:
- type = Disconnected;
- break;
- case OSYNC_ERROR_FILE_NOT_FOUND:
- type = FileNotFound;
- break;
- case OSYNC_ERROR_EXISTS:
- type = Exists;
- break;
- case OSYNC_ERROR_CONVERT:
- type = Convert;
- break;
- case OSYNC_ERROR_MISCONFIGURATION:
- type = Misconfiguration;
- break;
- case OSYNC_ERROR_INITIALIZATION:
- type = Initialization;
- break;
- case OSYNC_ERROR_PARAMETER:
- type = Parameter;
- break;
- case OSYNC_ERROR_EXPECTED:
- type = Expected;
- break;
- case OSYNC_ERROR_NO_CONNECTION:
- type = NoConnection;
- break;
- case OSYNC_ERROR_TEMPORARY:
- type = Temporary;
- break;
- case OSYNC_ERROR_LOCKED:
- type = Locked;
- break;
- case OSYNC_ERROR_PLUGIN_NOT_FOUND:
- type = PluginNotFound;
- break;
- }
-
- mType = type;
- mName = TQString::fromUtf8( osync_error_get_name( error ) );
- mMessage = TQString::fromUtf8( osync_error_print( error ) );
-
- if ( deleteError )
- osync_error_free( error );
-}
-
-Result::~Result()
-{
-}
-
-void Result::setName( const TQString &name )
-{
- mName = name;
-}
-
-TQString Result::name() const
-{
- return mName;
-}
-
-void Result::setMessage( const TQString &message )
-{
- mMessage = message;
-}
-
-TQString Result::message() const
-{
- return mMessage;
-}
-
-void Result::setType( Type type )
-{
- mType = type;
-}
-
-Result::Type Result::type() const
-{
- return mType;
-}
-
-bool Result::isError() const
-{
- return mType != NoError;
-}
-
-Result::operator bool () const
-{
- return ( mType != NoError );
-}
-
diff --git a/kitchensync/libqopensync/result.h b/kitchensync/libqopensync/result.h
deleted file mode 100644
index 29d3dad8..00000000
--- a/kitchensync/libqopensync/result.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef TQSYNC_RESULT_H
-#define TQSYNC_RESULT_H
-
-#include <tqstring.h>
-
-struct OSyncError;
-
-namespace QSync {
-
-class Result
-{
- public:
- /**
- Result types.
- */
- enum Type {
- NoError,
- GenericError,
- IOError,
- NotSupported,
- Timeout,
- Disconnected,
- FileNotFound,
- Exists,
- Convert,
- Misconfiguration,
- Initialization,
- Parameter,
- Expected,
- NoConnection,
- Temporary,
- Locked,
- PluginNotFound
- };
-
- /**
- Constructs a NoError result.
- */
- Result();
-
- /**
- Constructs a result of the given type.
- */
- Result( Type type );
-
- /**
- Construct Result from OpenSync error object. Deletes the OpenSync error
- object.
- */
- Result( OSyncError **, bool deleteError = true );
-
- /**
- Destroys the result.
- */
- ~Result();
-
- /**
- Sets the name of the result.
- */
- void setName( const TQString &name );
-
- /**
- Returns the name of the result.
- */
- TQString name() const;
-
- /**
- Sets the message text of the result.
- */
- void setMessage( const TQString &message );
-
- /**
- Returns the message text of the result.
- */
- TQString message() const;
-
- /**
- Sets the type of the result.
- */
- void setType( Type type );
-
- /**
- Returns the type of the result.
- */
- Type type() const;
-
- /**
- Reimplemented boolean operator.
- */
- operator bool () const;
-
- /**
- Return true, if this Result is an error, return false otherwise.
- */
- bool isError() const;
-
- private:
- TQString mName;
- TQString mMessage;
- Type mType;
-};
-
-}
-
-#endif
diff --git a/kitchensync/libqopensync/syncchange.cpp b/kitchensync/libqopensync/syncchange.cpp
deleted file mode 100644
index 5dd72d7f..00000000
--- a/kitchensync/libqopensync/syncchange.cpp
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <opensync/file.h>
-#include <opensync/opensync.h>
-
-#include "syncchange.h"
-
-using namespace QSync;
-
-SyncChange::SyncChange()
-{
-}
-
-SyncChange::SyncChange( OSyncChange *change )
-{
- mSyncChange = change;
-}
-
-SyncChange::~SyncChange()
-{
-}
-
-bool SyncChange::isValid() const
-{
- return ( mSyncChange != 0 );
-}
-
-void SyncChange::setUid( const TQString &uid )
-{
- osync_change_set_uid( mSyncChange, uid.utf8() );
-}
-
-TQString SyncChange::uid() const
-{
- return TQString::fromUtf8( osync_change_get_uid( mSyncChange ) );
-}
-
-void SyncChange::setHash( const TQString &hash )
-{
- osync_change_set_hash( mSyncChange, hash.utf8() );
-}
-
-TQString SyncChange::hash() const
-{
- return TQString::fromUtf8( osync_change_get_hash( mSyncChange ) );
-}
-
-void SyncChange::setData( const TQString &data )
-{
- osync_change_set_data( mSyncChange, const_cast<char*>( data.utf8().data() ), data.utf8().size(), true );
-}
-
-TQString SyncChange::data() const
-{
- int size = osync_change_get_datasize( mSyncChange );
-
- TQString content;
- if ( objectFormatName() == "file" ) {
- fileFormat *format = (fileFormat*)osync_change_get_data( mSyncChange );
- if ( format )
- content = TQString::fromUtf8( format->data, format->size );
- } else
- content = TQString::fromUtf8( osync_change_get_data( mSyncChange ), size );
-
- return content;
-}
-
-bool SyncChange::hasData() const
-{
- return osync_change_has_data( mSyncChange );
-}
-
-TQString SyncChange::objectFormatName() const
-{
- OSyncObjFormat *format = osync_change_get_objformat( mSyncChange );
- Q_ASSERT( format );
-
- return TQString::fromUtf8( osync_objformat_get_name( format ) );
-}
-
-Member SyncChange::member() const
-{
- OSyncMember *omember = osync_change_get_member( mSyncChange );
-
- Member m;
- m.mMember = omember;
-
- return m;
-}
-
-void SyncChange::setChangeType( Type changeType )
-{
- OSyncChangeType ochangeType;
-
- switch ( changeType ) {
- case AddedChange:
- ochangeType = CHANGE_ADDED;
- break;
- case UnmodifiedChange:
- ochangeType = CHANGE_UNMODIFIED;
- break;
- case DeletedChange:
- ochangeType = CHANGE_DELETED;
- break;
- case ModifiedChange:
- ochangeType = CHANGE_MODIFIED;
- break;
- case UnknownChange:
- default:
- ochangeType = CHANGE_UNKNOWN;
- break;
- }
-
- osync_change_set_changetype( mSyncChange, ochangeType );
-}
-
-SyncChange::Type SyncChange::changeType() const
-{
- OSyncChangeType ochangeType = osync_change_get_changetype( mSyncChange );
-
- switch ( ochangeType ) {
- case CHANGE_ADDED:
- return AddedChange;
- break;
- case CHANGE_UNMODIFIED:
- return UnmodifiedChange;
- break;
- case CHANGE_DELETED:
- return DeletedChange;
- break;
- case CHANGE_MODIFIED:
- return ModifiedChange;
- break;
- case CHANGE_UNKNOWN:
- default:
- return UnknownChange;
- break;
- }
-}
-
diff --git a/kitchensync/libqopensync/syncchange.h b/kitchensync/libqopensync/syncchange.h
deleted file mode 100644
index 4b356dcf..00000000
--- a/kitchensync/libqopensync/syncchange.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef TQSYNC_SYNCCHANGE_H
-#define TQSYNC_SYNCCHANGE_H
-
-#include <libqopensync/member.h>
-
-class OSyncChange;
-
-namespace QSync {
-
-class SyncChange
-{
- friend class SyncMapping;
-
- public:
- enum Type
- {
- UnknownChange,
- AddedChange,
- UnmodifiedChange,
- DeletedChange,
- ModifiedChange
- };
-
- SyncChange();
- SyncChange( OSyncChange* );
- ~SyncChange();
-
- /**
- Returns whether it's a valid SyncChange.
- */
- bool isValid() const;
-
- /**
- Sets the uid of this change.
- */
- void setUid( const TQString &uid );
-
- /**
- Returns the uid of this change.
- */
- TQString uid() const;
-
- /**
- Sets the hash of this change.
- */
- void setHash( const TQString &hash );
-
- /**
- Returns the hash of this change.
- */
- TQString hash() const;
-
- /**
- Sets the data provided by the plugin.
- */
- void setData( const TQString &data );
-
- /**
- Returns the data provided by the plugin.
- */
- TQString data() const;
-
- /**
- Returns whether the change contains data.
- */
- bool hasData() const;
-
- /**
- Returns the object format name.
- */
- TQString objectFormatName() const;
-
- /**
- Returns the parent member of this change.
- */
- Member member() const;
-
- /**
- Sets the change type.
- */
- void setChangeType( Type changeType );
-
- /**
- Returns the change type.
- */
- Type changeType() const;
-
- private:
- OSyncChange *mSyncChange;
-};
-
-}
-
-#endif
-
diff --git a/kitchensync/libqopensync/syncmapping.cpp b/kitchensync/libqopensync/syncmapping.cpp
deleted file mode 100644
index 95939ab8..00000000
--- a/kitchensync/libqopensync/syncmapping.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <tqstring.h>
-#include <osengine/engine.h>
-
-#include "syncmapping.h"
-
-using namespace QSync;
-
-SyncMapping::SyncMapping()
- : mEngine( 0 ), mMapping( 0 )
-{
-}
-
-SyncMapping::SyncMapping( OSyncMapping *mapping, OSyncEngine *engine )
- : mEngine( engine ), mMapping( mapping )
-{
-}
-
-SyncMapping::~SyncMapping()
-{
-}
-
-bool SyncMapping::isValid() const
-{
- return ( mEngine != 0 && mMapping != 0 );
-}
-
-long long SyncMapping::id() const
-{
- Q_ASSERT( mMapping );
-
- return osengine_mapping_get_id( mMapping );
-}
-
-void SyncMapping::duplicate()
-{
- Q_ASSERT( mEngine );
- Q_ASSERT( mMapping );
-
- osengine_mapping_duplicate( mEngine, mMapping );
-}
-
-void SyncMapping::solve( const SyncChange &change )
-{
- Q_ASSERT( mEngine );
- Q_ASSERT( mMapping );
- Q_ASSERT( change.isValid() );
-
- osengine_mapping_solve( mEngine, mMapping, change.mSyncChange );
-}
-
-void SyncMapping::ignore()
-{
- Q_ASSERT( mEngine );
- Q_ASSERT( mMapping );
-
- //TODO: error should be returned as Result
- OSyncError *error = 0;
- osengine_mapping_ignore_conflict( mEngine, mMapping, &error );
-}
-
-int SyncMapping::changesCount() const
-{
- Q_ASSERT( mMapping );
-
- return osengine_mapping_num_changes( mMapping );
-}
-
-SyncChange SyncMapping::changeAt( int pos )
-{
- Q_ASSERT( mMapping );
-
- if ( pos < 0 || pos >= osengine_mapping_num_changes( mMapping ) )
- return SyncChange();
-
- OSyncChange *ochange = osengine_mapping_nth_change( mMapping, pos );
-
- return SyncChange( ochange );
-}
-
diff --git a/kitchensync/libqopensync/syncmapping.h b/kitchensync/libqopensync/syncmapping.h
deleted file mode 100644
index a9eee670..00000000
--- a/kitchensync/libqopensync/syncmapping.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef TQSYNC_SYNCMAPPING_H
-#define TQSYNC_SYNCMAPPING_H
-
-#include <libqopensync/syncchange.h>
-
-class OSyncEngine;
-class OSyncMapping;
-
-namespace QSync {
-
-class SyncMapping
-{
- friend class SyncMappingUpdate;
-
- public:
- SyncMapping();
- SyncMapping( OSyncMapping*, OSyncEngine* );
- ~SyncMapping();
-
- bool isValid() const;
-
- long long id() const;
-
- void duplicate();
- void solve( const SyncChange &change );
- void ignore();
-
- int changesCount() const;
- SyncChange changeAt( int pos );
-
- private:
- OSyncEngine *mEngine;
- OSyncMapping *mMapping;
-};
-
-}
-
-#endif
diff --git a/kitchensync/libqopensync/syncupdates.cpp b/kitchensync/libqopensync/syncupdates.cpp
deleted file mode 100644
index 653ccf7f..00000000
--- a/kitchensync/libqopensync/syncupdates.cpp
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <osengine/engine.h>
-
-#include "syncupdates.h"
-
-using namespace QSync;
-
-SyncMemberUpdate::SyncMemberUpdate()
-{
-}
-
-SyncMemberUpdate::SyncMemberUpdate( OSyncMemberUpdate *update )
-{
- switch ( update->type ) {
- case MEMBER_CONNECTED:
- mType = Connected;
- break;
- case MEMBER_SENT_CHANGES:
- mType = SentChanges;
- break;
- case MEMBER_COMMITTED_ALL:
- mType = CommittedAll;
- break;
- case MEMBER_DISCONNECTED:
- mType = Disconnected;
- break;
- case MEMBER_CONNECT_ERROR:
- mType = ConnectError;
- break;
- case MEMBER_GET_CHANGES_ERROR:
- mType = GetChangesError;
- break;
- case MEMBER_COMMITTED_ALL_ERROR:
- mType = CommittedAllError;
- break;
- case MEMBER_SYNC_DONE_ERROR:
- mType = SyncDoneError;
- break;
- case MEMBER_DISCONNECT_ERROR:
- mType = DisconnectedError;
- break;
- }
-
- if ( update->error )
- mResult = Result( &(update->error) );
-
- mMember.mMember = update->member;
-}
-
-SyncMemberUpdate::~SyncMemberUpdate()
-{
-}
-
-SyncMemberUpdate::Type SyncMemberUpdate::type() const
-{
- return mType;
-}
-
-Result SyncMemberUpdate::result() const
-{
- return mResult;
-}
-
-Member SyncMemberUpdate::member() const
-{
- return mMember;
-}
-
-
-SyncChangeUpdate::SyncChangeUpdate()
-{
-}
-
-SyncChangeUpdate::SyncChangeUpdate( OSyncChangeUpdate *update )
-{
- switch ( update->type ) {
- case CHANGE_RECEIVED:
- mType = Received;
- break;
- case CHANGE_RECEIVED_INFO:
- mType = ReceivedInfo;
- break;
- case CHANGE_SENT:
- mType = Sent;
- break;
- case CHANGE_WRITE_ERROR:
- mType = WriteError;
- break;
- case CHANGE_RECV_ERROR:
- mType = ReceiveError;
- break;
- }
-
- if ( update->error )
- mResult = Result( &(update->error) );
-
- mChange = SyncChange( update->change );
- mMemberId = update->member_id;
- mMappingId = update->mapping_id;
-}
-
-SyncChangeUpdate::~SyncChangeUpdate()
-{
-}
-
-SyncChangeUpdate::Type SyncChangeUpdate::type() const
-{
- return mType;
-}
-
-Result SyncChangeUpdate::result() const
-{
- return mResult;
-}
-
-SyncChange SyncChangeUpdate::change() const
-{
- return mChange;
-}
-
-int SyncChangeUpdate::memberId() const
-{
- return mMemberId;
-}
-
-int SyncChangeUpdate::mappingId() const
-{
- return mMappingId;
-}
-
-SyncMappingUpdate::SyncMappingUpdate()
-{
-}
-
-SyncMappingUpdate::SyncMappingUpdate( OSyncMappingUpdate *update, OSyncEngine *engine )
-{
- switch ( update->type ) {
- case MAPPING_SOLVED:
- mType = Solved;
- break;
- case MAPPING_SYNCED:
- mType = Synced;
- break;
- case MAPPING_WRITE_ERROR:
- mType = WriteError;
- break;
- }
-
- if ( update->error )
- mResult = Result( &(update->error) );
-
- mWinner = update->winner;
- mMapping.mEngine = engine;
- mMapping.mMapping = update->mapping;
-}
-
-SyncMappingUpdate::~SyncMappingUpdate()
-{
-}
-
-SyncMappingUpdate::Type SyncMappingUpdate::type() const
-{
- return mType;
-}
-
-Result SyncMappingUpdate::result() const
-{
- return mResult;
-}
-
-long long int SyncMappingUpdate::winner() const
-{
- return mWinner;
-}
-
-SyncMapping SyncMappingUpdate::mapping() const
-{
- return mMapping;
-}
-
-SyncEngineUpdate::SyncEngineUpdate()
-{
-}
-
-SyncEngineUpdate::SyncEngineUpdate( OSyncEngineUpdate *update )
-{
- switch ( update->type ) {
- case ENG_ENDPHASE_CON:
- mType = EndPhaseConnected;
- break;
- case ENG_ENDPHASE_READ:
- mType = EndPhaseRead;
- break;
- case ENG_ENDPHASE_WRITE:
- mType = EndPhaseWrite;
- break;
- case ENG_ENDPHASE_DISCON:
- mType = EndPhaseDisconnected;
- break;
- case ENG_ERROR:
- mType = Error;
- break;
- case ENG_SYNC_SUCCESSFULL:
- mType = SyncSuccessfull;
- break;
- case ENG_PREV_UNCLEAN:
- mType = PrevUnclean;
- break;
- case ENG_END_CONFLICTS:
- mType = EndConflicts;
- break;
- }
-
- if ( update->error )
- mResult = Result( &(update->error) );
-}
-
-SyncEngineUpdate::~SyncEngineUpdate()
-{
-}
-
-SyncEngineUpdate::Type SyncEngineUpdate::type() const
-{
- return mType;
-}
-
-Result SyncEngineUpdate::result() const
-{
- return mResult;
-}
-
diff --git a/kitchensync/libqopensync/syncupdates.h b/kitchensync/libqopensync/syncupdates.h
deleted file mode 100644
index 29f2ce78..00000000
--- a/kitchensync/libqopensync/syncupdates.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- This file is part of libqopensync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef TQSYNC_SYNCUPDATES_H
-#define TQSYNC_SYNCUPDATES_H
-
-#include <libqopensync/member.h>
-#include <libqopensync/result.h>
-#include <libqopensync/syncchange.h>
-#include <libqopensync/syncmapping.h>
-
-class OSyncMemberUpdate;
-class OSyncChangeUpdate;
-class OSyncMappingUpdate;
-class OSyncEngineUpdate;
-class OSyncMemberUpdate;
-
-namespace QSync {
-
-class SyncMemberUpdate
-{
- friend class CallbackHandler;
-
- public:
- enum Type {
- Connected,
- SentChanges,
- CommittedAll,
- Disconnected,
- ConnectError,
- GetChangesError,
- CommittedAllError,
- SyncDoneError,
- DisconnectedError
- };
-
- SyncMemberUpdate();
- SyncMemberUpdate( OSyncMemberUpdate* );
- ~SyncMemberUpdate();
-
- Type type() const;
- Result result() const;
- Member member() const;
-
- private:
- Type mType;
- Result mResult;
- Member mMember;
-};
-
-class SyncChangeUpdate
-{
- friend class CallbackHandler;
-
- public:
- enum Type {
- Received = 1,
- ReceivedInfo,
- Sent,
- WriteError,
- ReceiveError
- };
-
- SyncChangeUpdate();
- SyncChangeUpdate( OSyncChangeUpdate* );
- ~SyncChangeUpdate();
-
- Type type() const;
- Result result() const;
- SyncChange change() const;
- int memberId() const;
- int mappingId() const;
-
- private:
- Type mType;
- Result mResult;
- SyncChange mChange;
- int mMemberId;
- int mMappingId;
-};
-
-class SyncMappingUpdate
-{
- friend class CallbackHandler;
-
- public:
- enum Type {
- Solved = 1,
- Synced,
- WriteError
- };
-
- SyncMappingUpdate();
- SyncMappingUpdate( OSyncMappingUpdate*, OSyncEngine* );
- ~SyncMappingUpdate();
-
- Type type() const;
- Result result() const;
- long long int winner() const;
- SyncMapping mapping() const;
-
- private:
- Type mType;
- Result mResult;
- long long int mWinner;
- SyncMapping mMapping;
-};
-
-class SyncEngineUpdate
-{
- friend class CallbackHandler;
-
- public:
- enum Type {
- EndPhaseConnected = 1,
- EndPhaseRead,
- EndPhaseWrite,
- EndPhaseDisconnected,
- Error,
- SyncSuccessfull,
- PrevUnclean,
- EndConflicts
- };
-
- SyncEngineUpdate();
- SyncEngineUpdate( OSyncEngineUpdate* );
- ~SyncEngineUpdate();
-
- Type type() const;
- Result result() const;
-
- private:
- Type mType;
- Result mResult;
-};
-
-}
-
-#endif
diff --git a/kitchensync/opensyncdbus/Makefile.am b/kitchensync/opensyncdbus/Makefile.am
deleted file mode 100644
index 9b1721f6..00000000
--- a/kitchensync/opensyncdbus/Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
-INCLUDES = -I/usr/local/include/dbus-1.0/qt3 $(all_includes) \
- -I$(top_srcdir)/kitchensync
-
-bin_PROGRAMS = opensyncdbus
-
-opensyncdbus_SOURCES = dbusclient.cpp
-opensyncdbus_LDADD = $(top_builddir)/kitchensync/libqopensync/libqopensync.la
-opensyncdbus_LDFLAGS = -ldbus-1-qt3 -ldbus-1 $(all_libraries) $(KDE_RPATH)
-
-METASOURCES = AUTO
diff --git a/kitchensync/opensyncdbus/README b/kitchensync/opensyncdbus/README
deleted file mode 100644
index e1aa1e3c..00000000
--- a/kitchensync/opensyncdbus/README
+++ /dev/null
@@ -1,5 +0,0 @@
-This directory contains opensyncdbus, a D-BUS frontend for OpenSync. It's a
-daemon which provides a D-BUS interface for controlling OpenSync.
-
-To compile opensyncdbus you need the Qt3 bindings for D-BUS.
-They are in SVN under branches/work/dbus-qt4-qt3backport/
diff --git a/kitchensync/opensyncdbus/dbusclient.cpp b/kitchensync/opensyncdbus/dbusclient.cpp
deleted file mode 100644
index 21d4f798..00000000
--- a/kitchensync/opensyncdbus/dbusclient.cpp
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- This file is part of KDE.
-
- Copyright (c) 2006 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "dbusclient.h"
-
-#include <libqopensync/environment.h>
-#include <libqopensync/group.h>
-
-#include <dbus/qdbuserror.h>
-#include <dbus/qdbusconnection.h>
-#include <dbus/qdbusmessage.h>
-#include <dbus/qdbusproxy.h>
-
-#include <tqapplication.h>
-#include <tqtimer.h>
-
-#include <iostream>
-
-OpenSyncService::OpenSyncService()
- : mConnection( 0 )
-{
-}
-
-void OpenSyncService::setConnection( TQDBusConnection *connection )
-{
- mConnection = connection;
- mConnection->registerObject( "/ABC", this );
-}
-
-bool OpenSyncService::handleMethodCall( const TQDBusMessage &message )
-{
- tqDebug( "OpenSyncService::handleMethodCall()" );
-
- tqDebug( " Interface: %s", message.interface().latin1() );
- tqDebug( " Path: %s", message.path().latin1() );
- tqDebug( " Member: %s", message.member().latin1() );
- tqDebug( " Sender: %s", message.sender().latin1() );
-
- if ( message.interface() != "org.opensync.SyncEngine" ) return false;
-
- TQDBusMessage reply;
-
- TQString function = message.member();
- if ( function == "hello" ) {
- reply = hello( message );
- } else if ( function == "randomNumber" ) {
- reply = randomNumber( message );
- } else if ( function == "listGroups" ) {
- reply = listGroups( message );
- } else if ( function == "listPlugins" ) {
- reply = listPlugins( message );
- } else if ( function == "showGroup" ) {
- reply = showGroup( message );
- } else if ( function == "showMember" ) {
- reply = showMember( message );
- } else {
- return false;
- }
-
- mConnection->send( reply );
-
- return true;
-}
-
-TQDBusMessage OpenSyncService::showMember( const TQDBusMessage &message )
-{
- if ( message.count() != 2 ) {
- return error( message, "arg_count",
- TQString("Wrong number of arguments. Expected 2, got %1.")
- .arg( message.count() ) );
- }
-
- TQString groupName = message[ 0 ].toString();
- if ( groupName.isEmpty() ) {
- return error( message, "missing_arg", "Missing argument: group name." );
- }
-
- bool ok;
- int memberId = message[ 1 ].toInt( &ok );
- if ( !ok ) {
- return error( message, "missing_arg", "Missing argument: member id." );
- }
-
- TQDBusMessage reply;
-
- QSync::Environment env;
- QSync::Result result = env.initialize();
- if ( result.isError() ) {
- return error( message, result.name(), result.message() );
- } else {
- reply = TQDBusMessage::methodReply( message );
-
- QSync::Group group = env.groupByName( groupName );
- if ( !group.isValid() ) {
- return error( message, "group_name", TQString("Unknown group '%1'.")
- .arg( groupName ) );
- }
-
- QSync::Member member = group.memberById( memberId );
- if ( !member.isValid() ) {
- return error( message, "member_id",
- TQString("Unknown member id '%1' in group '%2'.").arg( groupName )
- .arg( memberId ) );
- }
-
- reply.append( memberId );
- reply.append( member.pluginName() );
-
- env.finalize();
- }
-
- return reply;
-}
-
-
-TQDBusMessage OpenSyncService::showGroup( const TQDBusMessage &message )
-{
- if ( message.count() != 1 ) {
- return error( message, "arg_count",
- TQString("Wrong number of arguments. Expected 1, got %1")
- .arg( message.count() ) );
- }
-
- TQString groupName = message[ 0 ].toString();
- if ( groupName.isEmpty() ) {
- return error( message, "missing_arg", "Missing argument group name." );
- }
-
- TQDBusMessage reply;
-
- QSync::Environment env;
- QSync::Result result = env.initialize();
- if ( result.isError() ) {
- return error( message, result.name(), result.message() );
- } else {
- reply = TQDBusMessage::methodReply( message );
-
- QSync::Group group = env.groupByName( groupName );
- if ( !group.isValid() ) {
- return error( message, "group_name", TQString("Unknown group '%1'")
- .arg( groupName ) );
- }
-
- QSync::Group::Iterator it( &group );
- for( it = group.begin(); it != group.end(); ++it ) {
- QSync::Member member = *it;
- reply.append( TQVariant( member.id() ) );
- }
-
- env.finalize();
- }
-
- return reply;
-}
-
-TQDBusMessage OpenSyncService::error( const TQDBusMessage &message,
- const TQString &errorCode,
- const TQString &errorMessage )
-{
- TQDBusError error( "org.opensync." + errorCode, errorMessage );
- return TQDBusMessage::methodError( message, error );
-}
-
-TQDBusMessage OpenSyncService::listPlugins( const TQDBusMessage &message )
-{
- TQDBusMessage reply;
-
- QSync::Environment env;
- QSync::Result result = env.initialize();
- if ( result.isError() ) {
- TQDBusError error( result.name(), result.message() );
- reply = TQDBusMessage::methodError( message, error );
- } else {
- reply = TQDBusMessage::methodReply( message );
-
- QSync::Environment::PluginIterator it( env.pluginBegin() );
- for ( ; it != env.pluginEnd(); ++it ) {
- reply.append( TQVariant( (*it).name() ) );
- }
-
- env.finalize();
- }
-
- return reply;
-}
-
-TQDBusMessage OpenSyncService::listGroups( const TQDBusMessage &message )
-{
- TQDBusMessage reply;
-
- QSync::Environment env;
- QSync::Result result = env.initialize();
- if ( result.isError() ) {
- TQDBusError error( result.name(), result.message() );
- reply = TQDBusMessage::methodError( message, error );
- } else {
- reply = TQDBusMessage::methodReply( message );
-
- QSync::Environment::GroupIterator it( env.groupBegin() );
- for ( ; it != env.groupEnd(); ++it ) {
- reply.append( TQVariant( (*it).name() ) );
- }
-
- env.finalize();
- }
-
- return reply;
-}
-
-TQDBusMessage OpenSyncService::hello( const TQDBusMessage &message )
-{
- TQDBusMessage reply = TQDBusMessage::methodReply( message );
-
-// TQDBusError error;
-// reply = TQDBusMessage::methodError( message, error );
-
- reply.append( TQVariant( TQString( "Hello!" ) ) );
-
- return reply;
-}
-
-TQDBusMessage OpenSyncService::randomNumber( const TQDBusMessage &message )
-{
- TQDBusMessage reply = TQDBusMessage::methodReply( message );
-
- int number = rand();
-
- reply.append( TQVariant( number ) );
-
- return reply;
-}
-
-int main( int argc, char *argv[] )
-{
- TQApplication app(argc, argv);
-
- std::cout << "Hello" << std::endl;
-
- TQDBusConnection connection = TQDBusConnection::addConnection(
- TQDBusConnection::SessionBus );
-
- if ( !connection.isConnected() ) {
- tqFatal("Cannot connect to session bus");
- }
-
- connection.requestName( "org.opensync.SyncEngine",
- TQDBusConnection::NoReplace );
-
- OpenSyncService service;
- service.setConnection( &connection );
-
- return app.exec();
-}
-
-//#include "dbusclient.moc"
diff --git a/kitchensync/opensyncdbus/dbusclient.h b/kitchensync/opensyncdbus/dbusclient.h
deleted file mode 100644
index b0493c85..00000000
--- a/kitchensync/opensyncdbus/dbusclient.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- This file is part of KDE.
-
- Copyright (c) 2006 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-#ifndef DBUSCLIENT_H
-#define DBUSCLIENT_H
-
-#include <tqobject.h>
-
-#include <dbus/qdbusobject.h>
-
-class TQDBusMessage;
-class TQDBusConnection;
-
-class OpenSyncService : public TQDBusObjectBase
-{
- public:
- OpenSyncService();
-
- void setConnection( TQDBusConnection *connection );
-
- protected:
- virtual bool handleMethodCall( const TQDBusMessage &message );
-
- TQDBusMessage hello( const TQDBusMessage & );
- TQDBusMessage randomNumber( const TQDBusMessage & );
-
- TQDBusMessage listGroups( const TQDBusMessage &message );
- TQDBusMessage listPlugins( const TQDBusMessage &message );
- TQDBusMessage showGroup( const TQDBusMessage &message );
- TQDBusMessage showMember( const TQDBusMessage &message );
-
- TQDBusMessage error( const TQDBusMessage &, const TQString &errorCode,
- const TQString &errorMessage );
-
- private:
- TQDBusConnection *mConnection;
-};
-
-#endif
diff --git a/kitchensync/src/CMakeL10n.txt b/kitchensync/src/CMakeL10n.txt
deleted file mode 100644
index 9fe67735..00000000
--- a/kitchensync/src/CMakeL10n.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-##### create translation templates ##############
-
-tde_l10n_create_template( "kitchensync" )
diff --git a/kitchensync/src/CMakeLists.txt b/kitchensync/src/CMakeLists.txt
deleted file mode 100644
index 6820e250..00000000
--- a/kitchensync/src/CMakeLists.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-#################################################
-#
-# (C) 2010-2011 Serghei Amelian
-# serghei (DOT) amelian (AT) gmail.com
-#
-# Improvements and feedback are welcome
-#
-# This file is released under GPL >= 2
-#
-#################################################
-
-tde_import( libkmime )
-tde_import( ktnef )
-tde_import( libkcal )
-tde_import( libtdepim )
-
-add_subdirectory( about )
-add_subdirectory( pics )
-
-include_directories(
- ${CMAKE_CURRENT_BINARY_DIR}
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_CURRENT_SOURCE_DIR}/..
- ${CMAKE_SOURCE_DIR}
- ${CMAKE_SOURCE_DIR}/libtdepim
- ${TDE_INCLUDE_DIR}
- ${TQT_INCLUDE_DIRS}
-)
-
-link_directories(
- ${TQT_LIBRARY_DIRS}
-)
-
-
-##### other data ################################
-
-install( FILES kitchensync.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
-install( FILES kitchensyncui.rc kitchensync_part.rc DESTINATION ${DATA_INSTALL_DIR}/kitchensync )
-
-
-##### libkitchensyncpart (module) ###############
-
-tde_add_kpart( libkitchensyncpart AUTOMOC
- SOURCES part.cpp
- LINK kitchensync-shared
- DESTINATION ${PLUGIN_INSTALL_DIR}
-)
-
-##### kitchensync (executable) ##################
-
-tde_add_executable( kitchensync AUTOMOC
- SOURCES main.cpp mainwindow.cpp
- LINK kitchensync-shared
- DESTINATION ${BIN_INSTALL_DIR}
-)
-
-
-##### kitchensync (shared) ######################
-
-tde_add_library( kitchensync SHARED AUTOMOC
- SOURCES
- aboutpage.cpp mainwidget.cpp groupconfigdialog.cpp groupconfig.cpp
- groupitem.cpp groupview.cpp memberconfig.cpp syncprocess.cpp
- syncprocessmanager.cpp connectionwidgets.cpp pluginpicker.cpp
- configgui.cpp configguiblank.cpp configguifile.cpp memberinfo.cpp
- groupconfigcommon.cpp kwidgetlist.cpp configguipalm.cpp
- conflictdialog.cpp singleconflictdialog.cpp addresseediffalgo.cpp
- calendardiffalgo.cpp htmldiffalgodisplay.cpp genericdiffalgo.cpp
- multiconflictdialog.cpp configguiirmc.cpp configguisyncmlobex.cpp
- configguisyncmlhttp.cpp configguiopie.cpp configguignokii.cpp
- configguigcalendar.cpp configguildap.cpp configguigpe.cpp
- configguijescs.cpp configguievo2.cpp configguimoto.cpp
- configguisynce.cpp configguisunbird.cpp
- VERSION 0.0.0
- LINK qopensync-shared tdepim-shared tdehtml-shared
- DESTINATION ${LIB_INSTALL_DIR}
-)
diff --git a/kitchensync/src/Makefile.am b/kitchensync/src/Makefile.am
deleted file mode 100644
index acfaf530..00000000
--- a/kitchensync/src/Makefile.am
+++ /dev/null
@@ -1,53 +0,0 @@
-SUBDIRS = about pics
-
-INCLUDES = -I$(top_srcdir)/kitchensync/src \
- -I$(top_srcdir)/kitchensync \
- -I$(top_srcdir)/libtdepim \
- -I$(top_srcdir) \
- $(all_includes)
-
-# Application
-bin_PROGRAMS = kitchensync
-
-kitchensync_SOURCES = main.cpp mainwindow.cpp
-kitchensync_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_TQT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_TDEIO) -ltdetexteditor
-kitchensync_LDADD = libkitchensync.la
-
-xdg_apps_DATA = kitchensync.desktop
-
-# Library
-lib_LTLIBRARIES = libkitchensync.la
-
-libkitchensync_la_SOURCES = aboutpage.cpp mainwidget.cpp groupconfigdialog.cpp \
- groupconfig.cpp groupitem.cpp groupview.cpp memberconfig.cpp \
- syncprocess.cpp syncprocessmanager.cpp connectionwidgets.cpp \
- pluginpicker.cpp configgui.cpp configguiblank.cpp configguifile.cpp \
- memberinfo.cpp groupconfigcommon.cpp kwidgetlist.cpp \
- configguipalm.cpp conflictdialog.cpp singleconflictdialog.cpp \
- addresseediffalgo.cpp calendardiffalgo.cpp \
- htmldiffalgodisplay.cpp genericdiffalgo.cpp multiconflictdialog.cpp \
- configguiirmc.cpp \
- configguisyncmlobex.cpp configguisyncmlhttp.cpp configguiopie.cpp \
- configguignokii.cpp configguigcalendar.cpp configguildap.cpp configguigpe.cpp \
- configguijescs.cpp configguievo2.cpp configguimoto.cpp configguisynce.cpp \
- configguisunbird.cpp
-libkitchensync_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) -no-undefined
-libkitchensync_la_LIBADD = $(LIB_TDEIO) $(LIB_TDEHTML) $(top_builddir)/kitchensync/libqopensync/libqopensync.la \
- $(LIB_TDEABC) $(top_builddir)/libtdepim/libtdepim.la $(top_builddir)/libkcal/libkcal.la \
- $(LIB_TQT)
-
-# KPart
-kde_module_LTLIBRARIES = libkitchensyncpart.la
-
-libkitchensyncpart_la_SOURCES = part.cpp
-libkitchensyncpart_la_LDFLAGS = -module $(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) -no-undefined
-libkitchensyncpart_la_LIBADD = $(LIB_TDEPARTS) libkitchensync.la $(LIB_TQT) $(LIB_TDEIO) $(LIB_TDEHTML) $(LIB_TDEABC) $(LIB_TDECORE) $(LIB_TDEUI)
-
-# Resources
-kitchensyncdatadir = $(kde_datadir)/kitchensync
-kitchensyncdata_DATA = kitchensyncui.rc kitchensync_part.rc
-
-METASOURCES = AUTO
-
-messages: rc.cpp
- $(XGETTEXT) *.cpp *.h -o $(podir)/kitchensync.pot
diff --git a/kitchensync/src/about/CMakeLists.txt b/kitchensync/src/about/CMakeLists.txt
deleted file mode 100644
index 1381982b..00000000
--- a/kitchensync/src/about/CMakeLists.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-#################################################
-#
-# (C) 2010-2011 Serghei Amelian
-# serghei (DOT) amelian (AT) gmail.com
-#
-# Improvements and feedback are welcome
-#
-# This file is released under GPL >= 2
-#
-#################################################
-
-install( FILES
- top-right-kitchensync.png main.html kitchensync.css
- DESTINATION ${DATA_INSTALL_DIR}/kitchensync/about )
diff --git a/kitchensync/src/about/Makefile.am b/kitchensync/src/about/Makefile.am
deleted file mode 100644
index 6a4c77c5..00000000
--- a/kitchensync/src/about/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-about_DATA = \
- top-right-kitchensync.png \
- main.html \
- kitchensync.css
-
-aboutdir = $(kde_datadir)/kitchensync/about
diff --git a/kitchensync/src/about/kitchensync.css b/kitchensync/src/about/kitchensync.css
deleted file mode 100644
index 18aa0ddc..00000000
--- a/kitchensync/src/about/kitchensync.css
+++ /dev/null
@@ -1,30 +0,0 @@
-
-#headerR {
- position: absolute;
- right: 0px;
- width: 430px;
- height: 131px;
- background-image: url(top-right-kontact.png);
-}
-
-#title {
- right: 125px;
-}
-
-#tagline {
- right: 125px;
-}
-
-#boxCenter {
- background-image: url(box-center-kontact.png);
- background-repeat: no-repeat;
- background-color: #dfe7f3;
- background-position: bottom right;
-}
-
-#subtext {
- font-style: italic;
-}
-
-/* vim:set sw=2 et nocindent smartindent: */
-
diff --git a/kitchensync/src/about/main.html b/kitchensync/src/about/main.html
deleted file mode 100644
index 2474a7fc..00000000
--- a/kitchensync/src/about/main.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta name="generator" content=
- "HTML Tidy for Linux/x86 (vers 1st August 2004), see www.w3.org" />
-
- <style type="text/css">
- /*<![CDATA[*/
- @import "%1"; /* kde_infopage.css */
- %1 /* maybe @import "kde_infopage_rtl.css"; */
- @import "kitchensync.css";
- body {font-size: %1px;}
- /*]]>*/
- </style>
-
- <title>KitchenSync</title>
-</head>
-
-<body>
- <div id="header">
- <div id="headerL"/>
- <div id="headerR"/>
-
- <div id="title">
- %2 <!-- KitchenSync -->
- </div>
-
- <div id="tagline">
- %3 <!-- Catchphrase -->
- </div>
- </div>
-
- <!-- the bar -->
- <div id="bar">
- <div id="barT"><div id="barTL"/><div id="barTR"/><div id="barTC"/></div>
- <div id="barL">
- <div id="barR">
- <div id="barCenter" class="bar_text">
- %4<!-- KitchenSync is ... -->
- </div>
- </div>
- </div>
- <div id="barB"><div id="barBL"/><div id="barBR"/><div id="barBC"/></div>
- </div>
-
- <!-- the main text box -->
- <div id="box">
- <div id="boxT"><div id="boxTL"/><div id="boxTR"/><div id="boxTC"/></div>
- <div id="boxL">
- <div id="boxR">
- <div id="boxCenter">
- <!--Welcome to KitchenSync-->
- %5
- </div>
- </div>
- </div>
- <div id="boxB"><div id="boxBL"/><div id="boxBR"/><div id="boxBC"/></div>
- </div>
-
- <div id="footer"><div id="footerL"/><div id="footerR"/></div>
-</body>
-</html>
-<!-- vim:set sw=2 et nocindent smartindent: -->
diff --git a/kitchensync/src/about/top-right-kitchensync.png b/kitchensync/src/about/top-right-kitchensync.png
deleted file mode 100644
index 9e169d8b..00000000
--- a/kitchensync/src/about/top-right-kitchensync.png
+++ /dev/null
Binary files differ
diff --git a/kitchensync/src/aboutpage.cpp b/kitchensync/src/aboutpage.cpp
deleted file mode 100644
index 4de6987e..00000000
--- a/kitchensync/src/aboutpage.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include <tqfile.h>
-#include <tqlayout.h>
-
-#include <tdeaboutdata.h>
-#include <tdeapplication.h>
-#include <kdebug.h>
-#include <tdehtml_part.h>
-#include <tdehtmlview.h>
-#include <kiconloader.h>
-#include <tdelocale.h>
-#include <krun.h>
-#include <kstandarddirs.h>
-
-#include "aboutpage.h"
-
-static TQString readFile( const TQString &fileName )
-{
- TQFile file( fileName );
- if ( !file.open( IO_ReadOnly ) ) {
- kdDebug() << "Unable to open file '" << fileName << "'" << endl;
- return TQCString();
- }
-
- TQString content = TQString::fromUtf8( file.readAll() );
-
- file.close();
-
- return content;
-}
-
-AboutPage::AboutPage( TQWidget *parent )
- : TQWidget( parent, "AboutPage" )
-{
- TQVBoxLayout *layout = new TQVBoxLayout( this );
-
- TQString location = locate( "data", "kitchensync/about/main.html" );
- TQString content = readFile( location );
- content = content.arg( locate( "data", "libtdepim/about/kde_infopage.css" ) );
- if ( kapp->reverseLayout() )
- content = content.arg( "@import \"%1\";" ).arg( locate( "data", "libtdepim/about/kde_infopage_rtl.css" ) );
- else
- content = content.arg( "" );
-
- TDEHTMLPart *part = new TDEHTMLPart( this );
- layout->addWidget( part->view() );
-
- part->begin( KURL( location ) );
-
- TQString appName( i18n( "TDE KitchenSync" ) );
- TQString catchPhrase( i18n( "Get Synchronized!" ) );
- TQString quickDescription( i18n( "The TDE Synchronization Tool" ) );
-
- part->write( content.arg( TQFont().pointSize() + 2 ).arg( appName )
- .arg( catchPhrase ).arg( quickDescription ).arg( htmlText() ) );
- part->end();
-
- connect( part->browserExtension(),
- TQT_SIGNAL( openURLRequest( const KURL&, const KParts::URLArgs& ) ),
- TQT_SLOT( handleUrl( const KURL& ) ) );
-
- connect( part->browserExtension(),
- TQT_SIGNAL( createNewWindow( const KURL&, const KParts::URLArgs& ) ),
- TQT_SLOT( handleUrl( const KURL& ) ) );
-}
-
-void AboutPage::handleUrl( const KURL &url )
-{
- if ( url.protocol() == "exec" ) {
- if ( url.path() == "/addGroup" )
- emit addGroup();
- } else
- new KRun( url, this );
-}
-
-TQString AboutPage::htmlText() const
-{
- TDEIconLoader *iconloader = TDEGlobal::iconLoader();
- int iconSize = iconloader->currentSize( TDEIcon::Desktop );
-
- TQString handbook_icon_path = iconloader->iconPath( "contents2", TDEIcon::Desktop );
- TQString html_icon_path = iconloader->iconPath( "text-html", TDEIcon::Desktop );
- TQString wizard_icon_path = iconloader->iconPath( "wizard", TDEIcon::Desktop );
-
- TQString info = i18n( "<h2 style='text-align:center; margin-top: 0px;'>Welcome to KitchenSync %1</h2>"
- "<p>%1</p>"
- "<table align=\"center\">"
- "<tr><td><a href=\"%1\"><img width=\"%1\" height=\"%1\" src=\"%1\" /></a></td>"
- "<td><a href=\"%1\">%1</a><br><span id=\"subtext\"><nobr>%1</td></tr>"
- "<tr><td><a href=\"%1\"><img width=\"%1\" height=\"%1\" src=\"%1\" /></a></td>"
- "<td><a href=\"%1\">%1</a><br><span id=\"subtext\"><nobr>%1</td></tr>"
- "<tr><td><a href=\"%1\"><img width=\"%1\" height=\"%1\" src=\"%1\" /></a></td>"
- "<td><a href=\"%1\">%1</a><br><span id=\"subtext\"><nobr>%1</td></tr>"
- "</table>" )
- .arg( kapp->aboutData()->version() )
- .arg( i18n( "KitchenSync synchronizes your e-mail, addressbook, calendar, to-do list and more." ) )
- .arg( "help:/kitchensync" )
- .arg( iconSize )
- .arg( iconSize )
- .arg( handbook_icon_path )
- .arg( "help:/kitchensync" )
- .arg( i18n( "Read Manual" ) )
- .arg( i18n( "Learn more about KitchenSync and its components" ) )
- .arg( "http://pim.kde.org" )
- .arg( iconSize )
- .arg( iconSize )
- .arg( html_icon_path )
- .arg( "http://pim.kde.org" )
- .arg( i18n( "Visit KitchenSync Website" ) )
- .arg( i18n( "Access online resources and tutorials" ) )
- .arg( "exec:/addGroup" )
- .arg( iconSize )
- .arg( iconSize )
- .arg( wizard_icon_path )
- .arg( "exec:/addGroup" )
- .arg( i18n( "Add Synchronization Group" ) )
- .arg( i18n( "Create group of devices for synchronization" ) );
-
- return info;
-}
-
-#include "aboutpage.moc"
diff --git a/kitchensync/src/aboutpage.h b/kitchensync/src/aboutpage.h
deleted file mode 100644
index b364e0fe..00000000
--- a/kitchensync/src/aboutpage.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#ifndef ABOUTPAGE_H
-#define ABOUTPAGE_H
-
-#include <kurl.h>
-
-#include <tqwidget.h>
-
-class AboutPage : public TQWidget
-{
- Q_OBJECT
-
-
- public:
- AboutPage( TQWidget *parent );
-
- signals:
- void addGroup();
-
- private slots:
- void handleUrl( const KURL& );
-
- private:
- TQString htmlText() const;
-};
-
-#endif
diff --git a/kitchensync/src/addresseediffalgo.cpp b/kitchensync/src/addresseediffalgo.cpp
deleted file mode 100644
index e9847284..00000000
--- a/kitchensync/src/addresseediffalgo.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- This file is part of libtdepim.
-
- Copyright (c) 2004 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <tdeabc/vcardconverter.h>
-
-#include "addresseediffalgo.h"
-
-using namespace KSync;
-
-static bool compareString( const TQString &left, const TQString &right )
-{
- if ( left.isEmpty() && right.isEmpty() )
- return true;
- else
- return left == right;
-}
-
-AddresseeDiffAlgo::AddresseeDiffAlgo( const TDEABC::Addressee &leftAddressee,
- const TDEABC::Addressee &rightAddressee )
- : mLeftAddressee( leftAddressee ), mRightAddressee( rightAddressee )
-{
-}
-
-AddresseeDiffAlgo::AddresseeDiffAlgo( const TQString &leftAddressee,
- const TQString &rightAddressee )
-{
- TDEABC::VCardConverter converter;
-
- mLeftAddressee = converter.parseVCard( leftAddressee );
- mRightAddressee = converter.parseVCard( rightAddressee );
-}
-
-void AddresseeDiffAlgo::run()
-{
- begin();
-
- if ( !compareString( mLeftAddressee.uid(), mRightAddressee.uid() ) )
- conflictField( TDEABC::Addressee::uidLabel(), mLeftAddressee.uid(), mRightAddressee.uid() );
-
- if ( !compareString( mLeftAddressee.name(), mRightAddressee.name() ) )
- conflictField( TDEABC::Addressee::nameLabel(), mLeftAddressee.name(), mRightAddressee.name() );
-
- if ( !compareString( mLeftAddressee.formattedName(), mRightAddressee.formattedName() ) )
- conflictField( TDEABC::Addressee::formattedNameLabel(), mLeftAddressee.formattedName(), mRightAddressee.formattedName() );
-
- if ( !compareString( mLeftAddressee.familyName(), mRightAddressee.familyName() ) )
- conflictField( TDEABC::Addressee::familyNameLabel(), mLeftAddressee.familyName(), mRightAddressee.familyName() );
-
- if ( !compareString( mLeftAddressee.givenName(), mRightAddressee.givenName() ) )
- conflictField( TDEABC::Addressee::givenNameLabel(), mLeftAddressee.givenName(), mRightAddressee.givenName() );
-
- if ( !compareString( mLeftAddressee.additionalName(), mRightAddressee.additionalName() ) )
- conflictField( TDEABC::Addressee::additionalNameLabel(), mLeftAddressee.additionalName(), mRightAddressee.additionalName() );
-
- if ( !compareString( mLeftAddressee.prefix(), mRightAddressee.prefix() ) )
- conflictField( TDEABC::Addressee::prefixLabel(), mLeftAddressee.prefix(), mRightAddressee.prefix() );
-
- if ( !compareString( mLeftAddressee.suffix(), mRightAddressee.suffix() ) )
- conflictField( TDEABC::Addressee::suffixLabel(), mLeftAddressee.suffix(), mRightAddressee.suffix() );
-
- if ( !compareString( mLeftAddressee.nickName(), mRightAddressee.nickName() ) )
- conflictField( TDEABC::Addressee::nickNameLabel(), mLeftAddressee.nickName(), mRightAddressee.nickName() );
-
- if ( mLeftAddressee.birthday() != mRightAddressee.birthday() )
- conflictField( TDEABC::Addressee::birthdayLabel(), mLeftAddressee.birthday().toString(),
- mRightAddressee.birthday().toString() );
-
- if ( !compareString( mLeftAddressee.mailer(), mRightAddressee.mailer() ) )
- conflictField( TDEABC::Addressee::mailerLabel(), mLeftAddressee.mailer(), mRightAddressee.mailer() );
-
- if ( mLeftAddressee.timeZone() != mRightAddressee.timeZone() )
- conflictField( TDEABC::Addressee::timeZoneLabel(), mLeftAddressee.timeZone().asString(), mRightAddressee.timeZone().asString() );
-
- if ( mLeftAddressee.geo() != mRightAddressee.geo() )
- conflictField( TDEABC::Addressee::geoLabel(), mLeftAddressee.geo().asString(), mRightAddressee.geo().asString() );
-
- if ( !compareString( mLeftAddressee.title(), mRightAddressee.title() ) )
- conflictField( TDEABC::Addressee::titleLabel(), mLeftAddressee.title(), mRightAddressee.title() );
-
- if ( !compareString( mLeftAddressee.role(), mRightAddressee.role() ) )
- conflictField( TDEABC::Addressee::roleLabel(), mLeftAddressee.role(), mRightAddressee.role() );
-
- if ( !compareString( mLeftAddressee.organization(), mRightAddressee.organization() ) )
- conflictField( TDEABC::Addressee::organizationLabel(), mLeftAddressee.organization(), mRightAddressee.organization() );
-
- if ( !compareString( mLeftAddressee.note(), mRightAddressee.note() ) )
- conflictField( TDEABC::Addressee::noteLabel(), mLeftAddressee.note(), mRightAddressee.note() );
-
- if ( !compareString( mLeftAddressee.productId(), mRightAddressee.productId() ) )
- conflictField( TDEABC::Addressee::productIdLabel(), mLeftAddressee.productId(), mRightAddressee.productId() );
-
- if ( !compareString( mLeftAddressee.sortString(), mRightAddressee.sortString() ) )
- conflictField( TDEABC::Addressee::sortStringLabel(), mLeftAddressee.sortString(), mRightAddressee.sortString() );
-
- if ( mLeftAddressee.secrecy() != mRightAddressee.secrecy() ) {
- conflictField( TDEABC::Addressee::secrecyLabel(), mLeftAddressee.secrecy().asString(), mRightAddressee.secrecy().asString() );
- }
- if ( mLeftAddressee.url()!= mRightAddressee.url() )
- conflictField( TDEABC::Addressee::urlLabel(), mLeftAddressee.url().prettyURL(),
- mRightAddressee.url().prettyURL() );
-
- if ( mLeftAddressee.logo() != mRightAddressee.logo() ) {
- }
-
- if ( mLeftAddressee.photo() != mRightAddressee.photo() ) {
- }
-
- diffList( "emails", mLeftAddressee.emails(), mRightAddressee.emails() );
-
- diffList( "Phone Numbers", mLeftAddressee.phoneNumbers(), mRightAddressee.phoneNumbers() );
- diffList( "Addresses", mLeftAddressee.addresses(), mRightAddressee.addresses() );
-
- end();
-}
-
-TQString AddresseeDiffAlgo::toString( const TDEABC::PhoneNumber &number )
-{
- return number.number();
-}
-
-TQString AddresseeDiffAlgo::toString( const TDEABC::Address &addr )
-{
- return addr.formattedAddress();
-}
-
-template <class L>
-void AddresseeDiffAlgo::diffList( const TQString &id,
- const TQValueList<L> &left, const TQValueList<L> &right )
-{
- for ( uint i = 0; i < left.count(); ++i ) {
- if ( right.find( left[ i ] ) == right.end() )
- additionalLeftField( id, toString( left[ i ] ) );
- }
-
- for ( uint i = 0; i < right.count(); ++i ) {
- if ( left.find( right[ i ] ) == left.end() )
- additionalRightField( id, toString( right[ i ] ) );
- }
-}
diff --git a/kitchensync/src/addresseediffalgo.h b/kitchensync/src/addresseediffalgo.h
deleted file mode 100644
index 2cf33eea..00000000
--- a/kitchensync/src/addresseediffalgo.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- This file is part of libtdepim.
-
- Copyright (c) 2004 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef KSYNC_ADDRESSEEDIFFALGO_H
-#define KSYNC_ADDRESSEEDIFFALGO_H
-
-#include <tdeabc/addressee.h>
-#include <libtdepim/diffalgo.h>
-
-using namespace KPIM;
-
-namespace KSync {
-
-class AddresseeDiffAlgo : public DiffAlgo
-{
- public:
- AddresseeDiffAlgo( const TDEABC::Addressee &leftAddressee, const TDEABC::Addressee &rightAddressee );
- AddresseeDiffAlgo( const TQString &leftAddressee, const TQString &rightAddressee );
-
- void run();
-
- private:
- template <class L>
- void diffList( const TQString &id, const TQValueList<L> &left, const TQValueList<L> &right );
-
- TQString toString( const TDEABC::PhoneNumber &number );
- TQString toString( const TDEABC::Address &address );
-
- TDEABC::Addressee mLeftAddressee;
- TDEABC::Addressee mRightAddressee;
-};
-
-}
-
-#endif
diff --git a/kitchensync/src/calendardiffalgo.cpp b/kitchensync/src/calendardiffalgo.cpp
deleted file mode 100644
index 8d925322..00000000
--- a/kitchensync/src/calendardiffalgo.cpp
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- This file is part of libtdepim.
-
- Copyright (c) 2004 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <tdelocale.h>
-
-#include <libkcal/kcalversion.h>
-
-#include "calendardiffalgo.h"
-
-using namespace KSync;
-
-#ifndef KDE_USE_FINAL
-static bool compareString( const TQString &left, const TQString &right )
-{
- if ( left.isEmpty() && right.isEmpty() )
- return true;
- else
- return left == right;
-}
-#endif
-
-static TQString toString( KCal::Attendee *attendee )
-{
- return attendee->name() + "<" + attendee->email() + ">";
-}
-
-static TQString toString( KCal::Alarm * )
-{
- return TQString();
-}
-
-static TQString toString( KCal::Incidence * )
-{
- return TQString();
-}
-
-static TQString toString( KCal::Attachment * )
-{
- return TQString();
-}
-
-static TQString toString( const TQDate &date )
-{
- return date.toString();
-}
-
-static TQString toString( const TQDateTime &dateTime )
-{
- return dateTime.toString();
-}
-
-static TQString toString( const TQString str )
-{
- return str;
-}
-
-static TQString toString( bool value )
-{
- if ( value )
- return i18n( "Yes" );
- else
- return i18n( "No" );
-}
-
-CalendarDiffAlgo::CalendarDiffAlgo( KCal::Incidence *leftIncidence,
- KCal::Incidence *rightIncidence )
- : mLeftIncidence( leftIncidence ), mRightIncidence( rightIncidence )
-{
-}
-
-void CalendarDiffAlgo::run()
-{
- begin();
-
- diffIncidenceBase( mLeftIncidence, mRightIncidence );
- diffIncidence( mLeftIncidence, mRightIncidence );
-
- KCal::Event *leftEvent = dynamic_cast<KCal::Event*>( mLeftIncidence );
- KCal::Event *rightEvent = dynamic_cast<KCal::Event*>( mRightIncidence );
- if ( leftEvent && rightEvent ) {
- diffEvent( leftEvent, rightEvent );
- } else {
- KCal::Todo *leftTodo = dynamic_cast<KCal::Todo*>( mLeftIncidence );
- KCal::Todo *rightTodo = dynamic_cast<KCal::Todo*>( mRightIncidence );
- if ( leftTodo && rightTodo ) {
- diffTodo( leftTodo, rightTodo );
- }
- }
-
- end();
-}
-
-void CalendarDiffAlgo::diffIncidenceBase( KCal::IncidenceBase *left, KCal::IncidenceBase *right )
-{
- diffList( i18n( "Attendees" ), left->attendees(), right->attendees() );
-
- if ( left->dtStart() != right->dtStart() )
- conflictField( i18n( "Start time" ), left->dtStartStr(), right->dtStartStr() );
-
- if ( !compareString( left->organizer().fullName(), right->organizer().fullName() ) )
- conflictField( i18n( "Organizer" ), left->organizer().fullName(), right->organizer().fullName() );
-
- if ( !compareString( left->uid(), right->uid() ) )
- conflictField( i18n( "UID" ), left->uid(), right->uid() );
-
- if ( left->doesFloat() != right->doesFloat() )
- conflictField( i18n( "Is floating" ), toString( left->doesFloat() ), toString( right->doesFloat() ) );
-
- if ( left->hasDuration() != right->hasDuration() )
- conflictField( i18n( "Has duration" ), toString( left->hasDuration() ), toString( right->hasDuration() ) );
-
- if ( left->duration() != right->duration() )
- conflictField( i18n( "Duration" ), TQString::number( left->duration() ), TQString::number( right->duration() ) );
-}
-
-void CalendarDiffAlgo::diffIncidence( KCal::Incidence *left, KCal::Incidence *right )
-{
- if ( !compareString( left->description(), right->description() ) )
- conflictField( i18n( "Description" ), left->description(), right->description() );
-
- if ( !compareString( left->summary(), right->summary() ) )
- conflictField( i18n( "Summary" ), left->summary(), right->summary() );
-
- if ( left->status() != right->status() )
- conflictField( i18n( "Status" ), left->statusStr(), right->statusStr() );
-
- if ( left->secrecy() != right->secrecy() )
- conflictField( i18n( "Secrecy" ), toString( left->secrecy() ), toString( right->secrecy() ) );
-
- if ( left->priority() != right->priority() )
- conflictField( i18n( "Priority" ), toString( left->priority() ), toString( right->priority() ) );
-
- if ( !compareString( left->location(), right->location() ) )
- conflictField( i18n( "Location" ), left->location(), right->location() );
-
- diffList( i18n( "Categories" ), left->categories(), right->categories() );
- diffList( i18n( "Alarms" ), left->alarms(), right->alarms() );
- diffList( i18n( "Resources" ), left->resources(), right->resources() );
- diffList( i18n( "Relations" ), left->relations(), right->relations() );
- diffList( i18n( "Attachments" ), left->attachments(), right->attachments() );
-#if LIBKCAL_IS_VERSION( 1, 3, 1 )
- diffList( i18n( "Exception Dates" ), left->recurrence()->exDates(), right->recurrence()->exDates() );
- diffList( i18n( "Exception Times" ), left->recurrence()->exDateTimes(), right->recurrence()->exDateTimes() );
-#endif
- // TODO: recurrence dates and date/times, exrules, rrules
-
- if ( left->created() != right->created() )
- conflictField( i18n( "Created" ), left->created().toString(), right->created().toString() );
-
- if ( !compareString( left->relatedToUid(), right->relatedToUid() ) )
- conflictField( i18n( "Related Uid" ), left->relatedToUid(), right->relatedToUid() );
-}
-
-void CalendarDiffAlgo::diffEvent( KCal::Event *left, KCal::Event *right )
-{
- if ( left->hasEndDate() != right->hasEndDate() )
- conflictField( i18n( "Has End Date" ), toString( left->hasEndDate() ), toString( right->hasEndDate() ) );
-
- if ( left->dtEnd() != right->dtEnd() )
- conflictField( i18n( "End Date" ), left->dtEndStr(), right->dtEndStr() );
-
- // TODO: check transparency
-}
-
-void CalendarDiffAlgo::diffTodo( KCal::Todo *left, KCal::Todo *right )
-{
- if ( left->hasStartDate() != right->hasStartDate() )
- conflictField( i18n( "Has Start Date" ), toString( left->hasStartDate() ), toString( right->hasStartDate() ) );
-
- if ( left->hasDueDate() != right->hasDueDate() )
- conflictField( i18n( "Has Due Date" ), toString( left->hasDueDate() ), toString( right->hasDueDate() ) );
-
- if ( left->dtDue() != right->dtDue() )
- conflictField( i18n( "Due Date" ), left->dtDue().toString(), right->dtDue().toString() );
-
- if ( left->hasCompletedDate() != right->hasCompletedDate() )
- conflictField( i18n( "Has Complete Date" ), toString( left->hasCompletedDate() ), toString( right->hasCompletedDate() ) );
-
- if ( left->percentComplete() != right->percentComplete() )
- conflictField( i18n( "Complete" ), TQString::number( left->percentComplete() ), TQString::number( right->percentComplete() ) );
-
- if ( left->completed() != right->completed() )
- conflictField( i18n( "Completed" ), toString( left->completed() ), toString( right->completed() ) );
-}
-
-template <class L>
-void CalendarDiffAlgo::diffList( const TQString &id,
- const TQValueList<L> &left, const TQValueList<L> &right )
-{
- for ( uint i = 0; i < left.count(); ++i ) {
- if ( right.find( left[ i ] ) == right.end() )
- additionalLeftField( id, toString( left[ i ] ) );
- }
-
- for ( uint i = 0; i < right.count(); ++i ) {
- if ( left.find( right[ i ] ) == left.end() )
- additionalRightField( id, toString( right[ i ] ) );
- }
-}
diff --git a/kitchensync/src/calendardiffalgo.h b/kitchensync/src/calendardiffalgo.h
deleted file mode 100644
index 1d9497b9..00000000
--- a/kitchensync/src/calendardiffalgo.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- This file is part of libtdepim.
-
- Copyright (c) 2004 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef KSYNC_CALENDARDIFFALGO_H
-#define KSYNC_CALENDARDIFFALGO_H
-
-#include <libkcal/event.h>
-#include <libkcal/todo.h>
-#include <libtdepim/diffalgo.h>
-
-using namespace KPIM;
-
-namespace KSync {
-
-class CalendarDiffAlgo : public DiffAlgo
-{
- public:
- CalendarDiffAlgo( KCal::Incidence *leftIncidence, KCal::Incidence *rightIncidence );
-
- void run();
-
- private:
- template <class L>
- void diffList( const TQString &id, const TQValueList<L> &left, const TQValueList<L> &right );
-
- void diffIncidenceBase( KCal::IncidenceBase*, KCal::IncidenceBase* );
- void diffIncidence( KCal::Incidence*, KCal::Incidence* );
- void diffEvent( KCal::Event*, KCal::Event* );
- void diffTodo( KCal::Todo*, KCal::Todo* );
-
- KCal::Incidence *mLeftIncidence;
- KCal::Incidence *mRightIncidence;
-};
-
-}
-
-#endif
diff --git a/kitchensync/src/configgui.cpp b/kitchensync/src/configgui.cpp
deleted file mode 100644
index 6a41032e..00000000
--- a/kitchensync/src/configgui.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configgui.h"
-
-
-#include "configguiblank.h"
-#include "configguifile.h"
-#include "configguignokii.h"
-#include "configguigpe.h"
-#include "configguiirmc.h"
-#include "configguildap.h"
-#include "configguiopie.h"
-#include "configguipalm.h"
-#include "configguisyncmlhttp.h"
-#include "configguisyncmlobex.h"
-#include "configguigcalendar.h"
-#include "configguijescs.h"
-#include "configguievo2.h"
-#include "configguimoto.h"
-#include "configguisynce.h"
-#include "configguisunbird.h"
-
-#include "memberinfo.h"
-
-#include <kdialog.h>
-#include <tdelocale.h>
-#include <klineedit.h>
-
-#include <tqlayout.h>
-#include <tqlabel.h>
-#include <tqtextedit.h>
-
-ConfigGui::ConfigGui( const QSync::Member &member, TQWidget *parent )
- : TQWidget( parent ), mMember( member )
-{
- mTopLayout = new TQVBoxLayout( this );
- mTopLayout->setSpacing( KDialog::spacingHint() );
- mTopLayout->setMargin( KDialog::marginHint() );
-
- TQBoxLayout *nameLayout = new TQHBoxLayout( mTopLayout );
-
- TQLabel *label = new TQLabel( i18n("Name:"), this );
- nameLayout->addWidget( label );
-
- mNameEdit = new KLineEdit( this );
- nameLayout->addWidget( mNameEdit );
-}
-
-void ConfigGui::setInstanceName( const TQString &t )
-{
- mNameEdit->setText( t );
-}
-
-TQString ConfigGui::instanceName() const
-{
- return mNameEdit->text();
-}
-
-ConfigGui *ConfigGui::Factory::create( const QSync::Member &member,
- TQWidget *parent )
-{
- TQString name = member.pluginName();
- if ( name == "file-sync" ) {
- return new ConfigGuiFile( member, parent );
- } else if ( name == "palm-sync" ) {
- return new ConfigGuiPalm( member, parent );
- } else if ( name == "irmc-sync" ) {
- return new ConfigGuiIRMC( member, parent );
- } else if ( name == "syncml-obex-client" ) {
- return new ConfigGuiSyncmlObex( member, parent );
- } else if ( name == "syncml-http-server" ) {
- return new ConfigGuiSyncmlHttp( member, parent );
- } else if ( name == "opie-sync" ) {
- return new ConfigGuiOpie( member, parent );
- } else if ( name == "gnokii-sync" ) {
- return new ConfigGuiGnokii( member, parent );
- } else if ( name == "gpe-sync" ) {
- return new ConfigGuiGpe( member, parent );
- } else if ( name == "google-calendar" ) {
- return new ConfigGuiGoogleCalendar( member, parent );
- } else if ( name == "ldap-sync" ) {
- return new ConfigGuiLdap( member, parent );
- } else if ( name == "tdepim-sync" ) {
- return new ConfigGuiBlank( member, parent );
- } else if ( name == "jescs-sync" ) {
- return new ConfigGuiJescs( member, parent );
- } else if ( name == "evo2-sync" ) {
- return new ConfigGuiEvo2( member, parent );
- } else if ( name == "moto-sync" ) {
- return new ConfigGuiMoto( member, parent );
- } else if ( name == "synce-plugin" ) {
- return new ConfigGuiSynce( member, parent );
- } else if ( name == "sunbird-sync" ) {
- return new ConfigGuiSunbird( member, parent );
- } else {
- return new ConfigGuiXml( member, parent );
- }
-}
-
-
-ConfigGuiXml::ConfigGuiXml( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- mTextEdit = new TQTextEdit( this );
- topLayout()->addWidget( mTextEdit );
-}
-
-void ConfigGuiXml::load( const TQString &xml )
-{
- mTextEdit->setText( xml );
-}
-
-TQString ConfigGuiXml::save() const
-{
- return mTextEdit->text();
-}
diff --git a/kitchensync/src/configgui.h b/kitchensync/src/configgui.h
deleted file mode 100644
index 6b7b1b10..00000000
--- a/kitchensync/src/configgui.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-#ifndef CONFIGGUI_H
-#define CONFIGGUI_H
-
-#include <libqopensync/member.h>
-
-#include <tqwidget.h>
-
-class TQBoxLayout;
-class KLineEdit;
-class TQTextEdit;
-
-class ConfigGui : public TQWidget
-{
- public:
- ConfigGui( const QSync::Member &, TQWidget *parent );
-
- class Factory
- {
- public:
- static ConfigGui *create( const QSync::Member &, TQWidget *parent );
- };
-
- void setInstanceName( const TQString & );
- TQString instanceName() const;
-
- virtual void load( const TQString &xml ) = 0;
- virtual TQString save() const = 0;
-
- QSync::Member member() const { return mMember; }
-
- TQBoxLayout *topLayout() const { return mTopLayout; }
-
- private:
- QSync::Member mMember;
-
- TQBoxLayout *mTopLayout;
- KLineEdit *mNameEdit;
-};
-
-class ConfigGuiXml : public ConfigGui
-{
- public:
- ConfigGuiXml( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString & );
- TQString save() const;
-
- private:
- TQTextEdit *mTextEdit;
-};
-
-#endif
diff --git a/kitchensync/src/configguiblank.cpp b/kitchensync/src/configguiblank.cpp
deleted file mode 100644
index b16c1f83..00000000
--- a/kitchensync/src/configguiblank.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2006 Daniel Gollub <dgollub@suse.de>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configguiblank.h"
-
-#include <tdelocale.h>
-
-#include <tqlabel.h>
-#include <tqlayout.h>
-
-ConfigGuiBlank::ConfigGuiBlank( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- TQLabel *label = new TQLabel( i18n( "This member/plugin needs no configuration." ), this );
- topLayout()->addWidget( label );
-}
-
-void ConfigGuiBlank::load( const TQString& )
-{
-}
-
-TQString ConfigGuiBlank::save() const
-{
- TQString xml = "<config></config>";
- return xml;
-}
diff --git a/kitchensync/src/configguiblank.h b/kitchensync/src/configguiblank.h
deleted file mode 100644
index e2048ac7..00000000
--- a/kitchensync/src/configguiblank.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2006 Daniel Gollub <dgollub@suse.de>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-#ifndef CONFIGGUIBLANK_H
-#define CONFIGGUIBLANK_H
-
-#include "configgui.h"
-
-class ConfigGuiBlank : public ConfigGui
-{
- public:
- ConfigGuiBlank( const QSync::Member &member, TQWidget *parent = 0 );
-
- void load( const TQString &xml );
- TQString save() const;
-};
-
-#endif
diff --git a/kitchensync/src/configguievo2.cpp b/kitchensync/src/configguievo2.cpp
deleted file mode 100644
index fb7116cb..00000000
--- a/kitchensync/src/configguievo2.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configguievo2.h"
-
-#include <tqdom.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqstring.h>
-
-#include <kurlrequester.h>
-#include <kurl.h>
-#include <tdefile.h>
-#include <kdialog.h>
-#include <tdelocale.h>
-
-ConfigGuiEvo2::ConfigGuiEvo2( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- initGUI();
-}
-
-void ConfigGuiEvo2::load( const TQString &xml )
-{
- TQDomDocument doc;
- doc.setContent( xml );
- TQDomElement docElement = doc.documentElement();
- TQDomNode node;
- for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- TQDomElement element = node.toElement();
- if ( element.tagName() == "address_path" ) {
- mAddressPath->setURL( element.text() );
- } else if ( element.tagName() == "calendar_path" ) {
- mCalendarPath->setURL( element.text() ) ;
- } else if ( element.tagName() == "tasks_path" ) {
- mTasksPath->setURL( element.text() );
- }
- }
-}
-
-TQString ConfigGuiEvo2::save() const
-{
- TQString config = "<config>\n";
-
- config += TQString( "<address_path>%1</address_path>\n" ).arg( mAddressPath->url() );
- config += TQString( "<calendar_path>%1</calendar_path>\n" ).arg( mCalendarPath->url() );
- config += TQString( "<tasks_path>%1</tasks_path>\n" ).arg( mTasksPath->url() );
-
- config += "</config>";
-
- return config;
-}
-
-void ConfigGuiEvo2::initGUI()
-{
- TQGridLayout *layout = new TQGridLayout( topLayout(), 12, 3, KDialog::spacingHint() );
- layout->setMargin( KDialog::marginHint() );
-
- layout->addWidget( new TQLabel( i18n( "Address Book location:" ), this ), 0, 0 );
- mAddressPath = new KURLRequester( this );
- mAddressPath->setMode( KFile::Directory );
- layout->addMultiCellWidget( mAddressPath, 0, 0, 1, 2 );
-
- layout->addWidget( new TQLabel( i18n( "Calendar location:" ), this ), 1, 0 );
- mCalendarPath = new KURLRequester( this );
- mCalendarPath->setMode( KFile::Directory );
- layout->addMultiCellWidget( mCalendarPath, 1, 1, 1, 2 );
-
- layout->addWidget( new TQLabel( i18n( "Task list location:" ), this ), 2, 0 );
- mTasksPath = new KURLRequester( this );
- mTasksPath->setMode( KFile::Directory );
- layout->addMultiCellWidget( mTasksPath, 2, 2, 1, 2 );
-}
diff --git a/kitchensync/src/configguievo2.h b/kitchensync/src/configguievo2.h
deleted file mode 100644
index 7e3a1767..00000000
--- a/kitchensync/src/configguievo2.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#ifndef CONFIGGUIEVO2_H
-#define CONFIGGUIEVO2_H
-
-#include "configgui.h"
-
-class KURLRequester;
-
-class ConfigGuiEvo2 : public ConfigGui
-{
- public:
- ConfigGuiEvo2( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString &xml );
-
- TQString save() const;
-
- private:
- void initGUI();
-
- KURLRequester *mAddressPath;
- KURLRequester *mCalendarPath;
- KURLRequester *mTasksPath;
-};
-
-#endif
diff --git a/kitchensync/src/configguifile.cpp b/kitchensync/src/configguifile.cpp
deleted file mode 100644
index 22767ab8..00000000
--- a/kitchensync/src/configguifile.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configguifile.h"
-
-#include <kurlrequester.h>
-#include <tdelocale.h>
-#include <kdialog.h>
-
-#include <tqlayout.h>
-#include <tqcheckbox.h>
-#include <tqlabel.h>
-#include <tqdom.h>
-
-ConfigGuiFile::ConfigGuiFile( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- TQBoxLayout *filenameLayout = new TQHBoxLayout( topLayout() );
-
- TQLabel *label = new TQLabel( i18n("Directory name:"), this );
- filenameLayout->addWidget( label );
-
- mFilename = new KURLRequester( this );
- mFilename->setMode( KFile::Directory | KFile::LocalOnly );
- filenameLayout->addWidget( mFilename );
-
- TQBoxLayout *recursiveLayout = new TQHBoxLayout( topLayout() );
-
- mRecursive = new TQCheckBox( i18n("Sync all subdirectories"), this );
- recursiveLayout->addWidget( mRecursive );
-
- topLayout()->addStretch( 1 );
-}
-
-void ConfigGuiFile::load( const TQString &xml )
-{
- TQDomDocument doc;
- doc.setContent( xml );
- TQDomElement docElement = doc.documentElement();
- TQDomNode n;
- for( n = docElement.firstChild(); !n.isNull(); n = n.nextSibling() ) {
- TQDomElement e = n.toElement();
- if ( e.tagName() == "path" ) {
- mFilename->setURL( e.text() );
- } else if ( e.tagName() == "recursive" ) {
- mRecursive->setChecked( e.text() == "TRUE" );
- }
- }
-}
-
-TQString ConfigGuiFile::save() const
-{
- TQString xml;
- xml = "<config>";
- xml += "<path>" + mFilename->url() + "</path>";
- xml += "<recursive>";
- if ( mRecursive->isChecked() ) xml += "TRUE";
- else xml += "FALSE";
- xml += "</recursive>";
- xml += "</config>";
-
- return xml;
-}
diff --git a/kitchensync/src/configguifile.h b/kitchensync/src/configguifile.h
deleted file mode 100644
index db938522..00000000
--- a/kitchensync/src/configguifile.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-#ifndef CONFIGGUIFILE_H
-#define CONFIGGUIFILE_H
-
-#include "configgui.h"
-
-class KURLRequester;
-class TQCheckBox;
-
-class ConfigGuiFile : public ConfigGui
-{
- public:
- ConfigGuiFile( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString &xml );
- TQString save() const;
-
- private:
- KURLRequester *mFilename;
- TQCheckBox *mRecursive;
-};
-
-#endif
diff --git a/kitchensync/src/configguigcalendar.cpp b/kitchensync/src/configguigcalendar.cpp
deleted file mode 100644
index 8fb4fd0e..00000000
--- a/kitchensync/src/configguigcalendar.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
- Copyright (c) 2006 Eduardo Habkost <ehabkost@raisama.net>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configguigcalendar.h"
-
-#include <tdelocale.h>
-
-#include <tqlayout.h>
-#include <tqlabel.h>
-#include <tqdom.h>
-#include <tqlineedit.h>
-
-ConfigGuiGoogleCalendar::ConfigGuiGoogleCalendar( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- TQBoxLayout *userLayout = new TQHBoxLayout( topLayout() );
-
- TQLabel *userLbl= new TQLabel( i18n("Username:"), this );
- userLayout->addWidget(userLbl);
-
- mUsername = new TQLineEdit(this);
- userLayout->addWidget(mUsername);
-
-
- TQBoxLayout *passLayout = new TQHBoxLayout( topLayout() );
-
- TQLabel *passLbl = new TQLabel( i18n("Password:"), this );
- passLayout->addWidget(passLbl);
-
- mPassword = new TQLineEdit(this);
- mPassword->setEchoMode(TQLineEdit::Password);
- passLayout->addWidget(mPassword);
-
- topLayout()->addWidget(new TQLabel( i18n("Please notice that currently the password is stored as plain text in the plugin configuration file"), this ));
-
- TQBoxLayout *urlLayout = new TQHBoxLayout( topLayout() );
- TQLabel *urlLbl = new TQLabel( i18n("Calendar URL:"), this );
- urlLayout->addWidget(urlLbl);
-
- mUrl = new TQLineEdit(this);
- urlLayout->addWidget(mUrl);
-
- topLayout()->addStretch( 1 );
-}
-
-void ConfigGuiGoogleCalendar::load( const TQString &xml )
-{
- TQDomDocument doc;
- doc.setContent( xml );
- TQDomElement docElement = doc.documentElement();
- TQDomNode n;
- for( n = docElement.firstChild(); !n.isNull(); n = n.nextSibling() ) {
- TQDomElement e = n.toElement();
- if ( e.tagName() == "username" ) {
- mUsername->setText(e.text());
- } else if ( e.tagName() == "password" ) {
- mPassword->setText(e.text());
- } else if ( e.tagName() == "url" ) {
- mUrl->setText(e.text());
- }
- }
-}
-
-TQString ConfigGuiGoogleCalendar::save() const
-{
- TQDomDocument doc;
- TQDomElement root = doc.createElement("config");
- doc.appendChild(root);
-
- TQDomElement un = doc.createElement("username");
- root.appendChild(un);
- un.appendChild(doc.createTextNode(mUsername->text()));
-
- TQDomElement pass = doc.createElement("password");
- root.appendChild(pass);
- pass.appendChild(doc.createTextNode(mPassword->text()));
-
- TQDomElement url = doc.createElement("url");
- root.appendChild(url);
- url.appendChild(doc.createTextNode(mUrl->text()));
-
- //TODO: Implement me!
- return doc.toString();
-}
diff --git a/kitchensync/src/configguigcalendar.h b/kitchensync/src/configguigcalendar.h
deleted file mode 100644
index 198cf77c..00000000
--- a/kitchensync/src/configguigcalendar.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
- Copyright (c) 2006 Eduardo Habkost <ehabkost@raisama.net>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-#ifndef CONFIGGUIGCALENDAR_H
-#define CONFIGGUIGCALENDAR_H
-
-#include "configgui.h"
-
-class TQLineEdit;
-
-class ConfigGuiGoogleCalendar : public ConfigGui
-{
- public:
- ConfigGuiGoogleCalendar( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString &xml );
- TQString save() const;
-
- private:
- TQLineEdit *mUsername;
- TQLineEdit *mPassword;
- TQLineEdit *mUrl;
-};
-
-#endif
diff --git a/kitchensync/src/configguignokii.cpp b/kitchensync/src/configguignokii.cpp
deleted file mode 100644
index cd392cb6..00000000
--- a/kitchensync/src/configguignokii.cpp
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2006 David Förster <david@dfoerster.de>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configguignokii.h"
-
-#include <tdelocale.h>
-#include <kdialog.h>
-#include <kcombobox.h>
-
-#include <kdebug.h>
-
-#include <tqlayout.h>
-#include <tqlabel.h>
-#include <tqlineedit.h>
-#include <tqcombobox.h>
-#include <tqdom.h>
-#include <tqvbox.h>
-
-ConfigGuiGnokii::ConfigGuiGnokii( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- TQGridLayout *layout = new TQGridLayout( topLayout() );
-
- // Model
- TQLabel *label = new TQLabel( i18n("Model:"), this );
- layout->addWidget( label, 0, 0 );
-
- mModel = new KComboBox( true, this );
- layout->addWidget( mModel, 0, 1 );
- mModel->insertItem( "2110" );
- mModel->insertItem( "3110" );
- mModel->insertItem( "6110" );
- mModel->insertItem( "6110" );
- mModel->insertItem( "6160" );
- mModel->insertItem( "6230" );
- mModel->insertItem( "6230i" );
- mModel->insertItem( "6510" );
- mModel->insertItem( "7110" );
- mModel->insertItem( "AT" );
- // This one requires the gnapplet and rfcomm_channel
- mModel->insertItem( "3650" );
- mModel->insertItem( "6600" );
- mModel->insertItem( "gnapplet" );
- mModel->insertItem( "symbian" );
- mModel->insertItem( "sx1" );
-
- connect( mModel, TQT_SIGNAL (activated( int ) ),
- this, TQT_SLOT( slotModelChanged () ) );
-
- // Connection
- label = new TQLabel( i18n("Connection:"), this );
- layout->addWidget( label, 1, 0 );
-
- mConnection = new TQComboBox( this );
- layout->addWidget( mConnection, 1, 1 );
-
- connect( mConnection, TQT_SIGNAL (activated( int ) ),
- this, TQT_SLOT( slotConnectionChanged ( int ) ) );
-
- // this is a list of all connection types accepted by the gnokii-sync plugin
- mConnectionTypes.append( ConnectionType( "bluetooth", i18n( "Bluetooth" ) ) );
- mConnectionTypes.append( ConnectionType( "irda", i18n( "IrDA" ) ) );
- mConnectionTypes.append( ConnectionType( "serial", i18n( "Serial" ) ) );
- mConnectionTypes.append( ConnectionType( "infrared", i18n( "Infrared" ) ) );
- mConnectionTypes.append( ConnectionType( "tcp", i18n( "TCP" ) ) );
- mConnectionTypes.append( ConnectionType( "dku2", i18n( "USB (nokia_dku2)" ) ) );
- mConnectionTypes.append( ConnectionType( "dku2libusb", i18n( "USB (libusb)" ) ) );
- mConnectionTypes.append( ConnectionType( "dau9p", i18n( "Serial (DAU9P cable)" ) ) );
- mConnectionTypes.append( ConnectionType( "dlr3p", i18n( "Serial (DLR3P cable)" ) ) );
- mConnectionTypes.append( ConnectionType( "tekram", i18n( "Tekram Ir-Dongle" ) ) );
- mConnectionTypes.append( ConnectionType( "m2bus", i18n( "Serial (M2BUS protocol)" ) ) );
-
- ConnectionTypeList::ConstIterator it;
- for ( it = mConnectionTypes.begin(); it != mConnectionTypes.end(); it++ ) {
- mConnection->insertItem( (*it).second );
- }
-
- TQVBox *connectionWidget = new TQVBox( this );
- connectionWidget->setMargin( KDialog::marginHint() );
- connectionWidget->setSpacing( 5 );
-
- mBluetooth = new BluetoothWidget( connectionWidget );
- mBluetooth->hide();
-
- layout->addMultiCellWidget( connectionWidget, 2, 2, 0, 1 );
-
- // Port
- mPortLabel = new TQLabel( i18n("Port:"), this );
- layout->addWidget( mPortLabel, 2, 0 );
- mPortLabel->hide();
-
- mPort = new KComboBox( true, this );
- layout->addWidget( mPort, 2, 1 );
- mPort->hide();
-
- mPort->insertItem( "/dev/ircomm0" );
- mPort->insertItem( "/dev/ircomm1" );
- mPort->insertItem( "/dev/ttyS0" );
- mPort->insertItem( "/dev/ttyS1" );
- mPort->insertItem( "/dev/ttyUSB0" );
- mPort->insertItem( "/dev/ttyUSB1" );
-
- layout->setColStretch( 1, 1 );
-
- topLayout()->addStretch( 1 );
-}
-
-void ConfigGuiGnokii::slotConnectionChanged( int nth )
-{
- mPort->hide();
- mPortLabel->hide();
- mBluetooth->hide();
-
- // Bluetooth
- if ( nth == 0 ) {
- mBluetooth->show();
- slotModelChanged();
-
- if ( !mPort->currentText().isEmpty() )
- mBluetooth->setAddress( mPort->currentText() );
-
- // dku2libusb
- } else if ( nth == 6 ) {
- // No widget needed.
- } else {
- mPort->show();
- mPortLabel->show();
- }
-
-}
-
-void ConfigGuiGnokii::slotModelChanged()
-{
- mBluetooth->hideChannel();
-
- if ( mModel->currentText() == "gnapplet"
- || mModel->currentText() == "symbian"
- || mModel->currentText() == "3650"
- || mModel->currentText() == "6600"
- || mModel->currentText() == "sx1")
- mBluetooth->showChannel();
- else
- mBluetooth->setChannel("");
-}
-
-void ConfigGuiGnokii::load( const TQString &xml )
-{
- TQDomDocument doc;
- doc.setContent( xml );
- TQDomElement docElement = doc.documentElement();
- TQDomNode n;
- for( n = docElement.firstChild(); !n.isNull(); n = n.nextSibling() ) {
- TQDomElement e = n.toElement();
- if ( e.tagName() == "connection" ) {
- for ( uint i = 0; i < mConnectionTypes.count(); i++ ) {
- if ( mConnectionTypes[i].first == e.text()) {
- mConnection->setCurrentItem( i );
- slotConnectionChanged( i );
- break;
- }
- }
- } else if ( e.tagName() == "port" ) {
- mPort->setCurrentText( e.text() );
- } else if ( e.tagName() == "model" ) {
- mModel->setCurrentText( e.text() );
- } else if ( e.tagName() == "rfcomm_channel" ) {
- mBluetooth->setChannel( e.text() );
- mBluetooth->showChannel();
- }
- }
-}
-
-TQString ConfigGuiGnokii::save() const
-{
- TQString xml;
- xml = "<config>";
-
- ConnectionTypeList::ConstIterator it;
- for ( it = mConnectionTypes.begin(); it != mConnectionTypes.end(); it++ ) {
- if ( mConnection->currentText() == (*it).second ) {
- xml += "<connection>" + (*it).first + "</connection>";
- break;
- }
- }
-
- if ( (*it).first == "bluetooth" )
- xml += "<port>" + mBluetooth->address() + "</port>";
- else if ( (*it).first == "dku2libusb" )
- xml += "<port>" + TQString("FF:FF:FF:FF:FF:FF") + "</port>"; // Only place holder for libgnokii
- else
- xml += "<port>" + mPort->currentText() + "</port>";
-
- // model
- xml += "<model>" + mModel->currentText() + "</model>";
-
- // rfcomm_channel
- if ( !mBluetooth->channel().isNull() )
- xml += "<rfcomm_channel>" + mBluetooth->channel() + "</rfcomm_channel>";
-
- xml += "</config>";
-
- return xml;
-}
-
-#include "configguignokii.moc"
diff --git a/kitchensync/src/configguignokii.h b/kitchensync/src/configguignokii.h
deleted file mode 100644
index 9dbbdd9a..00000000
--- a/kitchensync/src/configguignokii.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2006 David Förster <david@dfoerster.de>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-#ifndef CONFIGGUIGNOKII_H
-#define CONFIGGUIGNOKII_H
-
-#include "configgui.h"
-#include "connectionwidgets.h"
-
-#include <tqvaluelist.h>
-#include <tqpair.h>
-
-class TQLabel;
-class TQLineEdit;
-class TQComboBox;
-
-class ConfigGuiGnokii : public ConfigGui
-{
- Q_OBJECT
-
-
- public:
- ConfigGuiGnokii( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString &xml );
- TQString save() const;
-
- private:
- TQComboBox *mConnection;
- KComboBox *mPort;
- TQLabel *mPortLabel;
- KComboBox *mModel;
-
- BluetoothWidget *mBluetooth;
-
- typedef TQPair<TQString, TQString> ConnectionType;
- typedef TQValueList<ConnectionType> ConnectionTypeList;
- ConnectionTypeList mConnectionTypes;
-
- protected slots:
- void slotConnectionChanged( int nth );
- void slotModelChanged();
-
-};
-
-#endif
diff --git a/kitchensync/src/configguigpe.cpp b/kitchensync/src/configguigpe.cpp
deleted file mode 100644
index 4dce7d9b..00000000
--- a/kitchensync/src/configguigpe.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2007 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configguigpe.h"
-
-#include <tqcheckbox.h>
-#include <tqdom.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqspinbox.h>
-
-#include <kcombobox.h>
-#include <kdialog.h>
-#include <klineedit.h>
-#include <tdelocale.h>
-
-ConfigGuiGpe::ConfigGuiGpe( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- initGUI();
-
- mConnectionMode->insertItem( i18n( "Local" ) );
- mConnectionMode->insertItem( i18n( "Ssh" ) );
-}
-
-void ConfigGuiGpe::load( const TQString &xml )
-{
- TQDomDocument doc;
- doc.setContent( xml );
- TQDomElement docElement = doc.documentElement();
- TQDomNode node;
- for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- TQDomElement element = node.toElement();
- if ( element.tagName() == "use_local" ) {
- if ( element.text().toInt() == 1 )
- mConnectionMode->setCurrentItem( 0 );
- else
- mConnectionMode->setCurrentItem( 1 );
- } else if ( element.tagName() == "handheld_ip" ) {
- mIP->setText( element.text() );
- } else if ( element.tagName() == "handheld_port" ) {
- mPort->setValue( element.text().toInt() );
- } else if ( element.tagName() == "handheld_user" ) {
- mUser->setText( element.text() );
- }
- }
-}
-
-TQString ConfigGuiGpe::save() const
-{
- TQString config = "<config>";
-
- config += TQString( "<use_local>%1</use_local>" ).arg( mConnectionMode->currentItem() == 0 );
- config += TQString( "<use_ssh>%1</use_ssh>" ).arg( mConnectionMode->currentItem() == 1 );
- config += TQString( "<handheld_ip>%1</handheld_ip>" ).arg( mIP->text() );
- config += TQString( "<handheld_port>%1</handheld_port>" ).arg( mPort->value() );
- config += TQString( "<handheld_user>%1</handheld_user>" ).arg( mUser->text() );
-
- config += "</config>";
-
- return config;
-}
-
-void ConfigGuiGpe::initGUI()
-{
- TQGridLayout *layout = new TQGridLayout( topLayout(), 12, 4, KDialog::spacingHint() );
- layout->setMargin( KDialog::marginHint() );
-
- layout->addWidget( new TQLabel( i18n( "Connection Mode:" ), this ), 0, 0 );
- mConnectionMode = new KComboBox( this );
- layout->addMultiCellWidget( mConnectionMode, 0, 0, 0, 3 );
-
- layout->addWidget( new TQLabel( i18n( "IP Address:" ), this ), 1, 0 );
- mIP = new KLineEdit( this );
- mIP->setInputMask( "000.000.000.000" );
- layout->addWidget( mIP, 1, 1 );
-
- layout->addWidget( new TQLabel( i18n( "Port:" ), this ), 1, 2, TQt::AlignRight );
- mPort = new TQSpinBox( 1, 65536, 1, this );
- layout->addWidget( mPort, 1, 3 );
-
- layout->addWidget( new TQLabel( i18n( "User:" ), this ), 2, 0 );
- mUser = new KLineEdit( this );
- layout->addMultiCellWidget( mUser, 2, 2, 1, 3 );
-}
diff --git a/kitchensync/src/configguigpe.h b/kitchensync/src/configguigpe.h
deleted file mode 100644
index e1fc10c6..00000000
--- a/kitchensync/src/configguigpe.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2007 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#ifndef CONFIGGUIGPE_H
-#define CONFIGGUIGPE_H
-
-#include "configgui.h"
-
-class TQSpinBox;
-
-class KComboBox;
-class KLineEdit;
-
-class ConfigGuiGpe : public ConfigGui
-{
- public:
- ConfigGuiGpe( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString &xml );
- TQString save() const;
-
- private:
- void initGUI();
-
- KComboBox *mConnectionMode;
-
- KLineEdit *mIP;
- TQSpinBox *mPort;
- KLineEdit *mUser;
-};
-
-#endif
diff --git a/kitchensync/src/configguiirmc.cpp b/kitchensync/src/configguiirmc.cpp
deleted file mode 100644
index 331f9daa..00000000
--- a/kitchensync/src/configguiirmc.cpp
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include <kcombobox.h>
-#include <kdialog.h>
-#include <tdeglobal.h>
-#include <kiconloader.h>
-#include <kinputdialog.h>
-#include <klineedit.h>
-#include <tdelocale.h>
-#include <tdemessagebox.h>
-
-#include <kdebug.h>
-
-#include <tqapplication.h>
-#include <tqeventloop.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqpushbutton.h>
-#include <tqspinbox.h>
-#include <tqtabwidget.h>
-#include <tqtooltip.h>
-#include <tqvbox.h>
-
-#include "configguiirmc.h"
-
-ConfigGuiIRMC::ConfigGuiIRMC( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- initGUI();
-
- mConnectionType->insertItem( i18n( "Bluetooth" ) );
- mConnectionType->insertItem( i18n( "InfraRed (IR)" ) );
- mConnectionType->insertItem( i18n( "Cable" ) );
-
- connect( mConnectionType, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( connectionTypeChanged( int ) ) );
-
- connectionTypeChanged( 0 );
-}
-
-void ConfigGuiIRMC::load( const TQString &xml )
-{
- TQDomDocument doc;
- doc.setContent( xml );
- TQDomElement docElement = doc.documentElement();
- TQDomNode node;
- for ( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- TQDomElement element = node.toElement();
- if ( element.tagName() == "connectmedium" ) {
- if ( element.text() == "bluetooth" ) {
- mConnectionType->setCurrentItem( 0 );
- connectionTypeChanged( 0 );
- } else if ( element.text() == "ir" ) {
- mConnectionType->setCurrentItem( 1 );
- connectionTypeChanged( 1 );
- } else if ( element.text() == "cable" ) {
- mConnectionType->setCurrentItem( 2 );
- connectionTypeChanged( 2 );
- }
- } else if (element.tagName() == "btunit" ) {
- mBluetoothWidget->setAddress( element.text() );
- } else if (element.tagName() == "btchannel" ) {
- mBluetoothWidget->setChannel( element.text() );
- } else if (element.tagName() == "donttellsync" ) {
- mDontTellSync->setChecked( element.text() == "true" );
- }
-
-
- }
-
- mIRWidget->load( docElement );
- mCableWidget->load( docElement );
-}
-
-TQString ConfigGuiIRMC::save() const
-{
- TQDomDocument doc;
- TQDomElement config = doc.createElement( "config" );
- doc.appendChild( config );
-
- TQDomElement element = doc.createElement( "connectmedium" );
- if ( mConnectionType->currentItem() == 0 )
- element.appendChild( doc.createTextNode( "bluetooth" ) );
- if ( mConnectionType->currentItem() == 1 )
- element.appendChild( doc.createTextNode( "ir" ) );
- if ( mConnectionType->currentItem() == 2 )
- element.appendChild( doc.createTextNode( "cable" ) );
-
- config.appendChild( element );
-
- if ( mConnectionType->currentItem() == 0 ) {
- TQDomElement btunit = doc.createElement( "btunit" );
- if ( !mBluetoothWidget->address().isEmpty() )
- btunit.appendChild( doc.createTextNode( mBluetoothWidget->address() ) );
-
- TQDomElement btchannel = doc.createElement( "btchannel" );
- if ( !mBluetoothWidget->channel().isEmpty() )
- btchannel.appendChild( doc.createTextNode( mBluetoothWidget->channel() ) );
-
- config.appendChild( btunit );
- config.appendChild( btchannel );
- }
-
- if ( mDontTellSync->isChecked() ) {
- TQDomElement dontellsync = doc.createElement( "donttellsync" );
- dontellsync.appendChild( doc.createTextNode( "true" ) );
- config.appendChild( dontellsync );
- }
-
- mIRWidget->save( doc, config );
- mCableWidget->save( doc, config );
-
- return doc.toString();
-}
-
-void ConfigGuiIRMC::connectionTypeChanged( int type )
-{
- mBluetoothWidget->hide();
- mIRWidget->hide();
- mCableWidget->hide();
-
- if ( type == 0 )
- mBluetoothWidget->show();
- else if ( type == 1 )
- mIRWidget->show();
- else
- mCableWidget->show();
-}
-
-void ConfigGuiIRMC::initGUI()
-{
- TQTabWidget *tabWidget = new TQTabWidget( this );
- topLayout()->addWidget( tabWidget );
-
- TQVBox *connectionWidget = new TQVBox( tabWidget );
- connectionWidget->setMargin( KDialog::marginHint() );
- connectionWidget->setSpacing( 5 );
-
- tabWidget->addTab( connectionWidget, i18n( "Connection" ) );
-
- mConnectionType = new KComboBox( connectionWidget );
- TQToolTip::add( mConnectionType, i18n( "Select your connection type." ) );
-
- mBluetoothWidget = new BluetoothWidget( connectionWidget );
- mBluetoothWidget->hide();
-
- mIRWidget = new IRWidget( connectionWidget );
- mIRWidget->hide();
-
- mCableWidget = new CableWidget( connectionWidget );
- mCableWidget->hide();
-
- connectionWidget->setStretchFactor( mBluetoothWidget, 1 );
- connectionWidget->setStretchFactor( mIRWidget, 1 );
- connectionWidget->setStretchFactor( mCableWidget, 1 );
-
- TQVBox *optionsWidget = new TQVBox( tabWidget );
- optionsWidget->setMargin( KDialog::marginHint() );
- optionsWidget->setSpacing( 5 );
-
- tabWidget->addTab( optionsWidget, i18n( "Options" ) );
-
- TQHBox *optionBox = new TQHBox( optionsWidget );
- optionBox->setSpacing( KDialog::spacingHint() );
-
- TQLabel *label = new TQLabel( i18n( "Don't send OBEX UUID (IRMC-SYNC)" ), optionBox );
- mDontTellSync = new TQCheckBox( optionBox );
- TQToolTip::add( mDontTellSync, i18n( "Don't send OBEX UUID while connecting. Needed for older IrMC based mobile phones." ) );
- label->setBuddy( mDontTellSync );
-
-}
-
-#include "configguiirmc.moc"
diff --git a/kitchensync/src/configguiirmc.h b/kitchensync/src/configguiirmc.h
deleted file mode 100644
index a76dd782..00000000
--- a/kitchensync/src/configguiirmc.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#ifndef CONFIGGUIIRMC_H
-#define CONFIGGUIIRMC_H
-
-#include <tqcheckbox.h>
-#include <tqdom.h>
-
-#include "configgui.h"
-#include "connectionwidgets.h"
-
-class KComboBox;
-class KLineEdit;
-class TQCheckBox;
-class TQPushButton;
-class TQSpinBox;
-
-class ConfigGuiIRMC : public ConfigGui
-{
- Q_OBJECT
-
-
- public:
- ConfigGuiIRMC( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString &xml );
- TQString save() const;
-
- protected slots:
- void connectionTypeChanged( int type );
-
- private:
- void initGUI();
-
- KComboBox *mConnectionType;
- TQCheckBox *mDontTellSync;
-
- BluetoothWidget *mBluetoothWidget;
- IRWidget *mIRWidget;
- CableWidget *mCableWidget;
-};
-
-#endif
diff --git a/kitchensync/src/configguijescs.cpp b/kitchensync/src/configguijescs.cpp
deleted file mode 100644
index c4167bb3..00000000
--- a/kitchensync/src/configguijescs.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configguijescs.h"
-
-#include <tqcheckbox.h>
-#include <tqdom.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-
-#include <klineedit.h>
-#include <kdialog.h>
-#include <tdelocale.h>
-
-ConfigGuiJescs::ConfigGuiJescs( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- initGUI();
-}
-
-void ConfigGuiJescs::load( const TQString &xml )
-{
- TQDomDocument doc;
- doc.setContent( xml );
- TQDomElement docElement = doc.documentElement();
- TQDomNode node;
- for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- TQDomElement element = node.toElement();
- if ( element.tagName() == "url" ) {
- mUrl->setText( element.text() );
- } else if ( element.tagName() == "username" ) {
- mUsername->setText( element.text() );
- } else if ( element.tagName() == "password" ) {
- mPassword->setText( element.text() );
- } else if ( element.tagName() == "del_notify" ) {
- mDelNotify->setChecked( element.text() == "1" );
- }
- }
-}
-
-TQString ConfigGuiJescs::save() const
-{
- int delNotifyState;
- TQString config = "<config>\n";
-
- config += TQString( "<url>%1</url>\n" ).arg( mUrl->text() );
- config += TQString( "<username>%1</username>\n" ).arg( mUsername->text() );
- config += TQString( "<password>%1</password>\n" ).arg( mPassword->text() );
- if ( mDelNotify->isChecked() ) { delNotifyState = 1;
- } else { delNotifyState = 0;
- }
- config += TQString( "<del_notify>%1</del_notify>\n" ).arg( delNotifyState );
-
- config += "</config>";
-
- return config;
-}
-
-void ConfigGuiJescs::initGUI()
-{
- TQGridLayout *layout = new TQGridLayout( topLayout(), 12, 3, KDialog::spacingHint() );
- layout->setMargin( KDialog::marginHint() );
-
- layout->addWidget( new TQLabel( i18n( "URL:" ), this ), 0, 0 );
- mUrl = new KLineEdit( this );
- layout->addMultiCellWidget( mUrl, 0, 0, 1, 2 );
-
- layout->addWidget( new TQLabel( i18n( "Username:" ), this ), 1, 0 );
- mUsername = new KLineEdit( this );
- layout->addMultiCellWidget( mUsername, 1, 1, 1, 2 );
-
- layout->addWidget( new TQLabel( i18n( "Password:" ), this ), 2, 0 );
- mPassword = new KLineEdit( this );
- mPassword->setEchoMode( KLineEdit::Password );
- layout->addMultiCellWidget( mPassword, 2, 2, 1, 2 );
-
- mDelNotify = new TQCheckBox( this );
- mDelNotify->setText( "Notify attendees about event/task deletion" );
- layout->addMultiCellWidget( mDelNotify, 3, 3, 0, 2 );
-}
diff --git a/kitchensync/src/configguijescs.h b/kitchensync/src/configguijescs.h
deleted file mode 100644
index 1667900c..00000000
--- a/kitchensync/src/configguijescs.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#ifndef CONFIGGUIJESCS_H
-#define CONFIGGUIJESCS_H
-
-#include "configgui.h"
-
-class KLineEdit;
-class TQCheckBox;
-
-class ConfigGuiJescs : public ConfigGui
-{
- public:
- ConfigGuiJescs( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString &xml );
-
- TQString save() const;
-
- private:
- void initGUI();
-
- KLineEdit *mUrl;
- KLineEdit *mUsername;
- KLineEdit *mPassword;
- TQCheckBox *mDelNotify;
-};
-
-#endif
diff --git a/kitchensync/src/configguildap.cpp b/kitchensync/src/configguildap.cpp
deleted file mode 100644
index 1b1c3622..00000000
--- a/kitchensync/src/configguildap.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2007 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configguildap.h"
-
-#include <tqcheckbox.h>
-#include <tqdom.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqspinbox.h>
-
-#include <kcombobox.h>
-#include <kdialog.h>
-#include <klineedit.h>
-#include <tdelocale.h>
-
-ConfigGuiLdap::ConfigGuiLdap( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- initGUI();
-
- mSearchScope->insertItem( i18n( "Base" ) );
- mSearchScope->insertItem( i18n( "One" ) );
- mSearchScope->insertItem( i18n( "Sub" ) );
-}
-
-void ConfigGuiLdap::load( const TQString &xml )
-{
- TQDomDocument doc;
- doc.setContent( xml );
- TQDomElement docElement = doc.documentElement();
- TQDomNode node;
- for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- TQDomElement element = node.toElement();
- if ( element.tagName() == "servername" ) {
- mLdapWidget->setHost( element.text() );
- } else if ( element.tagName() == "serverport" ) {
- mLdapWidget->setPort( element.text().toInt() );
- } else if ( element.tagName() == "binddn" ) {
- mLdapWidget->setBindDN( element.text() );
- } else if ( element.tagName() == "password" ) {
- mLdapWidget->setPassword( element.text() );
- } else if ( element.tagName() == "anonymous" ) {
- mLdapWidget->setAuthAnon( element.text().toInt() == 1 );
- } else if ( element.tagName() == "searchbase" ) {
- mLdapWidget->setDn( element.text() );
- } else if ( element.tagName() == "searchfilter" ) {
- mLdapWidget->setFilter( element.text() );
- } else if ( element.tagName() == "storebase" ) {
- mLdapWidget->setDn( element.text() );
- } else if ( element.tagName() == "keyattr" ) {
- mKeyAttribute->setText( element.text() );
- } else if ( element.tagName() == "scope" ) {
- TQStringList list;
- list << "base" << "one" << "sub";
- for ( uint i = 0; i < list.count(); ++i )
- if ( list[ i ] == element.text() )
- mSearchScope->setCurrentItem( i );
-
- } else if ( element.tagName() == "authmech" ) {
- if ( element.text() == "SIMPLE" ) {
- mLdapWidget->setAuthSimple( true );
- }
- } else if ( element.tagName() == "encryption" ) {
- mEncryption->setChecked( element.text().toInt() == 1 );
- } else if ( element.tagName() == "ldap_read" ) {
- mReadLdap->setChecked( element.text().toInt() == 1 );
- } else if ( element.tagName() == "ldap_write" ) {
- mWriteLdap->setChecked( element.text().toInt() == 1 );
- }
- }
-}
-
-TQString ConfigGuiLdap::save() const
-{
- TQString config = "<config>\n";
-
- config += TQString( "<servername>%1</servername>\n" ).arg( mLdapWidget->host() );
- config += TQString( "<serverport>%1</serverport>\n" ).arg( mLdapWidget->port() );
- config += TQString( "<binddn>%1</binddn>\n" ).arg( mLdapWidget->bindDN() );
- config += TQString( "<password>%1</password>\n" ).arg( mLdapWidget->password() );
- config += TQString( "<anonymous>%1</anonymous>\n" ).arg( mLdapWidget->isAuthAnon() ? "1" : "0" );
- config += TQString( "<searchbase>%1</searchbase>\n" ).arg( mLdapWidget->dn() );
- config += TQString( "<searchfilter>%1</searchfilter>\n" ).arg( mLdapWidget->filter() );
- config += TQString( "<storebase>%1</storebase>\n" ).arg( mLdapWidget->dn() );
- config += TQString( "<keyattr>%1</keyattr>\n" ).arg( mKeyAttribute->text() );
-
- TQStringList scopes;
- scopes << "base" << "one" << "sub";
-
- config += TQString( "<scope>%1</scope>\n" ).arg( scopes[ mSearchScope->currentItem() ] );
-
- config += TQString( "<authmech>SIMPLE</authmech>\n" );
- config += TQString( "<encryption>%1</encryption>\n" ).arg( mEncryption->isChecked() ? "1" : "0" );
-
- config += TQString( "<ldap_read>%1</ldap_read>\n" ).arg( mReadLdap->isChecked() ? "1" : "0" );
- config += TQString( "<ldap_write>%1</ldap_write>\n" ).arg( mWriteLdap->isChecked() ? "1" : "0" );
-
- config += "</config>";
-
- return config;
-}
-
-void ConfigGuiLdap::initGUI()
-{
- TQGridLayout *layout = new TQGridLayout( topLayout(), 12, 4, KDialog::spacingHint() );
- layout->setMargin( KDialog::marginHint() );
-
- mLdapWidget = new TDEABC::LdapConfigWidget( TDEABC::LdapConfigWidget::W_HOST |
- TDEABC::LdapConfigWidget::W_PORT |
- TDEABC::LdapConfigWidget::W_USER |
- TDEABC::LdapConfigWidget::W_PASS |
- TDEABC::LdapConfigWidget::W_BINDDN |
- TDEABC::LdapConfigWidget::W_DN |
- TDEABC::LdapConfigWidget::W_FILTER |
- TDEABC::LdapConfigWidget::W_AUTHBOX, this );
-
- mKeyAttribute = new KLineEdit( this );
- mSearchScope = new KComboBox( this );
- mEncryption = new TQCheckBox( i18n( "Use encryption" ), this );
- mReadLdap = new TQCheckBox( i18n( "Load data from LDAP" ), this );
- mWriteLdap = new TQCheckBox( i18n( "Save data to LDAP" ), this );
-
- layout->addMultiCellWidget( mLdapWidget, 0, 9, 0, 3 );
- layout->addWidget( new TQLabel( i18n( "Key Attribute:" ), this ), 10, 0 );
- layout->addMultiCellWidget( mKeyAttribute, 10, 10, 1, 2 );
- layout->addWidget( new TQLabel( i18n( "Search Scope:" ), this ), 11, 0 );
- layout->addMultiCellWidget( mSearchScope, 11, 11, 1, 2 );
- layout->addWidget( mEncryption, 12, 0 );
- layout->addWidget( mReadLdap, 13, 0 );
- layout->addWidget( mWriteLdap, 13, 3 );
-
-}
-
-#include "configguildap.moc"
diff --git a/kitchensync/src/configguildap.h b/kitchensync/src/configguildap.h
deleted file mode 100644
index 81b8857b..00000000
--- a/kitchensync/src/configguildap.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2007 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#ifndef CONFIGGUILDAP_H
-#define CONFIGGUILDAP_H
-
-#include "configgui.h"
-#include "tdeabc/ldapconfigwidget.h"
-
-class TQCheckBox;
-class TQLabel;
-class TQSpinBox;
-
-namespace TDEABC {
- class LdapConfigWidget;
-}
-class KComboBox;
-class KLineEdit;
-
-class ConfigGuiLdap : public ConfigGui
-{
- Q_OBJECT
-
-
- public:
- ConfigGuiLdap( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString &xml );
- TQString save() const;
-
- private:
- void initGUI();
-
- TDEABC::LdapConfigWidget *mLdapWidget;
- KLineEdit *mKeyAttribute;
- KComboBox *mSearchScope;
- TQCheckBox *mEncryption;
- TQCheckBox *mReadLdap;
- TQCheckBox *mWriteLdap;
-
-};
-
-#endif
diff --git a/kitchensync/src/configguimoto.cpp b/kitchensync/src/configguimoto.cpp
deleted file mode 100644
index bcb9bd59..00000000
--- a/kitchensync/src/configguimoto.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configguimoto.h"
-
-#include <tqdom.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-
-#include <klineedit.h>
-#include <kdialog.h>
-#include <tdelocale.h>
-
-ConfigGuiMoto::ConfigGuiMoto( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- initGUI();
-}
-
-void ConfigGuiMoto::load( const TQString &xml )
-{
- TQDomDocument doc;
- doc.setContent( xml );
- TQDomElement docElement = doc.documentElement();
- TQDomNode node;
- for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- TQDomElement element = node.toElement();
- if ( element.tagName() == "device" ) {
- mDeviceString->setText( element.text() );
- }
- }
-}
-
-TQString ConfigGuiMoto::save() const
-{
- TQString config = "<config>\n";
-
- config += TQString( "<device>%1</device>\n" ).arg( mDeviceString->text() );
-
- config += "</config>";
-
- return config;
-}
-
-void ConfigGuiMoto::initGUI()
-{
- TQGridLayout *layout = new TQGridLayout( topLayout(), 12, 3, KDialog::spacingHint() );
- layout->setMargin( KDialog::marginHint() );
-
- layout->addWidget( new TQLabel( i18n( "Device String:" ), this ), 0, 0 );
- mDeviceString = new KLineEdit( this );
- layout->addMultiCellWidget( mDeviceString, 0, 0, 1, 2 );
-}
diff --git a/kitchensync/src/configguimoto.h b/kitchensync/src/configguimoto.h
deleted file mode 100644
index cd588fac..00000000
--- a/kitchensync/src/configguimoto.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#ifndef CONFIGGUIMOTO_H
-#define CONFIGGUIMOTO_H
-
-#include "configgui.h"
-
-class KLineEdit;
-
-class ConfigGuiMoto : public ConfigGui
-{
- public:
- ConfigGuiMoto( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString &xml );
- TQString save() const;
-
- private:
- void initGUI();
-
- KLineEdit *mDeviceString;
-};
-
-#endif
diff --git a/kitchensync/src/configguiopie.cpp b/kitchensync/src/configguiopie.cpp
deleted file mode 100644
index 33bf9e08..00000000
--- a/kitchensync/src/configguiopie.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2006 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configguiopie.h"
-
-#include <tdelocale.h>
-
-#include <tqcombobox.h>
-#include <tqdom.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqlineedit.h>
-#include <tqspinbox.h>
-
-ConfigGuiOpie::ConfigGuiOpie( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- TQGridLayout *layout = new TQGridLayout( topLayout() );
-
- TQLabel *label = new TQLabel( i18n("Device IP:"), this );
- layout->addWidget( label, 0, 0 );
-
- mDeviceIP = new TQLineEdit( this );
- mDeviceIP->setInputMask( "000.000.000.000" );
- label->setBuddy( mDeviceIP );
- layout->addWidget( mDeviceIP, 0, 1 );
-
- label = new TQLabel( i18n("Device Type:"), this );
- layout->addWidget( label, 1, 0 );
-
- mDeviceType = new TQComboBox( this );
- label->setBuddy( mDeviceType );
- layout->addWidget( mDeviceType, 1, 1 );
-
- label = new TQLabel( i18n("Username:"), this );
- layout->addWidget( label, 2, 0 );
-
- mUserName = new TQLineEdit( this );
- label->setBuddy( mUserName );
- layout->addWidget( mUserName, 2, 1 );
-
- label = new TQLabel( i18n("Password:"), this );
- layout->addWidget( label, 3, 0 );
-
- mPassword = new TQLineEdit( this );
- mPassword->setEchoMode( TQLineEdit::Password );
- label->setBuddy( mPassword );
- layout->addWidget( mPassword, 3, 1 );
-
- label = new TQLabel( i18n("Protocol:"), this );
- layout->addWidget( label, 4, 0 );
-
- mConnectionType = new TQComboBox( this );
- label->setBuddy( mConnectionType );
- layout->addWidget( mConnectionType, 4, 1 );
-
- label = new TQLabel( i18n("Port:"), this );
- layout->addWidget( label, 5, 0 );
-
- mPort = new TQSpinBox( this );
- mPort->setRange( 0, 65335 );
- label->setBuddy( mPort );
- layout->addWidget( mPort, 5, 1 );
-
- mDeviceType->insertItem( i18n("Opie/OpenZaurus") );
- mDeviceType->insertItem( i18n("TQtopia2") );
-
- mConnectionType->insertItem( i18n("SCP") );
- mConnectionType->insertItem( i18n("FTP") );
-
- topLayout()->addStretch( 1 );
-}
-
-void ConfigGuiOpie::load( const TQString &xml )
-{
- TQDomDocument doc;
- doc.setContent( xml );
- TQDomElement docElement = doc.documentElement();
- TQDomNode n;
- for( n = docElement.firstChild(); !n.isNull(); n = n.nextSibling() ) {
- TQDomElement e = n.toElement();
- if ( e.tagName() == "username" ) {
- mUserName->setText( e.text() );
- } else if ( e.tagName() == "password" ) {
- mPassword->setText( e.text() );
- } else if ( e.tagName() == "url" ) {
- mDeviceIP->setText( e.text() );
- } else if ( e.tagName() == "port" ) {
- mPort->setValue( e.text().toInt() );
- } else if ( e.tagName() == "device" ) {
- if ( e.text() == "opie" )
- mDeviceType->setCurrentItem( 0 );
- else
- mDeviceType->setCurrentItem( 1 );
- } else if ( e.tagName() == "conntype" ) {
- if ( e.text() == "scp" )
- mConnectionType->setCurrentItem( 0 );
- else
- mConnectionType->setCurrentItem( 1 );
- }
- }
-}
-
-TQString ConfigGuiOpie::save() const
-{
- TQString xml;
- xml = "<config>";
- xml += "<username>" + mUserName->text() + "</username>";
- xml += "<password>" + mPassword->text() + "</password>";
- xml += "<url>" + mDeviceIP->text() + "</url>";
- xml += "<device>" + TQString( mDeviceType->currentItem() == 0 ? "opie" : "qtopia2" ) + "</device>";
- xml += "<port>" + TQString::number( mPort->value() ) + "</port>";
- xml += "<conntype>" + TQString( mConnectionType->currentItem() == 0 ? "scp" : "ftp" ) + "</conntype>";
- xml += "</config>";
-
- return xml;
-}
diff --git a/kitchensync/src/configguiopie.h b/kitchensync/src/configguiopie.h
deleted file mode 100644
index e90f4acf..00000000
--- a/kitchensync/src/configguiopie.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2006 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-#ifndef CONFIGGUIOPIE_H
-#define CONFIGGUIOPIE_H
-
-#include "configgui.h"
-
-class TQComboBox;
-class TQLineEdit;
-class TQSpinBox;
-
-class ConfigGuiOpie : public ConfigGui
-{
- public:
- ConfigGuiOpie( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString &xml );
- TQString save() const;
-
- private:
- TQLineEdit *mDeviceIP;
- TQComboBox *mDeviceType;
- TQLineEdit *mUserName;
- TQLineEdit *mPassword;
- TQComboBox *mConnectionType;
- TQSpinBox *mPort;
-};
-
-#endif
diff --git a/kitchensync/src/configguipalm.cpp b/kitchensync/src/configguipalm.cpp
deleted file mode 100644
index ee85ba29..00000000
--- a/kitchensync/src/configguipalm.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include <kcombobox.h>
-#include <kdialog.h>
-#include <klineedit.h>
-#include <tdelocale.h>
-
-#include <tqbuttongroup.h>
-#include <tqcheckbox.h>
-#include <tqdom.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqradiobutton.h>
-#include <tqspinbox.h>
-#include <tqtabwidget.h>
-
-#include "configguipalm.h"
-
-ConfigGuiPalm::ConfigGuiPalm( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- initGUI();
-
- mDevice->insertItem( "/dev/pilot" );
- mDevice->insertItem( "/dev/ttyUSB0" );
- mDevice->insertItem( "/dev/ttyUSB1" );
- mDevice->insertItem( "/dev/ttyUSB2" );
- mDevice->insertItem( "/dev/ttyUSB3" );
-
- mSpeed->insertItem( "9600" );
- mSpeed->insertItem( "19200" );
- mSpeed->insertItem( "38400" );
- mSpeed->insertItem( "57600" );
- mSpeed->insertItem( "115200" );
-}
-
-void ConfigGuiPalm::load( const TQString &xml )
-{
- TQDomDocument doc;
- doc.setContent( xml );
- TQDomElement docElement = doc.documentElement();
- TQDomNode node;
- for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- TQDomElement element = node.toElement();
- if ( element.tagName() == "sockaddr" ) {
- mDevice->setCurrentText( element.text() );
- } else if ( element.tagName() == "speed" ) {
- mSpeed->setCurrentText( element.text() );
- } else if ( element.tagName() == "timeout" ) {
- mTimeout->setValue( element.text().toInt() );
- } else if ( element.tagName() == "username" ) {
- mUserName->setText( element.text() );
- } else if ( element.tagName() == "mismatch" ) {
- switch ( element.text().toInt() ) {
- case 0:
- mSyncAlways->setChecked( true );
- break;
- case 2:
- mSyncAbort->setChecked( true );
- break;
- case 1:
- default:
- mSyncAsk->setChecked( true );
- break;
- }
- } else if ( element.tagName() == "popup" ) {
- mPopup->setChecked( element.text() == "1" );
- }
- }
-}
-
-TQString ConfigGuiPalm::save() const
-{
- TQString config = "<config>";
-
- config += "<sockaddr>" + mDevice->currentText() + "</sockaddr>";
- config += "<username>" + mUserName->text() + "</username>";
- config += "<timeout>" + TQString::number( mTimeout->value() ) + "</timeout>";
- config += "<type>0</type>";
- config += "<speed>" + mSpeed->currentText() + "</speed>";
- config += "<id>0</id>";
- config += "<codepage>cp1252</codepage>";
- config += "<popup>" + TQString( mPopup->isChecked() ? "1" : "0" ) + "</popup>";
-
- TQString popup;
- if ( mSyncAlways->isChecked() )
- popup = "0";
- else if ( mSyncAsk->isChecked() )
- popup = "1";
- else if ( mSyncAbort->isChecked() )
- popup = "2";
-
- config += "<mismatch>" + popup + "</mismatch>";
-
- config += "</config>";
-
- return config;
-}
-
-void ConfigGuiPalm::initGUI()
-{
- TQFont boldFont = font();
- boldFont.setBold( true );
-
- TQTabWidget *tabWidget = new TQTabWidget( this );
-
- TQWidget *connectionWidget = new TQWidget( tabWidget );
- TQVBoxLayout *connectionLayout = new TQVBoxLayout( connectionWidget,
- KDialog::marginHint(), KDialog::spacingHint() );
-
- TQLabel *label = new TQLabel( i18n( "Connection" ), connectionWidget );
- label->setFont( boldFont );
- connectionLayout->addWidget( label );
-
- TQGridLayout *gridLayout = new TQGridLayout( connectionLayout, 3, 2, KDialog::spacingHint() );
- gridLayout->setMargin( KDialog::marginHint() );
-
- gridLayout->addWidget( new TQLabel( i18n( "Port:" ), connectionWidget ), 0, 0 );
- gridLayout->addWidget( new TQLabel( i18n( "Speed:" ), connectionWidget ), 1, 0 );
- gridLayout->addWidget( new TQLabel( i18n( "Timeout:" ), connectionWidget ), 2, 0 );
-
- mDevice = new KComboBox( true, connectionWidget );
- mSpeed = new KComboBox( connectionWidget );
- mTimeout = new TQSpinBox( 1, 60, 1, connectionWidget );
- mTimeout->setSuffix( i18n( " sec" ) );
-
- gridLayout->addWidget( mDevice, 0, 1 );
- gridLayout->addWidget( mSpeed, 1, 1 );
- gridLayout->addWidget( mTimeout, 2, 1 );
- gridLayout->setColStretch( 1, 1 );
-
- label = new TQLabel( i18n( "User" ), connectionWidget );
- label->setFont( boldFont );
- connectionLayout->addWidget( label );
-
- gridLayout = new TQGridLayout( connectionLayout, 1, 2, KDialog::spacingHint() );
- gridLayout->setMargin( KDialog::marginHint() );
-
- gridLayout->addWidget( new TQLabel( i18n( "Username:" ), connectionWidget ), 0, 0 );
-
- mUserName = new KLineEdit( connectionWidget );
- gridLayout->addWidget( mUserName, 0, 1 );
-
- label = new TQLabel( i18n( "What to do if Username does not match" ), connectionWidget );
- label->setFont( boldFont );
- connectionLayout->addWidget( label );
-
- gridLayout = new TQGridLayout( connectionLayout, 1, 2, KDialog::spacingHint() );
- gridLayout->setMargin( KDialog::marginHint() );
-
- TQButtonGroup *buttonGroup = new TQButtonGroup( 1, Qt::Horizontal, connectionWidget );
- buttonGroup->setExclusive( true );
- buttonGroup->setFrameStyle( TQFrame::NoFrame );
- mSyncAlways = new TQRadioButton( i18n( "Sync Anyway" ), buttonGroup );
- mSyncAsk = new TQRadioButton( i18n( "Ask What To Do" ), buttonGroup );
- mSyncAbort = new TQRadioButton( i18n( "Abort Sync" ), buttonGroup );
-
- gridLayout->addMultiCellWidget( buttonGroup, 0, 0, 0, 1 );
-
- connectionLayout->addStretch( 1 );
- tabWidget->addTab( connectionWidget, i18n( "Connection" ) );
-
- TQWidget *optionWidget = new TQWidget( tabWidget );
- TQVBoxLayout *optionLayout = new TQVBoxLayout( optionWidget,
- KDialog::marginHint(), KDialog::spacingHint() );
-
- label = new TQLabel( i18n( "Hotsync Notification" ), optionWidget );
- label->setFont( boldFont );
- optionLayout->addWidget( label );
-
- gridLayout = new TQGridLayout( optionLayout, 1, 2, KDialog::spacingHint() );
- gridLayout->setMargin( KDialog::marginHint() );
-
- mPopup = new TQCheckBox( i18n( "Popup when interaction is required" ), optionWidget );
- gridLayout->addMultiCellWidget( mPopup, 0, 0, 0, 1 );
-
- optionLayout->addStretch( 1 );
- tabWidget->addTab( optionWidget, i18n( "Options" ) );
-
- topLayout()->addWidget( tabWidget );
-}
diff --git a/kitchensync/src/configguipalm.h b/kitchensync/src/configguipalm.h
deleted file mode 100644
index 354e5a29..00000000
--- a/kitchensync/src/configguipalm.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#ifndef CONFIGGUIPALM_H
-#define CONFIGGUIPALM_H
-
-#include "configgui.h"
-
-class KComboBox;
-class KLineEdit;
-class TQCheckBox;
-class TQRadioButton;
-class TQSpinBox;
-
-class ConfigGuiPalm : public ConfigGui
-{
- public:
- ConfigGuiPalm( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString &xml );
- TQString save() const;
-
- private:
- void initGUI();
-
- KComboBox *mDevice;
- KComboBox *mSpeed;
- TQSpinBox *mTimeout;
-
- KLineEdit *mUserName;
-
- TQRadioButton *mSyncAlways;
- TQRadioButton *mSyncAsk;
- TQRadioButton *mSyncAbort;
-
- TQCheckBox *mPopup;
- KComboBox *mVerbosity;
- KComboBox *mCodePage;
-};
-
-#endif
diff --git a/kitchensync/src/configguisunbird.cpp b/kitchensync/src/configguisunbird.cpp
deleted file mode 100644
index 7623e413..00000000
--- a/kitchensync/src/configguisunbird.cpp
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2007 Tobias Koenig <tokoe@kde.org>
- Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configguisunbird.h"
-
-#include <tqdom.h>
-#include <tqtabwidget.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqbuttongroup.h>
-#include <tqcheckbox.h>
-#include <tqsizepolicy.h>
-#include <tqptrlist.h>
-#include <tqspinbox.h>
-#include <tqwidget.h>
-
-#include <kurlrequester.h>
-#include <klineedit.h>
-#include <kpushbutton.h>
-#include <kdialog.h>
-#include <tdelocale.h>
-#include <tdefile.h>
-
-ConfigGuiSunbird::ConfigGuiSunbird( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- TQTabWidget *tabWidget = new TQTabWidget( this );
- topLayout()->addWidget( tabWidget );
-
- mLocalWidget = new TQWidget( tabWidget );
- mLocalLayout = new TQVBoxLayout( mLocalWidget, KDialog::spacingHint() );
-
- mWebdavWidget = new TQWidget( tabWidget );
- mWebdavLayout = new TQVBoxLayout( mWebdavWidget, KDialog::spacingHint() );
-
- tabWidget->addTab( mLocalWidget, i18n( "Local Calendars" ) );
- tabWidget->addTab( mWebdavWidget, i18n( "WebDAV Calendars" ) );
-
- KPushButton *mLocalAddButton = new KPushButton( mLocalWidget );
- mLocalAddButton->setText( i18n( "Add new calendar" ) );
- mLocalAddButton->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
- mLocalLayout->addWidget( mLocalAddButton );
- connect( mLocalAddButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( addLocalCalendar() ) );
-
- KPushButton *mWebdavAddButton = new KPushButton( mWebdavWidget );
- mWebdavAddButton->setText( i18n( "Add new calendar" ) );
- mWebdavAddButton->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
- mWebdavLayout->addWidget( mWebdavAddButton );
- connect( mWebdavAddButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( addWebdavCalendar() ) );
-
- mLocalSpacer = new TQSpacerItem( 20, 40, TQSizePolicy::Expanding );
- mLocalLayout->addItem( mLocalSpacer );
- mWebdavSpacer = new TQSpacerItem( 20, 40, TQSizePolicy::Expanding );
- mWebdavLayout->addItem( mWebdavSpacer );
-}
-
-void ConfigGuiSunbird::load( const TQString &xml )
-{
- TQString path;
- TQString url;
- TQString username;
- TQString password;
- TQString defaultcal;
- TQString days;
-
- TQDomDocument doc;
- doc.setContent( xml );
- TQDomElement docElement = doc.documentElement();
- TQDomNode node;
- for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- TQDomElement element = node.toElement();
- if ( element.tagName() == "file" ) {
- TQDomAttr pathAttr = element.attributeNode( "path" );
- path = pathAttr.value();
- TQDomAttr defaultAttr = element.attributeNode( "default" );
- defaultcal = defaultAttr.value();
- TQDomAttr daysAttr = element.attributeNode( "deletedaysold" );
- days = daysAttr.value();
-
- LocalCalendar *cal = new LocalCalendar( path, defaultcal, days, mLocalWidget );
- mLocalLayout->removeItem( mLocalSpacer );
- cal->setSizePolicy( TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Fixed ) );
- mLocalLayout->addWidget( cal );
- mLocalLayout->addItem( mLocalSpacer );
- mLocalList.append( cal );
-
- connect( cal, TQT_SIGNAL( deleteRequest( LocalCalendar* ) ), TQT_SLOT( delLocalCalendar( LocalCalendar* ) ) );
- cal->show();
- } else if ( element.tagName() == "webdav" ) {
- TQDomAttr urlAttr = element.attributeNode( "url" );
- url = urlAttr.value();
- TQDomAttr unameAttr = element.attributeNode( "username" );
- username = unameAttr.value();
- TQDomAttr pwordAttr = element.attributeNode( "password" );
- password = pwordAttr.value();
- TQDomAttr defaultAttr = element.attributeNode( "default" );
- defaultcal = defaultAttr.value();
- TQDomAttr daysAttr = element.attributeNode( "deletedaysold" );
- days = daysAttr.value();
-
- WebdavCalendar *cal = new WebdavCalendar( username, password,
- url, defaultcal, days, mWebdavWidget );
- mWebdavLayout->removeItem( mWebdavSpacer );
- cal->setSizePolicy( TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Fixed ) );
- mWebdavLayout->addWidget( cal );
- mWebdavLayout->addItem( mWebdavSpacer );
- mWebdavList.append( cal );
-
- connect( cal, TQT_SIGNAL( deleteRequest( WebdavCalendar* ) ), TQT_SLOT( delWebdavCalendar( WebdavCalendar* ) ) );
- cal->show();
- }
- }
-}
-
-TQString ConfigGuiSunbird::save() const
-{
- TQString config = "<config>\n";
-
- for ( uint i = 0; i < mLocalList.count(); ++i ) {
- LocalCalendar *lcal = mLocalList[ i ];
- config += TQString( "<file " );
- config += TQString( "path=\"%1\" " ).arg( lcal->mPathRequester->url() );
-
- if ( lcal->mDaysCheckBox->isChecked() ) {
- config += TQString( "deletedaysold=\"%1\" " ).arg( lcal->mDaysSpinBox->value() );
- }
- if ( lcal->mDefaultCheckBox->isChecked() ) {
- config += TQString( "default=\"1\" " );
- }
- config += TQString( "/>\n" );
- }
-
- for ( uint i = 0; i < mWebdavList.count(); ++i ) {
- WebdavCalendar *wcal = mWebdavList[ i ];
- config += TQString( "<webdav " );
- config += TQString( "username=\"%1\" " ).arg( wcal->mUsername->text() );
- config += TQString( "password=\"%1\" " ).arg( wcal->mPassword->text() );
- config += TQString( "url=\"%1\" " ).arg( wcal->mUrl->text() );
-
- if ( wcal->mDaysCheckBox->isChecked() ) {
- config += TQString( "deletedaysold=\"%1\" " ).arg( wcal->mDaysSpinBox->value() );
- }
- if ( wcal->mDefaultCheckBox->isChecked() ) {
- config += TQString( "default=\"1\" " );
- }
- config += TQString( "/>\n" );
- }
- config += "</config>";
-
- return config;
-}
-
-void ConfigGuiSunbird::addLocalCalendar()
-{
- LocalCalendar *cal = new LocalCalendar( mLocalWidget );
- mLocalLayout->removeItem( mLocalSpacer );
- cal->setSizePolicy( TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Fixed ) );
- mLocalLayout->addWidget( cal );
- mLocalLayout->addItem( mLocalSpacer );
- mLocalList.append( cal );
-
- connect( cal, TQT_SIGNAL( deleteRequest( LocalCalendar* ) ), TQT_SLOT( delLocalCalendar( LocalCalendar* ) ) );
- cal->show();
-}
-
-void ConfigGuiSunbird::delLocalCalendar( LocalCalendar *calendar )
-{
- mLocalList.remove( calendar );
- calendar->deleteLater();
-}
-
-void ConfigGuiSunbird::addWebdavCalendar()
-{
- WebdavCalendar *cal = new WebdavCalendar( mWebdavWidget );
- mWebdavLayout->removeItem( mWebdavSpacer );
- cal->setSizePolicy( TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Fixed ) );
- mWebdavLayout->addWidget( cal );
- mWebdavLayout->addItem( mWebdavSpacer );
- mWebdavList.append( cal );
-
- connect( cal, TQT_SIGNAL( deleteRequest( WebdavCalendar* ) ), TQT_SLOT( delWebdavCalendar( WebdavCalendar* ) ) );
- cal->show();
-}
-
-void ConfigGuiSunbird::delWebdavCalendar( WebdavCalendar *calendar )
-{
- mWebdavList.remove( calendar );
- calendar->deleteLater();
-}
-
-LocalCalendar::LocalCalendar( TQWidget *parent )
- : TQWidget( parent )
-{
- initGui();
-}
-
-LocalCalendar::LocalCalendar( const TQString &path, const TQString &defaultcal, const TQString &days, TQWidget *parent )
- : TQWidget( parent )
-{
- initGui();
-
- mPathRequester->setURL( path );
- mDefaultCheckBox->setChecked( defaultcal.toInt() == 1 );
-
- if ( !days.isEmpty() ) {
- mDaysCheckBox->setChecked( true );
- mDaysSpinBox->setEnabled( true );
- mDaysSpinBox->setValue( days.toInt() );
- }
-}
-
-void LocalCalendar::initGui()
-{
- TQBoxLayout *bottomLayout = new TQHBoxLayout();
-
- mDaysCheckBox = new TQCheckBox( this );
- mDaysCheckBox->setText( i18n( "Sync only events newer than" ) );
-
- mDaysSpinBox = new TQSpinBox( this );
- mDaysSpinBox->setDisabled( true );
- mDaysSpinBox->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
-
- connect( mDaysCheckBox, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SLOT( toggleDays( bool ) ) );
-
- bottomLayout->addWidget( mDaysCheckBox );
- bottomLayout->addWidget( mDaysSpinBox );
- bottomLayout->addWidget( new TQLabel( i18n( "day(s)" ), this ) );
-
- TQGridLayout *localLayout = new TQGridLayout( this );
-
- mPathRequester = new KURLRequester( this );
-
- KPushButton *removeButton = new KPushButton( this );
- removeButton->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
- removeButton->setText( i18n( "Remove" ) );
- connect( removeButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( deleteWidget() ) );
-
- mDefaultCheckBox = new TQCheckBox( this );
- mDefaultCheckBox->setText( i18n( "Set as Default" ) );
-
- localLayout->addItem( new TQSpacerItem( 40, 20, TQSizePolicy::Expanding ), 0, 0 );
- localLayout->addWidget( new TQLabel( i18n( "Location:" ), this ), 1, 0 );
- localLayout->addWidget( mPathRequester, 1, 1 );
- localLayout->addItem( new TQSpacerItem( 40, 20, TQSizePolicy::Fixed ), 1, 2 );
- localLayout->addWidget( removeButton, 1, 3 );
- localLayout->addMultiCellLayout( bottomLayout, 2, 2, 0, 2 );
- localLayout->addWidget( mDefaultCheckBox, 2, 3 );
-}
-
-void LocalCalendar::deleteWidget()
-{
- emit deleteRequest( this );
-}
-
-WebdavCalendar::WebdavCalendar( TQWidget *parent )
- : TQWidget( parent )
-{
- initGui();
-};
-
-WebdavCalendar::WebdavCalendar( const TQString &username, const TQString &password, const TQString &url,
- const TQString &defaultcal, const TQString &days, TQWidget *parent )
- : TQWidget( parent )
-{
- initGui();
-
- mUsername->setText( username );
- mPassword->setText( password );
- mUrl->setText( url );
- mDefaultCheckBox->setChecked( defaultcal.toInt() == 1 );
-
- if ( !days.isEmpty() ) {
- mDaysCheckBox->setChecked( true );
- mDaysSpinBox->setEnabled( true );
- mDaysSpinBox->setValue( days.toInt() );
- }
-}
-
-void WebdavCalendar::initGui()
-{
- TQBoxLayout *bottomLayout = new TQHBoxLayout();
-
- mDaysCheckBox = new TQCheckBox( this );
- mDaysCheckBox->setText( i18n( "Sync only events newer than" ) );
-
- mDaysSpinBox = new TQSpinBox( this );
- mDaysSpinBox->setDisabled( true );
- mDaysSpinBox->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
-
- connect( mDaysCheckBox, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SLOT( toggleDays( bool ) ) );
-
- bottomLayout->addWidget( mDaysCheckBox );
- bottomLayout->addWidget( mDaysSpinBox );
- bottomLayout->addWidget( new TQLabel( i18n( "day(s)" ), this ) );
-
- TQGridLayout *webdavLayout = new TQGridLayout();
-
- mUrl = new KLineEdit( this );
- mUsername = new KLineEdit( this );
- mPassword = new KLineEdit( this );
- mPassword->setEchoMode( KLineEdit::Password );
-
- KPushButton *removeButton = new KPushButton( this );
- removeButton->setText( i18n( "Remove" ) );
- connect( removeButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( deleteWidget() ) );
-
- mDefaultCheckBox = new TQCheckBox( this );
- mDefaultCheckBox->setText( i18n( "Set as Default" ) );
-
- webdavLayout->addWidget( new TQLabel( i18n( "Location:" ), this ), 0, 0 );
- webdavLayout->addWidget( mUrl, 0, 1 );
- webdavLayout->addItem( new TQSpacerItem( 40, 20, TQSizePolicy::Fixed ), 0, 2 );
- webdavLayout->addWidget( removeButton, 0, 3 );
- webdavLayout->addMultiCellLayout( bottomLayout, 1, 1, 0, 1 );
- webdavLayout->addWidget( mDefaultCheckBox, 1, 3 );
-
- TQGridLayout *mainLayout = new TQGridLayout( this );
- mainLayout->addItem( new TQSpacerItem( 40, 20, TQSizePolicy::Fixed ), 0, 0 );
- mainLayout->addMultiCellLayout( webdavLayout, 1, 1, 0, 4 );
- mainLayout->addWidget( new TQLabel( i18n( "Username:" ), this ), 2, 0 );
- mainLayout->addWidget( mUsername, 2, 1 );
- mainLayout->addItem( new TQSpacerItem( 40, 20, TQSizePolicy::Fixed ), 2, 2 );
- mainLayout->addWidget( new TQLabel( i18n( "Password:" ), this ), 2, 3 );
- mainLayout->addWidget( mPassword, 2, 4 );
-}
-
-void WebdavCalendar::deleteWidget()
-{
- emit deleteRequest( this );
-}
-
-void LocalCalendar::toggleDays( bool state )
-{
- mDaysSpinBox->setEnabled( state );
-}
-
-void WebdavCalendar::toggleDays( bool state )
-{
- mDaysSpinBox->setEnabled( state );
-}
-
-#include "configguisunbird.moc"
diff --git a/kitchensync/src/configguisunbird.h b/kitchensync/src/configguisunbird.h
deleted file mode 100644
index 67d61bf6..00000000
--- a/kitchensync/src/configguisunbird.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2007 Tobias Koenig <tokoe@kde.org>
- Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#ifndef CONFIGGUISUNBIRD_H
-#define CONFIGGUISUNBIRD_H
-
-#include "configgui.h"
-
-class TQWidget;
-class TQSpinBox;
-class TQCheckBox;
-class TQVBoxLayout;
-class TQSpacerItem;
-class TQSignalMapper;
-
-class KURLRequester;
-class KPushButton;
-class KLineEdit;
-
-class LocalCalendar : public TQWidget
-{
- Q_OBJECT
-
-
- public:
- LocalCalendar( TQWidget *parent = 0 );
- LocalCalendar( const TQString &path,
- const TQString &defaultcal,
- const TQString &days, TQWidget *parent = 0 );
-
- KURLRequester *mPathRequester;
- TQCheckBox *mDaysCheckBox;
- TQSpinBox *mDaysSpinBox;
- TQCheckBox *mDefaultCheckBox;
-
- signals:
- void deleteRequest( LocalCalendar* );
-
- private slots:
- void deleteWidget();
- void toggleDays( bool days );
-
- private:
- void initGui();
-};
-
-class WebdavCalendar : public TQWidget
-{
- Q_OBJECT
-
-
- public:
- WebdavCalendar( TQWidget *parent = 0 );
- WebdavCalendar( const TQString &username,
- const TQString &password,
- const TQString &url,
- const TQString &defaultcal,
- const TQString &days, TQWidget *parent = 0 );
-
- KLineEdit *mUrl;
- TQCheckBox *mDaysCheckBox;
- TQSpinBox *mDaysSpinBox;
- TQCheckBox *mDefaultCheckBox;
- KLineEdit *mUsername;
- KLineEdit *mPassword;
-
- signals:
- void deleteRequest( WebdavCalendar* );
-
- private slots:
- void deleteWidget();
- void toggleDays( bool state );
-
- private:
- void initGui();
-};
-
-class ConfigGuiSunbird : public ConfigGui
-{
- Q_OBJECT
-
-
- public:
- ConfigGuiSunbird( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString &xml );
-
- TQString save() const;
-
- public slots:
- void addLocalCalendar();
- void addWebdavCalendar();
-
- void delLocalCalendar( LocalCalendar* );
- void delWebdavCalendar( WebdavCalendar* );
-
- private:
- TQValueList<LocalCalendar*> mLocalList;
- TQValueList<WebdavCalendar*> mWebdavList;
-
- TQWidget *mLocalWidget;
- TQWidget *mWebdavWidget;
-
- TQVBoxLayout *mLocalLayout;
- TQVBoxLayout *mWebdavLayout;
-
- KPushButton *mLocalAddButton;
- KPushButton *mWebdavAddButton;
-
- TQSpacerItem *mLocalSpacer;
- TQSpacerItem *mWebdavSpacer;
-};
-
-#endif
diff --git a/kitchensync/src/configguisynce.cpp b/kitchensync/src/configguisynce.cpp
deleted file mode 100644
index 8a09c385..00000000
--- a/kitchensync/src/configguisynce.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configguisynce.h"
-
-#include <tqdom.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqcheckbox.h>
-
-#include <klineedit.h>
-#include <kdialog.h>
-#include <tdelocale.h>
-
-ConfigGuiSynce::ConfigGuiSynce( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- initGUI();
-}
-
-void ConfigGuiSynce::load( const TQString &xml )
-{
- TQDomDocument doc;
- doc.setContent( xml );
- TQDomElement docElement = doc.documentElement();
- TQDomNode node;
- for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- TQDomElement element = node.toElement();
- if ( element.tagName() == "contact" ) {
- mContacts->setChecked( element.text().toInt() == 1 );
- } else if ( element.tagName() == "todos" ) {
- mTodos->setChecked( element.text().toInt() == 1 );
- } else if ( element.tagName() == "calendar" ) {
- mCalendar->setChecked( element.text().toInt() == 1 );
- } else if ( element.tagName() == "file" ) {
- mFile->setText( element.text() );
- }
- }
-}
-
-TQString ConfigGuiSynce::save() const
-{
- TQString config = "<config>\n";
-
- config += TQString( "<contact>%1</contact>\n" ).arg( mContacts->isChecked() ? "1" : "0" );
- config += TQString( "<todos>%1</todos>\n" ).arg( mTodos->isChecked() ? "1" : "0" );
- config += TQString( "<calendar>%1</calendar>\n" ).arg( mCalendar->isChecked() ? "1" : "0" );
- config += TQString( "<file>%1</file>\n" ).arg( mFile->text() );
-
- config += "</config>";
-
- return config;
-}
-
-void ConfigGuiSynce::initGUI()
-{
- TQGridLayout *layout = new TQGridLayout( topLayout(), 12, 2, KDialog::spacingHint() );
- layout->setMargin( KDialog::marginHint() );
-
- mContacts = new TQCheckBox( this );
- mContacts->setText( "Sync Contacts" );
- layout->addMultiCellWidget( mContacts, 0, 0, 0, 1 );
-
- mTodos = new TQCheckBox( this );
- mTodos->setText( "Sync \'Todo\' items" );
- layout->addMultiCellWidget( mTodos, 1, 1, 0, 1 );
-
- mCalendar = new TQCheckBox( this );
- mCalendar->setText( "Sync Calendar" );
- layout->addMultiCellWidget( mCalendar, 2, 2, 0, 1 );
-
- layout->addWidget( new TQLabel( i18n( "File:" ), this ), 3, 0 );
- mFile = new KLineEdit( this );
- layout->addWidget( mFile, 3, 1 );
-}
diff --git a/kitchensync/src/configguisynce.h b/kitchensync/src/configguisynce.h
deleted file mode 100644
index 680b1b12..00000000
--- a/kitchensync/src/configguisynce.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2007 Anirudh Ramesh <abattoir@abattoir.in>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#ifndef CONFIGGUISYNCE_H
-#define CONFIGGUISYNCE_H
-
-#include "configgui.h"
-
-class TQCheckBox;
-
-class KLineEdit;
-
-class ConfigGuiSynce : public ConfigGui
-{
- public:
- ConfigGuiSynce( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString &xml );
-
- TQString save() const;
-
- private:
- void initGUI();
-
- TQCheckBox *mContacts;
- TQCheckBox *mTodos;
- TQCheckBox *mCalendar;
- KLineEdit *mFile;
-};
-
-#endif
diff --git a/kitchensync/src/configguisyncmlhttp.cpp b/kitchensync/src/configguisyncmlhttp.cpp
deleted file mode 100644
index 6f91d2fa..00000000
--- a/kitchensync/src/configguisyncmlhttp.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configguisyncmlhttp.h"
-
-#include <kcombobox.h>
-#include <kdialog.h>
-#include <klineedit.h>
-#include <tdelocale.h>
-#include <kurlrequester.h>
-
-#include <tqcheckbox.h>
-#include <tqdom.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqspinbox.h>
-#include <tqtabwidget.h>
-#include <tqvbox.h>
-
-ConfigGuiSyncmlHttp::ConfigGuiSyncmlHttp( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent ), mUrl( 0 ), mPort( 0 )
-{
-
- TQTabWidget *tabWidget = new TQTabWidget( this );
- topLayout()->addWidget( tabWidget );
-
- // Connection
- TQWidget *connectionWidget = new TQWidget( tabWidget );
- TQVBoxLayout *connectionLayout = new TQVBoxLayout( connectionWidget,
- KDialog::marginHint(), KDialog::spacingHint() );
-
- tabWidget->addTab( connectionWidget, i18n( "Connection" ) );
-
- mGridLayout = new TQGridLayout( connectionLayout );
-
- TQLabel *label = new TQLabel( i18n("Port:"), connectionWidget );
- mGridLayout->addWidget( label, 0, 0 );
-
- mPort = new TQSpinBox( connectionWidget );
- mPort->setMinValue( 1 );
- mPort->setMaxValue( 65536 );
- mGridLayout->addWidget( mPort, 0, 1 );
-
- // Database
- TQWidget *databaseWidget = new TQWidget( tabWidget );
- TQVBoxLayout *databaseLayout = new TQVBoxLayout( databaseWidget,
- KDialog::marginHint(), KDialog::spacingHint() );
-
- tabWidget->addTab( databaseWidget, i18n( "Databases" ) );
-
- mGridLayout = new TQGridLayout( databaseLayout );
- addLineEdit( databaseWidget, i18n("Contact Database:"), &mContactDb, 0 );
- addLineEdit( databaseWidget, i18n("Calendar Database:"), &mCalendarDb, 1 );
- addLineEdit( databaseWidget, i18n("Note Database:"), &mNoteDb, 2 );
-
- mContactDb->insertItem( "addressbook" );
- mContactDb->insertItem( "contacts" );
-
- mCalendarDb->insertItem( "agenda" );
- mCalendarDb->insertItem( "calendar" );
-
- mNoteDb->insertItem( "notes" );
-
-
- // Options
- TQWidget *optionWidget = new TQWidget( tabWidget );
- TQVBoxLayout *optionLayout = new TQVBoxLayout( optionWidget,
- KDialog::marginHint(), KDialog::spacingHint() );
-
- tabWidget->addTab( optionWidget, i18n( "Options" ) );
-
- mGridLayout = new TQGridLayout( optionLayout );
-
- label = new TQLabel( i18n("User name:"), optionWidget );
- mGridLayout->addWidget( label, 0, 0 );
-
- mUsername = new KLineEdit( optionWidget );
- mGridLayout->addWidget( mUsername, 0, 1 );
-
- label = new TQLabel( i18n("Password:"), optionWidget );
- mGridLayout->addWidget( label, 1, 0 );
-
- mPassword = new KLineEdit( optionWidget );
- mPassword->setEchoMode( TQLineEdit::Password );
- mGridLayout->addWidget( mPassword, 1, 1 );
-
-
- mUseStringTable = new TQCheckBox( i18n("Use String Table"), optionWidget );
- mGridLayout->addMultiCellWidget( mUseStringTable, 2, 2, 0, 1 );
-
- mOnlyReplace = new TQCheckBox( i18n("Only Replace Entries"), optionWidget );
- mGridLayout->addMultiCellWidget( mOnlyReplace, 3, 3, 0, 1 );
-
- // Url
- label = new TQLabel( i18n("URL:"), optionWidget );
- mGridLayout->addWidget( label, 4, 0 );
-
- mUrl = new KLineEdit( optionWidget );
- mGridLayout->addWidget( mUrl, 4, 1 );
-
- // recvLimit
- label = new TQLabel( i18n("Receive Limit:"), optionWidget );
- mGridLayout->addWidget( label, 5, 0 );
-
- mRecvLimit = new TQSpinBox( optionWidget );
- mRecvLimit->setMinValue( 1 );
- mRecvLimit->setMaxValue( 65536 );
- mGridLayout->addWidget( mRecvLimit, 5, 1 );
-
- // maxObjSize
- label = new TQLabel( i18n("Maximum Object Size"), optionWidget );
- mGridLayout->addWidget( label, 6, 0 );
-
- mMaxObjSize = new TQSpinBox( optionWidget );
- mMaxObjSize->setMinValue( 1 );
- mMaxObjSize->setMaxValue( 65536 );
- mGridLayout->addWidget( mMaxObjSize, 6, 1 );
-
- topLayout()->addStretch( 1 );
-}
-
-void ConfigGuiSyncmlHttp::addLineEdit( TQWidget *parent, const TQString &text, KComboBox **edit, int row )
-{
- TQLabel *label = new TQLabel( text, parent);
- mGridLayout->addWidget( label, row, 0 );
-
- *edit = new KComboBox( true, parent );
- mGridLayout->addWidget( *edit, row, 1 );
-}
-
-void ConfigGuiSyncmlHttp::load( const TQString &xml )
-{
- TQDomDocument document;
- document.setContent( xml );
-
- TQDomElement docElement = document.documentElement();
- TQDomNode node;
-
- for ( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- TQDomElement element = node.toElement();
- if ( element.tagName() == "username" ) {
- mUsername->setText( element.text() );
- } else if ( element.tagName() == "password" ) {
- mPassword->setText( element.text() );
- } else if ( element.tagName() == "url" ) {
- if ( mUrl )
- mUrl->setText( element.text() );
- } else if ( element.tagName() == "port" ) {
- if ( mPort )
- mPort->setValue( element.text().toInt() );
- } else if ( element.tagName() == "recvLimit" ) {
- if ( mRecvLimit )
- mRecvLimit->setValue( element.text().toInt() );
- } else if ( element.tagName() == "maxObjSize" ) {
- if ( mMaxObjSize )
- mMaxObjSize->setValue( element.text().toInt() );
- } else if ( element.tagName() == "usestringtable" ) {
- mUseStringTable->setChecked( element.text() == "1" );
- } else if ( element.tagName() == "onlyreplace" ) {
- mOnlyReplace->setChecked( element.text() == "1" );
- } else if ( element.tagName() == "contact_db" ) {
- mContactDb->setCurrentText( element.text() );
- } else if ( element.tagName() == "calendar_db" ) {
- mCalendarDb->setCurrentText( element.text() );
- } else if ( element.tagName() == "note_db" ) {
- mNoteDb->setCurrentText( element.text() );
- }
- }
-}
-
-TQString ConfigGuiSyncmlHttp::save() const
-{
- TQString xml;
- xml = "<config>\n";
- xml += "<username>" + mUsername->text() + "</username>\n";
- xml += "<password>" + mPassword->text() + "</password>\n";
-
- xml += "<url>" + mUrl->text() + "</url>\n";
- xml += "<port>" + TQString::number( mPort->value() ) + "</port>\n";
- // Receive Limit
- xml += "<recvLimit>" + TQString::number( mRecvLimit->value() ) + "</recvLimit>\n";
-
- // Maximal Object Size
- xml += "<maxObjSize>" + TQString::number( mMaxObjSize->value() ) + "</maxObjSize>\n";
-
- xml += "<usestringtable>";
- if ( mUseStringTable->isChecked() )
- xml += "1";
- else
- xml += "0";
- xml += "</usestringtable>\n";
-
- xml += "<onlyreplace>";
- if ( mOnlyReplace->isChecked() )
- xml += "1";
- else
- xml += "0";
- xml += "</onlyreplace>\n";
-
- xml += "<contact_db>" + mContactDb->currentText() + "</contact_db>\n";
- xml += "<calendar_db>" + mCalendarDb->currentText() + "</calendar_db>\n";
- xml += "<note_db>" + mNoteDb->currentText() + "</note_db>\n";
- xml += "</config>";
-
- return xml;
-}
-
-#include "configguisyncmlhttp.moc"
-
diff --git a/kitchensync/src/configguisyncmlhttp.h b/kitchensync/src/configguisyncmlhttp.h
deleted file mode 100644
index aad3a937..00000000
--- a/kitchensync/src/configguisyncmlhttp.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-#ifndef CONFIGGUISYNCML_H
-#define CONFIGGUISYNCML_H
-
-#include <tqdom.h>
-
-#include "configgui.h"
-
-class TQCheckBox;
-class TQComboBox;
-class TQGridLayout;
-class TQSpinBox;
-class KComboBox;
-class KLineEdit;
-
-class ConfigGuiSyncmlHttp : public ConfigGui
-{
-
- Q_OBJECT
-
-
- public:
- ConfigGuiSyncmlHttp( const QSync::Member &, TQWidget *parent );
-
- void load( const TQString &xml );
- TQString save() const;
-
- private:
- TQGridLayout *mGridLayout;
-
- KLineEdit *mUsername;
- KLineEdit *mPassword;
- KLineEdit *mUrl;
- TQSpinBox *mPort;
- TQCheckBox *mUseStringTable;
- TQCheckBox *mOnlyReplace;
-
- TQSpinBox *mRecvLimit;
- TQSpinBox *mMaxObjSize;
-
- KComboBox *mContactDb;
- KComboBox *mCalendarDb;
- KComboBox *mNoteDb;
-
- protected slots:
- void addLineEdit( TQWidget *parent, const TQString &text, KComboBox **edit, int row );
-};
-
-#endif
diff --git a/kitchensync/src/configguisyncmlobex.cpp b/kitchensync/src/configguisyncmlobex.cpp
deleted file mode 100644
index 4074787a..00000000
--- a/kitchensync/src/configguisyncmlobex.cpp
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
- Copyright (c) 2006 Daniel Gollub <dgollub@suse.de>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "configguisyncmlobex.h"
-
-#include <kcombobox.h>
-#include <kdialog.h>
-#include <klineedit.h>
-#include <tdelocale.h>
-#include <kurlrequester.h>
-
-#include <tqlayout.h>
-#include <tqcheckbox.h>
-#include <tqcombobox.h>
-#include <tqlabel.h>
-#include <tqdom.h>
-#include <tqspinbox.h>
-#include <tqtabwidget.h>
-#include <tqvbox.h>
-
-ConfigGuiSyncmlObex::ConfigGuiSyncmlObex( const QSync::Member &member, TQWidget *parent )
- : ConfigGui( member, parent )
-{
- TQTabWidget *tabWidget = new TQTabWidget( this );
- topLayout()->addWidget( tabWidget );
-
- // Connection
- TQVBox *connectionWidget = new TQVBox( this );
- connectionWidget->setMargin( KDialog::marginHint() );
- connectionWidget->setSpacing( 5 );
-
- tabWidget->addTab( connectionWidget, i18n( "Connection" ) );
-
- mConnection = new KComboBox( connectionWidget );
-
- connect( mConnection, TQT_SIGNAL (activated( int ) ),
- this, TQT_SLOT( slotConnectionChanged ( int ) ) );
-
- mConnectionTypes.append( ConnectionType( 2, i18n( "Bluetooth" ) ) );
- mConnectionTypes.append( ConnectionType( 5, i18n( "USB" ) ) );
-
- ConnectionTypeList::ConstIterator it;
- for ( it = mConnectionTypes.begin(); it != mConnectionTypes.end(); it++ )
- mConnection->insertItem( (*it).second );
-
- mBluetooth = new BluetoothWidget( connectionWidget );
- mBluetooth->hide();
-
- mUsb = new UsbWidget( connectionWidget );
- mUsb->hide();
-
- connectionWidget->setStretchFactor( mBluetooth, 1 );
- connectionWidget->setStretchFactor( mUsb, 1 );
-
- // Databases
- TQWidget *databaseWidget = new TQWidget( tabWidget );
- TQVBoxLayout *databaseLayout = new TQVBoxLayout( databaseWidget,
- KDialog::marginHint(), KDialog::spacingHint() );
-
- tabWidget->addTab( databaseWidget, i18n( "Databases" ) );
-
- mGridLayout = new TQGridLayout( databaseLayout );
- addLineEdit( databaseWidget, i18n("Contact Database:"), &mContactDb, 0 );
- addLineEdit( databaseWidget, i18n("Calendar Database:"), &mCalendarDb, 1 );
- addLineEdit( databaseWidget, i18n("Note Database:"), &mNoteDb, 2 );
-
- mContactDb->insertItem( "addressbook" );
- mContactDb->insertItem( "contacts" );
-
- mCalendarDb->insertItem( "agenda" );
- mCalendarDb->insertItem( "calendar" );
-
- mNoteDb->insertItem( "notes" );
-
- // Options
- TQWidget *optionsWidget = new TQWidget( tabWidget );
- TQVBoxLayout *optionsLayout = new TQVBoxLayout( optionsWidget,
- KDialog::marginHint(), KDialog::spacingHint() );
-
- tabWidget->addTab( optionsWidget, i18n( "Options" ) );
-
- mGridLayout = new TQGridLayout( optionsLayout );
-
- TQLabel *label = new TQLabel( i18n("User name:"), optionsWidget );
- mGridLayout->addWidget( label, 0, 0 );
-
- mUsername = new KLineEdit( optionsWidget );
- mGridLayout->addWidget( mUsername, 0, 1 );
-
- label = new TQLabel( i18n("Password:"), optionsWidget );
- mGridLayout->addWidget( label, 1, 0 );
-
- mPassword = new KLineEdit( optionsWidget );
- mPassword->setEchoMode( TQLineEdit::Password );
- mGridLayout->addWidget( mPassword, 1, 1 );
-
- mUseStringTable = new TQCheckBox( i18n("Use String Table"), optionsWidget );
- mGridLayout->addMultiCellWidget( mUseStringTable, 2, 2, 0, 1 );
-
- mOnlyReplace = new TQCheckBox( i18n("Only Replace Entries"), optionsWidget );
- mGridLayout->addMultiCellWidget( mOnlyReplace, 3, 3, 0, 1 );
-
- // SynML Version
- label = new TQLabel( i18n("SyncML Version:"), optionsWidget );
- mGridLayout->addWidget( label, 4, 0 );
-
- mSyncmlVersion = new TQComboBox( optionsWidget );
- mGridLayout->addWidget( mSyncmlVersion, 4, 1 );
-
- mSyncmlVersions.append( SyncmlVersion( 0, i18n( "1.0" ) ) );
- mSyncmlVersions.append( SyncmlVersion( 1, i18n( "1.1" ) ) );
- mSyncmlVersions.append( SyncmlVersion( 2, i18n( "1.2" ) ) );
-
- SyncmlVersionList::ConstIterator itVersion;
- for ( itVersion = mSyncmlVersions.begin(); itVersion != mSyncmlVersions.end(); itVersion++ )
- mSyncmlVersion->insertItem( (*itVersion).second );
-
- // WBXML
- mWbxml = new TQCheckBox( i18n("WAP Binary XML"), optionsWidget );
- mGridLayout->addMultiCellWidget( mWbxml, 12, 12, 0, 1 );
-
- // Identifier
- label = new TQLabel( i18n("Software Identifier:"), optionsWidget );
- mGridLayout->addWidget( label, 13, 0 );
-
- mIdentifier = new KComboBox( true, optionsWidget );
- mGridLayout->addWidget( mIdentifier, 13, 1 );
-
- mIdentifier->insertItem( "" );
- mIdentifier->insertItem( "PC Suite" );
-
- // recvLimit
- label = new TQLabel( i18n("Receive Limit:"), optionsWidget );
- mGridLayout->addWidget( label, 14, 0 );
-
- mRecvLimit = new TQSpinBox( optionsWidget );
- mRecvLimit->setMinValue( 1 );
- mRecvLimit->setMaxValue( 65536 );
- mGridLayout->addWidget( mRecvLimit, 14, 1 );
-
- // maxObjSize
- label = new TQLabel( i18n("Maximum Object Size"), optionsWidget );
- mGridLayout->addWidget( label, 15, 0 );
-
- mMaxObjSize = new TQSpinBox( optionsWidget );
- mMaxObjSize->setMinValue( 1 );
- mMaxObjSize->setMaxValue( 65536 );
- mGridLayout->addWidget( mMaxObjSize, 15, 1 );
-
- topLayout()->addStretch( 1 );
-}
-
-void ConfigGuiSyncmlObex::slotConnectionChanged( int pos )
-{
- mUsb->hide();
- mBluetooth->hide();
-
- if ( pos == 0 )
- mBluetooth->show();
- else if ( pos == 1 )
- mUsb->show();
-}
-
-void ConfigGuiSyncmlObex::load( const TQString &xml )
-{
- TQDomDocument document;
- document.setContent( xml );
-
- TQDomElement docElement = document.documentElement();
-
- TQDomNode node;
- for( node = docElement.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- TQDomElement element = node.toElement();
- if ( element.tagName() == "username" ) {
- mUsername->setText( element.text() );
- } else if ( element.tagName() == "password" ) {
- mPassword->setText( element.text() );
- } else if ( element.tagName() == "type" ) {
- for ( uint i = 0; i < mConnectionTypes.count(); i++ ) {
- if ( mConnectionTypes[i].first == element.text().toInt() ) {
- mConnection->setCurrentItem( i );
- slotConnectionChanged( i );
- break;
- }
- }
- } else if ( element.tagName() == "version" ) {
- for ( uint i = 0; i < mSyncmlVersions.count(); i++ ) {
- if ( mSyncmlVersions[i].first == element.text().toInt() ) {
- mSyncmlVersion->setCurrentItem( i );
- break;
- }
- }
- } else if ( element.tagName() == "bluetooth_address" ) {
- if ( mBluetooth ) mBluetooth->setAddress( element.text() );
- } else if ( element.tagName() == "bluetooth_channel" ) {
- if ( mBluetooth ) mBluetooth->setChannel( element.text() );
- } else if ( element.tagName() == "identifier" ) {
- if ( mIdentifier ) mIdentifier->setCurrentText( element.text() );
- } else if ( element.tagName() == "interface" ) {
- if ( mUsb ) mUsb->setInterface( element.text().toInt() );
- } else if ( element.tagName() == "wbxml" ) {
- if ( mWbxml) mWbxml->setChecked( element.text() == "1" );
- } else if ( element.tagName() == "recvLimit" ) {
- if ( mRecvLimit ) mRecvLimit->setValue( element.text().toInt() );
- } else if ( element.tagName() == "maxObjSize" ) {
- if ( mMaxObjSize ) mMaxObjSize->setValue( element.text().toInt() );
- } else if ( element.tagName() == "usestringtable" ) {
- mUseStringTable->setChecked( element.text() == "1" );
- } else if ( element.tagName() == "onlyreplace" ) {
- mOnlyReplace->setChecked( element.text() == "1" );
- } else if ( element.tagName() == "contact_db" ) {
- mContactDb->setCurrentText( element.text() );
- } else if ( element.tagName() == "calendar_db" ) {
- mCalendarDb->setCurrentText( element.text() );
- } else if ( element.tagName() == "note_db" ) {
- mNoteDb->setCurrentText( element.text() );
- }
- }
-}
-
-TQString ConfigGuiSyncmlObex::save() const
-{
- TQString xml;
- xml = "<config>\n";
- xml += "<username>" + mUsername->text() + "</username>\n";
- xml += "<password>" + mPassword->text() + "</password>\n";
- ConnectionTypeList::ConstIterator it;
- for ( it = mConnectionTypes.begin(); it != mConnectionTypes.end(); it++ ) {
- if ( mConnection->currentText() == (*it).second ) {
- xml += "<type>" + TQString("%1").arg((*it).first) + "</type>\n";
- break;
- }
- }
-
- // Bluetooth Address
- xml += "<bluetooth_address>" + mBluetooth->address() + "</bluetooth_address>\n";
-
- // Bluetooth Channel
- xml += "<bluetooth_channel>" + mBluetooth->channel() + "</bluetooth_channel>\n";
-
- // USB Interface
- xml += "<interface>" + TQString::number( mUsb->interface() ) +"</interface>\n";
-
- // SyncML Version
- SyncmlVersionList::ConstIterator itVersion;
- for ( itVersion = mSyncmlVersions.begin(); itVersion != mSyncmlVersions.end(); itVersion++ ) {
- if ( mSyncmlVersion->currentText() == (*itVersion).second ) {
- xml += "<version>" + TQString("%1").arg((*itVersion).first) + "</version>\n";
- break;
- }
- }
-
- // (Software) Identifier
- xml += "<identifier>" + mIdentifier->currentText() + "</identifier>\n";
-
- // WBXML
- xml += "<wbxml>";
- if ( mWbxml->isChecked() )
- xml += "1";
- else
- xml += "0";
- xml += "</wbxml>\n";
-
- // Receive Limit
- xml += "<recvLimit>" + TQString::number( mRecvLimit->value() ) + "</recvLimit>\n";
-
- // Maximal Object Size
- xml += "<maxObjSize>" + TQString::number( mMaxObjSize->value() ) + "</maxObjSize>\n";
-
- xml += "<usestringtable>";
- if ( mUseStringTable->isChecked() )
- xml += "1";
- else
- xml += "0";
- xml += "</usestringtable>\n";
-
- xml += "<onlyreplace>";
- if ( mOnlyReplace->isChecked() )
- xml += "1";
- else
- xml += "0";
- xml += "</onlyreplace>\n";
-
- xml += "<contact_db>" + mContactDb->currentText() + "</contact_db>\n";
- xml += "<calendar_db>" + mCalendarDb->currentText() + "</calendar_db>\n";
- xml += "<note_db>" + mNoteDb->currentText() + "</note_db>\n";
- xml += "</config>";
-
- return xml;
-}
-
-void ConfigGuiSyncmlObex::addLineEdit( TQWidget *parent, const TQString &text, KComboBox **edit, int row )
-{
- TQLabel *label = new TQLabel( text, parent );
- mGridLayout->addWidget( label, row, 0 );
-
- *edit = new KComboBox( true, parent );
- mGridLayout->addWidget( *edit, row, 1 );
-}
-
-#include "configguisyncmlobex.moc"
diff --git a/kitchensync/src/configguisyncmlobex.h b/kitchensync/src/configguisyncmlobex.h
deleted file mode 100644
index 9c873db8..00000000
--- a/kitchensync/src/configguisyncmlobex.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
- Copyright (c) 2006 Daniel Gollub <dgollub@suse.de>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-#ifndef CONFIGGUISYNCMLOBEX_H
-#define CONFIGGUISYNCMLOBEX_H
-
-#include <tqdom.h>
-
-#include "configgui.h"
-#include "connectionwidgets.h"
-
-class TQCheckBox;
-class TQComboBox;
-class TQGridLayout;
-class TQSpinBox;
-class KComboBox;
-class KLineEdit;
-class KURLRequester;
-
-class ConfigGuiSyncmlObex : public ConfigGui
-{
- Q_OBJECT
-
-
- public:
- ConfigGuiSyncmlObex( const QSync::Member &, TQWidget *parent = 0 );
-
- void load( const TQString &xml );
- TQString save() const;
-
- public slots:
- void slotConnectionChanged( int pos );
-
- private:
- // Connection
- typedef TQPair<int, TQString> ConnectionType;
- typedef TQValueList<ConnectionType> ConnectionTypeList;
- ConnectionTypeList mConnectionTypes;
-
- TQComboBox *mConnection;
- BluetoothWidget *mBluetooth;
- UsbWidget *mUsb;
-
- // Options
- typedef TQPair<int, TQString> SyncmlVersion;
- typedef TQValueList<SyncmlVersion> SyncmlVersionList;
- SyncmlVersionList mSyncmlVersions;
-
- TQStringList mIdentiferList;
- KLineEdit *mUsername;
- KLineEdit *mPassword;
- TQCheckBox *mUseStringTable;
- TQCheckBox *mOnlyReplace;
- TQSpinBox *mRecvLimit;
- TQSpinBox *mMaxObjSize;
- TQComboBox *mSyncmlVersion;
- KComboBox *mIdentifier;
- TQCheckBox *mWbxml;
-
- TQGridLayout *mGridLayout;
-
- KComboBox *mContactDb;
- KComboBox *mCalendarDb;
- KComboBox *mNoteDb;
-
- protected slots:
- void addLineEdit( TQWidget *parent, const TQString &text, KComboBox **edit, int row );
-};
-
-#endif
diff --git a/kitchensync/src/conflictdialog.cpp b/kitchensync/src/conflictdialog.cpp
deleted file mode 100644
index 39943ffe..00000000
--- a/kitchensync/src/conflictdialog.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "conflictdialog.h"
-
-ConflictDialog::ConflictDialog( QSync::SyncMapping &mapping, TQWidget *parent )
- : TQDialog( parent ), mMapping( mapping )
-{
-}
diff --git a/kitchensync/src/conflictdialog.h b/kitchensync/src/conflictdialog.h
deleted file mode 100644
index 2e48c039..00000000
--- a/kitchensync/src/conflictdialog.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#ifndef CONFLICTDIALOG_H
-#define CONFLICTDIALOG_H
-
-#include <tqdialog.h>
-
-#include <libqopensync/syncmapping.h>
-
-/**
- Base class for SingleConflictDialog and MultiConflictDialog.
- */
-class ConflictDialog : public TQDialog
-{
- public:
- ConflictDialog( QSync::SyncMapping &mapping, TQWidget *parent );
-
- protected:
- QSync::SyncMapping mMapping;
-};
-
-#endif
diff --git a/kitchensync/src/connectionwidgets.cpp b/kitchensync/src/connectionwidgets.cpp
deleted file mode 100644
index 37844be3..00000000
--- a/kitchensync/src/connectionwidgets.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
- Copyright (c) 2006 Daniel Gollub <dgollub@suse.de>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include <kcombobox.h>
-#include <kdialog.h>
-#include <tdeglobal.h>
-#include <kiconloader.h>
-#include <kinputdialog.h>
-#include <klineedit.h>
-#include <tdelocale.h>
-#include <tdemessagebox.h>
-
-#include <tqapplication.h>
-#include <tqeventloop.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqpushbutton.h>
-#include <tqspinbox.h>
-#include <tqtabwidget.h>
-#include <tqtooltip.h>
-#include <tqvbox.h>
-
-#include "connectionwidgets.h"
-
-BluetoothWidget::BluetoothWidget( TQWidget *parent )
- : TQWidget( parent )
-{
- TQGridLayout *layout = new TQGridLayout( this );
-
- mAddress = new KLineEdit( this );
- mAddress->setInputMask( ">NN:NN:NN:NN:NN:NN;" );
- layout->addWidget( mAddress, 1, 0 );
-
- TQLabel *label = new TQLabel( i18n( "Bluetooth address:" ), this );
- label->setBuddy( mAddress );
- layout->addWidget( label, 0, 0 );
-
- mChannel = new KLineEdit( this );
- layout->addWidget( mChannel, 1, 1 );
-
- mChannelLabel = new TQLabel( i18n( "Channel:" ), this );
- mChannelLabel->setBuddy( mChannel );
- layout->addWidget( mChannelLabel, 0, 1 );
-
- layout->setRowStretch( 2, 1 );
-}
-
-void BluetoothWidget::hideChannel()
-{
- mChannelLabel->hide();
- mChannel->hide();
-}
-
-void BluetoothWidget::showChannel()
-{
- mChannelLabel->show();
- mChannel->show();
-}
-
-void BluetoothWidget::setAddress( const TQString address )
-{
- mAddress->setText( address );
-}
-
-void BluetoothWidget::setChannel( const TQString channel )
-{
- if ( mChannel )
- mChannel->setText( channel );
-}
-
-TQString BluetoothWidget::address() const
-{
- return mAddress->text();
-}
-
-TQString BluetoothWidget::channel() const
-{
- if ( mChannel->text().isEmpty() )
- return TQString();
-
- return mChannel->text();
-}
-
-// FIXME - Only IrMC specific
-IRWidget::IRWidget( TQWidget *parent )
- : TQWidget( parent )
-{
- TQGridLayout *layout = new TQGridLayout( this, 3, 3, 11, 3 );
-
- mDevice = new KLineEdit( this );
- mSerialNumber = new KLineEdit( this );
-
- layout->addWidget( mDevice, 1, 0 );
- layout->addWidget( mSerialNumber, 1, 1 );
-
- TQLabel *label = new TQLabel( i18n( "Device Name:" ), this );
- label->setBuddy( mDevice );
- layout->addWidget( label, 0, 0 );
-
- label = new TQLabel( i18n( "Serial Number:" ), this );
- label->setBuddy( mSerialNumber );
- layout->addWidget( label, 0, 1 );
-
- layout->setRowStretch( 2, 1 );
-}
-
-void IRWidget::load( const TQDomElement &parent )
-{
- TQDomNode node;
- for ( node = parent.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- TQDomElement element = node.toElement();
- if ( element.tagName() == "irname" )
- mDevice->setText( element.text() );
- else if ( element.tagName() == "irserial" )
- mSerialNumber->setText( element.text() );
- }
-}
-
-void IRWidget::save( TQDomDocument &doc, TQDomElement &parent )
-{
- TQDomElement element = doc.createElement( "irname" );
- element.appendChild( doc.createTextNode( mDevice->text() ) );
- parent.appendChild( element );
-
- element = doc.createElement( "irserial" );
- element.appendChild( doc.createTextNode( mSerialNumber->text() ) );
- parent.appendChild( element );
-}
-
-// FIXME - Only IrMC specific
-CableWidget::CableWidget( TQWidget *parent )
- : TQWidget( parent )
-{
- TQGridLayout *layout = new TQGridLayout( this, 3, 2, 11, 3 );
-
- mManufacturer = new KComboBox( this );
- mDevice = new KComboBox( true, this );
-
- layout->addWidget( mManufacturer, 0, 1 );
- layout->addWidget( mDevice, 1, 1 );
-
- TQLabel *label = new TQLabel( i18n( "Device Manufacturer:" ), this );
- label->setBuddy( mManufacturer );
- layout->addWidget( label, 0, 0 );
-
- label = new TQLabel( i18n( "Device:" ), this );
- label->setBuddy( mDevice );
- layout->addWidget( label, 1, 0 );
-
- layout->setRowStretch( 2, 1 );
-
- mManufacturer->insertItem( i18n( "SonyEricsson/Ericsson" ) );
- mManufacturer->insertItem( i18n( "Siemens" ) );
-
- mDevice->insertItem( "/dev/ttyS0" );
- mDevice->insertItem( "/dev/ttyS1" );
- mDevice->insertItem( "/dev/ttyUSB0" );
- mDevice->insertItem( "/dev/ttyUSB1" );
-}
-
-void CableWidget::load( const TQDomElement &parent )
-{
- TQDomNode node;
- for ( node = parent.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- TQDomElement element = node.toElement();
- if ( element.tagName() == "cabletype" )
- mManufacturer->setCurrentItem( element.text().toInt() );
- else if ( element.tagName() == "cabledev" )
- mDevice->setCurrentText( element.text() );
- }
-}
-
-void CableWidget::save( TQDomDocument &doc, TQDomElement &parent )
-{
- TQDomElement element = doc.createElement( "cabletype" );
- element.appendChild( doc.createTextNode( TQString::number( mManufacturer->currentItem() ) ) );
- parent.appendChild( element );
-
- element = doc.createElement( "cabledev" );
- element.appendChild( doc.createTextNode( mDevice->currentText() ) );
- parent.appendChild( element );
-}
-
-UsbWidget::UsbWidget( TQWidget *parent )
- : TQWidget( parent )
-{
- TQGridLayout *layout = new TQGridLayout( this, 3, 2, 11, 3);
-
- mInterface = new TQSpinBox( this );
- layout->addWidget( mInterface, 0, 1 );
-
- TQLabel *label = new TQLabel( i18n( "USB Interface:" ), this );
- label->setBuddy( mInterface );
- layout->addWidget( label, 0, 0 );
-
- layout->setRowStretch( 2, 1 );
-}
-
-void UsbWidget::setInterface( int interface )
-{
- mInterface->setValue( interface );
-}
-
-int UsbWidget::interface() const
-{
- return mInterface->value();
-}
-
-#include "connectionwidgets.moc"
diff --git a/kitchensync/src/connectionwidgets.h b/kitchensync/src/connectionwidgets.h
deleted file mode 100644
index 4f51c168..00000000
--- a/kitchensync/src/connectionwidgets.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
- Copyright (c) 2006 Daniel Gollub <dgollub@suse.de>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#ifndef CONNECTIONWIDGETS_H
-#define CONNECTIONWIDGETS_H
-
-#include <tqdom.h>
-
-#include "configgui.h"
-
-class TQCheckBox;
-class TQLabel;
-class TQPushButton;
-class TQSpinBox;
-
-class KComboBox;
-class KLineEdit;
-
-class BluetoothWidget : public TQWidget
-{
- Q_OBJECT
-
-
- public:
- BluetoothWidget( TQWidget *parent );
-
- void hideChannel();
- void showChannel();
-
- void setAddress( const TQString address );
- void setChannel( const TQString channel );
- TQString address() const;
- TQString channel() const;
-
- private:
- KLineEdit *mAddress;
- KLineEdit *mChannel;
- TQLabel *mChannelLabel;
-};
-
-class IRWidget : public TQWidget
-{
- Q_OBJECT
-
-
- public:
- IRWidget( TQWidget *parent );
-
- void load( const TQDomElement& );
- void save( TQDomDocument&, TQDomElement& );
-
- private:
- KLineEdit *mDevice;
- KLineEdit *mSerialNumber;
-};
-
-class CableWidget : public TQWidget
-{
- public:
- CableWidget( TQWidget *parent );
-
- void load( const TQDomElement& );
- void save( TQDomDocument&, TQDomElement& );
-
- private:
- KComboBox *mManufacturer;
- KComboBox *mDevice;
-};
-
-class UsbWidget : public TQWidget
-{
- public:
- UsbWidget( TQWidget *parent );
-
- int interface() const;
- void setInterface( int interface );
-
- private:
- TQSpinBox *mInterface;
-};
-
-#endif // CONNECTIONWIDGETS_H
diff --git a/kitchensync/src/genericdiffalgo.cpp b/kitchensync/src/genericdiffalgo.cpp
deleted file mode 100644
index 5255c096..00000000
--- a/kitchensync/src/genericdiffalgo.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- This file is part of libtdepim.
-
- Copyright (c) 2004 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <tqstringlist.h>
-
-#include <tdelocale.h>
-
-#include "genericdiffalgo.h"
-
-using namespace KSync;
-
-#define MAX( a, b ) ( a > b ? a : b )
-
-#ifndef KDE_USE_FINAL
-// With --enable-final, we get the (identical) compareString from
-// addresseediffalgo.cpp
-static bool compareString( const TQString &left, const TQString &right )
-{
- if ( left.isEmpty() && right.isEmpty() )
- return true;
- else
- return left == right;
-}
-#endif
-
-GenericDiffAlgo::GenericDiffAlgo( const TQString &leftData, const TQString &rightData )
- : mLeftData( leftData ), mRightData( rightData )
-{
-}
-
-void GenericDiffAlgo::run()
-{
- begin();
-
- TQStringList leftList = TQStringList::split( '\n', mLeftData, true );
- TQStringList rightList = TQStringList::split( '\n', mRightData, true );
-
- uint lines = MAX( leftList.count(), rightList.count() );
- for ( uint i = 0; i < lines; ++i ) {
- if ( i < leftList.count() && i < rightList.count() ) {
- if ( !compareString( leftList[ i ], rightList[ i ] ) )
- conflictField( i18n( "Line %1" ).arg( i ), leftList[ i ], rightList[ i ] );
- } else if ( i < leftList.count() && i >= rightList.count() ) {
- additionalLeftField( i18n( "Line %1" ).arg( i ), leftList[ i ] );
- } else if ( i >= leftList.count() && i < rightList.count() ) {
- additionalRightField( i18n( "Line %1" ).arg( i ), rightList[ i ] );
- }
- }
-
- end();
-}
-
diff --git a/kitchensync/src/genericdiffalgo.h b/kitchensync/src/genericdiffalgo.h
deleted file mode 100644
index 424d9c4f..00000000
--- a/kitchensync/src/genericdiffalgo.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- This file is part of libtdepim.
-
- Copyright (c) 2004 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef KSYNC_GENERICDIFFALGO_H
-#define KSYNC_GENERICDIFFALGO_H
-
-#include <libtdepim/diffalgo.h>
-
-using namespace KPIM;
-
-namespace KSync {
-
-class GenericDiffAlgo : public DiffAlgo
-{
- public:
- GenericDiffAlgo( const TQString &left, const TQString &right );
-
- void run();
-
- private:
- TQString mLeftData;
- TQString mRightData;
-};
-
-}
-
-#endif
diff --git a/kitchensync/src/groupconfig.cpp b/kitchensync/src/groupconfig.cpp
deleted file mode 100644
index 9f961ddc..00000000
--- a/kitchensync/src/groupconfig.cpp
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "groupconfig.h"
-
-#include "groupconfigcommon.h"
-#include "memberconfig.h"
-#include "memberinfo.h"
-#include "pluginpicker.h"
-#include "syncprocess.h"
-#include "syncprocessmanager.h"
-
-#include <libqopensync/group.h>
-#include <libqopensync/plugin.h>
-
-#include <kdialog.h>
-#include <kiconloader.h>
-#include <kjanuswidget.h>
-#include <tdelocale.h>
-#include <tdemessagebox.h>
-
-
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqpushbutton.h>
-
-GroupConfig::GroupConfig( TQWidget *parent )
- : TQWidget( parent )
-{
- TQBoxLayout *topLayout = new TQVBoxLayout( this );
- topLayout->setSpacing( KDialog::spacingHint() );
-
- TQFrame *titleFrame = new TQFrame( this );
- topLayout->addWidget( titleFrame );
-
- titleFrame->setPaletteForegroundColor( colorGroup().light() );
- titleFrame->setPaletteBackgroundColor( colorGroup().mid() );
-
- TQBoxLayout *nameLayout = new TQHBoxLayout( titleFrame );
- nameLayout->setMargin( 4 );
-
- TQPixmap icon = TDEGlobal::iconLoader()->loadIcon( "kontact_summary",
- TDEIcon::Desktop );
-
- TQLabel *iconLabel = new TQLabel( titleFrame );
- iconLabel->setPixmap( icon );
- nameLayout->addWidget( iconLabel );
-
- nameLayout->addSpacing( 8 );
-
- TQLabel *label = new TQLabel( i18n("Group:"), titleFrame );
- TQFont font = label->font();
- font.setBold( true );
- font.setPointSize( font.pointSize() + 2 );
- label->setFont( font );
- nameLayout->addWidget( label );
-
- mNameLabel = new TQLabel( titleFrame );
- font = mNameLabel->font();
- font.setBold( true );
- font.setPointSize( font.pointSize() + 2 );
- mNameLabel->setFont( font );
- nameLayout->addWidget( mNameLabel );
-
- nameLayout->addStretch( 1 );
-
- mMemberView = new KJanusWidget( this, 0, KJanusWidget::IconList );
- topLayout->addWidget( mMemberView );
-
- TQBoxLayout *buttonLayout = new TQHBoxLayout( topLayout );
-
- TQPushButton *addButton = new TQPushButton( i18n("Add Member..."), this );
- connect( addButton, TQT_SIGNAL( clicked() ), TQT_SLOT( addMember() ) );
- buttonLayout->addWidget( addButton );
-
- buttonLayout->addStretch( 1 );
-
- icon = TDEGlobal::iconLoader()->loadIcon( "bookmark", TDEIcon::Desktop );
- TQFrame *page = mMemberView->addPage( i18n("Group"),
- i18n("General Group Settings"), icon );
- TQBoxLayout *pageLayout = new TQVBoxLayout( page );
-
- mCommonConfig = new GroupConfigCommon( page );
- pageLayout->addWidget( mCommonConfig );
-}
-
-void GroupConfig::setSyncProcess( SyncProcess *process )
-{
- mProcess = process;
-
- mNameLabel->setText( mProcess->group().name() );
- mCommonConfig->setSyncProcess( mProcess );
-
- updateMembers();
-}
-
-void GroupConfig::updateMembers()
-{
- TQValueList<MemberConfig *>::ConstIterator memberIt;
- for ( memberIt = mMemberConfigs.begin(); memberIt != mMemberConfigs.end(); ++memberIt )
- (*memberIt)->saveData();
-
- TQValueList<TQFrame *>::ConstIterator it2;
- for ( it2 = mConfigPages.begin(); it2 != mConfigPages.end(); ++it2 ) {
- mMemberView->removePage( *it2 );
- delete *it2;
- }
- mConfigPages.clear();
- mMemberConfigs.clear();
-
- QSync::Group group = mProcess->group();
- QSync::Group::Iterator it( group.begin() );
- for ( ; it != group.end(); ++it ) {
- QSync::Member member = *it;
- MemberInfo mi( member );
- TQFrame *page = mMemberView->addPage( mi.name(),
- TQString( "%1 (%2)" ).arg( mi.name() ).arg(member.pluginName()), mi.desktopIcon() );
-
- TQBoxLayout *pageLayout = new TQVBoxLayout( page );
- mConfigPages.append( page );
-
- MemberConfig *memberConfig = new MemberConfig( page, member );
- mMemberConfigs.append( memberConfig );
- pageLayout->addWidget( memberConfig );
-
- memberConfig->loadData();
- }
-}
-
-void GroupConfig::saveConfig()
-{
- mProcess->group().save();
-
- TQValueList<MemberConfig *>::ConstIterator it;
- for ( it = mMemberConfigs.begin(); it != mMemberConfigs.end(); ++it )
- (*it)->saveData();
-
- mCommonConfig->save();
-
- mProcess->reinitEngine();
-}
-
-void GroupConfig::addMember()
-{
- QSync::Plugin plugin = PluginPickerDialog::getPlugin( this );
-
- if ( plugin.isValid() ) {
- QSync::Result result = SyncProcessManager::self()->addMember( mProcess, plugin );
- if ( result.isError() ) {
- KMessageBox::error( this, i18n("Error adding member %1\n%2\nType: %3")
- .arg( plugin.name() ).arg( result.message() ).arg( result.type() ) );
- } else {
- updateMembers();
-
- // select last (added) page
- int index = mMemberView->pageIndex( mConfigPages.last() );
- mMemberView->showPage( index );
- }
- }
-}
-
-#include "groupconfig.moc"
diff --git a/kitchensync/src/groupconfig.h b/kitchensync/src/groupconfig.h
deleted file mode 100644
index 6cf6da2e..00000000
--- a/kitchensync/src/groupconfig.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-#ifndef GROUPCONFIG_H
-#define GROUPCONFIG_H
-
-#include <tqwidget.h>
-#include <tqvaluelist.h>
-
-class TQFrame;
-class TQLabel;
-class KJanusWidget;
-
-class GroupConfigCommon;
-class MemberConfig;
-class SyncProcess;
-
-class GroupConfig : public TQWidget
-{
- Q_OBJECT
-
-
- public:
- GroupConfig( TQWidget *parent );
-
- void setSyncProcess( SyncProcess *process );
-
- void updateMembers();
-
- void saveConfig();
-
- protected slots:
- void addMember();
-
- private:
- TQLabel *mNameLabel;
-
- KJanusWidget *mMemberView;
-
- SyncProcess *mProcess;
-
- GroupConfigCommon *mCommonConfig;
- TQValueList<MemberConfig *> mMemberConfigs;
- TQValueList<TQFrame *> mConfigPages;
-};
-
-#endif
diff --git a/kitchensync/src/groupconfigcommon.cpp b/kitchensync/src/groupconfigcommon.cpp
deleted file mode 100644
index a3f89844..00000000
--- a/kitchensync/src/groupconfigcommon.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-
-#include <kdialog.h>
-#include <klineedit.h>
-#include <tdelocale.h>
-#include <kdebug.h>
-
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqcheckbox.h>
-
-#include <libqopensync/group.h>
-#include <libqopensync/conversion.h>
-#include <libqopensync/environment.h>
-
-#include "syncprocess.h"
-#include "syncprocessmanager.h"
-
-#include "groupconfigcommon.h"
-
-ObjectTypeSelector::ObjectTypeSelector( TQWidget *parent )
- : TQWidget( parent )
-{
- TQGridLayout *layout = new TQGridLayout( this );
- layout->setMargin( 0 );
-
- const QSync::Conversion conversion = SyncProcessManager::self()->environment()->conversion();
-
- TQMap<TQString, TQString> objectTypeMap;
- objectTypeMap.insert( "contact", i18n( "Contacts" ) );
- objectTypeMap.insert( "event", i18n( "Events" ) );
- objectTypeMap.insert( "todo", i18n( "To-dos" ) );
- objectTypeMap.insert( "note", i18n( "Notes" ) );
-
- TQStringList objectTypes = conversion.objectTypes();
-
- // reorder the entries so that contact and event are the first one
- qHeapSort( objectTypes );
-
- TQStringList reoderedObjectTypes, stack;
- for ( uint i = 0; i < objectTypes.count(); ++i ) {
- if ( objectTypes[ i ] == "contact" || objectTypes[ i ] == "event" )
- reoderedObjectTypes.append( objectTypes[ i ] );
- else
- stack.append( objectTypes[ i ] );
- }
- reoderedObjectTypes += stack;
-
- TQStringList::ConstIterator it;
-
- int row = 0;
- int col = 0;
- for( it = reoderedObjectTypes.begin(); it != reoderedObjectTypes.end(); ++it ) {
- TQString objectType = *it;
-
- // Don't display object type "data". Object type "data" is a kind of wildcard - so don't filter *
- if ( objectType == "data" )
- continue;
-
- TQCheckBox *objectCheckBox = new TQCheckBox( objectTypeMap[ objectType ], this );
- layout->addWidget( objectCheckBox, row, col );
- mObjectTypeChecks.insert( objectType, objectCheckBox );
-
- col++;
- if ( (row == 0 && col == 2) || col == 3 ) {
- col = 0;
- row++;
- }
- }
-}
-
-void ObjectTypeSelector::load( const QSync::Group &group )
-{
- const QSync::GroupConfig config = group.config();
-
- const TQStringList objectTypes = config.activeObjectTypes();
-
- // Enable everything on the inital load
- bool initialLoad = false;
- if ( objectTypes.isEmpty() )
- initialLoad = true;
-
- TQMap<TQString, TQCheckBox*>::ConstIterator it;
- for( it = mObjectTypeChecks.begin(); it != mObjectTypeChecks.end(); ++it ) {
- TQCheckBox *check = it.data();
- check->setChecked( objectTypes.contains( it.key() ) || initialLoad );
- }
-}
-
-void ObjectTypeSelector::save( QSync::Group group )
-{
- TQStringList objectTypes;
-
- TQMap<TQString,TQCheckBox *>::ConstIterator it;
- for( it = mObjectTypeChecks.begin(); it != mObjectTypeChecks.end(); ++it ) {
- TQCheckBox *check = it.data();
- if ( check->isChecked() )
- objectTypes.append( it.key() );
- }
-
- // Always add object type "data"
- objectTypes.append( "data" );
-
- QSync::GroupConfig config = group.config();
- config.setActiveObjectTypes( objectTypes );
-}
-
-GroupConfigCommon::GroupConfigCommon( TQWidget *parent )
- : TQWidget( parent )
-{
- TQGridLayout *layout = new TQGridLayout( this, 2, 2, KDialog::marginHint(), KDialog::spacingHint() );
-
- layout->addWidget( new TQLabel( i18n( "Name:" ), this ), 0, 0 );
-
- mGroupName = new KLineEdit( this );
- layout->addWidget( mGroupName, 0, 1 );
-
- layout->addWidget( new TQLabel( i18n( "Object Types to be Synchronized:"), this ), 1, 0, TQt::AlignTop );
-
- mObjectTypeSelector = new ObjectTypeSelector( this );
- layout->addWidget( mObjectTypeSelector, 1, 1 );
-
- layout->setRowStretch( 2, 1 );
-}
-
-void GroupConfigCommon::setSyncProcess( SyncProcess *syncProcess )
-{
- mSyncProcess = syncProcess;
-
- mGroupName->setText( mSyncProcess->group().name() );
- mObjectTypeSelector->load( mSyncProcess->group() );
-}
-
-void GroupConfigCommon::save()
-{
- mSyncProcess->group().setName( mGroupName->text() );
- mObjectTypeSelector->save( mSyncProcess->group() );
-}
diff --git a/kitchensync/src/groupconfigcommon.h b/kitchensync/src/groupconfigcommon.h
deleted file mode 100644
index 8b298316..00000000
--- a/kitchensync/src/groupconfigcommon.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-#ifndef GROUPCONFIGCOMMON_H
-#define GROUPCONFIGCOMMON_H
-
-#include <tqwidget.h>
-#include <tqmap.h>
-
-#include <libqopensync/group.h>
-
-class KLineEdit;
-class SyncProcess;
-class TQCheckBox;
-
-class ObjectTypeSelector : public TQWidget
-{
- public:
- ObjectTypeSelector( TQWidget *parent );
-
- void load( const QSync::Group &group );
- void save( QSync::Group group );
-
- private:
- TQMap<TQString,TQCheckBox *> mObjectTypeChecks;
-};
-
-class GroupConfigCommon : public TQWidget
-{
- public:
- GroupConfigCommon( TQWidget *parent );
-
- void setSyncProcess( SyncProcess *syncProcess );
- void save();
-
- private:
- KLineEdit *mGroupName;
- ObjectTypeSelector *mObjectTypeSelector;
-
- SyncProcess *mSyncProcess;
-};
-
-#endif
diff --git a/kitchensync/src/groupconfigdialog.cpp b/kitchensync/src/groupconfigdialog.cpp
deleted file mode 100644
index 522e54b1..00000000
--- a/kitchensync/src/groupconfigdialog.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "groupconfigdialog.h"
-
-#include "groupconfig.h"
-
-#include <tdelocale.h>
-
-#include <tqlayout.h>
-
-GroupConfigDialog::GroupConfigDialog( TQWidget *parent, SyncProcess *process )
- : KDialogBase( parent, 0, true, i18n("Configure Synchronization Group"),
- Ok )
-{
- TQFrame *topFrame = makeMainWidget();
-
- TQBoxLayout *topLayout = new TQVBoxLayout( topFrame );
-
- mConfigWidget = new GroupConfig( topFrame );
- topLayout->addWidget( mConfigWidget );
-
- mConfigWidget->setSyncProcess( process );
-
- setInitialSize( configDialogSize( "size_groupconfigdialog" ) );
-}
-
-GroupConfigDialog::~GroupConfigDialog()
-{
- saveDialogSize( "size_groupconfigdialog" );
-}
-
-void GroupConfigDialog::slotOk()
-{
- mConfigWidget->saveConfig();
-
- accept();
-}
-
-#include "groupconfigdialog.moc"
diff --git a/kitchensync/src/groupconfigdialog.h b/kitchensync/src/groupconfigdialog.h
deleted file mode 100644
index 988c2487..00000000
--- a/kitchensync/src/groupconfigdialog.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-#ifndef GROUPCONFIGDIALOG_H
-#define GROUPCONFIGDIALOG_H
-
-#include <kdialogbase.h>
-
-class GroupConfig;
-class SyncProcess;
-
-class GroupConfigDialog : public KDialogBase
-{
- Q_OBJECT
-
-
- public:
- GroupConfigDialog( TQWidget *parent, SyncProcess * );
- ~GroupConfigDialog();
-
- protected slots:
- void slotOk();
-
- private:
- GroupConfig *mConfigWidget;
-};
-
-#endif
diff --git a/kitchensync/src/groupitem.cpp b/kitchensync/src/groupitem.cpp
deleted file mode 100644
index d87ac37e..00000000
--- a/kitchensync/src/groupitem.cpp
+++ /dev/null
@@ -1,389 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include <tdeapplication.h>
-#include <kdialog.h>
-#include <tdeglobal.h>
-#include <tdeglobalsettings.h>
-#include <kiconloader.h>
-#include <tdelocale.h>
-#include <kpassivepopup.h>
-#include <kurllabel.h>
-
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqpixmap.h>
-#include <tqprogressbar.h>
-#include <tqvbox.h>
-
-#include "memberinfo.h"
-#include "multiconflictdialog.h"
-#include "singleconflictdialog.h"
-#include "syncprocessmanager.h"
-
-#include "groupitem.h"
-
-GroupItem::GroupItem( KWidgetList *parent, SyncProcess *process )
- : KWidgetListItem( parent ), mSyncProcess( process ),
- mCallbackHandler( new QSync::CallbackHandler ),
- mProcessedItems( 0 ), mMaxProcessedItems( 0 ),
- mSynchronizing( false )
-{
- TQFont boldFont;
- boldFont.setBold( true );
- boldFont.setPointSize( boldFont.pointSize() + 2 );
-
- TQGridLayout *layout = new TQGridLayout( this, 4, 4, KDialog::marginHint(), KDialog::spacingHint() );
-
- mBox = new TQVBox( this );
- mBox->setMargin( 5 );
- mProgressBar = new TQProgressBar( this );
- mProgressBar->setTotalSteps( 100 );
-
- mTime = new TQLabel( this );
- mSyncAction = new KURLLabel( "exec:/sync", i18n( "Synchronize Now" ), this );
- mConfigureAction = new KURLLabel( "exec:/config", i18n( "Configure" ), this );
-
- // header
- TQHBox* hbox = new TQHBox( this );
- hbox->setMargin( 2 );
-
- static TQPixmap icon;
- if ( icon.isNull() )
- icon = TDEGlobal::iconLoader()->loadIcon( "kontact_summary", TDEIcon::Desktop );
-
- mIcon = new TQLabel( hbox );
- mIcon->setPixmap( icon );
- mIcon->setFixedSize( mIcon->sizeHint() );
- mIcon->setPaletteBackgroundColor( colorGroup().mid() );
-
- mGroupName = new TQLabel( hbox );
- mGroupName->setAlignment( AlignLeft | AlignVCenter );
- mGroupName->setIndent( KDialog::spacingHint() );
- mGroupName->setFont( boldFont );
- mGroupName->setPaletteForegroundColor( colorGroup().light() );
- mGroupName->setPaletteBackgroundColor( colorGroup().mid() );
-
- mStatus = new TQLabel( hbox );
- mStatus->setAlignment( TQt::AlignRight );
- mStatus->setAlignment( AlignRight | AlignVCenter );
- mStatus->setIndent( KDialog::spacingHint() );
- mStatus->setFont( boldFont );
- mStatus->setPaletteForegroundColor( colorGroup().light() );
- mStatus->setPaletteBackgroundColor( colorGroup().mid() );
- mStatus->setText( i18n( "Ready" ) );
-
- hbox->setPaletteBackgroundColor( colorGroup().mid() );
- hbox->setMaximumHeight( hbox->minimumSizeHint().height() );
-
- layout->addMultiCellWidget( hbox, 0, 0, 0, 3 );
- layout->addMultiCellWidget( mBox, 1, 1, 0, 3 );
- layout->addWidget( mTime, 2, 0 );
- layout->addWidget( mSyncAction, 2, 1 );
- layout->addWidget( mConfigureAction, 2, 2 );
- layout->addWidget( mProgressBar, 2, 3 );
- layout->setColStretch( 0, 1 );
- layout->setRowStretch( 3, 1 );
-
- setPaletteBackgroundColor( kapp->palette().active().base() );
-
- connect( mCallbackHandler, TQT_SIGNAL( conflict( QSync::SyncMapping ) ),
- this, TQT_SLOT( conflict( QSync::SyncMapping ) ) );
- connect( mCallbackHandler, TQT_SIGNAL( change( const QSync::SyncChangeUpdate& ) ),
- this, TQT_SLOT( change( const QSync::SyncChangeUpdate& ) ) );
- connect( mCallbackHandler, TQT_SIGNAL( mapping( const QSync::SyncMappingUpdate& ) ),
- this, TQT_SLOT( mapping( const QSync::SyncMappingUpdate& ) ) );
- connect( mCallbackHandler, TQT_SIGNAL( engine( const QSync::SyncEngineUpdate& ) ),
- this, TQT_SLOT( engine( const QSync::SyncEngineUpdate& ) ) );
- connect( mCallbackHandler, TQT_SIGNAL( member( const QSync::SyncMemberUpdate& ) ),
- this, TQT_SLOT( member( const QSync::SyncMemberUpdate& ) ) );
- connect( mSyncAction, TQT_SIGNAL( leftClickedURL() ),
- this, TQT_SLOT( synchronize() ) );
- connect( mConfigureAction, TQT_SIGNAL( leftClickedURL() ),
- this, TQT_SLOT( configure() ) );
- connect( mSyncProcess, TQT_SIGNAL( engineChanged( QSync::Engine* ) ),
- this, TQT_SLOT( engineChanged( QSync::Engine* ) ) );
-
- mCallbackHandler->setEngine( mSyncProcess->engine() );
-
- setSelectionForegroundColor( TDEGlobalSettings::textColor() );
- setSelectionBackgroundColor( TDEGlobalSettings::alternateBackgroundColor() );
-
- update();
-}
-
-GroupItem::~GroupItem()
-{
- delete mCallbackHandler;
- mCallbackHandler = 0;
-}
-
-void GroupItem::update()
-{
- clear();
-
- mGroupName->setText( i18n( "Group: %1" ).arg( mSyncProcess->group().name() ) );
-
- TQDateTime dateTime = mSyncProcess->group().lastSynchronization();
- if ( dateTime.isValid() )
- mTime->setText( i18n( "Last synchronized on: %1" ).arg( TDEGlobal::locale()->formatDateTime( dateTime ) ) );
- else
- mTime->setText( i18n( "Not synchronized yet" ) );
-
- mProgressBar->reset();
- mProgressBar->hide();
-
- QSync::Group group = mSyncProcess->group();
- QSync::Group::Iterator memberIt( group.begin() );
- QSync::Group::Iterator memberEndIt( group.end() );
-
- for ( ; memberIt != memberEndIt; ++memberIt ) {
- MemberItem *item = new MemberItem( mBox, mSyncProcess, *memberIt );
- item->show();
- item->setStatusMessage( i18n( "Ready" ) );
- mMemberItems.append( item );
- }
-}
-
-void GroupItem::clear()
-{
- mGroupName->setText( TQString() );
-
- TQValueList<MemberItem*>::Iterator it;
- for ( it = mMemberItems.begin(); it != mMemberItems.end(); ++it )
- delete *it;
-
- mMemberItems.clear();
-}
-
-void GroupItem::conflict( QSync::SyncMapping mapping )
-{
- if ( mapping.changesCount() == 2 ) {
- SingleConflictDialog dlg( mapping, this );
- dlg.exec();
- } else {
- MultiConflictDialog dlg( mapping, this );
- dlg.exec();
- }
-}
-
-void GroupItem::change( const QSync::SyncChangeUpdate &update )
-{
- switch ( update.type() ) {
- case QSync::SyncChangeUpdate::Received:
- mProcessedItems++;
- mStatus->setText( i18n( "%1 entries read" ).arg( mProcessedItems ) );
- break;
- case QSync::SyncChangeUpdate::ReceivedInfo:
- mStatus->setText( i18n( "Receive information" ) );
- break;
- case QSync::SyncChangeUpdate::Sent:
- mProcessedItems--;
- mStatus->setText( i18n( "%1 entries written" ).arg( mMaxProcessedItems - mProcessedItems ) );
-
- mProgressBar->show();
-
- {
- int progress = 100;
- if ( mMaxProcessedItems != 0 )
- progress = (mProcessedItems * 100) / mMaxProcessedItems;
-
- if ( progress < 0 )
- progress = 0;
-
- mProgressBar->setProgress( 100 - progress );
- }
- break;
- case QSync::SyncChangeUpdate::WriteError:
- mStatus->setText( i18n( "Error" ) );
- KPassivePopup::message( update.result().message(), this );
- break;
- case QSync::SyncChangeUpdate::ReceiveError:
- mStatus->setText( i18n( "Error" ) );
- KPassivePopup::message( update.result().message(), this );
- break;
- default:
- mStatus->setText( TQString() );
- break;
- }
-}
-
-void GroupItem::mapping( const QSync::SyncMappingUpdate& )
-{
-}
-
-void GroupItem::engine( const QSync::SyncEngineUpdate &update )
-{
- switch ( update.type() ) {
- case QSync::SyncEngineUpdate::EndPhaseConnected:
- mStatus->setText( i18n( "Connected" ) );
- mProgressBar->setProgress( 0 );
- mSynchronizing = true;
- mSyncAction->setText( "Abort Synchronization" );
- break;
- case QSync::SyncEngineUpdate::EndPhaseRead:
- mStatus->setText( i18n( "Data read" ) );
- break;
- case QSync::SyncEngineUpdate::EndPhaseWrite:
- mStatus->setText( i18n( "Data written" ) );
- mProgressBar->setProgress( 100 );
- mProcessedItems = mMaxProcessedItems = 0;
- break;
- case QSync::SyncEngineUpdate::EndPhaseDisconnected:
- mStatus->setText( i18n( "Disconnected" ) );
- break;
- case QSync::SyncEngineUpdate::Error:
- mStatus->setText( i18n( "Synchronization failed" ) );
- KPassivePopup::message( update.result().message(), this );
- this->update();
-
- mSynchronizing = false;
- mSyncAction->setText( i18n( "Synchronize Now" ) );
- break;
- case QSync::SyncEngineUpdate::SyncSuccessfull:
- mStatus->setText( i18n( "Successfully synchronized" ) );
- mSyncProcess->group().setLastSynchronization( TQDateTime::currentDateTime() );
- mSyncProcess->group().save();
- this->update();
-
- mSynchronizing = false;
- mSyncAction->setText( i18n( "Synchronize Now" ) );
- break;
- case QSync::SyncEngineUpdate::PrevUnclean:
- mStatus->setText( i18n( "Previous synchronization failed" ) );
- break;
- case QSync::SyncEngineUpdate::EndConflicts:
- mStatus->setText( i18n( "Conflicts solved" ) );
- mMaxProcessedItems = mProcessedItems;
- break;
- default:
- mStatus->setText( TQString() );
- break;
- }
-}
-
-void GroupItem::member( const QSync::SyncMemberUpdate &update )
-{
- TQValueList<MemberItem*>::Iterator it;
- for ( it = mMemberItems.begin(); it != mMemberItems.end(); ++it ) {
- if ( (*it)->member() == update.member() ) {
- switch ( update.type() ) {
- case QSync::SyncMemberUpdate::Connected:
- (*it)->setStatusMessage( i18n( "Connected" ) );
- break;
- case QSync::SyncMemberUpdate::SentChanges:
- (*it)->setStatusMessage( i18n( "Changes read" ) );
- break;
- case QSync::SyncMemberUpdate::CommittedAll:
- (*it)->setStatusMessage( i18n( "Changes written" ) );
- break;
- case QSync::SyncMemberUpdate::Disconnected:
- (*it)->setStatusMessage( i18n( "Disconnected" ) );
- break;
- case QSync::SyncMemberUpdate::ConnectError:
- (*it)->setStatusMessage( i18n( "Error: %1" ).arg( update.result().message() ) );
- break;
- case QSync::SyncMemberUpdate::GetChangesError:
- (*it)->setStatusMessage( i18n( "Error: %1" ).arg( update.result().message() ) );
- break;
- case QSync::SyncMemberUpdate::CommittedAllError:
- (*it)->setStatusMessage( i18n( "Error: %1" ).arg( update.result().message() ) );
- break;
- case QSync::SyncMemberUpdate::SyncDoneError:
- (*it)->setStatusMessage( i18n( "Error: %1" ).arg( update.result().message() ) );
- break;
- case QSync::SyncMemberUpdate::DisconnectedError:
- (*it)->setStatusMessage( i18n( "Error: %1" ).arg( update.result().message() ) );
- break;
- default:
- break;
- }
-
- return;
- }
- }
-}
-
-void GroupItem::synchronize()
-{
- if ( !mSynchronizing )
- emit synchronizeGroup( mSyncProcess );
- else
- emit abortSynchronizeGroup( mSyncProcess );
-}
-
-void GroupItem::configure()
-{
- emit configureGroup( mSyncProcess );
-
- this->update();
-}
-
-void GroupItem::engineChanged( QSync::Engine *engine )
-{
- Q_ASSERT( engine );
-
- mCallbackHandler->setEngine( engine );
-
- this->update();
-}
-
-MemberItem::MemberItem( TQWidget *parent, SyncProcess *process,
- const QSync::Member &member )
- : TQWidget( parent ), mSyncProcess( process ), mMember( member )
-{
- TQFont boldFont;
- boldFont.setBold( true );
-
- MemberInfo mi( member );
-
- TQPixmap icon = mi.smallIcon();
-
- QSync::Plugin plugin = member.plugin();
-
- TQVBoxLayout *layout = new TQVBoxLayout( this );
-
- TQHBox* box = new TQHBox( this );
- box->setMargin( 5 );
- box->setSpacing( 6 );
- layout->addWidget( box );
-
- mIcon = new TQLabel( box );
- mIcon->setPixmap( icon );
- mIcon->setAlignment( TQt::AlignTop );
- mIcon->setFixedWidth( mIcon->sizeHint().width() );
-
- TQVBox *nameBox = new TQVBox( box );
- mMemberName = new TQLabel( nameBox );
- mMemberName->setFont( boldFont );
- mDescription = new TQLabel( nameBox );
-
- mStatus = new TQLabel( box );
-
- mMemberName->setText( member.name() );
- mDescription->setText( plugin.longName() );
-}
-
-void MemberItem::setStatusMessage( const TQString &msg )
-{
- mStatus->setText( msg );
-}
-
-#include "groupitem.moc"
diff --git a/kitchensync/src/groupitem.h b/kitchensync/src/groupitem.h
deleted file mode 100644
index 469b8329..00000000
--- a/kitchensync/src/groupitem.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#ifndef GROUPITEM_H
-#define GROUPITEM_H
-
-#include "syncprocess.h"
-
-#include <libqopensync/callbackhandler.h>
-
-#include <kwidgetlist.h>
-
-namespace QSync {
-class Engine;
-}
-
-class MemberItem;
-class KURLLabel;
-class TQLabel;
-class TQProgressBar;
-class TQVBox;
-
-class GroupItem : public KWidgetListItem
-{
- Q_OBJECT
-
-
- public:
- GroupItem( KWidgetList*, SyncProcess *syncProcess );
- ~GroupItem();
-
- SyncProcess *syncProcess() const { return mSyncProcess; }
-
- void update();
-
- void clear();
-
- signals:
- void synchronizeGroup( SyncProcess *syncProcess );
- void abortSynchronizeGroup( SyncProcess *syncProcess );
- void configureGroup( SyncProcess *syncProcess );
-
- protected slots:
- void conflict( QSync::SyncMapping );
- void change( const QSync::SyncChangeUpdate& );
- void mapping( const QSync::SyncMappingUpdate& );
- void engine( const QSync::SyncEngineUpdate& );
- void member( const QSync::SyncMemberUpdate& );
-
- void synchronize();
- void configure();
-
- void engineChanged( QSync::Engine *engine );
-
- private:
- SyncProcess *mSyncProcess;
- QSync::CallbackHandler *mCallbackHandler;
- TQValueList<MemberItem*> mMemberItems;
-
- TQLabel *mIcon;
- TQLabel *mGroupName;
- TQLabel *mStatus;
- TQLabel *mTime;
- KURLLabel *mSyncAction;
- KURLLabel *mConfigureAction;
- TQVBox *mBox;
- TQProgressBar *mProgressBar;
-
- int mProcessedItems;
- int mMaxProcessedItems;
- bool mSynchronizing;
-};
-
-class MemberItem : public TQWidget
-{
- public:
- MemberItem( TQWidget *parent, SyncProcess *syncProcess,
- const QSync::Member &member );
-
- SyncProcess* syncProcess() const { return mSyncProcess; }
- QSync::Member member() const { return mMember; }
-
- void setStatusMessage( const TQString &msg );
-
- private:
- SyncProcess *mSyncProcess;
- QSync::Member mMember;
-
- TQLabel *mIcon;
- TQLabel *mMemberName;
- TQLabel *mDescription;
- TQLabel *mStatus;
-};
-
-#endif
diff --git a/kitchensync/src/groupview.cpp b/kitchensync/src/groupview.cpp
deleted file mode 100644
index 8e1adf87..00000000
--- a/kitchensync/src/groupview.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include <tqlayout.h>
-
-#include "aboutpage.h"
-#include "groupitem.h"
-#include "syncprocessmanager.h"
-
-#include "groupview.h"
-
-GroupView::GroupView( TQWidget *parent )
- : TQWidget( parent ), mAboutPage( 0 )
-{
- mLayout = new TQVBoxLayout( this );
-
- mWidgetList = new KWidgetList( this );
-
- mLayout->addWidget( mWidgetList );
-}
-
-SyncProcess* GroupView::selectedSyncProcess() const
-{
- GroupItem *item = static_cast<GroupItem*>( mWidgetList->selectedItem() );
- if ( item )
- return item->syncProcess();
- else
- return 0;
-}
-
-void GroupView::clear()
-{
- mWidgetList->clear();
-}
-
-void GroupView::updateView()
-{
- clear();
-
- if ( SyncProcessManager::self()->count() == 0 ) {
- mWidgetList->hide();
-
- if ( !mAboutPage ) {
- mAboutPage = new AboutPage( this );
- mLayout->addWidget( mAboutPage );
-
- connect( mAboutPage, TQT_SIGNAL( addGroup() ), TQT_SIGNAL( addGroup() ) );
- }
-
- mAboutPage->show();
-
- } else {
- if ( mAboutPage )
- mAboutPage->hide();
- mWidgetList->show();
- }
-
- for ( int i = 0; i < SyncProcessManager::self()->count(); ++i ) {
- SyncProcess *process = SyncProcessManager::self()->at( i );
-
- GroupItem *item = new GroupItem( mWidgetList, process );
- connect( item, TQT_SIGNAL( synchronizeGroup( SyncProcess* ) ),
- TQT_SIGNAL( synchronizeGroup( SyncProcess* ) ) );
- connect( item, TQT_SIGNAL( abortSynchronizeGroup( SyncProcess* ) ),
- TQT_SIGNAL( abortSynchronizeGroup( SyncProcess* ) ) );
- connect( item, TQT_SIGNAL( configureGroup( SyncProcess* ) ),
- TQT_SIGNAL( configureGroup( SyncProcess* ) ) );
-
- mWidgetList->appendItem( item );
- }
-}
-
-void GroupView::updateSyncProcess( SyncProcess *syncProcess )
-{
- for ( int i = 0; i < (int)mWidgetList->count(); ++i ) {
- GroupItem *item = static_cast<GroupItem*>( mWidgetList->item( i ) );
- if ( item && item->syncProcess() == syncProcess )
- item->update();
- }
-}
-
-#include "groupview.moc"
diff --git a/kitchensync/src/groupview.h b/kitchensync/src/groupview.h
deleted file mode 100644
index 63a14279..00000000
--- a/kitchensync/src/groupview.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-#ifndef GROUPVIEW_H
-#define GROUPVIEW_H
-
-#include <kwidgetlist.h>
-
-class AboutPage;
-class SyncProcess;
-class TQVBoxLayout;
-
-class GroupView : public TQWidget
-{
- Q_OBJECT
-
-
- public:
- GroupView( TQWidget *parent );
-
- SyncProcess* selectedSyncProcess() const;
-
- void clear();
-
- public slots:
- void updateView();
- void updateSyncProcess( SyncProcess *process );
-
- signals:
- void addGroup();
- void synchronizeGroup( SyncProcess *syncProcess );
- void abortSynchronizeGroup( SyncProcess *syncProcess );
- void configureGroup( SyncProcess *syncProcess );
-
- private:
- AboutPage *mAboutPage;
- KWidgetList *mWidgetList;
-
- TQVBoxLayout *mLayout;
-};
-
-#endif
diff --git a/kitchensync/src/htmldiffalgodisplay.cpp b/kitchensync/src/htmldiffalgodisplay.cpp
deleted file mode 100644
index d91b7590..00000000
--- a/kitchensync/src/htmldiffalgodisplay.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- This file is part of libtdepim.
-
- Copyright (c) 2004 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <tdeglobalsettings.h>
-
-#include "htmldiffalgodisplay.h"
-
-using namespace KSync;
-
-static TQString textToHTML( const TQString &text )
-{
- return TQStyleSheet::convertFromPlainText( text );
-}
-
-HTMLDiffAlgoDisplay::HTMLDiffAlgoDisplay( TQWidget *parent )
- : KTextBrowser( parent )
-{
- setWrapPolicy( TQTextEdit::AtWordBoundary );
- setVScrollBarMode( TQScrollView::AlwaysOff );
- setHScrollBarMode( TQScrollView::AlwaysOff );
-}
-
-void HTMLDiffAlgoDisplay::begin()
-{
- clear();
- mText = "";
-
- mText.append( "<html>" );
- mText.append( TQString( "<body text=\"%1\" bgcolor=\"%2\">" )
- .arg( TDEGlobalSettings::textColor().name() )
- .arg( TDEGlobalSettings::baseColor().name() ) );
-
- mText.append( "<center><table>" );
- mText.append( TQString( "<tr><th></th><th align=\"center\">%1</th><td> </td><th align=\"center\">%2</th></tr>" )
- .arg( mLeftTitle )
- .arg( mRightTitle ) );
-}
-
-void HTMLDiffAlgoDisplay::end()
-{
- mText.append( "</table></center>"
- "</body>"
- "</html>" );
-
- setText( mText );
-}
-
-void HTMLDiffAlgoDisplay::setLeftSourceTitle( const TQString &title )
-{
- mLeftTitle = title;
-}
-
-void HTMLDiffAlgoDisplay::setRightSourceTitle( const TQString &title )
-{
- mRightTitle = title;
-}
-
-void HTMLDiffAlgoDisplay::additionalLeftField( const TQString &id, const TQString &value )
-{
- mText.append( TQString( "<tr><td align=\"right\"><b>%1:</b></td><td bgcolor=\"#9cff83\">%2</td><td></td><td></td></tr>" )
- .arg( id )
- .arg( textToHTML( value ) ) );
-}
-
-void HTMLDiffAlgoDisplay::additionalRightField( const TQString &id, const TQString &value )
-{
- mText.append( TQString( "<tr><td align=\"right\"><b>%1:</b></td><td></td><td></td><td bgcolor=\"#9cff83\">%2</td></tr>" )
- .arg( id )
- .arg( textToHTML( value ) ) );
-}
-
-void HTMLDiffAlgoDisplay::conflictField( const TQString &id, const TQString &leftValue,
- const TQString &rightValue )
-{
- mText.append( TQString( "<tr><td align=\"right\"><b>%1:</b></td><td bgcolor=\"#ff8686\">%2</td><td></td><td bgcolor=\"#ff8686\">%3</td></tr>" )
- .arg( id )
- .arg( textToHTML( leftValue ) )
- .arg( textToHTML( rightValue ) ) );
-}
diff --git a/kitchensync/src/htmldiffalgodisplay.h b/kitchensync/src/htmldiffalgodisplay.h
deleted file mode 100644
index 0dd92f01..00000000
--- a/kitchensync/src/htmldiffalgodisplay.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- This file is part of libtdepim.
-
- Copyright (c) 2004 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef KSYNC_HTMLDIFFALGODISPLAY_H
-#define KSYNC_HTMLDIFFALGODISPLAY_H
-
-#include <ktextbrowser.h>
-#include <libtdepim/diffalgo.h>
-
-using namespace KPIM;
-
-namespace KSync {
-
-class HTMLDiffAlgoDisplay : virtual public DiffAlgoDisplay, public KTextBrowser
-{
- public:
- HTMLDiffAlgoDisplay( TQWidget *parent );
-
- void begin();
- void end();
- void setLeftSourceTitle( const TQString &title );
- void setRightSourceTitle( const TQString &title );
- void additionalLeftField( const TQString &id, const TQString &value );
- void additionalRightField( const TQString &id, const TQString &value );
- void conflictField( const TQString &id, const TQString &leftValue,
- const TQString &rightValue );
-
- private:
- TQString mLeftTitle;
- TQString mRightTitle;
- TQString mText;
-};
-
-}
-
-#endif
diff --git a/kitchensync/src/kitchensync.desktop b/kitchensync/src/kitchensync.desktop
deleted file mode 100644
index 4a325334..00000000
--- a/kitchensync/src/kitchensync.desktop
+++ /dev/null
@@ -1,60 +0,0 @@
-[Desktop Entry]
-Name=KitchenSync
-Name[pt]=KitchenSyncFilter
-Name[sv]=Kitchensync
-GenericName=Synchronization
-GenericName[af]=Sinkronisasie
-GenericName[bg]=Синхронизация
-GenericName[ca]=Sincronització
-GenericName[cs]=Synchronizace
-GenericName[cy]=Cydamseriad
-GenericName[da]=Synkronisering
-GenericName[de]=Abgleich
-GenericName[el]=Συγχρονισμός
-GenericName[eo]=Sinkronigo
-GenericName[es]=Sincronización
-GenericName[et]=Sünkroniseerimine
-GenericName[eu]=Sinkronizazioa
-GenericName[fa]=همگامی
-GenericName[fi]=Synkronointi
-GenericName[fr]=Synchronisation
-GenericName[fy]=Syngronisaasje
-GenericName[ga]=Sioncrónú
-GenericName[gl]=Sincronización
-GenericName[he]=סינכרון
-GenericName[hu]=Szinkronizáció
-GenericName[is]=Samstilling
-GenericName[it]=Sincronizzazione
-GenericName[ja]=同期
-GenericName[kk]=Қадамдастыру
-GenericName[km]=ការ​​ធ្វើ​សមកាលកម្ម
-GenericName[lt]=Sinchronizacija
-GenericName[ms]=Segerakan
-GenericName[nb]=Synkronisering
-GenericName[nds]=Synkroniseren
-GenericName[nl]=Synchronisatie
-GenericName[nn]=Synkronisering
-GenericName[pl]=Synchronizacja
-GenericName[pt]=Sincronização
-GenericName[pt_BR]=Gerenciador de Sincronização
-GenericName[ru]=Синхронизация
-GenericName[sk]=Synchronizácia
-GenericName[sl]=Usklajevanje
-GenericName[sr]=Синхронизација
-GenericName[sr@Latn]=Sinhronizacija
-GenericName[sv]=Synkronisering
-GenericName[ta]=கூட்டிணைப்பு
-GenericName[tr]=Senkronizasyon
-GenericName[uk]=Синхронізація
-GenericName[zh_CN]=同步
-Exec=kitchensync
-Icon=kitchensync
-Type=Application
-X-DocPath=kitchensync/index.html
-Terminal=false
-X-TDE-StartupNotify=true
-X-DCOP-ServiceType=Unique
-X-DCOP-ServiceName=kitchensync
-X-TDE-ServiceTypes=KParts/ReadOnlyPart
-X-TDE-Library=libkitchensyncpart
-Categories=Qt;TDE;Utility;Telephony;X-TDE-Utilities-Peripherals;
diff --git a/kitchensync/src/kitchensync_part.rc b/kitchensync/src/kitchensync_part.rc
deleted file mode 100644
index 03a13ba6..00000000
--- a/kitchensync/src/kitchensync_part.rc
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE kpartgui>
-<kpartgui name="kitchensync" version="1">
- <MenuBar>
- <Menu name="file">
- <Action name="sync" />
- </Menu>
-
- <Menu name="groups"><text>&amp;Groups</text>
- <Action name="add_group" />
- <Action name="edit_group" />
- <Action name="delete_group" />
- </Menu>
- </MenuBar>
-
- <ToolBar name="mainToolBar"><text>Main</text>
- <Action name="sync" />
- <Separator />
- <Action name="add_group" />
- <Action name="edit_group" />
- <Action name="delete_group" />
- </ToolBar>
-</kpartgui>
diff --git a/kitchensync/src/kitchensyncui.rc b/kitchensync/src/kitchensyncui.rc
deleted file mode 100644
index df2e49be..00000000
--- a/kitchensync/src/kitchensyncui.rc
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE kpartgui>
-<kpartgui name="kitchensync" version="2">
- <MenuBar>
- <Menu name="file">
- <Action name="sync" />
- </Menu>
-
- <Menu name="groups"><text>&amp;Groups</text>
- <Action name="add_group" />
- <Action name="edit_group" />
- <Action name="delete_group" />
- </Menu>
- </MenuBar>
-
- <ToolBar name="mainToolBar"><text>Main</text>
- <Action name="sync" />
- <Separator />
- <Action name="add_group" />
- <Action name="edit_group" />
- <Action name="delete_group" />
- </ToolBar>
-</kpartgui>
diff --git a/kitchensync/src/kwidgetlist.cpp b/kitchensync/src/kwidgetlist.cpp
deleted file mode 100644
index f26f8d68..00000000
--- a/kitchensync/src/kwidgetlist.cpp
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <tqvbox.h>
-
-#include <tdeglobalsettings.h>
-
-#include "kwidgetlist.h"
-
-class KWidgetList::Private
-{
- public:
- Private()
- : mSelectedItem( 0 )
- {
- }
-
- TQValueList<KWidgetListItem*> mItems;
- KWidgetListItem *mSelectedItem;
- TQVBox *mBox;
-};
-
-KWidgetList::KWidgetList( TQWidget *parent, const char *name )
- : TQScrollView( parent, name ),
- d( new Private )
-{
- d->mBox = new TQVBox( viewport() );
- addChild( d->mBox );
-
- setResizePolicy( AutoOneFit );
- setFocusPolicy( TQ_StrongFocus );
-
- viewport()->setFocus();
-}
-
-KWidgetList::~KWidgetList()
-{
- clear();
-
- delete d;
- d = 0;
-}
-
-uint KWidgetList::count() const
-{
- return d->mItems.count();
-}
-
-void KWidgetList::appendItem( KWidgetListItem *item )
-{
- if ( !item )
- return;
-
- if ( !d->mItems.contains( item ) ) {
- d->mItems.append( item );
- item->reparent( d->mBox, 0, TQPoint( 0, 0 ), true );
- item->setSelected( false );
- item->installEventFilter( this );
-
- if ( d->mItems.count() == 1 ) {
- d->mSelectedItem = item;
- } else {
- if ( !d->mSelectedItem )
- setSelected( item );
- else
- d->mSelectedItem->setSelected( true );
- }
- }
-}
-
-void KWidgetList::removeItem( int index )
-{
- if ( index < 0 || index >= (int)d->mItems.count() )
- return;
-
- KWidgetListItem *item = d->mItems[ index ];
- d->mItems.remove( item );
-
- if ( d->mSelectedItem == item ) {
- // TODO: smarter selection
- if ( !d->mItems.isEmpty() )
- setSelected( d->mItems.first() );
- else
- d->mSelectedItem = 0;
- }
-
- delete item;
-
- if ( d->mItems.count() == 1 )
- d->mItems.first()->setSelected( false );
-}
-
-void KWidgetList::takeItem( KWidgetListItem *item )
-{
- d->mItems.remove( item );
- item->reparent( 0, 0, TQPoint( 0, 0 ) );
- item->removeEventFilter( this );
- item->hide();
-
- if ( d->mSelectedItem == item ) {
- // TODO: smarter selection
- if ( !d->mItems.isEmpty() )
- setSelected( d->mItems.first() );
- else
- d->mSelectedItem = 0;
- }
-}
-
-void KWidgetList::setSelected( KWidgetListItem *item )
-{
- if ( !item )
- return;
-
- if ( d->mItems.contains( item ) == 0 )
- return;
-
- if ( d->mSelectedItem )
- d->mSelectedItem->setSelected( false );
-
- item->setSelected( true );
- d->mSelectedItem = item;
-}
-
-void KWidgetList::setSelected( int index )
-{
- setSelected( item( index ) );
-}
-
-bool KWidgetList::isSelected( KWidgetListItem *item ) const
-{
- return ( d->mSelectedItem == item );
-}
-
-bool KWidgetList::isSelected( int index ) const
-{
- return isSelected( item( index ) );
-}
-
-KWidgetListItem *KWidgetList::selectedItem() const
-{
- return d->mSelectedItem;
-}
-
-KWidgetListItem *KWidgetList::item( int index ) const
-{
- if ( index < 0 || index >= (int)d->mItems.count() )
- return 0;
- else
- return d->mItems[ index ];
-}
-
-int KWidgetList::index( KWidgetListItem *item ) const
-{
- return d->mItems.findIndex( item );
-}
-
-void KWidgetList::clear()
-{
- TQValueList<KWidgetListItem*>::Iterator it;
- for ( it = d->mItems.begin(); it != d->mItems.end(); ++it )
- delete *it;
-
- d->mItems.clear();
-
- d->mSelectedItem = 0;
-}
-
-void KWidgetList::setFocus()
-{
- viewport()->setFocus();
-}
-
-bool KWidgetList::eventFilter( TQObject *object, TQEvent *event )
-{
- if ( event->type() == TQEvent::MouseButtonPress ) {
- TQMouseEvent *mouseEvent = TQT_TQMOUSEEVENT( event );
- if ( mouseEvent->button() & Qt::LeftButton ) {
- TQValueList<KWidgetListItem*>::Iterator it;
- for ( it = d->mItems.begin(); it != d->mItems.end(); ++it ) {
- if ( TQT_BASE_OBJECT(*it) == TQT_BASE_OBJECT(object) ) {
- if ( d->mItems.count() != 1 ) {
- setSelected( *it );
- emit selectionChanged( *it );
- }
- return true;
- }
- }
- }
- } else if ( event->type() == TQEvent::MouseButtonDblClick ) {
- TQValueList<KWidgetListItem*>::Iterator it;
- for ( it = d->mItems.begin(); it != d->mItems.end(); ++it ) {
- if ( TQT_BASE_OBJECT(*it) == TQT_BASE_OBJECT(object) ) {
- if ( d->mItems.count() != 1 ) {
- setSelected( *it );
- emit doubleClicked( *it );
- }
- return true;
- }
- }
- } else if ( event->type() == TQEvent::KeyPress ) {
- TQKeyEvent *keyEvent = TQT_TQKEYEVENT( event );
- if ( keyEvent->key() == TQt::Key_Up ) {
- if ( d->mSelectedItem == 0 ) {
- if ( !d->mItems.isEmpty() ) {
- setSelected( d->mItems.first() );
- return true;
- }
- }
-
- for ( int i = 0; i < (int)d->mItems.count(); ++i ) {
- if ( d->mItems[ i ] == d->mSelectedItem ) {
- if ( ( i - 1 ) >= 0 ) {
- setSelected( d->mItems[ i - 1 ] );
- return true;
- }
- }
- }
- return true;
- } else if ( keyEvent->key() == TQt::Key_Down ) {
- if ( d->mSelectedItem == 0 ) {
- if ( !d->mItems.isEmpty() ) {
- setSelected( d->mItems.last() );
- return true;
- }
- }
-
- for ( int i = 0; i < (int)d->mItems.count(); ++i )
- if ( d->mItems[ i ] == d->mSelectedItem ) {
- if ( ( i + 1 ) < (int)d->mItems.count() ) {
- setSelected( d->mItems[ i + 1 ] );
- return true;
- }
- }
- return true;
- }
- }
-
- return TQScrollView::eventFilter( object, event );
-}
-
-KWidgetListItem::KWidgetListItem( KWidgetList *parent, const char *name )
- : TQWidget( parent, name )
-{
- mForegroundColor = TDEGlobalSettings::textColor();
- mBackgroundColor = TDEGlobalSettings::baseColor();
- mSelectionForegroundColor = TDEGlobalSettings::highlightedTextColor();
- mSelectionBackgroundColor = TDEGlobalSettings::highlightColor();
-
- setFocusPolicy( TQ_StrongFocus );
-}
-
-KWidgetListItem::~KWidgetListItem()
-{
-}
-
-void KWidgetListItem::setSelected( bool select )
-{
- if ( select ) {
- setPaletteForegroundColor( mSelectionForegroundColor );
- setPaletteBackgroundColor( mSelectionBackgroundColor );
- } else {
- setPaletteForegroundColor( mForegroundColor );
- setPaletteBackgroundColor( mBackgroundColor );
- }
-}
-
-void KWidgetListItem::setForegroundColor( const TQColor &color )
-{
- mForegroundColor = color;
-}
-
-void KWidgetListItem::setBackgroundColor( const TQColor &color )
-{
- mBackgroundColor = color;
-}
-
-void KWidgetListItem::setSelectionForegroundColor( const TQColor &color )
-{
- mSelectionForegroundColor = color;
-}
-
-void KWidgetListItem::setSelectionBackgroundColor( const TQColor &color )
-{
- mSelectionBackgroundColor = color;
-}
-
-#include "kwidgetlist.moc"
diff --git a/kitchensync/src/kwidgetlist.h b/kitchensync/src/kwidgetlist.h
deleted file mode 100644
index 54eaf88b..00000000
--- a/kitchensync/src/kwidgetlist.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef KWIDGETLIST_H
-#define KWIDGETLIST_H
-
-#include <tqscrollview.h>
-
-class KWidgetListItem;
-
-class KWidgetList : public TQScrollView
-{
- Q_OBJECT
-
-
- public:
- KWidgetList( TQWidget *parent = 0, const char *name = 0 );
- ~KWidgetList();
-
- uint count() const;
-
- void appendItem( KWidgetListItem *item );
- void removeItem( int index );
- void takeItem( KWidgetListItem *item );
-
- void setSelected( KWidgetListItem *item );
- void setSelected( int index );
-
- bool isSelected( KWidgetListItem *item ) const;
- bool isSelected( int index ) const;
-
- KWidgetListItem *selectedItem() const;
- KWidgetListItem *item( int index ) const;
-
- int index( KWidgetListItem *item ) const;
-
- virtual bool eventFilter( TQObject *object, TQEvent *event );
-
- public slots:
- void clear();
- virtual void setFocus();
-
- signals:
- void selectionChanged( KWidgetListItem *item );
- void doubleClicked( KWidgetListItem *item );
-
- private:
- class Private;
- Private *d;
-};
-
-class KWidgetListItem : public TQWidget
-{
- public:
- KWidgetListItem( KWidgetList *parent, const char *name = 0 );
- ~KWidgetListItem();
-
- void setSelected( bool selected );
-
- protected:
- void setForegroundColor( const TQColor& );
- void setBackgroundColor( const TQColor& );
- void setSelectionForegroundColor( const TQColor& );
- void setSelectionBackgroundColor( const TQColor& );
-
- private:
- TQColor mForegroundColor;
- TQColor mBackgroundColor;
- TQColor mSelectionForegroundColor;
- TQColor mSelectionBackgroundColor;
-};
-
-#endif
diff --git a/kitchensync/src/main.cpp b/kitchensync/src/main.cpp
deleted file mode 100644
index d5a0c267..00000000
--- a/kitchensync/src/main.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include <kdebug.h>
-#include <tdeaboutdata.h>
-#include <tdecmdlineargs.h>
-#include <kuniqueapplication.h>
-#include <stdlib.h>
-
-#include "mainwidget.h"
-#include "mainwindow.h"
-
-static TDECmdLineOptions options[] =
-{
- TDECmdLineLastOption
-};
-
-int main( int argc, char **argv )
-{
- TDEAboutData *about = MainWidget::aboutData();
-
- TDECmdLineArgs::init( argc, argv, about );
- TDECmdLineArgs::addCmdLineOptions( options );
- KUniqueApplication::addCmdLineOptions();
-
- KUniqueApplication::addCmdLineOptions();
-
- if( !KUniqueApplication::start() ) {
- kdDebug() << "kitchensync already runs." << endl;
- exit( 0 );
- };
-
- KUniqueApplication app;
-
- TDEGlobal::locale()->insertCatalogue( "libkcal" );
-
- MainWindow *mainWindow = new MainWindow;
- mainWindow->show();
-
- app.exec();
-}
diff --git a/kitchensync/src/mainwidget.cpp b/kitchensync/src/mainwidget.cpp
deleted file mode 100644
index 611c0a22..00000000
--- a/kitchensync/src/mainwidget.cpp
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "mainwidget.h"
-
-#include "groupconfigdialog.h"
-#include "groupview.h"
-#include "syncprocess.h"
-#include "syncprocessmanager.h"
-
-#include <libqopensync/environment.h>
-
-#include <tdeaboutdata.h>
-#include <tdeaction.h>
-#include <kdebug.h>
-#include <kinputdialog.h>
-#include <tdelistview.h>
-#include <tdelocale.h>
-#include <tdemessagebox.h>
-#include <kstdaction.h>
-#include <kxmlguiclient.h>
-
-#include <tqlayout.h>
-
-MainWidget::MainWidget( KXMLGUIClient *guiClient, TQWidget *widget, const char *name )
- : TQWidget( widget, name ), mGUIClient( guiClient )
-{
- initGUI();
- initActions();
-
- /** apply object type filter hack **/
- int count = SyncProcessManager::self()->count();
- for ( int i = 0; i < count; ++i ) {
- SyncProcessManager::self()->at( i )->applyObjectTypeFilter();
- }
- /** apply object type filter hack **/
-
- mGroupView->updateView();
-
- connect( SyncProcessManager::self(), TQT_SIGNAL( changed() ),
- mGroupView, TQT_SLOT( updateView() ) );
- connect( SyncProcessManager::self(), TQT_SIGNAL( syncProcessChanged( SyncProcess* ) ),
- mGroupView, TQT_SLOT( updateSyncProcess( SyncProcess* ) ) );
-
- enableActions();
-}
-
-MainWidget::~MainWidget()
-{
-}
-
-KXMLGUIClient *MainWidget::guiClient() const
-{
- return mGUIClient;
-}
-
-TDEAboutData *MainWidget::aboutData()
-{
- TDEAboutData *about = new TDEAboutData( "kitchensync", I18N_NOOP( "KitchenSync" ),
- "0.1", I18N_NOOP( "The TDE Syncing Application" ),
- TDEAboutData::License_GPL_V2,
- I18N_NOOP( "(c) 2005, The KDE PIM Team" ) );
- about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer" ), "tokoe@kde.org" );
- about->addAuthor( "Cornelius Schumacher", 0, "schumacher@kde.org" );
-
- return about;
-}
-
-void MainWidget::initGUI()
-{
- TQVBoxLayout *topLayout = new TQVBoxLayout( this );
-
- mGroupView = new GroupView( this );
- topLayout->addWidget( mGroupView );
-
- connect( mGroupView, TQT_SIGNAL( addGroup() ), TQT_SLOT( addGroup() ) );
- connect( mGroupView, TQT_SIGNAL( synchronizeGroup( SyncProcess* ) ),
- TQT_SLOT( sync( SyncProcess* ) ) );
- connect( mGroupView, TQT_SIGNAL( abortSynchronizeGroup( SyncProcess* ) ),
- TQT_SLOT( abortSync( SyncProcess* ) ) );
- connect( mGroupView, TQT_SIGNAL( configureGroup( SyncProcess* ) ),
- TQT_SLOT( editGroup( SyncProcess* ) ) );
-}
-
-void MainWidget::initActions()
-{
- mActionSynchronize = new TDEAction( i18n("Synchronize"), "hotsync", 0, TQT_TQOBJECT(this), TQT_SLOT( sync() ),
- mGUIClient->actionCollection(), "sync" );
- mActionAddGroup = new TDEAction( i18n("Add Group..."), "document-new", 0, TQT_TQOBJECT(this), TQT_SLOT( addGroup() ),
- mGUIClient->actionCollection(), "add_group" );
- mActionDeleteGroup = new TDEAction( i18n("Delete Group..."), "edit-delete", 0, TQT_TQOBJECT(this), TQT_SLOT( deleteGroup() ),
- mGUIClient->actionCollection(), "delete_group" );
- mActionEditGroup = new TDEAction( i18n("Edit Group..."), "edit", 0, TQT_TQOBJECT(this), TQT_SLOT( editGroup() ),
- mGUIClient->actionCollection(), "edit_group" );
-}
-
-void MainWidget::enableActions()
-{
- bool state = ( SyncProcessManager::self()->count() > 0 );
-
- mActionSynchronize->setEnabled( state );
- mActionDeleteGroup->setEnabled( state );
- mActionEditGroup->setEnabled( state );
-}
-
-void MainWidget::addGroup()
-{
- bool ok;
- TQString name = KInputDialog::getText( i18n("Create Synchronization Group"),
- i18n("Name for new synchronization group."), TQString(), &ok, this );
- if ( ok ) {
- SyncProcessManager::self()->addGroup( name );
- enableActions();
-
- SyncProcess *process = SyncProcessManager::self()->byGroupName( name );
- if ( process )
- editGroup( process );
- }
-}
-
-void MainWidget::deleteGroup()
-{
- SyncProcess *syncProcess = mGroupView->selectedSyncProcess();
- if ( syncProcess ) {
- int result = KMessageBox::warningContinueCancel( this,
- i18n("Delete synchronization group '%1'?").arg( syncProcess->group().name() ) );
- if ( result == KMessageBox::Continue ) {
- SyncProcessManager::self()->remove( syncProcess );
- enableActions();
- }
- }
-}
-
-void MainWidget::editGroup()
-{
- editGroup( mGroupView->selectedSyncProcess() );
-}
-
-void MainWidget::editGroup( SyncProcess *syncProcess )
-{
- if ( syncProcess ) {
- GroupConfigDialog dlg( this, syncProcess );
- dlg.exec();
-
- enableActions();
- }
-}
-
-void MainWidget::sync()
-{
- sync( mGroupView->selectedSyncProcess() );
-}
-
-void MainWidget::sync( SyncProcess *syncProcess )
-{
- if ( syncProcess ) {
- syncProcess->reinitEngine();
- QSync::Result result = syncProcess->engine()->synchronize();
- if ( result ) {
- tqDebug( "%s", result.message().latin1() );
- } else {
- tqDebug( "synchronization worked" );
- }
- }
-}
-
-void MainWidget::abortSync( SyncProcess *syncProcess )
-{
- if ( syncProcess )
- syncProcess->engine()->abort();
-}
-
-#include "mainwidget.moc"
diff --git a/kitchensync/src/mainwidget.h b/kitchensync/src/mainwidget.h
deleted file mode 100644
index 87939450..00000000
--- a/kitchensync/src/mainwidget.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-#ifndef MAINWIDGET_H
-#define MAINWIDGET_H
-
-#include <libqopensync/engine.h>
-#include <kdemacros.h>
-
-#include <tqwidget.h>
-
-class TDEAboutData;
-class TDEAction;
-class KXMLGUIClient;
-class GroupView;
-class SyncProcess;
-class SyncProcessManager;
-
-namespace QSync {
-class Environment;
-}
-
-class KDE_EXPORT MainWidget : public TQWidget
-{
- Q_OBJECT
-
- public:
- MainWidget( KXMLGUIClient *guiClient, TQWidget *widget = 0, const char *name = 0 );
- ~MainWidget();
-
- virtual KXMLGUIClient *guiClient() const;
- static TDEAboutData *aboutData();
-
- public slots:
- void addGroup();
- void deleteGroup();
- void editGroup();
- void editGroup( SyncProcess *syncProcess );
-
- void sync();
- void sync( SyncProcess *syncProcess );
- void abortSync( SyncProcess *syncProcess );
-
- private:
- void initGUI();
- void initActions();
- void enableActions();
-
- KXMLGUIClient *mGUIClient;
- TDEAction *mActionSynchronize;
- TDEAction *mActionAddGroup;
- TDEAction *mActionDeleteGroup;
- TDEAction *mActionEditGroup;
-
- GroupView *mGroupView;
-};
-
-#endif
diff --git a/kitchensync/src/mainwindow.cpp b/kitchensync/src/mainwindow.cpp
deleted file mode 100644
index a267956d..00000000
--- a/kitchensync/src/mainwindow.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include <tdeaction.h>
-#include <tdelocale.h>
-#include <kstdaction.h>
-#include <tdetoolbar.h>
-
-#include "mainwidget.h"
-
-#include "mainwindow.h"
-
-MainWindow::MainWindow()
- : TDEMainWindow( 0 )
-{
- setWFlags( getWFlags() | WGroupLeader );
-
- setCaption( i18n( "PIM Synchronization" ) );
-
- mWidget = new MainWidget( this, this, "MainWidget" );
-
- setCentralWidget( mWidget );
-
- initActions();
-
- createGUI( "kitchensyncui.rc", false );
- createGUI( 0 );
-
- toolBar()->setIconText( TDEToolBar::IconTextBottom );
-
- resize( 760, 530 ); // initial size
- setAutoSaveSettings();
-}
-
-MainWindow::~MainWindow()
-{
-}
-
-void MainWindow::initActions()
-{
- KStdAction::quit( TQT_TQOBJECT(this), TQT_SLOT( close() ), actionCollection() );
-}
-
-#include "mainwindow.moc"
diff --git a/kitchensync/src/mainwindow.h b/kitchensync/src/mainwindow.h
deleted file mode 100644
index d3a0bb6e..00000000
--- a/kitchensync/src/mainwindow.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <tdemainwindow.h>
-
-class MainWidget;
-
-/**
- This class serves as the main window for Kitchensync. It handles the
- menus, toolbars, and status bars.
- */
-class MainWindow : public TDEMainWindow
-{
- Q_OBJECT
-
-
- public:
- MainWindow();
- virtual ~MainWindow();
-
- private:
- void initActions();
-
- MainWidget *mWidget;
-};
-
-#endif
diff --git a/kitchensync/src/memberconfig.cpp b/kitchensync/src/memberconfig.cpp
deleted file mode 100644
index 93e5f1ff..00000000
--- a/kitchensync/src/memberconfig.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include "memberconfig.h"
-
-#include "configgui.h"
-#include "memberinfo.h"
-
-#include <tdelocale.h>
-#include <tdemessagebox.h>
-
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqtabwidget.h>
-
-MemberConfig::MemberConfig( TQWidget *parent, const QSync::Member &member )
- : TQWidget( parent ), mMember( member )
-{
- TQBoxLayout *topLayout = new TQVBoxLayout( this );
-
- mGui = ConfigGui::Factory::create( member, this );
- topLayout->addWidget( mGui );
-}
-
-MemberConfig::~MemberConfig()
-{
-}
-
-void MemberConfig::loadData()
-{
- TQByteArray cfg;
- QSync::Result error = mMember.configuration( cfg );
-
- if ( error ) {
- KMessageBox::error( this,
- i18n("Unable to read config from plugin '%1':\n%2")
- .arg( mMember.pluginName() ).arg( error.message() ) );
- } else {
- TQString txt = TQString::fromUtf8( cfg.data(), cfg.size() );
- mGui->load( txt );
- MemberInfo mi( mMember );
- mGui->setInstanceName( mi.name() );
- }
-}
-
-void MemberConfig::saveData()
-{
- TQString txt = mGui->save();
-
- if ( txt.isEmpty() ) {
- KMessageBox::sorry( this, i18n("Configuration of %1 is empty.").arg( mMember.pluginName() ) );
- } else {
- TQByteArray cfg = txt.utf8();
- cfg.truncate(cfg.size() - 1); /* discard NUL terminator */
- mMember.setConfiguration( cfg );
- mMember.setName( mGui->instanceName() );
- // TODO: Check for save() error.
- mMember.save();
- }
-}
-
-#include "memberconfig.moc"
diff --git a/kitchensync/src/memberconfig.h b/kitchensync/src/memberconfig.h
deleted file mode 100644
index b79fc644..00000000
--- a/kitchensync/src/memberconfig.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-#ifndef MEMBERCONFIG_H
-#define MEMBERCONFIG_H
-
-#include <libqopensync/member.h>
-
-#include <tqwidget.h>
-
-class TQTextEdit;
-class ConfigGui;
-
-class MemberConfig : public TQWidget
-{
- Q_OBJECT
-
-
- public:
- MemberConfig( TQWidget *parent, const QSync::Member & );
- ~MemberConfig();
-
- void loadData();
- void saveData();
-
- private:
- QSync::Member mMember;
-
- ConfigGui *mGui;
-};
-
-#endif
diff --git a/kitchensync/src/memberinfo.cpp b/kitchensync/src/memberinfo.cpp
deleted file mode 100644
index fb52c7a7..00000000
--- a/kitchensync/src/memberinfo.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "memberinfo.h"
-
-#include <tdeglobal.h>
-#include <kiconloader.h>
-#include <tdelocale.h>
-
-MemberInfo::MemberInfo( const QSync::Member &member )
- : mMember( member )
-{
-}
-
-TQPixmap MemberInfo::smallIcon() const
-{
- return TDEGlobal::iconLoader()->loadIcon( iconName(), TDEIcon::Small );
-}
-
-TQPixmap MemberInfo::desktopIcon() const
-{
- return TDEGlobal::iconLoader()->loadIcon( iconName(), TDEIcon::Desktop );
-}
-
-TQString MemberInfo::iconName() const
-{
- return pluginIconName( mMember.pluginName() );
-}
-
-TQString MemberInfo::name() const
-{
- static TQMap<TQString, TQString> nameMap;
- if ( nameMap.isEmpty() ) {
- nameMap.insert( "file-sync", i18n( "File" ) );
- nameMap.insert( "palm-sync", i18n( "Palm" ) );
- nameMap.insert( "tdepim-sync", i18n( "TDE PIM" ) );
- nameMap.insert( "tdeio-sync", i18n( "Remote File" ) );
- nameMap.insert( "irmc-sync", i18n( "Mobile Phone" ) );
- nameMap.insert( "evo2-sync", i18n( "Evolution" ) );
- nameMap.insert( "opie-sync", i18n( "Handheld" ) );
- nameMap.insert( "ldap-sync", i18n( "LDAP" ) );
- nameMap.insert( "syncml-obex-client", i18n( "Mobile Phone" ) );
- nameMap.insert( "syncml-http-server", i18n( "Mobile Phone" ) );
- nameMap.insert( "moto-sync", i18n( "Mobile Phone" ) );
- nameMap.insert( "gnokii-sync", i18n( "Mobile Phone" ) );
- nameMap.insert( "google-calendar", i18n( "Google Calendar" ) );
- nameMap.insert( "gpe-sync", i18n( "Handheld" ) );
- nameMap.insert( "sunbird-sync", i18n( "Sunbird Calendar" ) );
- nameMap.insert( "jescs-sync", i18n( "Java Enterprise System Calendar" ) );
- nameMap.insert( "synce-plugin", i18n( "WinCE Devices" ) );
- }
-
- if ( mMember.name().isEmpty() )
- return nameMap[ mMember.pluginName() ] + " (" + TQString::number( mMember.id() ) + ") ";
- else
- return mMember.name();
-}
-
-TQString MemberInfo::pluginIconName( const TQString &pluginName )
-{
- if ( pluginName == "file-sync" ) return "folder";
- if ( pluginName == "palm-sync" ) return "pda_black";
- if ( pluginName == "tdepim-sync" ) return "kontact";
- if ( pluginName == "tdeio-sync" ) return "network";
- if ( pluginName == "irmc-sync" ) return "mobile_phone";
- if ( pluginName == "evo2-sync" ) return "evolution";
- if ( pluginName == "opie-sync" ) return "pda_blue";
- if ( pluginName == "synce-plugin" ) return "pda_blue";
- if ( pluginName == "ldap-sync" ) return "contents2";
- if ( pluginName == "syncml-obex-client" ) return "mobile_phone";
- if ( pluginName == "syncml-http-server" ) return "pda_blue";
- if ( pluginName == "moto-sync" ) return "mobile_phone";
- if ( pluginName == "gnokii-sync" ) return "mobile_phone";
- if ( pluginName == "google-calendar" ) return "www";
- if ( pluginName == "gpe-sync" ) return "pda_blue";
- if ( pluginName == "sunbird-sync" ) return "www";
- if ( pluginName == "jescs-sync" ) return "www";
-
-
- return TQString();
-}
diff --git a/kitchensync/src/memberinfo.h b/kitchensync/src/memberinfo.h
deleted file mode 100644
index 8f0d7f4f..00000000
--- a/kitchensync/src/memberinfo.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-#ifndef MEMBERINFO_H
-#define MEMBERINFO_H
-
-#include <libqopensync/member.h>
-
-#include <tqstring.h>
-#include <tqpixmap.h>
-
-class MemberInfo
-{
- public:
- MemberInfo( const QSync::Member &member );
-
- TQPixmap smallIcon() const;
- TQPixmap desktopIcon() const;
-
- TQString iconName() const;
-
- TQString name() const;
-
- static TQString pluginIconName( const TQString &pluginName );
-
- private:
- QSync::Member mMember;
-};
-
-#endif
diff --git a/kitchensync/src/multiconflictdialog.cpp b/kitchensync/src/multiconflictdialog.cpp
deleted file mode 100644
index 608d33a8..00000000
--- a/kitchensync/src/multiconflictdialog.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include <kdialog.h>
-#include <tdelocale.h>
-#include <kwidgetlist.h>
-
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqpushbutton.h>
-
-#include "memberinfo.h"
-
-#include "multiconflictdialog.h"
-
-class ChangeItem : public KWidgetListItem
-{
- public:
- ChangeItem( KWidgetList *parent, const QSync::SyncChange &change )
- : KWidgetListItem( parent ),
- mChange( change )
- {
- TQGridLayout *layout = new TQGridLayout( this, 2, 1, KDialog::marginHint(), KDialog::spacingHint() );
-
- MemberInfo mi( change.member() );
- layout->addWidget( new TQLabel( mi.name(), this ), 0, 0 );
-
- TQString type;
- switch ( change.changeType() ) {
- case QSync::SyncChange::UnknownChange:
- type = i18n( "Unknown" );
- break;
- case QSync::SyncChange::AddedChange:
- type = i18n( "Added" );
- break;
- case QSync::SyncChange::DeletedChange:
- type = i18n( "Deleted" );
- break;
- case QSync::SyncChange::ModifiedChange:
- type = i18n( "Modified" );
- break;
- case QSync::SyncChange::UnmodifiedChange:
- default:
- type = i18n( "Unmodified" );
- break;
- }
-
- layout->addWidget( new TQLabel( type, this ), 1, 0 );
- }
-
- QSync::SyncChange change() const { return mChange; }
-
- private:
- QSync::SyncChange mChange;
-};
-
-MultiConflictDialog::MultiConflictDialog( QSync::SyncMapping &mapping, TQWidget *parent )
- : ConflictDialog( mapping, parent )
-{
- initGUI();
-
- for ( int i = 0; i < mMapping.changesCount(); ++i ) {
- QSync::SyncChange change = mMapping.changeAt( i );
- if ( change.isValid() ) {
- ChangeItem *item = new ChangeItem( mWidgetList, change );
- mWidgetList->appendItem( item );
- }
- }
-
- mWidgetList->setFocus();
-}
-
-MultiConflictDialog::~MultiConflictDialog()
-{
-}
-
-void MultiConflictDialog::useSelectedChange()
-{
- ChangeItem *item = static_cast<ChangeItem*>( mWidgetList->selectedItem() );
- if ( !item )
- return;
-
- mMapping.solve( item->change() );
-
- accept();
-}
-
-void MultiConflictDialog::duplicateChange()
-{
- mMapping.duplicate();
-
- accept();
-}
-
-void MultiConflictDialog::ignoreChange()
-{
- mMapping.ignore();
-
- accept();
-}
-
-void MultiConflictDialog::initGUI()
-{
- TQGridLayout *layout = new TQGridLayout( this, 3, 3, KDialog::marginHint(), KDialog::spacingHint() );
-
- layout->addMultiCellWidget( new TQLabel( i18n( "A conflict has appeared, please solve it manually." ), this ), 0, 0, 0, 2 );
-
- mWidgetList = new KWidgetList( this );
- layout->addMultiCellWidget( mWidgetList, 1, 1, 0, 2 );
-
- TQPushButton *button = new TQPushButton( i18n( "Use Selected Item" ), this );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( useSelectedChange() ) );
- layout->addWidget( button, 2, 0 );
-
- button = new TQPushButton( i18n( "Duplicate Items" ), this );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( duplicateChange() ) );
- layout->addWidget( button, 2, 1 );
-
- button = new TQPushButton( i18n( "Ignore Conflict" ), this );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( ignoreChange() ) );
- layout->addWidget( button, 2, 2 );
-}
-
-#include "multiconflictdialog.moc"
diff --git a/kitchensync/src/multiconflictdialog.h b/kitchensync/src/multiconflictdialog.h
deleted file mode 100644
index 64455311..00000000
--- a/kitchensync/src/multiconflictdialog.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#ifndef MULTICONFLICTDIALOG_H
-#define MULTICONFLICTDIALOG_H
-
-#include "conflictdialog.h"
-
-class KWidgetList;
-
-class MultiConflictDialog : public ConflictDialog
-{
- Q_OBJECT
-
-
- public:
- MultiConflictDialog( QSync::SyncMapping &mapping, TQWidget *parent );
- ~MultiConflictDialog();
-
- private slots:
- void useSelectedChange();
- void duplicateChange();
- void ignoreChange();
-
- private:
- void initGUI();
-
- KWidgetList *mWidgetList;
-};
-
-#endif
diff --git a/kitchensync/src/part.cpp b/kitchensync/src/part.cpp
deleted file mode 100644
index c52b28ae..00000000
--- a/kitchensync/src/part.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include <tqlayout.h>
-#include <tqvbox.h>
-
-#include <tdeaction.h>
-#include <tdeapplication.h>
-#include <kdebug.h>
-#include <kiconloader.h>
-#include <kinstance.h>
-#include <tdelocale.h>
-#include <tdeparts/genericfactory.h>
-
-#include "mainwidget.h"
-
-#include "part.h"
-
-typedef KParts::GenericFactory< KitchenSyncPart > KitchenSyncFactory;
-K_EXPORT_COMPONENT_FACTORY( libkitchensyncpart, KitchenSyncFactory )
-
-KitchenSyncPart::KitchenSyncPart( TQWidget *parentWidget, const char *widgetName,
- TQObject *parent, const char *name,
- const TQStringList& )
- : KParts::ReadOnlyPart( parent, name )
-{
- setInstance( KitchenSyncFactory::instance() );
-
- TQVBox *canvas = new TQVBox( parentWidget, widgetName );
- setWidget( canvas );
-
- new MainWidget( this, canvas );
-
- TDEGlobal::iconLoader()->addAppDir( "kitchensync" );
-
- setXMLFile( "kitchensync_part.rc" );
-}
-
-KitchenSyncPart::~KitchenSyncPart()
-{
- closeURL();
-}
-
-TDEAboutData *KitchenSyncPart::createAboutData()
-{
- return MainWidget::aboutData();
-}
-
-void KitchenSyncPart::exit()
-{
- delete this;
-}
-
-bool KitchenSyncPart::openURL( const KURL &url )
-{
- emit setWindowCaption( url.prettyURL() );
-
- return true;
-}
-
-bool KitchenSyncPart::openFile()
-{
- return true;
-}
-
-void KitchenSyncPart::guiActivateEvent( KParts::GUIActivateEvent *e )
-{
- KParts::ReadOnlyPart::guiActivateEvent( e );
-}
-
-#include "part.moc"
-
diff --git a/kitchensync/src/part.h b/kitchensync/src/part.h
deleted file mode 100644
index b799cea5..00000000
--- a/kitchensync/src/part.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#ifndef PART_H
-#define PART_H
-
-#include <tdeparts/event.h>
-#include <tdeparts/factory.h>
-#include <tdeparts/part.h>
-
-class TDEAboutData;
-
-class KitchenSyncPart: public KParts::ReadOnlyPart
-{
- Q_OBJECT
-
-
- public:
- KitchenSyncPart( TQWidget *parentWidget, const char *widgetName,
- TQObject *parent, const char *name, const TQStringList& );
- virtual ~KitchenSyncPart();
-
- static TDEAboutData *createAboutData();
-
- virtual void exit();
- virtual bool openURL( const KURL &url );
-
- protected:
- virtual bool openFile();
- virtual void guiActivateEvent( KParts::GUIActivateEvent* );
-};
-
-#endif
diff --git a/kitchensync/src/pics/CMakeLists.txt b/kitchensync/src/pics/CMakeLists.txt
deleted file mode 100644
index aeb0522e..00000000
--- a/kitchensync/src/pics/CMakeLists.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-#################################################
-#
-# (C) 2010-2011 Serghei Amelian
-# serghei (DOT) amelian (AT) gmail.com
-#
-# Improvements and feedback are welcome
-#
-# This file is released under GPL >= 2
-#
-#################################################
-
-tde_install_icons( kitchensync )
-tde_install_icons( hotsync mobile_phone DESTINATION ${DATA_INSTALL_DIR}/kitchensync/icons )
diff --git a/kitchensync/src/pics/Makefile.am b/kitchensync/src/pics/Makefile.am
deleted file mode 100644
index ddb7cc45..00000000
--- a/kitchensync/src/pics/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-kitchensyncicondir = $(kde_datadir)/kitchensync/icons
-kitchensyncicon_ICON = hotsync mobile_phone
-
-KDE_ICON = kitchensync
diff --git a/kitchensync/src/pics/cr128-app-mobile_phone.png b/kitchensync/src/pics/cr128-app-mobile_phone.png
deleted file mode 100644
index bfdefe7a..00000000
--- a/kitchensync/src/pics/cr128-app-mobile_phone.png
+++ /dev/null
Binary files differ
diff --git a/kitchensync/src/pics/cr16-action-hotsync.png b/kitchensync/src/pics/cr16-action-hotsync.png
deleted file mode 100644
index 1f779008..00000000
--- a/kitchensync/src/pics/cr16-action-hotsync.png
+++ /dev/null
Binary files differ
diff --git a/kitchensync/src/pics/cr16-app-mobile_phone.png b/kitchensync/src/pics/cr16-app-mobile_phone.png
deleted file mode 100644
index d4dac16b..00000000
--- a/kitchensync/src/pics/cr16-app-mobile_phone.png
+++ /dev/null
Binary files differ
diff --git a/kitchensync/src/pics/cr22-action-hotsync.png b/kitchensync/src/pics/cr22-action-hotsync.png
deleted file mode 100644
index 4f2faf57..00000000
--- a/kitchensync/src/pics/cr22-action-hotsync.png
+++ /dev/null
Binary files differ
diff --git a/kitchensync/src/pics/cr32-action-hotsync.png b/kitchensync/src/pics/cr32-action-hotsync.png
deleted file mode 100644
index 88603e5d..00000000
--- a/kitchensync/src/pics/cr32-action-hotsync.png
+++ /dev/null
Binary files differ
diff --git a/kitchensync/src/pics/cr32-app-mobile_phone.png b/kitchensync/src/pics/cr32-app-mobile_phone.png
deleted file mode 100644
index f4497358..00000000
--- a/kitchensync/src/pics/cr32-app-mobile_phone.png
+++ /dev/null
Binary files differ
diff --git a/kitchensync/src/pics/cr48-action-hotsync.png b/kitchensync/src/pics/cr48-action-hotsync.png
deleted file mode 100644
index d2cbff52..00000000
--- a/kitchensync/src/pics/cr48-action-hotsync.png
+++ /dev/null
Binary files differ
diff --git a/kitchensync/src/pics/cr48-app-mobile_phone.png b/kitchensync/src/pics/cr48-app-mobile_phone.png
deleted file mode 100644
index 6d38be09..00000000
--- a/kitchensync/src/pics/cr48-app-mobile_phone.png
+++ /dev/null
Binary files differ
diff --git a/kitchensync/src/pics/cr64-app-mobile_phone.png b/kitchensync/src/pics/cr64-app-mobile_phone.png
deleted file mode 100644
index 41e852a6..00000000
--- a/kitchensync/src/pics/cr64-app-mobile_phone.png
+++ /dev/null
Binary files differ
diff --git a/kitchensync/src/pics/hi16-app-kitchensync.png b/kitchensync/src/pics/hi16-app-kitchensync.png
deleted file mode 100644
index 1f779008..00000000
--- a/kitchensync/src/pics/hi16-app-kitchensync.png
+++ /dev/null
Binary files differ
diff --git a/kitchensync/src/pics/hi22-app-kitchensync.png b/kitchensync/src/pics/hi22-app-kitchensync.png
deleted file mode 100644
index 4f2faf57..00000000
--- a/kitchensync/src/pics/hi22-app-kitchensync.png
+++ /dev/null
Binary files differ
diff --git a/kitchensync/src/pics/hi32-app-kitchensync.png b/kitchensync/src/pics/hi32-app-kitchensync.png
deleted file mode 100644
index 88603e5d..00000000
--- a/kitchensync/src/pics/hi32-app-kitchensync.png
+++ /dev/null
Binary files differ
diff --git a/kitchensync/src/pics/hi48-app-kitchensync.png b/kitchensync/src/pics/hi48-app-kitchensync.png
deleted file mode 100644
index d2cbff52..00000000
--- a/kitchensync/src/pics/hi48-app-kitchensync.png
+++ /dev/null
Binary files differ
diff --git a/kitchensync/src/pluginpicker.cpp b/kitchensync/src/pluginpicker.cpp
deleted file mode 100644
index 0b869248..00000000
--- a/kitchensync/src/pluginpicker.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "pluginpicker.h"
-
-#include "memberinfo.h"
-#include "syncprocessmanager.h"
-
-#include <libqopensync/environment.h>
-
-#include <kdialog.h>
-#include <tdeglobal.h>
-#include <kiconloader.h>
-#include <tdelocale.h>
-
-#include <tqlabel.h>
-#include <tqlayout.h>
-
-PluginItem::PluginItem( KWidgetList *list, const QSync::Plugin &plugin )
- : KWidgetListItem( list ), mPlugin( plugin )
-{
- TQString iconName = MemberInfo::pluginIconName( mPlugin.name() );
- TQGridLayout *layout = new TQGridLayout( this, 2, 2, KDialog::marginHint(), KDialog::spacingHint() );
-
- TQLabel *icon = new TQLabel( this );
- icon->setPixmap( TDEGlobal::iconLoader()->loadIcon( iconName, TDEIcon::Desktop ) );
- icon->setFixedSize( icon->sizeHint() );
-
- TQLabel *name = new TQLabel( plugin.longName(), this );
- TQLabel *description = new TQLabel( plugin.description(), this );
-
- TQFont font = name->font();
- font.setBold( true );
- name->setFont( font );
-
- layout->addWidget( icon, 0, 0 );
- layout->addWidget( name, 0, 1 );
- layout->addWidget( description, 1, 1 );
-}
-
-
-PluginPicker::PluginPicker( TQWidget *parent )
- : TQWidget( parent )
-{
- TQBoxLayout *layout = new TQVBoxLayout( this );
-
- mPluginList = new KWidgetList( this );
- layout->addWidget( mPluginList );
-
- connect( mPluginList, TQT_SIGNAL( doubleClicked( KWidgetListItem* ) ),
- TQT_SIGNAL( selected() ) );
-
- updatePluginList();
-
- mPluginList->setFocus();
-}
-
-void PluginPicker::updatePluginList()
-{
- mPluginList->clear();
-
- QSync::Environment *env = SyncProcessManager::self()->environment();
-
- QSync::Environment::PluginIterator it( env->pluginBegin() );
- for( ; it != env->pluginEnd(); ++it ) {
- QSync::Plugin plugin = *it;
- mPluginList->appendItem( new PluginItem( mPluginList, plugin ) );
- }
-}
-
-QSync::Plugin PluginPicker::selectedPlugin() const
-{
- PluginItem *item = static_cast<PluginItem *>( mPluginList->selectedItem() );
- if ( item ) return item->plugin();
- else return QSync::Plugin();
-}
-
-
-PluginPickerDialog::PluginPickerDialog( TQWidget *parent )
- : KDialogBase( parent, 0, true, i18n("Select Member Type"), Ok | Cancel )
-{
- TQFrame *topFrame = makeMainWidget();
-
- TQBoxLayout *topLayout = new TQVBoxLayout( topFrame );
-
- mPicker = new PluginPicker( topFrame );
- topLayout->addWidget( mPicker );
-
- connect( mPicker, TQT_SIGNAL( selected() ), TQT_SLOT( slotOk() ) );
-
- setInitialSize( TQSize( 460, 380 ) );
-}
-
-QSync::Plugin PluginPickerDialog::selectedPlugin() const
-{
- return mPicker->selectedPlugin();
-}
-
-QSync::Plugin PluginPickerDialog::getPlugin( TQWidget *parent )
-{
- PluginPickerDialog dlg( parent );
- if ( dlg.exec() )
- return dlg.selectedPlugin();
- else
- return QSync::Plugin();
-}
-
-void PluginPickerDialog::slotOk()
-{
- accept();
-}
-
-void PluginPickerDialog::slotCancel()
-{
- reject();
-}
-
-#include "pluginpicker.moc"
diff --git a/kitchensync/src/pluginpicker.h b/kitchensync/src/pluginpicker.h
deleted file mode 100644
index 04e8d9fb..00000000
--- a/kitchensync/src/pluginpicker.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-#ifndef PLUGINPICKER_H
-#define PLUGINPICKER_H
-
-#include <libqopensync/plugin.h>
-
-#include <kdialogbase.h>
-#include <kwidgetlist.h>
-
-#include <tqwidget.h>
-
-class PluginItem : public KWidgetListItem
-{
- public:
- PluginItem( KWidgetList *, const QSync::Plugin & );
-
- QSync::Plugin plugin() const { return mPlugin; }
-
- private:
- QSync::Plugin mPlugin;
-};
-
-class PluginPicker : public TQWidget
-{
- Q_OBJECT
-
-
- public:
- PluginPicker( TQWidget *parent );
-
- QSync::Plugin selectedPlugin() const;
-
- signals:
- void selected();
-
- protected:
- void updatePluginList();
-
- private:
- KWidgetList *mPluginList;
-};
-
-class PluginPickerDialog : public KDialogBase
-{
- Q_OBJECT
-
-
- public:
- PluginPickerDialog( TQWidget *parent );
-
- QSync::Plugin selectedPlugin() const;
-
- static QSync::Plugin getPlugin( TQWidget *parent );
-
- protected slots:
- void slotOk();
- void slotCancel();
-
- private:
- PluginPicker *mPicker;
-};
-
-#endif
diff --git a/kitchensync/src/singleconflictdialog.cpp b/kitchensync/src/singleconflictdialog.cpp
deleted file mode 100644
index bac94835..00000000
--- a/kitchensync/src/singleconflictdialog.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include <kdialog.h>
-#include <tdelocale.h>
-
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqpushbutton.h>
-
-#include "addresseediffalgo.h"
-#include "genericdiffalgo.h"
-#include "htmldiffalgodisplay.h"
-#include "memberinfo.h"
-
-#include "singleconflictdialog.h"
-
-SingleConflictDialog::SingleConflictDialog( QSync::SyncMapping &mapping, TQWidget *parent )
- : ConflictDialog( mapping, parent ), mDiffAlgo( 0 )
-{
- initGUI();
-
- TQString format = mapping.changeAt( 0 ).objectFormatName();
- QSync::SyncChange leftChange = mapping.changeAt( 0 );
- QSync::SyncChange rightChange = mapping.changeAt( 1 );
-
- if ( format == "file" ) {
- mDiffAlgo = new KSync::GenericDiffAlgo( leftChange.data(), rightChange.data() );
- } else if ( format == "vcard" ) {
- } else if ( format == "calendar" ) {
- } else if ( format == "xml-contact" ) {
- mDiffAlgo = new KSync::AddresseeDiffAlgo( leftChange.data(), rightChange.data() );
- }
-
- MemberInfo miLeft( leftChange.member() );
- mDiffAlgoDisplay->setLeftSourceTitle( miLeft.name() );
- MemberInfo miRight( rightChange.member() );
- mDiffAlgoDisplay->setRightSourceTitle( miRight.name() );
-
- if ( mDiffAlgo ) {
- mDiffAlgo->addDisplay( mDiffAlgoDisplay );
- mDiffAlgo->run();
- }
-}
-
-SingleConflictDialog::~SingleConflictDialog()
-{
- delete mDiffAlgo;
- mDiffAlgo = 0;
-}
-
-void SingleConflictDialog::useFirstChange()
-{
- mMapping.solve( mMapping.changeAt( 0 ) );
-
- accept();
-}
-
-void SingleConflictDialog::useSecondChange()
-{
- mMapping.solve( mMapping.changeAt( 1 ) );
-
- accept();
-}
-
-void SingleConflictDialog::duplicateChange()
-{
- mMapping.duplicate();
-
- accept();
-}
-
-void SingleConflictDialog::ignoreChange()
-{
- mMapping.ignore();
-
- accept();
-}
-
-void SingleConflictDialog::initGUI()
-{
- TQGridLayout *layout = new TQGridLayout( this, 3, 4, KDialog::marginHint(), KDialog::spacingHint() );
-
- layout->addMultiCellWidget( new TQLabel( i18n( "A conflict has appeared, please solve it manually." ), this ), 0, 0, 0, 3 );
- mDiffAlgoDisplay = new KSync::HTMLDiffAlgoDisplay( this );
-
- layout->addMultiCellWidget( mDiffAlgoDisplay, 1, 1, 0, 3 );
-
- TQPushButton *button = new TQPushButton( i18n( "Use Item" ), this );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( useFirstChange() ) );
- layout->addWidget( button, 2, 0 );
-
- button = new TQPushButton( i18n( "Duplicate Items" ), this );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( duplicateChange() ) );
- layout->addWidget( button, 2, 1 );
-
- button = new TQPushButton( i18n( "Ignore Conflict" ), this );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( ignoreChange() ) );
- layout->addWidget( button, 2, 2 );
-
- button = new TQPushButton( i18n( "Use Item" ), this );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( useSecondChange() ) );
- layout->addWidget( button, 2, 3 );
-}
-
-#include "singleconflictdialog.moc"
diff --git a/kitchensync/src/singleconflictdialog.h b/kitchensync/src/singleconflictdialog.h
deleted file mode 100644
index 4422a3c2..00000000
--- a/kitchensync/src/singleconflictdialog.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#ifndef SINGLECONFLICTDIALOG_H
-#define SINGLECONFLICTDIALOG_H
-
-#include "conflictdialog.h"
-#include <libtdepim/diffalgo.h>
-
-using namespace KPIM;
-
-namespace KSync {
-class HTMLDiffAlgoDisplay;
-}
-
-class SingleConflictDialog : public ConflictDialog
-{
- Q_OBJECT
-
-
- public:
- SingleConflictDialog( QSync::SyncMapping &mapping, TQWidget *parent );
- ~SingleConflictDialog();
-
- private slots:
- void useFirstChange();
- void useSecondChange();
- void duplicateChange();
- void ignoreChange();
-
- private:
- void initGUI();
-
- DiffAlgo *mDiffAlgo;
- KSync::HTMLDiffAlgoDisplay *mDiffAlgoDisplay;
-};
-
-#endif
diff --git a/kitchensync/src/syncprocess.cpp b/kitchensync/src/syncprocess.cpp
deleted file mode 100644
index 4e9c46b6..00000000
--- a/kitchensync/src/syncprocess.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#include <libqopensync/engine.h>
-#include <libqopensync/environment.h>
-
-#include <kdebug.h>
-#include <tdelocale.h>
-
-#include "syncprocess.h"
-#include "syncprocessmanager.h"
-
-using namespace QSync;
-
-SyncProcess::SyncProcess( const QSync::Group &group )
- : TQObject( 0, "SyncProcess" )
-{
- mGroup = group;
- mEngine = new QSync::Engine( mGroup );
-
- Result result = mEngine->initialize();
- if ( result.isError() )
- kdDebug() << "SyncProcess::SyncProcess: " << result.message() << endl;
-}
-
-SyncProcess::~SyncProcess()
-{
- mEngine->finalize();
-
- delete mEngine;
- mEngine = 0;
-}
-
-TQString SyncProcess::groupStatus() const
-{
- return i18n( "Ready" );
-}
-
-TQString SyncProcess::memberStatus( const QSync::Member& ) const
-{
- return i18n( "Ready" );
-}
-
-QSync::Result SyncProcess::addMember( const QSync::Plugin &plugin )
-{
- QSync::Member member = mGroup.addMember();
- QSync::Result result = member.instance( plugin );
-
- if ( !result.isError() )
- mGroup.save();
-
- return result;
-}
-
-void SyncProcess::reinitEngine()
-{
- mEngine->finalize();
- delete mEngine;
- mEngine = new QSync::Engine( mGroup );
- Result result = mEngine->initialize();
- if ( result.isError() )
- kdDebug() << "SyncProcess::reinitEngine: " << result.message() << endl;
-
- applyObjectTypeFilter();
-
- emit engineChanged( mEngine );
-}
-
-void SyncProcess::applyObjectTypeFilter()
-{
- const QSync::Conversion conversion = SyncProcessManager::self()->environment()->conversion();
- const TQStringList objectTypes = conversion.objectTypes();
- const TQStringList activeObjectTypes = mGroup.config().activeObjectTypes();
-
- for ( uint i = 0; i < objectTypes.count(); ++i ) {
- if ( activeObjectTypes.contains( objectTypes[ i ] ) ) {
- kdDebug() << "Enabled object type: " << objectTypes[ i ] << endl;
- /*
- * This is not required. Also this lead to filtering problems when sync with "file-sync".
- * Uncomment this line again when OpenSync is fixed!
- *
- * mGroup.setObjectTypeEnabled( objectTypes[ i ], true );
- */
- } else {
- kdDebug() << "Disabled object type: " << objectTypes[ i ] << endl;
- mGroup.setObjectTypeEnabled( objectTypes[ i ], false );
- }
- }
-}
-
-#include "syncprocess.moc"
diff --git a/kitchensync/src/syncprocess.h b/kitchensync/src/syncprocess.h
deleted file mode 100644
index f510875c..00000000
--- a/kitchensync/src/syncprocess.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-#ifndef SYNCPROCESS_H
-#define SYNCPROCESS_H
-
-#include <tqobject.h>
-
-#include <libqopensync/group.h>
-
-namespace QSync {
-class Engine;
-}
-
-class SyncProcess : public TQObject
-{
- Q_OBJECT
-
-
- public:
- SyncProcess( const QSync::Group &group );
- ~SyncProcess();
-
- QSync::Group group() const { return mGroup; }
- QSync::Engine* engine() const { return mEngine; }
-
- TQString groupStatus() const;
- TQString memberStatus( const QSync::Member &member ) const;
-
- QSync::Result addMember( const QSync::Plugin &plugin );
-
- void reinitEngine();
-
- /** apply object type filter hack **/
- void applyObjectTypeFilter();
-
- signals:
- /**
- This signal is emitted whenever the engine has changed ( reinitialized ).
- */
- void engineChanged( QSync::Engine *engine );
-
- private:
- QSync::Group mGroup;
- QSync::Engine *mEngine;
-};
-
-#endif
diff --git a/kitchensync/src/syncprocessmanager.cpp b/kitchensync/src/syncprocessmanager.cpp
deleted file mode 100644
index 0485e156..00000000
--- a/kitchensync/src/syncprocessmanager.cpp
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-
-#include "syncprocessmanager.h"
-
-#include "syncprocess.h"
-
-#include <libqopensync/environment.h>
-
-#include <kstaticdeleter.h>
-#include <tdemessagebox.h>
-#include <tdelocale.h>
-
-static KStaticDeleter<SyncProcessManager> selfDeleter;
-
-SyncProcessManager *SyncProcessManager::mSelf = 0;
-
-SyncProcessManager *SyncProcessManager::self()
-{
- if ( !mSelf ) {
- selfDeleter.setObject( mSelf, new SyncProcessManager() );
- }
- return mSelf;
-}
-
-SyncProcessManager::SyncProcessManager()
-{
- mEnvironment = new QSync::Environment;
- QSync::Result result = mEnvironment->initialize();
- if ( result.isError() ) {
- KMessageBox::error( 0, i18n("Error initializing OpenSync.\n%1")
- .arg( result.message() ) );
- } else {
- init( mEnvironment );
- }
-}
-
-SyncProcessManager::~SyncProcessManager()
-{
- TQValueList<SyncProcess*>::Iterator it;
- for ( it = mProcesses.begin(); it != mProcesses.end(); ++it )
- delete *it;
-
- mProcesses.clear();
-
- mEnvironment->finalize();
- delete mEnvironment;
-}
-
-int SyncProcessManager::count() const
-{
- return mProcesses.count();
-}
-
-SyncProcess* SyncProcessManager::at( int pos ) const
-{
- if ( pos < 0 || pos >= (int)mProcesses.count() )
- return 0;
-
- return mProcesses[ pos ];
-}
-
-SyncProcess* SyncProcessManager::byGroup( const QSync::Group &group )
-{
- TQValueList<SyncProcess*>::Iterator it;
- for ( it = mProcesses.begin(); it != mProcesses.end(); ++it )
- if ( (*it)->group() == group )
- return *it;
-
- return 0;
-}
-
-SyncProcess* SyncProcessManager::byGroupName( const TQString &name )
-{
- TQValueList<SyncProcess*>::Iterator it;
- for ( it = mProcesses.begin(); it != mProcesses.end(); ++it )
- if ( (*it)->group().name() == name )
- return *it;
-
- return 0;
-}
-
-void SyncProcessManager::addGroup( const TQString &name )
-{
- SyncProcess* process = byGroupName( name );
- if ( !process ) {
- QSync::Group group = mEnvironment->addGroup();
- group.setName( name );
- group.save();
-
- mProcesses.append( new SyncProcess( group ) );
-
- emit changed();
- } else
- tqDebug( "Try to add duplicate" );
-}
-
-void SyncProcessManager::remove( SyncProcess *syncProcess )
-{
- if ( syncProcess ) {
- mProcesses.remove( syncProcess );
- const QSync::Group group = syncProcess->group();
- delete syncProcess;
-
- mEnvironment->removeGroup( group );
-
- emit changed();
- }
-}
-
-void SyncProcessManager::init( QSync::Environment *environment )
-{
- QSync::Environment::GroupIterator it( environment->groupBegin() );
- for ( ; it != environment->groupEnd(); ++it ) {
- /**
- * We check whether the group is valid before we append them
- * to mProcesses. That avoids crashes if the plugin of one of
- * the members isn't loaded (e.g. not installed).
- */
- const QSync::Group group = *it;
- int count = group.memberCount();
-
- bool isValid = true;
- for ( int i = 0; i < count; ++i ) {
- const QSync::Member member = group.memberAt( i );
-
- if ( !member.isValid() ) {
- isValid = false;
- break;
- }
- }
-
- if ( isValid )
- mProcesses.append( new SyncProcess( *it ) );
- }
-
- emit changed();
-}
-
-QSync::Result SyncProcessManager::addMember( SyncProcess *process,
- const QSync::Plugin &plugin )
-{
- Q_ASSERT( process );
-
- QSync::Result result = process->addMember( plugin );
- if ( !result.isError() ) {
- process->group().save();
- emit syncProcessChanged( process );
- }
-
- return result;
-}
-
-#include "syncprocessmanager.moc"
diff --git a/kitchensync/src/syncprocessmanager.h b/kitchensync/src/syncprocessmanager.h
deleted file mode 100644
index 17adf19d..00000000
--- a/kitchensync/src/syncprocessmanager.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2005 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-*/
-#ifndef SYNCPROCESSMANAGER_H
-#define SYNCPROCESSMANAGER_H
-
-#include <tqobject.h>
-
-#include <libqopensync/group.h>
-
-namespace QSync {
-class Environment;
-}
-
-class SyncProcess;
-
-class SyncProcessManager : public TQObject
-{
- Q_OBJECT
-
- public:
- static SyncProcessManager *self();
-
- /**
- Destroys the SyncProcessList.
- */
- ~SyncProcessManager();
-
- /**
- Return OpenSync Environment.
- */
- QSync::Environment *environment() const { return mEnvironment; }
-
- /**
- Returns the number of SyncProcesses.
- */
- int count() const;
-
- /**
- Returns the SyncProcess at position @param pos.
- */
- SyncProcess* at( int pos ) const;
-
- /**
- Returns the SyncProcess with the given @param group.
- */
- SyncProcess* byGroup( const QSync::Group &group );
-
- /**
- Returns the SyncProcess with the given group @param name.
- */
- SyncProcess* byGroupName( const TQString &name );
-
- /**
- Adds a group with given @param name.
- */
- void addGroup( const TQString &name );
-
- /**
- Removes the given @param sync process.
- */
- void remove( SyncProcess *syncProcess );
-
- /**
- Adds @param plugin instance as member to the group of @param process.
- */
- QSync::Result addMember( SyncProcess *process, const QSync::Plugin &plugin );
-
- signals:
- void changed();
- void syncProcessChanged( SyncProcess *process );
-
- private:
- SyncProcessManager();
-
- void init( QSync::Environment *environment );
-
- TQValueList<SyncProcess*> mProcesses;
- QSync::Environment *mEnvironment;
-
- static SyncProcessManager *mSelf;
-};
-
-#endif
diff --git a/kitchensync/src/xmldiffalgo.cpp b/kitchensync/src/xmldiffalgo.cpp
deleted file mode 100644
index b5f4890f..00000000
--- a/kitchensync/src/xmldiffalgo.cpp
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- This file is part of KitchenSync.
-
- Copyright (c) 2006 Daniel Gollub <dgollub@suse.de>
-
- This program 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include "xmldiffalgo.h"
-
-#include <kdebug.h>
-
-using namespace KSync;
-
-#ifndef KDE_USE_FINAL
-// With --enable-final, we get the (identical) compareString from
-// addresseediffalgo.cpp
-//
-static bool compareString( const TQString &left, const TQString &right )
-{
- if ( left.isEmpty() && right.isEmpty() )
- return true;
- else
- return left == right;
-}
-#endif
-
-XmlDiffAlgo::XmlDiffAlgo( const TQString &leftXml, const TQString &rightXml )
-{
- kdDebug() << __func__ << " " << __LINE__ << endl;
-
- mLeftXml.setContent( leftXml );
- mRightXml.setContent( rightXml );
-
-}
-
-XmlDiffAlgo::XmlDiffAlgo( const TQDomDocument &leftXml, const TQDomDocument &rightXml )
- : mLeftXml( leftXml ), mRightXml( rightXml )
-{
- kdDebug() << __func__ << " " << __LINE__ << endl;
-}
-
-void XmlDiffAlgo::appendSingleNodes(TQDomElement &element, bool isLeft)
-{
- TQDomNode node;
-
- for ( node = element.firstChild(); !node.isNull(); node = node.nextSibling() ) {
- TQDomElement child = node.toElement();
-
- if (isLeft)
- additionalLeftField( node.nodeName(), child.text() );
- else
- additionalRightField( node.nodeName(), child.text() );
- }
-
-}
-
-void XmlDiffAlgo::appendConflictNodes(TQDomElement &leftElement, TQDomElement &rightElement)
-{
- TQDomNode left, right;
- TQDomElement leftChild, rightChild;
-
- for ( left = leftElement.firstChild(); !left.isNull(); left = left.nextSibling() ) {
- leftChild = left.toElement();
-
- for ( right = rightElement.firstChild(); !right.isNull(); right = right.nextSibling() ) {
- rightChild = right.toElement();
-
- if ( leftChild.tagName() != rightChild.tagName() )
- continue;
-
- if (leftChild.text().isEmpty() || rightChild.text().isEmpty())
- continue;
-
- TQString id = leftChild.tagName();
- if (id == "Content")
- id = left.parentNode().nodeName();
-
- conflictField( id, leftChild.text(), rightChild.text() );
-
- left.parentNode().removeChild( left );
- left = leftElement.firstChild();
-
- right.parentNode().removeChild( right );
- right = rightElement.firstChild();
-
- }
- }
-}
-
-void XmlDiffAlgo::compareNode(TQDomElement &leftElement, TQDomElement &rightElement)
-{
- TQDomNode left, right;
- TQDomElement leftChild, rightChild;
- TQDomNodeList nlist;
-top:;
-
- for ( left = leftElement.firstChild(); !left.isNull(); left = left.nextSibling() ) {
- leftChild = left.toElement();
-
- for ( right = rightElement.firstChild(); !right.isNull(); right = right.nextSibling() ) {
- rightChild = right.toElement();
-
- if (leftChild.tagName() != rightChild.tagName())
- continue;
-
- if ( left.childNodes().count() > 1 && right.childNodes().count() > 1 ) {
- compareNode( leftChild, rightChild );
-
- if ( !left.hasChildNodes() && !right.hasChildNodes() ) {
- left.parentNode().removeChild( left );
- right.parentNode().removeChild( right );
- goto top;
- }
-
- break;
- }
-
- if ( leftChild.text() == rightChild.text() ) {
- TQString id = leftChild.tagName();
-
- if ( id == "Content" )
- id = left.parentNode().nodeName();
-
- if ( id != "Type" )
- //matchingField( id, leftChild.text(), rightChild.text() );
-
- left.parentNode().removeChild( left );
- right.parentNode().removeChild( right );
- goto top;
- }
- }
- }
-
- appendConflictNodes(rightElement, leftElement);
-
- appendSingleNodes(rightElement, false);
- appendSingleNodes(leftElement, true);
-}
-
-void XmlDiffAlgo::run()
-{
- kdDebug() << __func__ << endl;
- begin();
-
- TQDomElement leftElement = mLeftXml.documentElement();
- TQDomElement rightElement = mRightXml.documentElement();
-
- compareNode( leftElement, rightElement );
-
- end();
-}
-
diff --git a/kitchensync/src/xmldiffalgo.h b/kitchensync/src/xmldiffalgo.h
deleted file mode 100644
index 8e3dcbfa..00000000
--- a/kitchensync/src/xmldiffalgo.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- This file is part of KitchenSync
-
- Copyright (c) 2006 Daniel Gollub <dgollub@suse.de>
-
- This program 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef KSYNC_XMLDIFFALGO_H
-#define KSYNC_XMLDIFFALGO_H
-
-#include <tqdom.h>
-
-#include <libtdepim/diffalgo.h>
-
-using namespace KPIM;
-
-namespace KSync {
-
-class XmlDiffAlgo : public DiffAlgo
-{
- public:
- XmlDiffAlgo( const TQString &leftXml, const TQString &rightXml );
- XmlDiffAlgo( const TQDomDocument &leftXml, const TQDomDocument &rightXml );
-
- void run();
-
- private:
- void appendConflictNodes(TQDomElement &leftElement, TQDomElement &rightElement);
- void appendSingleNodes(TQDomElement &element, bool isLeft);
-
-
- void compareNode(TQDomElement &leftElement, TQDomElement &rightElement);
-
- TQDomDocument mLeftXml;
- TQDomDocument mRightXml;
-};
-
-}
-
-#endif
diff --git a/kmail/CMakeL10n.txt b/kmail/CMakeL10n.txt
index 21e70240..3ad4b977 100644
--- a/kmail/CMakeL10n.txt
+++ b/kmail/CMakeL10n.txt
@@ -5,3 +5,15 @@ tde_l10n_create_template(
SOURCES "." "tips"
KEYWORDS "translate"
)
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/kmail-desktops/"
+ SOURCES *.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/kmail-eventsrc/"
+ SOURCES eventsrc
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/kmail/CMakeLists.txt b/kmail/CMakeLists.txt
index ac30ce66..daa365ec 100644
--- a/kmail/CMakeLists.txt
+++ b/kmail/CMakeLists.txt
@@ -73,14 +73,21 @@ install( FILES
tde_install_icons( )
-install( FILES
- KMail.desktop kmail_view.desktop
- DESTINATION ${XDG_APPS_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE KMail.desktop kmail_view.desktop
+ PO_DIR kmail-desktops
+)
-install( FILES
- kmcomposerui.rc kmmainwin.rc kmreadermainwin.rc
- eventsrc kmail_part.rc
- DESTINATION ${DATA_INSTALL_DIR}/kmail )
+tde_create_translated_desktop(
+ SOURCE eventsrc
+ DESTINATION ${DATA_INSTALL_DIR}/kmail
+ PO_DIR kmail-eventsrc
+)
+
+install(
+ FILES kmcomposerui.rc kmmainwin.rc kmreadermainwin.rc kmail_part.rc
+ DESTINATION ${DATA_INSTALL_DIR}/kmail
+)
install( FILES
kmail.upd
@@ -109,24 +116,31 @@ install( FILES
tips
DESTINATION ${DATA_INSTALL_DIR}/kmail )
-install( FILES
- dcopmail.desktop dcopimap.desktop
- DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE dcopmail.desktop dcopimap.desktop
+ DESTINATION ${SERVICETYPES_INSTALL_DIR}
+ PO_DIR kmail-desktops
+)
-install( FILES
+tde_create_translated_desktop(
+ SOURCE
kmail_config_misc.desktop kmail_config_appearance.desktop
kmail_config_identity.desktop kmail_config_accounts.desktop
kmail_config_composer.desktop kmail_config_security.desktop
- DESTINATION ${SERVICES_INSTALL_DIR} )
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR kmail-desktops
+)
install( FILES
kmail.kcfg replyphrases.kcfg custommimeheader.kcfg
templatesconfiguration_kfg.kcfg customtemplates_kfg.kcfg
DESTINATION ${KCFG_INSTALL_DIR} )
-install( FILES
- application_octetstream.desktop
- DESTINATION ${DATA_INSTALL_DIR}/kmail/plugins/bodypartformatter )
+tde_create_translated_desktop(
+ SOURCE application_octetstream.desktop
+ DESTINATION ${DATA_INSTALL_DIR}/kmail/plugins/bodypartformatter
+ PO_DIR kmail-desktops
+)
##### kmailprivate (shared) #####################
diff --git a/kmail/KMail.desktop b/kmail/KMail.desktop
index cfc82626..1866fc6c 100644
--- a/kmail/KMail.desktop
+++ b/kmail/KMail.desktop
@@ -1,89 +1,13 @@
[Desktop Entry]
Name=KMail
-Name[eo]=Retpoŝto
-Name[hi]=के-मेल
-Name[lv]=KPasts
-Name[mk]=КПошта
-Name[ne]=केडीई मेल
-Name[pa]=ਕੇ-ਪੱਤਰ
-Name[sv]=Kmail
-Name[ta]=Kஅஞ்சல்
-Name[th]=จัดการจดหมาย - K
-Name[zh_TW]=KMail 郵件軟體
+
+GenericName=Mail Client
+
Type=Application
Exec=kmail -caption "%c" %i %m
Icon=kmail
X-DocPath=kmail/index.html
-GenericName=Mail Client
-GenericName[af]=E-pos kliënt
-GenericName[ar]=زبون البريد
-GenericName[az]=Poçt Alıcısı
-GenericName[be]=Паштовы кліент
-GenericName[bg]=Пощенски клиент
-GenericName[br]=Kliant postel
-GenericName[bs]=Program za čitanje elektronske pošte
-GenericName[ca]=Client de correu
-GenericName[cs]=Klient pro čtení elektronické pošty
-GenericName[cy]=Dibynnydd Ebost
-GenericName[da]=E-mail-klient
-GenericName[de]=Mail-Programm
-GenericName[el]=Πελάτης mail
-GenericName[eo]=Legi kaj sendi retpoŝton
-GenericName[es]=Cliente de correo
-GenericName[et]=E-posti klient
-GenericName[eu]=Posta bezeroa
-GenericName[fa]=کارخواه‌نامه
-GenericName[fi]=Sähköpostiohjelma
-GenericName[fr]=Logiciel de messagerie électronique
-GenericName[fy]=E-portclient
-GenericName[ga]=Cliant Ríomhphoist
-GenericName[gl]=Cliente de correo
-GenericName[he]=לקוח דוא"ל
-GenericName[hi]=डाकिया
-GenericName[hr]=Program za čitanje elektronske pošte
-GenericName[hu]=Levelezőprogram
-GenericName[id]=Klien Mail
-GenericName[is]=Póstforrit
-GenericName[it]=Programma di posta elettronica
-GenericName[ja]=メールクライアント
-GenericName[kk]=Эл.пошта клиент бағдарламасы
-GenericName[km]=កម្មវិធី​អ៊ីមែល
-GenericName[lt]=Pašto klientas
-GenericName[lv]=Pasta Klients
-GenericName[mk]=Клиент за електронска пошта
-GenericName[ms]=Pelanggan Mel
-GenericName[mt]=Klijent tal-imejl
-GenericName[nb]=E-postklient
-GenericName[nds]=Nettpostprogramm
-GenericName[ne]=मेल क्लाइन्ट
-GenericName[nl]=E-mailclient
-GenericName[nn]=E-postklient
-GenericName[pa]=ਪੱਤਰ ਕਲਾਂਇਟ
-GenericName[pl]=Program pocztowy
-GenericName[pt]=Cliente de E-mail
-GenericName[pt_BR]=Cliente de E-mail
-GenericName[ro]=Program de poştă electronică
-GenericName[ru]=Почтовый клиент
-GenericName[rw]=Umukiriya w'Ubutumwa
-GenericName[se]=E-boastaprográmma
-GenericName[sk]=Poštový klient
-GenericName[sl]=Poštni odjemalec
-GenericName[sr]=Поштански клијент
-GenericName[sr@Latn]=Poštanski klijent
-GenericName[sv]=E-postklient
-GenericName[ta]=அஞ்சல் பயனர்
-GenericName[tg]=Клиенти почтавӣ
-GenericName[th]=ไคลเอนต์จดหมายอิเล็กทรอนิกส์
-GenericName[tr]=E-posta İstemcisi
-GenericName[uk]=Поштовий клієнт
-GenericName[uz]=Хат-хабар клиенти
-GenericName[ven]=Mushumisani na poso
-GenericName[xh]=Umxhasi Weposi
-GenericName[zh_CN]=邮件客户程序
-GenericName[zh_TW]=收發信軟體
-GenericName[zu]=Imeyili Yomthengi
Terminal=false
-
X-TDE-StartupNotify=true
X-DCOP-ServiceType=Unique
X-DCOP-ServiceName=kmail
diff --git a/kmail/Mainpage.dox b/kmail/Mainpage.dox
index 3121e2d9..148f9e60 100644
--- a/kmail/Mainpage.dox
+++ b/kmail/Mainpage.dox
@@ -71,7 +71,7 @@ is not modal and the user may hit apply/ok anytime between calls to
function that want to use the identity reference. Store the UOID
instead if you need to keep track of the identity. You may also want
to connect to one of the KPIM::IdentityManager::changed() or ::deleted()
-Q_SIGNALS, if you want to do special processing in case the identity
+signals, if you want to do special processing in case the identity
changes.
Thus, in the ConfigureDialog, you will see non-const KPIM::Identity
@@ -109,8 +109,8 @@ instance of the filter manager is held by the kernel
The search pattern is a QPtrList of search rules (kmsearchpattern.h) and a
boolean operator that defines their relation (and/or).
-A search rule consists of a field-QString, a "function"-enum and a
-"contents" or "value" QString. The first gives the header (or
+A search rule consists of a field-TQString, a "function"-enum and a
+"contents" or "value" TQString. The first gives the header (or
pseudoheader) to match against, the second says how to match (equals,
consists, is less than,...) and the third holds the pattern to match
against.
@@ -155,7 +155,7 @@ the corresponding config manager instead. But that won't change the
basic principle.
Thus, there is an abstract base class ConfigurePage (defined in
-configuredialog_p.h), which derives from QWidget. It has four methods
+configuredialog_p.h), which derives from TQWidget. It has four methods
of which you have to reimplement at least the first two:
- void setup()
@@ -239,7 +239,7 @@ as follows :
---< actual folder types: KMFolderImap, KMFolderMbox... >--
At the base KMail's folder design starts with KMFolderNode which
-inherits QObject. KMFolderNode is the base class encapsulating
+inherits TQObject. KMFolderNode is the base class encapsulating
common folder properties such as the name and a boolean signifying whether
the folder is a folder holding mail directly or a KMFolderDir.
KMFolderNode's often do not have an on-disk representation, they are
@@ -277,13 +277,13 @@ accessed via KMKernel ( the "kmkernel" construct ). Those methods are :
FolderJob classes - These classes allow asynchronous operations on
KMFolder's. You create a Job on the heap, connect to one of its
-Q_SIGNALS and wait for the job to finish. Folders serve as FolderJob
+signals and wait for the job to finish. Folders serve as FolderJob
factories. For example, to retrieve the full message from a folder
you do :
FolderJob *job = folderParent->createJob( aMsg, tGetMessage );
-connect( job, SIGNAL(messageRetrieved(KMMessage*)),
- SLOT(msgWasRetrieved(KMMessage*)) );
+connect( job, TQ_SIGNAL(messageRetrieved(KMMessage*)),
+ TQ_SLOT(msgWasRetrieved(KMMessage*)) );
job->start();
@@ -410,7 +410,7 @@ uniq: 3 bits = max. 8 different types with same chunk size:
010 Offset32
011 SerNum/UOID
100 DateTime
- 101 Color (QRgb: (a,r,g,b))
+ 101 Color (TQRgb: (a,r,g,b))
110 reserved
111 Extend
@@ -821,7 +821,7 @@ During the design phase we identified a need for BodyPartFormatters to
request their being called on some form of events, e.g. a dcop
signal. Thus, the Memento interface also includes the IObserver and
ISubject interfaces. If a BodyPartFormatter needs to react to a signal
-(Qt or DCOP), it implements the Memento interface using a QObject,
+(Qt or DCOP), it implements the Memento interface using a TQObject,
connects the signal to a slot on the Memento and (as an ISubject)
notifies it's IObservers when the slot is called. If a Memento is
created, the reader window registers itself as an observer of the
@@ -850,16 +850,16 @@ public:
};
class DelayedHelloWorldBodyPartMemento
- : public QObject, public KMail::BodyPartMemento {
+ : public TQObject, public KMail::BodyPartMemento {
public:
DelayedHelloWorldBodyPartMemento()
- : QObject( 0, "DelayedHelloWorldBodyPartMemento" ),
+ : TQObject( 0, "DelayedHelloWorldBodyPartMemento" ),
KMail::BodyPartMemento()
{
- QTimer::singleShot( 10*1000, this, SLOT(slotTimeout()) );
+ QTimer::singleShot( 10*1000, this, TQ_SLOT(slotTimeout()) );
}
-private Q_SLOTS:
+private slots:
void slotTimeout() { notify(): }
private:
diff --git a/kmail/about/kmail.css b/kmail/about/kmail.css
index 38db9987..0444430b 100644
--- a/kmail/about/kmail.css
+++ b/kmail/about/kmail.css
@@ -20,6 +20,3 @@
background-repeat: no-repeat;
background-position: bottom right;
}
-
-/* vim:set sw=2 et nocindent smartindent: */
-
diff --git a/kmail/about/main.html b/kmail/about/main.html
index 634b5f00..52876f21 100644
--- a/kmail/about/main.html
+++ b/kmail/about/main.html
@@ -64,4 +64,3 @@
<div id="footer"><div id="footerL"/><div id="footerR"/></div>
</body>
</html>
-<!-- vim:set sw=2 et nocindent smartindent: -->
diff --git a/kmail/aboutdata.cpp b/kmail/aboutdata.cpp
index 91bc1607..89521c09 100644
--- a/kmail/aboutdata.cpp
+++ b/kmail/aboutdata.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
aboutdata.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/aboutdata.h b/kmail/aboutdata.h
index 5c5b08ae..2ae6283a 100644
--- a/kmail/aboutdata.h
+++ b/kmail/aboutdata.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
aboutdata.h
This file is part of KMail, the KDE mail client.
@@ -33,7 +33,7 @@
#define __KMAIL_ABOUTDATA_H__
#include <tdeaboutdata.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KMail {
diff --git a/kmail/accountcombobox.cpp b/kmail/accountcombobox.cpp
index 7ae3d2a3..3f200f66 100644
--- a/kmail/accountcombobox.cpp
+++ b/kmail/accountcombobox.cpp
@@ -1,4 +1,4 @@
-/** -*- mode: C++ -*-
+/*
* Copyright (c) 2004 David Faure <faure@kde.org>
*
* This program is free software; you can redistribute it and/or modify
@@ -37,10 +37,10 @@ using namespace KMail;
AccountComboBox::AccountComboBox( TQWidget* parent, const char* name )
: TQComboBox( parent, name )
{
- connect( kmkernel->acctMgr(), TQT_SIGNAL( accountAdded( KMAccount* ) ),
- this, TQT_SLOT( slotRefreshAccounts() ) );
- connect( kmkernel->acctMgr(), TQT_SIGNAL( accountRemoved( KMAccount* ) ),
- this, TQT_SLOT( slotRefreshAccounts() ) );
+ connect( kmkernel->acctMgr(), TQ_SIGNAL( accountAdded( KMAccount* ) ),
+ this, TQ_SLOT( slotRefreshAccounts() ) );
+ connect( kmkernel->acctMgr(), TQ_SIGNAL( accountRemoved( KMAccount* ) ),
+ this, TQ_SLOT( slotRefreshAccounts() ) );
slotRefreshAccounts();
}
diff --git a/kmail/accountcombobox.h b/kmail/accountcombobox.h
index c2e85cf6..b0d0df6d 100644
--- a/kmail/accountcombobox.h
+++ b/kmail/accountcombobox.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++ -*-
+/*
* Copyright (c) 2004 David Faure <faure@kde.org>
*
* This program is free software; you can redistribute it and/or modify
@@ -41,7 +41,7 @@ namespace KMail {
*/
class AccountComboBox : public TQComboBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/accountdialog.cpp b/kmail/accountdialog.cpp
index 3c6265e7..c8ac7e29 100644
--- a/kmail/accountdialog.cpp
+++ b/kmail/accountdialog.cpp
@@ -353,11 +353,11 @@ void AccountDialog::makeLocalAccountPage()
TQPushButton *choose = new TQPushButton( i18n("Choo&se..."), page );
choose->setAutoDefault( false );
- connect( choose, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotLocationChooser()) );
+ connect( choose, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotLocationChooser()) );
topLayout->addWidget( choose, 3, 2 );
TQButtonGroup *group = new TQButtonGroup(i18n("Locking Method"), page );
- group->setColumnLayout(0, Qt::Horizontal);
+ group->setColumnLayout(0, TQt::Horizontal);
group->layout()->setSpacing( 0 );
group->layout()->setMargin( 0 );
TQGridLayout *groupLayout = new TQGridLayout( group->layout() );
@@ -373,8 +373,8 @@ void AccountDialog::makeLocalAccountPage()
mLocal.procmailLockFileName->insertStringList(procmailrcParser.getLockFilesList());
mLocal.procmailLockFileName->setEnabled(false);
- TQObject::connect(mLocal.lockProcmail, TQT_SIGNAL(toggled(bool)),
- mLocal.procmailLockFileName, TQT_SLOT(setEnabled(bool)));
+ TQObject::connect(mLocal.lockProcmail, TQ_SIGNAL(toggled(bool)),
+ mLocal.procmailLockFileName, TQ_SLOT(setEnabled(bool)));
mLocal.lockMutt = new TQRadioButton(
i18n("&Mutt dotlock"), group);
@@ -404,19 +404,19 @@ void AccountDialog::makeLocalAccountPage()
TQWhatsThis::add( mLocal.resourceClearButton,
i18n( "Delete all allocations for the resource represented by this account." ) );
mLocal.resourceClearButton->setEnabled( false );
- connect( mLocal.resourceCheck, TQT_SIGNAL( toggled(bool) ),
- mLocal.resourceClearButton, TQT_SLOT( setEnabled(bool) ) );
- connect( mLocal.resourceClearButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotClearResourceAllocations() ) );
+ connect( mLocal.resourceCheck, TQ_SIGNAL( toggled(bool) ),
+ mLocal.resourceClearButton, TQ_SLOT( setEnabled(bool) ) );
+ connect( mLocal.resourceClearButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotClearResourceAllocations() ) );
mLocal.resourceClearPastButton =
new TQPushButton( i18n( "Clear Past" ), resourceHB );
mLocal.resourceClearPastButton->setEnabled( false );
- connect( mLocal.resourceCheck, TQT_SIGNAL( toggled(bool) ),
- mLocal.resourceClearPastButton, TQT_SLOT( setEnabled(bool) ) );
+ connect( mLocal.resourceCheck, TQ_SIGNAL( toggled(bool) ),
+ mLocal.resourceClearPastButton, TQ_SLOT( setEnabled(bool) ) );
TQWhatsThis::add( mLocal.resourceClearPastButton,
i18n( "Delete all outdated allocations for the resource represented by this account." ) );
- connect( mLocal.resourceClearPastButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotClearPastResourceAllocations() ) );
+ connect( mLocal.resourceClearPastButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotClearPastResourceAllocations() ) );
topLayout->addMultiCellWidget( resourceHB, 5, 5, 0, 2 );
#endif
@@ -428,8 +428,8 @@ void AccountDialog::makeLocalAccountPage()
mLocal.intervalCheck =
new TQCheckBox( i18n("Enable &interval mail checking"), page );
topLayout->addMultiCellWidget( mLocal.intervalCheck, 6, 6, 0, 2 );
- connect( mLocal.intervalCheck, TQT_SIGNAL(toggled(bool)),
- this, TQT_SLOT(slotEnableLocalInterval(bool)) );
+ connect( mLocal.intervalCheck, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(slotEnableLocalInterval(bool)) );
mLocal.intervalLabel = new TQLabel( i18n("Check inter&val:"), page );
topLayout->addWidget( mLocal.intervalLabel, 7, 0 );
mLocal.intervalSpin = new KIntNumInput( page );
@@ -457,7 +457,7 @@ void AccountDialog::makeLocalAccountPage()
mLocal.identityLabel->setBuddy( mLocal.identityCombo );
topLayout->addWidget( mLocal.identityCombo, 10, 1 );
- connect(kapp,TQT_SIGNAL(tdedisplayFontChanged()),TQT_SLOT(slotFontChanged()));
+ connect(kapp,TQ_SIGNAL(tdedisplayFontChanged()),TQ_SLOT(slotFontChanged()));
}
void AccountDialog::makeMaildirAccountPage()
@@ -492,7 +492,7 @@ void AccountDialog::makeMaildirAccountPage()
TQPushButton *choose = new TQPushButton( i18n("Choo&se..."), page );
choose->setAutoDefault( false );
- connect( choose, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotMaildirChooser()) );
+ connect( choose, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotMaildirChooser()) );
topLayout->addWidget( choose, 3, 2 );
#if 0
@@ -503,21 +503,21 @@ void AccountDialog::makeMaildirAccountPage()
mMaildir.resourceClearButton =
new TQPushButton( i18n( "Clear" ), resourceHB );
mMaildir.resourceClearButton->setEnabled( false );
- connect( mMaildir.resourceCheck, TQT_SIGNAL( toggled(bool) ),
- mMaildir.resourceClearButton, TQT_SLOT( setEnabled(bool) ) );
+ connect( mMaildir.resourceCheck, TQ_SIGNAL( toggled(bool) ),
+ mMaildir.resourceClearButton, TQ_SLOT( setEnabled(bool) ) );
TQWhatsThis::add( mMaildir.resourceClearButton,
i18n( "Delete all allocations for the resource represented by this account." ) );
- connect( mMaildir.resourceClearButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotClearResourceAllocations() ) );
+ connect( mMaildir.resourceClearButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotClearResourceAllocations() ) );
mMaildir.resourceClearPastButton =
new TQPushButton( i18n( "Clear Past" ), resourceHB );
mMaildir.resourceClearPastButton->setEnabled( false );
- connect( mMaildir.resourceCheck, TQT_SIGNAL( toggled(bool) ),
- mMaildir.resourceClearPastButton, TQT_SLOT( setEnabled(bool) ) );
+ connect( mMaildir.resourceCheck, TQ_SIGNAL( toggled(bool) ),
+ mMaildir.resourceClearPastButton, TQ_SLOT( setEnabled(bool) ) );
TQWhatsThis::add( mMaildir.resourceClearPastButton,
i18n( "Delete all outdated allocations for the resource represented by this account." ) );
- connect( mMaildir.resourceClearPastButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotClearPastResourceAllocations() ) );
+ connect( mMaildir.resourceClearPastButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotClearPastResourceAllocations() ) );
topLayout->addMultiCellWidget( resourceHB, 4, 4, 0, 2 );
#endif
@@ -528,8 +528,8 @@ void AccountDialog::makeMaildirAccountPage()
mMaildir.intervalCheck =
new TQCheckBox( i18n("Enable &interval mail checking"), page );
topLayout->addMultiCellWidget( mMaildir.intervalCheck, 5, 5, 0, 2 );
- connect( mMaildir.intervalCheck, TQT_SIGNAL(toggled(bool)),
- this, TQT_SLOT(slotEnableMaildirInterval(bool)) );
+ connect( mMaildir.intervalCheck, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(slotEnableMaildirInterval(bool)) );
mMaildir.intervalLabel = new TQLabel( i18n("Check inter&val:"), page );
topLayout->addWidget( mMaildir.intervalLabel, 6, 0 );
mMaildir.intervalSpin = new KIntNumInput( page );
@@ -557,7 +557,7 @@ void AccountDialog::makeMaildirAccountPage()
mMaildir.identityLabel->setBuddy( mMaildir.identityCombo );
topLayout->addWidget( mMaildir.identityCombo, 9, 1 );
- connect(kapp,TQT_SIGNAL(tdedisplayFontChanged()),TQT_SLOT(slotFontChanged()));
+ connect(kapp,TQ_SIGNAL(tdedisplayFontChanged()),TQ_SLOT(slotFontChanged()));
}
@@ -618,7 +618,7 @@ void AccountDialog::makePopAccountPage()
label = new TQLabel( i18n("&Port:"), page1 );
grid->addWidget( label, 4, 0 );
mPop.portEdit = new KLineEdit( page1 );
- mPop.portEdit->setValidator( new TQIntValidator(TQT_TQOBJECT(this)) );
+ mPop.portEdit->setValidator( new TQIntValidator(this) );
label->setBuddy( mPop.portEdit );
grid->addWidget( mPop.portEdit, 4, 1 );
@@ -638,19 +638,19 @@ void AccountDialog::makePopAccountPage()
mPop.leaveOnServerCheck =
new TQCheckBox( i18n("Lea&ve fetched messages on the server"), page1 );
- connect( mPop.leaveOnServerCheck, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotLeaveOnServerClicked() ) );
+ connect( mPop.leaveOnServerCheck, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotLeaveOnServerClicked() ) );
grid->addMultiCellWidget( mPop.leaveOnServerCheck, 6, 6, 0, 1 );
TQHBox *afterDaysBox = new TQHBox( page1 );
afterDaysBox->setSpacing( KDialog::spacingHint() );
mPop.leaveOnServerDaysCheck =
new TQCheckBox( i18n("Leave messages on the server for"), afterDaysBox );
- connect( mPop.leaveOnServerDaysCheck, TQT_SIGNAL( toggled(bool) ),
- this, TQT_SLOT( slotEnableLeaveOnServerDays(bool)) );
+ connect( mPop.leaveOnServerDaysCheck, TQ_SIGNAL( toggled(bool) ),
+ this, TQ_SLOT( slotEnableLeaveOnServerDays(bool)) );
mPop.leaveOnServerDaysSpin = new KIntNumInput( afterDaysBox );
mPop.leaveOnServerDaysSpin->setRange( 1, 365, 1, false );
- connect( mPop.leaveOnServerDaysSpin, TQT_SIGNAL(valueChanged(int)),
- TQT_SLOT(slotLeaveOnServerDaysChanged(int)));
+ connect( mPop.leaveOnServerDaysSpin, TQ_SIGNAL(valueChanged(int)),
+ TQ_SLOT(slotLeaveOnServerDaysChanged(int)));
mPop.leaveOnServerDaysSpin->setValue( 1 );
afterDaysBox->setStretchFactor( mPop.leaveOnServerDaysSpin, 1 );
grid->addMultiCellWidget( afterDaysBox, 7, 7, 0, 1 );
@@ -658,20 +658,20 @@ void AccountDialog::makePopAccountPage()
leaveOnServerCountBox->setSpacing( KDialog::spacingHint() );
mPop.leaveOnServerCountCheck =
new TQCheckBox( i18n("Keep only the last"), leaveOnServerCountBox );
- connect( mPop.leaveOnServerCountCheck, TQT_SIGNAL( toggled(bool) ),
- this, TQT_SLOT( slotEnableLeaveOnServerCount(bool)) );
+ connect( mPop.leaveOnServerCountCheck, TQ_SIGNAL( toggled(bool) ),
+ this, TQ_SLOT( slotEnableLeaveOnServerCount(bool)) );
mPop.leaveOnServerCountSpin = new KIntNumInput( leaveOnServerCountBox );
mPop.leaveOnServerCountSpin->setRange( 1, 999999, 1, false );
- connect( mPop.leaveOnServerCountSpin, TQT_SIGNAL(valueChanged(int)),
- TQT_SLOT(slotLeaveOnServerCountChanged(int)));
+ connect( mPop.leaveOnServerCountSpin, TQ_SIGNAL(valueChanged(int)),
+ TQ_SLOT(slotLeaveOnServerCountChanged(int)));
mPop.leaveOnServerCountSpin->setValue( 100 );
grid->addMultiCellWidget( leaveOnServerCountBox, 8, 8, 0, 1 );
TQHBox *leaveOnServerSizeBox = new TQHBox( page1 );
leaveOnServerSizeBox->setSpacing( KDialog::spacingHint() );
mPop.leaveOnServerSizeCheck =
new TQCheckBox( i18n("Keep only the last"), leaveOnServerSizeBox );
- connect( mPop.leaveOnServerSizeCheck, TQT_SIGNAL( toggled(bool) ),
- this, TQT_SLOT( slotEnableLeaveOnServerSize(bool)) );
+ connect( mPop.leaveOnServerSizeCheck, TQ_SIGNAL( toggled(bool) ),
+ this, TQ_SLOT( slotEnableLeaveOnServerSize(bool)) );
mPop.leaveOnServerSizeSpin = new KIntNumInput( leaveOnServerSizeBox );
mPop.leaveOnServerSizeSpin->setRange( 1, 999999, 1, false );
mPop.leaveOnServerSizeSpin->setSuffix( i18n(" MB") );
@@ -685,21 +685,21 @@ void AccountDialog::makePopAccountPage()
mPop.resourceClearButton =
new TQPushButton( i18n( "Clear" ), resourceHB );
mPop.resourceClearButton->setEnabled( false );
- connect( mPop.resourceCheck, TQT_SIGNAL( toggled(bool) ),
- mPop.resourceClearButton, TQT_SLOT( setEnabled(bool) ) );
+ connect( mPop.resourceCheck, TQ_SIGNAL( toggled(bool) ),
+ mPop.resourceClearButton, TQ_SLOT( setEnabled(bool) ) );
TQWhatsThis::add( mPop.resourceClearButton,
i18n( "Delete all allocations for the resource represented by this account." ) );
- connect( mPop.resourceClearButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotClearResourceAllocations() ) );
+ connect( mPop.resourceClearButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotClearResourceAllocations() ) );
mPop.resourceClearPastButton =
new TQPushButton( i18n( "Clear Past" ), resourceHB );
mPop.resourceClearPastButton->setEnabled( false );
- connect( mPop.resourceCheck, TQT_SIGNAL( toggled(bool) ),
- mPop.resourceClearPastButton, TQT_SLOT( setEnabled(bool) ) );
+ connect( mPop.resourceCheck, TQ_SIGNAL( toggled(bool) ),
+ mPop.resourceClearPastButton, TQ_SLOT( setEnabled(bool) ) );
TQWhatsThis::add( mPop.resourceClearPastButton,
i18n( "Delete all outdated allocations for the resource represented by this account." ) );
- connect( mPop.resourceClearPastButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotClearPastResourceAllocations() ) );
+ connect( mPop.resourceClearPastButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotClearPastResourceAllocations() ) );
grid->addMultiCellWidget( resourceHB, 10, 10, 0, 2 );
#endif
@@ -715,14 +715,14 @@ void AccountDialog::makePopAccountPage()
mPop.filterOnServerSizeSpin->setEnabled( false );
hbox->setStretchFactor( mPop.filterOnServerSizeSpin, 1 );
mPop.filterOnServerSizeSpin->setRange( 1, 10000000, 100, false );
- connect(mPop.filterOnServerSizeSpin, TQT_SIGNAL(valueChanged(int)),
- TQT_SLOT(slotFilterOnServerSizeChanged(int)));
+ connect(mPop.filterOnServerSizeSpin, TQ_SIGNAL(valueChanged(int)),
+ TQ_SLOT(slotFilterOnServerSizeChanged(int)));
mPop.filterOnServerSizeSpin->setValue( 50000 );
grid->addMultiCellWidget( hbox, 11, 11, 0, 1 );
- connect( mPop.filterOnServerCheck, TQT_SIGNAL(toggled(bool)),
- mPop.filterOnServerSizeSpin, TQT_SLOT(setEnabled(bool)) );
- connect( mPop.filterOnServerCheck, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotFilterOnServerClicked() ) );
+ connect( mPop.filterOnServerCheck, TQ_SIGNAL(toggled(bool)),
+ mPop.filterOnServerSizeSpin, TQ_SLOT(setEnabled(bool)) );
+ connect( mPop.filterOnServerCheck, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotFilterOnServerClicked() ) );
TQString msg = i18n("If you select this option, POP Filters will be used to "
"decide what to do with messages. You can then select "
"to download, delete or keep them on the server." );
@@ -732,8 +732,8 @@ void AccountDialog::makePopAccountPage()
mPop.intervalCheck =
new TQCheckBox( i18n("Enable &interval mail checking"), page1 );
grid->addMultiCellWidget( mPop.intervalCheck, 12, 12, 0, 1 );
- connect( mPop.intervalCheck, TQT_SIGNAL(toggled(bool)),
- this, TQT_SLOT(slotEnablePopInterval(bool)) );
+ connect( mPop.intervalCheck, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(slotEnablePopInterval(bool)) );
mPop.intervalLabel = new TQLabel( i18n("Chec&k interval:"), page1 );
grid->addWidget( mPop.intervalLabel, 13, 0 );
mPop.intervalSpin = new KIntNumInput( page1 );
@@ -770,15 +770,15 @@ void AccountDialog::makePopAccountPage()
TQHBoxLayout *buttonLay = new TQHBoxLayout( vlay );
mPop.checkCapabilities =
new TQPushButton( i18n("Check &What the Server Supports"), page2 );
- connect(mPop.checkCapabilities, TQT_SIGNAL(clicked()),
- TQT_SLOT(slotCheckPopCapabilities()));
+ connect(mPop.checkCapabilities, TQ_SIGNAL(clicked()),
+ TQ_SLOT(slotCheckPopCapabilities()));
buttonLay->addStretch();
buttonLay->addWidget( mPop.checkCapabilities );
buttonLay->addStretch();
vlay->addSpacing( KDialog::spacingHint() );
- mPop.encryptionGroup = new TQButtonGroup( 1, Qt::Horizontal,
+ mPop.encryptionGroup = new TQButtonGroup( 1, TQt::Horizontal,
i18n("Encryption"), page2 );
mPop.encryptionNone =
new TQRadioButton( i18n("&None"), mPop.encryptionGroup );
@@ -788,11 +788,11 @@ void AccountDialog::makePopAccountPage()
mPop.encryptionTLS =
new TQRadioButton( i18n("Use &TLS for secure mail download"),
mPop.encryptionGroup );
- connect(mPop.encryptionGroup, TQT_SIGNAL(clicked(int)),
- TQT_SLOT(slotPopEncryptionChanged(int)));
+ connect(mPop.encryptionGroup, TQ_SIGNAL(clicked(int)),
+ TQ_SLOT(slotPopEncryptionChanged(int)));
vlay->addWidget( mPop.encryptionGroup );
- mPop.authGroup = new TQButtonGroup( 1, Qt::Horizontal,
+ mPop.authGroup = new TQButtonGroup( 1, TQt::Horizontal,
i18n("Authentication Method"), page2 );
mPop.authUser = new TQRadioButton( i18n("Clear te&xt") , mPop.authGroup,
"auth clear text" );
@@ -817,13 +817,13 @@ void AccountDialog::makePopAccountPage()
mPop.usePipeliningCheck =
new TQCheckBox( i18n("&Use pipelining for faster mail download"), page2 );
- connect(mPop.usePipeliningCheck, TQT_SIGNAL(clicked()),
- TQT_SLOT(slotPipeliningClicked()));
+ connect(mPop.usePipeliningCheck, TQ_SIGNAL(clicked()),
+ TQ_SLOT(slotPipeliningClicked()));
vlay->addWidget( mPop.usePipeliningCheck );
vlay->addStretch();
- connect(kapp,TQT_SIGNAL(tdedisplayFontChanged()),TQT_SLOT(slotFontChanged()));
+ connect(kapp,TQ_SIGNAL(tdedisplayFontChanged()),TQ_SLOT(slotFontChanged()));
}
@@ -891,7 +891,7 @@ void AccountDialog::makeImapAccountPage( bool connected )
label = new TQLabel( i18n("&Port:"), page1 );
grid->addWidget( label, row, 0 );
mImap.portEdit = new KLineEdit( page1 );
- mImap.portEdit->setValidator( new TQIntValidator(TQT_TQOBJECT(this)) );
+ mImap.portEdit->setValidator( new TQIntValidator(this) );
label->setBuddy( mImap.portEdit );
grid->addWidget( mImap.portEdit, row, 1 );
@@ -909,7 +909,7 @@ void AccountDialog::makeImapAccountPage( bool connected )
button->setFixedSize( 22, 22 );
button->setIconSet(
TDEGlobal::iconLoader()->loadIconSet( "reload", TDEIcon::Small, 0 ) );
- connect( button, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotReloadNamespaces()) );
+ connect( button, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotReloadNamespaces()) );
TQWhatsThis::add( button,
i18n("Reload the namespaces from the server. This overwrites any changes.") );
grid->addWidget( box, row, 0 );
@@ -926,7 +926,7 @@ void AccountDialog::makeImapAccountPage( bool connected )
mImap.editPNS->setAutoRaise( true );
mImap.editPNS->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
mImap.editPNS->setFixedSize( 22, 22 );
- connect( mImap.editPNS, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotEditPersonalNamespace()) );
+ connect( mImap.editPNS, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotEditPersonalNamespace()) );
label = new TQLabel( i18n("Other Users"), listbox );
TQWhatsThis::add( label, i18n( "These namespaces include the folders of other users." ) );
@@ -938,7 +938,7 @@ void AccountDialog::makeImapAccountPage( bool connected )
mImap.editONS->setAutoRaise( true );
mImap.editONS->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
mImap.editONS->setFixedSize( 22, 22 );
- connect( mImap.editONS, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotEditOtherUsersNamespace()) );
+ connect( mImap.editONS, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotEditOtherUsersNamespace()) );
label = new TQLabel( i18n("Shared"), listbox );
TQWhatsThis::add( label, i18n( "These namespaces include the shared folders." ) );
@@ -950,7 +950,7 @@ void AccountDialog::makeImapAccountPage( bool connected )
mImap.editSNS->setAutoRaise( true );
mImap.editSNS->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
mImap.editSNS->setFixedSize( 22, 22 );
- connect( mImap.editSNS, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotEditSharedNamespace()) );
+ connect( mImap.editSNS, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotEditSharedNamespace()) );
label->setBuddy( listbox );
grid->addWidget( listbox, row, 1 );
@@ -1021,21 +1021,21 @@ void AccountDialog::makeImapAccountPage( bool connected )
mImap.resourceClearButton =
new TQPushButton( i18n( "Clear" ), resourceHB );
mImap.resourceClearButton->setEnabled( false );
- connect( mImap.resourceCheck, TQT_SIGNAL( toggled(bool) ),
- mImap.resourceClearButton, TQT_SLOT( setEnabled(bool) ) );
+ connect( mImap.resourceCheck, TQ_SIGNAL( toggled(bool) ),
+ mImap.resourceClearButton, TQ_SLOT( setEnabled(bool) ) );
TQWhatsThis::add( mImap.resourceClearButton,
i18n( "Delete all allocations for the resource represented by this account." ) );
- connect( mImap.resourceClearButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotClearResourceAllocations() ) );
+ connect( mImap.resourceClearButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotClearResourceAllocations() ) );
mImap.resourceClearPastButton =
new TQPushButton( i18n( "Clear Past" ), resourceHB );
mImap.resourceClearPastButton->setEnabled( false );
- connect( mImap.resourceCheck, TQT_SIGNAL( toggled(bool) ),
- mImap.resourceClearPastButton, TQT_SLOT( setEnabled(bool) ) );
+ connect( mImap.resourceCheck, TQ_SIGNAL( toggled(bool) ),
+ mImap.resourceClearPastButton, TQ_SLOT( setEnabled(bool) ) );
TQWhatsThis::add( mImap.resourceClearPastButton,
i18n( "Delete all outdated allocations for the resource represented by this account." ) );
- connect( mImap.resourceClearPastButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotClearPastResourceAllocations() ) );
+ connect( mImap.resourceClearPastButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotClearPastResourceAllocations() ) );
grid->addMultiCellWidget( resourceHB, row, row, 0, 2 );
#endif
@@ -1048,8 +1048,8 @@ void AccountDialog::makeImapAccountPage( bool connected )
mImap.intervalCheck =
new TQCheckBox( i18n("Enable &interval mail checking"), page1 );
grid->addMultiCellWidget( mImap.intervalCheck, row, row, 0, 2 );
- connect( mImap.intervalCheck, TQT_SIGNAL(toggled(bool)),
- this, TQT_SLOT(slotEnableImapInterval(bool)) );
+ connect( mImap.intervalCheck, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(slotEnableImapInterval(bool)) );
++row;
mImap.intervalLabel = new TQLabel( i18n("Check inter&val:"), page1 );
grid->addWidget( mImap.intervalLabel, row, 0 );
@@ -1085,15 +1085,15 @@ void AccountDialog::makeImapAccountPage( bool connected )
TQHBoxLayout *buttonLay = new TQHBoxLayout( vlay );
mImap.checkCapabilities =
new TQPushButton( i18n("Check &What the Server Supports"), page2 );
- connect(mImap.checkCapabilities, TQT_SIGNAL(clicked()),
- TQT_SLOT(slotCheckImapCapabilities()));
+ connect(mImap.checkCapabilities, TQ_SIGNAL(clicked()),
+ TQ_SLOT(slotCheckImapCapabilities()));
buttonLay->addStretch();
buttonLay->addWidget( mImap.checkCapabilities );
buttonLay->addStretch();
vlay->addSpacing( KDialog::spacingHint() );
- mImap.encryptionGroup = new TQButtonGroup( 1, Qt::Horizontal,
+ mImap.encryptionGroup = new TQButtonGroup( 1, TQt::Horizontal,
i18n("Encryption"), page2 );
mImap.encryptionNone =
new TQRadioButton( i18n("&None"), mImap.encryptionGroup );
@@ -1103,11 +1103,11 @@ void AccountDialog::makeImapAccountPage( bool connected )
mImap.encryptionTLS =
new TQRadioButton( i18n("Use &TLS for secure mail download"),
mImap.encryptionGroup );
- connect(mImap.encryptionGroup, TQT_SIGNAL(clicked(int)),
- TQT_SLOT(slotImapEncryptionChanged(int)));
+ connect(mImap.encryptionGroup, TQ_SIGNAL(clicked(int)),
+ TQ_SLOT(slotImapEncryptionChanged(int)));
vlay->addWidget( mImap.encryptionGroup );
- mImap.authGroup = new TQButtonGroup( 1, Qt::Horizontal,
+ mImap.authGroup = new TQButtonGroup( 1, TQt::Horizontal,
i18n("Authentication Method"), page2 );
mImap.authUser = new TQRadioButton( i18n("Clear te&xt"), mImap.authGroup );
mImap.authLogin = new TQRadioButton( i18n("Please translate this "
@@ -1130,7 +1130,7 @@ void AccountDialog::makeImapAccountPage( bool connected )
mSieveConfigEditor->layout()->setMargin( KDialog::marginHint() );
tabWidget->addTab( mSieveConfigEditor, i18n("&Filtering") );
- connect(kapp,TQT_SIGNAL(tdedisplayFontChanged()),TQT_SLOT(slotFontChanged()));
+ connect(kapp,TQ_SIGNAL(tdedisplayFontChanged()),TQ_SLOT(slotFontChanged()));
}
@@ -1542,9 +1542,9 @@ void AccountDialog::slotCheckPopCapabilities()
delete mServerTest;
mServerTest = new KMServerTest(POP_PROTOCOL, mPop.hostEdit->text(),
mPop.portEdit->text().toInt());
- connect( mServerTest, TQT_SIGNAL( capabilities( const TQStringList &,
+ connect( mServerTest, TQ_SIGNAL( capabilities( const TQStringList &,
const TQStringList & ) ),
- this, TQT_SLOT( slotPopCapabilities( const TQStringList &,
+ this, TQ_SLOT( slotPopCapabilities( const TQStringList &,
const TQStringList & ) ) );
mPop.checkCapabilities->setEnabled(false);
}
@@ -1561,9 +1561,9 @@ void AccountDialog::slotCheckImapCapabilities()
delete mServerTest;
mServerTest = new KMServerTest(IMAP_PROTOCOL, mImap.hostEdit->text(),
mImap.portEdit->text().toInt());
- connect( mServerTest, TQT_SIGNAL( capabilities( const TQStringList &,
+ connect( mServerTest, TQ_SIGNAL( capabilities( const TQStringList &,
const TQStringList & ) ),
- this, TQT_SLOT( slotImapCapabilities( const TQStringList &,
+ this, TQ_SLOT( slotImapCapabilities( const TQStringList &,
const TQStringList & ) ) );
mImap.checkCapabilities->setEnabled(false);
}
@@ -2120,10 +2120,10 @@ void AccountDialog::slotReloadNamespaces()
mImap.otherUsersNS->setText( TQString() );
mImap.sharedNS->setText( TQString() );
ImapAccountBase* ai = static_cast<ImapAccountBase*>( mAccount );
- connect( ai, TQT_SIGNAL( namespacesFetched( const ImapAccountBase::nsDelimMap& ) ),
- this, TQT_SLOT( slotSetupNamespaces( const ImapAccountBase::nsDelimMap& ) ) );
- connect( ai, TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( slotConnectionResult(int, const TQString&) ) );
+ connect( ai, TQ_SIGNAL( namespacesFetched( const ImapAccountBase::nsDelimMap& ) ),
+ this, TQ_SLOT( slotSetupNamespaces( const ImapAccountBase::nsDelimMap& ) ) );
+ connect( ai, TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( slotConnectionResult(int, const TQString&) ) );
ai->getNamespaces();
}
}
@@ -2132,17 +2132,17 @@ void AccountDialog::slotConnectionResult( int errorCode, const TQString& )
{
if ( errorCode > 0 ) {
ImapAccountBase* ai = static_cast<ImapAccountBase*>( mAccount );
- disconnect( ai, TQT_SIGNAL( namespacesFetched( const ImapAccountBase::nsDelimMap& ) ),
- this, TQT_SLOT( slotSetupNamespaces( const ImapAccountBase::nsDelimMap& ) ) );
- disconnect( ai, TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( slotConnectionResult(int, const TQString&) ) );
+ disconnect( ai, TQ_SIGNAL( namespacesFetched( const ImapAccountBase::nsDelimMap& ) ),
+ this, TQ_SLOT( slotSetupNamespaces( const ImapAccountBase::nsDelimMap& ) ) );
+ disconnect( ai, TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( slotConnectionResult(int, const TQString&) ) );
mImap.personalNS->setText( TQString() );
}
}
void AccountDialog::slotSetupNamespaces( const ImapAccountBase::nsDelimMap& map )
{
- disconnect( this, TQT_SLOT( slotSetupNamespaces( const ImapAccountBase::nsDelimMap& ) ) );
+ disconnect( this, TQ_SLOT( slotSetupNamespaces( const ImapAccountBase::nsDelimMap& ) ) );
mImap.personalNS->setText( TQString() );
mImap.otherUsersNS->setText( TQString() );
mImap.sharedNS->setText( TQString() );
@@ -2297,7 +2297,7 @@ NamespaceEditDialog::NamespaceEditDialog( TQWidget *parent,
TQGrid* grid = new TQGrid( 2, page );
mBg = new TQButtonGroup( 0 );
- connect( mBg, TQT_SIGNAL( clicked(int) ), this, TQT_SLOT( slotRemoveEntry(int) ) );
+ connect( mBg, TQ_SIGNAL( clicked(int) ), this, TQ_SLOT( slotRemoveEntry(int) ) );
mDelimMap = mNamespaceMap->find( mType ).data();
ImapAccountBase::namespaceDelim::Iterator it;
for ( it = mDelimMap.begin(); it != mDelimMap.end(); ++it ) {
diff --git a/kmail/accountdialog.h b/kmail/accountdialog.h
index bf79f096..417d0e28 100644
--- a/kmail/accountdialog.h
+++ b/kmail/accountdialog.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
* accountdialog.h
*
* kmail: KDE mail client
@@ -54,7 +54,7 @@ class FolderRequester;
class AccountDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -302,7 +302,7 @@ class AccountDialog : public KDialogBase
class NamespaceLineEdit: public KLineEdit
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -319,7 +319,7 @@ class NamespaceLineEdit: public KLineEdit
class NamespaceEditDialog: public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/accountmanager.cpp b/kmail/accountmanager.cpp
index 6b9f38fe..4f05eb16 100644
--- a/kmail/accountmanager.cpp
+++ b/kmail/accountmanager.cpp
@@ -149,8 +149,8 @@ void AccountManager::processNextCheck( bool _newMail )
kdDebug(5006) << "account " << acct->name() << " finished check" << endl;
mAcctChecking.remove( acct );
kmkernel->filterMgr()->deref();
- disconnect( acct, TQT_SIGNAL( finishedCheck( bool, CheckStatus ) ),
- this, TQT_SLOT( processNextCheck( bool ) ) );
+ disconnect( acct, TQ_SIGNAL( finishedCheck( bool, CheckStatus ) ),
+ this, TQ_SLOT( processNextCheck( bool ) ) );
}
if ( mAcctChecking.isEmpty() ) {
// all checks finished, display summary
@@ -219,8 +219,8 @@ void AccountManager::processNextCheck( bool _newMail )
}
}
- connect( curAccount, TQT_SIGNAL( finishedCheck( bool, CheckStatus ) ),
- this, TQT_SLOT( processNextCheck( bool ) ) );
+ connect( curAccount, TQ_SIGNAL( finishedCheck( bool, CheckStatus ) ),
+ this, TQ_SLOT( processNextCheck( bool ) ) );
KPIM::BroadcastStatus::instance()->setStatusMsg(
i18n("Checking account %1 for new mail").arg(curAccount->name()));
@@ -258,8 +258,8 @@ KMAccount* AccountManager::create( const TQString &aType, const TQString &aName,
kdWarning(5006) << "Attempt to instantiate a non-existing account type!" << endl;
return 0;
}
- connect( act, TQT_SIGNAL( newMailsProcessed( const TQMap<TQString, int> & ) ),
- this, TQT_SLOT( addToTotalNewMailCount( const TQMap<TQString, int> & ) ) );
+ connect( act, TQ_SIGNAL( newMailsProcessed( const TQMap<TQString, int> & ) ),
+ this, TQ_SLOT( addToTotalNewMailCount( const TQMap<TQString, int> & ) ) );
return act;
}
diff --git a/kmail/accountmanager.h b/kmail/accountmanager.h
index 4afe8bb9..ddc82e47 100644
--- a/kmail/accountmanager.h
+++ b/kmail/accountmanager.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++ -*-
+/*
* kmail: KDE mail client
* Copyright (c) 1996-1998 Stefan Taferner <taferner@kde.org>
*
@@ -22,7 +22,7 @@
#include <tqobject.h>
#include "kmaccount.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQString;
class TQStringList;
@@ -34,7 +34,7 @@ namespace KMail {
*/
class KDE_EXPORT AccountManager: public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
friend class ::KMAccount;
diff --git a/kmail/accountwizard.cpp b/kmail/accountwizard.cpp
index 92e6a232..b050275c 100644
--- a/kmail/accountwizard.cpp
+++ b/kmail/accountwizard.cpp
@@ -282,8 +282,8 @@ void AccountWizard::setupServerInformationPage()
mIncomingLocation = new KLineEdit( mIncomingLocationWdg );
mChooseLocation = new TQPushButton( i18n( "Choose..." ), mIncomingLocationWdg );
- connect( mChooseLocation, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( chooseLocation() ) );
+ connect( mChooseLocation, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( chooseLocation() ) );
layout->addWidget( mIncomingLabel, 0, 0, AlignTop );
layout->addWidget( mIncomingLocationWdg, 0, 1 );
@@ -303,8 +303,8 @@ void AccountWizard::setupServerInformationPage()
mServerInformationPage );
layout->addWidget( mLocalDelivery, 3, 0 );
- connect( mLocalDelivery, TQT_SIGNAL( toggled( bool ) ),
- mOutgoingServer, TQT_SLOT( setDisabled( bool ) ) );
+ connect( mLocalDelivery, TQ_SIGNAL( toggled( bool ) ),
+ mOutgoingServer, TQ_SLOT( setDisabled( bool ) ) );
addPage( mServerInformationPage, i18n( "Server Information" ) );
}
@@ -361,7 +361,7 @@ void AccountWizard::accept()
manager->commit();
- TQTimer::singleShot( 0, this, TQT_SLOT( createTransport() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( createTransport() ) );
}
void AccountWizard::createTransport()
@@ -386,7 +386,7 @@ void AccountWizard::createTransport()
mTransportInfo->auth = false;
mTransportInfo->setStorePasswd( false );
- TQTimer::singleShot( 0, this, TQT_SLOT( transportCreated() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( transportCreated() ) );
} else { // delivery via SMTP
mTransportInfo->type = "smtp";
mTransportInfo->name = accountName();
@@ -425,7 +425,7 @@ void AccountWizard::transportCreated()
mTransportInfoList.setAutoDelete( true );
mTransportInfoList.clear();
- TQTimer::singleShot( 0, this, TQT_SLOT( createAccount() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( createAccount() ) );
}
void AccountWizard::createAccount()
@@ -485,7 +485,7 @@ void AccountWizard::createAccount()
else if ( mTypeBox->type() == AccountTypeBox::IMAP || mTypeBox->type() == AccountTypeBox::dIMAP )
checkImapCapabilities( mIncomingServer->text(), port );
else
- TQTimer::singleShot( 0, this, TQT_SLOT( accountCreated() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( accountCreated() ) );
}
void AccountWizard::accountCreated()
@@ -513,8 +513,8 @@ void AccountWizard::checkPopCapabilities( const TQString &server, int port )
delete mServerTest;
mServerTest = new KMServerTest( POP_PROTOCOL, server, port );
- connect( mServerTest, TQT_SIGNAL( capabilities( const TQStringList&, const TQStringList& ) ),
- this, TQT_SLOT( popCapabilities( const TQStringList&, const TQStringList& ) ) );
+ connect( mServerTest, TQ_SIGNAL( capabilities( const TQStringList&, const TQStringList& ) ),
+ this, TQ_SLOT( popCapabilities( const TQStringList&, const TQStringList& ) ) );
mAuthInfoLabel = createInfoLabel( i18n( "Check for supported security capabilities of %1..." ).arg( server ) );
}
@@ -524,8 +524,8 @@ void AccountWizard::checkImapCapabilities( const TQString &server, int port )
delete mServerTest;
mServerTest = new KMServerTest( IMAP_PROTOCOL, server, port );
- connect( mServerTest, TQT_SIGNAL( capabilities( const TQStringList&, const TQStringList& ) ),
- this, TQT_SLOT( imapCapabilities( const TQStringList&, const TQStringList& ) ) );
+ connect( mServerTest, TQ_SIGNAL( capabilities( const TQStringList&, const TQStringList& ) ),
+ this, TQ_SLOT( imapCapabilities( const TQStringList&, const TQStringList& ) ) );
mAuthInfoLabel = createInfoLabel( i18n( "Check for supported security capabilities of %1..." ).arg( server ) );
}
@@ -535,9 +535,9 @@ void AccountWizard::checkSmtpCapabilities( const TQString &server, int port )
delete mServerTest;
mServerTest = new KMServerTest( SMTP_PROTOCOL, server, port );
- connect( mServerTest, TQT_SIGNAL( capabilities( const TQStringList&, const TQStringList&,
+ connect( mServerTest, TQ_SIGNAL( capabilities( const TQStringList&, const TQStringList&,
const TQString&, const TQString&, const TQString& ) ),
- this, TQT_SLOT( smtpCapabilities( const TQStringList&, const TQStringList&,
+ this, TQ_SLOT( smtpCapabilities( const TQStringList&, const TQStringList&,
const TQString&, const TQString&, const TQString& ) ) );
mAuthInfoLabel = createInfoLabel( i18n( "Check for supported security capabilities of %1..." ).arg( server ) );
diff --git a/kmail/accountwizard.h b/kmail/accountwizard.h
index b6cfe158..0b30ca80 100644
--- a/kmail/accountwizard.h
+++ b/kmail/accountwizard.h
@@ -44,7 +44,7 @@ class KMTransportInfo;
class AccountWizard : public KWizard
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/acljobs.cpp b/kmail/acljobs.cpp
index 4b5f54f6..036ed51d 100644
--- a/kmail/acljobs.cpp
+++ b/kmail/acljobs.cpp
@@ -170,8 +170,8 @@ ACLJobs::GetACLJob::GetACLJob( const KURL& url, const TQByteArray &packedArgs,
bool showProgressInfo )
: TDEIO::SimpleJob( url, TDEIO::CMD_SPECIAL, packedArgs, showProgressInfo )
{
- connect( this, TQT_SIGNAL(infoMessage(TDEIO::Job*,const TQString&)),
- TQT_SLOT(slotInfoMessage(TDEIO::Job*,const TQString&)) );
+ connect( this, TQ_SIGNAL(infoMessage(TDEIO::Job*,const TQString&)),
+ TQ_SLOT(slotInfoMessage(TDEIO::Job*,const TQString&)) );
}
void ACLJobs::GetACLJob::slotInfoMessage( TDEIO::Job*, const TQString& str )
@@ -191,8 +191,8 @@ ACLJobs::GetUserRightsJob::GetUserRightsJob( const KURL& url, const TQByteArray
bool showProgressInfo )
: TDEIO::SimpleJob( url, TDEIO::CMD_SPECIAL, packedArgs, showProgressInfo )
{
- connect( this, TQT_SIGNAL(infoMessage(TDEIO::Job*,const TQString&)),
- TQT_SLOT(slotInfoMessage(TDEIO::Job*,const TQString&)) );
+ connect( this, TQ_SIGNAL(infoMessage(TDEIO::Job*,const TQString&)),
+ TQ_SLOT(slotInfoMessage(TDEIO::Job*,const TQString&)) );
}
void ACLJobs::GetUserRightsJob::slotInfoMessage( TDEIO::Job*, const TQString& str )
@@ -216,7 +216,7 @@ ACLJobs::MultiSetACLJob::MultiSetACLJob( TDEIO::Slave* slave, const KURL& url, c
mSlave( slave ),
mUrl( url ), mACLList( acl ), mACLListIterator( mACLList.begin() )
{
- TQTimer::singleShot(0, this, TQT_SLOT(slotStart()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotStart()));
}
void ACLJobs::MultiSetACLJob::slotStart()
diff --git a/kmail/acljobs.h b/kmail/acljobs.h
index dd988343..025fc168 100644
--- a/kmail/acljobs.h
+++ b/kmail/acljobs.h
@@ -107,7 +107,7 @@ namespace ACLJobs {
/// List all ACLs for a given url
class GetACLJob : public TDEIO::SimpleJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
GetACLJob( const KURL& url, const TQByteArray &packedArgs,
@@ -124,7 +124,7 @@ namespace ACLJobs {
/// Get the users' rights for a given url
class GetUserRightsJob : public TDEIO::SimpleJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
GetUserRightsJob( const KURL& url, const TQByteArray &packedArgs,
@@ -141,7 +141,7 @@ namespace ACLJobs {
/// This class only exists to store the userid in the job
class DeleteACLJob : public TDEIO::SimpleJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
DeleteACLJob( const KURL& url, const TQString& userId,
@@ -156,7 +156,7 @@ namespace ACLJobs {
/// Set and delete a list of permissions for different users on a given url
class MultiSetACLJob : public TDEIO::Job {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/actionscheduler.cpp b/kmail/actionscheduler.cpp
index 738d6285..ec892d00 100644
--- a/kmail/actionscheduler.cpp
+++ b/kmail/actionscheduler.cpp
@@ -82,19 +82,19 @@ ActionScheduler::ActionScheduler(KMFilterMgr::FilterSet set,
lastCommand = 0;
lastJob = 0;
finishTimer = new TQTimer( this, "finishTimer" );
- connect( finishTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(finish()));
+ connect( finishTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(finish()));
fetchMessageTimer = new TQTimer( this, "fetchMessageTimer" );
- connect( fetchMessageTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(fetchMessage()));
+ connect( fetchMessageTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(fetchMessage()));
tempCloseFoldersTimer = new TQTimer( this, "tempCloseFoldersTimer" );
- connect( tempCloseFoldersTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(tempCloseFolders()));
+ connect( tempCloseFoldersTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(tempCloseFolders()));
processMessageTimer = new TQTimer( this, "processMessageTimer" );
- connect( processMessageTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(processMessage()));
+ connect( processMessageTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(processMessage()));
filterMessageTimer = new TQTimer( this, "filterMessageTimer" );
- connect( filterMessageTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(filterMessage()));
+ connect( filterMessageTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(filterMessage()));
timeOutTimer = new TQTimer( this, "timeOutTimer" );
- connect( timeOutTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(timeOut()));
+ connect( timeOutTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(timeOut()));
fetchTimeOutTimer = new TQTimer( this, "fetchTimeOutTimer" );
- connect( fetchTimeOutTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(fetchTimeOut()));
+ connect( fetchTimeOutTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(fetchTimeOut()));
TQValueList<KMFilter*>::Iterator it = filters.begin();
for (; it != filters.end(); ++it)
@@ -122,10 +122,10 @@ ActionScheduler::~ActionScheduler()
{
schedulerList->remove( this );
tempCloseFolders();
- disconnect( mSrcFolder, TQT_SIGNAL(closed()),
- this, TQT_SLOT(folderClosedOrExpunged()) );
- disconnect( mSrcFolder, TQT_SIGNAL(expunged(KMFolder*)),
- this, TQT_SLOT(folderClosedOrExpunged()) );
+ disconnect( mSrcFolder, TQ_SIGNAL(closed()),
+ this, TQ_SLOT(folderClosedOrExpunged()) );
+ disconnect( mSrcFolder, TQ_SIGNAL(expunged(KMFolder*)),
+ this, TQ_SLOT(folderClosedOrExpunged()) );
mSrcFolder->close("actionschedsrc");
if (mDeleteSrcFolder)
@@ -157,12 +157,12 @@ void ActionScheduler::setSourceFolder( KMFolder *srcFolder )
{
srcFolder->open("actionschedsrc");
if (mSrcFolder) {
- disconnect( mSrcFolder, TQT_SIGNAL(msgAdded(KMFolder*, TQ_UINT32)),
- this, TQT_SLOT(msgAdded(KMFolder*, TQ_UINT32)) );
- disconnect( mSrcFolder, TQT_SIGNAL(closed()),
- this, TQT_SLOT(folderClosedOrExpunged()) );
- disconnect( mSrcFolder, TQT_SIGNAL(expunged(KMFolder*)),
- this, TQT_SLOT(folderClosedOrExpunged()) );
+ disconnect( mSrcFolder, TQ_SIGNAL(msgAdded(KMFolder*, TQ_UINT32)),
+ this, TQ_SLOT(msgAdded(KMFolder*, TQ_UINT32)) );
+ disconnect( mSrcFolder, TQ_SIGNAL(closed()),
+ this, TQ_SLOT(folderClosedOrExpunged()) );
+ disconnect( mSrcFolder, TQ_SIGNAL(expunged(KMFolder*)),
+ this, TQ_SLOT(folderClosedOrExpunged()) );
mSrcFolder->close("actionschedsrc");
}
mSrcFolder = srcFolder;
@@ -170,12 +170,12 @@ void ActionScheduler::setSourceFolder( KMFolder *srcFolder )
for (i = 0; i < mSrcFolder->count(); ++i)
enqueue( mSrcFolder->getMsgBase( i )->getMsgSerNum() );
if (mSrcFolder) {
- connect( mSrcFolder, TQT_SIGNAL(msgAdded(KMFolder*, TQ_UINT32)),
- this, TQT_SLOT(msgAdded(KMFolder*, TQ_UINT32)) );
- connect( mSrcFolder, TQT_SIGNAL(closed()),
- this, TQT_SLOT(folderClosedOrExpunged()) );
- connect( mSrcFolder, TQT_SIGNAL(expunged(KMFolder*)),
- this, TQT_SLOT(folderClosedOrExpunged()) );
+ connect( mSrcFolder, TQ_SIGNAL(msgAdded(KMFolder*, TQ_UINT32)),
+ this, TQ_SLOT(msgAdded(KMFolder*, TQ_UINT32)) );
+ connect( mSrcFolder, TQ_SIGNAL(closed()),
+ this, TQ_SLOT(folderClosedOrExpunged()) );
+ connect( mSrcFolder, TQ_SIGNAL(expunged(KMFolder*)),
+ this, TQ_SLOT(folderClosedOrExpunged()) );
}
}
@@ -422,8 +422,8 @@ void ActionScheduler::fetchMessage()
fetchTimeOutTime = TQTime::currentTime();
fetchTimeOutTimer->start( 60 * 1000, true );
FolderJob *job = msg->parent()->createJob( msg );
- connect( job, TQT_SIGNAL(messageRetrieved( KMMessage* )),
- TQT_SLOT(messageFetched( KMMessage* )) );
+ connect( job, TQ_SIGNAL(messageRetrieved( KMMessage* )),
+ TQ_SLOT(messageFetched( KMMessage* )) );
lastJob = job;
job->start();
} else {
@@ -563,8 +563,8 @@ void ActionScheduler::processMessage()
}
if (msg) {
FolderJob *job = msg->parent()->createJob( msg );
- connect( job, TQT_SIGNAL(messageRetrieved( KMMessage* )),
- TQT_SLOT(messageRetrieved( KMMessage* )) );
+ connect( job, TQ_SIGNAL(messageRetrieved( KMMessage* )),
+ TQ_SLOT(messageRetrieved( KMMessage* )) );
job->start();
} else {
mExecuting = false;
@@ -689,8 +689,8 @@ void ActionScheduler::moveMessage()
timeOutTime = TQTime::currentTime();
KMCommand *cmd = new KMMoveCommand( folder, msg );
- connect( cmd, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( moveMessageFinished( KMCommand * ) ) );
+ connect( cmd, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( moveMessageFinished( KMCommand * ) ) );
cmd->start();
// sometimes the move command doesn't complete so time out after a minute
// and move onto the next message
@@ -727,16 +727,16 @@ void ActionScheduler::moveMessageFinished( KMCommand *command )
if (mResult == ResultOk) {
mExecutingLock = false;
if (cmd)
- connect( cmd, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( processMessage() ) );
+ connect( cmd, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( processMessage() ) );
else
processMessageTimer->start( 0, true );
} else {
// Note: An alternative to consider is just calling
// finishTimer->start and returning
if (cmd)
- connect( cmd, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( finish() ) );
+ connect( cmd, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( finish() ) );
else
finishTimer->start( 0, true );
}
@@ -758,8 +758,8 @@ void ActionScheduler::timeOut()
// Note: This is a good place for a debug statement
assert( lastCommand );
// sometimes imap jobs seem to just stall so give up and move on
- disconnect( lastCommand, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( moveMessageFinished( KMCommand * ) ) );
+ disconnect( lastCommand, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( moveMessageFinished( KMCommand * ) ) );
lastCommand = 0;
mExecutingLock = false;
mExecuting = false;
@@ -773,8 +773,8 @@ void ActionScheduler::fetchTimeOut()
// Note: This is a good place for a debug statement
assert( lastJob );
// sometimes imap jobs seem to just stall so give up and move on
- disconnect( lastJob, TQT_SIGNAL(messageRetrieved( KMMessage* )),
- this, TQT_SLOT(messageFetched( KMMessage* )) );
+ disconnect( lastJob, TQ_SIGNAL(messageRetrieved( KMMessage* )),
+ this, TQ_SLOT(messageFetched( KMMessage* )) );
lastJob->kill();
lastJob = 0;
fetchMessageTimer->start( 0, true );
diff --git a/kmail/actionscheduler.h b/kmail/actionscheduler.h
index 54303960..b837c450 100644
--- a/kmail/actionscheduler.h
+++ b/kmail/actionscheduler.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++ -*-
+/*
Action Scheduler
This file is part of KMail, the KDE mail client.
@@ -48,7 +48,7 @@ namespace KMail {
/* A class for asynchronous filtering of messages */
class ActionScheduler : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/annotationjobs.cpp b/kmail/annotationjobs.cpp
index c2fd8267..37f16d64 100644
--- a/kmail/annotationjobs.cpp
+++ b/kmail/annotationjobs.cpp
@@ -66,8 +66,8 @@ AnnotationJobs::GetAnnotationJob::GetAnnotationJob( const KURL& url, const TQStr
: TDEIO::SimpleJob( url, TDEIO::CMD_SPECIAL, packedArgs, showProgressInfo ),
mEntry( entry )
{
- connect( this, TQT_SIGNAL(infoMessage(TDEIO::Job*,const TQString&)),
- TQT_SLOT(slotInfoMessage(TDEIO::Job*,const TQString&)) );
+ connect( this, TQ_SIGNAL(infoMessage(TDEIO::Job*,const TQString&)),
+ TQ_SLOT(slotInfoMessage(TDEIO::Job*,const TQString&)) );
}
void AnnotationJobs::GetAnnotationJob::slotInfoMessage( TDEIO::Job*, const TQString& str )
@@ -88,7 +88,7 @@ AnnotationJobs::MultiGetAnnotationJob::MultiGetAnnotationJob(
mSlave( slave ),
mUrl( url ), mEntryList( entries ), mEntryListIterator( mEntryList.begin() )
{
- TQTimer::singleShot(0, this, TQT_SLOT(slotStart()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotStart()));
}
@@ -143,7 +143,7 @@ AnnotationJobs::MultiSetAnnotationJob::MultiSetAnnotationJob(
mSlave( slave ),
mUrl( url ), mAnnotationList( annotations ), mAnnotationListIterator( mAnnotationList.begin() )
{
- TQTimer::singleShot(0, this, TQT_SLOT(slotStart()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotStart()));
}
@@ -196,7 +196,7 @@ AnnotationJobs::MultiUrlGetAnnotationJob::MultiUrlGetAnnotationJob( TDEIO::Slave
mPathListIterator( mPathList.begin() ),
mAnnotation( annotation )
{
- TQTimer::singleShot(0, this, TQT_SLOT(slotStart()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotStart()));
}
diff --git a/kmail/annotationjobs.h b/kmail/annotationjobs.h
index 2e7529f2..954a1dea 100644
--- a/kmail/annotationjobs.h
+++ b/kmail/annotationjobs.h
@@ -107,7 +107,7 @@ MultiUrlGetAnnotationJob* multiUrlGetAnnotation( TDEIO::Slave* slave,
/// for getAnnotation()
class GetAnnotationJob : public TDEIO::SimpleJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
GetAnnotationJob( const KURL& url, const TQString& entry, const TQByteArray &packedArgs,
@@ -125,7 +125,7 @@ private:
/// for multiGetAnnotation
class MultiGetAnnotationJob : public TDEIO::Job
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -149,7 +149,7 @@ private:
/// for multiUrlGetAnnotation
class MultiUrlGetAnnotationJob : public TDEIO::Job
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -174,7 +174,7 @@ private:
/// for multiSetAnnotation
class MultiSetAnnotationJob : public TDEIO::Job
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/antispamconfig.cpp b/kmail/antispamconfig.cpp
index 2563e4ee..f187dcd6 100644
--- a/kmail/antispamconfig.cpp
+++ b/kmail/antispamconfig.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
antispamconfig.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/antispamconfig.h b/kmail/antispamconfig.h
index 9c344993..922d49db 100644
--- a/kmail/antispamconfig.h
+++ b/kmail/antispamconfig.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
antispamconfig.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/antispamwizard.cpp b/kmail/antispamwizard.cpp
index 5552b058..e512e701 100644
--- a/kmail/antispamwizard.cpp
+++ b/kmail/antispamwizard.cpp
@@ -104,24 +104,24 @@ AntiSpamWizard::AntiSpamWizard( WizardMode mode,
( mMode == AntiSpam )
? i18n( "Welcome to the KMail Anti-Spam Wizard" )
: i18n( "Welcome to the KMail Anti-Virus Wizard" ) );
- connect( mInfoPage, TQT_SIGNAL( selectionChanged( void ) ),
- this, TQT_SLOT( checkProgramsSelections( void ) ) );
+ connect( mInfoPage, TQ_SIGNAL( selectionChanged( void ) ),
+ this, TQ_SLOT( checkProgramsSelections( void ) ) );
if ( mMode == AntiSpam ) {
mSpamRulesPage = new ASWizSpamRulesPage( 0, "", mainFolderTree );
addPage( mSpamRulesPage, i18n( "Options to fine-tune the handling of spam messages" ));
- connect( mSpamRulesPage, TQT_SIGNAL( selectionChanged( void ) ),
- this, TQT_SLOT( slotBuildSummary( void ) ) );
+ connect( mSpamRulesPage, TQ_SIGNAL( selectionChanged( void ) ),
+ this, TQ_SLOT( slotBuildSummary( void ) ) );
}
else {
mVirusRulesPage = new ASWizVirusRulesPage( 0, "", mainFolderTree );
addPage( mVirusRulesPage, i18n( "Options to fine-tune the handling of virus messages" ));
- connect( mVirusRulesPage, TQT_SIGNAL( selectionChanged( void ) ),
- this, TQT_SLOT( checkVirusRulesSelections( void ) ) );
+ connect( mVirusRulesPage, TQ_SIGNAL( selectionChanged( void ) ),
+ this, TQ_SLOT( checkVirusRulesSelections( void ) ) );
}
- connect( this, TQT_SIGNAL( helpClicked( void) ),
- this, TQT_SLOT( slotHelpClicked( void ) ) );
+ connect( this, TQ_SIGNAL( helpClicked( void) ),
+ this, TQ_SLOT( slotHelpClicked( void ) ) );
setNextEnabled( mInfoPage, false );
@@ -132,7 +132,7 @@ AntiSpamWizard::AntiSpamWizard( WizardMode mode,
setFinishEnabled( mSummaryPage, true );
}
- TQTimer::singleShot( 0, this, TQT_SLOT( checkToolAvailability( void ) ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( checkToolAvailability( void ) ) );
}
@@ -891,8 +891,8 @@ ASWizInfoPage::ASWizInfoPage( AntiSpamWizard::WizardMode mode,
mToolsList->setRowMode( TQListBox::FixedNumber );
mToolsList->setRowMode( 10 );
layout->addWidget( mToolsList );
- connect( mToolsList, TQT_SIGNAL(selectionChanged()),
- this, TQT_SLOT(processSelectionChange(void)) );
+ connect( mToolsList, TQ_SIGNAL(selectionChanged()),
+ this, TQ_SLOT(processSelectionChange(void)) );
mSelectionHint = new TQLabel( this );
mSelectionHint->setText( "" );
@@ -983,16 +983,16 @@ ASWizSpamRulesPage::ASWizSpamRulesPage( TQWidget * parent, const char * name,
layout->addStretch();
- connect( mMarkRules, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(processSelectionChange(void)) );
- connect( mMoveSpamRules, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(processSelectionChange(void)) );
- connect( mMoveUnsureRules, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(processSelectionChange(void)) );
- connect( mFolderReqForSpamFolder, TQT_SIGNAL(folderChanged(KMFolder*)),
- this, TQT_SLOT(processSelectionChange(KMFolder*)) );
- connect( mFolderReqForUnsureFolder, TQT_SIGNAL(folderChanged(KMFolder*)),
- this, TQT_SLOT(processSelectionChange(KMFolder*)) );
+ connect( mMarkRules, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(processSelectionChange(void)) );
+ connect( mMoveSpamRules, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(processSelectionChange(void)) );
+ connect( mMoveUnsureRules, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(processSelectionChange(void)) );
+ connect( mFolderReqForSpamFolder, TQ_SIGNAL(folderChanged(KMFolder*)),
+ this, TQ_SLOT(processSelectionChange(KMFolder*)) );
+ connect( mFolderReqForUnsureFolder, TQ_SIGNAL(folderChanged(KMFolder*)),
+ this, TQ_SLOT(processSelectionChange(KMFolder*)) );
mMarkRules->setChecked( true );
mMoveSpamRules->setChecked( true );
@@ -1093,14 +1093,14 @@ ASWizVirusRulesPage::ASWizVirusRulesPage( TQWidget * parent, const char * name,
mFolderTree = new SimpleFolderTree( this, mainFolderTree, s, true );
grid->addWidget( mFolderTree, 3, 0 );
- connect( mPipeRules, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(processSelectionChange(void)) );
- connect( mMoveRules, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(processSelectionChange(void)) );
- connect( mMarkRules, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(processSelectionChange(void)) );
- connect( mMoveRules, TQT_SIGNAL( toggled( bool ) ),
- mMarkRules, TQT_SLOT( setEnabled( bool ) ) );
+ connect( mPipeRules, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(processSelectionChange(void)) );
+ connect( mMoveRules, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(processSelectionChange(void)) );
+ connect( mMarkRules, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(processSelectionChange(void)) );
+ connect( mMoveRules, TQ_SIGNAL( toggled( bool ) ),
+ mMarkRules, TQ_SLOT( setEnabled( bool ) ) );
}
bool ASWizVirusRulesPage::pipeRulesSelected() const
diff --git a/kmail/antispamwizard.h b/kmail/antispamwizard.h
index 7248b9e5..3f13ce8e 100644
--- a/kmail/antispamwizard.h
+++ b/kmail/antispamwizard.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++ -*-
+/*
This file is part of KMail.
Copyright (c) 2003 Andreas Gungl <a.gungl@gmx.de>
@@ -103,7 +103,7 @@ namespace KMail {
*/
class AntiSpamWizard : public KWizard
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -298,7 +298,7 @@ namespace KMail {
//---------------------------------------------------------------------------
class ASWizInfoPage : public ASWizPage
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -325,7 +325,7 @@ namespace KMail {
//---------------------------------------------------------------------------
class ASWizSpamRulesPage : public ASWizPage
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -358,7 +358,7 @@ namespace KMail {
//-------------------------------------------------------------------------
class ASWizVirusRulesPage : public ASWizPage
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -385,7 +385,7 @@ namespace KMail {
//---------------------------------------------------------------------------
class ASWizSummaryPage : public ASWizPage
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/app_octetstream.cpp b/kmail/app_octetstream.cpp
index 526fbb54..b45140ac 100644
--- a/kmail/app_octetstream.cpp
+++ b/kmail/app_octetstream.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
app_octetstream.cpp
This file is part of KMail, the KDE mail client.
@@ -32,7 +32,7 @@
#include "interfaces/bodypartformatter.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace {
diff --git a/kmail/application_octetstream.desktop b/kmail/application_octetstream.desktop
index 409b1112..e35baa7f 100644
--- a/kmail/application_octetstream.desktop
+++ b/kmail/application_octetstream.desktop
@@ -1,82 +1,7 @@
[Misc]
Name=Application Octetstream
-Name[af]=Application/Octet-stream
-Name[ca]=Aplicació Octetstream
-Name[cs]=Aplikace octetstream
-Name[da]=Program oktetstrøm
-Name[eo]=Aplikaĵa Bitokfluo
-Name[es]=Aplicación en flujo de octetos
-Name[eu]=Aplikazioa/zortzikote-jarioa
-Name[fa]=Octetstream کاربرد
-Name[fi]=Octetstream-sovellus
-Name[fr]=Application (flux d'octets)
-Name[fy]=Applikaasje octetstream
-Name[gl]=Aplicación Octetstream
-Name[hu]=Alkalmazás-adatfolyam
-Name[ja]=アプリケーション オクテット ストリーム
-Name[kk]=Қолданбаның бинарлы ағымы
-Name[km]=Octetstream កម្មវិធី
-Name[ms]=Aliran Oktet Aplikasi
-Name[nb]=Program Octetstrøm
-Name[ne]=अक्टेस्ट्रिम अनुप्रयोग
-Name[nl]=Applicatie octetstroom
-Name[nn]=Oktettstraum frå program
-Name[pl]=Dane binarne
-Name[pt]=Aplicação Sequência Binária
-Name[pt_BR]=Aplicativo Octetstream
-Name[ru]=Бинарный поток приложения
-Name[sl]=Programski Octetstream
-Name[sr]=Апликација Octetstream
-Name[sr@Latn]=Aplikacija Octetstream
-Name[sv]=Program-oktettström
-Name[ta]=பயன்பாட்டு எண்மம்
-Name[tg]=Миқдори зиёди бинарии барномот
-Name[tr]=Uygulama Sekizli Akışı
-Name[zh_CN]=应用程序 Octetstream
+
Comment=A bodypart formatter plugin for application/octet-stream
-Comment[af]='n Inprop module wat die lyf gedeelte vir 'application/octet-stream' formateer
-Comment[bg]=Приставка за форматиране на двоични данни
-Comment[bs]=Dodatak za formatiranje tijela poruke za application/octet-stream
-Comment[ca]=Un endollable formatador del cos per application/octet-stream
-Comment[cs]=Modul formátovače těla pro application/octet-stream
-Comment[da]=Et bodypart formateringsplugin for application/octet-stream
-Comment[de]=Ein Bodypart-Formatierungsmodul für application/octet-stream
-Comment[el]=Ένας μορφοποιητής για application/octet-stream
-Comment[es]=Un accesorio de formato para el cuerpo de application/octet-stream
-Comment[et]=Põhiosa vormindamisplugin (MIME tüübile application/octet-stream)
-Comment[eu]=Gorputz-zati formateatzaile plugin bat aplikazio/zortikote-jarioentzat
-Comment[fa]=وصلۀ قالب‌دهندۀ بخش بدنه برای کاربرد/octet-stream
-Comment[fi]=Muokkainliitännäinen application/octet-stream-muodolle
-Comment[fr]=Un module formateur de corps pour application (flux d'octets)
-Comment[fy]=In opmaakplugin foar application/octet-stream
-Comment[gl]=Unha extensión formateadora do corpo para aplicacións/octet-stream
-Comment[hu]=Formázómodul application/octet-stream típusú adatfolyamokhoz
-Comment[is]=Sniðmátstól fyrir application/octet-stream
-Comment[it]=Un plugin per formattare application/octet-stream
-Comment[ja]=application/octet-stream の Bodypart フォーマッタプラグイン
-Comment[kk]=Application/octet-stream үшін пішімдегіш модулі
-Comment[km]=កម្មវិធី​ជំនួយ​កម្មវិធី​ធ្វើ​ទ្រង់ទ្រាយ​ផ្នែក​តួ សម្រាប់​កម្មវិធី/octet-stream
-Comment[lt]=application/octet-stream formatavimo priedas
-Comment[ms]=Plugin pemformat bahagian isi untuk alpikasi/aliran oktet
-Comment[nb]=Et programtillegg for meldingstekst-formatering for application/octet-stream
-Comment[nds]=En Hööftdeel-Formateermoduul för application/octet-stream
-Comment[ne]=अनुप्रयोग/अक्टेट-स्ट्रिमका लागि एउटा मूख्यभाग ढाँचाकार
-Comment[nl]=Een opmaakplugin voor application/octet-stream
-Comment[nn]=Eit programtillegg for formatering av meldingstekst i application/octet-stream
-Comment[pl]=Wtyczka formatowania danych typu application/octet-stream
-Comment[pt]=Um 'plugin' de formatação para application/octet-stream
-Comment[pt_BR]=Um plug-in formatador de componente para application/octet-stream
-Comment[ru]=Форматирование application/octet-stream
-Comment[sk]=Formátovač tela pre MIME typ application/octet-stream
-Comment[sl]=Oblikovni vstavek za application/octet-stream
-Comment[sr]=Прукључак форматера тела за application/octet-stream
-Comment[sr@Latn]=Pruključak formatera tela za application/octet-stream
-Comment[sv]=Ett insticksprogram för brevtextformatering av application/octet-stream
-Comment[ta]=பயன்பாடு அல்லது எண்மத்திற்கான அங்க அமைப்பு சொருகி
-Comment[tg]=Модули ба андозадарории application/octet-stream
-Comment[tr]=application/octet-stream için bir gövde biçimleyici eklentisi
-Comment[uk]=Втулок для форматування application/octet-stream
-Comment[zh_CN]=application/octet-stream 的格式化插件
[Plugin]
Type=application/octet-stream
diff --git a/kmail/archivefolderdialog.cpp b/kmail/archivefolderdialog.cpp
index 435752c6..4a62497c 100644
--- a/kmail/archivefolderdialog.cpp
+++ b/kmail/archivefolderdialog.cpp
@@ -46,7 +46,7 @@ static TQString standardArchivePath( const TQString &folderName )
}
return currentPath +
i18n( "Start of the filename for a mail archive file" , "Archive" ) + "_" + folderName +
- "_" + TQDate::currentDate().toString( Qt::ISODate ) + ".tar.bz2";
+ "_" + TQDate::currentDate().toString( TQt::ISODate ) + ".tar.bz2";
}
ArchiveFolderDialog::ArchiveFolderDialog( TQWidget *parent )
@@ -71,8 +71,8 @@ ArchiveFolderDialog::ArchiveFolderDialog( TQWidget *parent )
mainLayout->addWidget( folderLabel, row, 0 );
mFolderRequester = new FolderRequester( mainWidget, kmkernel->getKMMainWidget()->folderTree() );
mFolderRequester->setMustBeReadWrite( false );
- connect( mFolderRequester, TQT_SIGNAL(folderChanged(KMFolder *)),
- TQT_SLOT(slotFolderChanged(KMFolder *)) );
+ connect( mFolderRequester, TQ_SIGNAL(folderChanged(KMFolder *)),
+ TQ_SLOT(slotFolderChanged(KMFolder *)) );
folderLabel->setBuddy( mFolderRequester );
mainLayout->addWidget( mFolderRequester, row, 1 );
row++;
@@ -88,8 +88,8 @@ ArchiveFolderDialog::ArchiveFolderDialog( TQWidget *parent )
mFormatComboBox->insertItem( i18n( "BZ2-Compressed Tar Archive (.tar.bz2)" ) );
mFormatComboBox->insertItem( i18n( "GZ-Compressed Tar Archive (.tar.gz)" ) );
mFormatComboBox->setCurrentItem( 2 );
- connect( mFormatComboBox, TQT_SIGNAL(activated(int)),
- this, TQT_SLOT(slotFixFileExtension()) );
+ connect( mFormatComboBox, TQ_SIGNAL(activated(int)),
+ this, TQ_SLOT(slotFixFileExtension()) );
mainLayout->addWidget( mFormatComboBox, row, 1 );
row++;
@@ -100,10 +100,10 @@ ArchiveFolderDialog::ArchiveFolderDialog( TQWidget *parent )
mUrlRequester->setFilter( "*.tar *.zip *.tar.gz *.tar.bz2" );
mUrlRequester->fileDialog()->setKeepLocation( true );
fileNameLabel->setBuddy( mUrlRequester );
- connect( mUrlRequester->lineEdit(), TQT_SIGNAL(textChanged(const TQString &)),
- TQT_SLOT(slotUrlChanged(const TQString &)) );
- connect( mUrlRequester, TQT_SIGNAL(urlSelected(const TQString&)),
- this, TQT_SLOT(slotFixFileExtension()) );
+ connect( mUrlRequester->lineEdit(), TQ_SIGNAL(textChanged(const TQString &)),
+ TQ_SLOT(slotUrlChanged(const TQString &)) );
+ connect( mUrlRequester, TQ_SIGNAL(urlSelected(const TQString&)),
+ this, TQ_SLOT(slotFixFileExtension()) );
mainLayout->addWidget( mUrlRequester, row, 1 );
row++;
diff --git a/kmail/archivefolderdialog.h b/kmail/archivefolderdialog.h
index cf9133e6..7e5b7853 100644
--- a/kmail/archivefolderdialog.h
+++ b/kmail/archivefolderdialog.h
@@ -32,7 +32,7 @@ class FolderRequester;
class ArchiveFolderDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/attachmentcollector.cpp b/kmail/attachmentcollector.cpp
index b902f596..6fbab33d 100644
--- a/kmail/attachmentcollector.cpp
+++ b/kmail/attachmentcollector.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
attachmentcollector.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/attachmentcollector.h b/kmail/attachmentcollector.h
index 6930e07e..a0069d51 100644
--- a/kmail/attachmentcollector.h
+++ b/kmail/attachmentcollector.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
attachmentcollector.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/attachmentlistview.cpp b/kmail/attachmentlistview.cpp
index a03cd32f..9e99e640 100644
--- a/kmail/attachmentlistview.cpp
+++ b/kmail/attachmentlistview.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
attachmentlistview.cpp
KMail, the KDE mail client.
diff --git a/kmail/attachmentlistview.h b/kmail/attachmentlistview.h
index 881f8b28..7a6e1353 100644
--- a/kmail/attachmentlistview.h
+++ b/kmail/attachmentlistview.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
attachmentlistview.h
KMail, the KDE mail client.
@@ -29,7 +29,7 @@ class Composer;
class AttachmentListView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
AttachmentListView( KMail::Composer * composer = 0, TQWidget* parent = 0,
diff --git a/kmail/attachmentstrategy.cpp b/kmail/attachmentstrategy.cpp
index 87157ed4..2f12f39b 100644
--- a/kmail/attachmentstrategy.cpp
+++ b/kmail/attachmentstrategy.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
attachmentstrategy.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/attachmentstrategy.h b/kmail/attachmentstrategy.h
index 268a4330..66fb6b85 100644
--- a/kmail/attachmentstrategy.h
+++ b/kmail/attachmentstrategy.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
attachmentstrategy.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/backupjob.cpp b/kmail/backupjob.cpp
index bf78e68c..b67834c4 100644
--- a/kmail/backupjob.cpp
+++ b/kmail/backupjob.cpp
@@ -234,15 +234,15 @@ void BackupJob::archiveNextMessage()
// Use a singleshot timer, or otherwise we risk ending up in a very big recursion
// for folders that have many messages
mCurrentMessage = message;
- TQTimer::singleShot( 0, this, TQT_SLOT( processCurrentMessage() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( processCurrentMessage() ) );
}
else if ( message->parent() ) {
mCurrentJob = message->parent()->createJob( message );
mCurrentJob->setCancellable( false );
- connect( mCurrentJob, TQT_SIGNAL( messageRetrieved( KMMessage* ) ),
- this, TQT_SLOT( messageRetrieved( KMMessage* ) ) );
- connect( mCurrentJob, TQT_SIGNAL( result( KMail::FolderJob* ) ),
- this, TQT_SLOT( folderJobFinished( KMail::FolderJob* ) ) );
+ connect( mCurrentJob, TQ_SIGNAL( messageRetrieved( KMMessage* ) ),
+ this, TQ_SLOT( messageRetrieved( KMMessage* ) ) );
+ connect( mCurrentJob, TQ_SIGNAL( result( KMail::FolderJob* ) ),
+ this, TQ_SLOT( folderJobFinished( KMail::FolderJob* ) ) );
mCurrentJob->start();
}
else {
@@ -490,8 +490,8 @@ void BackupJob::start()
TQString(),
true );
mProgressItem->setUsesBusyIndicator( true );
- connect( mProgressItem, TQT_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)),
- this, TQT_SLOT(cancelJob()) );
+ connect( mProgressItem, TQ_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)),
+ this, TQ_SLOT(cancelJob()) );
archiveNextFolder();
}
diff --git a/kmail/backupjob.h b/kmail/backupjob.h
index 4ca6728f..495641a6 100644
--- a/kmail/backupjob.h
+++ b/kmail/backupjob.h
@@ -47,7 +47,7 @@ namespace KMail
*/
class BackupJob : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/bodypartformatter.cpp b/kmail/bodypartformatter.cpp
index bd6da060..8435ef25 100644
--- a/kmail/bodypartformatter.cpp
+++ b/kmail/bodypartformatter.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
bodypartformatter.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/bodypartformatter.h b/kmail/bodypartformatter.h
index 1c296582..2664be0d 100644
--- a/kmail/bodypartformatter.h
+++ b/kmail/bodypartformatter.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
bodypartformatter.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/bodypartformatterfactory.cpp b/kmail/bodypartformatterfactory.cpp
index 62a92953..fbae5a44 100644
--- a/kmail/bodypartformatterfactory.cpp
+++ b/kmail/bodypartformatterfactory.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
bodypartformatterfactory.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/bodypartformatterfactory.h b/kmail/bodypartformatterfactory.h
index dd89eb34..7606a5c1 100644
--- a/kmail/bodypartformatterfactory.h
+++ b/kmail/bodypartformatterfactory.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
bodypartformatterfactory.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/bodypartformatterfactory_p.h b/kmail/bodypartformatterfactory_p.h
index 088a17f2..60067cd7 100644
--- a/kmail/bodypartformatterfactory_p.h
+++ b/kmail/bodypartformatterfactory_p.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
bodypartformatterfactory.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/bodyvisitor.h b/kmail/bodyvisitor.h
index a436fb44..cfe43b49 100644
--- a/kmail/bodyvisitor.h
+++ b/kmail/bodyvisitor.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2003 Carsten Burghardt <burghardt@kde.org>
diff --git a/kmail/cachedimapjob.cpp b/kmail/cachedimapjob.cpp
index e4a29d6e..89dd1116 100644
--- a/kmail/cachedimapjob.cpp
+++ b/kmail/cachedimapjob.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2002-2004 Bo Thorsen <bo@sonofthor.dk>
@@ -200,11 +200,11 @@ void CachedImapJob::listMessages()
ImapAccountBase::jobData jd( url.url(), mFolder->folder() );
jd.cancellable = true;
mAccount->insertJob( job, jd );
- connect( job, TQT_SIGNAL( result(TDEIO::Job *) ),
- this, TQT_SLOT( slotListMessagesResult( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result(TDEIO::Job *) ),
+ this, TQ_SLOT( slotListMessagesResult( TDEIO::Job* ) ) );
// send the data directly for KMFolderCachedImap
- connect( job, TQT_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ),
- mFolder, TQT_SLOT( slotGetMessagesData( TDEIO::Job* , const TQByteArray& ) ) );
+ connect( job, TQ_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ),
+ mFolder, TQ_SLOT( slotGetMessagesData( TDEIO::Job* , const TQByteArray& ) ) );
}
void CachedImapJob::slotDeleteNextMessages( TDEIO::Job* job )
@@ -240,8 +240,8 @@ void CachedImapJob::slotDeleteNextMessages( TDEIO::Job* job )
TDEIO::Scheduler::assignJobToSlave( mAccount->slave(), simpleJob );
ImapAccountBase::jobData jd( url.url(), mFolder->folder() );
mAccount->insertJob( simpleJob, jd );
- connect( simpleJob, TQT_SIGNAL( result(TDEIO::Job *) ),
- this, TQT_SLOT( slotDeleteNextMessages(TDEIO::Job *) ) );
+ connect( simpleJob, TQ_SIGNAL( result(TDEIO::Job *) ),
+ this, TQ_SLOT( slotDeleteNextMessages(TDEIO::Job *) ) );
}
void CachedImapJob::expungeFolder()
@@ -254,8 +254,8 @@ void CachedImapJob::expungeFolder()
TDEIO::Scheduler::assignJobToSlave( mAccount->slave(), job );
ImapAccountBase::jobData jd( url.url(), mFolder->folder() );
mAccount->insertJob( job, jd );
- connect( job, TQT_SIGNAL( result(TDEIO::Job *) ),
- this, TQT_SLOT( slotExpungeResult(TDEIO::Job *) ) );
+ connect( job, TQ_SIGNAL( result(TDEIO::Job *) ),
+ this, TQ_SLOT( slotExpungeResult(TDEIO::Job *) ) );
}
void CachedImapJob::slotExpungeResult( TDEIO::Job * job )
@@ -349,12 +349,12 @@ void CachedImapJob::slotGetNextMessage(TDEIO::Job * job)
TDEIO::SimpleJob *simpleJob = TDEIO::get(url, false, false);
TDEIO::Scheduler::assignJobToSlave(mAccount->slave(), simpleJob);
mAccount->insertJob(simpleJob, jd);
- connect(simpleJob, TQT_SIGNAL(processedSize(TDEIO::Job *, TDEIO::filesize_t)),
- this, TQT_SLOT(slotProcessedSize(TDEIO::Job *, TDEIO::filesize_t)));
- connect(simpleJob, TQT_SIGNAL(result(TDEIO::Job *)),
- this, TQT_SLOT(slotGetNextMessage(TDEIO::Job *)));
- connect(simpleJob, TQT_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
- mFolder, TQT_SLOT(slotSimpleData(TDEIO::Job *, const TQByteArray &)));
+ connect(simpleJob, TQ_SIGNAL(processedSize(TDEIO::Job *, TDEIO::filesize_t)),
+ this, TQ_SLOT(slotProcessedSize(TDEIO::Job *, TDEIO::filesize_t)));
+ connect(simpleJob, TQ_SIGNAL(result(TDEIO::Job *)),
+ this, TQ_SLOT(slotGetNextMessage(TDEIO::Job *)));
+ connect(simpleJob, TQ_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
+ mFolder, TQ_SLOT(slotSimpleData(TDEIO::Job *, const TQByteArray &)));
}
void CachedImapJob::slotProcessedSize(TDEIO::Job *, TDEIO::filesize_t processed)
@@ -420,14 +420,14 @@ void CachedImapJob::slotPutNextMessage()
TDEIO::SimpleJob *simpleJob = TDEIO::put(url, 0, false, false, false);
TDEIO::Scheduler::assignJobToSlave(mAccount->slave(), simpleJob);
mAccount->insertJob(simpleJob, jd);
- connect( simpleJob, TQT_SIGNAL( result(TDEIO::Job *) ),
- TQT_SLOT( slotPutMessageResult(TDEIO::Job *) ) );
- connect( simpleJob, TQT_SIGNAL( dataReq(TDEIO::Job *, TQByteArray &) ),
- TQT_SLOT( slotPutMessageDataReq(TDEIO::Job *, TQByteArray &) ) );
- connect( simpleJob, TQT_SIGNAL( data(TDEIO::Job *, const TQByteArray &) ),
- mFolder, TQT_SLOT( slotSimpleData(TDEIO::Job *, const TQByteArray &) ) );
- connect( simpleJob, TQT_SIGNAL(infoMessage(TDEIO::Job *, const TQString &)),
- TQT_SLOT(slotPutMessageInfoData(TDEIO::Job *, const TQString &)) );
+ connect( simpleJob, TQ_SIGNAL( result(TDEIO::Job *) ),
+ TQ_SLOT( slotPutMessageResult(TDEIO::Job *) ) );
+ connect( simpleJob, TQ_SIGNAL( dataReq(TDEIO::Job *, TQByteArray &) ),
+ TQ_SLOT( slotPutMessageDataReq(TDEIO::Job *, TQByteArray &) ) );
+ connect( simpleJob, TQ_SIGNAL( data(TDEIO::Job *, const TQByteArray &) ),
+ mFolder, TQ_SLOT( slotSimpleData(TDEIO::Job *, const TQByteArray &) ) );
+ connect( simpleJob, TQ_SIGNAL(infoMessage(TDEIO::Job *, const TQString &)),
+ TQ_SLOT(slotPutMessageInfoData(TDEIO::Job *, const TQString &)) );
}
@@ -590,8 +590,8 @@ void CachedImapJob::slotAddNextSubfolder( TDEIO::Job * job )
TDEIO::SimpleJob *simpleJob = TDEIO::mkdir(url);
TDEIO::Scheduler::assignJobToSlave(mAccount->slave(), simpleJob);
mAccount->insertJob(simpleJob, jd);
- connect( simpleJob, TQT_SIGNAL(result(TDEIO::Job *)),
- this, TQT_SLOT(slotAddNextSubfolder(TDEIO::Job *)) );
+ connect( simpleJob, TQ_SIGNAL(result(TDEIO::Job *)),
+ this, TQ_SLOT(slotAddNextSubfolder(TDEIO::Job *)) );
} else {
TQByteArray packedArgs;
TQDataStream stream( packedArgs, IO_WriteOnly );
@@ -608,8 +608,8 @@ void CachedImapJob::slotAddNextSubfolder( TDEIO::Job * job )
TDEIO::SimpleJob *simpleJob = TDEIO::special( url.url(), packedArgs, false );
TDEIO::Scheduler::assignJobToSlave(mAccount->slave(), simpleJob);
mAccount->insertJob(simpleJob, jd);
- connect( simpleJob, TQT_SIGNAL(result(TDEIO::Job *)),
- this, TQT_SLOT(slotAddNextSubfolder(TDEIO::Job *)) );
+ connect( simpleJob, TQ_SIGNAL(result(TDEIO::Job *)),
+ this, TQ_SLOT(slotAddNextSubfolder(TDEIO::Job *)) );
}
}
@@ -648,8 +648,8 @@ void CachedImapJob::slotDeleteNextFolder( TDEIO::Job *job )
TDEIO::SimpleJob *simpleJob = TDEIO::file_delete(url, false);
TDEIO::Scheduler::assignJobToSlave(mAccount->slave(), simpleJob);
mAccount->insertJob(simpleJob, jd);
- connect( simpleJob, TQT_SIGNAL( result(TDEIO::Job *) ),
- TQT_SLOT( slotDeleteNextFolder(TDEIO::Job *) ) );
+ connect( simpleJob, TQ_SIGNAL( result(TDEIO::Job *) ),
+ TQ_SLOT( slotDeleteNextFolder(TDEIO::Job *) ) );
}
void CachedImapJob::checkUidValidity()
@@ -663,10 +663,10 @@ void CachedImapJob::checkUidValidity()
TDEIO::SimpleJob *job = TDEIO::get( url, false, false );
TDEIO::Scheduler::assignJobToSlave( mAccount->slave(), job );
mAccount->insertJob( job, jd );
- connect( job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotCheckUidValidityResult(TDEIO::Job *)) );
- connect( job, TQT_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
- mFolder, TQT_SLOT(slotSimpleData(TDEIO::Job *, const TQByteArray &)));
+ connect( job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotCheckUidValidityResult(TDEIO::Job *)) );
+ connect( job, TQ_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
+ mFolder, TQ_SLOT(slotSimpleData(TDEIO::Job *, const TQByteArray &)));
}
void CachedImapJob::slotCheckUidValidityResult(TDEIO::Job * job)
@@ -752,8 +752,8 @@ void CachedImapJob::renameFolder( const TQString &newName )
TDEIO::SimpleJob *simpleJob = TDEIO::rename( urlSrc, urlDst, false );
TDEIO::Scheduler::assignJobToSlave( mAccount->slave(), simpleJob );
mAccount->insertJob( simpleJob, jd );
- connect( simpleJob, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotRenameFolderResult(TDEIO::Job *)) );
+ connect( simpleJob, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotRenameFolderResult(TDEIO::Job *)) );
}
static void renameChildFolders( KMFolderDir* dir, const TQString& oldPath,
@@ -826,14 +826,14 @@ void CachedImapJob::slotSubscribtionChange2Failed( const TQString &errorMessage
void CachedImapJob::slotSubscribtionChange1Done( const TQString&, bool )
{
- disconnect( mAccount, TQT_SIGNAL( subscriptionChanged( const TQString&, bool ) ),
- this, TQT_SLOT( slotSubscribtionChange1Done( const TQString&, bool ) ) );
- connect( mAccount, TQT_SIGNAL( subscriptionChanged( const TQString&, bool ) ),
- this, TQT_SLOT( slotSubscribtionChange2Done( const TQString&, bool ) ) );
- disconnect( mAccount, TQT_SIGNAL( subscriptionChangeFailed( const TQString& ) ),
- this, TQT_SLOT( slotSubscribtionChange1Failed( const TQString& ) ) );
- connect( mAccount, TQT_SIGNAL( subscriptionChangeFailed( const TQString& ) ),
- this, TQT_SLOT( slotSubscribtionChange2Failed( const TQString& ) ) );
+ disconnect( mAccount, TQ_SIGNAL( subscriptionChanged( const TQString&, bool ) ),
+ this, TQ_SLOT( slotSubscribtionChange1Done( const TQString&, bool ) ) );
+ connect( mAccount, TQ_SIGNAL( subscriptionChanged( const TQString&, bool ) ),
+ this, TQ_SLOT( slotSubscribtionChange2Done( const TQString&, bool ) ) );
+ disconnect( mAccount, TQ_SIGNAL( subscriptionChangeFailed( const TQString& ) ),
+ this, TQ_SLOT( slotSubscribtionChange1Failed( const TQString& ) ) );
+ connect( mAccount, TQ_SIGNAL( subscriptionChangeFailed( const TQString& ) ),
+ this, TQ_SLOT( slotSubscribtionChange2Failed( const TQString& ) ) );
mAccount->changeSubscription( false, mOldImapPath, true /* quiet */ );
}
@@ -865,10 +865,10 @@ void CachedImapJob::slotRenameFolderResult( TDEIO::Job *job )
// Okay, the folder seems to be renamed on the server and on disk.
// Now unsubscribe from the old folder name and subscribe to the new folder name,
// so that the folder doesn't suddenly disappear after renaming it
- connect( mAccount, TQT_SIGNAL( subscriptionChangeFailed( const TQString& ) ),
- this, TQT_SLOT( slotSubscribtionChange1Failed( const TQString& ) ) );
- connect( mAccount, TQT_SIGNAL( subscriptionChanged( const TQString&, bool ) ),
- this, TQT_SLOT( slotSubscribtionChange1Done( const TQString&, bool ) ) );
+ connect( mAccount, TQ_SIGNAL( subscriptionChangeFailed( const TQString& ) ),
+ this, TQ_SLOT( slotSubscribtionChange1Failed( const TQString& ) ) );
+ connect( mAccount, TQ_SIGNAL( subscriptionChanged( const TQString&, bool ) ),
+ this, TQ_SLOT( slotSubscribtionChange1Done( const TQString&, bool ) ) );
mAccount->changeSubscription( true, mNewImapPath, true /* quiet */ );
}
}
diff --git a/kmail/cachedimapjob.h b/kmail/cachedimapjob.h
index bdf64541..aa9094bf 100644
--- a/kmail/cachedimapjob.h
+++ b/kmail/cachedimapjob.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2002-2003 Bo Thorsen <bo@sonofthor.dk>
@@ -59,7 +59,7 @@ class KMMessage;
namespace KMail {
class CachedImapJob : public FolderJob {
- Q_OBJECT
+ TQ_OBJECT
public:
/** Information about a message to be downloaded (from the 'IMAP envelope') */
diff --git a/kmail/callback.cpp b/kmail/callback.cpp
index b6e0e938..66bcd12f 100644
--- a/kmail/callback.cpp
+++ b/kmail/callback.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
callback.cpp
This file is used by KMail's plugin interface.
diff --git a/kmail/callback.h b/kmail/callback.h
index a3fccc4e..2722d0ff 100644
--- a/kmail/callback.h
+++ b/kmail/callback.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
callback.h
This file is used by KMail's plugin interface.
@@ -38,7 +38,7 @@
class KMMessage;
class KMReaderWin;
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <libkcal/attendee.h> // only for an enum, we are not linking
diff --git a/kmail/chiasmuskeyselector.cpp b/kmail/chiasmuskeyselector.cpp
index 9e25743e..c4e546ff 100644
--- a/kmail/chiasmuskeyselector.cpp
+++ b/kmail/chiasmuskeyselector.cpp
@@ -35,8 +35,8 @@ ChiasmusKeySelector::ChiasmusKeySelector( TQWidget* parent, const TQString& capt
layout->addStretch();
- connect( mListBox, TQT_SIGNAL( doubleClicked( TQListBoxItem * ) ), this, TQT_SLOT( slotOk() ) );
- connect( mListBox, TQT_SIGNAL( returnPressed( TQListBoxItem * ) ), this, TQT_SLOT( slotOk() ) );
+ connect( mListBox, TQ_SIGNAL( doubleClicked( TQListBoxItem * ) ), this, TQ_SLOT( slotOk() ) );
+ connect( mListBox, TQ_SIGNAL( returnPressed( TQListBoxItem * ) ), this, TQ_SLOT( slotOk() ) );
mListBox->setFocus();
}
diff --git a/kmail/chiasmuskeyselector.h b/kmail/chiasmuskeyselector.h
index 7e0d36fb..7039e05a 100644
--- a/kmail/chiasmuskeyselector.h
+++ b/kmail/chiasmuskeyselector.h
@@ -8,7 +8,7 @@ class TQLabel;
class ChiasmusKeySelector : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/colorlistbox.cpp b/kmail/colorlistbox.cpp
index c7481924..a8610dcd 100644
--- a/kmail/colorlistbox.cpp
+++ b/kmail/colorlistbox.cpp
@@ -32,7 +32,7 @@
ColorListBox::ColorListBox( TQWidget *parent, const char *name, WFlags f )
:TDEListBox( parent, name, f ), mCurrentOnDragEnter(-1)
{
- connect( this, TQT_SIGNAL(selected(int)), this, TQT_SLOT(newColor(int)) );
+ connect( this, TQ_SIGNAL(selected(int)), this, TQ_SLOT(newColor(int)) );
setAcceptDrops( true);
}
diff --git a/kmail/colorlistbox.h b/kmail/colorlistbox.h
index 03ae5069..b6ae2551 100644
--- a/kmail/colorlistbox.h
+++ b/kmail/colorlistbox.h
@@ -25,7 +25,7 @@
class ColorListBox : public TDEListBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/compactionjob.cpp b/kmail/compactionjob.cpp
index a2ace485..90d0e9f4 100644
--- a/kmail/compactionjob.cpp
+++ b/kmail/compactionjob.cpp
@@ -131,7 +131,7 @@ int MboxCompactionJob::executeNow( bool silent )
mCurrentIndex = 0;
kdDebug(5006) << "MboxCompactionJob: starting to compact folder " << mSrcFolder->location() << " into " << mTempName << endl;
- connect( &mTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotDoWork() ) );
+ connect( &mTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( slotDoWork() ) );
if ( !mImmediate )
mTimer.start( COMPACTIONJOB_TIMERINTERVAL );
slotDoWork();
@@ -229,7 +229,7 @@ int MaildirCompactionJob::executeNow( bool silent )
mCurrentIndex = 0;
kdDebug(5006) << "MaildirCompactionJob: starting to compact in folder " << mSrcFolder->location() << endl;
- connect( &mTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotDoWork() ) );
+ connect( &mTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( slotDoWork() ) );
if ( !mImmediate )
mTimer.start( COMPACTIONJOB_TIMERINTERVAL );
slotDoWork();
diff --git a/kmail/compactionjob.h b/kmail/compactionjob.h
index 2b80f006..c7279fe1 100644
--- a/kmail/compactionjob.h
+++ b/kmail/compactionjob.h
@@ -38,7 +38,7 @@ namespace KMail {
*/
class MboxCompactionJob : public ScheduledJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
/// @p folder should be a folder with a KMFolderMbox storage.
@@ -72,7 +72,7 @@ private:
*/
class MaildirCompactionJob : public ScheduledJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
/// @p folder should be a folder with a KMFolderMaildir storage.
diff --git a/kmail/composer.h b/kmail/composer.h
index 30cf0b28..b02a2418 100644
--- a/kmail/composer.h
+++ b/kmail/composer.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* KMComposeWin Header File
* Author: Markus Wuebben <markus.wuebben@kde.org>
*/
@@ -34,7 +34,7 @@ namespace KMail {
Composer * makeComposer( KMMessage * msg=0, uint identity=0 );
class Composer : public KMail::SecondaryWindow {
- Q_OBJECT
+ TQ_OBJECT
protected:
Composer( const char * name=0 ) : KMail::SecondaryWindow( name ) {}
diff --git a/kmail/configuredialog.cpp b/kmail/configuredialog.cpp
index 0f92eab5..c0beb0fd 100644
--- a/kmail/configuredialog.cpp
+++ b/kmail/configuredialog.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* This file: Copyright (C) 2000 Espen Sand, espen@kde.org
* Copyright (C) 2001-2003 Marc Mutz, mutz@kde.org
@@ -270,8 +270,8 @@ void ConfigureDialog::slotUser2() {
return;
}
mProfileDialog = new ProfileDialog( this, "mProfileDialog" );
- connect( mProfileDialog, TQT_SIGNAL(profileSelected(TDEConfig*)),
- this, TQT_SIGNAL(installProfile(TDEConfig*)) );
+ connect( mProfileDialog, TQ_SIGNAL(profileSelected(TDEConfig*)),
+ this, TQ_SIGNAL(installProfile(TDEConfig*)) );
mProfileDialog->show();
}
@@ -291,14 +291,14 @@ IdentityPage::IdentityPage( TQWidget * parent, const char * name )
TQHBoxLayout * hlay = new TQHBoxLayout( this, 0, KDialog::spacingHint() );
mIdentityList = new IdentityListView( this );
- connect( mIdentityList, TQT_SIGNAL(selectionChanged()),
- TQT_SLOT(slotIdentitySelectionChanged()) );
- connect( mIdentityList, TQT_SIGNAL(itemRenamed(TQListViewItem*,const TQString&,int)),
- TQT_SLOT(slotRenameIdentity(TQListViewItem*,const TQString&,int)) );
- connect( mIdentityList, TQT_SIGNAL(doubleClicked(TQListViewItem*,const TQPoint&,int)),
- TQT_SLOT(slotModifyIdentity()) );
- connect( mIdentityList, TQT_SIGNAL(contextMenu(TDEListView*,TQListViewItem*,const TQPoint&)),
- TQT_SLOT(slotContextMenu(TDEListView*,TQListViewItem*,const TQPoint&)) );
+ connect( mIdentityList, TQ_SIGNAL(selectionChanged()),
+ TQ_SLOT(slotIdentitySelectionChanged()) );
+ connect( mIdentityList, TQ_SIGNAL(itemRenamed(TQListViewItem*,const TQString&,int)),
+ TQ_SLOT(slotRenameIdentity(TQListViewItem*,const TQString&,int)) );
+ connect( mIdentityList, TQ_SIGNAL(doubleClicked(TQListViewItem*,const TQPoint&,int)),
+ TQ_SLOT(slotModifyIdentity()) );
+ connect( mIdentityList, TQ_SIGNAL(contextMenu(TDEListView*,TQListViewItem*,const TQPoint&)),
+ TQ_SLOT(slotContextMenu(TDEListView*,TQListViewItem*,const TQPoint&)) );
// ### connect dragged(...), ...
hlay->addWidget( mIdentityList, 1 );
@@ -319,16 +319,16 @@ IdentityPage::IdentityPage( TQWidget * parent, const char * name )
mRemoveButton->setEnabled( false );
mSetAsDefaultButton->setAutoDefault( false );
mSetAsDefaultButton->setEnabled( false );
- connect( button, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotNewIdentity()) );
- connect( mModifyButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotModifyIdentity()) );
- connect( mRenameButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotRenameIdentity()) );
- connect( mRemoveButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotRemoveIdentity()) );
- connect( mSetAsDefaultButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotSetAsDefault()) );
+ connect( button, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotNewIdentity()) );
+ connect( mModifyButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotModifyIdentity()) );
+ connect( mRenameButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotRenameIdentity()) );
+ connect( mRemoveButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotRemoveIdentity()) );
+ connect( mSetAsDefaultButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotSetAsDefault()) );
vlay->addWidget( button );
vlay->addWidget( mModifyButton );
vlay->addWidget( mRenameButton );
@@ -493,13 +493,13 @@ void IdentityPage::slotContextMenu( TDEListView *, TQListViewItem * i,
IdentityListViewItem * item = dynamic_cast<IdentityListViewItem*>( i );
TQPopupMenu * menu = new TQPopupMenu( this );
- menu->insertItem( i18n("Add..."), this, TQT_SLOT(slotNewIdentity()) );
+ menu->insertItem( i18n("Add..."), this, TQ_SLOT(slotNewIdentity()) );
if ( item ) {
- menu->insertItem( i18n("Modify..."), this, TQT_SLOT(slotModifyIdentity()) );
+ menu->insertItem( i18n("Modify..."), this, TQ_SLOT(slotModifyIdentity()) );
if ( mIdentityList->childCount() > 1 )
- menu->insertItem( i18n("Remove"), this, TQT_SLOT(slotRemoveIdentity()) );
+ menu->insertItem( i18n("Remove"), this, TQ_SLOT(slotRemoveIdentity()) );
if ( !item->identity().isDefault() )
- menu->insertItem( i18n("Set as Default"), this, TQT_SLOT(slotSetAsDefault()) );
+ menu->insertItem( i18n("Set as Default"), this, TQ_SLOT(slotSetAsDefault()) );
}
menu->exec( pos );
delete menu;
@@ -563,16 +563,16 @@ AccountsPage::AccountsPage( TQWidget * parent, const char * name )
//
mReceivingTab = new ReceivingTab();
addTab( mReceivingTab, i18n( "&Receiving" ) );
- connect( mReceivingTab, TQT_SIGNAL(accountListChanged(const TQStringList &)),
- this, TQT_SIGNAL(accountListChanged(const TQStringList &)) );
+ connect( mReceivingTab, TQ_SIGNAL(accountListChanged(const TQStringList &)),
+ this, TQ_SIGNAL(accountListChanged(const TQStringList &)) );
//
// "Sending" tab:
//
mSendingTab = new SendingTab();
addTab( mSendingTab, i18n( "&Sending" ) );
- connect( mSendingTab, TQT_SIGNAL(transportListChanged(const TQStringList&)),
- this, TQT_SIGNAL(transportListChanged(const TQStringList&)) );
+ connect( mSendingTab, TQ_SIGNAL(transportListChanged(const TQStringList&)),
+ this, TQ_SIGNAL(transportListChanged(const TQStringList&)) );
load();
}
@@ -608,10 +608,10 @@ AccountsPageSendingTab::AccountsPageSendingTab( TQWidget * parent, const char *
mTransportList->addColumn( i18n("Type") );
mTransportList->setAllColumnsShowFocus( true );
mTransportList->setSorting( -1 );
- connect( mTransportList, TQT_SIGNAL(selectionChanged()),
- this, TQT_SLOT(slotTransportSelected()) );
- connect( mTransportList, TQT_SIGNAL(doubleClicked( TQListViewItem *)),
- this, TQT_SLOT(slotModifySelectedTransport()) );
+ connect( mTransportList, TQ_SIGNAL(selectionChanged()),
+ this, TQ_SLOT(slotTransportSelected()) );
+ connect( mTransportList, TQ_SIGNAL(doubleClicked( TQListViewItem *)),
+ this, TQ_SLOT(slotModifySelectedTransport()) );
hlay->addWidget( mTransportList, 1 );
// a vbox layout for the buttons: zero stretch, spacing inherited from hlay
@@ -620,36 +620,36 @@ AccountsPageSendingTab::AccountsPageSendingTab( TQWidget * parent, const char *
// "add..." button: stretch 0
button = new TQPushButton( i18n("A&dd..."), this );
button->setAutoDefault( false );
- connect( button, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotAddTransport()) );
+ connect( button, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotAddTransport()) );
btn_vlay->addWidget( button );
// "modify..." button: stretch 0
mModifyTransportButton = new TQPushButton( i18n("&Modify..."), this );
mModifyTransportButton->setAutoDefault( false );
mModifyTransportButton->setEnabled( false ); // b/c no item is selected yet
- connect( mModifyTransportButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotModifySelectedTransport()) );
+ connect( mModifyTransportButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotModifySelectedTransport()) );
btn_vlay->addWidget( mModifyTransportButton );
// "remove" button: stretch 0
mRemoveTransportButton = new TQPushButton( i18n("R&emove"), this );
mRemoveTransportButton->setAutoDefault( false );
mRemoveTransportButton->setEnabled( false ); // b/c no item is selected yet
- connect( mRemoveTransportButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotRemoveSelectedTransport()) );
+ connect( mRemoveTransportButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotRemoveSelectedTransport()) );
btn_vlay->addWidget( mRemoveTransportButton );
mSetDefaultTransportButton = new TQPushButton( i18n("Set Default"), this );
mSetDefaultTransportButton->setAutoDefault( false );
mSetDefaultTransportButton->setEnabled( false );
- connect ( mSetDefaultTransportButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotSetDefaultTransport()) );
+ connect ( mSetDefaultTransportButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotSetDefaultTransport()) );
btn_vlay->addWidget( mSetDefaultTransportButton );
btn_vlay->addStretch( 1 ); // spacer
// "Common options" groupbox:
- group = new TQGroupBox( 0, Qt::Vertical,
+ group = new TQGroupBox( 0, TQt::Vertical,
i18n("Common Options"), this );
vlay->addWidget(group);
@@ -660,8 +660,8 @@ AccountsPageSendingTab::AccountsPageSendingTab( TQWidget * parent, const char *
// "confirm before send" check box:
mConfirmSendCheck = new TQCheckBox( i18n("Confirm &before send"), group );
glay->addMultiCellWidget( mConfirmSendCheck, 0, 0, 0, 1 );
- connect( mConfirmSendCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mConfirmSendCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// "send on check" combo:
mSendOnCheckCombo = new TQComboBox( false, group );
@@ -670,8 +670,8 @@ AccountsPageSendingTab::AccountsPageSendingTab( TQWidget * parent, const char *
<< i18n("On Manual Mail Checks")
<< i18n("On All Mail Checks") );
glay->addWidget( mSendOnCheckCombo, 1, 1 );
- connect( mSendOnCheckCombo, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mSendOnCheckCombo, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// "default send method" combo:
mSendMethodCombo = new TQComboBox( false, group );
@@ -679,8 +679,8 @@ AccountsPageSendingTab::AccountsPageSendingTab( TQWidget * parent, const char *
<< i18n("Send Now")
<< i18n("Send Later") );
glay->addWidget( mSendMethodCombo, 2, 1 );
- connect( mSendMethodCombo, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mSendMethodCombo, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// "message property" combo:
@@ -690,14 +690,14 @@ AccountsPageSendingTab::AccountsPageSendingTab( TQWidget * parent, const char *
<< i18n("Allow 8-bit")
<< i18n("MIME Compliant (Quoted Printable)") );
glay->addWidget( mMessagePropertyCombo, 3, 1 );
- connect( mMessagePropertyCombo, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mMessagePropertyCombo, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// "default domain" input field:
mDefaultDomainEdit = new KLineEdit( group );
glay->addMultiCellWidget( mDefaultDomainEdit, 4, 4, 1, 2 );
- connect( mDefaultDomainEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mDefaultDomainEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// labels:
TQLabel *l = new TQLabel( mSendOnCheckCombo, /*buddy*/
@@ -1082,10 +1082,10 @@ AccountsPageReceivingTab::AccountsPageReceivingTab( TQWidget * parent, const cha
mAccountList->addColumn( i18n("Folder") );
mAccountList->setAllColumnsShowFocus( true );
mAccountList->setSorting( -1 );
- connect( mAccountList, TQT_SIGNAL(selectionChanged()),
- this, TQT_SLOT(slotAccountSelected()) );
- connect( mAccountList, TQT_SIGNAL(doubleClicked( TQListViewItem *)),
- this, TQT_SLOT(slotModifySelectedAccount()) );
+ connect( mAccountList, TQ_SIGNAL(selectionChanged()),
+ this, TQ_SLOT(slotAccountSelected()) );
+ connect( mAccountList, TQ_SIGNAL(doubleClicked( TQListViewItem *)),
+ this, TQ_SLOT(slotModifySelectedAccount()) );
hlay->addWidget( mAccountList, 1 );
// a vbox layout for the buttons: zero stretch, spacing inherited from hlay
@@ -1094,31 +1094,31 @@ AccountsPageReceivingTab::AccountsPageReceivingTab( TQWidget * parent, const cha
// "add..." button: stretch 0
button = new TQPushButton( i18n("A&dd..."), this );
button->setAutoDefault( false );
- connect( button, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotAddAccount()) );
+ connect( button, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotAddAccount()) );
btn_vlay->addWidget( button );
// "modify..." button: stretch 0
mModifyAccountButton = new TQPushButton( i18n("&Modify..."), this );
mModifyAccountButton->setAutoDefault( false );
mModifyAccountButton->setEnabled( false ); // b/c no item is selected yet
- connect( mModifyAccountButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotModifySelectedAccount()) );
+ connect( mModifyAccountButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotModifySelectedAccount()) );
btn_vlay->addWidget( mModifyAccountButton );
// "remove..." button: stretch 0
mRemoveAccountButton = new TQPushButton( i18n("R&emove"), this );
mRemoveAccountButton->setAutoDefault( false );
mRemoveAccountButton->setEnabled( false ); // b/c no item is selected yet
- connect( mRemoveAccountButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotRemoveSelectedAccount()) );
+ connect( mRemoveAccountButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotRemoveSelectedAccount()) );
btn_vlay->addWidget( mRemoveAccountButton );
btn_vlay->addStretch( 1 ); // spacer
mCheckmailStartupCheck = new TQCheckBox( i18n("Chec&k mail on startup"), this );
vlay->addWidget( mCheckmailStartupCheck );
- connect( mCheckmailStartupCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mCheckmailStartupCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// "New Mail Notification" group box: stretch 0
group = new TQVGroupBox( i18n("New Mail Notification"), this );
@@ -1129,8 +1129,8 @@ AccountsPageReceivingTab::AccountsPageReceivingTab( TQWidget * parent, const cha
mBeepNewMailCheck = new TQCheckBox(i18n("&Beep"), group );
mBeepNewMailCheck->setSizePolicy( TQSizePolicy( TQSizePolicy::MinimumExpanding,
TQSizePolicy::Fixed ) );
- connect( mBeepNewMailCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mBeepNewMailCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// "Detailed new mail notification" check box
mVerboseNotificationCheck =
@@ -1142,15 +1142,15 @@ AccountsPageReceivingTab::AccountsPageReceivingTab( TQWidget * parent, const cha
"messages" ) );
TQWhatsThis::add( mVerboseNotificationCheck,
GlobalSettings::self()->verboseNewMailNotificationItem()->whatsThis() );
- connect( mVerboseNotificationCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mVerboseNotificationCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
// "Other Actions" button:
mOtherNewMailActionsButton = new TQPushButton( i18n("Other Actio&ns"), group );
mOtherNewMailActionsButton->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed,
TQSizePolicy::Fixed ) );
- connect( mOtherNewMailActionsButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotEditNotifications()) );
+ connect( mOtherNewMailActionsButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotEditNotifications()) );
}
AccountsPageReceivingTab::~AccountsPageReceivingTab()
@@ -1412,7 +1412,7 @@ void AccountsPage::ReceivingTab::doLoadOther() {
mBeepNewMailCheck->setChecked( general.readBoolEntry("beep-on-mail", false ) );
mCheckmailStartupCheck->setChecked( general.readBoolEntry("checkmail-startup", false) );
- TQTimer::singleShot( 0, this, TQT_SLOT( slotTweakAccountList() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotTweakAccountList() ) );
}
void AccountsPage::ReceivingTab::slotTweakAccountList()
@@ -1565,8 +1565,8 @@ AppearancePageFontsTab::AppearancePageFontsTab( TQWidget * parent, const char *
mCustomFontCheck = new TQCheckBox( i18n("&Use custom fonts"), this );
vlay->addWidget( mCustomFontCheck );
vlay->addWidget( new KSeparator( KSeparator::HLine, this ) );
- connect ( mCustomFontCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect ( mCustomFontCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// "font location" combo box and label:
hlay = new TQHBoxLayout( vlay ); // inherites spacing
@@ -1589,20 +1589,20 @@ AppearancePageFontsTab::AppearancePageFontsTab( TQWidget * parent, const char *
false, 4 );
mFontChooser->setEnabled( false ); // since !mCustomFontCheck->isChecked()
vlay->addWidget( mFontChooser );
- connect ( mFontChooser, TQT_SIGNAL( fontSelected( const TQFont& ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect ( mFontChooser, TQ_SIGNAL( fontSelected( const TQFont& ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// {en,dis}able widgets depending on the state of mCustomFontCheck:
- connect( mCustomFontCheck, TQT_SIGNAL(toggled(bool)),
- label, TQT_SLOT(setEnabled(bool)) );
- connect( mCustomFontCheck, TQT_SIGNAL(toggled(bool)),
- mFontLocationCombo, TQT_SLOT(setEnabled(bool)) );
- connect( mCustomFontCheck, TQT_SIGNAL(toggled(bool)),
- mFontChooser, TQT_SLOT(setEnabled(bool)) );
+ connect( mCustomFontCheck, TQ_SIGNAL(toggled(bool)),
+ label, TQ_SLOT(setEnabled(bool)) );
+ connect( mCustomFontCheck, TQ_SIGNAL(toggled(bool)),
+ mFontLocationCombo, TQ_SLOT(setEnabled(bool)) );
+ connect( mCustomFontCheck, TQ_SIGNAL(toggled(bool)),
+ mFontChooser, TQ_SLOT(setEnabled(bool)) );
// load the right font settings into mFontChooser:
- connect( mFontLocationCombo, TQT_SIGNAL(activated(int) ),
- this, TQT_SLOT(slotFontSelectorChanged(int)) );
+ connect( mFontLocationCombo, TQ_SIGNAL(activated(int) ),
+ this, TQ_SLOT(slotFontSelectorChanged(int)) );
}
@@ -1629,14 +1629,14 @@ void AppearancePage::FontsTab::slotFontSelectorChanged( int index )
mActiveFontIndex = index;
// Disonnect so the "Apply" button is not activated by the change
- disconnect ( mFontChooser, TQT_SIGNAL( fontSelected( const TQFont& ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ disconnect ( mFontChooser, TQ_SIGNAL( fontSelected( const TQFont& ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// Display the new setting:
mFontChooser->setFont( mFont[index], fontNames[index].onlyFixed );
- connect ( mFontChooser, TQT_SIGNAL( fontSelected( const TQFont& ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect ( mFontChooser, TQ_SIGNAL( fontSelected( const TQFont& ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// Disable Family and Size list if we have selected a quote font:
mFontChooser->enableColumn( TDEFontChooser::FamilyList|TDEFontChooser::SizeList,
@@ -1739,8 +1739,8 @@ AppearancePageColorsTab::AppearancePageColorsTab( TQWidget * parent, const char
vlay = new TQVBoxLayout( this, KDialog::marginHint(), KDialog::spacingHint() );
mCustomColorCheck = new TQCheckBox( i18n("&Use custom colors"), this );
vlay->addWidget( mCustomColorCheck );
- connect( mCustomColorCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mCustomColorCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// color list box:
mColorList = new ColorListBox( this );
@@ -1755,8 +1755,8 @@ AppearancePageColorsTab::AppearancePageColorsTab( TQWidget * parent, const char
new TQCheckBox( i18n("Recycle colors on deep &quoting"), this );
mRecycleColorCheck->setEnabled( false );
vlay->addWidget( mRecycleColorCheck );
- connect( mRecycleColorCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mRecycleColorCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// close to quota threshold
TQHBoxLayout *hbox = new TQHBoxLayout(vlay);
@@ -1764,25 +1764,25 @@ AppearancePageColorsTab::AppearancePageColorsTab( TQWidget * parent, const char
hbox->addWidget( l );
l->setEnabled( false );
mCloseToQuotaThreshold = new TQSpinBox( 0, 100, 1, this );
- connect( mCloseToQuotaThreshold, TQT_SIGNAL( valueChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mCloseToQuotaThreshold, TQ_SIGNAL( valueChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mCloseToQuotaThreshold->setEnabled( false );
mCloseToQuotaThreshold->setSuffix( i18n("%"));
hbox->addWidget( mCloseToQuotaThreshold );
hbox->addWidget( new TQWidget(this), 2 );
// {en,dir}able widgets depending on the state of mCustomColorCheck:
- connect( mCustomColorCheck, TQT_SIGNAL(toggled(bool)),
- mColorList, TQT_SLOT(setEnabled(bool)) );
- connect( mCustomColorCheck, TQT_SIGNAL(toggled(bool)),
- mRecycleColorCheck, TQT_SLOT(setEnabled(bool)) );
- connect( mCustomColorCheck, TQT_SIGNAL(toggled(bool)),
- l, TQT_SLOT(setEnabled(bool)) );
- connect( mCustomColorCheck, TQT_SIGNAL(toggled(bool)),
- mCloseToQuotaThreshold, TQT_SLOT(setEnabled(bool)) );
+ connect( mCustomColorCheck, TQ_SIGNAL(toggled(bool)),
+ mColorList, TQ_SLOT(setEnabled(bool)) );
+ connect( mCustomColorCheck, TQ_SIGNAL(toggled(bool)),
+ mRecycleColorCheck, TQ_SLOT(setEnabled(bool)) );
+ connect( mCustomColorCheck, TQ_SIGNAL(toggled(bool)),
+ l, TQ_SLOT(setEnabled(bool)) );
+ connect( mCustomColorCheck, TQ_SIGNAL(toggled(bool)),
+ mCloseToQuotaThreshold, TQ_SLOT(setEnabled(bool)) );
- connect( mCustomColorCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mCustomColorCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
}
void AppearancePage::ColorsTab::doLoadOther() {
@@ -1823,8 +1823,8 @@ void AppearancePage::ColorsTab::doLoadOther() {
mColorList->setColor( i,
reader.readColorEntry( colorNames[i].configName, &defaultColor[i] ) );
}
- connect( mColorList, TQT_SIGNAL( changed( ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mColorList, TQ_SIGNAL( changed( ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
}
void AppearancePage::ColorsTab::installProfile( TDEConfig * profile ) {
@@ -1911,30 +1911,30 @@ AppearancePageLayoutTab::AppearancePageLayoutTab( TQWidget * parent, const char
// "folder list" radio buttons:
populateButtonGroup( mFolderListGroup = new TQHButtonGroup( this ), folderListMode );
vlay->addWidget( mFolderListGroup );
- connect( mFolderListGroup, TQT_SIGNAL ( clicked( int ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mFolderListGroup, TQ_SIGNAL ( clicked( int ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
mFavoriteFolderViewCB = new TQCheckBox( i18n("Show favorite folder view"), this );
- connect( mFavoriteFolderViewCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotEmitChanged()) );
+ connect( mFavoriteFolderViewCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotEmitChanged()) );
vlay->addWidget( mFavoriteFolderViewCB );
// "show reader window" radio buttons:
populateButtonGroup( mReaderWindowModeGroup = new TQVButtonGroup( this ), readerWindowMode );
vlay->addWidget( mReaderWindowModeGroup );
- connect( mReaderWindowModeGroup, TQT_SIGNAL ( clicked( int ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mReaderWindowModeGroup, TQ_SIGNAL ( clicked( int ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
// "Show MIME Tree" radio buttons:
populateButtonGroup( mMIMETreeModeGroup = new TQVButtonGroup( this ), mimeTreeMode );
vlay->addWidget( mMIMETreeModeGroup );
- connect( mMIMETreeModeGroup, TQT_SIGNAL ( clicked( int ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mMIMETreeModeGroup, TQ_SIGNAL ( clicked( int ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
// "MIME Tree Location" radio buttons:
populateButtonGroup( mMIMETreeLocationGroup = new TQHButtonGroup( this ), mimeTreeLocation );
vlay->addWidget( mMIMETreeLocationGroup );
- connect( mMIMETreeLocationGroup, TQT_SIGNAL ( clicked( int ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mMIMETreeLocationGroup, TQ_SIGNAL ( clicked( int ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
vlay->addStretch( 10 ); // spacer
}
@@ -2015,14 +2015,14 @@ AppearancePageHeadersTab::AppearancePageHeadersTab( TQWidget * parent, const cha
mNestedMessagesCheck =
new TQCheckBox( i18n("&Threaded message list"), group );
- connect( mMessageSizeCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
- connect( mAttachmentCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
- connect( mCryptoIconsCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
- connect( mNestedMessagesCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mMessageSizeCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
+ connect( mAttachmentCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
+ connect( mCryptoIconsCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
+ connect( mNestedMessagesCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
vlay->addWidget( group );
@@ -2048,8 +2048,8 @@ AppearancePageHeadersTab::AppearancePageHeadersTab( TQWidget * parent, const cha
vlay->addWidget( mNestingPolicy );
- connect( mNestingPolicy, TQT_SIGNAL( clicked( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mNestingPolicy, TQ_SIGNAL( clicked( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// "Date Display" group:
mDateDisplay = new TQVButtonGroup( i18n("Date Display"), this );
@@ -2064,10 +2064,10 @@ AppearancePageHeadersTab::AppearancePageHeadersTab( TQWidget * parent, const cha
if ( dateDisplayConfig[i].dateDisplay == DateFormatter::Custom ) {
mCustomDateFormatEdit = new KLineEdit( mDateDisplay );
mCustomDateFormatEdit->setEnabled( false );
- connect( radio, TQT_SIGNAL(toggled(bool)),
- mCustomDateFormatEdit, TQT_SLOT(setEnabled(bool)) );
- connect( mCustomDateFormatEdit, TQT_SIGNAL(textChanged(const TQString&)),
- this, TQT_SLOT(slotEmitChanged(void)) );
+ connect( radio, TQ_SIGNAL(toggled(bool)),
+ mCustomDateFormatEdit, TQ_SLOT(setEnabled(bool)) );
+ connect( mCustomDateFormatEdit, TQ_SIGNAL(textChanged(const TQString&)),
+ this, TQ_SLOT(slotEmitChanged(void)) );
TQString customDateWhatsThis =
i18n("<qt><p><strong>These expressions may be used for the date:"
"</strong></p>"
@@ -2106,8 +2106,8 @@ AppearancePageHeadersTab::AppearancePageHeadersTab( TQWidget * parent, const cha
} // end for loop populating mDateDisplay
vlay->addWidget( mDateDisplay );
- connect( mDateDisplay, TQT_SIGNAL( clicked( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mDateDisplay, TQ_SIGNAL( clicked( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
vlay->addStretch( 10 ); // spacer
@@ -2261,40 +2261,40 @@ AppearancePageReaderTab::AppearancePageReaderTab( TQWidget * parent,
TQToolTip::add( mCloseAfterReplyOrForwardCheck,
i18n( "Close the standalone message window after replying or forwarding the message" ) );
vlay->addWidget( mCloseAfterReplyOrForwardCheck );
- connect( mCloseAfterReplyOrForwardCheck, TQT_SIGNAL ( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mCloseAfterReplyOrForwardCheck, TQ_SIGNAL ( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
// "show colorbar" check box:
populateCheckBox( mShowColorbarCheck = new TQCheckBox( this ), showColorbarMode );
vlay->addWidget( mShowColorbarCheck );
- connect( mShowColorbarCheck, TQT_SIGNAL ( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mShowColorbarCheck, TQ_SIGNAL ( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
// "show spam status" check box;
populateCheckBox( mShowSpamStatusCheck = new TQCheckBox( this ), showSpamStatusMode );
vlay->addWidget( mShowSpamStatusCheck );
- connect( mShowSpamStatusCheck, TQT_SIGNAL ( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mShowSpamStatusCheck, TQ_SIGNAL ( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
// "replace smileys by emoticons" check box;
populateCheckBox( mShowEmoticonsCheck = new TQCheckBox( this ), showEmoticons );
vlay->addWidget( mShowEmoticonsCheck );
- connect( mShowEmoticonsCheck, TQT_SIGNAL ( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mShowEmoticonsCheck, TQ_SIGNAL ( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
// "Use smaller font for quoted text" check box
mShrinkQuotesCheck = new TQCheckBox( i18n( shrinkQuotes.desc ), this,
"kcfg_ShrinkQuotes" );
vlay->addWidget( mShrinkQuotesCheck );
- connect( mShrinkQuotesCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mShrinkQuotesCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
// "Show expand/collaps quote marks" check box;
TQHBoxLayout *hlay= new TQHBoxLayout( vlay ); // inherits spacing
populateCheckBox( mShowExpandQuotesMark= new TQCheckBox( this ), showExpandQuotesMark);
hlay->addWidget( mShowExpandQuotesMark);
- connect( mShowExpandQuotesMark, TQT_SIGNAL ( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mShowExpandQuotesMark, TQ_SIGNAL ( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
hlay->addStretch( 1 );
mCollapseQuoteLevelSpin = new KIntSpinBox( 0/*min*/,10/*max*/,1/*step*/,
@@ -2306,20 +2306,20 @@ AppearancePageReaderTab::AppearancePageReaderTab( TQWidget * parent,
hlay->addWidget( label );
mCollapseQuoteLevelSpin->setEnabled( false ); //since !mShowExpandQuotesMark->isCheckec()
- connect( mCollapseQuoteLevelSpin, TQT_SIGNAL( valueChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mCollapseQuoteLevelSpin, TQ_SIGNAL( valueChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
hlay->addWidget( mCollapseQuoteLevelSpin);
- connect( mShowExpandQuotesMark, TQT_SIGNAL( toggled( bool ) ),
- mCollapseQuoteLevelSpin, TQT_SLOT( setEnabled( bool ) ) );
+ connect( mShowExpandQuotesMark, TQ_SIGNAL( toggled( bool ) ),
+ mCollapseQuoteLevelSpin, TQ_SLOT( setEnabled( bool ) ) );
// Fallback Character Encoding
hlay = new TQHBoxLayout( vlay ); // inherits spacing
mCharsetCombo = new TQComboBox( this );
mCharsetCombo->insertStringList( KMMsgBase::supportedEncodings( false ) );
- connect( mCharsetCombo, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mCharsetCombo, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
TQString fallbackCharsetWhatsThis =
i18n( GlobalSettings::self()->fallbackCharacterEncodingItem()->whatsThis().utf8() );
@@ -2339,8 +2339,8 @@ AppearancePageReaderTab::AppearancePageReaderTab( TQWidget * parent,
mOverrideCharsetCombo->insertStringList( encodings );
mOverrideCharsetCombo->setCurrentItem(0);
- connect( mOverrideCharsetCombo, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mOverrideCharsetCombo, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
TQString overrideCharsetWhatsThis =
i18n( GlobalSettings::self()->overrideCharacterEncodingItem()->whatsThis().utf8() );
@@ -2354,8 +2354,8 @@ AppearancePageReaderTab::AppearancePageReaderTab( TQWidget * parent,
populateCheckBox( mShowCurrentTimeCheck = new TQCheckBox( this ), showCurrentTime );
vlay->addWidget( mShowCurrentTimeCheck );
- connect( mShowCurrentTimeCheck, TQT_SIGNAL ( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mShowCurrentTimeCheck, TQ_SIGNAL ( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
vlay->addStretch( 100 ); // spacer
}
@@ -2485,17 +2485,17 @@ AppearancePageSystemTrayTab::AppearancePageSystemTrayTab( TQWidget * parent,
// "Enable system tray applet" check box
mSystemTrayCheck = new TQCheckBox( i18n("Enable system tray icon"), this );
vlay->addWidget( mSystemTrayCheck );
- connect( mSystemTrayCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mSystemTrayCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// System tray modes
mSystemTrayGroup = new TQVButtonGroup( i18n("System Tray Mode"), this );
mSystemTrayGroup->layout()->setSpacing( KDialog::spacingHint() );
vlay->addWidget( mSystemTrayGroup );
- connect( mSystemTrayGroup, TQT_SIGNAL( clicked( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
- connect( mSystemTrayCheck, TQT_SIGNAL( toggled( bool ) ),
- mSystemTrayGroup, TQT_SLOT( setEnabled( bool ) ) );
+ connect( mSystemTrayGroup, TQ_SIGNAL( clicked( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
+ connect( mSystemTrayCheck, TQ_SIGNAL( toggled( bool ) ),
+ mSystemTrayGroup, TQ_SLOT( setEnabled( bool ) ) );
mSystemTrayGroup->insert( new TQRadioButton( i18n("Always show KMail in system tray"), mSystemTrayGroup ),
GlobalSettings::EnumSystemTrayPolicy::ShowAlways );
@@ -2617,14 +2617,14 @@ ComposerPageGeneralTab::ComposerPageGeneralTab( TQWidget * parent, const char *
GlobalSettings::self()->autoTextSignatureItem()->label(),
this );
vlay->addWidget( mAutoAppSignFileCheck );
- connect( mAutoAppSignFileCheck, TQT_SIGNAL( stateChanged(int) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mAutoAppSignFileCheck, TQ_SIGNAL( stateChanged(int) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mTopQuoteCheck =
new TQCheckBox( GlobalSettings::self()->prependSignatureItem()->label(), this );
vlay->addWidget( mTopQuoteCheck);
- connect( mTopQuoteCheck, TQT_SIGNAL( stateChanged(int) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mTopQuoteCheck, TQ_SIGNAL( stateChanged(int) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mSmartQuoteCheck = new TQCheckBox(
GlobalSettings::self()->smartQuoteItem()->label(),
@@ -2634,8 +2634,8 @@ ComposerPageGeneralTab::ComposerPageGeneralTab( TQWidget * parent, const char *
"even when the line was created by adding an additional linebreak while\n"
"word-wrapping the text." ) );
vlay->addWidget( mSmartQuoteCheck );
- connect( mSmartQuoteCheck, TQT_SIGNAL( stateChanged(int) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mSmartQuoteCheck, TQ_SIGNAL( stateChanged(int) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mQuoteSelectionOnlyCheck = new TQCheckBox( GlobalSettings::self()->quoteSelectionOnlyItem()->label(),
this, "kcfg_QuoteSelectionOnly" );
@@ -2643,28 +2643,28 @@ ComposerPageGeneralTab::ComposerPageGeneralTab( TQWidget * parent, const char *
i18n( "When replying, only quote the selected text instead of the complete message "
"when there is text selected in the message window." ) );
vlay->addWidget( mQuoteSelectionOnlyCheck );
- connect( mQuoteSelectionOnlyCheck, TQT_SIGNAL( stateChanged(int) ),
- this, TQT_SLOT( slotEmitChanged(void) ) );
+ connect( mQuoteSelectionOnlyCheck, TQ_SIGNAL( stateChanged(int) ),
+ this, TQ_SLOT( slotEmitChanged(void) ) );
mStripSignatureCheck = new TQCheckBox( GlobalSettings::self()->stripSignatureItem()->label(),
this, "kcfg_StripSignature" );
vlay->addWidget( mStripSignatureCheck );
- connect( mStripSignatureCheck, TQT_SIGNAL( stateChanged(int) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mStripSignatureCheck, TQ_SIGNAL( stateChanged(int) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mAutoRequestMDNCheck = new TQCheckBox(
GlobalSettings::self()->requestMDNItem()->label(),
this, "kcfg_RequestMDN" );
vlay->addWidget( mAutoRequestMDNCheck );
- connect( mAutoRequestMDNCheck, TQT_SIGNAL( stateChanged(int) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mAutoRequestMDNCheck, TQ_SIGNAL( stateChanged(int) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mShowRecentAddressesInComposer = new TQCheckBox(
GlobalSettings::self()->showRecentAddressesInComposerItem()->label(),
this, "kcfg_ShowRecentAddressesInComposer" );
vlay->addWidget( mShowRecentAddressesInComposer );
- connect( mShowRecentAddressesInComposer, TQT_SIGNAL( stateChanged(int) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mShowRecentAddressesInComposer, TQ_SIGNAL( stateChanged(int) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// a checkbox for "word wrap" and a spinbox for the column in
// which to wrap:
@@ -2673,20 +2673,20 @@ ComposerPageGeneralTab::ComposerPageGeneralTab( TQWidget * parent, const char *
GlobalSettings::self()->wordWrapItem()->label(),
this, "kcfg_WordWrap" );
hlay->addWidget( mWordWrapCheck );
- connect( mWordWrapCheck, TQT_SIGNAL( stateChanged(int) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mWordWrapCheck, TQ_SIGNAL( stateChanged(int) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mWrapColumnSpin = new KIntSpinBox( 30/*min*/, 78/*max*/, 1/*step*/,
78/*init*/, 10 /*base*/, this, "kcfg_LineWrapWidth" );
mWrapColumnSpin->setEnabled( false ); // since !mWordWrapCheck->isChecked()
- connect( mWrapColumnSpin, TQT_SIGNAL( valueChanged(int) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mWrapColumnSpin, TQ_SIGNAL( valueChanged(int) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
hlay->addWidget( mWrapColumnSpin );
hlay->addStretch( 1 );
// only enable the spinbox if the checkbox is checked:
- connect( mWordWrapCheck, TQT_SIGNAL(toggled(bool)),
- mWrapColumnSpin, TQT_SLOT(setEnabled(bool)) );
+ connect( mWordWrapCheck, TQ_SIGNAL(toggled(bool)),
+ mWrapColumnSpin, TQ_SLOT(setEnabled(bool)) );
// a checkbox for "too many recipient warning" and a spinbox for the recipient threshold
hlay = new TQHBoxLayout( vlay ); // inherits spacing
@@ -2694,8 +2694,8 @@ ComposerPageGeneralTab::ComposerPageGeneralTab( TQWidget * parent, const char *
GlobalSettings::self()->tooManyRecipientsItem()->label(),
this, "kcfg_TooManyRecipients" );
hlay->addWidget( mRecipientCheck );
- connect( mRecipientCheck, TQT_SIGNAL( stateChanged(int) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mRecipientCheck, TQ_SIGNAL( stateChanged(int) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
TQString recipientCheckWhatsthis =
i18n( GlobalSettings::self()->tooManyRecipientsItem()->whatsThis().utf8() );
@@ -2706,8 +2706,8 @@ ComposerPageGeneralTab::ComposerPageGeneralTab( TQWidget * parent, const char *
mRecipientSpin = new KIntSpinBox( 1/*min*/, 100/*max*/, 1/*step*/,
5/*init*/, 10 /*base*/, this, "kcfg_RecipientThreshold" );
mRecipientSpin->setEnabled( false );
- connect( mRecipientSpin, TQT_SIGNAL( valueChanged(int) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mRecipientSpin, TQ_SIGNAL( valueChanged(int) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
TQString recipientWhatsthis =
i18n( GlobalSettings::self()->recipientThresholdItem()->whatsThis().utf8() );
@@ -2719,8 +2719,8 @@ ComposerPageGeneralTab::ComposerPageGeneralTab( TQWidget * parent, const char *
hlay->addWidget( mRecipientSpin );
hlay->addStretch( 1 );
// only enable the spinbox if the checkbox is checked:
- connect( mRecipientCheck, TQT_SIGNAL(toggled(bool)),
- mRecipientSpin, TQT_SLOT(setEnabled(bool)) );
+ connect( mRecipientCheck, TQ_SIGNAL(toggled(bool)),
+ mRecipientSpin, TQ_SLOT(setEnabled(bool)) );
hlay = new TQHBoxLayout( vlay ); // inherits spacing
@@ -2732,8 +2732,8 @@ ComposerPageGeneralTab::ComposerPageGeneralTab( TQWidget * parent, const char *
mAutoSave->setSpecialValueText( i18n("No autosave") );
mAutoSave->setSuffix( i18n(" min") );
hlay->addStretch( 1 );
- connect( mAutoSave, TQT_SIGNAL( valueChanged(int) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mAutoSave, TQ_SIGNAL( valueChanged(int) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
hlay = new TQHBoxLayout( vlay ); // inherits spacing
mForwardTypeCombo = new KComboBox( false, this );
@@ -2746,21 +2746,21 @@ ComposerPageGeneralTab::ComposerPageGeneralTab( TQWidget * parent, const char *
hlay->addWidget( label );
hlay->addWidget( mForwardTypeCombo );
hlay->addStretch( 1 );
- connect( mForwardTypeCombo, TQT_SIGNAL(activated(int)),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mForwardTypeCombo, TQ_SIGNAL(activated(int)),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
hlay = new TQHBoxLayout( vlay ); // inherits spacing
TQPushButton *completionOrderBtn = new TQPushButton( i18n( "Configure Completion Order" ), this );
- connect( completionOrderBtn, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotConfigureCompletionOrder() ) );
+ connect( completionOrderBtn, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotConfigureCompletionOrder() ) );
hlay->addWidget( completionOrderBtn );
hlay->addItem( new TQSpacerItem(0, 0) );
// recent addresses
hlay = new TQHBoxLayout( vlay ); // inherits spacing
TQPushButton *recentAddressesBtn = new TQPushButton( i18n( "Edit Recent Addresses..." ), this );
- connect( recentAddressesBtn, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotConfigureRecentAddresses() ) );
+ connect( recentAddressesBtn, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotConfigureRecentAddresses() ) );
hlay->addWidget( recentAddressesBtn );
hlay->addItem( new TQSpacerItem(0, 0) );
@@ -2771,17 +2771,17 @@ ComposerPageGeneralTab::ComposerPageGeneralTab( TQWidget * parent, const char *
mExternalEditorCheck = new TQCheckBox(
GlobalSettings::self()->useExternalEditorItem()->label(),
group, "kcfg_UseExternalEditor" );
- connect( mExternalEditorCheck, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mExternalEditorCheck, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
hbox = new TQHBox( group );
label = new TQLabel( GlobalSettings::self()->externalEditorItem()->label(),
hbox );
mEditorRequester = new KURLRequester( hbox, "kcfg_ExternalEditor" );
- connect( mEditorRequester, TQT_SIGNAL( urlSelected(const TQString&) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
- connect( mEditorRequester, TQT_SIGNAL( textChanged(const TQString&) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mEditorRequester, TQ_SIGNAL( urlSelected(const TQString&) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
+ connect( mEditorRequester, TQ_SIGNAL( textChanged(const TQString&) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
hbox->setStretchFactor( mEditorRequester, 1 );
label->setBuddy( mEditorRequester );
@@ -2791,16 +2791,16 @@ ComposerPageGeneralTab::ComposerPageGeneralTab( TQWidget * parent, const char *
"application/x-shellscript "
"application/x-desktop" );
mEditorRequester->setEnabled( false ); // !mExternalEditorCheck->isChecked()
- connect( mExternalEditorCheck, TQT_SIGNAL(toggled(bool)),
- label, TQT_SLOT(setEnabled(bool)) );
- connect( mExternalEditorCheck, TQT_SIGNAL(toggled(bool)),
- mEditorRequester, TQT_SLOT(setEnabled(bool)) );
+ connect( mExternalEditorCheck, TQ_SIGNAL(toggled(bool)),
+ label, TQ_SLOT(setEnabled(bool)) );
+ connect( mExternalEditorCheck, TQ_SIGNAL(toggled(bool)),
+ mEditorRequester, TQ_SLOT(setEnabled(bool)) );
label = new TQLabel( i18n("<b>%f</b> will be replaced with the "
"filename to edit."), group );
label->setEnabled( false ); // see above
- connect( mExternalEditorCheck, TQT_SIGNAL(toggled(bool)),
- label, TQT_SLOT(setEnabled(bool)) );
+ connect( mExternalEditorCheck, TQ_SIGNAL(toggled(bool)),
+ label, TQ_SLOT(setEnabled(bool)) );
vlay->addWidget( group );
vlay->addStretch( 100 );
@@ -2942,8 +2942,8 @@ ComposerPagePhrasesTab::ComposerPagePhrasesTab( TQWidget * parent, const char *
glay->addWidget( new TQLabel( mPhraseLanguageCombo,
i18n("Lang&uage:"), this ), 1, 0 );
glay->addMultiCellWidget( mPhraseLanguageCombo, 1, 1, 1, 2 );
- connect( mPhraseLanguageCombo, TQT_SIGNAL(activated(const TQString&)),
- this, TQT_SLOT(slotLanguageChanged(const TQString&)) );
+ connect( mPhraseLanguageCombo, TQ_SIGNAL(activated(const TQString&)),
+ this, TQ_SLOT(slotLanguageChanged(const TQString&)) );
// row 2: "add..." and "remove" push buttons:
button = new TQPushButton( i18n("A&dd..."), this );
@@ -2953,39 +2953,39 @@ ComposerPagePhrasesTab::ComposerPagePhrasesTab( TQWidget * parent, const char *
mRemoveButton->setAutoDefault( false );
mRemoveButton->setEnabled( false ); // combo doesn't contain anything...
glay->addWidget( mRemoveButton, 2, 2 );
- connect( button, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotNewLanguage()) );
- connect( mRemoveButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotRemoveLanguage()) );
+ connect( button, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotNewLanguage()) );
+ connect( mRemoveButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotRemoveLanguage()) );
// row 3: "reply to sender" line edit and label:
mPhraseReplyEdit = new KLineEdit( this );
- connect( mPhraseReplyEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mPhraseReplyEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
glay->addWidget( new TQLabel( mPhraseReplyEdit,
i18n("Reply to se&nder:"), this ), 3, 0 );
glay->addMultiCellWidget( mPhraseReplyEdit, 3, 3, 1, 2 ); // cols 1..2
// row 4: "reply to all" line edit and label:
mPhraseReplyAllEdit = new KLineEdit( this );
- connect( mPhraseReplyAllEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mPhraseReplyAllEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
glay->addWidget( new TQLabel( mPhraseReplyAllEdit,
i18n("Repl&y to all:"), this ), 4, 0 );
glay->addMultiCellWidget( mPhraseReplyAllEdit, 4, 4, 1, 2 ); // cols 1..2
// row 5: "forward" line edit and label:
mPhraseForwardEdit = new KLineEdit( this );
- connect( mPhraseForwardEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mPhraseForwardEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
glay->addWidget( new TQLabel( mPhraseForwardEdit,
i18n("&Forward:"), this ), 5, 0 );
glay->addMultiCellWidget( mPhraseForwardEdit, 5, 5, 1, 2 ); // cols 1..2
// row 6: "quote indicator" line edit and label:
mPhraseIndentPrefixEdit = new KLineEdit( this );
- connect( mPhraseIndentPrefixEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mPhraseIndentPrefixEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
glay->addWidget( new TQLabel( mPhraseIndentPrefixEdit,
i18n("&Quote indicator:"), this ), 6, 0 );
glay->addMultiCellWidget( mPhraseIndentPrefixEdit, 6, 6, 1, 2 );
@@ -3133,8 +3133,8 @@ ComposerPageTemplatesTab::ComposerPageTemplatesTab( TQWidget * parent, const cha
mWidget = new TemplatesConfiguration( this );
vlay->addWidget( mWidget );
- connect( mWidget, TQT_SIGNAL( changed() ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mWidget, TQ_SIGNAL( changed() ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
}
void ComposerPage::TemplatesTab::doLoadFromGlobalSettings() {
@@ -3157,8 +3157,8 @@ ComposerPageCustomTemplatesTab::ComposerPageCustomTemplatesTab( TQWidget * paren
mWidget = new CustomTemplates( this );
vlay->addWidget( mWidget );
- connect( mWidget, TQT_SIGNAL( changed() ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mWidget, TQ_SIGNAL( changed() ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
}
void ComposerPage::CustomTemplatesTab::doLoadFromGlobalSettings() {
@@ -3200,15 +3200,15 @@ ComposerPageSubjectTab::ComposerPageSubjectTab( TQWidget * parent, const char *
i18n("A&dd..."), i18n("Re&move"),
i18n("Mod&ify..."),
i18n("Enter new reply prefix:") );
- connect( mReplyListEditor, TQT_SIGNAL( changed( void ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mReplyListEditor, TQ_SIGNAL( changed( void ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// row 2: "replace [...]" check box:
mReplaceReplyPrefixCheck = new TQCheckBox(
GlobalSettings::self()->replaceReplyPrefixItem()->label(),
group, "kcfg_ReplaceReplyPrefix" );
- connect( mReplaceReplyPrefixCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mReplaceReplyPrefixCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
vlay->addWidget( group );
@@ -3228,15 +3228,15 @@ ComposerPageSubjectTab::ComposerPageSubjectTab( TQWidget * parent, const char *
i18n("Remo&ve"),
i18n("Modify..."),
i18n("Enter new forward prefix:") );
- connect( mForwardListEditor, TQT_SIGNAL( changed( void ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mForwardListEditor, TQ_SIGNAL( changed( void ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// row 3: "replace [...]" check box:
mReplaceForwardPrefixCheck = new TQCheckBox(
GlobalSettings::self()->replaceForwardPrefixItem()->label(),
group, "kcfg_ReplaceForwardPrefix" );
- connect( mReplaceForwardPrefixCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mReplaceForwardPrefixCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
vlay->addWidget( group );
}
@@ -3276,20 +3276,20 @@ ComposerPageCharsetTab::ComposerPageCharsetTab( TQWidget * parent, const char *
new SimpleStringListEditor( this, 0, SimpleStringListEditor::All,
i18n("A&dd..."), i18n("Remo&ve"),
i18n("&Modify..."), i18n("Enter charset:") );
- connect( mCharsetListEditor, TQT_SIGNAL( changed( void ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mCharsetListEditor, TQ_SIGNAL( changed( void ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
vlay->addWidget( mCharsetListEditor, 1 );
mKeepReplyCharsetCheck = new TQCheckBox( i18n("&Keep original charset when "
"replying or forwarding (if "
"possible)"), this );
- connect( mKeepReplyCharsetCheck, TQT_SIGNAL ( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mKeepReplyCharsetCheck, TQ_SIGNAL ( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
vlay->addWidget( mKeepReplyCharsetCheck );
- connect( mCharsetListEditor, TQT_SIGNAL(aboutToAdd(TQString&)),
- this, TQT_SLOT(slotVerifyCharset(TQString&)) );
+ connect( mCharsetListEditor, TQ_SIGNAL(aboutToAdd(TQString&)),
+ this, TQ_SLOT(slotVerifyCharset(TQString&)) );
}
void ComposerPage::CharsetTab::slotVerifyCharset( TQString & charset ) {
@@ -3367,8 +3367,8 @@ ComposerPageHeadersTab::ComposerPageHeadersTab( TQWidget * parent, const char *
// "Use custom Message-Id suffix" checkbox:
mCreateOwnMessageIdCheck =
new TQCheckBox( i18n("&Use custom message-id suffix"), this );
- connect( mCreateOwnMessageIdCheck, TQT_SIGNAL ( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mCreateOwnMessageIdCheck, TQ_SIGNAL ( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
vlay->addWidget( mCreateOwnMessageIdCheck );
// "Message-Id suffix" line edit and label:
@@ -3376,7 +3376,7 @@ ComposerPageHeadersTab::ComposerPageHeadersTab( TQWidget * parent, const char *
mMessageIdSuffixEdit = new KLineEdit( this );
// only ASCII letters, digits, plus, minus and dots are allowed
mMessageIdSuffixValidator =
- new TQRegExpValidator( TQRegExp( "[a-zA-Z0-9+-]+(?:\\.[a-zA-Z0-9+-]+)*" ), TQT_TQOBJECT(this) );
+ new TQRegExpValidator( TQRegExp( "[a-zA-Z0-9+-]+(?:\\.[a-zA-Z0-9+-]+)*" ), this );
mMessageIdSuffixEdit->setValidator( mMessageIdSuffixValidator );
label = new TQLabel( mMessageIdSuffixEdit,
i18n("Custom message-&id suffix:"), this );
@@ -3384,12 +3384,12 @@ ComposerPageHeadersTab::ComposerPageHeadersTab( TQWidget * parent, const char *
mMessageIdSuffixEdit->setEnabled( false );
hlay->addWidget( label );
hlay->addWidget( mMessageIdSuffixEdit, 1 );
- connect( mCreateOwnMessageIdCheck, TQT_SIGNAL(toggled(bool) ),
- label, TQT_SLOT(setEnabled(bool)) );
- connect( mCreateOwnMessageIdCheck, TQT_SIGNAL(toggled(bool) ),
- mMessageIdSuffixEdit, TQT_SLOT(setEnabled(bool)) );
- connect( mMessageIdSuffixEdit, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mCreateOwnMessageIdCheck, TQ_SIGNAL(toggled(bool) ),
+ label, TQ_SLOT(setEnabled(bool)) );
+ connect( mCreateOwnMessageIdCheck, TQ_SIGNAL(toggled(bool) ),
+ mMessageIdSuffixEdit, TQ_SLOT(setEnabled(bool)) );
+ connect( mMessageIdSuffixEdit, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// horizontal rule and "custom header fields" label:
vlay->addWidget( new KSeparator( KSeparator::HLine, this ) );
@@ -3404,18 +3404,18 @@ ComposerPageHeadersTab::ComposerPageHeadersTab( TQWidget * parent, const char *
mTagList->addColumn( i18n("Value") );
mTagList->setAllColumnsShowFocus( true );
mTagList->setSorting( -1 );
- connect( mTagList, TQT_SIGNAL(selectionChanged()),
- this, TQT_SLOT(slotMimeHeaderSelectionChanged()) );
+ connect( mTagList, TQ_SIGNAL(selectionChanged()),
+ this, TQ_SLOT(slotMimeHeaderSelectionChanged()) );
glay->addMultiCellWidget( mTagList, 0, 2, 0, 1 );
// "new" and "remove" buttons:
button = new TQPushButton( i18n("Ne&w"), this );
- connect( button, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotNewMimeHeader()) );
+ connect( button, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotNewMimeHeader()) );
button->setAutoDefault( false );
glay->addWidget( button, 0, 2 );
mRemoveHeaderButton = new TQPushButton( i18n("Re&move"), this );
- connect( mRemoveHeaderButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotRemoveMimeHeader()) );
+ connect( mRemoveHeaderButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotRemoveMimeHeader()) );
button->setAutoDefault( false );
glay->addWidget( mRemoveHeaderButton, 1, 2 );
@@ -3426,8 +3426,8 @@ ComposerPageHeadersTab::ComposerPageHeadersTab( TQWidget * parent, const char *
mTagNameLabel->setEnabled( false );
glay->addWidget( mTagNameLabel, 3, 0 );
glay->addWidget( mTagNameEdit, 3, 1 );
- connect( mTagNameEdit, TQT_SIGNAL(textChanged(const TQString&)),
- this, TQT_SLOT(slotMimeHeaderNameChanged(const TQString&)) );
+ connect( mTagNameEdit, TQ_SIGNAL(textChanged(const TQString&)),
+ this, TQ_SLOT(slotMimeHeaderNameChanged(const TQString&)) );
mTagValueEdit = new KLineEdit( this );
mTagValueEdit->setEnabled( false );
@@ -3435,8 +3435,8 @@ ComposerPageHeadersTab::ComposerPageHeadersTab( TQWidget * parent, const char *
mTagValueLabel->setEnabled( false );
glay->addWidget( mTagValueLabel, 4, 0 );
glay->addWidget( mTagValueEdit, 4, 1 );
- connect( mTagValueEdit, TQT_SIGNAL(textChanged(const TQString&)),
- this, TQT_SLOT(slotMimeHeaderValueChanged(const TQString&)) );
+ connect( mTagValueEdit, TQ_SIGNAL(textChanged(const TQString&)),
+ this, TQ_SLOT(slotMimeHeaderValueChanged(const TQString&)) );
}
void ComposerPage::HeadersTab::slotMimeHeaderSelectionChanged()
@@ -3583,10 +3583,10 @@ ComposerPageAttachmentsTab::ComposerPageAttachmentsTab( TQWidget * parent,
TQToolTip::add( mOutlookCompatibleCheck, i18n(
"Turn this option on to make Outlook(tm) understand attachment names "
"containing non-English characters" ) );
- connect( mOutlookCompatibleCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
- connect( mOutlookCompatibleCheck, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotOutlookCompatibleClicked() ) );
+ connect( mOutlookCompatibleCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
+ connect( mOutlookCompatibleCheck, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotOutlookCompatibleClicked() ) );
vlay->addWidget( mOutlookCompatibleCheck );
vlay->addSpacing( 5 );
@@ -3594,8 +3594,8 @@ ComposerPageAttachmentsTab::ComposerPageAttachmentsTab( TQWidget * parent,
mMissingAttachmentDetectionCheck =
new TQCheckBox( i18n("E&nable detection of missing attachments"), this );
mMissingAttachmentDetectionCheck->setChecked( true );
- connect( mMissingAttachmentDetectionCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mMissingAttachmentDetectionCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
vlay->addWidget( mMissingAttachmentDetectionCheck );
// "Attachment key words" label and string list editor
@@ -3611,14 +3611,14 @@ ComposerPageAttachmentsTab::ComposerPageAttachmentsTab( TQWidget * parent,
i18n("A&dd..."), i18n("Re&move"),
i18n("Mod&ify..."),
i18n("Enter new key word:") );
- connect( mAttachWordsListEditor, TQT_SIGNAL( changed( void ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mAttachWordsListEditor, TQ_SIGNAL( changed( void ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
vlay->addWidget( mAttachWordsListEditor );
- connect( mMissingAttachmentDetectionCheck, TQT_SIGNAL(toggled(bool) ),
- label, TQT_SLOT(setEnabled(bool)) );
- connect( mMissingAttachmentDetectionCheck, TQT_SIGNAL(toggled(bool) ),
- mAttachWordsListEditor, TQT_SLOT(setEnabled(bool)) );
+ connect( mMissingAttachmentDetectionCheck, TQ_SIGNAL(toggled(bool) ),
+ label, TQ_SLOT(setEnabled(bool)) );
+ connect( mMissingAttachmentDetectionCheck, TQ_SIGNAL(toggled(bool) ),
+ mAttachWordsListEditor, TQ_SLOT(setEnabled(bool)) );
}
void ComposerPage::AttachmentsTab::doLoadFromGlobalSettings() {
@@ -3770,7 +3770,7 @@ SecurityPageGeneralTab::SecurityPageGeneralTab( TQWidget * parent, const char *
"receipt</b>. The message author requests a disposition "
"notification to be sent and the receiver's mail program "
"generates a reply from which the author can learn what "
- "happened to his message. Common disposition types include "
+ "happened to their message. Common disposition types include "
"<b>displayed</b> (i.e. read), <b>deleted</b> and <b>dispatched</b> "
"(e.g. forwarded).</p>"
"<p>The following options are available to control KMail's "
@@ -3785,7 +3785,7 @@ SecurityPageGeneralTab::SecurityPageGeneralTab( TQWidget * parent, const char *
"<li><em>Deny</em>: Always sends a <b>denied</b> notification. This "
"is only <em>slightly</em> better than always sending MDNs. "
"The author will still know that the messages has been acted "
- "upon, he just cannot tell whether it was deleted or read etc.</li>"
+ "upon, they just cannot tell whether it was deleted or read etc.</li>"
"<li><em>Always send</em>: Always sends the requested "
"disposition notification. That means that the author of the "
"message gets to know when the message was acted upon and, "
@@ -3802,13 +3802,13 @@ SecurityPageGeneralTab::SecurityPageGeneralTab( TQWidget * parent, const char *
mHtmlMailCheck = new TQCheckBox( i18n("Prefer H&TML to plain text"), group );
TQWhatsThis::add( mHtmlMailCheck, htmlWhatsThis );
- connect( mHtmlMailCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mHtmlMailCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mExternalReferences = new TQCheckBox( i18n("Allow messages to load e&xternal "
"references from the Internet" ), group );
TQWhatsThis::add( mExternalReferences, externalWhatsThis );
- connect( mExternalReferences, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mExternalReferences, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
label = new KActiveLabel( i18n("<b>WARNING:</b> Allowing HTML in email may "
"increase the risk that your system will be "
"compromised by present and anticipated security "
@@ -3824,7 +3824,7 @@ SecurityPageGeneralTab::SecurityPageGeneralTab( TQWidget * parent, const char *
group = new TQVGroupBox( i18n("Encrypted Messages"), this );
group->layout()->setSpacing( KDialog::spacingHint() );
mAlwaysDecrypt = new TQCheckBox( i18n( "Attempt decryption of encrypted messages when viewing" ), group );
- connect( mAlwaysDecrypt, TQT_SIGNAL(stateChanged(int)), this, TQT_SLOT(slotEmitChanged()) );
+ connect( mAlwaysDecrypt, TQ_SIGNAL(stateChanged(int)), this, TQ_SLOT(slotEmitChanged()) );
vlay->addWidget( group );
// "Message Disposition Notification" groupbox:
@@ -3835,8 +3835,8 @@ SecurityPageGeneralTab::SecurityPageGeneralTab( TQWidget * parent, const char *
// "ignore", "ask", "deny", "always send" radiobutton line:
mMDNGroup = new TQButtonGroup( group );
mMDNGroup->hide();
- connect( mMDNGroup, TQT_SIGNAL( clicked( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mMDNGroup, TQ_SIGNAL( clicked( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
hbox = new TQHBox( group );
hbox->setSpacing( KDialog::spacingHint() );
@@ -3863,8 +3863,8 @@ SecurityPageGeneralTab::SecurityPageGeneralTab( TQWidget * parent, const char *
// "Original Message quote" radiobutton line:
mOrigQuoteGroup = new TQButtonGroup( group );
mOrigQuoteGroup->hide();
- connect( mOrigQuoteGroup, TQT_SIGNAL( clicked( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mOrigQuoteGroup, TQ_SIGNAL( clicked( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
hbox = new TQHBox( group );
hbox->setSpacing( KDialog::spacingHint() );
@@ -3884,7 +3884,7 @@ SecurityPageGeneralTab::SecurityPageGeneralTab( TQWidget * parent, const char *
hbox->setStretchFactor( w, 1 );
mNoMDNsWhenEncryptedCheck = new TQCheckBox( i18n("Do not send MDNs in response to encrypted messages"), group );
- connect( mNoMDNsWhenEncryptedCheck, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotEmitChanged()) );
+ connect( mNoMDNsWhenEncryptedCheck, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotEmitChanged()) );
// Warning label:
label = new KActiveLabel( i18n("<b>WARNING:</b> Unconditionally returning "
@@ -3900,7 +3900,7 @@ SecurityPageGeneralTab::SecurityPageGeneralTab( TQWidget * parent, const char *
group->layout()->setSpacing( KDialog::spacingHint() );
mAutomaticallyImportAttachedKeysCheck = new TQCheckBox( i18n("Automatically import keys and certificates"), group );
- connect( mAutomaticallyImportAttachedKeysCheck, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotEmitChanged()) );
+ connect( mAutomaticallyImportAttachedKeysCheck, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotEmitChanged()) );
vlay->addWidget( group );
@@ -4003,13 +4003,13 @@ SecurityPageComposerCryptoTab::SecurityPageComposerCryptoTab( TQWidget * parent,
TQVBoxLayout* vlay = new TQVBoxLayout( this, 0, 0 );
mWidget = new ComposerCryptoConfiguration( this );
- connect( mWidget->mAutoSignature, TQT_SIGNAL( toggled(bool) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->mEncToSelf, TQT_SIGNAL( toggled(bool) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->mShowEncryptionResult, TQT_SIGNAL( toggled(bool) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->mShowKeyApprovalDlg, TQT_SIGNAL( toggled(bool) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->mAutoEncrypt, TQT_SIGNAL( toggled(bool) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->mNeverEncryptWhenSavingInDrafts, TQT_SIGNAL( toggled(bool) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->mStoreEncrypted, TQT_SIGNAL( toggled(bool) ), this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mWidget->mAutoSignature, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->mEncToSelf, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->mShowEncryptionResult, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->mShowKeyApprovalDlg, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->mAutoEncrypt, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->mNeverEncryptWhenSavingInDrafts, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->mStoreEncrypted, TQ_SIGNAL( toggled(bool) ), this, TQ_SLOT( slotEmitChanged() ) );
vlay->addWidget( mWidget );
}
@@ -4080,20 +4080,20 @@ SecurityPageWarningTab::SecurityPageWarningTab( TQWidget * parent, const char *
mWidget = new WarningConfiguration( this );
vlay->addWidget( mWidget );
- connect( mWidget->warnGroupBox, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotEmitChanged()) );
- connect( mWidget->mWarnUnsigned, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotEmitChanged()) );
- connect( mWidget->warnUnencryptedCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotEmitChanged()) );
- connect( mWidget->warnReceiverNotInCertificateCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotEmitChanged()) );
- connect( mWidget->mWarnSignKeyExpiresSB, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->mWarnSignChainCertExpiresSB, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->mWarnSignRootCertExpiresSB, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotEmitChanged() ) );
+ connect( mWidget->warnGroupBox, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotEmitChanged()) );
+ connect( mWidget->mWarnUnsigned, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotEmitChanged()) );
+ connect( mWidget->warnUnencryptedCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotEmitChanged()) );
+ connect( mWidget->warnReceiverNotInCertificateCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotEmitChanged()) );
+ connect( mWidget->mWarnSignKeyExpiresSB, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->mWarnSignChainCertExpiresSB, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->mWarnSignRootCertExpiresSB, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( slotEmitChanged() ) );
- connect( mWidget->mWarnEncrKeyExpiresSB, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->mWarnEncrChainCertExpiresSB, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->mWarnEncrRootCertExpiresSB, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotEmitChanged() ) );
+ connect( mWidget->mWarnEncrKeyExpiresSB, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->mWarnEncrChainCertExpiresSB, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->mWarnEncrRootCertExpiresSB, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( slotEmitChanged() ) );
- connect( mWidget->enableAllWarningsPB, TQT_SIGNAL(clicked()),
- TQT_SLOT(slotReenableAllWarningsClicked()) );
+ connect( mWidget->enableAllWarningsPB, TQ_SIGNAL(clicked()),
+ TQ_SLOT(slotReenableAllWarningsClicked()) );
}
void SecurityPage::WarningTab::doLoadOther() {
@@ -4206,28 +4206,28 @@ SecurityPageSMimeTab::SecurityPageSMimeTab( TQWidget * parent, const char * name
mConfig = Kleo::CryptoBackendFactory::instance()->config();
- connect( mWidget->CRLRB, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->OCSPRB, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->OCSPResponderURL, TQT_SIGNAL( textChanged( const TQString& ) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->OCSPResponderSignature, TQT_SIGNAL( changed() ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->doNotCheckCertPolicyCB, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->neverConsultCB, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->fetchMissingCB, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotEmitChanged() ) );
-
- connect( mWidget->ignoreServiceURLCB, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->ignoreHTTPDPCB, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->disableHTTPCB, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->honorHTTPProxyRB, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->useCustomHTTPProxyRB, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->customHTTPProxy, TQT_SIGNAL( textChanged( const TQString& ) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->ignoreLDAPDPCB, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->disableLDAPCB, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotEmitChanged() ) );
- connect( mWidget->customLDAPProxy, TQT_SIGNAL( textChanged( const TQString& ) ), this, TQT_SLOT( slotEmitChanged() ) );
-
- connect( mWidget->disableHTTPCB, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SLOT( slotUpdateHTTPActions() ) );
- connect( mWidget->ignoreHTTPDPCB, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SLOT( slotUpdateHTTPActions() ) );
+ connect( mWidget->CRLRB, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->OCSPRB, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->OCSPResponderURL, TQ_SIGNAL( textChanged( const TQString& ) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->OCSPResponderSignature, TQ_SIGNAL( changed() ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->doNotCheckCertPolicyCB, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->neverConsultCB, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->fetchMissingCB, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( slotEmitChanged() ) );
+
+ connect( mWidget->ignoreServiceURLCB, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->ignoreHTTPDPCB, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->disableHTTPCB, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->honorHTTPProxyRB, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->useCustomHTTPProxyRB, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->customHTTPProxy, TQ_SIGNAL( textChanged( const TQString& ) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->ignoreLDAPDPCB, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->disableLDAPCB, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( slotEmitChanged() ) );
+ connect( mWidget->customLDAPProxy, TQ_SIGNAL( textChanged( const TQString& ) ), this, TQ_SLOT( slotEmitChanged() ) );
+
+ connect( mWidget->disableHTTPCB, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SLOT( slotUpdateHTTPActions() ) );
+ connect( mWidget->ignoreHTTPDPCB, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SLOT( slotUpdateHTTPActions() ) );
// Button-group for exclusive radiobuttons
TQButtonGroup* bgHTTPProxy = new TQButtonGroup( mWidget );
@@ -4504,7 +4504,7 @@ SecurityPageCryptPlugTab::SecurityPageCryptPlugTab( TQWidget * parent, const cha
TQVBoxLayout * vlay = new TQVBoxLayout( this, KDialog::marginHint(), KDialog::spacingHint() );
mBackendConfig = Kleo::CryptoBackendFactory::instance()->configWidget( this, "mBackendConfig" );
- connect( mBackendConfig, TQT_SIGNAL( changed( bool ) ), this, TQT_SIGNAL( changed( bool ) ) );
+ connect( mBackendConfig, TQ_SIGNAL( changed( bool ) ), this, TQ_SIGNAL( changed( bool ) ) );
vlay->addWidget( mBackendConfig );
}
@@ -4563,13 +4563,13 @@ MiscPageFolderTab::MiscPageFolderTab( TQWidget * parent, const char * name )
"trash"),
this );
vlay->addWidget( mEmptyFolderConfirmCheck );
- connect( mEmptyFolderConfirmCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mEmptyFolderConfirmCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mExcludeImportantFromExpiry =
new TQCheckBox( i18n("E&xclude important messages from expiry"), this );
vlay->addWidget( mExcludeImportantFromExpiry );
- connect( mExcludeImportantFromExpiry, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mExcludeImportantFromExpiry, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// "when trying to find unread messages" combo + label: stretch 0
hlay = new TQHBoxLayout( vlay ); // inherits spacing
@@ -4587,8 +4587,8 @@ MiscPageFolderTab::MiscPageFolderTab( TQWidget * parent, const char * name )
"Loop in All Folders"));
hlay->addWidget( label );
hlay->addWidget( mLoopOnGotoUnread, 1 );
- connect( mLoopOnGotoUnread, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mLoopOnGotoUnread, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// when entering a folder
hlay = new TQHBoxLayout( vlay ); // inherits spacing
@@ -4611,8 +4611,8 @@ MiscPageFolderTab::MiscPageFolderTab( TQWidget * parent, const char * name )
"Jump to Oldest Message") );
hlay->addWidget( label );
hlay->addWidget( mActionEnterFolder, 1 );
- connect( mActionEnterFolder, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mActionEnterFolder, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
hlay = new TQHBoxLayout( vlay ); // inherits spacing
mDelayedMarkAsRead = new TQCheckBox( i18n("Mar&k selected message as read after"), this );
@@ -4623,19 +4623,19 @@ MiscPageFolderTab::MiscPageFolderTab( TQWidget * parent, const char * name )
mDelayedMarkTime->setEnabled( false ); // since mDelayedMarkAsREad is off
hlay->addWidget( mDelayedMarkTime );
hlay->addStretch( 1 );
- connect( mDelayedMarkTime, TQT_SIGNAL( valueChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
- connect( mDelayedMarkAsRead, TQT_SIGNAL(toggled(bool)),
- mDelayedMarkTime, TQT_SLOT(setEnabled(bool)));
- connect( mDelayedMarkAsRead, TQT_SIGNAL(toggled(bool)),
- this , TQT_SLOT(slotEmitChanged( void )));
+ connect( mDelayedMarkTime, TQ_SIGNAL( valueChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
+ connect( mDelayedMarkAsRead, TQ_SIGNAL(toggled(bool)),
+ mDelayedMarkTime, TQ_SLOT(setEnabled(bool)));
+ connect( mDelayedMarkAsRead, TQ_SIGNAL(toggled(bool)),
+ this , TQ_SLOT(slotEmitChanged( void )));
// "show popup after Drag'n'Drop" checkbox: stretch 0
mShowPopupAfterDnD =
new TQCheckBox( i18n("Ask for action after &dragging messages to another folder"), this );
vlay->addWidget( mShowPopupAfterDnD );
- connect( mShowPopupAfterDnD, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mShowPopupAfterDnD, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// "default mailbox format" combo + label: stretch 0
hlay = new TQHBoxLayout( vlay ); // inherits spacing
@@ -4668,8 +4668,8 @@ MiscPageFolderTab::MiscPageFolderTab( TQWidget * parent, const char * name )
TQWhatsThis::add( label, msg );
hlay->addWidget( label );
hlay->addWidget( mMailboxPrefCombo, 1 );
- connect( mMailboxPrefCombo, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mMailboxPrefCombo, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// "On startup..." option:
hlay = new TQHBoxLayout( vlay ); // inherits spacing
@@ -4679,23 +4679,23 @@ MiscPageFolderTab::MiscPageFolderTab( TQWidget * parent, const char * name )
i18n("Open this folder on startup:"), this );
hlay->addWidget( label );
hlay->addWidget( mOnStartupOpenFolder, 1 );
- connect( mOnStartupOpenFolder, TQT_SIGNAL( folderChanged( KMFolder* ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mOnStartupOpenFolder, TQ_SIGNAL( folderChanged( KMFolder* ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// "Empty &trash on program exit" option:
hlay = new TQHBoxLayout( vlay ); // inherits spacing
mEmptyTrashCheck = new TQCheckBox( i18n("Empty local &trash folder on program exit"),
this );
hlay->addWidget( mEmptyTrashCheck );
- connect( mEmptyTrashCheck, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mEmptyTrashCheck, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
#ifdef HAVE_INDEXLIB
// indexing enabled option:
mIndexingEnabled = new TQCheckBox( i18n("Enable full text &indexing"), this );
vlay->addWidget( mIndexingEnabled );
- connect( mIndexingEnabled, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mIndexingEnabled, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
#endif
// "Quota Units"
@@ -4709,7 +4709,7 @@ MiscPageFolderTab::MiscPageFolderTab( TQWidget * parent, const char * name )
<< i18n("GB") );
hlay->addWidget( label );
hlay->addWidget( mQuotaCmbBox, 1 );
- connect( mQuotaCmbBox, TQT_SIGNAL( activated( int ) ), this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mQuotaCmbBox, TQ_SIGNAL( activated( int ) ), this, TQ_SLOT( slotEmitChanged( void ) ) );
vlay->addStretch( 1 );
@@ -4817,14 +4817,14 @@ MiscPageGroupwareTab::MiscPageGroupwareTab( TQWidget* parent, const char* name )
"the Kontact applications" ) );
TQWhatsThis::add( mEnableImapResCB,
i18n( GlobalSettings::self()->theIMAPResourceEnabledItem()->whatsThis().utf8() ) );
- connect( mEnableImapResCB, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mEnableImapResCB, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mBox = new TQWidget( b1 );
TQGridLayout* grid = new TQGridLayout( mBox, 5, 2, 0, KDialog::spacingHint() );
grid->setColStretch( 1, 1 );
- connect( mEnableImapResCB, TQT_SIGNAL( toggled(bool) ),
- mBox, TQT_SLOT( setEnabled(bool) ) );
+ connect( mEnableImapResCB, TQ_SIGNAL( toggled(bool) ),
+ mBox, TQ_SLOT( setEnabled(bool) ) );
TQLabel* storageFormatLA = new TQLabel( i18n("&Format used for the groupware folders:"),
mBox );
@@ -4842,8 +4842,8 @@ MiscPageGroupwareTab::MiscPageGroupwareTab( TQWidget* parent, const char* name )
grid->addWidget( mStorageFormatCombo, 0, 1 );
TQToolTip::add( mStorageFormatCombo, toolTip );
TQWhatsThis::add( mStorageFormatCombo, whatsThis );
- connect( mStorageFormatCombo, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( slotStorageFormatChanged( int ) ) );
+ connect( mStorageFormatCombo, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( slotStorageFormatChanged( int ) ) );
TQLabel* languageLA = new TQLabel( i18n("&Language of the groupware folders:"),
mBox );
@@ -4862,8 +4862,8 @@ MiscPageGroupwareTab::MiscPageGroupwareTab( TQWidget* parent, const char* name )
grid->addWidget( mLanguageCombo, 1, 1 );
TQToolTip::add( mLanguageCombo, toolTip );
TQWhatsThis::add( mLanguageCombo, whatsThis );
- connect( mLanguageCombo, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mLanguageCombo, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mFolderComboLabel = new TQLabel( mBox ); // text depends on storage format
toolTip = i18n( "Set the parent of the resource folders" );
@@ -4882,8 +4882,8 @@ MiscPageGroupwareTab::MiscPageGroupwareTab( TQWidget* parent, const char* name )
mFolderComboStack->addWidget( mFolderCombo, 0 );
TQToolTip::add( mFolderCombo, toolTip );
TQWhatsThis::add( mFolderCombo, whatsThis );
- connect( mFolderCombo, TQT_SIGNAL( folderChanged( KMFolder* ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mFolderCombo, TQ_SIGNAL( folderChanged( KMFolder* ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
// Second possibility in the widgetstack: a combo showing the list of accounts
// This is used with the kolab xml storage since the groupware folders
@@ -4892,8 +4892,8 @@ MiscPageGroupwareTab::MiscPageGroupwareTab( TQWidget* parent, const char* name )
mFolderComboStack->addWidget( mAccountCombo, 1 );
TQToolTip::add( mAccountCombo, toolTip );
TQWhatsThis::add( mAccountCombo, whatsThis );
- connect( mAccountCombo, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mAccountCombo, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
mHideGroupwareFolders = new TQCheckBox( i18n( "&Hide groupware folders" ),
mBox, "HideGroupwareFoldersBox" );
@@ -4903,8 +4903,8 @@ MiscPageGroupwareTab::MiscPageGroupwareTab( TQWidget* parent, const char* name )
"resource folders in the folder tree." ) );
TQWhatsThis::add( mHideGroupwareFolders, i18n( GlobalSettings::self()
->hideGroupwareFoldersItem()->whatsThis().utf8() ) );
- connect( mHideGroupwareFolders, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mHideGroupwareFolders, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
mOnlyShowGroupwareFolders = new TQCheckBox( i18n( "&Only show groupware folders for this account" ),
mBox, "OnlyGroupwareFoldersBox" );
@@ -4915,20 +4915,20 @@ MiscPageGroupwareTab::MiscPageGroupwareTab( TQWidget* parent, const char* name )
"configured for groupware." ) );
TQWhatsThis::add( mOnlyShowGroupwareFolders, i18n( GlobalSettings::self()
->showOnlyGroupwareFoldersForGroupwareAccountItem()->whatsThis().utf8() ) );
- connect( mOnlyShowGroupwareFolders, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SLOT( slotEmitChanged() ) );
+ connect( mOnlyShowGroupwareFolders, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SLOT( slotEmitChanged() ) );
mSyncImmediately = new TQCheckBox( i18n( "Synchronize groupware changes immediately" ), mBox );
TQToolTip::add( mSyncImmediately,
i18n( "Synchronize groupware changes in disconnected IMAP folders immediately when being online." ) );
- connect( mSyncImmediately, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotEmitChanged()) );
+ connect( mSyncImmediately, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotEmitChanged()) );
grid->addMultiCellWidget( mSyncImmediately, 4, 4, 0, 1 );
mDeleteInvitations = new TQCheckBox(
i18n( GlobalSettings::self()->deleteInvitationEmailsAfterSendingReplyItem()->label().utf8() ), mBox );
TQWhatsThis::add( mDeleteInvitations, i18n( GlobalSettings::self()
->deleteInvitationEmailsAfterSendingReplyItem()->whatsThis().utf8() ) );
- connect( mDeleteInvitations, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotEmitChanged()) );
+ connect( mDeleteInvitations, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotEmitChanged()) );
grid->addMultiCellWidget( mDeleteInvitations, 5, 5, 0, 1 );
// Groupware functionality compatibility setup
@@ -4939,47 +4939,47 @@ MiscPageGroupwareTab::MiscPageGroupwareTab( TQWidget* parent, const char* name )
// Currently believed to be disused.
mEnableGwCB = new TQCheckBox( i18n("&Enable groupware functionality"), b1 );
gBox->setSpacing( KDialog::spacingHint() );
- connect( mEnableGwCB, TQT_SIGNAL( toggled(bool) ),
- gBox, TQT_SLOT( setEnabled(bool) ) );
- connect( mEnableGwCB, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mEnableGwCB, TQ_SIGNAL( toggled(bool) ),
+ gBox, TQ_SLOT( setEnabled(bool) ) );
+ connect( mEnableGwCB, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
#endif
mEnableGwCB = 0;
mLegacyMangleFromTo = new TQCheckBox( i18n( "Mangle From:/To: headers in replies to invitations" ), gBox );
TQToolTip::add( mLegacyMangleFromTo, i18n( "Turn this option on in order to make Outlook(tm) understand your answers to invitation replies" ) );
TQWhatsThis::add( mLegacyMangleFromTo, i18n( GlobalSettings::self()->
legacyMangleFromToHeadersItem()->whatsThis().utf8() ) );
- connect( mLegacyMangleFromTo, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mLegacyMangleFromTo, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mLegacyBodyInvites = new TQCheckBox( i18n( "Send invitations in the mail body" ), gBox );
TQToolTip::add( mLegacyBodyInvites, i18n( "Turn this option on in order to make Outlook(tm) understand your answers to invitations" ) );
TQWhatsThis::add( mLegacyMangleFromTo, i18n( GlobalSettings::self()->
legacyBodyInvitesItem()->whatsThis().utf8() ) );
- connect( mLegacyBodyInvites, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SLOT( slotLegacyBodyInvitesToggled( bool ) ) );
- connect( mLegacyBodyInvites, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mLegacyBodyInvites, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SLOT( slotLegacyBodyInvitesToggled( bool ) ) );
+ connect( mLegacyBodyInvites, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mExchangeCompatibleInvitations = new TQCheckBox( i18n( "Exchange compatible invitation naming" ), gBox );
TQToolTip::add( mExchangeCompatibleInvitations, i18n( "Outlook(tm), when used in combination with a Microsoft Exchange server,\nhas a problem understanding standards-compliant groupware e-mail.\nTurn this option on to send groupware invitations and replies in an Exchange compatible way." ) );
TQWhatsThis::add( mExchangeCompatibleInvitations, i18n( GlobalSettings::self()->
exchangeCompatibleInvitationsItem()->whatsThis().utf8() ) );
- connect( mExchangeCompatibleInvitations, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mExchangeCompatibleInvitations, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mOutlookCompatibleInvitationComments = new TQCheckBox( i18n( "Outlook compatible invitation reply comments" ), gBox );
TQToolTip::add( mOutlookCompatibleInvitationComments, i18n( "Send invitation reply comments in a way that Microsoft Outlook(tm) understands." ) );
TQWhatsThis::add( mOutlookCompatibleInvitationComments, i18n( GlobalSettings::self()->
outlookCompatibleInvitationReplyCommentsItem()->whatsThis().utf8() ) );
- connect( mOutlookCompatibleInvitationComments, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mOutlookCompatibleInvitationComments, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
mAutomaticSending = new TQCheckBox( i18n( "Automatic invitation sending" ), gBox );
TQToolTip::add( mAutomaticSending, i18n( "When this is on, the user will not see the mail composer window. Invitation mails are sent automatically" ) );
TQWhatsThis::add( mAutomaticSending, i18n( GlobalSettings::self()->
automaticSendingItem()->whatsThis().utf8() ) );
- connect( mAutomaticSending, TQT_SIGNAL( stateChanged( int ) ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mAutomaticSending, TQ_SIGNAL( stateChanged( int ) ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
// Open space padding at the end
new TQLabel( this );
@@ -5174,8 +5174,8 @@ AccountUpdater::AccountUpdater(ImapAccountBase *account)
void AccountUpdater::update()
{
- connect( mAccount, TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( namespacesFetched() ) );
+ connect( mAccount, TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( namespacesFetched() ) );
mAccount->makeConnection();
}
diff --git a/kmail/configuredialog.h b/kmail/configuredialog.h
index 265bc957..84887169 100644
--- a/kmail/configuredialog.h
+++ b/kmail/configuredialog.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
* kmail: KDE mail client
* This file: Copyright (C) 2000 Espen Sand, espen@kde.org
* Copyright (C) 2001-2002 Marc Mutz <mutz@kde.org>
@@ -33,7 +33,7 @@ namespace KMail {
class ConfigureDialog : public KCMultiDialog
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -78,7 +78,7 @@ private:
* takes care of that.
*/
class AccountUpdater : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
AccountUpdater(KMail::ImapAccountBase *account);
diff --git a/kmail/configuredialog_p.cpp b/kmail/configuredialog_p.cpp
index 83c13a31..f244bc8e 100644
--- a/kmail/configuredialog_p.cpp
+++ b/kmail/configuredialog_p.cpp
@@ -53,8 +53,8 @@ NewIdentityDialog::NewIdentityDialog( const TQStringList & identities,
mLineEdit->setFocus();
hlay->addWidget( new TQLabel( mLineEdit, i18n("&New identity:"), page ) );
hlay->addWidget( mLineEdit, 1 );
- connect( mLineEdit, TQT_SIGNAL(textChanged(const TQString&)),
- this, TQT_SLOT(slotEnableOK(const TQString&)) );
+ connect( mLineEdit, TQ_SIGNAL(textChanged(const TQString&)),
+ this, TQ_SLOT(slotEnableOK(const TQString&)) );
mButtonGroup = new TQButtonGroup( page );
mButtonGroup->hide();
@@ -89,10 +89,10 @@ NewIdentityDialog::NewIdentityDialog( const TQStringList & identities,
// enable/disable combobox and label depending on the third radio
// button's state:
- connect( radio, TQT_SIGNAL(toggled(bool)),
- label, TQT_SLOT(setEnabled(bool)) );
- connect( radio, TQT_SIGNAL(toggled(bool)),
- mComboBox, TQT_SLOT(setEnabled(bool)) );
+ connect( radio, TQ_SIGNAL(toggled(bool)),
+ label, TQ_SLOT(setEnabled(bool)) );
+ connect( radio, TQ_SIGNAL(toggled(bool)),
+ mComboBox, TQ_SLOT(setEnabled(bool)) );
enableButtonOK( false ); // since line edit is empty
}
@@ -305,12 +305,12 @@ ProfileDialog::ProfileDialog( TQWidget * parent, const char * name, bool modal )
setup();
- connect( mListView, TQT_SIGNAL(selectionChanged()),
- TQT_SLOT(slotSelectionChanged()) );
- connect( mListView, TQT_SIGNAL(doubleClicked ( TQListViewItem *, const TQPoint &, int ) ),
- TQT_SLOT(slotOk()) );
+ connect( mListView, TQ_SIGNAL(selectionChanged()),
+ TQ_SLOT(slotSelectionChanged()) );
+ connect( mListView, TQ_SIGNAL(doubleClicked ( TQListViewItem *, const TQPoint &, int ) ),
+ TQ_SLOT(slotOk()) );
- connect( this, TQT_SIGNAL(finished()), TQT_SLOT(delayedDestruct()) );
+ connect( this, TQ_SIGNAL(finished()), TQ_SLOT(delayedDestruct()) );
enableButtonOK( false );
}
@@ -375,8 +375,8 @@ ConfigModuleWithTabs::ConfigModuleWithTabs( TQWidget * parent,
void ConfigModuleWithTabs::addTab( ConfigModuleTab* tab, const TQString & title ) {
mTabWidget->addTab( tab, title );
- connect( tab, TQT_SIGNAL(changed( bool )),
- this, TQT_SIGNAL(changed( bool )) );
+ connect( tab, TQ_SIGNAL(changed( bool )),
+ this, TQ_SIGNAL(changed( bool )) );
}
void ConfigModuleWithTabs::load() {
diff --git a/kmail/configuredialog_p.h b/kmail/configuredialog_p.h
index 6ba969de..f8eecdeb 100644
--- a/kmail/configuredialog_p.h
+++ b/kmail/configuredialog_p.h
@@ -1,4 +1,3 @@
-// -*- c++ -*-
// configuredialog_p.h: classes internal to ConfigureDialog
// see configuredialog.h for details.
@@ -18,7 +17,7 @@
#include <tdelistview.h>
#include <tdecmodule.h>
#include <tdelocale.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQPushButton;
class TQLabel;
@@ -77,7 +76,7 @@ namespace Kleo {
class NewIdentityDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -123,7 +122,7 @@ typedef TQValueList<LanguageItem> LanguageItemList;
class NewLanguageDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -138,7 +137,7 @@ class NewLanguageDialog : public KDialogBase
class LanguageComboBox : public TQComboBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -155,7 +154,7 @@ class LanguageComboBox : public TQComboBox
//
class ProfileDialog : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
ProfileDialog( TQWidget * parent=0, const char * name=0, bool modal=false );
@@ -177,7 +176,7 @@ private:
#include <kdialog.h>
class ConfigModule : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
ConfigModule( TQWidget * parent=0, const char * name=0 )
@@ -205,7 +204,7 @@ signals:
// Individual tab of a ConfigModuleWithTabs
class ConfigModuleTab : public TQWidget {
- Q_OBJECT
+ TQ_OBJECT
public:
ConfigModuleTab( TQWidget *parent=0, const char* name=0 )
@@ -240,7 +239,7 @@ private:
* It simply forwards load and save operations to all tabs.
*/
class ConfigModuleWithTabs : public ConfigModule {
- Q_OBJECT
+ TQ_OBJECT
public:
ConfigModuleWithTabs( TQWidget * parent=0, const char * name=0 );
@@ -268,7 +267,7 @@ private:
//
class KDE_EXPORT IdentityPage : public ConfigModule {
- Q_OBJECT
+ TQ_OBJECT
public:
IdentityPage( TQWidget * parent=0, const char * name=0 );
@@ -319,7 +318,7 @@ private: // data members
// subclasses: one class per tab:
class AccountsPageSendingTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
AccountsPageSendingTab( TQWidget * parent=0, const char * name=0 );
@@ -357,7 +356,7 @@ private:
class AccountsPageReceivingTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
AccountsPageReceivingTab( TQWidget * parent=0, const char * name=0 );
@@ -402,7 +401,7 @@ private:
};
class KDE_EXPORT AccountsPage : public ConfigModuleWithTabs {
- Q_OBJECT
+ TQ_OBJECT
public:
AccountsPage( TQWidget * parent=0, const char * name=0 );
@@ -430,7 +429,7 @@ private:
//
class AppearancePageFontsTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
AppearancePageFontsTab( TQWidget * parent=0, const char * name=0 );
@@ -458,7 +457,7 @@ private:
};
class AppearancePageColorsTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
AppearancePageColorsTab( TQWidget * parent=0, const char * name=0 );
@@ -480,7 +479,7 @@ private:
};
class AppearancePageLayoutTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
AppearancePageLayoutTab( TQWidget * parent=0, const char * name=0 );
@@ -503,7 +502,7 @@ private: // data
};
class AppearancePageHeadersTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
AppearancePageHeadersTab( TQWidget * parent=0, const char * name=0 );
@@ -530,7 +529,7 @@ private: // data
};
class AppearancePageReaderTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
AppearancePageReaderTab( TQWidget * parent=0, const char * name=0 );
@@ -562,7 +561,7 @@ private: // data
class AppearancePageSystemTrayTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
AppearancePageSystemTrayTab( TQWidget * parent=0, const char * name=0 );
@@ -581,7 +580,7 @@ private: // data
};
class KDE_EXPORT AppearancePage : public ConfigModuleWithTabs {
- Q_OBJECT
+ TQ_OBJECT
public:
AppearancePage( TQWidget * parent=0, const char * name=0 );
@@ -612,7 +611,7 @@ private:
//
class ComposerPageGeneralTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
ComposerPageGeneralTab( TQWidget * parent=0, const char * name=0 );
@@ -646,7 +645,7 @@ private:
};
class ComposerPagePhrasesTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
ComposerPagePhrasesTab( TQWidget * parent=0, const char * name=0 );
@@ -678,7 +677,7 @@ private:
};
class ComposerPageTemplatesTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
ComposerPageTemplatesTab( TQWidget * parent=0, const char * name=0 );
@@ -696,7 +695,7 @@ private:
};
class ComposerPageCustomTemplatesTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
ComposerPageCustomTemplatesTab( TQWidget * parent=0, const char * name=0 );
@@ -714,7 +713,7 @@ private:
};
class ComposerPageSubjectTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
ComposerPageSubjectTab( TQWidget * parent=0, const char * name=0 );
@@ -733,7 +732,7 @@ private:
};
class ComposerPageCharsetTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
ComposerPageCharsetTab( TQWidget * parent=0, const char * name=0 );
@@ -755,7 +754,7 @@ private:
};
class ComposerPageHeadersTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
ComposerPageHeadersTab( TQWidget * parent=0, const char * name=0 );
@@ -788,7 +787,7 @@ private:
};
class ComposerPageAttachmentsTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
ComposerPageAttachmentsTab( TQWidget * parent=0, const char * name=0 );
@@ -810,7 +809,7 @@ private:
};
class KDE_EXPORT ComposerPage : public ConfigModuleWithTabs {
- Q_OBJECT
+ TQ_OBJECT
public:
ComposerPage( TQWidget * parent=0, const char * name=0 );
@@ -845,7 +844,7 @@ private:
//
class SecurityPageGeneralTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
SecurityPageGeneralTab( TQWidget * parent=0, const char * name=0 );
@@ -871,7 +870,7 @@ private:
class SecurityPageComposerCryptoTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
SecurityPageComposerCryptoTab( TQWidget * parent=0, const char * name=0 );
@@ -891,7 +890,7 @@ private:
};
class SecurityPageWarningTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
SecurityPageWarningTab( TQWidget * parent=0, const char * name=0 );
@@ -914,7 +913,7 @@ private:
};
class SecurityPageSMimeTab : public ConfigModuleTab, public DCOPObject {
- Q_OBJECT
+ TQ_OBJECT
K_DCOP
public:
@@ -942,7 +941,7 @@ private:
class SecurityPageCryptPlugTab : public ConfigModuleTab
{
- Q_OBJECT
+ TQ_OBJECT
public:
SecurityPageCryptPlugTab( TQWidget * parent = 0, const char* name = 0 );
@@ -961,7 +960,7 @@ private:
};
class KDE_EXPORT SecurityPage : public ConfigModuleWithTabs {
- Q_OBJECT
+ TQ_OBJECT
public:
SecurityPage( TQWidget * parent=0, const char * name=0 );
@@ -993,7 +992,7 @@ private:
//
class MiscPageFolderTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
MiscPageFolderTab( TQWidget * parent=0, const char * name=0 );
@@ -1024,7 +1023,7 @@ private:
};
class MiscPageGroupwareTab : public ConfigModuleTab {
- Q_OBJECT
+ TQ_OBJECT
public:
MiscPageGroupwareTab( TQWidget * parent=0, const char * name=0 );
@@ -1066,7 +1065,7 @@ private:
};
class KDE_EXPORT MiscPage : public ConfigModuleWithTabs {
- Q_OBJECT
+ TQ_OBJECT
public:
MiscPage( TQWidget * parent=0, const char * name=0 );
@@ -1087,7 +1086,7 @@ private:
//
class ListView : public TDEListView {
- Q_OBJECT
+ TQ_OBJECT
public:
ListView( TQWidget *parent=0, const char *name=0, int visibleItem=10 );
diff --git a/kmail/copyfolderjob.cpp b/kmail/copyfolderjob.cpp
index 165d9468..a237db10 100644
--- a/kmail/copyfolderjob.cpp
+++ b/kmail/copyfolderjob.cpp
@@ -95,8 +95,8 @@ void CopyFolderJob::copyMessagesToTargetDir()
slotCopyNextChild(); // no contents, check subfolders
} else {
KMCommand *command = new KMCopyCommand( mNewFolder, msgList );
- connect( command, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( slotCopyCompleted( KMCommand * ) ) );
+ connect( command, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( slotCopyCompleted( KMCommand * ) ) );
command->start();
}
}
@@ -104,8 +104,8 @@ void CopyFolderJob::copyMessagesToTargetDir()
void CopyFolderJob::slotCopyCompleted( KMCommand* command )
{
kdDebug(5006) << k_funcinfo << (command?command->result():0) << endl;
- disconnect( command, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( slotCopyCompleted( KMCommand * ) ) );
+ disconnect( command, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( slotCopyCompleted( KMCommand * ) ) );
mStorage->blockSignals( false );
@@ -160,8 +160,8 @@ void CopyFolderJob::slotCopyNextChild( bool success )
// let it do its thing and report back when we are ready to do the next sibling
mNextChildFolder->open( "copyfolder" ); // refcount
FolderJob* job = new CopyFolderJob( mNextChildFolder->storage(), dir);
- connect( job, TQT_SIGNAL( folderCopyComplete( bool ) ),
- this, TQT_SLOT( slotCopyNextChild( bool ) ) );
+ connect( job, TQ_SIGNAL( folderCopyComplete( bool ) ),
+ this, TQ_SLOT( slotCopyNextChild( bool ) ) );
job->start();
}
@@ -194,8 +194,8 @@ bool CopyFolderJob::createTargetDir()
TQString imapPath;
imapPath = anAccount->createImapPath( selectedStorage->imapPath(), mStorage->folder()->name() );
KMFolderImap* newStorage = static_cast<KMFolderImap*>( mNewFolder->storage() );
- connect( selectedStorage, TQT_SIGNAL(folderCreationResult(const TQString&, bool)),
- this, TQT_SLOT(folderCreationDone(const TQString&, bool)) );
+ connect( selectedStorage, TQ_SIGNAL(folderCreationResult(const TQString&, bool)),
+ this, TQ_SLOT(folderCreationDone(const TQString&, bool)) );
selectedStorage->createFolder(mStorage->folder()->name(), TQString()); // create it on the server
newStorage->initializeFrom( selectedStorage, imapPath, TQString() );
static_cast<KMFolderImap*>(mNewParent->owner()->storage())->setAccount( selectedStorage->account() );
diff --git a/kmail/copyfolderjob.h b/kmail/copyfolderjob.h
index 02f05d2d..43f08ec3 100644
--- a/kmail/copyfolderjob.h
+++ b/kmail/copyfolderjob.h
@@ -49,7 +49,7 @@ namespace KMail {
*/
class CopyFolderJob : public FolderJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/kmail/csshelper.cpp b/kmail/csshelper.cpp
index e5bfb7bf..c4f58390 100644
--- a/kmail/csshelper.cpp
+++ b/kmail/csshelper.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
csshelper.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/csshelper.h b/kmail/csshelper.h
index 9bff99ca..cba58adc 100644
--- a/kmail/csshelper.h
+++ b/kmail/csshelper.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
csshelper.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/customtemplates.cpp b/kmail/customtemplates.cpp
index 644f5fa9..4d4080ed 100644
--- a/kmail/customtemplates.cpp
+++ b/kmail/customtemplates.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* This file: Copyright (C) 2006 Dmitry Morozhnikov
*
@@ -68,29 +68,29 @@ CustomTemplates::CustomTemplates( TQWidget *parent, const char *name )
mEditFrame->setEnabled( false );
- connect( mName, TQT_SIGNAL( textChanged ( const TQString &) ),
- this, TQT_SLOT( slotNameChanged( const TQString & ) ) );
- connect( mEdit, TQT_SIGNAL( textChanged() ),
- this, TQT_SLOT( slotTextChanged( void ) ) );
- connect( mToEdit, TQT_SIGNAL( textChanged(const TQString&) ),
- this, TQT_SLOT( slotTextChanged( void ) ) );
- connect( mCCEdit, TQT_SIGNAL( textChanged(const TQString&) ),
- this, TQT_SLOT( slotTextChanged( void ) ) );
-
- connect( mInsertCommand, TQT_SIGNAL( insertCommand(TQString, int) ),
- this, TQT_SLOT( slotInsertCommand(TQString, int) ) );
-
- connect( mAdd, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotAddClicked() ) );
- connect( mRemove, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotRemoveClicked() ) );
- connect( mList, TQT_SIGNAL( selectionChanged() ),
- this, TQT_SLOT( slotListSelectionChanged() ) );
- connect( mType, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( slotTypeActivated( int ) ) );
-
- connect( mKeyButton, TQT_SIGNAL( capturedShortcut( const TDEShortcut& ) ),
- this, TQT_SLOT( slotShortcutCaptured( const TDEShortcut& ) ) );
+ connect( mName, TQ_SIGNAL( textChanged ( const TQString &) ),
+ this, TQ_SLOT( slotNameChanged( const TQString & ) ) );
+ connect( mEdit, TQ_SIGNAL( textChanged() ),
+ this, TQ_SLOT( slotTextChanged( void ) ) );
+ connect( mToEdit, TQ_SIGNAL( textChanged(const TQString&) ),
+ this, TQ_SLOT( slotTextChanged( void ) ) );
+ connect( mCCEdit, TQ_SIGNAL( textChanged(const TQString&) ),
+ this, TQ_SLOT( slotTextChanged( void ) ) );
+
+ connect( mInsertCommand, TQ_SIGNAL( insertCommand(TQString, int) ),
+ this, TQ_SLOT( slotInsertCommand(TQString, int) ) );
+
+ connect( mAdd, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotAddClicked() ) );
+ connect( mRemove, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotRemoveClicked() ) );
+ connect( mList, TQ_SIGNAL( selectionChanged() ),
+ this, TQ_SLOT( slotListSelectionChanged() ) );
+ connect( mType, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( slotTypeActivated( int ) ) );
+
+ connect( mKeyButton, TQ_SIGNAL( capturedShortcut( const TDEShortcut& ) ),
+ this, TQ_SLOT( slotShortcutCaptured( const TDEShortcut& ) ) );
mReplyPix = TDEIconLoader().loadIcon( "mail-reply-sender", TDEIcon::Small );
mReplyAllPix = TDEIconLoader().loadIcon( "mail-reply-all", TDEIcon::Small );
diff --git a/kmail/customtemplates.h b/kmail/customtemplates.h
index 1af43734..e8bca882 100644
--- a/kmail/customtemplates.h
+++ b/kmail/customtemplates.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* This file: Copyright (C) 2006 Dmitry Morozhnikov
*
@@ -34,7 +34,7 @@ class TDEShortcut;
class CustomTemplates : public CustomTemplatesBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/customtemplates_base.ui b/kmail/customtemplates_base.ui
index 4b877aec..2d0d7796 100644
--- a/kmail/customtemplates_base.ui
+++ b/kmail/customtemplates_base.ui
@@ -351,19 +351,17 @@
<data format="PNG" length="1002">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003b149444154388dad945f4c5b551cc73fe7dc4b7b4bcba0762d45c43114323599ee6192609c51d883892ce083f1718b3ebb185f8dc91e972cf39d2d2a2f1af664b6f1e0fe3863a0718969700eb0c52142da0242a1bd6d696f7bcff101585203ceb8fd9ece39f99dcff9fe7edf939f88c562ec465f5f9fe609442c161362173c3e3eae7b7a7ac8e7f36432196cdbfe4f907c3e4f2291201e8fe338cec3737357e9e8e828aded1e229d650e1f2d51754b082110124c13a4dc5ea341eb9dc284c0558a853f3ce8cb0677ef500fde7d39d2596679e326597b8e9abb85d7a770ab16ab6983ec5a05b487a70e36f0f4e10afe408d6a558310980108478dba4a1e8233990c5d474b64ed39aa3a8fe5f3317fbf81dbd70bccfeb205947632fd74f6589c1c6ea2f70d03a58ba0c1f2c9bdc1b66de3b8256a6e11cbe7e3ee1d181b590124fe2693aeee08d223c82c3a2c24b7b874bec8f26288774f7bd054504aef0dde6e99c0eb83f9fb266323cb80a27fb0958141836044605a2ee5523393371cc646fee2da37195aa35d0c0c5b4859ac03d7e91712dcaac5adab3650a3ff9d08ef7dd8404bb48869e5d958b5b87dadc4c9a1464e9f0d0326df7ebd86bd2e310cb1bf62d384d59441f2d70a070e1c60e09489929b988681bdd9cc97170bcc4c65595f71f8e0e3301337fc24a7732467831875a47f289652b0be5e4151e6d07316c1b0c0340d8ab92023e76d66a6b2840e36d2fb7a13fee632475e6edc367ea98a90fb98b7dd6310ca0328a44761582e1bab41befabcc0ec940d28bc5e93b68e064cab84e1d9beaeb48934eac1f53b01c1b000fca496aa54b61a99fcde61662a4b4b4b23d1680be9d426173e4df3602a48ea411989a4fd590f52a8fd156b05ed9d350e3defe3cfdf4b4c7ce770ea7d3fb9f520afbe1620daeee5c26735d20b9b9cfb6811a754a439e4e5c5639a4caa1e5caf586bfc0197b78702005cb9b4cae4cd3267ce8638fe964bd72b393e39d74928d242617303a756a37f284447770dcdbffc6384a05a85de1306e9a52057c7527c7131c3c42d3f475eb2303c82d4fc3276d6811db37efeb148723082d9b08f79f97c1e5729109a9a28307cc622d2d6cdf52b2b24efe548dedb00142009862cfa879ee1a71f6cec928353511472fbf4389148b0b0e0c108081412458dfe21c9f11351e67e7358595468246d1d1e5e38a6e9e851bc39d84ab502a669331dafec0d8ec7e3e8cb06e1a881d727d1ae40180a434a8c9db129a54126ad48a7358c2b4c5352c8c374bcccdab2bb37d8719cba79fab8211f9df218e0582c261e95f8bfc04f1a1e8bc5c4dfe0a190172af6a9690000000049454e44ae426082</data>
</image>
</images>
-<Q_SLOTS>
+<slots>
<slot>mAdd_clicked()</slot>
<slot>mRemove_clicked()</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
<includes>
<include location="global" impldecl="in implementation">kactivelabel.h</include>
<include location="global" impldecl="in implementation">kkeybutton.h</include>
+ <include location="global" impldecl="in implementation">klineedit.h</include>
+ <include location="global" impldecl="in implementation">kmfawidgets.h</include>
<include location="global" impldecl="in implementation">kpushbutton.h</include>
+ <include location="global" impldecl="in implementation">templatesinsertcommand.h</include>
</includes>
-<includehints>
- <includehint>klineedit.h</includehint>
- <includehint>kmfawidgets.h</includehint>
- <includehint>templatesinsertcommand.h</includehint>
-</includehints>
</UI>
diff --git a/kmail/dcopimap.desktop b/kmail/dcopimap.desktop
index 738cd4cf..ada17a57 100644
--- a/kmail/dcopimap.desktop
+++ b/kmail/dcopimap.desktop
@@ -1,54 +1,5 @@
[Desktop Entry]
Type=ServiceType
X-TDE-ServiceType=DCOP/ResourceBackend/IMAP
+
Comment=Mail program with a DCOP interface
-Comment[af]=E-pos program met 'n DCOP koppelvlak
-Comment[be]=Паштовая праграма з DCOP інтэрфэйсам
-Comment[bg]=Клиент на електронна поща за TDE
-Comment[bs]=Mail program sa DCOP interfejsom
-Comment[ca]=Un programa de correu amb una interfície DCOP
-Comment[cs]=Poštvní program s DCOP rozhraním
-Comment[cy]=Rhaglen ebost gyda rhyngwyneb DCOP
-Comment[da]=E-mail-program med en DCOP-grænseflade
-Comment[de]=Mail-Programm mit DCOP-Schnittstelle
-Comment[el]=Πρόγραμμα mail με ένα περιβάλλον χρήσης DCOP
-Comment[eo]=Retposhtprogramo kun DCOP-interfaco
-Comment[es]=Programa de correo con un interfaz DCOP
-Comment[et]=E-posti rakendus DCOP-liidesega
-Comment[eu]=DCOP interfazedun posta programa
-Comment[fa]=برنامۀ نامه با واسط DCOP
-Comment[fi]=Sähköpostisovellus DCOP-rajapinnalla
-Comment[fr]=Programme de messagerie avec une interface DCOP
-Comment[fy]=E-postprogramma mei in DCOP-ynterface
-Comment[gl]=Programa de correo-e cunha interface DCOP
-Comment[hi]=डीकॉप इंटरफेस सहित एक डाक प्रोग्राम
-Comment[hu]=Levelezőprogram DCOP felülettel
-Comment[is]=Póstforrit með DCOP viðmóti
-Comment[it]=Programma di posta con un'interfaccia DCOP
-Comment[ja]=DCOP インターフェース付のメールプログラム
-Comment[kk]=DCOP интерфейсті пошта бағдарламасы
-Comment[km]=កម្មវិធី​អ៊ីមែល​ដែល​មាន​ចំណុច​ប្រទាក់ DCOP
-Comment[lt]=Pašto programa su DCOP sąsaja
-Comment[mk]=Програма за е-пошта, со DCOP-интерфејс
-Comment[ms]=Program Mel dengan antara muka DCOP
-Comment[nb]=E-postprogram med DCOP grensesnitt
-Comment[nds]=Nettpostprogramm mit DCOP-Koppelsteed
-Comment[ne]=DCOP इन्टरफेसमा मेल कार्यक्रम
-Comment[nl]=E-mailprogramma met een DCOP-interface
-Comment[nn]=E-postprogram med eit DCOP-grensesnitt
-Comment[pl]=Program pocztowy z interfejsem DCOP
-Comment[pt]=Um programa de correio electrónico com uma interface DCOP
-Comment[pt_BR]=Programa de e-mail com uma interface DCOP
-Comment[ru]=Почтовая программа с интерфейсом DCOP
-Comment[se]=E-boastaprográmma mas lea DCOP-lakta
-Comment[sk]=Poštový program s DCOP rozhraním
-Comment[sl]=Poštni program z vmesnikom DCOP
-Comment[sr]=Поштански програм са DCOP интерфејсом
-Comment[sr@Latn]=Poštanski program sa DCOP interfejsom
-Comment[sv]=E-postprogram med DCOP-gränssnitt
-Comment[ta]=dcop முகப்பு கூடிய அஞ்சல் நிரல்
-Comment[tg]=Барномаи почтавӣ бо интерфейси DCOP
-Comment[tr]=DCOP arayüzü ile posta programı
-Comment[uk]=Програма для роботи з ел. поштою з інтерфейсом DCOP
-Comment[zh_CN]=具有 DCOP 接口的邮件程序
-Comment[zh_TW]=有 DCOP 介面的郵件程式
diff --git a/kmail/dcopmail.desktop b/kmail/dcopmail.desktop
index b53175d3..fe25b75c 100644
--- a/kmail/dcopmail.desktop
+++ b/kmail/dcopmail.desktop
@@ -1,54 +1,5 @@
[Desktop Entry]
Type=ServiceType
X-TDE-ServiceType=DCOP/Mailer
+
Comment=Mail program with a DCOP interface
-Comment[af]=E-pos program met 'n DCOP koppelvlak
-Comment[be]=Паштовая праграма з DCOP інтэрфэйсам
-Comment[bg]=Клиент на електронна поща за TDE
-Comment[bs]=Mail program sa DCOP interfejsom
-Comment[ca]=Un programa de correu amb una interfície DCOP
-Comment[cs]=Poštvní program s DCOP rozhraním
-Comment[cy]=Rhaglen ebost gyda rhyngwyneb DCOP
-Comment[da]=E-mail-program med en DCOP-grænseflade
-Comment[de]=Mail-Programm mit DCOP-Schnittstelle
-Comment[el]=Πρόγραμμα mail με ένα περιβάλλον χρήσης DCOP
-Comment[eo]=Retposhtprogramo kun DCOP-interfaco
-Comment[es]=Programa de correo con un interfaz DCOP
-Comment[et]=E-posti rakendus DCOP-liidesega
-Comment[eu]=DCOP interfazedun posta programa
-Comment[fa]=برنامۀ نامه با واسط DCOP
-Comment[fi]=Sähköpostisovellus DCOP-rajapinnalla
-Comment[fr]=Programme de messagerie avec une interface DCOP
-Comment[fy]=E-postprogramma mei in DCOP-ynterface
-Comment[gl]=Programa de correo-e cunha interface DCOP
-Comment[hi]=डीकॉप इंटरफेस सहित एक डाक प्रोग्राम
-Comment[hu]=Levelezőprogram DCOP felülettel
-Comment[is]=Póstforrit með DCOP viðmóti
-Comment[it]=Programma di posta con un'interfaccia DCOP
-Comment[ja]=DCOP インターフェース付のメールプログラム
-Comment[kk]=DCOP интерфейсті пошта бағдарламасы
-Comment[km]=កម្មវិធី​អ៊ីមែល​ដែល​មាន​ចំណុច​ប្រទាក់ DCOP
-Comment[lt]=Pašto programa su DCOP sąsaja
-Comment[mk]=Програма за е-пошта, со DCOP-интерфејс
-Comment[ms]=Program Mel dengan antara muka DCOP
-Comment[nb]=E-postprogram med DCOP grensesnitt
-Comment[nds]=Nettpostprogramm mit DCOP-Koppelsteed
-Comment[ne]=DCOP इन्टरफेसमा मेल कार्यक्रम
-Comment[nl]=E-mailprogramma met een DCOP-interface
-Comment[nn]=E-postprogram med eit DCOP-grensesnitt
-Comment[pl]=Program pocztowy z interfejsem DCOP
-Comment[pt]=Um programa de correio electrónico com uma interface DCOP
-Comment[pt_BR]=Programa de e-mail com uma interface DCOP
-Comment[ru]=Почтовая программа с интерфейсом DCOP
-Comment[se]=E-boastaprográmma mas lea DCOP-lakta
-Comment[sk]=Poštový program s DCOP rozhraním
-Comment[sl]=Poštni program z vmesnikom DCOP
-Comment[sr]=Поштански програм са DCOP интерфејсом
-Comment[sr@Latn]=Poštanski program sa DCOP interfejsom
-Comment[sv]=E-postprogram med DCOP-gränssnitt
-Comment[ta]=dcop முகப்பு கூடிய அஞ்சல் நிரல்
-Comment[tg]=Барномаи почтавӣ бо интерфейси DCOP
-Comment[tr]=DCOP arayüzü ile posta programı
-Comment[uk]=Програма для роботи з ел. поштою з інтерфейсом DCOP
-Comment[zh_CN]=具有 DCOP 接口的邮件程序
-Comment[zh_TW]=有 DCOP 介面的郵件程式
diff --git a/kmail/dictionarycombobox.cpp b/kmail/dictionarycombobox.cpp
index 6eb1b493..b6da5abf 100644
--- a/kmail/dictionarycombobox.cpp
+++ b/kmail/dictionarycombobox.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
dictionarycombobox.cpp
This file is part of KMail, the KDE mail client.
@@ -48,10 +48,10 @@ namespace KMail {
mDefaultDictionary( 0 )
{
reloadCombo();
- connect( this, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( slotDictionaryChanged( int ) ) );
- connect( this, TQT_SIGNAL( dictionaryChanged( int ) ),
- mSpellConfig, TQT_SLOT( sSetDictionary( int ) ) );
+ connect( this, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( slotDictionaryChanged( int ) ) );
+ connect( this, TQ_SIGNAL( dictionaryChanged( int ) ),
+ mSpellConfig, TQ_SLOT( sSetDictionary( int ) ) );
}
DictionaryComboBox::~DictionaryComboBox()
diff --git a/kmail/dictionarycombobox.h b/kmail/dictionarycombobox.h
index 0a8d5c0f..101b86e7 100644
--- a/kmail/dictionarycombobox.h
+++ b/kmail/dictionarycombobox.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
dictionarycombobox.h
This file is part of KMail, the KDE mail client.
@@ -46,7 +46,7 @@ namespace KMail {
**/
class DictionaryComboBox : public TQComboBox {
- Q_OBJECT
+ TQ_OBJECT
public:
DictionaryComboBox( TQWidget * parent=0, const char * name=0 );
diff --git a/kmail/editorwatcher.cpp b/kmail/editorwatcher.cpp
index a7f25c3b..fdff42f7 100644
--- a/kmail/editorwatcher.cpp
+++ b/kmail/editorwatcher.cpp
@@ -63,7 +63,7 @@ EditorWatcher::EditorWatcher(const KURL & url, const TQString &mimeType, bool op
mDone( false )
{
assert( mUrl.isLocalFile() );
- connect( &mTimer, TQT_SIGNAL(timeout()), TQT_SLOT(checkEditDone()) );
+ connect( &mTimer, TQ_SIGNAL(timeout()), TQ_SLOT(checkEditDone()) );
}
bool EditorWatcher::start()
@@ -88,7 +88,7 @@ bool EditorWatcher::start()
mInotifyWatch = inotify_add_watch( mInotifyFd, mUrl.path().latin1(), IN_CLOSE | IN_OPEN | IN_MODIFY );
if ( mInotifyWatch >= 0 ) {
TQSocketNotifier *sn = new TQSocketNotifier( mInotifyFd, TQSocketNotifier::Read, this );
- connect( sn, TQT_SIGNAL(activated(int)), TQT_SLOT(inotifyEvent()) );
+ connect( sn, TQ_SIGNAL(activated(int)), TQ_SLOT(inotifyEvent()) );
mHaveInotify = true;
mFileModified = false;
}
@@ -101,7 +101,7 @@ bool EditorWatcher::start()
TQStringList params = KRun::processDesktopExec( *offer, list, false );
mEditor = new TDEProcess( this );
*mEditor << params;
- connect( mEditor, TQT_SIGNAL(processExited(TDEProcess*)), TQT_SLOT(editorExited()) );
+ connect( mEditor, TQ_SIGNAL(processExited(TDEProcess*)), TQ_SLOT(editorExited()) );
if ( !mEditor->start() )
return false;
mEditorRunning = true;
diff --git a/kmail/editorwatcher.h b/kmail/editorwatcher.h
index 9a408d69..9d85a061 100644
--- a/kmail/editorwatcher.h
+++ b/kmail/editorwatcher.h
@@ -37,7 +37,7 @@ namespace KMail {
*/
class EditorWatcher : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/kmail/eventsrc b/kmail/eventsrc
index 6f4c38de..fcb919f0 100644
--- a/kmail/eventsrc
+++ b/kmail/eventsrc
@@ -1,122 +1,10 @@
[!Global!]
IconName=kmail
Comment=KMail
-Comment[hi]=के-मेल
-Comment[mk]=КПошта
-Comment[ne]=केडीई मेल
-Comment[pa]=ਕੇ-ਪੱਤਰ
-Comment[sv]=Kmail
-Comment[ta]=kஅஞ்சல்
[new-mail-arrived]
Name=New Mail Arrived
-Name[af]=Nuwe pos het gearriveer
-Name[ar]=وصل بريد جديد
-Name[bg]=Имате нова поща
-Name[br]=Deuet eo ur postel nevez
-Name[bs]=Stigla vam je nova pošta
-Name[ca]=Ha arribat correu nou
-Name[cs]=Přišla nová pošta
-Name[da]=Ny post ankommet
-Name[de]=Neue Nachrichten sind angekommen
-Name[el]=Έφτασε νέα αλληλογραφία
-Name[eo]=Nova Poŝto Alvenis
-Name[es]=Hay correo nuevo
-Name[et]=Saabus uus kiri
-Name[eu]=Posta berri bat iritsi da
-Name[fa]=نامۀ جدید رسیده
-Name[fi]=Uutta postia saapunut
-Name[fr]=Un nouveau message est arrivé
-Name[fy]=Nije berjochten oankaam
-Name[gl]=Hai Correo Novo
-Name[he]=דוא"ל חדש הגיע
-Name[hu]=Új levél érkezett
-Name[is]=Nýr póstur
-Name[it]=Nuova posta arrivata
-Name[ja]=新規メール着信
-Name[kk]=Жаңа пошта келді
-Name[km]=មាន​អ៊ីមែល​ថ្មី​មក​ដល់
-Name[lt]=Atėjo naujas paštas
-Name[mk]=Пристигната е нова е-пошта
-Name[ms]=Mel Baru Sampai
-Name[nb]=Ny e-post ankommet
-Name[nds]=Niege Narichten sünd ankamen
-Name[ne]=नयाँ पत्र आइपुग्यो
-Name[nl]=Nieuwe berichten gearriveerd
-Name[nn]=Ny e-post er komen
-Name[pa]=ਨਵਾਂ ਪੱਤਰ ਆਇਆ
-Name[pl]=Otrzymano nową pocztę
-Name[pt]=Chegou Correio Novo
-Name[pt_BR]=Chegou Nova Mensagem
-Name[ru]=Получена новая почта
-Name[se]=Ođđa e-boasta bođii
-Name[sk]=Prišla nová pošta
-Name[sl]=Prispela je nova pošta
-Name[sr]=Стигла је нова пошта
-Name[sr@Latn]=Stigla je nova pošta
-Name[sv]=Ny post har anlänt
-Name[ta]=புதிய அஞ்சல் வந்துள்ளது
-Name[tg]=Почтаи нав қабул шуд
-Name[tr]=Yeni E-posta Geldi
-Name[uk]=Отримана нова пошта
-Name[uz]=Янги хат келди
-Name[zh_CN]=新邮件到达
-Name[zh_TW]=您有新郵件
Comment=New mail arrived
-Comment[af]=Nuwe pos het gearriveer
-Comment[ar]=وصل بريد جديد
-Comment[bg]=Имате ново писмо
-Comment[br]=Deuet eo ur postel nevez
-Comment[bs]=Stigla vam je nova pošta
-Comment[ca]=Ha arribat correu nou
-Comment[cs]=Přišla nová pošta
-Comment[cy]=Cyrhaeddodd ebost newydd
-Comment[da]=Ny post ankommet
-Comment[de]=Neue Nachrichten sind angekommen
-Comment[el]=Έφτασε νέα αλληλογραφία
-Comment[eo]=Nova poŝto alvenis
-Comment[es]=Hay correo nuevo
-Comment[et]=Saabus uus kiri
-Comment[eu]=Posta berri bat iritsi da
-Comment[fa]=نامۀ جدید رسیده
-Comment[fi]=Uutta postia saapunut
-Comment[fr]=Un nouveau message est arrivé
-Comment[fy]=Nij berjocht oankaam
-Comment[gl]=Hai correo novo
-Comment[he]=דוא"ל חדש הגיע
-Comment[hu]=Új levél érkezett
-Comment[is]=Nýr póstur
-Comment[it]=Nuova posta
-Comment[ja]=新規メール着信
-Comment[kk]=Жаңа пошта келді
-Comment[km]=មាន​អ៊ីមែល​ថ្មី​មក​ដល់
-Comment[lt]=Atėjo naujas paštas
-Comment[mk]=Пристигната е нова е-пошта
-Comment[ms]=Mel baru sampai
-Comment[nb]=Ny e-post ankommet
-Comment[nds]=Niege Narichten sünd ankamen
-Comment[ne]=नयाँ पत्र आइपुग्यो
-Comment[nl]=Nieuw bericht ontvangen
-Comment[nn]=Ny e-post er komen
-Comment[pa]=ਨਵਾਂ ਪੱਤਰ ਆਇਆ
-Comment[pl]=Otrzymano nową pocztę
-Comment[pt]=Chegou correio novo
-Comment[pt_BR]=Chegou Nova Mensagem
-Comment[ru]=Получена новая почта
-Comment[se]=Ođđa e-boasta bođii
-Comment[sk]=Prišla nová pošta
-Comment[sl]=Prispela je nova pošta
-Comment[sr]=Стигла је нова пошта
-Comment[sr@Latn]=Stigla je nova pošta
-Comment[sv]=Ny post har anlänt
-Comment[ta]=புதிய அஞ்சல் வந்துள்ளது
-Comment[tg]=Почтаи нав қабул шуд
-Comment[tr]=Yeni e-posta geldi
-Comment[uk]=Надійшла нова пошта
-Comment[uz]=Янги хат келди
-Comment[zh_CN]=新邮件到达
-Comment[zh_TW]=您有新郵件
default_sound=
default_presentation=0
# None = 0, Sound = 1, Messagebox = 2, Logfile = 4, Stderr = 8, PassivePopup = 16, Execute = 32
-
diff --git a/kmail/expirejob.cpp b/kmail/expirejob.cpp
index a3749947..b38ad294 100644
--- a/kmail/expirejob.cpp
+++ b/kmail/expirejob.cpp
@@ -107,7 +107,7 @@ void ExpireJob::execute()
mFolderOpen = true;
mCurrentIndex = storage->count()-1;
kdDebug(5006) << "ExpireJob: starting to expire in folder " << mSrcFolder->location() << endl;
- connect( &mTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotDoWork() ) );
+ connect( &mTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( slotDoWork() ) );
mTimer.start( EXPIREJOB_TIMERINTERVAL );
slotDoWork();
// do nothing here, we might be deleted!
@@ -169,8 +169,8 @@ void ExpireJob::done()
<< mSrcFolder->location()
<< " " << count << " messages to remove." << endl;
KMMoveCommand* cmd = new KMMoveCommand( 0, mRemovedMsgs );
- connect( cmd, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( slotMessagesMoved( KMCommand * ) ) );
+ connect( cmd, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( slotMessagesMoved( KMCommand * ) ) );
cmd->start();
moving = true;
str = i18n( "Removing 1 old message from folder %1...",
@@ -191,8 +191,8 @@ void ExpireJob::done()
<< mRemovedMsgs.count() << " messages to move to "
<< mMoveToFolder->label() << endl;
KMMoveCommand* cmd = new KMMoveCommand( mMoveToFolder, mRemovedMsgs );
- connect( cmd, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( slotMessagesMoved( KMCommand * ) ) );
+ connect( cmd, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( slotMessagesMoved( KMCommand * ) ) );
cmd->start();
moving = true;
str = i18n( "Moving 1 old message from folder %1 to folder %2...",
diff --git a/kmail/expirejob.h b/kmail/expirejob.h
index dbec3d52..4371ed0f 100644
--- a/kmail/expirejob.h
+++ b/kmail/expirejob.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++ -*-
+/*
* Copyright (c) 2004 David Faure <faure@kde.org>
*
* This program is free software; you can redistribute it and/or modify
@@ -35,7 +35,7 @@ namespace KMail {
class ExpireJob : public ScheduledJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
ExpireJob( KMFolder* folder, bool immediate );
diff --git a/kmail/expirypropertiesdialog.cpp b/kmail/expirypropertiesdialog.cpp
index f1c3274f..76e8d219 100644
--- a/kmail/expirypropertiesdialog.cpp
+++ b/kmail/expirypropertiesdialog.cpp
@@ -44,8 +44,8 @@ ExpiryPropertiesDialog::ExpiryPropertiesDialog( KMFolderTree* tree, KMFolder* fo
expireReadMailCB = new TQCheckBox( privateLayoutWidget, "expireReadMailCB" );
expireReadMailCB->setText( i18n( "Expire read mails after" ) );
- connect( expireReadMailCB, TQT_SIGNAL( toggled( bool )),
- this, TQT_SLOT( slotUpdateControls() ) );
+ connect( expireReadMailCB, TQ_SIGNAL( toggled( bool )),
+ this, TQ_SLOT( slotUpdateControls() ) );
readHBox->addWidget( expireReadMailCB );
expireReadMailSB = new TQSpinBox( privateLayoutWidget, "expireReadMailSB" );
@@ -62,8 +62,8 @@ ExpiryPropertiesDialog::ExpiryPropertiesDialog( KMFolderTree* tree, KMFolder* fo
expireUnreadMailCB = new TQCheckBox( privateLayoutWidget, "expireUnreadMailCB" );
expireUnreadMailCB->setText( i18n( "Expire unread mails after" ) );
- connect( expireUnreadMailCB, TQT_SIGNAL( toggled( bool )),
- this, TQT_SLOT( slotUpdateControls() ) );
+ connect( expireUnreadMailCB, TQ_SIGNAL( toggled( bool )),
+ this, TQ_SLOT( slotUpdateControls() ) );
unreadHBox->addWidget( expireUnreadMailCB );
expireUnreadMailSB = new TQSpinBox( privateLayoutWidget, "expireUnreadMailSB" );
@@ -92,8 +92,8 @@ ExpiryPropertiesDialog::ExpiryPropertiesDialog( KMFolderTree* tree, KMFolder* fo
moveToRB = new TQRadioButton( privateLayoutWidget, "moveToRB" );
actionsGroup->insert( moveToRB );
- connect( moveToRB, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SLOT( slotUpdateControls() ) );
+ connect( moveToRB, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SLOT( slotUpdateControls() ) );
moveToRB->setText( i18n( "Move to:" ) );
moveToHBox->addWidget( moveToRB );
diff --git a/kmail/expirypropertiesdialog.h b/kmail/expirypropertiesdialog.h
index b50a73db..36e11a7f 100644
--- a/kmail/expirypropertiesdialog.h
+++ b/kmail/expirypropertiesdialog.h
@@ -32,7 +32,7 @@ namespace KMail {
class ExpiryPropertiesDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/favoritefolderview.cpp b/kmail/favoritefolderview.cpp
index 22d093aa..543ea18f 100644
--- a/kmail/favoritefolderview.cpp
+++ b/kmail/favoritefolderview.cpp
@@ -55,15 +55,15 @@ FavoriteFolderViewItem::FavoriteFolderViewItem(FavoriteFolderView * parent, cons
{
// same stuff as in KMFolderTreeItem again, this time even with virtual methods working
init();
- connect( folder, TQT_SIGNAL(nameChanged()), TQT_SLOT(nameChanged()) );
- connect( folder, TQT_SIGNAL(iconsChanged()), TQT_SLOT(slotIconsChanged()) );
+ connect( folder, TQ_SIGNAL(nameChanged()), TQ_SLOT(nameChanged()) );
+ connect( folder, TQ_SIGNAL(iconsChanged()), TQ_SLOT(slotIconsChanged()) );
- connect( folder, TQT_SIGNAL(msgAdded(KMFolder*,TQ_UINT32)), TQT_SLOT(updateCount()) );
- connect( folder, TQT_SIGNAL(numUnreadMsgsChanged(KMFolder*)), TQT_SLOT(updateCount()) );
- connect( folder, TQT_SIGNAL(msgRemoved(KMFolder*)), TQT_SLOT(updateCount()) );
- connect( folder, TQT_SIGNAL(folderSizeChanged( KMFolder* )), TQT_SLOT(updateCount()) );
+ connect( folder, TQ_SIGNAL(msgAdded(KMFolder*,TQ_UINT32)), TQ_SLOT(updateCount()) );
+ connect( folder, TQ_SIGNAL(numUnreadMsgsChanged(KMFolder*)), TQ_SLOT(updateCount()) );
+ connect( folder, TQ_SIGNAL(msgRemoved(KMFolder*)), TQ_SLOT(updateCount()) );
+ connect( folder, TQ_SIGNAL(folderSizeChanged( KMFolder* )), TQ_SLOT(updateCount()) );
- TQTimer::singleShot( 0, this, TQT_SLOT(updateCount()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(updateCount()) );
if ( unreadCount() > 0 )
setPixmap( 0, unreadIcon( iconSize() ) );
@@ -97,23 +97,23 @@ FavoriteFolderView::FavoriteFolderView( KMMainWidget *mainWidget, TQWidget * par
setSorting( -1 );
setShowSortIndicator( false );
- connect( this, TQT_SIGNAL(selectionChanged()), TQT_SLOT(selectionChanged()) );
- connect( this, TQT_SIGNAL(clicked(TQListViewItem*)), TQT_SLOT(itemClicked(TQListViewItem*)) );
- connect( this, TQT_SIGNAL(dropped(TQDropEvent*,TQListViewItem*)), TQT_SLOT(dropped(TQDropEvent*,TQListViewItem*)) );
- connect( this, TQT_SIGNAL(contextMenuRequested(TQListViewItem*, const TQPoint &, int)),
- TQT_SLOT(contextMenu(TQListViewItem*,const TQPoint&)) );
- connect( this, TQT_SIGNAL(moved()), TQT_SLOT(notifyInstancesOnChange()) );
- connect( this, TQT_SIGNAL(triggerRefresh()), TQT_SLOT(refresh()) );
+ connect( this, TQ_SIGNAL(selectionChanged()), TQ_SLOT(selectionChanged()) );
+ connect( this, TQ_SIGNAL(clicked(TQListViewItem*)), TQ_SLOT(itemClicked(TQListViewItem*)) );
+ connect( this, TQ_SIGNAL(dropped(TQDropEvent*,TQListViewItem*)), TQ_SLOT(dropped(TQDropEvent*,TQListViewItem*)) );
+ connect( this, TQ_SIGNAL(contextMenuRequested(TQListViewItem*, const TQPoint &, int)),
+ TQ_SLOT(contextMenu(TQListViewItem*,const TQPoint&)) );
+ connect( this, TQ_SIGNAL(moved()), TQ_SLOT(notifyInstancesOnChange()) );
+ connect( this, TQ_SIGNAL(triggerRefresh()), TQ_SLOT(refresh()) );
- connect( kmkernel->folderMgr(), TQT_SIGNAL(changed()), TQT_SLOT(initializeFavorites()) );
- connect( kmkernel->dimapFolderMgr(), TQT_SIGNAL(changed()), TQT_SLOT(initializeFavorites()) );
- connect( kmkernel->imapFolderMgr(), TQT_SIGNAL(changed()), TQT_SLOT(initializeFavorites()) );
- connect( kmkernel->searchFolderMgr(), TQT_SIGNAL(changed()), TQT_SLOT(initializeFavorites()) );
+ connect( kmkernel->folderMgr(), TQ_SIGNAL(changed()), TQ_SLOT(initializeFavorites()) );
+ connect( kmkernel->dimapFolderMgr(), TQ_SIGNAL(changed()), TQ_SLOT(initializeFavorites()) );
+ connect( kmkernel->imapFolderMgr(), TQ_SIGNAL(changed()), TQ_SLOT(initializeFavorites()) );
+ connect( kmkernel->searchFolderMgr(), TQ_SIGNAL(changed()), TQ_SLOT(initializeFavorites()) );
- connect( kmkernel->folderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)), TQT_SLOT(folderRemoved(KMFolder*)) );
- connect( kmkernel->dimapFolderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)), TQT_SLOT(folderRemoved(KMFolder*)) );
- connect( kmkernel->imapFolderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)), TQT_SLOT(folderRemoved(KMFolder*)) );
- connect( kmkernel->searchFolderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)), TQT_SLOT(folderRemoved(KMFolder*)) );
+ connect( kmkernel->folderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)), TQ_SLOT(folderRemoved(KMFolder*)) );
+ connect( kmkernel->dimapFolderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)), TQ_SLOT(folderRemoved(KMFolder*)) );
+ connect( kmkernel->imapFolderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)), TQ_SLOT(folderRemoved(KMFolder*)) );
+ connect( kmkernel->searchFolderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)), TQ_SLOT(folderRemoved(KMFolder*)) );
TQFont f = font();
f.setItalic( true );
@@ -153,7 +153,7 @@ void FavoriteFolderView::readConfig()
ensureItemVisible( firstChild() );
// folder tree is not yet populated at this point
- TQTimer::singleShot( 0, this, TQT_SLOT(initializeFavorites()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(initializeFavorites()) );
readColorConfig();
mReadingConfig = false;
@@ -334,18 +334,18 @@ void FavoriteFolderView::contextMenu(TQListViewItem * item, const TQPoint & poin
mainWidget()->action("empty")->plug( &contextMenu );
contextMenu.insertSeparator();
- contextMenu.insertItem( SmallIconSet("configure_shortcuts"), i18n("&Assign Shortcut..."), fti, TQT_SLOT(assignShortcut()) );
- contextMenu.insertItem( i18n("Expire..."), fti, TQT_SLOT(slotShowExpiryProperties()) );
+ contextMenu.insertItem( SmallIconSet("configure_shortcuts"), i18n("&Assign Shortcut..."), fti, TQ_SLOT(assignShortcut()) );
+ contextMenu.insertItem( i18n("Expire..."), fti, TQ_SLOT(slotShowExpiryProperties()) );
mainWidget()->action("modify")->plug( &contextMenu );
contextMenu.insertSeparator();
contextMenu.insertItem( SmallIconSet("edit-delete"), i18n("Remove From Favorites"),
- this, TQT_SLOT(removeFolder()) );
- contextMenu.insertItem( SmallIconSet("edit"), i18n("Rename Favorite"), this, TQT_SLOT(renameFolder()) );
+ this, TQ_SLOT(removeFolder()) );
+ contextMenu.insertItem( SmallIconSet("edit"), i18n("Rename Favorite"), this, TQ_SLOT(renameFolder()) );
} else {
contextMenu.insertItem( SmallIconSet("bookmark_add"), i18n("Add Favorite Folder..."),
- this, TQT_SLOT(addFolder()) );
+ this, TQ_SLOT(addFolder()) );
}
contextMenu.exec( point, 0 );
}
diff --git a/kmail/favoritefolderview.h b/kmail/favoritefolderview.h
index 19fd49a9..604c5e44 100644
--- a/kmail/favoritefolderview.h
+++ b/kmail/favoritefolderview.h
@@ -27,7 +27,7 @@ class FavoriteFolderView;
class FavoriteFolderViewItem : public KMFolderTreeItem
{
- Q_OBJECT
+ TQ_OBJECT
public:
FavoriteFolderViewItem( FavoriteFolderView *parent, const TQString & name, KMFolder* folder );
@@ -45,7 +45,7 @@ class FavoriteFolderViewItem : public KMFolderTreeItem
class FavoriteFolderView : public FolderTreeBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/filehtmlwriter.cpp b/kmail/filehtmlwriter.cpp
index c4f2d214..8c74ebb6 100644
--- a/kmail/filehtmlwriter.cpp
+++ b/kmail/filehtmlwriter.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
filehtmlwriter.cpp
This file is part of KMail, the KDE mail client.
@@ -96,7 +96,7 @@ namespace KMail {
if ( !mFile.open( IO_WriteOnly ) )
kdWarning( 5006 ) << "FileHtmlWriter: Cannot open file " << mFile.name() << endl;
else
- mStream.setDevice( &TQT_TQIODEVICE_OBJECT(mFile) );
+ mStream.setDevice( &mFile );
}
void FileHtmlWriter::embedPart( const TQCString & contentId, const TQString & url ) {
diff --git a/kmail/filehtmlwriter.h b/kmail/filehtmlwriter.h
index 87914322..768e0c58 100644
--- a/kmail/filehtmlwriter.h
+++ b/kmail/filehtmlwriter.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
filehtmlwriter.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/filterimporterexporter.cpp b/kmail/filterimporterexporter.cpp
index df91b8dc..6703ef1d 100644
--- a/kmail/filterimporterexporter.cpp
+++ b/kmail/filterimporterexporter.cpp
@@ -66,8 +66,8 @@ FilterSelectionDialog::FilterSelectionDialog( TQWidget * parent )
buttonLayout->addWidget( selectAllButton );
unselectAllButton = new KPushButton( i18n( "Unselect All" ), w );
buttonLayout->addWidget( unselectAllButton );
- connect( selectAllButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotSelectAllButton() ) );
- connect( unselectAllButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotUnselectAllButton() ) );
+ connect( selectAllButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotSelectAllButton() ) );
+ connect( unselectAllButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotUnselectAllButton() ) );
resize( 300, 350 );
}
diff --git a/kmail/filterimporterexporter.h b/kmail/filterimporterexporter.h
index 37f4aab9..fcdf1765 100644
--- a/kmail/filterimporterexporter.h
+++ b/kmail/filterimporterexporter.h
@@ -67,7 +67,7 @@ private:
};
class FilterSelectionDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
FilterSelectionDialog( TQWidget * parent = 0 );
diff --git a/kmail/filterlog.h b/kmail/filterlog.h
index 6e84d6f1..432be2f4 100644
--- a/kmail/filterlog.h
+++ b/kmail/filterlog.h
@@ -52,7 +52,7 @@ namespace KMail {
*/
class FilterLog : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/filterlogdlg.cpp b/kmail/filterlogdlg.cpp
index eaaefd79..6ea6e29d 100644
--- a/kmail/filterlogdlg.cpp
+++ b/kmail/filterlogdlg.cpp
@@ -73,8 +73,8 @@ FilterLogDialog::FilterLogDialog( TQWidget * parent )
mLogActiveBox = new TQCheckBox( i18n("&Log filter activities"), page );
mLogActiveBox->setChecked( FilterLog::instance()->isLogging() );
- connect( mLogActiveBox, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotSwitchLogState(void)) );
+ connect( mLogActiveBox, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotSwitchLogState(void)) );
TQWhatsThis::add( mLogActiveBox,
i18n( "You can turn logging of filter activities on and off here. "
"Of course, log data is collected and shown only when logging "
@@ -82,15 +82,15 @@ FilterLogDialog::FilterLogDialog( TQWidget * parent )
mLogDetailsBox = new TQVGroupBox( i18n( "Logging Details" ), page );
mLogDetailsBox->setEnabled( mLogActiveBox->isChecked() );
- connect( mLogActiveBox, TQT_SIGNAL( toggled( bool ) ),
- mLogDetailsBox, TQT_SLOT( setEnabled( bool ) ) );
+ connect( mLogActiveBox, TQ_SIGNAL( toggled( bool ) ),
+ mLogDetailsBox, TQ_SLOT( setEnabled( bool ) ) );
mLogPatternDescBox = new TQCheckBox( i18n("Log pattern description"),
mLogDetailsBox );
mLogPatternDescBox->setChecked(
FilterLog::instance()->isContentTypeEnabled( FilterLog::patternDesc ) );
- connect( mLogPatternDescBox, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotChangeLogDetail(void)) );
+ connect( mLogPatternDescBox, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotChangeLogDetail(void)) );
// TODO
//TQWhatsThis::add( mLogPatternDescBox,
// i18n( "" ) );
@@ -99,8 +99,8 @@ FilterLogDialog::FilterLogDialog( TQWidget * parent )
mLogDetailsBox );
mLogRuleEvaluationBox->setChecked(
FilterLog::instance()->isContentTypeEnabled( FilterLog::ruleResult ) );
- connect( mLogRuleEvaluationBox, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotChangeLogDetail(void)) );
+ connect( mLogRuleEvaluationBox, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotChangeLogDetail(void)) );
TQWhatsThis::add( mLogRuleEvaluationBox,
i18n( "You can control the feedback in the log concerning the "
"evaluation of the filter rules of applied filters: "
@@ -113,8 +113,8 @@ FilterLogDialog::FilterLogDialog( TQWidget * parent )
mLogDetailsBox );
mLogPatternResultBox->setChecked(
FilterLog::instance()->isContentTypeEnabled( FilterLog::patternResult ) );
- connect( mLogPatternResultBox, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotChangeLogDetail(void)) );
+ connect( mLogPatternResultBox, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotChangeLogDetail(void)) );
// TODO
//TQWhatsThis::add( mLogPatternResultBox,
// i18n( "" ) );
@@ -123,8 +123,8 @@ FilterLogDialog::FilterLogDialog( TQWidget * parent )
mLogDetailsBox );
mLogFilterActionBox->setChecked(
FilterLog::instance()->isContentTypeEnabled( FilterLog::appliedAction ) );
- connect( mLogFilterActionBox, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotChangeLogDetail(void)) );
+ connect( mLogFilterActionBox, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotChangeLogDetail(void)) );
// TODO
//TQWhatsThis::add( mLogFilterActionBox,
// i18n( "" ) );
@@ -138,8 +138,8 @@ FilterLogDialog::FilterLogDialog( TQWidget * parent )
mLogMemLimitSpin->setValue( FilterLog::instance()->getMaxLogSize() / 1024 );
mLogMemLimitSpin->setSuffix( " KB" );
mLogMemLimitSpin->setSpecialValueText( i18n("unlimited") );
- connect( mLogMemLimitSpin, TQT_SIGNAL(valueChanged(int)),
- this, TQT_SLOT(slotChangeLogMemLimit(int)) );
+ connect( mLogMemLimitSpin, TQ_SIGNAL(valueChanged(int)),
+ this, TQ_SLOT(slotChangeLogMemLimit(int)) );
TQWhatsThis::add( mLogMemLimitSpin,
i18n( "Collecting log data uses memory to temporarily store the "
"log data; here you can limit the maximum amount of memory "
@@ -147,12 +147,12 @@ FilterLogDialog::FilterLogDialog( TQWidget * parent )
"this limit then the oldest data will be discarded until "
"the limit is no longer exceeded. " ) );
- connect(FilterLog::instance(), TQT_SIGNAL(logEntryAdded(TQString)),
- this, TQT_SLOT(slotLogEntryAdded(TQString)));
- connect(FilterLog::instance(), TQT_SIGNAL(logShrinked(void)),
- this, TQT_SLOT(slotLogShrinked(void)));
- connect(FilterLog::instance(), TQT_SIGNAL(logStateChanged(void)),
- this, TQT_SLOT(slotLogStateChanged(void)));
+ connect(FilterLog::instance(), TQ_SIGNAL(logEntryAdded(TQString)),
+ this, TQ_SLOT(slotLogEntryAdded(TQString)));
+ connect(FilterLog::instance(), TQ_SIGNAL(logShrinked(void)),
+ this, TQ_SLOT(slotLogShrinked(void)));
+ connect(FilterLog::instance(), TQ_SIGNAL(logStateChanged(void)),
+ this, TQ_SLOT(slotLogStateChanged(void)));
setInitialSize( TQSize( 500, 500 ) );
#if !KDE_IS_VERSION( 3, 2, 91 )
diff --git a/kmail/filterlogdlg.h b/kmail/filterlogdlg.h
index d7b6a6dc..88daaf47 100644
--- a/kmail/filterlogdlg.h
+++ b/kmail/filterlogdlg.h
@@ -47,7 +47,7 @@ namespace KMail {
*/
class FilterLogDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/folderIface.cpp b/kmail/folderIface.cpp
index 981e1b37..a95e3e13 100644
--- a/kmail/folderIface.cpp
+++ b/kmail/folderIface.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2003 Zack Rusin <zack@kde.org>
diff --git a/kmail/folderIface.h b/kmail/folderIface.h
index e348ea6b..37e6edff 100644
--- a/kmail/folderIface.h
+++ b/kmail/folderIface.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2003 Zack Rusin <zack@kde.org>
@@ -42,7 +42,7 @@ namespace KMail {
class FolderIface : public TQObject,
public DCOPObject
{
- Q_OBJECT
+ TQ_OBJECT
//
K_DCOP
diff --git a/kmail/folderdiaacltab.cpp b/kmail/folderdiaacltab.cpp
index 6b2e85fc..94cf2d48 100644
--- a/kmail/folderdiaacltab.cpp
+++ b/kmail/folderdiaacltab.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
/**
* folderdiaacltab.cpp
*
@@ -118,9 +117,9 @@ KMail::ACLEntryDialog::ACLEntryDialog( IMAPUserIdFormat userIdFormat, const TQSt
TQLabel *noteLabel = new TQLabel( i18n( "<b>Note: </b>Renaming requires write permissions on the parent folder." ), page );
topLayout->addMultiCellWidget( noteLabel, 2, 2, 0, 2 );
- connect( mUserIdLineEdit, TQT_SIGNAL( textChanged( const TQString& ) ), TQT_SLOT( slotChanged() ) );
- connect( kabBtn, TQT_SIGNAL( clicked() ), TQT_SLOT( slotSelectAddresses() ) );
- connect( mButtonGroup, TQT_SIGNAL( clicked( int ) ), TQT_SLOT( slotChanged() ) );
+ connect( mUserIdLineEdit, TQ_SIGNAL( textChanged( const TQString& ) ), TQ_SLOT( slotChanged() ) );
+ connect( kabBtn, TQ_SIGNAL( clicked() ), TQ_SLOT( slotSelectAddresses() ) );
+ connect( mButtonGroup, TQ_SIGNAL( clicked( int ) ), TQ_SLOT( slotChanged() ) );
enableButtonOK( false );
mUserIdLineEdit->setFocus();
@@ -256,7 +255,7 @@ void KMail::FolderDiaACLTab::ListViewItem::setPermissions( unsigned int permissi
void KMail::FolderDiaACLTab::ListViewItem::load( const ACLListEntry& entry )
{
// Don't allow spaces in userids. If you need this, fix the slave->app communication,
- // since it uses space as a separator (imap4.cc, look for GETACL)
+ // since it uses space as a separator (imap4.cpp, look for GETACL)
// It's ok in distribution list names though, that's why this check is only done here
// and also why there's no validator on the lineedit.
if ( entry.userId.contains( ' ' ) )
@@ -339,12 +338,12 @@ KMail::FolderDiaACLTab::FolderDiaACLTab( KMFolderDialog* dlg, TQWidget* parent,
mListView->addColumn( i18n( "User Id" ) );
mListView->addColumn( i18n( "Permissions" ) );
- connect( mListView, TQT_SIGNAL(doubleClicked(TQListViewItem*,const TQPoint&,int)),
- TQT_SLOT(slotEditACL(TQListViewItem*)) );
- connect( mListView, TQT_SIGNAL(returnPressed(TQListViewItem*)),
- TQT_SLOT(slotEditACL(TQListViewItem*)) );
- connect( mListView, TQT_SIGNAL(currentChanged(TQListViewItem*)),
- TQT_SLOT(slotSelectionChanged(TQListViewItem*)) );
+ connect( mListView, TQ_SIGNAL(doubleClicked(TQListViewItem*,const TQPoint&,int)),
+ TQ_SLOT(slotEditACL(TQListViewItem*)) );
+ connect( mListView, TQ_SIGNAL(returnPressed(TQListViewItem*)),
+ TQ_SLOT(slotEditACL(TQListViewItem*)) );
+ connect( mListView, TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ TQ_SLOT(slotSelectionChanged(TQListViewItem*)) );
TQVBox* buttonBox = new TQVBox( mACLWidget );
buttonBox->setSpacing( KDialog::spacingHint() );
@@ -354,13 +353,13 @@ KMail::FolderDiaACLTab::FolderDiaACLTab( KMFolderDialog* dlg, TQWidget* parent,
TQWidget *spacer = new TQWidget( buttonBox );
spacer->setSizePolicy( TQSizePolicy::Minimum, TQSizePolicy::Expanding );
- connect( mAddACL, TQT_SIGNAL( clicked() ), TQT_SLOT( slotAddACL() ) );
- connect( mEditACL, TQT_SIGNAL( clicked() ), TQT_SLOT( slotEditACL() ) );
- connect( mRemoveACL, TQT_SIGNAL( clicked() ), TQT_SLOT( slotRemoveACL() ) );
+ connect( mAddACL, TQ_SIGNAL( clicked() ), TQ_SLOT( slotAddACL() ) );
+ connect( mEditACL, TQ_SIGNAL( clicked() ), TQ_SLOT( slotEditACL() ) );
+ connect( mRemoveACL, TQ_SIGNAL( clicked() ), TQ_SLOT( slotRemoveACL() ) );
mEditACL->setEnabled( false );
mRemoveACL->setEnabled( false );
- connect( this, TQT_SIGNAL( changed(bool) ), TQT_SLOT( slotChanged(bool) ) );
+ connect( this, TQ_SIGNAL( changed(bool) ), TQ_SLOT( slotChanged(bool) ) );
}
// Warning before save() this will return the url of the _parent_ folder, when creating a new one
@@ -458,8 +457,8 @@ void KMail::FolderDiaACLTab::load()
if ( state == ImapAccountBase::Error ) { // Cancelled by user, or slave can't start
slotConnectionResult( -1, TQString() );
} else if ( state == ImapAccountBase::Connecting ) {
- connect( mImapAccount, TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( slotConnectionResult(int, const TQString&) ) );
+ connect( mImapAccount, TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( slotConnectionResult(int, const TQString&) ) );
} else { // Connected
slotConnectionResult( 0, TQString() );
}
@@ -467,8 +466,8 @@ void KMail::FolderDiaACLTab::load()
void KMail::FolderDiaACLTab::slotConnectionResult( int errorCode, const TQString& errorMsg )
{
- disconnect( mImapAccount, TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( slotConnectionResult(int, const TQString&) ) );
+ disconnect( mImapAccount, TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( slotConnectionResult(int, const TQString&) ) );
if ( errorCode ) {
if ( errorCode == -1 ) // unspecified error
mLabel->setText( i18n( "Error connecting to server %1" ).arg( mImapAccount->host() ) );
@@ -479,8 +478,8 @@ void KMail::FolderDiaACLTab::slotConnectionResult( int errorCode, const TQString
}
if ( mUserRightsState != KMail::ACLJobs::Ok ) {
- connect( mImapAccount, TQT_SIGNAL( receivedUserRights( KMFolder* ) ),
- this, TQT_SLOT( slotReceivedUserRights( KMFolder* ) ) );
+ connect( mImapAccount, TQ_SIGNAL( receivedUserRights( KMFolder* ) ),
+ this, TQ_SLOT( slotReceivedUserRights( KMFolder* ) ) );
KMFolder* folder = mDlg->folder() ? mDlg->folder() : mDlg->parentFolder();
mImapAccount->getUserRights( folder, mImapPath );
}
@@ -507,15 +506,15 @@ void KMail::FolderDiaACLTab::startListing()
{
// List ACLs of folder - or its parent, if creating a new folder
mImapAccount->getACL( mDlg->folder() ? mDlg->folder() : mDlg->parentFolder(), mImapPath );
- connect( mImapAccount, TQT_SIGNAL(receivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )),
- this, TQT_SLOT(slotReceivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )) );
+ connect( mImapAccount, TQ_SIGNAL(receivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )),
+ this, TQ_SLOT(slotReceivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )) );
}
void KMail::FolderDiaACLTab::slotReceivedACL( KMFolder* folder, TDEIO::Job* job, const KMail::ACLList& aclList )
{
if ( folder == ( mDlg->folder() ? mDlg->folder() : mDlg->parentFolder() ) ) {
- disconnect( mImapAccount, TQT_SIGNAL(receivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )),
- this, TQT_SLOT(slotReceivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )) );
+ disconnect( mImapAccount, TQ_SIGNAL(receivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )),
+ this, TQ_SLOT(slotReceivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )) );
if ( job && job->error() ) {
if ( job->error() == TDEIO::ERR_UNSUPPORTED_ACTION )
@@ -728,8 +727,8 @@ bool KMail::FolderDiaACLTab::save()
if ( mDlg->isNewFolder() ) {
// The folder isn't created yet, wait for it
// It's a two-step process (mkdir+listDir) so we wait for the dir listing to be complete
- connect( parentImap, TQT_SIGNAL( directoryListingFinished(KMFolderImap*) ),
- this, TQT_SLOT( slotDirectoryListingFinished(KMFolderImap*) ) );
+ connect( parentImap, TQ_SIGNAL( directoryListingFinished(KMFolderImap*) ),
+ this, TQ_SLOT( slotDirectoryListingFinished(KMFolderImap*) ) );
} else {
slotDirectoryListingFinished( parentImap );
}
@@ -757,10 +756,10 @@ void KMail::FolderDiaACLTab::slotDirectoryListingFinished(KMFolderImap* f)
jd.total = 1; jd.done = 0; jd.parent = 0;
mImapAccount->insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotMultiSetACLResult(TDEIO::Job *)));
- connect(job, TQT_SIGNAL(aclChanged( const TQString&, int )),
- TQT_SLOT(slotACLChanged( const TQString&, int )) );
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotMultiSetACLResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(aclChanged( const TQString&, int )),
+ TQ_SLOT(slotACLChanged( const TQString&, int )) );
}
void KMail::FolderDiaACLTab::slotMultiSetACLResult(TDEIO::Job* job)
diff --git a/kmail/folderdiaacltab.h b/kmail/folderdiaacltab.h
index bc619c4e..1c65f162 100644
--- a/kmail/folderdiaacltab.h
+++ b/kmail/folderdiaacltab.h
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
/**
* folderdiaacltab.h
*
@@ -58,7 +57,7 @@ class ImapAccountBase;
* Internal class, only used by FolderDiaACLTab
*/
class ACLEntryDialog :public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -86,7 +85,7 @@ private:
*/
class FolderDiaACLTab : public FolderDiaTab
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/folderdiaquotatab.cpp b/kmail/folderdiaquotatab.cpp
index 3fdb308f..3afc0905 100644
--- a/kmail/folderdiaquotatab.cpp
+++ b/kmail/folderdiaquotatab.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
/**
* folderdiaquotatab.cpp
*
@@ -122,8 +121,8 @@ void KMail::FolderDiaQuotaTab::load()
if ( state == ImapAccountBase::Error ) { // Cancelled by user, or slave can't start
slotConnectionResult( -1, TQString() );
} else if ( state == ImapAccountBase::Connecting ) {
- connect( mImapAccount, TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( slotConnectionResult(int, const TQString&) ) );
+ connect( mImapAccount, TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( slotConnectionResult(int, const TQString&) ) );
} else { // Connected
slotConnectionResult( 0, TQString() );
}
@@ -132,8 +131,8 @@ void KMail::FolderDiaQuotaTab::load()
void KMail::FolderDiaQuotaTab::slotConnectionResult( int errorCode, const TQString& errorMsg )
{
- disconnect( mImapAccount, TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( slotConnectionResult(int, const TQString&) ) );
+ disconnect( mImapAccount, TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( slotConnectionResult(int, const TQString&) ) );
if ( errorCode ) {
if ( errorCode == -1 ) // unspecified error
mLabel->setText( i18n( "Error connecting to server %1" ).arg( mImapAccount->host() ) );
@@ -142,8 +141,8 @@ void KMail::FolderDiaQuotaTab::slotConnectionResult( int errorCode, const TQStri
mLabel->setText( TDEIO::buildErrorString( errorCode, errorMsg ) );
return;
}
- connect( mImapAccount, TQT_SIGNAL( receivedStorageQuotaInfo( KMFolder*, TDEIO::Job*, const KMail::QuotaInfo& ) ),
- this, TQT_SLOT( slotReceivedQuotaInfo( KMFolder*, TDEIO::Job*, const KMail::QuotaInfo& ) ) );
+ connect( mImapAccount, TQ_SIGNAL( receivedStorageQuotaInfo( KMFolder*, TDEIO::Job*, const KMail::QuotaInfo& ) ),
+ this, TQ_SLOT( slotReceivedQuotaInfo( KMFolder*, TDEIO::Job*, const KMail::QuotaInfo& ) ) );
KMFolder* folder = mDlg->folder() ? mDlg->folder() : mDlg->parentFolder();
mImapAccount->getStorageQuotaInfo( folder, mImapPath );
}
@@ -155,8 +154,8 @@ void KMail::FolderDiaQuotaTab::slotReceivedQuotaInfo( KMFolder* folder,
if ( folder == mDlg->folder() ? mDlg->folder() : mDlg->parentFolder() ) {
//KMFolderImap* folderImap = static_cast<KMFolderImap*>( folder->storage() );
- disconnect( mImapAccount, TQT_SIGNAL(receivedStorageQuotaInfo( KMFolder*, TDEIO::Job*, const KMail::QuotaInfo& )),
- this, TQT_SLOT(slotReceivedQuotaInfo( KMFolder*, TDEIO::Job*, const KMail::QuotaInfo& )) );
+ disconnect( mImapAccount, TQ_SIGNAL(receivedStorageQuotaInfo( KMFolder*, TDEIO::Job*, const KMail::QuotaInfo& )),
+ this, TQ_SLOT(slotReceivedQuotaInfo( KMFolder*, TDEIO::Job*, const KMail::QuotaInfo& )) );
if ( job && job->error() ) {
if ( job->error() == TDEIO::ERR_UNSUPPORTED_ACTION )
diff --git a/kmail/folderdiaquotatab.h b/kmail/folderdiaquotatab.h
index 6b260035..e5aab5ff 100644
--- a/kmail/folderdiaquotatab.h
+++ b/kmail/folderdiaquotatab.h
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
/**
* folderdiaquotatab.h
*
@@ -52,7 +51,7 @@ class ImapAccountBase;
*/
class FolderDiaQuotaTab : public FolderDiaTab
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/folderdiaquotatab_p.h b/kmail/folderdiaquotatab_p.h
index 16b6cb5a..428d4597 100644
--- a/kmail/folderdiaquotatab_p.h
+++ b/kmail/folderdiaquotatab_p.h
@@ -44,7 +44,7 @@ namespace KMail {
class QuotaWidget : public TQWidget {
- Q_OBJECT
+ TQ_OBJECT
public:
QuotaWidget( TQWidget* parent, const char* name = 0 );
diff --git a/kmail/folderjob.cpp b/kmail/folderjob.cpp
index 657d1a9b..2472df3a 100644
--- a/kmail/folderjob.cpp
+++ b/kmail/folderjob.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2003 Zack Rusin <zack@kde.org>
diff --git a/kmail/folderjob.h b/kmail/folderjob.h
index 47838044..31a6857b 100644
--- a/kmail/folderjob.h
+++ b/kmail/folderjob.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2003 Zack Rusin <zack@kde.org>
@@ -43,7 +43,7 @@ namespace KMail {
class FolderJob : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/folderpropertiesdialog.ui b/kmail/folderpropertiesdialog.ui
index 80bdfad2..d9532133 100644
--- a/kmail/folderpropertiesdialog.ui
+++ b/kmail/folderpropertiesdialog.ui
@@ -630,9 +630,9 @@
<variable>TQValueList&lt;TQGuardedPtr&lt;KMFolder&gt; &gt; mFolders;</variable>
<variable>KMFolderDir *mFolderDIr;</variable>
</variables>
-<Q_SLOTS>
+<slots>
<slot access="protected">slotChangeIcon( TQString )</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
<includes>
diff --git a/kmail/folderrequester.cpp b/kmail/folderrequester.cpp
index f2f7ec16..29c557f9 100644
--- a/kmail/folderrequester.cpp
+++ b/kmail/folderrequester.cpp
@@ -53,11 +53,11 @@ FolderRequester::FolderRequester( TQWidget *parent, KMFolderTree *tree )
TQToolButton* button = new TQToolButton( this );
button->setIconSet( TDEGlobal::iconLoader()->loadIconSet( "folder", TDEIcon::Small, 0 ) );
- connect( button, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotOpenDialog()) );
+ connect( button, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotOpenDialog()) );
setSizePolicy( TQSizePolicy( TQSizePolicy::MinimumExpanding,
TQSizePolicy::Fixed ) );
- setFocusPolicy( TQ_StrongFocus );
+ setFocusPolicy( TQWidget::StrongFocus );
}
//-----------------------------------------------------------------------------
diff --git a/kmail/folderrequester.h b/kmail/folderrequester.h
index 7434d82a..c3408d19 100644
--- a/kmail/folderrequester.h
+++ b/kmail/folderrequester.h
@@ -45,7 +45,7 @@ namespace KMail {
*/
class FolderRequester: public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/foldersetselector.h b/kmail/foldersetselector.h
index 0173327b..217e170e 100644
--- a/kmail/foldersetselector.h
+++ b/kmail/foldersetselector.h
@@ -28,7 +28,7 @@ namespace KMail {
class FolderSetSelector : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/foldershortcutdialog.cpp b/kmail/foldershortcutdialog.cpp
index 1c4e79cf..75b77fb5 100644
--- a/kmail/foldershortcutdialog.cpp
+++ b/kmail/foldershortcutdialog.cpp
@@ -71,8 +71,8 @@ FolderShortcutDialog::FolderShortcutDialog( KMFolder *folder,
mKeyButton = new KKeyButton( hb, "FolderShortcutSelector" );
new TQWidget(hb);
- connect( mKeyButton, TQT_SIGNAL( capturedShortcut( const TDEShortcut& ) ),
- this, TQT_SLOT( slotCapturedShortcut( const TDEShortcut& ) ) );
+ connect( mKeyButton, TQ_SIGNAL( capturedShortcut( const TDEShortcut& ) ),
+ this, TQ_SLOT( slotCapturedShortcut( const TDEShortcut& ) ) );
mKeyButton->setShortcut( folder->shortcut(), false );
}
diff --git a/kmail/foldershortcutdialog.h b/kmail/foldershortcutdialog.h
index 930ac36f..ccd93125 100644
--- a/kmail/foldershortcutdialog.h
+++ b/kmail/foldershortcutdialog.h
@@ -50,7 +50,7 @@ namespace KMail
class FolderShortcutDialog : public KDialogBase
{
-Q_OBJECT
+TQ_OBJECT
public:
FolderShortcutDialog( KMFolder *folder, KMMainWidget *mw,
diff --git a/kmail/folderstorage.cpp b/kmail/folderstorage.cpp
index f6d1a358..f9605df3 100644
--- a/kmail/folderstorage.cpp
+++ b/kmail/folderstorage.cpp
@@ -80,20 +80,20 @@ FolderStorage::FolderStorage( KMFolder* folder, const char* aName )
mNoChildren = false;
mRDict = 0;
mDirtyTimer = new TQTimer(this, "mDirtyTimer");
- connect(mDirtyTimer, TQT_SIGNAL(timeout()),
- this, TQT_SLOT(updateIndex()));
+ connect(mDirtyTimer, TQ_SIGNAL(timeout()),
+ this, TQ_SLOT(updateIndex()));
mHasChildren = HasNoChildren;
mContentsType = KMail::ContentsTypeMail;
- connect(this, TQT_SIGNAL(closed(KMFolder*)), mFolder, TQT_SIGNAL(closed()));
+ connect(this, TQ_SIGNAL(closed(KMFolder*)), mFolder, TQ_SIGNAL(closed()));
}
//-----------------------------------------------------------------------------
FolderStorage::~FolderStorage()
{
mJobList.setAutoDelete( true );
- TQObject::disconnect( TQT_SIGNAL(destroyed(TQObject*)), this, 0 );
+ TQObject::disconnect( TQ_SIGNAL(destroyed(TQObject*)), this, 0 );
mJobList.clear();
KMMsgDict::deleteRentry(mRDict);
}
@@ -118,8 +118,8 @@ TQString FolderStorage::dotEscape(const TQString& aStr)
void FolderStorage::addJob( FolderJob* job ) const
{
- TQObject::connect( job, TQT_SIGNAL(destroyed(TQObject*)),
- TQT_SLOT(removeJob(TQObject*)) );
+ TQObject::connect( job, TQ_SIGNAL(destroyed(TQObject*)),
+ TQ_SLOT(removeJob(TQObject*)) );
mJobList.append( job );
}
@@ -212,8 +212,8 @@ void FolderStorage::quiet(bool beQuiet)
*/
if ( !mEmitChangedTimer) {
mEmitChangedTimer= new TQTimer( this, "mEmitChangedTimer" );
- connect( mEmitChangedTimer, TQT_SIGNAL( timeout() ),
- this, TQT_SLOT( slotEmitChangedTimer() ) );
+ connect( mEmitChangedTimer, TQ_SIGNAL( timeout() ),
+ this, TQ_SLOT( slotEmitChangedTimer() ) );
}
mQuiet++;
} else {
@@ -309,8 +309,8 @@ bool FolderStorage::canAddMsgNow(KMMessage* aMsg, int* aIndex_ret)
if (!aMsg->isComplete() && msgParent && msgParent->folderType() == KMFolderTypeImap)
{
FolderJob *job = msgParent->createJob(aMsg);
- connect(job, TQT_SIGNAL(messageRetrieved(KMMessage*)),
- TQT_SLOT(reallyAddMsg(KMMessage*)));
+ connect(job, TQ_SIGNAL(messageRetrieved(KMMessage*)),
+ TQ_SLOT(reallyAddMsg(KMMessage*)));
job->start();
aMsg->setTransferInProgress( true );
return false;
@@ -1147,7 +1147,7 @@ void FolderStorage::slotProcessNextSearchBatch()
bool complete = ( end >= count() );
emit searchResult( folder(), matchingSerNums, mSearchPattern, complete );
if ( !complete )
- TQTimer::singleShot( 0, this, TQT_SLOT(slotProcessNextSearchBatch()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(slotProcessNextSearchBatch()) );
}
//-----------------------------------------------------------------------------
diff --git a/kmail/folderstorage.h b/kmail/folderstorage.h
index 9771a708..13f2ba0f 100644
--- a/kmail/folderstorage.h
+++ b/kmail/folderstorage.h
@@ -78,7 +78,7 @@ typedef TQValueList<TQ_UINT32> SerNumList;
class FolderStorage : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/foldertreebase.cpp b/kmail/foldertreebase.cpp
index 9d18138a..10d7af2f 100644
--- a/kmail/foldertreebase.cpp
+++ b/kmail/foldertreebase.cpp
@@ -235,7 +235,7 @@ void FolderTreeBase::handleMailListDrop(TQDropEvent * event, KMFolder *destinati
else
action = dndMode();
if ( action == DRAG_COPY || action == DRAG_MOVE ) {
- new MessageCopyHelper( serNums, destination, action == DRAG_MOVE, TQT_TQOBJECT(this) );
+ new MessageCopyHelper( serNums, destination, action == DRAG_MOVE, this );
}
}
}
diff --git a/kmail/foldertreebase.h b/kmail/foldertreebase.h
index 7f5c8545..49441f74 100644
--- a/kmail/foldertreebase.h
+++ b/kmail/foldertreebase.h
@@ -28,7 +28,7 @@ namespace KMail {
class FolderTreeBase : public KFolderTree
{
- Q_OBJECT
+ TQ_OBJECT
public:
FolderTreeBase( KMMainWidget *mainWidget, TQWidget *parent = 0, const char *name = 0 );
diff --git a/kmail/globalsettings.cpp b/kmail/globalsettings.cpp
index c09b0591..4a33d2cb 100644
--- a/kmail/globalsettings.cpp
+++ b/kmail/globalsettings.cpp
@@ -41,7 +41,7 @@ GlobalSettings *GlobalSettings::self()
GlobalSettings::GlobalSettings()
{
mConfigSyncTimer = new TQTimer( this, "mConfigSyncTimer" );
- connect( mConfigSyncTimer, TQT_SIGNAL( timeout() ), this, TQT_SLOT( slotSyncNow() ) );
+ connect( mConfigSyncTimer, TQ_SIGNAL( timeout() ), this, TQ_SLOT( slotSyncNow() ) );
}
void GlobalSettings::requestSync()
diff --git a/kmail/globalsettings.h b/kmail/globalsettings.h
index dd8cd5b5..8ddd2230 100644
--- a/kmail/globalsettings.h
+++ b/kmail/globalsettings.h
@@ -30,7 +30,7 @@ class TQTimer;
class GlobalSettings : public TQObject, public GlobalSettingsBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
virtual ~GlobalSettings();
diff --git a/kmail/headerlistquicksearch.cpp b/kmail/headerlistquicksearch.cpp
index eeb8d797..ab2491aa 100644
--- a/kmail/headerlistquicksearch.cpp
+++ b/kmail/headerlistquicksearch.cpp
@@ -57,8 +57,8 @@ HeaderListQuickSearch::HeaderListQuickSearch( TQWidget *parent,
TQApplication::reverseLayout()
? "clear_left"
: "locationbar_erase",
- 0, TQT_TQOBJECT(this),
- TQT_SLOT( reset() ),
+ 0, this,
+ TQ_SLOT( reset() ),
actionCollection,
"reset_quicksearch" );
resetQuickSearch->plug( parent );
@@ -84,24 +84,24 @@ HeaderListQuickSearch::HeaderListQuickSearch( TQWidget *parent,
inserStatus( StatusIgnored );
mStatusCombo->setCurrentItem( 0 );
mStatusCombo->installEventFilter( this );
- connect( mStatusCombo, TQT_SIGNAL ( activated( int ) ),
- this, TQT_SLOT( slotStatusChanged( int ) ) );
+ connect( mStatusCombo, TQ_SIGNAL ( activated( int ) ),
+ this, TQ_SLOT( slotStatusChanged( int ) ) );
label->setBuddy( mStatusCombo );
TDEToolBarButton * btn = new TDEToolBarButton( "mail_find", 0, parent,
0, i18n( "Open Full Search" ) );
- connect( btn, TQT_SIGNAL( clicked() ), TQT_SIGNAL( requestFullSearch() ) );
+ connect( btn, TQ_SIGNAL( clicked() ), TQ_SIGNAL( requestFullSearch() ) );
/* Disable the signal connected by TDEListViewSearchLine since it will call
* itemAdded during KMHeaders::readSortOrder() which will in turn result
* in getMsgBaseForItem( item ) wanting to access items which are no longer
* there. Rather rely on KMHeaders::msgAdded and its signal. */
- disconnect(listView, TQT_SIGNAL(itemAdded(TQListViewItem *)),
- this, TQT_SLOT(itemAdded(TQListViewItem *)));
+ disconnect(listView, TQ_SIGNAL(itemAdded(TQListViewItem *)),
+ this, TQ_SLOT(itemAdded(TQListViewItem *)));
KMHeaders *headers = static_cast<KMHeaders*>( listView );
- connect( headers, TQT_SIGNAL( msgAddedToListView( TQListViewItem* ) ),
- this, TQT_SLOT( itemAdded( TQListViewItem* ) ) );
+ connect( headers, TQ_SIGNAL( msgAddedToListView( TQListViewItem* ) ),
+ this, TQ_SLOT( itemAdded( TQListViewItem* ) ) );
}
@@ -112,12 +112,12 @@ HeaderListQuickSearch::~HeaderListQuickSearch()
bool HeaderListQuickSearch::eventFilter( TQObject *watched, TQEvent *event )
{
- if ( TQT_BASE_OBJECT(watched) == TQT_BASE_OBJECT(mStatusCombo) ) {
+ if ( watched == mStatusCombo ) {
KMMainWidget *mainWidget = 0;
// Travel up the parents list until we find the main widget
for ( TQWidget *curWidget = parentWidget(); curWidget; curWidget = curWidget->parentWidget() ) {
- mainWidget = ::tqqt_cast<KMMainWidget *>( curWidget );
+ mainWidget = ::tqt_cast<KMMainWidget *>( curWidget );
if ( mainWidget )
break;
}
diff --git a/kmail/headerlistquicksearch.h b/kmail/headerlistquicksearch.h
index f159c69f..56753ed9 100644
--- a/kmail/headerlistquicksearch.h
+++ b/kmail/headerlistquicksearch.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++ -*-
+/*
This file is part of KMail, the KDE mail client.
Copyright (c) 2004 Till Adam <adam@kde.org>
@@ -44,7 +44,7 @@ namespace KMail {
class HeaderListQuickSearch : public TDEListViewSearchLine
{
-Q_OBJECT
+TQ_OBJECT
public:
HeaderListQuickSearch( TQWidget *parent,
diff --git a/kmail/headerstrategy.cpp b/kmail/headerstrategy.cpp
index afa581a1..ff2b82ae 100644
--- a/kmail/headerstrategy.cpp
+++ b/kmail/headerstrategy.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
headerstrategy.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/headerstrategy.h b/kmail/headerstrategy.h
index ebb61012..9f49f1ac 100644
--- a/kmail/headerstrategy.h
+++ b/kmail/headerstrategy.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
headerstrategy.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/headerstyle.cpp b/kmail/headerstyle.cpp
index f7c2973e..6ad867a9 100644
--- a/kmail/headerstyle.cpp
+++ b/kmail/headerstyle.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
headerstyle.cpp
This file is part of KMail, the KDE mail client.
@@ -645,7 +645,7 @@ namespace KMail {
// kdDebug() << "FancyHeaderStyle::format() local zone offset (in minutes): " << lzone << endl;
- TQTime currTime = TQTime::currentTime( Qt::UTC );
+ TQTime currTime = TQTime::currentTime( TQt::UTC );
// kdDebug() << "FancyHeaderStyle::format() current time: " << currTime << endl;
diff --git a/kmail/headerstyle.h b/kmail/headerstyle.h
index ff7228d3..88143909 100644
--- a/kmail/headerstyle.h
+++ b/kmail/headerstyle.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
headerstyle.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/htmlstatusbar.cpp b/kmail/htmlstatusbar.cpp
index fecda8de..61205a7f 100644
--- a/kmail/htmlstatusbar.cpp
+++ b/kmail/htmlstatusbar.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
htmlstatusbar.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/htmlstatusbar.h b/kmail/htmlstatusbar.h
index 95af5206..caf01d7d 100644
--- a/kmail/htmlstatusbar.h
+++ b/kmail/htmlstatusbar.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
htmlstatusbar.h
This file is part of KMail, the KDE mail client.
@@ -59,7 +59,7 @@ namespace KMail {
* @author Ingo Kloecker <kloecker@kde.org>, Marc Mutz <mutz@kde.org>
**/
class HtmlStatusBar : public TQLabel {
- Q_OBJECT
+ TQ_OBJECT
public:
HtmlStatusBar( TQWidget * parent=0, const char * name=0, WFlags f=0 );
diff --git a/kmail/identitydialog.cpp b/kmail/identitydialog.cpp
index 90b4ffdd..a5c9af36 100644
--- a/kmail/identitydialog.cpp
+++ b/kmail/identitydialog.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
identitydialog.cpp
This file is part of KMail, the KDE mail client.
@@ -396,8 +396,8 @@ namespace KMail {
mTransportCombo->setEnabled( false ); // since !mTransportCheck->isChecked()
mTransportCombo->insertStringList( KMail::TransportManager::transportNames() );
glay->addWidget( mTransportCombo, row, 1 );
- connect( mTransportCheck, TQT_SIGNAL(toggled(bool)),
- mTransportCombo, TQT_SLOT(setEnabled(bool)) );
+ connect( mTransportCheck, TQ_SIGNAL(toggled(bool)),
+ mTransportCombo, TQ_SLOT(setEnabled(bool)) );
// the last row is a spacer
@@ -416,12 +416,12 @@ namespace KMail {
mCopyGlobal = new KPushButton( i18n("&Copy global templates"), tab );
mCopyGlobal->setEnabled( false );
btns->addWidget( mCopyGlobal );
- connect( mCustom, TQT_SIGNAL( toggled( bool ) ),
- mWidget, TQT_SLOT( setEnabled( bool ) ) );
- connect( mCustom, TQT_SIGNAL( toggled( bool ) ),
- mCopyGlobal, TQT_SLOT( setEnabled( bool ) ) );
- connect( mCopyGlobal, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotCopyGlobal()) );
+ connect( mCustom, TQ_SIGNAL( toggled( bool ) ),
+ mWidget, TQ_SLOT( setEnabled( bool ) ) );
+ connect( mCustom, TQ_SIGNAL( toggled( bool ) ),
+ mCopyGlobal, TQ_SLOT( setEnabled( bool ) ) );
+ connect( mCopyGlobal, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotCopyGlobal()) );
//
// Tab Widget: Signature
@@ -439,8 +439,8 @@ namespace KMail {
resize( geometry.readSizeEntry( "Identity Dialog size" ) );
mNameEdit->setFocus();
- connect( tabWidget, TQT_SIGNAL(currentChanged(TQWidget*)),
- TQT_SLOT(slotAboutToShow(TQWidget*)) );
+ connect( tabWidget, TQ_SIGNAL(currentChanged(TQWidget*)),
+ TQ_SLOT(slotAboutToShow(TQWidget*)) );
}
IdentityDialog::~IdentityDialog() {
diff --git a/kmail/identitydialog.h b/kmail/identitydialog.h
index 29b50f05..cfa27bd9 100644
--- a/kmail/identitydialog.h
+++ b/kmail/identitydialog.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
identitydialog.h
This file is part of KMail, the KDE mail client.
@@ -60,7 +60,7 @@ namespace KMail {
namespace KMail {
class IdentityDialog : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
IdentityDialog( TQWidget * parent=0, const char * name = 0 );
diff --git a/kmail/identitydrag.cpp b/kmail/identitydrag.cpp
index 88df48f6..f3c6435d 100644
--- a/kmail/identitydrag.cpp
+++ b/kmail/identitydrag.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
identitydrag.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/identitydrag.h b/kmail/identitydrag.h
index 1c2ddb0d..b7aa2250 100644
--- a/kmail/identitydrag.h
+++ b/kmail/identitydrag.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
identitydrag.h
This file is part of KMail, the KDE mail client.
@@ -42,7 +42,7 @@ namespace KMail {
@author Marc Mutz <mutz@kde.org>
**/
class IdentityDrag : public TQDragObject {
- Q_OBJECT
+ TQ_OBJECT
public:
IdentityDrag( const KPIM::Identity & ident,
diff --git a/kmail/identitylistview.cpp b/kmail/identitylistview.cpp
index c13b9d1f..f10edf7d 100644
--- a/kmail/identitylistview.cpp
+++ b/kmail/identitylistview.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
identitylistview.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/identitylistview.h b/kmail/identitylistview.h
index abe12127..eabd63d7 100644
--- a/kmail/identitylistview.h
+++ b/kmail/identitylistview.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
identitylistview.h
This file is part of KMail, the KDE mail client.
@@ -67,7 +67,7 @@ namespace KMail {
@author Marc Mutz <mutz@kde.org>
**/
class IdentityListView : public TDEListView {
- Q_OBJECT
+ TQ_OBJECT
public:
IdentityListView( TQWidget * parent=0, const char * name=0 );
diff --git a/kmail/imapaccountbase.cpp b/kmail/imapaccountbase.cpp
index 1350da29..47d169f9 100644
--- a/kmail/imapaccountbase.cpp
+++ b/kmail/imapaccountbase.cpp
@@ -1,4 +1,4 @@
-/** -*- c++ -*-
+/*
* imapaccountbase.cpp
*
* Copyright (c) 2000-2002 Michael Haeckel <haeckel@kde.org>
@@ -105,12 +105,12 @@ namespace KMail {
{
mPort = imapDefaultPort;
mBodyPartList.setAutoDelete(true);
- TDEIO::Scheduler::connect(TQT_SIGNAL(slaveError(TDEIO::Slave *, int, const TQString &)),
- this, TQT_SLOT(slotSchedulerSlaveError(TDEIO::Slave *, int, const TQString &)));
- TDEIO::Scheduler::connect(TQT_SIGNAL(slaveConnected(TDEIO::Slave *)),
- this, TQT_SLOT(slotSchedulerSlaveConnected(TDEIO::Slave *)));
- connect(&mNoopTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotNoopTimeout()));
- connect(&mIdleTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotIdleTimeout()));
+ TDEIO::Scheduler::connect(TQ_SIGNAL(slaveError(TDEIO::Slave *, int, const TQString &)),
+ this, TQ_SLOT(slotSchedulerSlaveError(TDEIO::Slave *, int, const TQString &)));
+ TDEIO::Scheduler::connect(TQ_SIGNAL(slaveConnected(TDEIO::Slave *)),
+ this, TQ_SLOT(slotSchedulerSlaveConnected(TDEIO::Slave *)));
+ connect(&mNoopTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotNoopTimeout()));
+ connect(&mIdleTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotIdleTimeout()));
}
ImapAccountBase::~ImapAccountBase() {
@@ -385,8 +385,8 @@ namespace KMail {
jd.quiet = quiet;
insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotSubscriptionResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotSubscriptionResult(TDEIO::Job *)));
}
//-----------------------------------------------------------------------------
@@ -437,8 +437,8 @@ namespace KMail {
jd.cancellable = true;
insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotGetUserRightsResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotGetUserRightsResult(TDEIO::Job *)));
}
void ImapAccountBase::slotGetUserRightsResult( TDEIO::Job* _job )
@@ -481,8 +481,8 @@ namespace KMail {
jd.cancellable = true;
insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotGetACLResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotGetACLResult(TDEIO::Job *)));
}
void ImapAccountBase::slotGetACLResult( TDEIO::Job* _job )
@@ -509,8 +509,8 @@ namespace KMail {
jd.cancellable = true;
insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotGetStorageQuotaInfoResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotGetStorageQuotaInfoResult(TDEIO::Job *)));
}
void ImapAccountBase::slotGetStorageQuotaInfoResult( TDEIO::Job* _job )
@@ -536,8 +536,8 @@ namespace KMail {
TDEIO::SimpleJob *job = TDEIO::special( getUrl(), packedArgs, false );
TDEIO::Scheduler::assignJobToSlave(mSlave, job);
- connect( job, TQT_SIGNAL(result( TDEIO::Job * ) ),
- this, TQT_SLOT( slotSimpleResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL(result( TDEIO::Job * ) ),
+ this, TQ_SLOT( slotSimpleResult( TDEIO::Job * ) ) );
} else {
/* Stop the timer, we have disconnected. We have to make sure it is
started again when a new slave appears. */
@@ -596,8 +596,8 @@ namespace KMail {
emit connectionResult( 0, TQString() ); // success
if ( mNamespaces.isEmpty() || mNamespaceToDelimiter.isEmpty() ) {
- connect( this, TQT_SIGNAL( namespacesFetched( const ImapAccountBase::nsDelimMap& ) ),
- this, TQT_SLOT( slotSaveNamespaces( const ImapAccountBase::nsDelimMap& ) ) );
+ connect( this, TQ_SIGNAL( namespacesFetched( const ImapAccountBase::nsDelimMap& ) ),
+ this, TQ_SLOT( slotSaveNamespaces( const ImapAccountBase::nsDelimMap& ) ) );
getNamespaces();
}
@@ -607,8 +607,8 @@ namespace KMail {
stream << (int) 'c';
TDEIO::SimpleJob *job = TDEIO::special( getUrl(), packedArgs, false );
TDEIO::Scheduler::assignJobToSlave( mSlave, job );
- connect( job, TQT_SIGNAL(infoMessage(TDEIO::Job*, const TQString&)),
- TQT_SLOT(slotCapabilitiesResult(TDEIO::Job*, const TQString&)) );
+ connect( job, TQ_SIGNAL(infoMessage(TDEIO::Job*, const TQString&)),
+ TQ_SLOT(slotCapabilitiesResult(TDEIO::Job*, const TQString&)) );
}
//-----------------------------------------------------------------------------
@@ -621,16 +621,16 @@ namespace KMail {
//-----------------------------------------------------------------------------
void ImapAccountBase::getNamespaces()
{
- disconnect( this, TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( getNamespaces() ) );
+ disconnect( this, TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( getNamespaces() ) );
if ( makeConnection() != Connected || !mSlave ) {
kdDebug(5006) << "getNamespaces - wait for connection" << endl;
if ( mNamespaces.isEmpty() || mNamespaceToDelimiter.isEmpty() ) {
// when the connection is established slotSchedulerSlaveConnected notifies us
} else {
// getNamespaces was called by someone else
- connect( this, TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( getNamespaces() ) );
+ connect( this, TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( getNamespaces() ) );
}
return;
}
@@ -646,14 +646,14 @@ namespace KMail {
TQString(), true, useSSL() || useTLS() );
jd.progressItem->setTotalItems( 1 );
connect ( jd.progressItem,
- TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem* ) ),
+ TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem* ) ),
this,
- TQT_SLOT( slotAbortRequested( KPIM::ProgressItem* ) ) );
+ TQ_SLOT( slotAbortRequested( KPIM::ProgressItem* ) ) );
TDEIO::SimpleJob *job = TDEIO::special( getUrl(), packedArgs, false );
TDEIO::Scheduler::assignJobToSlave( mSlave, job );
insertJob( job, jd );
- connect( job, TQT_SIGNAL( infoMessage(TDEIO::Job*, const TQString&) ),
- TQT_SLOT( slotNamespaceResult(TDEIO::Job*, const TQString&) ) );
+ connect( job, TQ_SIGNAL( infoMessage(TDEIO::Job*, const TQString&) ),
+ TQ_SLOT( slotNamespaceResult(TDEIO::Job*, const TQString&) ) );
}
//-----------------------------------------------------------------------------
@@ -958,7 +958,7 @@ namespace KMail {
if ( errorCode == TDEIO::ERR_SERVER_TIMEOUT || errorCode == TDEIO::ERR_CONNECTION_BROKEN ) {
msg = i18n("The connection to the server %1 was unexpectedly closed or timed out. It will be re-established automatically if possible.").
arg( name() );
- KMessageBox::information( TQT_TQWIDGET(kapp->activeWindow()), msg, caption, "kmailConnectionBrokenErrorDialog" );
+ KMessageBox::information( kapp->activeWindow(), msg, caption, "kmailConnectionBrokenErrorDialog" );
// Show it in the status bar, in case the user has ticked "don't show again"
if ( errorCode == TDEIO::ERR_CONNECTION_BROKEN )
KPIM::BroadcastStatus::instance()->setStatusMsg(
@@ -968,9 +968,9 @@ namespace KMail {
i18n( "The connection to account %1 timed out." ).arg( name() ) );
} else {
if ( !errors.isEmpty() )
- KMessageBox::detailedError( TQT_TQWIDGET(kapp->activeWindow()), msg, errors.join("\n").prepend("<qt>"), caption );
+ KMessageBox::detailedError( kapp->activeWindow(), msg, errors.join("\n").prepend("<qt>"), caption );
else
- KMessageBox::error( TQT_TQWIDGET(kapp->activeWindow()), msg, caption );
+ KMessageBox::error( kapp->activeWindow(), msg, caption );
}
} else { // i.e. we have a chance to continue, ask the user about it
if ( errors.count() >= 3 ) { // there is no detailedWarningContinueCancel... (#86517)
@@ -978,7 +978,7 @@ namespace KMail {
msg = TQString( "<qt>") + context + error + '\n' + errors[2];
caption = errors[0];
}
- int ret = KMessageBox::warningContinueCancel( TQT_TQWIDGET(kapp->activeWindow()), msg, caption );
+ int ret = KMessageBox::warningContinueCancel( kapp->activeWindow(), msg, caption );
if ( ret == KMessageBox::Cancel ) {
jobsKilled = true;
killAllJobs( false );
@@ -1031,10 +1031,10 @@ namespace KMail {
mCheckingSingleFolder = ( type == Single );
if ( checkingMail() )
{
- disconnect( this, TQT_SIGNAL( finishedCheck( bool, CheckStatus ) ),
- this, TQT_SLOT( slotCheckQueuedFolders() ) );
- connect( this, TQT_SIGNAL( finishedCheck( bool, CheckStatus ) ),
- this, TQT_SLOT( slotCheckQueuedFolders() ) );
+ disconnect( this, TQ_SIGNAL( finishedCheck( bool, CheckStatus ) ),
+ this, TQ_SLOT( slotCheckQueuedFolders() ) );
+ connect( this, TQ_SIGNAL( finishedCheck( bool, CheckStatus ) ),
+ this, TQ_SLOT( slotCheckQueuedFolders() ) );
} else {
slotCheckQueuedFolders();
}
@@ -1043,8 +1043,8 @@ namespace KMail {
//-----------------------------------------------------------------------------
void ImapAccountBase::slotCheckQueuedFolders()
{
- disconnect( this, TQT_SIGNAL( finishedCheck( bool, CheckStatus ) ),
- this, TQT_SLOT( slotCheckQueuedFolders() ) );
+ disconnect( this, TQ_SIGNAL( finishedCheck( bool, CheckStatus ) ),
+ this, TQ_SLOT( slotCheckQueuedFolders() ) );
TQValueList<TQGuardedPtr<KMFolder> > mSaveList = mMailCheckFolders;
mMailCheckFolders = mFoldersQueuedForChecking;
@@ -1214,8 +1214,8 @@ namespace KMail {
ImapAccountBase::jobData jd( url.url(), folder );
jd.path = path;
insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotSetStatusResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotSetStatusResult(TDEIO::Job *)));
}
void ImapAccountBase::setImapSeenStatus(KMFolder * folder, const TQString & path, bool seen)
@@ -1236,8 +1236,8 @@ namespace KMail {
ImapAccountBase::jobData jd( url.url(), folder );
jd.path = path;
insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotSetStatusResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotSetStatusResult(TDEIO::Job *)));
}
//-----------------------------------------------------------------------------
@@ -1299,9 +1299,9 @@ namespace KMail {
true,
useSSL() || useTLS() );
connect ( mListDirProgressItem,
- TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem* ) ),
+ TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem* ) ),
this,
- TQT_SLOT( slotAbortRequested( KPIM::ProgressItem* ) ) );
+ TQ_SLOT( slotAbortRequested( KPIM::ProgressItem* ) ) );
// Start with a guessed value of the old folder count plus 5%. As long
// as the list of folders doesn't constantly change, that should be good
// enough.
diff --git a/kmail/imapaccountbase.h b/kmail/imapaccountbase.h
index 3a4c4bff..3c97567f 100644
--- a/kmail/imapaccountbase.h
+++ b/kmail/imapaccountbase.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
* imapaccountbase.h
*
* Copyright (c) 2000-2002 Michael Haeckel <haeckel@kde.org>
@@ -59,7 +59,7 @@ namespace KMail {
class AttachmentStrategy;
class ImapAccountBase : public KMail::NetworkAccount {
- Q_OBJECT
+ TQ_OBJECT
protected:
ImapAccountBase( AccountManager * parent, const TQString & name, uint id );
diff --git a/kmail/imapjob.cpp b/kmail/imapjob.cpp
index dc9a98f5..ecf2b5e7 100644
--- a/kmail/imapjob.cpp
+++ b/kmail/imapjob.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2002-2003 Zack Rusin <zack@kde.org>
@@ -155,19 +155,19 @@ void ImapJob::init( JobType jt, TQString sets, KMFolderImap* folder,
true,
account->useSSL() || account->useTLS() );
jd.progressItem->setTotalItems( jd.total );
- connect ( jd.progressItem, TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem*)),
- account, TQT_SLOT( slotAbortRequested( KPIM::ProgressItem* ) ) );
+ connect ( jd.progressItem, TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem*)),
+ account, TQ_SLOT( slotAbortRequested( KPIM::ProgressItem* ) ) );
TDEIO::SimpleJob *job = TDEIO::put( url, 0, false, false, false );
TDEIO::Scheduler::assignJobToSlave( account->slave(), job );
account->insertJob( job, jd );
- connect( job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotPutMessageResult(TDEIO::Job *)) );
- connect( job, TQT_SIGNAL(dataReq(TDEIO::Job *, TQByteArray &)),
- TQT_SLOT(slotPutMessageDataReq(TDEIO::Job *, TQByteArray &)) );
- connect( job, TQT_SIGNAL(infoMessage(TDEIO::Job *, const TQString &)),
- TQT_SLOT(slotPutMessageInfoData(TDEIO::Job *, const TQString &)) );
- connect( job, TQT_SIGNAL(processedSize(TDEIO::Job *, TDEIO::filesize_t)),
- TQT_SLOT(slotProcessedSize(TDEIO::Job *, TDEIO::filesize_t)));
+ connect( job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotPutMessageResult(TDEIO::Job *)) );
+ connect( job, TQ_SIGNAL(dataReq(TDEIO::Job *, TQByteArray &)),
+ TQ_SLOT(slotPutMessageDataReq(TDEIO::Job *, TQByteArray &)) );
+ connect( job, TQ_SIGNAL(infoMessage(TDEIO::Job *, const TQString &)),
+ TQ_SLOT(slotPutMessageInfoData(TDEIO::Job *, const TQString &)) );
+ connect( job, TQ_SIGNAL(processedSize(TDEIO::Job *, TDEIO::filesize_t)),
+ TQ_SLOT(slotProcessedSize(TDEIO::Job *, TDEIO::filesize_t)));
}
}
else if ( jt == tCopyMessage || jt == tMoveMessage )
@@ -196,18 +196,18 @@ void ImapJob::init( JobType jt, TQString sets, KMFolderImap* folder,
true,
account->useSSL() || account->useTLS() );
jd.progressItem->setTotalItems( jd.total );
- connect ( jd.progressItem, TQT_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)),
- account, TQT_SLOT( slotAbortRequested(KPIM::ProgressItem* ) ) );
+ connect ( jd.progressItem, TQ_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)),
+ account, TQ_SLOT( slotAbortRequested(KPIM::ProgressItem* ) ) );
TDEIO::SimpleJob *simpleJob = TDEIO::special( url, packedArgs, false );
TDEIO::Scheduler::assignJobToSlave( account->slave(), simpleJob );
mJob = simpleJob;
account->insertJob( mJob, jd );
- connect( mJob, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotCopyMessageResult(TDEIO::Job *)) );
+ connect( mJob, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotCopyMessageResult(TDEIO::Job *)) );
if ( jt == tMoveMessage )
{
- connect( mJob, TQT_SIGNAL(infoMessage(TDEIO::Job *, const TQString &)),
- TQT_SLOT(slotCopyMessageInfoData(TDEIO::Job *, const TQString &)) );
+ connect( mJob, TQ_SIGNAL(infoMessage(TDEIO::Job *, const TQString &)),
+ TQ_SLOT(slotCopyMessageInfoData(TDEIO::Job *, const TQString &)) );
}
}
else {
@@ -317,8 +317,8 @@ void ImapJob::slotGetNextMessage()
TQStyleSheet::escape( msg->subject() ),
true,
account->useSSL() || account->useTLS() );
- connect ( jd.progressItem, TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem*)),
- account, TQT_SLOT( slotAbortRequested( KPIM::ProgressItem* ) ) );
+ connect ( jd.progressItem, TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem*)),
+ account, TQ_SLOT( slotAbortRequested( KPIM::ProgressItem* ) ) );
jd.progressItem->setTotalItems( jd.total );
TDEIO::SimpleJob *simpleJob = TDEIO::get( url, false, false );
@@ -327,18 +327,18 @@ void ImapJob::slotGetNextMessage()
account->insertJob( mJob, jd );
if ( mPartSpecifier.find( "STRUCTURE", 0, false ) != -1 )
{
- connect( mJob, TQT_SIGNAL(result(TDEIO::Job *)),
- this, TQT_SLOT(slotGetBodyStructureResult(TDEIO::Job *)) );
+ connect( mJob, TQ_SIGNAL(result(TDEIO::Job *)),
+ this, TQ_SLOT(slotGetBodyStructureResult(TDEIO::Job *)) );
} else {
- connect( mJob, TQT_SIGNAL(result(TDEIO::Job *)),
- this, TQT_SLOT(slotGetMessageResult(TDEIO::Job *)) );
+ connect( mJob, TQ_SIGNAL(result(TDEIO::Job *)),
+ this, TQ_SLOT(slotGetMessageResult(TDEIO::Job *)) );
}
- connect( mJob, TQT_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
- msgParent, TQT_SLOT(slotSimpleData(TDEIO::Job *, const TQByteArray &)) );
+ connect( mJob, TQ_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
+ msgParent, TQ_SLOT(slotSimpleData(TDEIO::Job *, const TQByteArray &)) );
if ( jd.total > 1 )
{
- connect(mJob, TQT_SIGNAL(processedSize(TDEIO::Job *, TDEIO::filesize_t)),
- this, TQT_SLOT(slotProcessedSize(TDEIO::Job *, TDEIO::filesize_t)));
+ connect(mJob, TQ_SIGNAL(processedSize(TDEIO::Job *, TDEIO::filesize_t)),
+ this, TQ_SLOT(slotProcessedSize(TDEIO::Job *, TDEIO::filesize_t)));
}
}
diff --git a/kmail/imapjob.h b/kmail/imapjob.h
index c8e00e14..cd4b9ab7 100644
--- a/kmail/imapjob.h
+++ b/kmail/imapjob.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2002-2003 Zack Rusin <zack@kde.org>
@@ -53,7 +53,7 @@ class AttachmentStrategy;
class ImapJob : public FolderJob
{
- Q_OBJECT
+ TQ_OBJECT
friend class ::KMAcctImap;
diff --git a/kmail/importarchivedialog.h b/kmail/importarchivedialog.h
index b37c519c..11bcc00d 100644
--- a/kmail/importarchivedialog.h
+++ b/kmail/importarchivedialog.h
@@ -31,7 +31,7 @@ class FolderRequester;
// TODO: Common base class for ArchiveFolderDialog and ImportArchiveDialog?
class ImportArchiveDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/importjob.cpp b/kmail/importjob.cpp
index 58f9d974..9fe9bbbe 100644
--- a/kmail/importjob.cpp
+++ b/kmail/importjob.cpp
@@ -174,7 +174,7 @@ void KMail::ImportJob::messageAdded()
mCurrentMessage = 0;
mCurrentMessageFile = 0;
- TQTimer::singleShot( 0, this, TQT_SLOT( importNextMessage() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( importNextMessage() ) );
}
void KMail::ImportJob::importNextMessage()
@@ -239,8 +239,8 @@ void KMail::ImportJob::importNextMessage()
else {
ImapJob *imapJob = new ImapJob( mCurrentMessage, ImapJob::tPutMessage,
dynamic_cast<KMFolderImap*>( mCurrentFolder->storage() ) );
- connect( imapJob, TQT_SIGNAL(result(KMail::FolderJob*)),
- TQT_SLOT(messagePutResult(KMail::FolderJob*)) );
+ connect( imapJob, TQ_SIGNAL(result(KMail::FolderJob*)),
+ TQ_SLOT(messagePutResult(KMail::FolderJob*)) );
imapJob->start();
}
}
@@ -383,8 +383,8 @@ void KMail::ImportJob::start()
TQString(),
true );
mProgressItem->setUsesBusyIndicator( true );
- connect( mProgressItem, TQT_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)),
- this, TQT_SLOT(cancelJob()) );
+ connect( mProgressItem, TQ_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)),
+ this, TQ_SLOT(cancelJob()) );
Folder nextFolder;
nextFolder.archiveDir = mArchive->directory();
diff --git a/kmail/importjob.h b/kmail/importjob.h
index 01b60bef..e7c88881 100644
--- a/kmail/importjob.h
+++ b/kmail/importjob.h
@@ -51,7 +51,7 @@ namespace KMail
*/
class ImportJob : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/index.cpp b/kmail/index.cpp
index af4f4cb5..c21e15d5 100644
--- a/kmail/index.cpp
+++ b/kmail/index.cpp
@@ -91,13 +91,13 @@ KMMsgIndex::KMMsgIndex( TQObject* parent ):
mSlowDown( false ) {
kdDebug( 5006 ) << "KMMsgIndex::KMMsgIndex()" << endl;
- connect( kmkernel->folderMgr(), TQT_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ), TQT_SLOT( slotRemoveMessage( KMFolder*, TQ_UINT32 ) ) );
- connect( kmkernel->folderMgr(), TQT_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ), TQT_SLOT( slotAddMessage( KMFolder*, TQ_UINT32 ) ) );
- connect( kmkernel->dimapFolderMgr(), TQT_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ), TQT_SLOT( slotRemoveMessage( KMFolder*, TQ_UINT32 ) ) );
- connect( kmkernel->dimapFolderMgr(), TQT_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ), TQT_SLOT( slotAddMessage( KMFolder*, TQ_UINT32 ) ) );
+ connect( kmkernel->folderMgr(), TQ_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ), TQ_SLOT( slotRemoveMessage( KMFolder*, TQ_UINT32 ) ) );
+ connect( kmkernel->folderMgr(), TQ_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ), TQ_SLOT( slotAddMessage( KMFolder*, TQ_UINT32 ) ) );
+ connect( kmkernel->dimapFolderMgr(), TQ_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ), TQ_SLOT( slotRemoveMessage( KMFolder*, TQ_UINT32 ) ) );
+ connect( kmkernel->dimapFolderMgr(), TQ_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ), TQ_SLOT( slotAddMessage( KMFolder*, TQ_UINT32 ) ) );
- connect( mTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( act() ) );
- //connect( mSyncTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( syncIndex() ) );
+ connect( mTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( act() ) );
+ //connect( mSyncTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( syncIndex() ) );
#ifdef HAVE_INDEXLIB
TDEConfigGroup cfg( KMKernel::config(), "text-index" );
@@ -116,11 +116,11 @@ KMMsgIndex::KMMsgIndex( TQObject* parent ):
mIndex = indexlib::open( mIndexPath, indexlib::open_flags::fail_if_nonexistant ).release();
}
if ( !mIndex ) {
- TQTimer::singleShot( 8000, this, TQT_SLOT( create() ) );
+ TQTimer::singleShot( 8000, this, TQ_SLOT( create() ) );
mState = s_willcreate;
} else {
if ( cfg.readBoolEntry( "creating" ) ) {
- TQTimer::singleShot( 8000, this, TQT_SLOT( continueCreation() ) );
+ TQTimer::singleShot( 8000, this, TQ_SLOT( continueCreation() ) );
mState = s_creating;
} else {
mPendingMsgs = TQValueListToVector( cfg.readIntListEntry( "pending" ) );
@@ -182,7 +182,7 @@ void KMMsgIndex::setEnabled( bool e ) {
// nothing can be done, probably
return;
case s_disabled:
- TQTimer::singleShot( 8000, this, TQT_SLOT( create() ) );
+ TQTimer::singleShot( 8000, this, TQ_SLOT( create() ) );
mState = s_willcreate;
}
} else {
@@ -265,7 +265,7 @@ void KMMsgIndex::clear() {
void KMMsgIndex::maintenance() {
#ifdef HAVE_INDEXLIB
if ( mState != s_idle || kapp->hasPendingEvents() ) {
- TQTimer::singleShot( 8000, this, TQT_SLOT( maintenance() ) );
+ TQTimer::singleShot( 8000, this, TQ_SLOT( maintenance() ) );
return;
}
mIndex->maintenance();
@@ -404,10 +404,10 @@ bool KMMsgIndex::startQuery( KMSearch* s ) {
kdDebug( 5006 ) << "KMMsgIndex::startQuery( . ) starting query" << endl;
Search* search = new Search( s );
- connect( search, TQT_SIGNAL( finished( bool ) ), s, TQT_SIGNAL( finished( bool ) ) );
- connect( search, TQT_SIGNAL( finished( bool ) ), s, TQT_SLOT( indexFinished() ) );
- connect( search, TQT_SIGNAL( destroyed( TQObject* ) ), TQT_SLOT( removeSearch( TQObject* ) ) );
- connect( search, TQT_SIGNAL( found( TQ_UINT32 ) ), s, TQT_SIGNAL( found( TQ_UINT32 ) ) );
+ connect( search, TQ_SIGNAL( finished( bool ) ), s, TQ_SIGNAL( finished( bool ) ) );
+ connect( search, TQ_SIGNAL( finished( bool ) ), s, TQ_SLOT( indexFinished() ) );
+ connect( search, TQ_SIGNAL( destroyed( TQObject* ) ), TQ_SLOT( removeSearch( TQObject* ) ) );
+ connect( search, TQ_SIGNAL( found( TQ_UINT32 ) ), s, TQ_SIGNAL( found( TQ_UINT32 ) ) );
mSearches.push_back( search );
return true;
}
@@ -517,7 +517,7 @@ void KMMsgIndex::removeMessage( TQ_UINT32 serNum ) {
mIndex->remove_doc( TQString::number( serNum ).latin1() );
++mMaintenanceCount;
if ( mMaintenanceCount > MaintenanceLimit && mRemovedMsgs.empty() ) {
- TQTimer::singleShot( 100, this, TQT_SLOT( maintenance() ) );
+ TQTimer::singleShot( 100, this, TQ_SLOT( maintenance() ) );
}
#endif
}
@@ -535,7 +535,7 @@ KMMsgIndex::Search::Search( KMSearch* s ):
mTimer( new TQTimer( this, "mTimer" ) ),
mResidual( new KMSearchPattern ),
mState( s_starting ) {
- connect( mTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( act() ) );
+ connect( mTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( act() ) );
mTimer->start( 0 );
}
diff --git a/kmail/index.h b/kmail/index.h
index 015bc106..4ac6ca45 100644
--- a/kmail/index.h
+++ b/kmail/index.h
@@ -50,7 +50,7 @@ class KMSearchRule;
class KMSearchPattern;
class KMMsgIndex : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
explicit KMMsgIndex( TQObject* parent );
@@ -194,7 +194,7 @@ class KMMsgIndex : public TQObject {
class KMMsgIndex::Search : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
explicit Search( KMSearch* s );
diff --git a/kmail/interfaces/bodypart.h b/kmail/interfaces/bodypart.h
index 43490632..c70441cf 100644
--- a/kmail/interfaces/bodypart.h
+++ b/kmail/interfaces/bodypart.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
bodypart.h
This file is part of KMail's plugin interface.
diff --git a/kmail/interfaces/bodypartformatter.h b/kmail/interfaces/bodypartformatter.h
index 14fedc61..7fb3d19a 100644
--- a/kmail/interfaces/bodypartformatter.h
+++ b/kmail/interfaces/bodypartformatter.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
bodypartformatter.h
This file is part of KMail's plugin interface.
diff --git a/kmail/interfaces/bodyparturlhandler.h b/kmail/interfaces/bodyparturlhandler.h
index 78d566c1..885e55d0 100644
--- a/kmail/interfaces/bodyparturlhandler.h
+++ b/kmail/interfaces/bodyparturlhandler.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
interfaces/bodyparturlhandler.h
This file is part of KMail's plugin interface.
diff --git a/kmail/interfaces/htmlwriter.h b/kmail/interfaces/htmlwriter.h
index 179841c1..f7a76ad5 100644
--- a/kmail/interfaces/htmlwriter.h
+++ b/kmail/interfaces/htmlwriter.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
interfaces/htmlwriter.h
This file is part of KMail's plugin interface.
diff --git a/kmail/interfaces/observable.h b/kmail/interfaces/observable.h
index 10d14dfa..3e004ba6 100644
--- a/kmail/interfaces/observable.h
+++ b/kmail/interfaces/observable.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
observable.h
This file is part of KMail's plugin interface.
diff --git a/kmail/interfaces/observer.h b/kmail/interfaces/observer.h
index 31cbc80a..75d28c35 100644
--- a/kmail/interfaces/observer.h
+++ b/kmail/interfaces/observer.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
observer.h
This file is part of KMail's plugin interface.
diff --git a/kmail/interfaces/rulewidgethandler.h b/kmail/interfaces/rulewidgethandler.h
index 33095223..edc581b1 100644
--- a/kmail/interfaces/rulewidgethandler.h
+++ b/kmail/interfaces/rulewidgethandler.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
interfaces/rulewidgethandler.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/interfaces/urlhandler.h b/kmail/interfaces/urlhandler.h
index 1eb0e365..2ad9295e 100644
--- a/kmail/interfaces/urlhandler.h
+++ b/kmail/interfaces/urlhandler.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
interfaces/urlhandler.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/isubject.h b/kmail/isubject.h
index 8bad40c4..10fc7b37 100644
--- a/kmail/isubject.h
+++ b/kmail/isubject.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2003 Carsten Burghardt <burghardt@kde.org>
diff --git a/kmail/jobscheduler.cpp b/kmail/jobscheduler.cpp
index d5374fe4..dc2ef506 100644
--- a/kmail/jobscheduler.cpp
+++ b/kmail/jobscheduler.cpp
@@ -39,7 +39,7 @@ JobScheduler::JobScheduler( TQObject* parent, const char* name )
mPendingImmediateTasks( 0 ),
mCurrentTask( 0 ), mCurrentJob( 0 )
{
- connect( &mTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotRunNextJob() ) );
+ connect( &mTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( slotRunNextJob() ) );
// No need to start the internal timer yet, we wait for a task to be scheduled
}
@@ -212,7 +212,7 @@ void JobScheduler::runTaskNow( ScheduledTask* task )
}
// Register the job in the folder. This makes it autodeleted if the folder is deleted.
mCurrentTask->folder()->storage()->addJob( mCurrentJob );
- connect( mCurrentJob, TQT_SIGNAL( finished() ), this, TQT_SLOT( slotJobFinished() ) );
+ connect( mCurrentJob, TQ_SIGNAL( finished() ), this, TQ_SLOT( slotJobFinished() ) );
mCurrentJob->start();
}
diff --git a/kmail/jobscheduler.h b/kmail/jobscheduler.h
index 52e2cb85..0c649a57 100644
--- a/kmail/jobscheduler.h
+++ b/kmail/jobscheduler.h
@@ -95,7 +95,7 @@ private:
*/
class JobScheduler : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
JobScheduler( TQObject* parent, const char* name = 0 );
diff --git a/kmail/kcm_kmail.cpp b/kmail/kcm_kmail.cpp
index fa0e2fed..07dc1d72 100644
--- a/kmail/kcm_kmail.cpp
+++ b/kmail/kcm_kmail.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* This file: Copyright (C) 2000 Espen Sand, espen@kde.org
* Copyright (C) 2001-2003 Marc Mutz, mutz@kde.org
diff --git a/kmail/keyresolver.cpp b/kmail/keyresolver.cpp
index 76d4ae8f..c0b0cf69 100644
--- a/kmail/keyresolver.cpp
+++ b/kmail/keyresolver.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
keyresolver.cpp
This file is part of libkleopatra, the KDE keymanagement library
@@ -335,7 +335,7 @@ static std::vector<GpgME::Key> trustedOrConfirmed( const std::vector<GpgME::Key>
}
namespace {
- struct IsNotForFormat : public std::unary_function<GpgME::Key,bool> {
+ struct IsNotForFormat : public std::function<bool(GpgME::Key)> {
IsNotForFormat( Kleo::CryptoMessageFormat f ) : format( f ) {}
bool operator()( const GpgME::Key & key ) const {
@@ -347,7 +347,7 @@ namespace {
const Kleo::CryptoMessageFormat format;
};
- struct IsForFormat : std::unary_function<GpgME::Key,bool> {
+ struct IsForFormat : std::function<bool(GpgME::Key)> {
explicit IsForFormat( Kleo::CryptoMessageFormat f )
: protocol( isOpenPGP( f ) ? GpgME::Context::OpenPGP :
isSMIME( f ) ? GpgME::Context::CMS :
@@ -364,7 +364,7 @@ namespace {
-class Kleo::KeyResolver::SigningPreferenceCounter : public std::unary_function<Kleo::KeyResolver::Item,void> {
+class Kleo::KeyResolver::SigningPreferenceCounter : public std::function<void(Kleo::KeyResolver::Item)> {
public:
SigningPreferenceCounter()
: mTotal( 0 ),
@@ -409,7 +409,7 @@ void Kleo::KeyResolver::SigningPreferenceCounter::operator()( const Kleo::KeyRes
-class Kleo::KeyResolver::EncryptionPreferenceCounter : public std::unary_function<Item,void> {
+class Kleo::KeyResolver::EncryptionPreferenceCounter : public std::function<void(Item)> {
const Kleo::KeyResolver * _this;
public:
EncryptionPreferenceCounter( const Kleo::KeyResolver * kr, EncryptionPreference defaultPreference )
@@ -476,7 +476,7 @@ void Kleo::KeyResolver::EncryptionPreferenceCounter::operator()( Item & item ) {
namespace {
- class FormatPreferenceCounterBase : public std::unary_function<Kleo::KeyResolver::Item,void> {
+ class FormatPreferenceCounterBase : public std::function<void(Kleo::KeyResolver::Item)> {
public:
FormatPreferenceCounterBase()
: mTotal( 0 ),
@@ -1701,8 +1701,8 @@ std::vector<GpgME::Key> Kleo::KeyResolver::lookup( const TQStringList & patterns
std::vector<GpgME::Key> result;
if ( mCryptoMessageFormats & (InlineOpenPGPFormat|OpenPGPMIMEFormat) )
if ( const Kleo::CryptoBackend::Protocol * p = Kleo::CryptoBackendFactory::instance()->openpgp() ) {
- std::auto_ptr<Kleo::KeyListJob> job( p->keyListJob( false, false, true ) ); // use validating keylisting
- if ( job.get() ) {
+ std::unique_ptr<Kleo::KeyListJob> job( p->keyListJob( false, false, true ) ); // use validating keylisting
+ if ( job ) {
std::vector<GpgME::Key> keys;
job->exec( patterns, secret, keys );
result.insert( result.end(), keys.begin(), keys.end() );
@@ -1710,8 +1710,8 @@ std::vector<GpgME::Key> Kleo::KeyResolver::lookup( const TQStringList & patterns
}
if ( mCryptoMessageFormats & (SMIMEFormat|SMIMEOpaqueFormat) )
if ( const Kleo::CryptoBackend::Protocol * p = Kleo::CryptoBackendFactory::instance()->smime() ) {
- std::auto_ptr<Kleo::KeyListJob> job( p->keyListJob( false, false, true ) ); // use validating keylisting
- if ( job.get() ) {
+ std::unique_ptr<Kleo::KeyListJob> job( p->keyListJob( false, false, true ) ); // use validating keylisting
+ if ( job ) {
std::vector<GpgME::Key> keys;
job->exec( patterns, secret, keys );
result.insert( result.end(), keys.begin(), keys.end() );
diff --git a/kmail/keyresolver.h b/kmail/keyresolver.h
index c7bdfe25..2f7bd936 100644
--- a/kmail/keyresolver.h
+++ b/kmail/keyresolver.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
keyresolver.h
This file is part of libkleopatra, the KDE keymanagement library
diff --git a/kmail/kleo_util.h b/kmail/kleo_util.h
index 663f0b63..c7cfd99b 100644
--- a/kmail/kleo_util.h
+++ b/kmail/kleo_util.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kleo_util.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/kmaccount.cpp b/kmail/kmaccount.cpp
index 825e0cef..a15def1f 100644
--- a/kmail/kmaccount.cpp
+++ b/kmail/kmaccount.cpp
@@ -51,8 +51,8 @@ KMPrecommand::KMPrecommand(const TQString &precommand, TQObject *parent)
mPrecommandProcess.setUseShell(true);
mPrecommandProcess << precommand;
- connect(&mPrecommandProcess, TQT_SIGNAL(processExited(TDEProcess *)),
- TQT_SLOT(precommandExited(TDEProcess *)));
+ connect(&mPrecommandProcess, TQ_SIGNAL(processExited(TDEProcess *)),
+ TQ_SLOT(precommandExited(TDEProcess *)));
}
//-----------------------------------------------------------------------------
@@ -207,7 +207,7 @@ void KMAccount::sendReceipt(KMMessage* aMsg)
KMMessage *newMsg = aMsg->createDeliveryReceipt();
if (newMsg) {
mReceipts.append(newMsg);
- TQTimer::singleShot( 0, this, TQT_SLOT( sendReceipts() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( sendReceipts() ) );
}
}
@@ -351,7 +351,7 @@ void KMAccount::installTimer()
if(!mTimer)
{
mTimer = new TQTimer(0, "mTimer");
- connect(mTimer,TQT_SIGNAL(timeout()),TQT_SLOT(mailCheck()));
+ connect(mTimer,TQ_SIGNAL(timeout()),TQ_SLOT(mailCheck()));
}
else
{
@@ -380,8 +380,8 @@ bool KMAccount::runPrecommand(const TQString &precommand)
BroadcastStatus::instance()->setStatusMsg(
i18n("Executing precommand %1").arg(precommand ));
- connect(&precommandProcess, TQT_SIGNAL(finished(bool)),
- TQT_SLOT(precommandExited(bool)));
+ connect(&precommandProcess, TQ_SIGNAL(finished(bool)),
+ TQ_SLOT(precommandExited(bool)));
kdDebug(5006) << "Running precommand " << precommand << endl;
if (!precommandProcess.start()) return false;
diff --git a/kmail/kmaccount.h b/kmail/kmaccount.h
index f0455b3b..60a23c51 100644
--- a/kmail/kmaccount.h
+++ b/kmail/kmaccount.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++ -*-
+/*
* kmail: KDE mail client
* Copyright (c) 1996-1998 Stefan Taferner <taferner@kde.org>
*
@@ -51,7 +51,7 @@ typedef TQValueList< ::KMAccount* > AccountList;
class KMPrecommand : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -73,7 +73,7 @@ protected:
class KMAccount: public TQObject, public KAccount
{
- Q_OBJECT
+ TQ_OBJECT
friend class KMail::AccountManager;
friend class ::KMail::FolderJob;
diff --git a/kmail/kmacctcachedimap.cpp b/kmail/kmacctcachedimap.cpp
index 9de08019..4d07b152 100644
--- a/kmail/kmacctcachedimap.cpp
+++ b/kmail/kmacctcachedimap.cpp
@@ -186,8 +186,8 @@ void KMAcctCachedImap::slotCheckQueuedFolders()
mMailCheckFolders.append( mFoldersQueuedForChecking.front() );
mFoldersQueuedForChecking.pop_front();
if ( mFoldersQueuedForChecking.isEmpty() )
- disconnect( this, TQT_SIGNAL( finishedCheck( bool, CheckStatus ) ),
- this, TQT_SLOT( slotCheckQueuedFolders() ) );
+ disconnect( this, TQ_SIGNAL( finishedCheck( bool, CheckStatus ) ),
+ this, TQ_SLOT( slotCheckQueuedFolders() ) );
kmkernel->acctMgr()->singleCheckMail(this, true);
mMailCheckFolders.clear();
@@ -246,20 +246,20 @@ void KMAcctCachedImap::processNewMail( KMFolderCachedImap* folder,
TQString(),
true, // can be cancelled
useSSL() || useTLS() );
- connect( mMailCheckProgressItem, TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem* ) ),
- this, TQT_SLOT( slotProgressItemCanceled( KPIM::ProgressItem* ) ) );
+ connect( mMailCheckProgressItem, TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem* ) ),
+ this, TQ_SLOT( slotProgressItemCanceled( KPIM::ProgressItem* ) ) );
folder->setAccount(this);
- connect(folder, TQT_SIGNAL(folderComplete(KMFolderCachedImap*, bool)),
- this, TQT_SLOT(postProcessNewMail(KMFolderCachedImap*, bool)));
+ connect(folder, TQ_SIGNAL(folderComplete(KMFolderCachedImap*, bool)),
+ this, TQ_SLOT(postProcessNewMail(KMFolderCachedImap*, bool)));
folder->serverSync( recurse );
}
void KMAcctCachedImap::postProcessNewMail( KMFolderCachedImap* folder, bool )
{
mNoopTimer.start( 60000 ); // send a noop every minute to avoid "connection broken" errors
- disconnect(folder, TQT_SIGNAL(folderComplete(KMFolderCachedImap*, bool)),
- this, TQT_SLOT(postProcessNewMail(KMFolderCachedImap*, bool)));
+ disconnect(folder, TQ_SIGNAL(folderComplete(KMFolderCachedImap*, bool)),
+ this, TQ_SLOT(postProcessNewMail(KMFolderCachedImap*, bool)));
mMailCheckProgressItem->setComplete();
mMailCheckProgressItem = 0;
diff --git a/kmail/kmacctcachedimap.h b/kmail/kmacctcachedimap.h
index a580b90c..8f9fd6c9 100644
--- a/kmail/kmacctcachedimap.h
+++ b/kmail/kmacctcachedimap.h
@@ -53,7 +53,7 @@ namespace TDEIO {
class KMAcctCachedImap: public KMail::ImapAccountBase
{
- Q_OBJECT
+ TQ_OBJECT
friend class ::KMail::ImapJob;
friend class ::KMail::CachedImapJob;
diff --git a/kmail/kmacctimap.cpp b/kmail/kmacctimap.cpp
index 8fd2bea0..6ee04967 100644
--- a/kmail/kmacctimap.cpp
+++ b/kmail/kmacctimap.cpp
@@ -64,9 +64,9 @@ KMAcctImap::KMAcctImap(AccountManager* aOwner, const TQString& aAccountName, uin
mScheduler = 0;
mNoopTimer.start( 60000 ); // // send a noop every minute
mOpenFolders.setAutoDelete(true);
- connect(kmkernel->imapFolderMgr(), TQT_SIGNAL(changed()),
- this, TQT_SLOT(slotUpdateFolderList()));
- connect(&mErrorTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotResetConnectionError()));
+ connect(kmkernel->imapFolderMgr(), TQ_SIGNAL(changed()),
+ this, TQ_SLOT(slotUpdateFolderList()));
+ connect(&mErrorTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotResetConnectionError()));
TQString serNumUri = locateLocal( "data", "kmail/unfiltered." +
TQString("%1").arg(KAccount::id()) );
@@ -304,9 +304,9 @@ void KMAcctImap::processNewMail(bool interactive)
mMailCheckProgressItem->setTotalItems( mMailCheckFolders.count() );
connect ( mMailCheckProgressItem,
- TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem*) ),
+ TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem*) ),
this,
- TQT_SLOT( slotMailCheckCanceled() ) );
+ TQ_SLOT( slotMailCheckCanceled() ) );
TQValueList<TQGuardedPtr<KMFolder> >::Iterator it;
// first get the current count of unread-messages
@@ -336,8 +336,8 @@ void KMAcctImap::processNewMail(bool interactive)
mCountRemainChecks++;
if (imapFolder->isSelected()) {
- connect(imapFolder, TQT_SIGNAL(folderComplete(KMFolderImap*, bool)),
- this, TQT_SLOT(postProcessNewMail(KMFolderImap*, bool)));
+ connect(imapFolder, TQ_SIGNAL(folderComplete(KMFolderImap*, bool)),
+ this, TQ_SLOT(postProcessNewMail(KMFolderImap*, bool)));
imapFolder->getFolder();
} else if ( kmkernel->filterMgr()->atLeastOneIncomingFilterAppliesTo( id() ) &&
imapFolder->folder()->isSystemFolder() &&
@@ -345,13 +345,13 @@ void KMAcctImap::processNewMail(bool interactive)
imapFolder->open("acctimap"); // will be closed in the folderSelected slot
// first get new headers before we select the folder
imapFolder->setSelected( true );
- connect( imapFolder, TQT_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
- this, TQT_SLOT( slotFolderSelected( KMFolderImap*, bool) ) );
+ connect( imapFolder, TQ_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
+ this, TQ_SLOT( slotFolderSelected( KMFolderImap*, bool) ) );
imapFolder->getFolder();
}
else {
- connect(imapFolder, TQT_SIGNAL(numUnreadMsgsChanged(KMFolder*)),
- this, TQT_SLOT(postProcessNewMail(KMFolder*)));
+ connect(imapFolder, TQ_SIGNAL(numUnreadMsgsChanged(KMFolder*)),
+ this, TQ_SLOT(postProcessNewMail(KMFolder*)));
bool ok = imapFolder->processNewMail(interactive);
if (!ok)
{
@@ -382,15 +382,15 @@ void KMAcctImap::processNewMail(bool interactive)
//-----------------------------------------------------------------------------
void KMAcctImap::postProcessNewMail(KMFolderImap* folder, bool)
{
- disconnect(folder, TQT_SIGNAL(folderComplete(KMFolderImap*, bool)),
- this, TQT_SLOT(postProcessNewMail(KMFolderImap*, bool)));
+ disconnect(folder, TQ_SIGNAL(folderComplete(KMFolderImap*, bool)),
+ this, TQ_SLOT(postProcessNewMail(KMFolderImap*, bool)));
postProcessNewMail(static_cast<KMFolder*>(folder->folder()));
}
void KMAcctImap::postProcessNewMail( KMFolder * folder )
{
- disconnect( folder->storage(), TQT_SIGNAL(numUnreadMsgsChanged(KMFolder*)),
- this, TQT_SLOT(postProcessNewMail(KMFolder*)) );
+ disconnect( folder->storage(), TQ_SIGNAL(numUnreadMsgsChanged(KMFolder*)),
+ this, TQ_SLOT(postProcessNewMail(KMFolder*)) );
if ( mMailCheckProgressItem ) {
mMailCheckProgressItem->incCompletedItems();
@@ -420,7 +420,7 @@ void KMAcctImap::postProcessNewMail( KMFolder * folder )
if (!mScheduler) {
mScheduler = new KMail::ActionScheduler( set, filters );
mScheduler->setAccountId( id() );
- connect( mScheduler, TQT_SIGNAL(filtered(TQ_UINT32)), this, TQT_SLOT(slotFiltered(TQ_UINT32)) );
+ connect( mScheduler, TQ_SIGNAL(filtered(TQ_UINT32)), this, TQ_SLOT(slotFiltered(TQ_UINT32)) );
} else {
mScheduler->setFilterList( filters );
}
@@ -469,8 +469,8 @@ void KMAcctImap::postProcessNewMail( KMFolder * folder )
msg->setTransferInProgress(true);
if ( !msg->isComplete() ) {
FolderJob *job = folder->createJob(msg);
- connect(job, TQT_SIGNAL(messageRetrieved(KMMessage*)),
- TQT_SLOT(slotFilterMsg(KMMessage*)));
+ connect(job, TQ_SIGNAL(messageRetrieved(KMMessage*)),
+ TQ_SLOT(slotFilterMsg(KMMessage*)));
job->start();
} else {
mFilterSerNumsToSave.remove( TQString( "%1" ).arg( *filterIt ) );
@@ -571,8 +571,8 @@ void KMAcctImap::slotResetConnectionError()
void KMAcctImap::slotFolderSelected( KMFolderImap* folder, bool )
{
folder->setSelected( false );
- disconnect( folder, TQT_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
- this, TQT_SLOT( slotFolderSelected( KMFolderImap*, bool) ) );
+ disconnect( folder, TQ_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
+ this, TQ_SLOT( slotFolderSelected( KMFolderImap*, bool) ) );
postProcessNewMail( static_cast<KMFolder*>(folder->folder()) );
folder->close( "acctimap" );
}
diff --git a/kmail/kmacctimap.h b/kmail/kmacctimap.h
index 3e10332a..6a7bb89a 100644
--- a/kmail/kmacctimap.h
+++ b/kmail/kmacctimap.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++ -*-
+/*
* kmacctimap.h
*
* Copyright (c) 2000-2002 Michael Haeckel <haeckel@kde.org>
@@ -39,7 +39,7 @@ class FolderStorage;
//-----------------------------------------------------------------------------
class KMAcctImap: public KMail::ImapAccountBase
{
- Q_OBJECT
+ TQ_OBJECT
friend class KMail::ImapJob;
diff --git a/kmail/kmacctseldlg.cpp b/kmail/kmacctseldlg.cpp
index 35f1fc42..cac1f81f 100644
--- a/kmail/kmacctseldlg.cpp
+++ b/kmail/kmacctseldlg.cpp
@@ -39,7 +39,7 @@ KMAcctSelDlg::KMAcctSelDlg( TQWidget *parent, const char *name, bool modal )
TQVBoxLayout *topLayout = new TQVBoxLayout( page, 0, spacingHint() );
TQButtonGroup *group = new TQButtonGroup( i18n("Account Type"), page );
- connect(group, TQT_SIGNAL(clicked(int)), TQT_SLOT(buttonClicked(int)) );
+ connect(group, TQ_SIGNAL(clicked(int)), TQ_SLOT(buttonClicked(int)) );
topLayout->addWidget( group, 10 );
TQVBoxLayout *vlay = new TQVBoxLayout( group, spacingHint()*2, spacingHint() );
diff --git a/kmail/kmacctseldlg.h b/kmail/kmacctseldlg.h
index b28e1f52..d3f02b2f 100644
--- a/kmail/kmacctseldlg.h
+++ b/kmail/kmacctseldlg.h
@@ -29,7 +29,7 @@
/** Select account from given list of account types */
class KMAcctSelDlg: public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmaddrbook.cpp b/kmail/kmaddrbook.cpp
index 6b774738..dcc58e02 100644
--- a/kmail/kmaddrbook.cpp
+++ b/kmail/kmaddrbook.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* Copyright (c) 1996-1998 Stefan Taferner <taferner@kde.org>
*
diff --git a/kmail/kmail.antispamrc-HOWTO b/kmail/kmail.antispamrc-HOWTO
index 9edcabb0..a107d81c 100644
--- a/kmail/kmail.antispamrc-HOWTO
+++ b/kmail/kmail.antispamrc-HOWTO
@@ -49,7 +49,7 @@ General options
- Priority: Specifies the priority of the filter. This value is used to
place faster filters before the slower ones in the selection list. If the
- user chooses the top item, he gets the fastest filter. Provider sided
+ user chooses the top item, they get the fastest filter. Provider sided
"filters" (which produce headers tough) like the GMX filter have a prio
at about 70, they are very fast as they don't consume time on the client
side. Since CRM114 is almost as fast it gets 65 ;-).
diff --git a/kmail/kmail.kcfg b/kmail/kmail.kcfg
index 0b73f2f2..922e295c 100644
--- a/kmail/kmail.kcfg
+++ b/kmail/kmail.kcfg
@@ -83,8 +83,7 @@
<group name="ConfigurationDialogRestrictions">
<entry name="MinimumCheckInterval" type="Int">
<default>1</default>
- <whatsthis>This setting allows administrators to set a minimum delay between two mail checks."
- "The user will not be able to choose a value smaller than the value set here.</whatsthis>
+ <whatsthis>This setting allows administrators to set a minimum delay between two mail checks. The user will not be able to choose a value smaller than the value set here.</whatsthis>
</entry>
</group>
@@ -241,10 +240,7 @@
<entry name="ShowOnlyGroupwareFoldersForGroupwareAccount" type="Bool">
<default>false</default>
- <whatsthis>&lt;p&gt;If the account used for storing groupware information "
- "is not used to manage normal mail, set this option to make KMail only "
- "show groupware folders in it. This is useful if you are handling regular "
- "mail via an additional online IMAP account.&lt;/p&gt;</whatsthis>
+ <whatsthis>&lt;p&gt;If the account used for storing groupware information is not used to manage normal mail, set this option to make KMail only show groupware folders in it. This is useful if you are handling regular mail via an additional online IMAP account.&lt;/p&gt;</whatsthis>
</entry>
<entry name="TheIMAPResourceStorageFormat" type="Enum">
diff --git a/kmail/kmail_config_accounts.desktop b/kmail/kmail_config_accounts.desktop
index c0003a2e..1f234677 100644
--- a/kmail/kmail_config_accounts.desktop
+++ b/kmail/kmail_config_accounts.desktop
@@ -12,147 +12,7 @@ X-TDE-ParentComponents=kmail,kontact_kmailplugin
X-TDE-CfgDlgHierarchy=KMail
Name=Accounts
-Name[af]=Rekeninge
-Name[ar]=الحسابات
-Name[be]=Рахункі
-Name[bg]=Сметки
-Name[br]=Kontoù
-Name[bs]=Računi
-Name[ca]=Comptes
-Name[cs]=Účty
-Name[cy]=Cyfrifon
-Name[da]=Konti
-Name[de]=Zugänge
-Name[el]=Λογαριασμοί
-Name[eo]=Kontoj
-Name[es]=Cuentas
-Name[et]=Kontod
-Name[eu]=Kontuak
-Name[fa]=حسابها
-Name[fi]=Tilit
-Name[fr]=Comptes
-Name[fy]=Akkounts
-Name[ga]=Cuntais
-Name[gl]=Contas
-Name[he]=חשבונות
-Name[hu]=Fiókok
-Name[is]=Tengingar
-Name[it]=Account
-Name[ja]=アカウント
-Name[kk]=Тіркелгілері
-Name[km]=គណនី
-Name[lt]=Paskyros
-Name[mk]=Сметки
-Name[ms]=Akaun
-Name[nb]=Kontoer
-Name[nds]=Kontos
-Name[ne]=खाता
-Name[nn]=Kontoar
-Name[pa]=ਖਾਤੇ
-Name[pl]=Konta
-Name[pt]=Contas
-Name[pt_BR]=Contas
-Name[ru]=Учётные записи
-Name[se]=Kontut
-Name[sk]=Účty
-Name[sl]=Računi
-Name[sr]=Налози
-Name[sr@Latn]=Nalozi
-Name[sv]=Konton
-Name[ta]=கணக்குகள்
-Name[tg]=Қайдҳои баҳисобгирӣ
-Name[tr]=Hesaplar
-Name[uk]=Рахунки
-Name[uz]=Ҳисоблар
-Name[zh_CN]=账户
-Name[zh_TW]=帳號
+
Comment=Setup for Sending and Receiving Messages
-Comment[af]=Opstel vir die stuur en ontvang van boodskappe
-Comment[ar]=تعيينات إرسال و إستقبال الرسائل
-Comment[bg]=Настройки на мрежата, сървърите и сметките
-Comment[bs]=Postavke za slanje i prijem poruka
-Comment[ca]=Configuració per enviar i rebre missatges
-Comment[cs]=Nastavení odesílání a přijímání zpráv
-Comment[da]=Opsætning til at sende og modtage breve
-Comment[de]=Einstellungen zum Senden und Empfangen von Nachrichten
-Comment[el]=Ρυθμίσεις για αποστολή και λήψη μηνυμάτων
-Comment[eo]=Agordo por sendi kaj ricevi mesaĝojn
-Comment[es]=Configuración para enviar y recibir mensajes
-Comment[et]=Kirjade saatmise ja saamise seadistused
-Comment[eu]=Mezuak bidali eta jasotzeko konfigurazioa
-Comment[fa]=برپایی برای ارسال و دریافت پیامها
-Comment[fi]=Viestien lähetys- ja vastaanottoasetukset
-Comment[fr]=Configuration de l'envoi et de la réception de messages
-Comment[fy]=Ynstellings foar it ferstjoeren en ûntfangen fan berjochten
-Comment[gl]=Configuración para Enviar e Recibir Mensaxes
-Comment[hu]=Küldési és fogadási beállítások
-Comment[is]=Uppsetning fyrir sendingu og móttöku af tölvupósti
-Comment[it]=Impostazioni per spedire e ricevere messaggi
-Comment[ja]=メッセージを送受信するための設定
-Comment[kk]=Хаттарды жіберу мен қабылдауды баптау
-Comment[km]=រៀបចំ​ដើម្បី​ផ្ញើ និង​ទទួល​សារ
-Comment[lt]=Laiškų siuntimo ir gavimo sąranka
-Comment[mk]=Конфигурација за примање и испраќање пораки
-Comment[ms]=Setup untuk Menghantar dan Menerima Mesej
-Comment[nb]=Oppset for mottak og sending av meldinger
-Comment[nds]=Instellen för dat Sennen un Kriegen vun Narichten
-Comment[ne]=सन्देश पठाउन वा प्राप्त गर्न सेटअप गर्नुहोस्
-Comment[nl]=Instellingen voor het verzenden en ontvangen van berichten
-Comment[nn]=Oppsett av sending og mottak av meldingar
-Comment[pl]=Ustawienia wysyłania i odbierania wiadomości
-Comment[pt]=Configuração de Envio e Recepção de Mensagens
-Comment[pt_BR]=Configura o Envio e Recebimento de Mensagens
-Comment[ru]=Настройка отправки и получения сообщений
-Comment[se]=Heivet e-reivviid sáddema ja vuostáiváldima
-Comment[sk]=Nastavenie príjmu a odosielania správ
-Comment[sl]=Nastavitve za pošiljanje in prejemanje sporočil
-Comment[sr]=Подешавање слања и примања порука
-Comment[sr@Latn]=Podešavanje slanja i primanja poruka
-Comment[sv]=Inställningar för att skicka och ta emot brev
-Comment[ta]=அனுப்புதல் மற்றும் பெறுதல் தகவல்களுக்கான அமைப்பு
-Comment[tg]=Танзимоти фиристодан ва қабул кардани иттилоот
-Comment[tr]=Gönderilen ve Gelen Mesajlar için Yapılandırma
-Comment[uk]=Налаштування для надсилання і отримання повідомлень
-Comment[zh_CN]=收发邮件设置
-Comment[zh_TW]=發送與接收信件設定
+
Keywords=kmail;accounts;
-Keywords[bg]=пощенски; клиент; е-поща; kmail; accounts;
-Keywords[br]=kmail;kontoù;
-Keywords[ca]=kmail;comptes;
-Keywords[cs]=kmail;účty;
-Keywords[da]=kmail;konti;
-Keywords[de]=KMail;Konten;Zugänge;
-Keywords[el]=kmail;λογαριασμοί;
-Keywords[es]=kmail;cuentas;
-Keywords[et]=kmail;kontod;
-Keywords[eu]=kmail;kontuak;
-Keywords[fa]=kmail، حسابها;
-Keywords[fi]=kmail;tilit;
-Keywords[fr]=KMail;comptes;
-Keywords[fy]=kmail;accounts;akkounts;
-Keywords[ga]=kmail;cuntais;
-Keywords[gl]=kmail;contas;
-Keywords[he]=kmail;accounts;דוא"ל; חשבון; חשבונות;
-Keywords[hu]=kmail;azonosítók;
-Keywords[is]=kmail;accounts;tengingar;
-Keywords[it]=kmail;account;
-Keywords[km]=kmail;គណនី;
-Keywords[lt]=kmail;accounts;paskyros;
-Keywords[mk]=kmail;accounts;кпошта;сметка;сметки;
-Keywords[ms]=kmail;akaun;
-Keywords[nb]=kmail;kontoer;
-Keywords[nds]=KMail;Kontos;
-Keywords[ne]=केडीई मेल;खाता;
-Keywords[nn]=KMail;kontoar;
-Keywords[pl]=kmail;konta;
-Keywords[pt]=kmail;contas;
-Keywords[pt_BR]=kmail;contas;
-Keywords[ru]=kmail;accounts;почта;учётные записи;
-Keywords[sl]=kmail;računi;
-Keywords[sr]=kmail;accounts;састављач;налози;
-Keywords[sr@Latn]=kmail;accounts;sastavljač;nalozi;
-Keywords[sv]=kmail;konton;
-Keywords[ta]=கேஅஞ்சல்;கணக்குகள்;
-Keywords[tr]=kmail;hesplar;
-Keywords[uk]=kmail;accounts;пошта;рахунки;
-Keywords[zh_CN]=kmail;account;账户;
diff --git a/kmail/kmail_config_appearance.desktop b/kmail/kmail_config_appearance.desktop
index aef291e2..c3d3e3c5 100644
--- a/kmail/kmail_config_appearance.desktop
+++ b/kmail/kmail_config_appearance.desktop
@@ -12,154 +12,7 @@ X-TDE-ParentComponents=kmail,kontact_kmailplugin
X-TDE-CfgDlgHierarchy=KMail
Name=Appearance
-Name[ar]=المظهر
-Name[be]=Знешні выгляд
-Name[bg]=Външен вид
-Name[br]=Neuziadur
-Name[bs]=Izgled
-Name[ca]=Aparença
-Name[cs]=Vzhled
-Name[cy]=Golwg
-Name[da]=Udseende
-Name[de]=Erscheinungsbild
-Name[el]=Εμφάνιση
-Name[eo]=Prezentado
-Name[es]=Apariencia
-Name[et]=Välimus
-Name[eu]=Itxura
-Name[fa]=ظاهر
-Name[fi]=Ulkoasu
-Name[fr]=Apparence
-Name[fy]=Uterlik
-Name[ga]=Cuma
-Name[gl]=Apariencia
-Name[he]=מראה
-Name[hr]=Izgled
-Name[hu]=Megjelenés
-Name[is]=Útlit
-Name[it]=Aspetto
-Name[ja]=外観
-Name[kk]=Сыртқы көрінісі
-Name[km]=រូបរាង
-Name[ko]=모양
-Name[lt]=Išvaizda
-Name[mk]=Изглед
-Name[ms]=Rupa
-Name[nb]=Utseende
-Name[nds]=Utsehn
-Name[ne]=मोहडा
-Name[nl]=Uiterlijk
-Name[nn]=Utsjånad
-Name[pl]=Wygląd
-Name[pt]=Aparência
-Name[pt_BR]=Aparência
-Name[ru]=Внешний вид
-Name[rw]=Imigaragarire
-Name[se]=Fárda
-Name[sk]=Vzhľad
-Name[sl]=Videz
-Name[sr]=Изглед
-Name[sr@Latn]=Izgled
-Name[sv]=Uppträdande
-Name[ta]=தோற்றம்
-Name[tg]=Намуди зоҳирӣ
-Name[tr]=Görünüm
-Name[uk]=Вигляд
-Name[uz]=Кўриниши
-Name[zh_CN]=外观
+
Comment=Customize Visual Appearance
-Comment[af]=Pasmaak die visuele voorkoms
-Comment[bg]=Настройки на външния вид
-Comment[bs]=Prilagodi izgled
-Comment[ca]=Personalitza l'aparença visual
-Comment[cs]=Nastavení vzhledu
-Comment[cy]=Addasu Golwg
-Comment[da]=Brugerindstil visuelt udseende
-Comment[de]=Erscheinungsbild anpassen
-Comment[el]=Προσαρμογή εμφάνισης
-Comment[en_GB]=Customise Visual Appearance
-Comment[es]=Apariencia visual personalizada
-Comment[et]=Välimuse seadistused
-Comment[eu]=Pertsonalizatu itxura
-Comment[fa]=سفارشی کردن ظاهر تصویری
-Comment[fi]=Ulkonäköasetukset
-Comment[fr]=Personnalisation de l'apparence
-Comment[fy]=It uterlik oanpasse
-Comment[gl]=Personalizar a apariencia visual
-Comment[he]=הגדרת מראה
-Comment[hu]=A grafikai megjelenés testreszabása
-Comment[is]=Stilla útlit
-Comment[it]=Personalizza l'aspetto
-Comment[ja]=外観をカスタマイズ
-Comment[kk]=Сыртқы көрінісін ыңғайлау
-Comment[km]=ប្ដូរ​រូបរាង​មើល​ឃើញ​តាម​បំណង
-Comment[lt]=Derinti vizualinę išvaizdą
-Comment[mk]=Приспособете ја визуелната појава
-Comment[ms]=Suaikan Rupa Visual
-Comment[nb]=Tilpass visuelt utseende
-Comment[nds]=Utsehn topassen
-Comment[ne]=दृश्यात्मक मोहडा अनुकूल गर्नुहोस्
-Comment[nl]=Pas het uiterlijk aan
-Comment[nn]=Tilpass utsjånad
-Comment[pl]=Zmiana wyglądu
-Comment[pt]=Personalizar a Aparência Visual
-Comment[pt_BR]=Personalizar Aparência Visual
-Comment[ru]=Настройка внешнего вида
-Comment[se]=Heivet fárdda
-Comment[sk]=Prispôsobenie vzhľadu
-Comment[sl]=Prilagodi videz
-Comment[sr]=Прилагодите визуелни приказ
-Comment[sr@Latn]=Prilagodite vizuelni prikaz
-Comment[sv]=Anpassa visuellt uppträdande
-Comment[ta]=பார்க்கும் தோற்றத்தை தனிபயனாக்கு
-Comment[tg]=Танзимоти намуди зоҳирӣ
-Comment[tr]=Görsel Görünümü Özelleştir
-Comment[uk]=Налаштування зовнішнього вигляду
-Comment[zh_CN]=自定义视觉外观
-Comment[zh_TW]=調整視覺顯示
+
Keywords=kmail;appearance;
-Keywords[bg]=пощенски; клиент; е-поща; външен; вид; външност; появяване kmail; appearance;
-Keywords[br]=kmail;neuziadur;
-Keywords[bs]=kmail;appearance;izgled;
-Keywords[ca]=kmail;aparença;
-Keywords[cs]=kmail;vzhled;
-Keywords[da]=kmail;udseende;
-Keywords[de]=KMail;Erscheinungsbild;
-Keywords[el]=kmail;εμφάνιση;
-Keywords[es]=kmail;apariencia;
-Keywords[et]=kmail;välimus;
-Keywords[eu]=kmail;itxura;
-Keywords[fa]=kmail، ظاهر;
-Keywords[fi]=kmail;ulkonäkö;
-Keywords[fr]=KMail;apparence;
-Keywords[fy]=kmail;uiterlijk;úterlik;
-Keywords[ga]=kmail;cuma;
-Keywords[gl]=kmail;apariencia;
-Keywords[he]=kmail;appearance; מראה;
-Keywords[hu]=kmail;megjelenés;
-Keywords[is]=kmail;útlit;
-Keywords[it]=kmail;aspetto;
-Keywords[ja]=kmail;外観;
-Keywords[km]=kmail;រូបរាង;
-Keywords[lt]=kmail;appearance;išvaizda;
-Keywords[mk]=kmail;appearance;кпошта;појава;изглед;визуелно;
-Keywords[ms]=kmail;rupa;
-Keywords[nb]=kmail;utseende;
-Keywords[nds]=KMail;Utsehn;
-Keywords[ne]=केडीई मेल; मोहडा;
-Keywords[nl]=kmail;uiterlijk;
-Keywords[nn]=KMail;utsjånad;
-Keywords[pl]=kmail;wygląd;
-Keywords[pt]=kmail;aparência;
-Keywords[pt_BR]=kmail;aparência;
-Keywords[ru]=kmail;внешний вид;
-Keywords[sk]=kmail;vzhľad;
-Keywords[sl]=kmail;videz;izgled;
-Keywords[sr]=kmail;изглед;
-Keywords[sr@Latn]=kmail;izgled;
-Keywords[sv]=kmail;utseende;
-Keywords[ta]=கேஅஞ்சல்; தோற்றம்;
-Keywords[tg]=kmail;намуди зоҳирӣ;
-Keywords[tr]=kmail;görünüm;
-Keywords[uk]=kmail;вигляд;
-Keywords[zh_CN]=kmail;appearance;外观;
diff --git a/kmail/kmail_config_composer.desktop b/kmail/kmail_config_composer.desktop
index 8a1995c6..09587fd2 100644
--- a/kmail/kmail_config_composer.desktop
+++ b/kmail/kmail_config_composer.desktop
@@ -12,136 +12,7 @@ X-TDE-ParentComponents=kmail,kontact_kmailplugin
X-TDE-CfgDlgHierarchy=KMail
Name=Composer
-Name[ar]=المحرر
-Name[bg]=Редактор
-Name[br]=Skridaozer
-Name[bs]=Sastavljač
-Name[ca]=Editor
-Name[cs]=Editor
-Name[cy]=Cyfansoddydd
-Name[da]=Brevskriver
-Name[de]=Komposer
-Name[el]=Σύνταξη μηνυμάτων
-Name[es]=Editor
-Name[et]=Koostaja
-Name[eu]=Editorea
-Name[fa]=مؤلف
-Name[fi]=Kirjoittaminen
-Name[fr]=Éditeur
-Name[fy]=Opsteller
-Name[ga]=Cumadóir
-Name[gl]=Compositor
-Name[he]=עורך
-Name[hu]=Szerkesztő
-Name[it]=Compositore
-Name[ja]=メール作成
-Name[kk]=Құрастарғыш
-Name[km]=កម្មវិធី​តែង
-Name[lt]=Redaktorius
-Name[mk]=Составувач
-Name[ms]=Penggubah
-Name[nb]=Komposer
-Name[nds]=Nettbreef-Editor
-Name[ne]=कम्पोजर
-Name[nl]=Opsteller
-Name[nn]=Skrivefelt
-Name[pa]=ਲੇਖਕ
-Name[pl]=Edytor
-Name[pt]=Compositor
-Name[pt_BR]=Editor de Mensagens
-Name[ru]=Редактор писем
-Name[se]=Čállinprográmma
-Name[sk]=Editor správ
-Name[sl]=Sestavljalnik
-Name[sr]=Састављач
-Name[sr@Latn]=Sastavljač
-Name[sv]=Brevfönster
-Name[ta]=கம்போசர்
-Name[tg]=Муҳаррири мактубҳо
-Name[tr]=Düzenleyici
-Name[uk]=Редактор листів
-Name[zh_CN]=编写器
-Name[zh_TW]=編寫器
+
Comment=Templates & General Behavior
-Comment[af]=Voorbeelde & Algemene Gedrag
-Comment[bg]=Шаблони и поведение
-Comment[ca]=Plantilles i comportament general
-Comment[cs]=Šablony a obecné chování
-Comment[da]=Skabeloner & Generel opførsel
-Comment[de]=Vorlagen und allgemeines Verhalten
-Comment[el]=Πρότυπα & γενική Συμπεριφορά
-Comment[en_GB]=Templates & General Behaviour
-Comment[eo]=Ŝablonoj kaj Ĝenerala Konduto
-Comment[es]=Plantilla y comportamiento general
-Comment[et]=Mallid ja üldine käitumine
-Comment[fa]=عبارتها و رفتار عمومی
-Comment[fr]=Modèles et comportement général
-Comment[fy]=Sjabloanen en algemien gedrach
-Comment[gl]=Planteis e Comportamento Xeral
-Comment[hu]=Sablonok, általános működési jellemzők
-Comment[it]=Modelli e comportamento generale
-Comment[ja]=テンプレートと全般的な動作
-Comment[kk]=Үлгілер мен Жалпы тәртібі
-Comment[km]=ពុម្ព​ និង​ឥរិយាបទ​ទូទៅ
-Comment[lt]=Šablonai ir bendroji elgsena
-Comment[mk]=Обрасци и општо однесување
-Comment[nb]=Maler & generell oppførsel
-Comment[nds]=Vörlagen un allgemeen Bedregen
-Comment[ne]=टेम्प्लेट र साधारण व्यवहार
-Comment[nl]=Sjablonen en algemeen gedrag
-Comment[pl]=Szablony i ogólne zachowanie
-Comment[pt]=Modelos e Comportamento Geral
-Comment[pt_BR]=Modelos & Comportamento Geral
-Comment[ru]=Шаблоны и общие параметры
-Comment[sk]=Šablóny a všeobecné správanie
-Comment[sl]=Predloge in splošno obnašanje
-Comment[sr]=Шаблони и опште понашање
-Comment[sr@Latn]=Šabloni i opšte ponašanje
-Comment[sv]=Mallar och allmänt uppträdande
-Comment[tr]=Şablonlar & Genel Davranış
-Comment[uk]=Шаблони та загальна поведінка
-Comment[zh_CN]=模板和常规行为
-Comment[zh_TW]=樣本與一般行為
+
Keywords=kmail;composer;
-Keywords[bg]=пощенски; клиент; е-поща; редактор; съставител; форматиране; текст; kmail; komposer;
-Keywords[bs]=kmail;composer;sastavljač;
-Keywords[ca]=kmail;editor;
-Keywords[cs]=kmail;editor;
-Keywords[da]=kmail;brevskriver;
-Keywords[de]=KMail;Komposer;Editor;
-Keywords[el]=kmail;συντάκτης;
-Keywords[es]=kmail;editor;
-Keywords[et]=kmail;koostaja;
-Keywords[eu]=kmail;editorea;
-Keywords[fa]=kmail، مؤلف;
-Keywords[fi]=kmail;kirjoitus;
-Keywords[fr]=KMail;éditeur;
-Keywords[fy]=kmail;opsteller;
-Keywords[gl]=kmail;editor;
-Keywords[he]=kmail;composer;כתבן;
-Keywords[hu]=kmail;szerkesztő;
-Keywords[is]=kmail;ritill;
-Keywords[it]=kmail;compositore;
-Keywords[km]=kmail កម្មវិធី​តែង;
-Keywords[lt]=kmail;composer;redaktorius;
-Keywords[mk]=kmail;composer;кпошта;составувач;
-Keywords[ms]=kmail;penggubah;
-Keywords[nb]=kmail;komposer;
-Keywords[nds]=KMail;Editor;Nettbreefeditor;
-Keywords[ne]=केडीई मेल; कम्पोजर;
-Keywords[nl]=kmail;opsteller;
-Keywords[nn]=KMail;skrivefelt;
-Keywords[pl]=kmail;kompozytor;edytor;
-Keywords[pt]=kmail;compositor;
-Keywords[pt_BR]=kmail;editor de mensagens;
-Keywords[ru]=kmail;composer;письмо;
-Keywords[sk]=kmail;editor správ;
-Keywords[sl]=kmail;composer;sestavljalnik;
-Keywords[sr]=kmail;састављач;
-Keywords[sr@Latn]=kmail;sastavljač;
-Keywords[sv]=kmail;brevfönster;
-Keywords[ta]=கேஅஞ்சல்;கம்போசர்;
-Keywords[tg]=kmail;composer;мактуб;
-Keywords[tr]=kmail;düzenleyici;
-Keywords[uk]=kmail;редактор;
-Keywords[zh_CN]=kmail;composer; 编写器;
diff --git a/kmail/kmail_config_identity.desktop b/kmail/kmail_config_identity.desktop
index 1224183d..82d6f788 100644
--- a/kmail/kmail_config_identity.desktop
+++ b/kmail/kmail_config_identity.desktop
@@ -12,154 +12,7 @@ X-TDE-ParentComponents=kmail,kontact_kmailplugin
X-TDE-CfgDlgHierarchy=KMail
Name=Identities
-Name[ar]=الهويات
-Name[be]=Увасабленні
-Name[bg]=Самоличност
-Name[br]=Anvelezhioù
-Name[bs]=Identiteti
-Name[ca]=Identitats
-Name[cs]=Identity
-Name[da]=Identiteter
-Name[de]=Identitäten
-Name[el]=Ταυτότητες
-Name[eo]=Identoj
-Name[es]=Identidades
-Name[et]=Identiteedid
-Name[eu]=Identitateak
-Name[fa]=هویتها
-Name[fi]=Henkilöllisyydet
-Name[fr]=Identités
-Name[fy]=Identiteiten
-Name[ga]=Aitheantais
-Name[gl]=Identidades
-Name[he]=זהויות
-Name[hu]=Azonosítók
-Name[is]=Auðkenni
-Name[it]=Identità
-Name[ja]=個人情報
-Name[kk]=Іс-әлпеттері
-Name[km]=អត្តសញ្ញាណ
-Name[lt]=Tapatybės
-Name[mk]=Идентитети
-Name[ms]=Identiti
-Name[nb]=Identiteter
-Name[nds]=Identiteten
-Name[ne]=परिचय
-Name[nl]=Identiteiten
-Name[nn]=Identitetar
-Name[pl]=Tożsamości
-Name[pt]=Identidades
-Name[pt_BR]=Identidades
-Name[ru]=Профили
-Name[se]=Identitehtat
-Name[sk]=Identity
-Name[sl]=Identitete
-Name[sr]=Идентитети
-Name[sr@Latn]=Identiteti
-Name[sv]=Identiteter
-Name[ta]=அடையாளங்கள்
-Name[tg]=Профилҳо
-Name[tr]=Kimlikler
-Name[uk]=Профілі
-Name[uz]=Шахсиятлар
-Name[zh_CN]=身份
-Name[zh_TW]=身份
+
Comment=Manage Identities
-Comment[af]=Bestuur identiteite
-Comment[ar]=تدبير الهويات
-Comment[be]=Кіраванне увасабленнямі
-Comment[bg]=Настройки на самоличността
-Comment[br]=Merañ an anvelezhioù
-Comment[bs]=Upravljaj identitetima
-Comment[ca]=Gestiona les identitats
-Comment[cs]=Správa identit
-Comment[da]=Håndtering af identiteter
-Comment[de]=Identitäten verwalten
-Comment[el]=Διαχείριση ταυτοτήτων
-Comment[eo]=Mastrumi identojn
-Comment[es]=Gestionar identidades
-Comment[et]=Identiteetide haldus
-Comment[eu]=Identitateak kudeatu
-Comment[fa]=مدیریت هویتها
-Comment[fi]=Henkilöllisyysasetukset
-Comment[fr]=Gestion des identités
-Comment[fy]=Identiteiten beheare
-Comment[gl]=Xestionar Identidades
-Comment[he]=ניהול זהויות
-Comment[hu]=Az azonosítók kezelése
-Comment[is]=Stjórna auðkennum
-Comment[it]=Gestisce le identità
-Comment[ja]=個人情報の管理
-Comment[kk]=Іс-әлпеттерді басқару
-Comment[km]=គ្រប់គ្រង​អត្តសញ្ញាណ
-Comment[lt]=Tvarkyti tapatybes
-Comment[mk]=Менаџирајте ги идентитетите
-Comment[ms]=Uruskan identiti
-Comment[nb]=Identitetsbehandling
-Comment[nds]=Identiteten plegen
-Comment[ne]=परिचय व्यवस्थापन गर्नुहोस्
-Comment[nl]=Identiteiten beheren
-Comment[nn]=Handter identitetar
-Comment[pl]=Zarządzanie tożsamościami
-Comment[pt]=Gerir Identidades
-Comment[pt_BR]=Gerenciar Identidades
-Comment[ru]=Управление профилями
-Comment[se]=Gieđahala identitehtaid
-Comment[sk]=Správa identít
-Comment[sl]=Upravljanje z identitetami
-Comment[sr]=Управљање идентитетима
-Comment[sr@Latn]=Upravljanje identitetima
-Comment[sv]=Hantera identiteter
-Comment[ta]=அடையாளங்களை நிர்வகி
-Comment[tg]=Идоракунӣ бо профилҳо
-Comment[tr]=Kimlikleri Düzenle
-Comment[uk]=Керування профілями
-Comment[zh_CN]=管理身份
-Comment[zh_TW]=管理身份
+
Keywords=kmail;identity;
-Keywords[be]=K Пошта;увасабленне;kmail;identity;
-Keywords[bg]=пощенски; клиент; е-поща; самоличност; информация; kmail; identity;
-Keywords[br]=kmail;anvelezh;
-Keywords[bs]=kmail;identity;identitet;
-Keywords[ca]=kmail;identitat;
-Keywords[cs]=kmail;identita;
-Keywords[da]=kmail;identitet;
-Keywords[de]=KMail;Identitäten;Identität;
-Keywords[el]=kmail;ταυτότητα;
-Keywords[es]=kmail;identidad;
-Keywords[et]=kmail;identiteet;
-Keywords[eu]=kmail;identitatea;
-Keywords[fa]=kmail، هویت;
-Keywords[fi]=kmail;henkilöllisyys;
-Keywords[fr]=KMail;identités;
-Keywords[fy]=kmail;identiteit;
-Keywords[ga]=kmail;aitheantas;
-Keywords[gl]=kmail;identidade;
-Keywords[he]=kmail;identity;זהות;
-Keywords[hu]=kmail;azonosító;
-Keywords[is]=kmail;auðkenni;
-Keywords[it]=kmail;identità;
-Keywords[ja]=kmail;個人情報;
-Keywords[km]=kmail;អត្តសញ្ញាណ;
-Keywords[lt]=kmail;identity;tapatybė;
-Keywords[mk]=kmail;identity;кпошта;идентитет;идентитети;
-Keywords[ms]=kmail;identiti;
-Keywords[nb]=kmail;identitet;
-Keywords[nds]=KMail;Identiteet;Identiteten;
-Keywords[ne]=केडीई मेल; परिचय;
-Keywords[nl]=kmail;identiteit;
-Keywords[nn]=KMail;identitet;
-Keywords[pl]=kmail;tożsamość;tożsamości;
-Keywords[pt]=kmail;identidade;
-Keywords[pt_BR]=kmail;identidade;
-Keywords[ru]=kmail;identity;профиль;
-Keywords[sl]=kmail;identiteta;
-Keywords[sr]=kmail;идентитет;
-Keywords[sr@Latn]=kmail;identitet;
-Keywords[sv]=kmail;identifiera;
-Keywords[ta]=கேஅஞ்சல்;அடையாளம்;
-Keywords[tg]=kmail;identity;профил;
-Keywords[tr]=kmail;kimlikler;
-Keywords[uk]=kmail;профіль;
-Keywords[uz]=kmail;шахсият;
-Keywords[zh_CN]=kmail;identity; 身份;
diff --git a/kmail/kmail_config_misc.desktop b/kmail/kmail_config_misc.desktop
index 4aa1eb4f..c09093a6 100644
--- a/kmail/kmail_config_misc.desktop
+++ b/kmail/kmail_config_misc.desktop
@@ -12,150 +12,7 @@ X-TDE-ParentComponents=kmail,kontact_kmailplugin
X-TDE-CfgDlgHierarchy=KMail
Name=Misc
-Name[af]=Allerlei
-Name[be]=Рознае
-Name[bg]=Разни
-Name[br]=A bep seurt
-Name[bs]=Razno
-Name[ca]=Varis
-Name[cs]=Různé
-Name[cy]=Amrywiol
-Name[da]=Diverse
-Name[de]=Verschiedenes
-Name[el]=Διάφορα
-Name[es]=Varios
-Name[et]=Muud
-Name[eu]=Miszelanea
-Name[fi]=Muut
-Name[fr]=Divers
-Name[fy]=Ferskate
-Name[ga]=Éagsúil
-Name[gl]=Miscelánea
-Name[he]=כללי
-Name[hu]=Egyéb
-Name[is]=Ýmislegt
-Name[it]=Varie
-Name[ja]=その他
-Name[kk]=Басқалары
-Name[km]=ផ្សេងៗ
-Name[lt]=Įvairūs
-Name[mk]=Разно
-Name[ms]=Pelbagai
-Name[nb]=Div
-Name[nds]=Anner Saken
-Name[ne]=विविध
-Name[nl]=Diversen
-Name[nn]=Ymse
-Name[pa]=ਫੁਟਕਲ
-Name[pl]=Różne
-Name[pt]=Vários
-Name[pt_BR]=Extras
-Name[ru]=Прочее
-Name[se]=Feará mii
-Name[sk]=Rôzne
-Name[sl]=Razno
-Name[sr]=Разно
-Name[sr@Latn]=Razno
-Name[sv]=Diverse
-Name[ta]=இதர
-Name[tg]=Ғайра
-Name[tr]=Çeşitli
-Name[uk]=Різне
-Name[uz]=Ҳар хил
-Name[zh_CN]=杂项
-Name[zh_TW]=其他
+
Comment=Settings that don't fit elsewhere
-Comment[af]=Opstelling wat nêrens anders pas nie
-Comment[bg]=Разни настройки
-Comment[bs]=Postavke koje ne spadaju nigdje drugo
-Comment[ca]=Opcions que no van bé enlloc
-Comment[cs]=Nastavení nehodící se jinam
-Comment[da]=Indstillinger der ikke passer ind andre steder
-Comment[de]=Verschiedene Einstellungen
-Comment[el]=Ρυθμίσεις που δεν ταιριάζουν κάπου αλλού
-Comment[eo]=Agordoj kiuj apartenas nenie alie
-Comment[es]=Opciones que no encajan en ningún otro sitio
-Comment[et]=Seadistused, mis kuhugi mujale ei sobi
-Comment[eu]=Beste inon egokitzen ez diren ezarpenak
-Comment[fa]=تنظیماتی که مناسب جای دیگر نیستند
-Comment[fi]=Muut asetukset
-Comment[fr]=Paramètres qui ne rentrent dans aucune autre catégorie
-Comment[fy]=Ynstellings dy't eins nergens passe
-Comment[gl]=Opcións que non se encadran noutro sitio
-Comment[he]=הגדרות שלא יכולות להיכנס למקום אחר
-Comment[hu]=A máshová nem besorolható beállítások
-Comment[is]=Stillingar sem passa ekki annars staðar
-Comment[it]=Impostazioni che non rientrano in altre categorie
-Comment[ja]=その他の設定
-Comment[kk]=Басқа параметрлері
-Comment[km]=ការ​កំណត់​ដែល​មិន​ត្រូវ​នឹង​កន្លែង​ផ្សេង
-Comment[lt]=Kiti nustatymai
-Comment[mk]=Поставувања што не се вклопуваат на друго место
-Comment[ms]=Seting yang tidak muat di tempat lain
-Comment[nb]=Instillinger som ikke passer andre steder
-Comment[nds]=Verscheden Instellen
-Comment[ne]=कतै पनि नमिल्ने सेटिङ
-Comment[nl]=Instellingen die nergens echt passen
-Comment[nn]=Innstillingar som ikkje passar andre stader
-Comment[pl]=Ustawienia, które nie pasują gdzie indziej
-Comment[pt]=Outras configurações
-Comment[pt_BR]=Preferências que não se encaixam em outros lugares
-Comment[ru]=Другие настройки
-Comment[se]=Heivehusat mat eai heive eará báikkiin
-Comment[sk]=Nastavenie, ktoré sa inam nehodí
-Comment[sl]=Nastavitve, ki ne spadajo drugam
-Comment[sr]=Поставке које не припадају другде
-Comment[sr@Latn]=Postavke koje ne pripadaju drugde
-Comment[sv]=Inställningar som inte passar någon annanstans
-Comment[ta]=அமைப்புகள் எந்த இடத்திலும் பொருந்தவில்லை
-Comment[tg]=Дигар танзимотҳо
-Comment[tr]=Diğer bölümlere uymayan yapılandırma seçenekleri
-Comment[uk]=Інші параметри
-Comment[zh_CN]=其它设置
-Comment[zh_TW]=不屬於任何其他地方的設定
+
Keywords=kmail;misc;
-Keywords[be]=K Пошта;рознае;kmail;misc;
-Keywords[bg]=пощенски; клиент; е-поща; разни; настройки; kmail; misc;
-Keywords[br]=kmail;a bep seurt;
-Keywords[bs]=kmail;misc;razno;
-Keywords[ca]=kmail;varis;
-Keywords[cs]=kmail;různé;
-Keywords[da]=kmail;diverse;
-Keywords[de]=KMail;Verschiedenes;
-Keywords[el]=kmail;διάφορα;
-Keywords[es]=kmail;varios;
-Keywords[et]=kmail;muud;
-Keywords[eu]=kmail;miszelanea;
-Keywords[fi]=kmail;muut;
-Keywords[fr]=KMail;divers;
-Keywords[fy]=kmail;ferskate;
-Keywords[ga]=kmail;éagsúil;
-Keywords[he]=kmail;misc;כללי;
-Keywords[hu]=kmail;egyéb;
-Keywords[is]=kmail;ýmislegt;
-Keywords[it]=kmail;varie;
-Keywords[ja]=kmail;その他;
-Keywords[km]=kmail;ផ្សេងៗ;
-Keywords[lt]=kmail;misc;įvairūs;
-Keywords[mk]=kmail;misc;кпошта;разно;
-Keywords[ms]=kmail;pelbagai;
-Keywords[nb]=kmail;div;
-Keywords[nds]=KMail;anner;saken;
-Keywords[ne]=केडीई मेल; विविध;
-Keywords[nl]=kmail;diversen;
-Keywords[nn]=KMail;ymse;
-Keywords[pl]=kmail;różne;inne;
-Keywords[pt]=kmail;vários;
-Keywords[pt_BR]=kmail; extras;
-Keywords[ru]=kmail;misc;прочее;другие;
-Keywords[sk]=kmail;rôzne;
-Keywords[sl]=kmail;razno;
-Keywords[sr]=kmail;разно;
-Keywords[sr@Latn]=kmail;razno;
-Keywords[sv]=kmail;diverse;
-Keywords[ta]=கேஅஞ்சல்; இதர;
-Keywords[tg]=kmail;misc;ғайра;дигар;
-Keywords[tr]=kmail;çeşitli;
-Keywords[uk]=kmail;різне;
-Keywords[uz]=kmail;ҳар хил;
-Keywords[zh_CN]=kmail;misc;杂项;
diff --git a/kmail/kmail_config_security.desktop b/kmail/kmail_config_security.desktop
index 3e15626e..6e9975d0 100644
--- a/kmail/kmail_config_security.desktop
+++ b/kmail/kmail_config_security.desktop
@@ -12,156 +12,7 @@ X-TDE-ParentComponents=kmail,kontact_kmailplugin
X-TDE-CfgDlgHierarchy=KMail
Name=Security
-Name[af]=Sekuriteit
-Name[be]=Бясьпека
-Name[bg]=Сигурност
-Name[br]=Surentez
-Name[bs]=Sigurnost
-Name[ca]=Seguretat
-Name[cs]=Bezpečnost
-Name[cy]=Diogelwch
-Name[da]=Sikkerhed
-Name[de]=Sicherheit
-Name[el]=Ασφάλεια
-Name[eo]=Sekureco
-Name[es]=Seguridad
-Name[et]=Turvalisus
-Name[eu]=Sekuritatea
-Name[fa]=امنیت
-Name[fi]=Turvallisuus
-Name[fr]=Sécurité
-Name[fy]=Feiligens
-Name[ga]=Slándáil
-Name[gl]=Seguridade
-Name[he]=אבטחה
-Name[hu]=Biztonság
-Name[is]=Öryggi
-Name[it]=Sicurezza
-Name[ja]=セキュリティ
-Name[kk]=Қауіпсіздік
-Name[km]=សុវត្ថិភាព
-Name[lt]=Saugumas
-Name[mk]=Безбедност
-Name[ms]=Keselamatan
-Name[nb]=Sikkerhet
-Name[nds]=Sekerheit
-Name[ne]=सूरक्षा
-Name[nl]=Beveiliging
-Name[nn]=Tryggleik
-Name[pa]=ਸੁਰੱਖਿਆ
-Name[pl]=Bezpieczeństwo
-Name[pt]=Segurança
-Name[pt_BR]=Segurança
-Name[ru]=Безопасность
-Name[se]=Sihkarvuohta
-Name[sk]=Zabezpečenie
-Name[sl]=Varnost
-Name[sr]=Сигурност
-Name[sr@Latn]=Sigurnost
-Name[sv]=Säkerhet
-Name[ta]=பாதுகாப்பு
-Name[tg]=Амният
-Name[tr]=Güvenlik
-Name[uk]=Безпека
-Name[uz]=Хавфсизлик
-Name[zh_CN]=安全
-Name[zh_TW]=安全性
+
Comment=Security & Privacy Settings
-Comment[af]=Sekuriteit en provaatheid opstelling
-Comment[be]=Настаўленні бясьпекі і прыватнасьці
-Comment[bg]=Настройки на сигурността
-Comment[br]=Kefluniadur surentez ar buhez prevez
-Comment[bs]=Postavke sigurnosti i privatnosti
-Comment[ca]=Arranjament de seguretat i privadesa
-Comment[cs]=Nastavení soukromí a zabezpečení
-Comment[da]=Sikkerheds- & Privathedsindstillinger
-Comment[de]=Einstellungen zu Sicherheit und Privatsphäre
-Comment[el]=Ρυθμίσεις Ασφάλειας & Προσωπικού απόρρητου
-Comment[eo]=Agordoj pri Sekureco kaj Privateco
-Comment[es]=Opciones de seguridad y privacidad
-Comment[et]=Turvalisus- ja privaatsusseadistused
-Comment[eu]=Sekuritate & pribakortasun ezarpenak
-Comment[fa]=امنیت و تنظیمات محرمانگی
-Comment[fi]=Turvallisuus- ja yksityisyysasetukset
-Comment[fr]=Paramètres de sécurité et de confidentialité
-Comment[fy]=Feiligens- en privacy-ynstellings
-Comment[gl]=Opcións de Seguridade e Intimidade
-Comment[he]=הגדרות אבטחה ופרטיות
-Comment[hu]=Biztonsági és adatvédelmi beállítások
-Comment[is]=Öryggis & einkalífsstillingar
-Comment[it]=Impostazioni sicurezza e privacy
-Comment[ja]=セキュリティ & プライバシーの設定
-Comment[kk]=Қауіпсіздігі пен Дербестік параметрлері
-Comment[km]=ការ​កំណត់​សុវត្ថិភាព & ភាព​ឯកជន
-Comment[lt]=Saugumo ir privatumo nustatymai
-Comment[mk]=Поставувања за безбедност и приватност
-Comment[ms]=Seting Keselamatan & Peribadi
-Comment[nb]=Sikkerhet og personvern-innstillinger
-Comment[nds]=Sekerheit- un Privaatrebeet-Instellen
-Comment[ne]=सुरक्षा र गोप्यता सेटिङ
-Comment[nl]=Beveiligings- en privacy-instellingen
-Comment[nn]=Innstillingar for tryggleik og personvern
-Comment[pl]=Ustawienia bezpieczeństwa i prywatności
-Comment[pt]=Configuração de Segurança e Privacidade
-Comment[pt_BR]=Configurações de Segurança & Privacidade
-Comment[ru]=Настройки безопасности
-Comment[se]=Sihkarvuohta- ja iežas suodjalan heivehusat
-Comment[sk]=Zabezpečenie a súkromie
-Comment[sl]=Nastavitve varnosti in zasebnosti
-Comment[sr]=Поставке сигурности и приватности
-Comment[sr@Latn]=Postavke sigurnosti i privatnosti
-Comment[sv]=Inställningar för säkerhet och integritet
-Comment[ta]=பாதுகாப்பு & தனிப்பட்ட அமைவுகள்
-Comment[tg]=Танзимоти амният
-Comment[tr]=Güvenlik ve Gizlilik Ayarlar
-Comment[uk]=Параметри безпеки і конфіденційності
-Comment[zh_CN]=安全和隐私设置
-Comment[zh_TW]=安全性與隱私設定
+
Keywords=kmail;security;
-Keywords[be]=K Пошта;бясьпека;kmail;security;
-Keywords[bg]=пощенски; клиент; е-поща; сигурност; поверителност; kmail; security;
-Keywords[br]=kmail;surentez;
-Keywords[bs]=kmail;security;sigurnost;
-Keywords[ca]=kmail;seguretat;
-Keywords[cs]=kmail;bezpečnost;
-Keywords[da]=kmail;sikkerhed;
-Keywords[de]=KMail;Sicherheit;
-Keywords[el]=kmail;ασφάλεια;
-Keywords[es]=kmail;seguridad;
-Keywords[et]=kmail;turvalisus;
-Keywords[eu]=kmail;sekuritate;
-Keywords[fa]=kmail، امنیت;
-Keywords[fi]=kmail;turvallisuus;
-Keywords[fr]=KMail;sécurité;
-Keywords[fy]=kmail;feiligens;
-Keywords[ga]=kmail;slándáil;
-Keywords[gl]=kmail;seguridade;
-Keywords[he]=kmail;security;אבטחה;
-Keywords[hu]=kmail;biztonság;
-Keywords[is]=kmail;öryggi;
-Keywords[it]=kmail;sicurezza;
-Keywords[ja]=kmail;セキュリティ;
-Keywords[km]=kmail;សុវត្ថិភាព;
-Keywords[lt]=kmail;security;saugumas;
-Keywords[mk]=kmail;security;кпошта;безбедност;
-Keywords[ms]=kmail;keselamatan;
-Keywords[nb]=kmail;sikkerhet;
-Keywords[nds]=KMail;Sekerheit;Privaatrebeet;
-Keywords[ne]=केडीई मेल; सुरक्षा;
-Keywords[nl]=kmail;beveiliging;
-Keywords[nn]=KMail;tryggleik;
-Keywords[pl]=kmail;bezpieczeństwo;prywatność;
-Keywords[pt]=kmail;segurança;
-Keywords[pt_BR]=kmail;segurança;
-Keywords[ru]=kmail;security;безопасность;
-Keywords[sk]=kmail;zabezpečenie;
-Keywords[sl]=kmail;varnost;
-Keywords[sr]=kmail;сигурност;
-Keywords[sr@Latn]=kmail;sigurnost;
-Keywords[sv]=kmail;säkerhet;
-Keywords[ta]=கேஅஞ்சல்;பாதுகாப்பு;
-Keywords[tg]=kmail;security;амният;
-Keywords[tr]=kmail;güvenlik;
-Keywords[uk]=kmail;безпека;
-Keywords[uz]=kmail;хавфсизлик;
-Keywords[zh_CN]=kmail;security;安全;
diff --git a/kmail/kmail_options.h b/kmail/kmail_options.h
index c0489b7f..e5b327ec 100644
--- a/kmail/kmail_options.h
+++ b/kmail/kmail_options.h
@@ -1,4 +1,3 @@
-/* -*- mode: C++; c-file-style: "gnu" -*- */
#ifndef KMAIL_OPTIONS_H
#define KMAIL_OPTIONS_H
diff --git a/kmail/kmail_part.cpp b/kmail/kmail_part.cpp
index 23918a04..55722c3c 100644
--- a/kmail/kmail_part.cpp
+++ b/kmail/kmail_part.cpp
@@ -1,5 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
-
+/*
This file is part of KMail.
Copyright (c) 2002-2003 Don Sanders <sanders@kde.org>,
Copyright (c) 2003 Zack Rusin <zack@kde.org>,
@@ -100,14 +99,14 @@ KMailPart::KMailPart(TQWidget *parentWidget, const char *widgetName,
// create a canvas to insert our widget
TQWidget *canvas = new TQWidget(parentWidget, widgetName);
- canvas->setFocusPolicy(TQ_ClickFocus);
+ canvas->setFocusPolicy(TQWidget::ClickFocus);
setWidget(canvas);
TDEGlobal::iconLoader()->addAppDir("kmail");
#if 0
//It's also possible to make a part out of a readerWin
KMReaderWin *mReaderWin = new KMReaderWin( canvas, canvas, actionCollection() );
- connect(mReaderWin, TQT_SIGNAL(urlClicked(const KURL&,int)),
- mReaderWin, TQT_SLOT(slotUrlClicked()));
+ connect(mReaderWin, TQ_SIGNAL(urlClicked(const KURL&,int)),
+ mReaderWin, TQ_SLOT(slotUrlClicked()));
TQVBoxLayout *topLayout = new TQVBoxLayout(canvas);
topLayout->addWidget(mReaderWin);
mReaderWin->setAutoDelete( true );
@@ -125,7 +124,7 @@ KMailPart::KMailPart(TQWidget *parentWidget, const char *widgetName,
kapp->config());
TQVBoxLayout *topLayout = new TQVBoxLayout(canvas);
topLayout->addWidget(mainWidget);
- mainWidget->setFocusPolicy(TQ_ClickFocus);
+ mainWidget->setFocusPolicy(TQWidget::ClickFocus);
mStatusBar = new KMailStatusBarExtension(this);
mStatusBar->addStatusBarItem( mainWidget->vacationScriptIndicator(), 2, false );
@@ -135,20 +134,20 @@ KMailPart::KMailPart(TQWidget *parentWidget, const char *widgetName,
// Get to know when the user clicked on a folder in the KMail part and update the headerWidget of Kontact
KParts::InfoExtension *ie = new KParts::InfoExtension( this, "KMailInfo" );
- connect( mainWidget->folderTree(), TQT_SIGNAL(folderSelected(KMFolder*)), this, TQT_SLOT(exportFolder(KMFolder*)) );
- connect( mainWidget->folderTree(), TQT_SIGNAL(iconChanged(KMFolderTreeItem*)),
- this, TQT_SLOT(slotIconChanged(KMFolderTreeItem*)) );
- connect( mainWidget->folderTree(), TQT_SIGNAL(nameChanged(KMFolderTreeItem*)),
- this, TQT_SLOT(slotNameChanged(KMFolderTreeItem*)) );
- connect( this, TQT_SIGNAL(textChanged(const TQString&)), ie, TQT_SIGNAL(textChanged(const TQString&)) );
- connect( this, TQT_SIGNAL(iconChanged(const TQPixmap&)), ie, TQT_SIGNAL(iconChanged(const TQPixmap&)) );
+ connect( mainWidget->folderTree(), TQ_SIGNAL(folderSelected(KMFolder*)), this, TQ_SLOT(exportFolder(KMFolder*)) );
+ connect( mainWidget->folderTree(), TQ_SIGNAL(iconChanged(KMFolderTreeItem*)),
+ this, TQ_SLOT(slotIconChanged(KMFolderTreeItem*)) );
+ connect( mainWidget->folderTree(), TQ_SIGNAL(nameChanged(KMFolderTreeItem*)),
+ this, TQ_SLOT(slotNameChanged(KMFolderTreeItem*)) );
+ connect( this, TQ_SIGNAL(textChanged(const TQString&)), ie, TQ_SIGNAL(textChanged(const TQString&)) );
+ connect( this, TQ_SIGNAL(iconChanged(const TQPixmap&)), ie, TQ_SIGNAL(iconChanged(const TQPixmap&)) );
TDEGlobal::iconLoader()->addAppDir( "kmail" );
setXMLFile( "kmail_part.rc" );
#endif
KSettings::Dispatcher::self()->registerInstance( KMailFactory::instance(), mKMailKernel,
- TQT_SLOT( slotConfigChanged() ) );
+ TQ_SLOT( slotConfigChanged() ) );
}
KMailPart::~KMailPart()
diff --git a/kmail/kmail_part.h b/kmail/kmail_part.h
index 34a6e8d5..079cb617 100644
--- a/kmail/kmail_part.h
+++ b/kmail/kmail_part.h
@@ -35,7 +35,7 @@
#include <tdeparts/part.h>
#include <tqwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TDEInstance;
class TDEAboutData;
@@ -51,7 +51,7 @@ class ActionManager;
class KDE_EXPORT KMailPart: public KParts::ReadOnlyPart, virtual public KMailPartIface
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMailPart(TQWidget *parentWidget, const char *widgetName,
diff --git a/kmail/kmail_view.desktop b/kmail/kmail_view.desktop
index a1f110ca..1efcd941 100644
--- a/kmail/kmail_view.desktop
+++ b/kmail/kmail_view.desktop
@@ -1,22 +1,12 @@
[Desktop Entry]
Name=KMail
-Name[eo]=Retpoŝto
-Name[hi]=के-मेल
-Name[lv]=KPasts
-Name[mk]=КПошта
-Name[ne]=केडीई मेल
-Name[pa]=ਕੇ-ਪੱਤਰ
-Name[sv]=Kmail
-Name[ta]=Kஅஞ்சல்
-Name[th]=จัดการจดหมาย - K
-Name[zh_TW]=KMail 郵件軟體
+
Type=Application
Exec=kmail --view %u
Icon=kmail
X-DocPath=kmail/index.html
NoDisplay=true
MimeType=message/rfc822;application/mbox;application/x-mimearchive;
-
X-TDE-StartupNotify=true
X-DCOP-ServiceType=Unique
X-DCOP-ServiceName=kmail
diff --git a/kmail/kmailicalifaceimpl.cpp b/kmail/kmailicalifaceimpl.cpp
index 8f10be35..a65b6cdd 100644
--- a/kmail/kmailicalifaceimpl.cpp
+++ b/kmail/kmailicalifaceimpl.cpp
@@ -161,9 +161,9 @@ KMailICalIfaceImpl::KMailICalIfaceImpl()
mUseResourceIMAP( false ), mResourceQuiet( false ), mHideFolders( true )
{
// Listen to config changes
- connect( kmkernel, TQT_SIGNAL( configChanged() ), this, TQT_SLOT( readConfig() ) );
- connect( kmkernel, TQT_SIGNAL( folderRemoved( KMFolder* ) ),
- this, TQT_SLOT( slotFolderRemoved( KMFolder* ) ) );
+ connect( kmkernel, TQ_SIGNAL( configChanged() ), this, TQ_SLOT( readConfig() ) );
+ connect( kmkernel, TQ_SIGNAL( folderRemoved( KMFolder* ) ),
+ this, TQ_SLOT( slotFolderRemoved( KMFolder* ) ) );
mExtraFolders.setAutoDelete( true );
mAccumulators.setAutoDelete( true );
@@ -1140,8 +1140,8 @@ void KMailICalIfaceImpl::slotIncidenceAdded( KMFolder* folder,
// TODO: Till, port me
if ( unget ) mTheUnGetMes.insert( msg->getMsgSerNum(), true );
FolderJob *job = msg->parent()->createJob( msg );
- connect( job, TQT_SIGNAL( messageRetrieved( KMMessage* ) ),
- this, TQT_SLOT( slotMessageRetrieved( KMMessage* ) ) );
+ connect( job, TQ_SIGNAL( messageRetrieved( KMMessage* ) ),
+ this, TQ_SLOT( slotMessageRetrieved( KMMessage* ) ) );
job->start();
return;
}
@@ -1717,10 +1717,10 @@ void KMailICalIfaceImpl::readConfig()
Q_ASSERT( account );
if ( account ) {
// just in case we were connected already
- disconnect( account, TQT_SIGNAL( finishedCheck( bool, CheckStatus ) ),
- this, TQT_SLOT( slotCheckDone() ) );
- connect( account, TQT_SIGNAL( finishedCheck( bool, CheckStatus ) ),
- this, TQT_SLOT( slotCheckDone() ) );
+ disconnect( account, TQ_SIGNAL( finishedCheck( bool, CheckStatus ) ),
+ this, TQ_SLOT( slotCheckDone() ) );
+ connect( account, TQ_SIGNAL( finishedCheck( bool, CheckStatus ) ),
+ this, TQ_SLOT( slotCheckDone() ) );
}
mUseResourceIMAP = false;
// We can't really call cleanup(), if those folders were completely deleted.
@@ -1966,8 +1966,8 @@ void KMailICalIfaceImpl::slotCheckDone()
{
KMAccount* account = kmkernel->acctMgr()->find( GlobalSettings::self()->theIMAPResourceAccount() );
if ( account )
- disconnect( account, TQT_SIGNAL( finishedCheck( bool, CheckStatus ) ),
- this, TQT_SLOT( slotCheckDone() ) );
+ disconnect( account, TQ_SIGNAL( finishedCheck( bool, CheckStatus ) ),
+ this, TQ_SLOT( slotCheckDone() ) );
readConfig();
}
}
@@ -2084,32 +2084,32 @@ KMFolder* KMailICalIfaceImpl::initScalixFolder( KMail::FolderContentsType conten
void KMailICalIfaceImpl::connectFolder( KMFolder* folder )
{
// avoid multiple connections
- disconnect( folder, TQT_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ),
- this, TQT_SLOT( slotIncidenceAdded( KMFolder*, TQ_UINT32 ) ) );
- disconnect( folder, TQT_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ),
- this, TQT_SLOT( slotIncidenceDeleted( KMFolder*, TQ_UINT32 ) ) );
- disconnect( folder, TQT_SIGNAL( expunged( KMFolder* ) ),
- this, TQT_SLOT( slotRefreshFolder( KMFolder* ) ) );
- disconnect( folder->storage(), TQT_SIGNAL( readOnlyChanged( KMFolder* ) ),
- this, TQT_SLOT( slotFolderPropertiesChanged( KMFolder* ) ) );
- disconnect( folder, TQT_SIGNAL( nameChanged() ),
- this, TQT_SLOT( slotFolderRenamed() ) );
- disconnect( folder->storage(), TQT_SIGNAL( locationChanged( const TQString&, const TQString&) ),
- this, TQT_SLOT( slotFolderLocationChanged( const TQString&, const TQString&) ) );
+ disconnect( folder, TQ_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ),
+ this, TQ_SLOT( slotIncidenceAdded( KMFolder*, TQ_UINT32 ) ) );
+ disconnect( folder, TQ_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ),
+ this, TQ_SLOT( slotIncidenceDeleted( KMFolder*, TQ_UINT32 ) ) );
+ disconnect( folder, TQ_SIGNAL( expunged( KMFolder* ) ),
+ this, TQ_SLOT( slotRefreshFolder( KMFolder* ) ) );
+ disconnect( folder->storage(), TQ_SIGNAL( readOnlyChanged( KMFolder* ) ),
+ this, TQ_SLOT( slotFolderPropertiesChanged( KMFolder* ) ) );
+ disconnect( folder, TQ_SIGNAL( nameChanged() ),
+ this, TQ_SLOT( slotFolderRenamed() ) );
+ disconnect( folder->storage(), TQ_SIGNAL( locationChanged( const TQString&, const TQString&) ),
+ this, TQ_SLOT( slotFolderLocationChanged( const TQString&, const TQString&) ) );
// Setup the signals to listen for changes
- connect( folder, TQT_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ),
- this, TQT_SLOT( slotIncidenceAdded( KMFolder*, TQ_UINT32 ) ) );
- connect( folder, TQT_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ),
- this, TQT_SLOT( slotIncidenceDeleted( KMFolder*, TQ_UINT32 ) ) );
- connect( folder, TQT_SIGNAL( expunged( KMFolder* ) ),
- this, TQT_SLOT( slotRefreshFolder( KMFolder* ) ) );
- connect( folder->storage(), TQT_SIGNAL( readOnlyChanged( KMFolder* ) ),
- this, TQT_SLOT( slotFolderPropertiesChanged( KMFolder* ) ) );
- connect( folder, TQT_SIGNAL( nameChanged() ),
- this, TQT_SLOT( slotFolderRenamed() ) );
- connect( folder->storage(), TQT_SIGNAL( locationChanged( const TQString&, const TQString&) ),
- this, TQT_SLOT( slotFolderLocationChanged( const TQString&, const TQString&) ) );
+ connect( folder, TQ_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ),
+ this, TQ_SLOT( slotIncidenceAdded( KMFolder*, TQ_UINT32 ) ) );
+ connect( folder, TQ_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ),
+ this, TQ_SLOT( slotIncidenceDeleted( KMFolder*, TQ_UINT32 ) ) );
+ connect( folder, TQ_SIGNAL( expunged( KMFolder* ) ),
+ this, TQ_SLOT( slotRefreshFolder( KMFolder* ) ) );
+ connect( folder->storage(), TQ_SIGNAL( readOnlyChanged( KMFolder* ) ),
+ this, TQ_SLOT( slotFolderPropertiesChanged( KMFolder* ) ) );
+ connect( folder, TQ_SIGNAL( nameChanged() ),
+ this, TQ_SLOT( slotFolderRenamed() ) );
+ connect( folder->storage(), TQ_SIGNAL( locationChanged( const TQString&, const TQString&) ),
+ this, TQ_SLOT( slotFolderLocationChanged( const TQString&, const TQString&) ) );
}
diff --git a/kmail/kmailicalifaceimpl.h b/kmail/kmailicalifaceimpl.h
index 3b4a194c..b047ed98 100644
--- a/kmail/kmailicalifaceimpl.h
+++ b/kmail/kmailicalifaceimpl.h
@@ -82,7 +82,7 @@ public:
/** The implementation of the interface. */
class KMailICalIfaceImpl : public TQObject, virtual public KMailICalIface {
- Q_OBJECT
+ TQ_OBJECT
public:
KMailICalIfaceImpl();
diff --git a/kmail/kmatmlistview.cpp b/kmail/kmatmlistview.cpp
index 4d9fc42d..f8a573ed 100644
--- a/kmail/kmatmlistview.cpp
+++ b/kmail/kmatmlistview.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmatmlistview.cpp
// Author: Markus Wuebben <markus.wuebben@kde.org>
// This code is published under the GPL.
@@ -19,12 +18,12 @@ KMAtmListViewItem::KMAtmListViewItem( TQListView *parent )
mCBCompress->setShown( true );
updateAllCheckBoxes();
- connect( mCBCompress, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotCompress() ) );
- connect( listView()->header(), TQT_SIGNAL( sizeChange(int, int, int) ),
- TQT_SLOT( slotHeaderChange( int, int, int ) ) );
- connect( listView()->header(), TQT_SIGNAL( indexChange(int, int, int) ),
- TQT_SLOT( slotHeaderChange( int, int, int ) ) );
- connect( listView()->header(), TQT_SIGNAL( clicked( int ) ), TQT_SLOT( slotHeaderClick( int ) ) );
+ connect( mCBCompress, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotCompress() ) );
+ connect( listView()->header(), TQ_SIGNAL( sizeChange(int, int, int) ),
+ TQ_SLOT( slotHeaderChange( int, int, int ) ) );
+ connect( listView()->header(), TQ_SIGNAL( indexChange(int, int, int) ),
+ TQ_SLOT( slotHeaderChange( int, int, int ) ) );
+ connect( listView()->header(), TQ_SIGNAL( clicked( int ) ), TQ_SLOT( slotHeaderClick( int ) ) );
}
KMAtmListViewItem::~KMAtmListViewItem()
diff --git a/kmail/kmatmlistview.h b/kmail/kmatmlistview.h
index f4d86595..a1e0797b 100644
--- a/kmail/kmatmlistview.h
+++ b/kmail/kmatmlistview.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* KMAtmListViewItem Header File
* Author: Markus Wuebben <markus.wuebben@kde.org>
*/
@@ -14,7 +14,7 @@ class TQCheckBox;
class KMAtmListViewItem : public TQObject, public TQListViewItem
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmcommands.cpp b/kmail/kmcommands.cpp
index 3194cee1..833144a8 100644
--- a/kmail/kmcommands.cpp
+++ b/kmail/kmcommands.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
This file is part of KMail, the KDE mail client.
Copyright (c) 2002 Don Sanders <sanders@kde.org>
@@ -202,7 +202,7 @@ KMCommand::Result KMCommand::result()
void KMCommand::start()
{
- TQTimer::singleShot( 0, this, TQT_SLOT( slotStart() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotStart() ) );
}
@@ -225,8 +225,8 @@ int KMCommand::mCountJobs = 0;
void KMCommand::slotStart()
{
- connect( this, TQT_SIGNAL( messagesTransfered( KMCommand::Result ) ),
- this, TQT_SLOT( slotPostTransfer( KMCommand::Result ) ) );
+ connect( this, TQ_SIGNAL( messagesTransfered( KMCommand::Result ) ),
+ this, TQ_SLOT( slotPostTransfer( KMCommand::Result ) ) );
kmkernel->filterMgr()->ref();
if (mMsgList.find(0) != -1) {
@@ -261,8 +261,8 @@ void KMCommand::slotStart()
void KMCommand::slotPostTransfer( KMCommand::Result result )
{
- disconnect( this, TQT_SIGNAL( messagesTransfered( KMCommand::Result ) ),
- this, TQT_SLOT( slotPostTransfer( KMCommand::Result ) ) );
+ disconnect( this, TQ_SIGNAL( messagesTransfered( KMCommand::Result ) ),
+ this, TQ_SLOT( slotPostTransfer( KMCommand::Result ) ) );
if ( result == OK )
result = execute();
mResult = result;
@@ -339,13 +339,13 @@ void KMCommand::transferSelectedMsgs()
job->setCancellable( false );
totalSize += thisMsg->msgSizeServer();
// emitted when the message was transferred successfully
- connect(job, TQT_SIGNAL(messageRetrieved(KMMessage*)),
- this, TQT_SLOT(slotMsgTransfered(KMMessage*)));
+ connect(job, TQ_SIGNAL(messageRetrieved(KMMessage*)),
+ this, TQ_SLOT(slotMsgTransfered(KMMessage*)));
// emitted when the job is destroyed
- connect(job, TQT_SIGNAL(finished()),
- this, TQT_SLOT(slotJobFinished()));
- connect(job, TQT_SIGNAL(progress(unsigned long, unsigned long)),
- this, TQT_SLOT(slotProgress(unsigned long, unsigned long)));
+ connect(job, TQ_SIGNAL(finished()),
+ this, TQ_SLOT(slotJobFinished()));
+ connect(job, TQ_SIGNAL(progress(unsigned long, unsigned long)),
+ this, TQ_SLOT(slotProgress(unsigned long, unsigned long)));
// msg musn't be deleted
thisMsg->setTransferInProgress(true);
job->start();
@@ -363,8 +363,8 @@ void KMCommand::transferSelectedMsgs()
} else {
// wait for the transfer and tell the progressBar the necessary steps
if ( mProgressDialog ) {
- connect(mProgressDialog, TQT_SIGNAL(cancelClicked()),
- this, TQT_SLOT(slotTransferCancelled()));
+ connect(mProgressDialog, TQ_SIGNAL(cancelClicked()),
+ this, TQ_SLOT(slotTransferCancelled()));
mProgressDialog->progressBar()->setTotalSteps(totalSize);
}
}
@@ -645,7 +645,7 @@ KMCommand::Result KMUrlSaveCommand::execute()
return Canceled;
}
TDEIO::Job *job = TDEIO::file_copy(mUrl, saveUrl, -1, true);
- connect(job, TQT_SIGNAL(result(TDEIO::Job*)), TQT_SLOT(slotUrlSaveResult(TDEIO::Job*)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job*)), TQ_SLOT(slotUrlSaveResult(TDEIO::Job*)));
setEmitsCompletedItself( true );
return OK;
}
@@ -845,10 +845,10 @@ KMCommand::Result KMSaveMsgCommand::execute()
mJob->slotTotalSize( mTotalSize );
mJob->setAsyncDataEnabled( true );
mJob->setReportDataSent( true );
- connect(mJob, TQT_SIGNAL(dataReq(TDEIO::Job*, TQByteArray &)),
- TQT_SLOT(slotSaveDataReq()));
- connect(mJob, TQT_SIGNAL(result(TDEIO::Job*)),
- TQT_SLOT(slotSaveResult(TDEIO::Job*)));
+ connect(mJob, TQ_SIGNAL(dataReq(TDEIO::Job*, TQByteArray &)),
+ TQ_SLOT(slotSaveDataReq()));
+ connect(mJob, TQ_SIGNAL(result(TDEIO::Job*)),
+ TQ_SLOT(slotSaveResult(TDEIO::Job*)));
setEmitsCompletedItself( true );
return OK;
}
@@ -898,8 +898,8 @@ void KMSaveMsgCommand::slotSaveDataReq()
if ( msg->parent() && !msg->isComplete() ) {
FolderJob *job = msg->parent()->createJob( msg );
job->setCancellable( false );
- connect(job, TQT_SIGNAL( messageRetrieved( KMMessage* ) ),
- this, TQT_SLOT( slotMessageRetrievedForSaving( KMMessage* ) ) );
+ connect(job, TQ_SIGNAL( messageRetrieved( KMMessage* ) ),
+ this, TQ_SLOT( slotMessageRetrievedForSaving( KMMessage* ) ) );
job->start();
}
}
@@ -971,10 +971,10 @@ void KMSaveMsgCommand::slotSaveResult(TDEIO::Job *job)
mJob->slotTotalSize( mTotalSize );
mJob->setAsyncDataEnabled( true );
mJob->setReportDataSent( true );
- connect(mJob, TQT_SIGNAL(dataReq(TDEIO::Job*, TQByteArray &)),
- TQT_SLOT(slotSaveDataReq()));
- connect(mJob, TQT_SIGNAL(result(TDEIO::Job*)),
- TQT_SLOT(slotSaveResult(TDEIO::Job*)));
+ connect(mJob, TQ_SIGNAL(dataReq(TDEIO::Job*, TQByteArray &)),
+ TQ_SLOT(slotSaveDataReq()));
+ connect(mJob, TQ_SIGNAL(result(TDEIO::Job*)),
+ TQ_SLOT(slotSaveResult(TDEIO::Job*)));
}
}
else
@@ -1014,10 +1014,10 @@ KMCommand::Result KMOpenMsgCommand::execute()
}
mJob = TDEIO::get( mUrl, false, false );
mJob->setReportDataSent( true );
- connect( mJob, TQT_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
- this, TQT_SLOT( slotDataArrived( TDEIO::Job*, const TQByteArray & ) ) );
- connect( mJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotResult( TDEIO::Job * ) ) );
+ connect( mJob, TQ_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
+ this, TQ_SLOT( slotDataArrived( TDEIO::Job*, const TQByteArray & ) ) );
+ connect( mJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotResult( TDEIO::Job * ) ) );
setEmitsCompletedItself( true );
return OK;
}
@@ -1904,15 +1904,15 @@ void KMMenuCommand::makeFolderMenu(KMFolderNode* node, bool move,
// connect the signals
if (move)
{
- disconnect(menu, TQT_SIGNAL(activated(int)), receiver,
- TQT_SLOT(moveSelectedToFolder(int)));
- connect(menu, TQT_SIGNAL(activated(int)), receiver,
- TQT_SLOT(moveSelectedToFolder(int)));
+ disconnect(menu, TQ_SIGNAL(activated(int)), receiver,
+ TQ_SLOT(moveSelectedToFolder(int)));
+ connect(menu, TQ_SIGNAL(activated(int)), receiver,
+ TQ_SLOT(moveSelectedToFolder(int)));
} else {
- disconnect(menu, TQT_SIGNAL(activated(int)), receiver,
- TQT_SLOT(copySelectedToFolder(int)));
- connect(menu, TQT_SIGNAL(activated(int)), receiver,
- TQT_SLOT(copySelectedToFolder(int)));
+ disconnect(menu, TQ_SIGNAL(activated(int)), receiver,
+ TQ_SLOT(copySelectedToFolder(int)));
+ connect(menu, TQ_SIGNAL(activated(int)), receiver,
+ TQ_SLOT(copySelectedToFolder(int)));
}
KMFolder *folder = 0;
@@ -2036,10 +2036,10 @@ KMCommand::Result KMCopyCommand::execute()
FolderJob *job = srcFolder->createJob(newMsg);
job->setCancellable( false );
mPendingJobs << job;
- connect(job, TQT_SIGNAL(messageRetrieved(KMMessage*)),
- mDestFolder, TQT_SLOT(reallyAddCopyOfMsg(KMMessage*)));
- connect( job, TQT_SIGNAL(result(KMail::FolderJob*)),
- this, TQT_SLOT(slotJobFinished(KMail::FolderJob*)) );
+ connect(job, TQ_SIGNAL(messageRetrieved(KMMessage*)),
+ mDestFolder, TQ_SLOT(reallyAddCopyOfMsg(KMMessage*)));
+ connect( job, TQ_SIGNAL(result(KMail::FolderJob*)),
+ this, TQ_SLOT(slotJobFinished(KMail::FolderJob*)) );
job->start();
} else {
// local => others
@@ -2067,8 +2067,8 @@ KMCommand::Result KMCopyCommand::execute()
if ( mPendingJobs.isEmpty() ) {
// wait for the end of the copy before closing the folder
KMFolderImap *imapDestFolder = static_cast<KMFolderImap*>(mDestFolder->storage());
- connect( imapDestFolder, TQT_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
- this, TQT_SLOT( slotFolderComplete( KMFolderImap*, bool ) ) );
+ connect( imapDestFolder, TQ_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
+ this, TQ_SLOT( slotFolderComplete( KMFolderImap*, bool ) ) );
}
} else {
deleteNow = list.isEmpty() && mPendingJobs.isEmpty(); // we're done if there are no other mails we need to fetch
@@ -2081,8 +2081,8 @@ KMCommand::Result KMCopyCommand::execute()
{
// copy the message(s); note: the list is empty afterwards!
KMFolderImap *imapDestFolder = static_cast<KMFolderImap*>(mDestFolder->storage());
- connect( imapDestFolder, TQT_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
- this, TQT_SLOT( slotFolderComplete( KMFolderImap*, bool ) ) );
+ connect( imapDestFolder, TQ_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
+ this, TQ_SLOT( slotFolderComplete( KMFolderImap*, bool ) ) );
imapDestFolder->copyMsg(list);
imapDestFolder->getFolder();
}
@@ -2107,8 +2107,8 @@ void KMCopyCommand::slotJobFinished(KMail::FolderJob * job)
kdDebug(5006) << k_funcinfo << "folder job failed: " << job->error() << endl;
// kill all pending jobs
for ( TQValueList<KMail::FolderJob*>::Iterator it = mPendingJobs.begin(); it != mPendingJobs.end(); ++it ) {
- disconnect( (*it), TQT_SIGNAL(result(KMail::FolderJob*)),
- this, TQT_SLOT(slotJobFinished(KMail::FolderJob*)) );
+ disconnect( (*it), TQ_SIGNAL(result(KMail::FolderJob*)),
+ this, TQ_SLOT(slotJobFinished(KMail::FolderJob*)) );
(*it)->kill();
}
mPendingJobs.clear();
@@ -2181,8 +2181,8 @@ KMCommand::Result KMMoveCommand::execute()
ProgressManager::createProgressItem (
"move"+ProgressManager::getUniqueID(),
mDestFolder ? i18n( "Moving messages" ) : i18n( "Deleting messages" ) );
- connect( mProgressItem, TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem* ) ),
- this, TQT_SLOT( slotMoveCanceled() ) );
+ connect( mProgressItem, TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem* ) ),
+ this, TQ_SLOT( slotMoveCanceled() ) );
KMMessage *msg;
int rc = 0;
@@ -2192,8 +2192,8 @@ KMCommand::Result KMMoveCommand::execute()
mCompleteWithAddedMsg = false;
if (mDestFolder) {
- connect (mDestFolder, TQT_SIGNAL(msgAdded(KMFolder*, TQ_UINT32)),
- this, TQT_SLOT(slotMsgAddedToDestFolder(KMFolder*, TQ_UINT32)));
+ connect (mDestFolder, TQ_SIGNAL(msgAdded(KMFolder*, TQ_UINT32)),
+ this, TQ_SLOT(slotMsgAddedToDestFolder(KMFolder*, TQ_UINT32)));
mLostBoys = mSerNumList;
}
mProgressItem->setTotalItems( mSerNumList.count() );
@@ -2235,11 +2235,11 @@ KMCommand::Result KMMoveCommand::execute()
* signal so we notice when all the mails should have showed up in it
* but haven't for some reason. */
KMFolderImap *imapFolder = static_cast<KMFolderImap*> ( mDestFolder->storage() );
- disconnect (imapFolder, TQT_SIGNAL(folderComplete( KMFolderImap*, bool )),
- this, TQT_SLOT(slotImapFolderCompleted( KMFolderImap*, bool )));
+ disconnect (imapFolder, TQ_SIGNAL(folderComplete( KMFolderImap*, bool )),
+ this, TQ_SLOT(slotImapFolderCompleted( KMFolderImap*, bool )));
- connect (imapFolder, TQT_SIGNAL(folderComplete( KMFolderImap*, bool )),
- this, TQT_SLOT(slotImapFolderCompleted( KMFolderImap*, bool )));
+ connect (imapFolder, TQ_SIGNAL(folderComplete( KMFolderImap*, bool )),
+ this, TQ_SLOT(slotImapFolderCompleted( KMFolderImap*, bool )));
list.append(msg);
} else {
// We are moving to a local folder.
@@ -2297,8 +2297,8 @@ KMCommand::Result KMMoveCommand::execute()
void KMMoveCommand::slotImapFolderCompleted(KMFolderImap* imapFolder, bool success)
{
- disconnect (imapFolder, TQT_SIGNAL(folderComplete( KMFolderImap*, bool )),
- this, TQT_SLOT(slotImapFolderCompleted( KMFolderImap*, bool )));
+ disconnect (imapFolder, TQ_SIGNAL(folderComplete( KMFolderImap*, bool )),
+ this, TQ_SLOT(slotImapFolderCompleted( KMFolderImap*, bool )));
if ( success ) {
// the folder was checked successfully but we were still called, so check
// if we are still waiting for messages to show up. If so, uidValidity
@@ -2327,8 +2327,8 @@ void KMMoveCommand::slotMsgAddedToDestFolder(KMFolder *folder, TQ_UINT32 serNum)
mLostBoys.remove(serNum);
if ( mLostBoys.isEmpty() ) {
// we are done. All messages transferred to the host succesfully
- disconnect (mDestFolder, TQT_SIGNAL(msgAdded(KMFolder*, TQ_UINT32)),
- this, TQT_SLOT(slotMsgAddedToDestFolder(KMFolder*, TQ_UINT32)));
+ disconnect (mDestFolder, TQ_SIGNAL(msgAdded(KMFolder*, TQ_UINT32)),
+ this, TQ_SLOT(slotMsgAddedToDestFolder(KMFolder*, TQ_UINT32)));
if (mDestFolder && mDestFolder->folderType() != KMFolderTypeImap) {
mDestFolder->sync();
}
@@ -2526,8 +2526,8 @@ KMCommand::Result KMSaveAttachmentsCommand::execute()
setDeletesItself( true );
// load all parts
KMLoadPartsCommand *command = new KMLoadPartsCommand( mAttachmentMap );
- connect( command, TQT_SIGNAL( partsRetrieved() ),
- this, TQT_SLOT( slotSaveAll() ) );
+ connect( command, TQ_SIGNAL( partsRetrieved() ),
+ this, TQ_SLOT( slotSaveAll() ) );
command->start();
return OK;
@@ -2832,8 +2832,8 @@ void KMLoadPartsCommand::slotStart()
curFolder->createJob( it.data(), FolderJob::tGetMessage,
0, it.key()->msgPart().partSpecifier() );
job->setCancellable( false );
- connect( job, TQT_SIGNAL(messageUpdated(KMMessage*, TQString)),
- this, TQT_SLOT(slotPartRetrieved(KMMessage*, TQString)) );
+ connect( job, TQ_SIGNAL(messageUpdated(KMMessage*, TQString)),
+ this, TQ_SLOT(slotPartRetrieved(KMMessage*, TQString)) );
job->start();
} else
kdWarning(5006) << "KMLoadPartsCommand - msg has no parent" << endl;
@@ -2928,8 +2928,8 @@ KMCommand::Result KMMailingListCommand::execute()
new KMUrlClickedCommand( lst.first(), mFolder->identity(), 0, false );
}
if ( command ) {
- connect( command, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( commandCompleted( KMCommand * ) ) );
+ connect( command, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( commandCompleted( KMCommand * ) ) );
setDeletesItself( true );
setEmitsCompletedItself( true );
command->start();
@@ -3049,8 +3049,8 @@ void KMHandleAttachmentCommand::slotStart()
// load the part
kdDebug(5006) << "load part" << endl;
KMLoadPartsCommand *command = new KMLoadPartsCommand( mNode, mMsg );
- connect( command, TQT_SIGNAL( partsRetrieved() ),
- this, TQT_SLOT( slotPartComplete() ) );
+ connect( command, TQ_SIGNAL( partsRetrieved() ),
+ this, TQ_SLOT( slotPartComplete() ) );
command->start();
} else
{
@@ -3239,8 +3239,8 @@ void KMHandleAttachmentCommand::atmEncryptWithChiasmus()
if ( !chiasmus )
return;
- const STD_NAMESPACE_PREFIX auto_ptr<Kleo::SpecialJob> listjob( chiasmus->specialJob( "x-obtain-keys", TQStringVariantMap() ) );
- if ( !listjob.get() ) {
+ const STD_NAMESPACE_PREFIX unique_ptr<Kleo::SpecialJob> listjob( chiasmus->specialJob( "x-obtain-keys", TQStringVariantMap() ) );
+ if ( !listjob ) {
const TQString msg = i18n( "Chiasmus backend does not offer the "
"\"x-obtain-keys\" function. Please report this bug." );
KMessageBox::error( parentWidget(), msg, i18n( "Chiasmus Backend Error" ) );
@@ -3306,8 +3306,8 @@ void KMHandleAttachmentCommand::atmEncryptWithChiasmus()
}
mJob = job;
- connect( job, TQT_SIGNAL(result(const GpgME::Error&,const TQVariant&)),
- this, TQT_SLOT(slotAtmDecryptWithChiasmusResult(const GpgME::Error&,const TQVariant&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::Error&,const TQVariant&)),
+ this, TQ_SLOT(slotAtmDecryptWithChiasmusResult(const GpgME::Error&,const TQVariant&)) );
}
static const TQString chomp( const TQString & base, const TQString & suffix, bool cs ) {
@@ -3350,8 +3350,8 @@ void KMHandleAttachmentCommand::slotAtmDecryptWithChiasmusResult( const GpgME::E
d.setDisabled( true ); // we got this far, don't delete yet
TDEIO::Job * uploadJob = TDEIO::storedPut( result.toByteArray(), url, -1, overwrite, false /*resume*/ );
uploadJob->setWindow( parentWidget() );
- connect( uploadJob, TQT_SIGNAL(result(TDEIO::Job*)),
- this, TQT_SLOT(slotAtmDecryptWithChiasmusUploadResult(TDEIO::Job*)) );
+ connect( uploadJob, TQ_SIGNAL(result(TDEIO::Job*)),
+ this, TQ_SLOT(slotAtmDecryptWithChiasmusUploadResult(TDEIO::Job*)) );
}
void KMHandleAttachmentCommand::slotAtmDecryptWithChiasmusUploadResult( TDEIO::Job * job )
@@ -3412,8 +3412,8 @@ void AttachmentModifyCommand::storeChangedMessage(KMMessage * msg)
int res = mFolder->addMsg( msg ) != 0;
if ( mFolder->folderType() == KMFolderTypeImap ) {
KMFolderImap *f = static_cast<KMFolderImap*>( mFolder->storage() );
- connect( f, TQT_SIGNAL(folderComplete(KMFolderImap*,bool)),
- TQT_SLOT(messageStoreResult(KMFolderImap*,bool)) );
+ connect( f, TQ_SIGNAL(folderComplete(KMFolderImap*,bool)),
+ TQ_SLOT(messageStoreResult(KMFolderImap*,bool)) );
} else {
messageStoreResult( 0, res == 0 );
}
@@ -3424,7 +3424,7 @@ void AttachmentModifyCommand::messageStoreResult(KMFolderImap* folder, bool succ
Q_UNUSED( folder );
if ( success ) {
KMCommand *delCmd = new KMDeleteMsgCommand( mSernum );
- connect( delCmd, TQT_SIGNAL(completed(KMCommand*)), TQT_SLOT(messageDeleteResult(KMCommand*)) );
+ connect( delCmd, TQ_SIGNAL(completed(KMCommand*)), TQ_SLOT(messageDeleteResult(KMCommand*)) );
delCmd->start();
return;
}
@@ -3515,7 +3515,7 @@ KMCommand::Result KMEditAttachmentCommand::doAttachmentModify()
new KMail::EditorWatcher( KURL( mTempFile.file()->name() ),
part.typeStr() + "/" + part.subtypeStr(),
false, this, parentWidget() );
- connect( watcher, TQT_SIGNAL(editDone(KMail::EditorWatcher*)), TQT_SLOT(editDone(KMail::EditorWatcher*)) );
+ connect( watcher, TQ_SIGNAL(editDone(KMail::EditorWatcher*)), TQ_SLOT(editDone(KMail::EditorWatcher*)) );
if ( !watcher->start() )
return Failed;
setEmitsCompletedItself( true );
diff --git a/kmail/kmcommands.h b/kmail/kmcommands.h
index 25c0a117..bf74c909 100644
--- a/kmail/kmcommands.h
+++ b/kmail/kmcommands.h
@@ -1,5 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
-
#ifndef KMCommands_h
#define KMCommands_h
@@ -13,7 +11,7 @@
#include <tdeio/job.h>
#include "kmmsgbase.h" // for KMMsgStatus
#include <mimelib/string.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <kservice.h>
#include <tdetempfile.h>
@@ -50,7 +48,7 @@ typedef TQMap<partNode*, KMMessage*> PartNodeMessageMap;
class KDE_EXPORT KMCommand : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
friend class LaterDeleterWithCommandCompletion;
@@ -164,7 +162,7 @@ private:
class KDE_EXPORT KMMailtoComposeCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -179,7 +177,7 @@ private:
class KDE_EXPORT KMMailtoReplyCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -195,7 +193,7 @@ private:
class KDE_EXPORT KMMailtoForwardCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -210,7 +208,7 @@ private:
class KDE_EXPORT KMMailtoAddAddrBookCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -224,7 +222,7 @@ private:
class KDE_EXPORT KMAddBookmarksCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -239,7 +237,7 @@ private:
class KDE_EXPORT KMMailtoOpenAddrBookCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -253,7 +251,7 @@ private:
class KDE_EXPORT KMUrlCopyCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -268,7 +266,7 @@ private:
class KDE_EXPORT KMUrlOpenCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -283,7 +281,7 @@ private:
class KDE_EXPORT KMUrlSaveCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -300,7 +298,7 @@ private:
class KDE_EXPORT KMEditMsgCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -312,7 +310,7 @@ private:
class KDE_EXPORT KMUseTemplateCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -324,7 +322,7 @@ private:
class KDE_EXPORT KMShowMsgSrcCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -339,7 +337,7 @@ private:
class KDE_EXPORT KMSaveMsgCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -371,7 +369,7 @@ private:
class KDE_EXPORT KMOpenMsgCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -395,7 +393,7 @@ private:
class KDE_EXPORT KMSaveAttachmentsCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Use this to save all attachments of the given message.
@@ -434,7 +432,7 @@ private:
class KDE_EXPORT KMReplyToCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -450,7 +448,7 @@ private:
class KDE_EXPORT KMNoQuoteReplyToCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -462,7 +460,7 @@ private:
class KMReplyListCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -478,7 +476,7 @@ private:
class KDE_EXPORT KMReplyToAllCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -494,7 +492,7 @@ private:
class KDE_EXPORT KMReplyAuthorCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -510,7 +508,7 @@ private:
class KDE_EXPORT KMForwardInlineCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -528,7 +526,7 @@ private:
class KDE_EXPORT KMForwardAttachedCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -546,7 +544,7 @@ private:
class KDE_EXPORT KMForwardDigestCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -564,7 +562,7 @@ private:
class KDE_EXPORT KMRedirectCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -576,7 +574,7 @@ private:
class KDE_EXPORT KMCustomReplyToCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -594,7 +592,7 @@ private:
class KDE_EXPORT KMCustomReplyAllToCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -612,7 +610,7 @@ private:
class KDE_EXPORT KMCustomForwardCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -630,7 +628,7 @@ private:
class KDE_EXPORT KMPrintCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -658,7 +656,7 @@ private:
class KDE_EXPORT KMSeStatusCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -677,7 +675,7 @@ private:
class KDE_EXPORT KMFilterCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -693,7 +691,7 @@ private:
class KDE_EXPORT KMFilterActionCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -710,7 +708,7 @@ private:
class KDE_EXPORT KMMetaFilterActionCommand : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -728,7 +726,7 @@ private:
class KDE_EXPORT FolderShortcutCommand : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -751,7 +749,7 @@ private:
class KDE_EXPORT KMMailingListFilterCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -771,7 +769,7 @@ private:
class KDE_EXPORT KMMenuCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -784,7 +782,7 @@ public:
class KDE_EXPORT KMCopyCommand : public KMMenuCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -810,7 +808,7 @@ namespace KPIM {
}
class KDE_EXPORT KMMoveCommand : public KMMenuCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -846,7 +844,7 @@ private:
class KDE_EXPORT KMDeleteMsgCommand : public KMMoveCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -861,7 +859,7 @@ private:
class KDE_EXPORT KMUrlClickedCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -880,7 +878,7 @@ private:
class KDE_EXPORT KMLoadPartsCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -906,7 +904,7 @@ private:
class KDE_EXPORT KMResendMessageCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -918,7 +916,7 @@ private:
class KDE_EXPORT KMMailingListCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMMailingListCommand( TQWidget *parent, KMFolder *folder );
@@ -934,7 +932,7 @@ protected:
class KDE_EXPORT KMMailingListPostCommand : public KMMailingListCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMMailingListPostCommand( TQWidget *parent, KMFolder *folder );
@@ -944,7 +942,7 @@ protected:
class KDE_EXPORT KMMailingListSubscribeCommand : public KMMailingListCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMMailingListSubscribeCommand( TQWidget *parent, KMFolder *folder );
@@ -954,7 +952,7 @@ protected:
class KDE_EXPORT KMMailingListUnsubscribeCommand : public KMMailingListCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMMailingListUnsubscribeCommand( TQWidget *parent, KMFolder *folder );
@@ -964,7 +962,7 @@ protected:
class KDE_EXPORT KMMailingListArchivesCommand : public KMMailingListCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMMailingListArchivesCommand( TQWidget *parent, KMFolder *folder );
@@ -974,7 +972,7 @@ protected:
class KDE_EXPORT KMMailingListHelpCommand : public KMMailingListCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMMailingListHelpCommand( TQWidget *parent, KMFolder *folder );
@@ -984,7 +982,7 @@ protected:
class KDE_EXPORT KMIMChatCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -1005,7 +1003,7 @@ private:
class KDE_EXPORT KMHandleAttachmentCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -1092,7 +1090,7 @@ private:
/** Base class for commands modifying attachements of existing messages. */
class KDE_EXPORT AttachmentModifyCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
AttachmentModifyCommand( partNode *node, KMMessage *msg, TQWidget *parent );
@@ -1120,7 +1118,7 @@ class KDE_EXPORT AttachmentModifyCommand : public KMCommand
class KDE_EXPORT KMDeleteAttachmentCommand : public AttachmentModifyCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMDeleteAttachmentCommand( partNode *node, KMMessage *msg, TQWidget *parent );
@@ -1134,7 +1132,7 @@ class KDE_EXPORT KMDeleteAttachmentCommand : public AttachmentModifyCommand
class KDE_EXPORT KMEditAttachmentCommand : public AttachmentModifyCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMEditAttachmentCommand( partNode *node, KMMessage *msg, TQWidget *parent );
@@ -1153,7 +1151,7 @@ class KDE_EXPORT KMEditAttachmentCommand : public AttachmentModifyCommand
class KDE_EXPORT CreateTodoCommand : public KMCommand
{
- Q_OBJECT
+ TQ_OBJECT
public:
CreateTodoCommand( TQWidget *parent, KMMessage *msg );
diff --git a/kmail/kmcomposewin.cpp b/kmail/kmcomposewin.cpp
index bcdbe4a6..f83ac714 100644
--- a/kmail/kmcomposewin.cpp
+++ b/kmail/kmcomposewin.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmcomposewin.cpp
// Author: Markus Wuebben <markus.wuebben@kde.org>
// This code is published under the GPL.
@@ -196,7 +195,7 @@ KMComposeWin::KMComposeWin( KMMessage *aMsg, uint id )
setInstance( kmkernel->xmlGuiInstance() );
mMainWidget = new TQWidget(this);
// splitter between the headers area and the actual editor
- mHeadersToEditorSplitter = new TQSplitter( Qt::Vertical, mMainWidget, "mHeadersToEditorSplitter" );
+ mHeadersToEditorSplitter = new TQSplitter( TQt::Vertical, mMainWidget, "mHeadersToEditorSplitter" );
mHeadersToEditorSplitter->setChildrenCollapsible( false );
mHeadersArea = new TQWidget( mHeadersToEditorSplitter );
mHeadersArea->setSizePolicy( mHeadersToEditorSplitter->sizePolicy().horData(), TQSizePolicy::Maximum );
@@ -226,8 +225,8 @@ KMComposeWin::KMComposeWin( KMMessage *aMsg, uint id )
mEdtReplyTo = new KMLineEdit(true,mHeadersArea, "replyToLine");
TQToolTip::add( mEdtReplyTo,
i18n( "Set the \"Reply-To:\" email address for this message" ) );
- connect(mEdtReplyTo,TQT_SIGNAL(completionModeChanged(TDEGlobalSettings::Completion)),
- TQT_SLOT(slotCompletionModeChanged(TDEGlobalSettings::Completion)));
+ connect(mEdtReplyTo,TQ_SIGNAL(completionModeChanged(TDEGlobalSettings::Completion)),
+ TQ_SLOT(slotCompletionModeChanged(TDEGlobalSettings::Completion)));
if ( mClassicalRecipients ) {
mRecipientsEditor = 0;
@@ -250,22 +249,22 @@ KMComposeWin::KMComposeWin( KMMessage *aMsg, uint id )
TQToolTip::add( mBtnCc, tip );
TQToolTip::add( mBtnBcc, tip );
- mBtnTo->setFocusPolicy(TQ_NoFocus);
- mBtnCc->setFocusPolicy(TQ_NoFocus);
- mBtnBcc->setFocusPolicy(TQ_NoFocus);
- //mBtnFrom->setFocusPolicy(TQ_NoFocus);
+ mBtnTo->setFocusPolicy(TQWidget::NoFocus);
+ mBtnCc->setFocusPolicy(TQWidget::NoFocus);
+ mBtnBcc->setFocusPolicy(TQWidget::NoFocus);
+ //mBtnFrom->setFocusPolicy(TQWidget::NoFocus);
- connect(mBtnTo,TQT_SIGNAL(clicked()),TQT_SLOT(slotAddrBookTo()));
- connect(mBtnCc,TQT_SIGNAL(clicked()),TQT_SLOT(slotAddrBookTo()));
- connect(mBtnBcc,TQT_SIGNAL(clicked()),TQT_SLOT(slotAddrBookTo()));
- //connect(mBtnFrom,TQT_SIGNAL(clicked()),TQT_SLOT(slotAddrBookFrom()));
+ connect(mBtnTo,TQ_SIGNAL(clicked()),TQ_SLOT(slotAddrBookTo()));
+ connect(mBtnCc,TQ_SIGNAL(clicked()),TQ_SLOT(slotAddrBookTo()));
+ connect(mBtnBcc,TQ_SIGNAL(clicked()),TQ_SLOT(slotAddrBookTo()));
+ //connect(mBtnFrom,TQ_SIGNAL(clicked()),TQ_SLOT(slotAddrBookFrom()));
- connect(mEdtTo,TQT_SIGNAL(completionModeChanged(TDEGlobalSettings::Completion)),
- TQT_SLOT(slotCompletionModeChanged(TDEGlobalSettings::Completion)));
- connect(mEdtCc,TQT_SIGNAL(completionModeChanged(TDEGlobalSettings::Completion)),
- TQT_SLOT(slotCompletionModeChanged(TDEGlobalSettings::Completion)));
- connect(mEdtBcc,TQT_SIGNAL(completionModeChanged(TDEGlobalSettings::Completion)),
- TQT_SLOT(slotCompletionModeChanged(TDEGlobalSettings::Completion)));
+ connect(mEdtTo,TQ_SIGNAL(completionModeChanged(TDEGlobalSettings::Completion)),
+ TQ_SLOT(slotCompletionModeChanged(TDEGlobalSettings::Completion)));
+ connect(mEdtCc,TQ_SIGNAL(completionModeChanged(TDEGlobalSettings::Completion)),
+ TQ_SLOT(slotCompletionModeChanged(TDEGlobalSettings::Completion)));
+ connect(mEdtBcc,TQ_SIGNAL(completionModeChanged(TDEGlobalSettings::Completion)),
+ TQ_SLOT(slotCompletionModeChanged(TDEGlobalSettings::Completion)));
mEdtTo->setFocus();
} else {
@@ -284,9 +283,9 @@ KMComposeWin::KMComposeWin( KMMessage *aMsg, uint id )
mRecipientsEditor = new RecipientsEditor( mHeadersArea );
connect( mRecipientsEditor,
- TQT_SIGNAL( completionModeChanged( TDEGlobalSettings::Completion ) ),
- TQT_SLOT( slotCompletionModeChanged( TDEGlobalSettings::Completion ) ) );
- connect( mRecipientsEditor, TQT_SIGNAL(sizeHintChanged()), TQT_SLOT(recipientEditorSizeHintChanged()) );
+ TQ_SIGNAL( completionModeChanged( TDEGlobalSettings::Completion ) ),
+ TQ_SLOT( slotCompletionModeChanged( TDEGlobalSettings::Completion ) ) );
+ connect( mRecipientsEditor, TQ_SIGNAL(sizeHintChanged()), TQ_SLOT(recipientEditorSizeHintChanged()) );
mRecipientsEditor->setFocus();
}
@@ -331,9 +330,9 @@ KMComposeWin::KMComposeWin( KMMessage *aMsg, uint id )
mFixedFontAction = 0;
mTempDir = 0;
// the attachment view is separated from the editor by a splitter
- mSplitter = new TQSplitter( Qt::Vertical, mHeadersToEditorSplitter, "mSplitter" );
+ mSplitter = new TQSplitter( TQt::Vertical, mHeadersToEditorSplitter, "mSplitter" );
mSplitter->setChildrenCollapsible( false );
- mSnippetSplitter = new TQSplitter( Qt::Horizontal, mSplitter, "mSnippetSplitter");
+ mSnippetSplitter = new TQSplitter( TQt::Horizontal, mSplitter, "mSnippetSplitter");
mSnippetSplitter->setChildrenCollapsible( false );
TQWidget *editorAndCryptoStateIndicators = new TQWidget( mSnippetSplitter );
@@ -386,10 +385,10 @@ KMComposeWin::KMComposeWin( KMMessage *aMsg, uint id )
setCaption( i18n("Composer") );
setMinimumSize(200,200);
- mBtnIdentity->setFocusPolicy(TQ_NoFocus);
- mBtnFcc->setFocusPolicy(TQ_NoFocus);
- mBtnTransport->setFocusPolicy(TQ_NoFocus);
- mBtnDictionary->setFocusPolicy( TQ_NoFocus );
+ mBtnIdentity->setFocusPolicy(TQWidget::NoFocus);
+ mBtnFcc->setFocusPolicy(TQWidget::NoFocus);
+ mBtnTransport->setFocusPolicy(TQWidget::NoFocus);
+ mBtnDictionary->setFocusPolicy( TQWidget::NoFocus );
mAtmListView = new AttachmentListView( this, mSplitter,
"attachment list view" );
@@ -414,20 +413,20 @@ KMComposeWin::KMComposeWin( KMMessage *aMsg, uint id )
mAtmListView->setAllColumnsShowFocus( true );
connect( mAtmListView,
- TQT_SIGNAL( doubleClicked( TQListViewItem* ) ),
- TQT_SLOT( slotAttachEdit() ) );
+ TQ_SIGNAL( doubleClicked( TQListViewItem* ) ),
+ TQ_SLOT( slotAttachEdit() ) );
connect( mAtmListView,
- TQT_SIGNAL( rightButtonPressed( TQListViewItem*, const TQPoint&, int ) ),
- TQT_SLOT( slotAttachPopupMenu( TQListViewItem*, const TQPoint&, int ) ) );
+ TQ_SIGNAL( rightButtonPressed( TQListViewItem*, const TQPoint&, int ) ),
+ TQ_SLOT( slotAttachPopupMenu( TQListViewItem*, const TQPoint&, int ) ) );
connect( mAtmListView,
- TQT_SIGNAL( selectionChanged() ),
- TQT_SLOT( slotUpdateAttachActions() ) );
+ TQ_SIGNAL( selectionChanged() ),
+ TQ_SLOT( slotUpdateAttachActions() ) );
connect( mAtmListView,
- TQT_SIGNAL( attachmentDeleted() ),
- TQT_SLOT( slotAttachRemove() ) );
+ TQ_SIGNAL( attachmentDeleted() ),
+ TQ_SLOT( slotAttachRemove() ) );
connect( mAtmListView,
- TQT_SIGNAL( dragStarted() ),
- TQT_SLOT( slotAttachmentDragStarted() ) );
+ TQ_SIGNAL( dragStarted() ),
+ TQ_SLOT( slotAttachmentDragStarted() ) );
mAttachMenu = 0;
readConfig();
@@ -438,32 +437,32 @@ KMComposeWin::KMComposeWin( KMMessage *aMsg, uint id )
applyMainWindowSettings(KMKernel::config(), "Composer");
- connect( mEdtSubject, TQT_SIGNAL( subjectTextSpellChecked() ),
- TQT_SLOT( slotSubjectTextSpellChecked() ) );
- connect(mEdtSubject,TQT_SIGNAL(textChanged(const TQString&)),
- TQT_SLOT(slotUpdWinTitle(const TQString&)));
- connect(mIdentity,TQT_SIGNAL(identityChanged(uint)),
- TQT_SLOT(slotIdentityChanged(uint)));
- connect( kmkernel->identityManager(), TQT_SIGNAL(changed(uint)),
- TQT_SLOT(slotIdentityChanged(uint)));
-
- connect(mEdtFrom,TQT_SIGNAL(completionModeChanged(TDEGlobalSettings::Completion)),
- TQT_SLOT(slotCompletionModeChanged(TDEGlobalSettings::Completion)));
- connect(kmkernel->folderMgr(),TQT_SIGNAL(folderRemoved(KMFolder*)),
- TQT_SLOT(slotFolderRemoved(KMFolder*)));
- connect(kmkernel->imapFolderMgr(),TQT_SIGNAL(folderRemoved(KMFolder*)),
- TQT_SLOT(slotFolderRemoved(KMFolder*)));
- connect(kmkernel->dimapFolderMgr(),TQT_SIGNAL(folderRemoved(KMFolder*)),
- TQT_SLOT(slotFolderRemoved(KMFolder*)));
- connect( kmkernel, TQT_SIGNAL( configChanged() ),
- TQT_TQOBJECT(this), TQT_SLOT( slotConfigChanged() ) );
-
- connect (mEditor, TQT_SIGNAL (spellcheck_done(int)),
- this, TQT_SLOT (slotSpellcheckDone (int)));
- connect (mEditor, TQT_SIGNAL( attachPNGImageData(const TQByteArray &) ),
- this, TQT_SLOT ( slotAttachPNGImageData(const TQByteArray &) ) );
- connect (mEditor, TQT_SIGNAL( focusChanged(bool) ),
- this, TQT_SLOT (editorFocusChanged(bool)) );
+ connect( mEdtSubject, TQ_SIGNAL( subjectTextSpellChecked() ),
+ TQ_SLOT( slotSubjectTextSpellChecked() ) );
+ connect(mEdtSubject,TQ_SIGNAL(textChanged(const TQString&)),
+ TQ_SLOT(slotUpdWinTitle(const TQString&)));
+ connect(mIdentity,TQ_SIGNAL(identityChanged(uint)),
+ TQ_SLOT(slotIdentityChanged(uint)));
+ connect( kmkernel->identityManager(), TQ_SIGNAL(changed(uint)),
+ TQ_SLOT(slotIdentityChanged(uint)));
+
+ connect(mEdtFrom,TQ_SIGNAL(completionModeChanged(TDEGlobalSettings::Completion)),
+ TQ_SLOT(slotCompletionModeChanged(TDEGlobalSettings::Completion)));
+ connect(kmkernel->folderMgr(),TQ_SIGNAL(folderRemoved(KMFolder*)),
+ TQ_SLOT(slotFolderRemoved(KMFolder*)));
+ connect(kmkernel->imapFolderMgr(),TQ_SIGNAL(folderRemoved(KMFolder*)),
+ TQ_SLOT(slotFolderRemoved(KMFolder*)));
+ connect(kmkernel->dimapFolderMgr(),TQ_SIGNAL(folderRemoved(KMFolder*)),
+ TQ_SLOT(slotFolderRemoved(KMFolder*)));
+ connect( kmkernel, TQ_SIGNAL( configChanged() ),
+ this, TQ_SLOT( slotConfigChanged() ) );
+
+ connect (mEditor, TQ_SIGNAL (spellcheck_done(int)),
+ this, TQ_SLOT (slotSpellcheckDone (int)));
+ connect (mEditor, TQ_SIGNAL( attachPNGImageData(const TQByteArray &) ),
+ this, TQ_SLOT ( slotAttachPNGImageData(const TQByteArray &) ) );
+ connect (mEditor, TQ_SIGNAL( focusChanged(bool) ),
+ this, TQ_SLOT (editorFocusChanged(bool)) );
mMainWidget->resize(480,510);
setCentralWidget(mMainWidget);
@@ -554,7 +553,7 @@ void KMComposeWin::addAttachmentsAndSend(const KURL::List &urls, const TQString
}
mAttachFilesSend = how;
mAttachFilesPending = urls;
- connect(this, TQT_SIGNAL(attachmentAdded(const KURL&, bool)), TQT_SLOT(slotAttachedFile(const KURL&)));
+ connect(this, TQ_SIGNAL(attachmentAdded(const KURL&, bool)), TQ_SLOT(slotAttachedFile(const KURL&)));
for( KURL::List::ConstIterator itr = urls.begin(); itr != urls.end(); ++itr ) {
if (!addAttach( *itr ))
mAttachFilesPending.remove(mAttachFilesPending.find(*itr)); // only remove one copy of the url
@@ -816,8 +815,8 @@ void KMComposeWin::autoSaveMessage()
if ( mAutoSaveTimer )
mAutoSaveTimer->stop();
- connect( this, TQT_SIGNAL( applyChangesDone( bool ) ),
- TQT_TQOBJECT(this), TQT_SLOT( slotContinueAutoSave() ) );
+ connect( this, TQ_SIGNAL( applyChangesDone( bool ) ),
+ this, TQ_SLOT( slotContinueAutoSave() ) );
// This method is called when KMail crashed, so don't try signing/encryption
// and don't disable controls because it is also called from a timer and
// then the disabling is distracting.
@@ -828,8 +827,8 @@ void KMComposeWin::autoSaveMessage()
void KMComposeWin::slotContinueAutoSave()
{
- disconnect( this, TQT_SIGNAL( applyChangesDone( bool ) ),
- TQT_TQOBJECT(this), TQT_SLOT( slotContinueAutoSave() ) );
+ disconnect( this, TQ_SIGNAL( applyChangesDone( bool ) ),
+ this, TQ_SLOT( slotContinueAutoSave() ) );
// Ok, it's done now - continue dead letter saving
if ( mComposedMessages.isEmpty() ) {
@@ -888,7 +887,7 @@ void KMComposeWin::slotView(void)
//This sucks awfully, but no, I cannot get an activated(int id) from
// actionContainer()
- if (!TQT_TQOBJECT_CONST(sender())->isA("TDEToggleAction"))
+ if (!sender()->isA("TDEToggleAction"))
return;
TDEToggleAction *act = (TDEToggleAction *) sender();
@@ -1077,22 +1076,22 @@ void KMComposeWin::rethinkFields(bool fromSlot)
++row;
if ( showHeaders & HDR_REPLY_TO ) {
- connect( mEdtReplyTo, TQT_SIGNAL( focusDown() ), mRecipientsEditor,
- TQT_SLOT( setFocusTop() ) );
+ connect( mEdtReplyTo, TQ_SIGNAL( focusDown() ), mRecipientsEditor,
+ TQ_SLOT( setFocusTop() ) );
} else {
- connect( mEdtFrom, TQT_SIGNAL( focusDown() ), mRecipientsEditor,
- TQT_SLOT( setFocusTop() ) );
+ connect( mEdtFrom, TQ_SIGNAL( focusDown() ), mRecipientsEditor,
+ TQ_SLOT( setFocusTop() ) );
}
if ( showHeaders & HDR_REPLY_TO ) {
- connect( mRecipientsEditor, TQT_SIGNAL( focusUp() ), mEdtReplyTo, TQT_SLOT( setFocus() ) );
+ connect( mRecipientsEditor, TQ_SIGNAL( focusUp() ), mEdtReplyTo, TQ_SLOT( setFocus() ) );
} else {
- connect( mRecipientsEditor, TQT_SIGNAL( focusUp() ), mEdtFrom, TQT_SLOT( setFocus() ) );
+ connect( mRecipientsEditor, TQ_SIGNAL( focusUp() ), mEdtFrom, TQ_SLOT( setFocus() ) );
}
- connect( mRecipientsEditor, TQT_SIGNAL( focusDown() ), mEdtSubject,
- TQT_SLOT( setFocus() ) );
- connect( mEdtSubject, TQT_SIGNAL( focusUp() ), mRecipientsEditor,
- TQT_SLOT( setFocusBottom() ) );
+ connect( mRecipientsEditor, TQ_SIGNAL( focusDown() ), mEdtSubject,
+ TQ_SLOT( setFocus() ) );
+ connect( mEdtSubject, TQ_SIGNAL( focusUp() ), mRecipientsEditor,
+ TQ_SLOT( setFocusBottom() ) );
prevFocus = mRecipientsEditor;
}
@@ -1132,8 +1131,8 @@ void KMComposeWin::rethinkFields(bool fromSlot)
TQWidget *KMComposeWin::connectFocusMoving( TQWidget *prev, TQWidget *next )
{
- connect( prev, TQT_SIGNAL( focusDown() ), next, TQT_SLOT( setFocus() ) );
- connect( next, TQT_SIGNAL( focusUp() ), prev, TQT_SLOT( setFocus() ) );
+ connect( prev, TQ_SIGNAL( focusDown() ), next, TQ_SLOT( setFocus() ) );
+ connect( next, TQ_SIGNAL( focusUp() ), prev, TQ_SLOT( setFocus() ) );
return next;
}
@@ -1234,14 +1233,14 @@ void KMComposeWin::setupActions(void)
{
//default = send now, alternative = queue
( void ) new TDEAction( i18n("&Send Mail"), "mail-send", CTRL+Key_Return,
- TQT_TQOBJECT(this), TQT_SLOT(slotSendNow()), actionCollection(),"send_default");
+ this, TQ_SLOT(slotSendNow()), actionCollection(),"send_default");
// FIXME: change to mail_send_via icon when this exits.
actActionNowMenu = new TDEActionMenu (i18n("&Send Mail Via"), "mail-send",
actionCollection(), "send_default_via" );
- (void) new TDEAction (i18n("Send &Later"), "queue", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotSendLater()), actionCollection(),"send_alternative");
+ (void) new TDEAction (i18n("Send &Later"), "queue", 0, this,
+ TQ_SLOT(slotSendLater()), actionCollection(),"send_alternative");
actActionLaterMenu = new TDEActionMenu (i18n("Send &Later Via"), "queue",
actionCollection(), "send_alternative_via" );
@@ -1251,12 +1250,12 @@ void KMComposeWin::setupActions(void)
//default = queue, alternative = send now
(void) new TDEAction (i18n("Send &Later"), "queue",
CTRL+Key_Return,
- TQT_TQOBJECT(this), TQT_SLOT(slotSendLater()), actionCollection(),"send_default");
+ this, TQ_SLOT(slotSendLater()), actionCollection(),"send_default");
actActionLaterMenu = new TDEActionMenu (i18n("Send &Later Via"), "queue",
actionCollection(), "send_default_via" );
( void ) new TDEAction( i18n("&Send Mail"), "mail-send", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotSendNow()), actionCollection(),"send_alternative");
+ this, TQ_SLOT(slotSendNow()), actionCollection(),"send_alternative");
// FIXME: change to mail_send_via icon when this exits.
actActionNowMenu = new TDEActionMenu (i18n("&Send Mail Via"), "mail-send",
@@ -1268,102 +1267,102 @@ void KMComposeWin::setupActions(void)
actActionNowMenu->setDelayed(true);
actActionLaterMenu->setDelayed(true);
- connect( actActionNowMenu, TQT_SIGNAL( activated() ), this,
- TQT_SLOT( slotSendNow() ) );
- connect( actActionLaterMenu, TQT_SIGNAL( activated() ), this,
- TQT_SLOT( slotSendLater() ) );
+ connect( actActionNowMenu, TQ_SIGNAL( activated() ), this,
+ TQ_SLOT( slotSendNow() ) );
+ connect( actActionLaterMenu, TQ_SIGNAL( activated() ), this,
+ TQ_SLOT( slotSendLater() ) );
mActNowMenu = actActionNowMenu->popupMenu();
mActLaterMenu = actActionLaterMenu->popupMenu();
- connect( mActNowMenu, TQT_SIGNAL( activated( int ) ), this,
- TQT_SLOT( slotSendNowVia( int ) ) );
- connect( mActNowMenu, TQT_SIGNAL( aboutToShow() ), this,
- TQT_SLOT( getTransportMenu() ) );
+ connect( mActNowMenu, TQ_SIGNAL( activated( int ) ), this,
+ TQ_SLOT( slotSendNowVia( int ) ) );
+ connect( mActNowMenu, TQ_SIGNAL( aboutToShow() ), this,
+ TQ_SLOT( getTransportMenu() ) );
- connect( mActLaterMenu, TQT_SIGNAL( activated( int ) ), this,
- TQT_SLOT( slotSendLaterVia( int ) ) );
- connect( mActLaterMenu, TQT_SIGNAL( aboutToShow() ), this,
- TQT_SLOT( getTransportMenu() ) );
+ connect( mActLaterMenu, TQ_SIGNAL( activated( int ) ), this,
+ TQ_SLOT( slotSendLaterVia( int ) ) );
+ connect( mActLaterMenu, TQ_SIGNAL( aboutToShow() ), this,
+ TQ_SLOT( getTransportMenu() ) );
(void) new TDEAction (i18n("Save as &Draft"), "document-save", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotSaveDraft()),
+ this, TQ_SLOT(slotSaveDraft()),
actionCollection(), "save_in_drafts");
(void) new TDEAction (i18n("Save as &Template"), "document-save", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotSaveTemplate()),
+ this, TQ_SLOT(slotSaveTemplate()),
actionCollection(), "save_in_templates");
(void) new TDEAction (i18n("&Insert File..."), "document-open", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotInsertFile()),
+ this, TQ_SLOT(slotInsertFile()),
actionCollection(), "insert_file");
mRecentAction = new TDERecentFilesAction (i18n("&Insert File Recent"),
"document-open", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotInsertRecentFile(const KURL&)),
+ this, TQ_SLOT(slotInsertRecentFile(const KURL&)),
actionCollection(), "insert_file_recent");
mRecentAction->loadEntries( KMKernel::config() );
(void) new TDEAction (i18n("&Address Book"), "contents",0,
- TQT_TQOBJECT(this), TQT_SLOT(slotAddrBook()),
+ this, TQ_SLOT(slotAddrBook()),
actionCollection(), "addressbook");
(void) new TDEAction (i18n("&New Composer"), "mail-message-new",
TDEStdAccel::shortcut(TDEStdAccel::New),
- TQT_TQOBJECT(this), TQT_SLOT(slotNewComposer()),
+ this, TQ_SLOT(slotNewComposer()),
actionCollection(), "new_composer");
(void) new TDEAction (i18n("New Main &Window"), "window-new", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotNewMailReader()),
+ this, TQ_SLOT(slotNewMailReader()),
actionCollection(), "open_mailreader");
if ( !mClassicalRecipients ) {
- new TDEAction( i18n("Select &Recipients..."), CTRL + Key_L, TQT_TQOBJECT(mRecipientsEditor),
- TQT_SLOT( selectRecipients() ), actionCollection(), "select_recipients" );
- new TDEAction( i18n("Save &Distribution List..."), 0, TQT_TQOBJECT(mRecipientsEditor),
- TQT_SLOT( saveDistributionList() ), actionCollection(),
+ new TDEAction( i18n("Select &Recipients..."), CTRL + Key_L, mRecipientsEditor,
+ TQ_SLOT( selectRecipients() ), actionCollection(), "select_recipients" );
+ new TDEAction( i18n("Save &Distribution List..."), 0, mRecipientsEditor,
+ TQ_SLOT( saveDistributionList() ), actionCollection(),
"save_distribution_list" );
}
- //KStdAction::save(TQT_TQOBJECT(this), TQT_SLOT(), actionCollection(), "save_message");
- KStdAction::print (TQT_TQOBJECT(this), TQT_SLOT(slotPrint()), actionCollection());
- KStdAction::close (TQT_TQOBJECT(this), TQT_SLOT(slotClose()), actionCollection());
+ //KStdAction::save(this, TQ_SLOT(), actionCollection(), "save_message");
+ KStdAction::print (this, TQ_SLOT(slotPrint()), actionCollection());
+ KStdAction::close (this, TQ_SLOT(slotClose()), actionCollection());
- KStdAction::undo (TQT_TQOBJECT(this), TQT_SLOT(slotUndo()), actionCollection());
- KStdAction::redo (TQT_TQOBJECT(this), TQT_SLOT(slotRedo()), actionCollection());
- KStdAction::cut (TQT_TQOBJECT(this), TQT_SLOT(slotCut()), actionCollection());
- KStdAction::copy (TQT_TQOBJECT(this), TQT_SLOT(slotCopy()), actionCollection());
- KStdAction::pasteText (TQT_TQOBJECT(this), TQT_SLOT(slotPasteClipboard()), actionCollection());
- KStdAction::selectAll (TQT_TQOBJECT(this), TQT_SLOT(slotMarkAll()), actionCollection());
+ KStdAction::undo (this, TQ_SLOT(slotUndo()), actionCollection());
+ KStdAction::redo (this, TQ_SLOT(slotRedo()), actionCollection());
+ KStdAction::cut (this, TQ_SLOT(slotCut()), actionCollection());
+ KStdAction::copy (this, TQ_SLOT(slotCopy()), actionCollection());
+ KStdAction::pasteText (this, TQ_SLOT(slotPasteClipboard()), actionCollection());
+ KStdAction::selectAll (this, TQ_SLOT(slotMarkAll()), actionCollection());
- KStdAction::find (TQT_TQOBJECT(this), TQT_SLOT(slotFind()), actionCollection());
- KStdAction::findNext(TQT_TQOBJECT(this), TQT_SLOT(slotSearchAgain()), actionCollection());
+ KStdAction::find (this, TQ_SLOT(slotFind()), actionCollection());
+ KStdAction::findNext(this, TQ_SLOT(slotSearchAgain()), actionCollection());
- KStdAction::replace (TQT_TQOBJECT(this), TQT_SLOT(slotReplace()), actionCollection());
- KStdAction::spelling (TQT_TQOBJECT(this), TQT_SLOT(slotSpellcheck()), actionCollection(), "tools-check-spelling");
+ KStdAction::replace (this, TQ_SLOT(slotReplace()), actionCollection());
+ KStdAction::spelling (this, TQ_SLOT(slotSpellcheck()), actionCollection(), "tools-check-spelling");
- mPasteQuotation = new TDEAction (i18n("Pa&ste as Quotation"),0,TQT_TQOBJECT(this),TQT_SLOT( slotPasteClipboardAsQuotation()),
+ mPasteQuotation = new TDEAction (i18n("Pa&ste as Quotation"),0,this,TQ_SLOT( slotPasteClipboardAsQuotation()),
actionCollection(), "paste_quoted");
- (void) new TDEAction (i18n("Paste as Attac&hment"),0,TQT_TQOBJECT(this),TQT_SLOT( slotPasteClipboardAsAttachment()),
+ (void) new TDEAction (i18n("Paste as Attac&hment"),0,this,TQ_SLOT( slotPasteClipboardAsAttachment()),
actionCollection(), "paste_att");
- TDEAction * addq = new TDEAction(i18n("Add &Quote Characters"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAddQuotes()), actionCollection(), "tools_quote");
- connect( mEditor, TQT_SIGNAL(selectionAvailable(bool)),
- addq, TQT_SLOT(setEnabled(bool)) );
+ TDEAction * addq = new TDEAction(i18n("Add &Quote Characters"), 0, this,
+ TQ_SLOT(slotAddQuotes()), actionCollection(), "tools_quote");
+ connect( mEditor, TQ_SIGNAL(selectionAvailable(bool)),
+ addq, TQ_SLOT(setEnabled(bool)) );
- TDEAction * remq = new TDEAction(i18n("Re&move Quote Characters"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotRemoveQuotes()), actionCollection(), "tools_unquote");
- connect( mEditor, TQT_SIGNAL(selectionAvailable(bool)),
- remq, TQT_SLOT(setEnabled(bool)) );
+ TDEAction * remq = new TDEAction(i18n("Re&move Quote Characters"), 0, this,
+ TQ_SLOT(slotRemoveQuotes()), actionCollection(), "tools_unquote");
+ connect( mEditor, TQ_SIGNAL(selectionAvailable(bool)),
+ remq, TQ_SLOT(setEnabled(bool)) );
- (void) new TDEAction (i18n("Cl&ean Spaces"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotCleanSpace()),
+ (void) new TDEAction (i18n("Cl&ean Spaces"), 0, this, TQ_SLOT(slotCleanSpace()),
actionCollection(), "clean_spaces");
- mFixedFontAction = new TDEToggleAction( i18n("Use Fi&xed Font"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotUpdateFont()), actionCollection(), "toggle_fixedfont" );
+ mFixedFontAction = new TDEToggleAction( i18n("Use Fi&xed Font"), 0, this,
+ TQ_SLOT(slotUpdateFont()), actionCollection(), "toggle_fixedfont" );
mFixedFontAction->setChecked( GlobalSettings::self()->useFixedFont() );
//these are checkable!!!
@@ -1376,16 +1375,16 @@ void KMComposeWin::setupActions(void)
mRequestMDNAction->setChecked(GlobalSettings::self()->requestMDN());
//----- Message-Encoding Submenu
mEncodingAction = new TDESelectAction( i18n( "Se&t Encoding" ), "charset",
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotSetCharset() ),
+ 0, this, TQ_SLOT(slotSetCharset() ),
actionCollection(), "charsets" );
mWordWrapAction = new TDEToggleAction (i18n("&Wordwrap"), 0,
actionCollection(), "wordwrap");
mWordWrapAction->setChecked(GlobalSettings::self()->wordWrap());
- connect(mWordWrapAction, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotWordWrapToggled(bool)));
+ connect(mWordWrapAction, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotWordWrapToggled(bool)));
mSnippetAction = new TDEToggleAction ( i18n("&Snippets"), 0,
actionCollection(), "snippets");
- connect(mSnippetAction, TQT_SIGNAL(toggled(bool)), mSnippetWidget, TQT_SLOT(setShown(bool)) );
+ connect(mSnippetAction, TQ_SIGNAL(toggled(bool)), mSnippetWidget, TQ_SLOT(setShown(bool)) );
mSnippetAction->setChecked( GlobalSettings::self()->showSnippetManager() );
mAutoSpellCheckingAction =
@@ -1395,8 +1394,8 @@ void KMComposeWin::setupActions(void)
mAutoSpellCheckingAction->setEnabled( !GlobalSettings::self()->useExternalEditor() );
mAutoSpellCheckingAction->setChecked( !GlobalSettings::self()->useExternalEditor() && spellChecking );
slotAutoSpellCheckingToggled( !GlobalSettings::self()->useExternalEditor() && spellChecking );
- connect( mAutoSpellCheckingAction, TQT_SIGNAL( toggled( bool ) ),
- TQT_TQOBJECT(this), TQT_SLOT( slotAutoSpellCheckingToggled( bool ) ) );
+ connect( mAutoSpellCheckingAction, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SLOT( slotAutoSpellCheckingToggled( bool ) ) );
TQStringList encodings = KMMsgBase::supportedEncodings(true);
encodings.prepend( i18n("Auto-Detect"));
@@ -1404,84 +1403,84 @@ void KMComposeWin::setupActions(void)
mEncodingAction->setCurrentItem( -1 );
//these are checkable!!!
- markupAction = new TDEToggleAction (i18n("Formatting (HTML)"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotToggleMarkup()),
+ markupAction = new TDEToggleAction (i18n("Formatting (HTML)"), 0, this,
+ TQ_SLOT(slotToggleMarkup()),
actionCollection(), "html");
- mAllFieldsAction = new TDEToggleAction (i18n("&All Fields"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotView()),
+ mAllFieldsAction = new TDEToggleAction (i18n("&All Fields"), 0, this,
+ TQ_SLOT(slotView()),
actionCollection(), "show_all_fields");
- mIdentityAction = new TDEToggleAction (i18n("&Identity"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotView()),
+ mIdentityAction = new TDEToggleAction (i18n("&Identity"), 0, this,
+ TQ_SLOT(slotView()),
actionCollection(), "show_identity");
- mDictionaryAction = new TDEToggleAction (i18n("&Dictionary"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotView()),
+ mDictionaryAction = new TDEToggleAction (i18n("&Dictionary"), 0, this,
+ TQ_SLOT(slotView()),
actionCollection(), "show_dictionary");
- mFccAction = new TDEToggleAction (i18n("&Sent-Mail Folder"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotView()),
+ mFccAction = new TDEToggleAction (i18n("&Sent-Mail Folder"), 0, this,
+ TQ_SLOT(slotView()),
actionCollection(), "show_fcc");
- mTransportAction = new TDEToggleAction (i18n("&Mail Transport"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotView()),
+ mTransportAction = new TDEToggleAction (i18n("&Mail Transport"), 0, this,
+ TQ_SLOT(slotView()),
actionCollection(), "show_transport");
- mFromAction = new TDEToggleAction (i18n("&From"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotView()),
+ mFromAction = new TDEToggleAction (i18n("&From"), 0, this,
+ TQ_SLOT(slotView()),
actionCollection(), "show_from");
- mReplyToAction = new TDEToggleAction (i18n("&Reply To"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotView()),
+ mReplyToAction = new TDEToggleAction (i18n("&Reply To"), 0, this,
+ TQ_SLOT(slotView()),
actionCollection(), "show_reply_to");
if ( mClassicalRecipients ) {
- mToAction = new TDEToggleAction (i18n("&To"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotView()),
+ mToAction = new TDEToggleAction (i18n("&To"), 0, this,
+ TQ_SLOT(slotView()),
actionCollection(), "show_to");
- mCcAction = new TDEToggleAction (i18n("&CC"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotView()),
+ mCcAction = new TDEToggleAction (i18n("&CC"), 0, this,
+ TQ_SLOT(slotView()),
actionCollection(), "show_cc");
- mBccAction = new TDEToggleAction (i18n("&BCC"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotView()),
+ mBccAction = new TDEToggleAction (i18n("&BCC"), 0, this,
+ TQ_SLOT(slotView()),
actionCollection(), "show_bcc");
}
- mSubjectAction = new TDEToggleAction (i18n("S&ubject"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotView()),
+ mSubjectAction = new TDEToggleAction (i18n("S&ubject"), 0, this,
+ TQ_SLOT(slotView()),
actionCollection(), "show_subject");
//end of checkable
- mAppendSignatureAction = new TDEAction (i18n("Append S&ignature"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAppendSignature()),
+ mAppendSignatureAction = new TDEAction (i18n("Append S&ignature"), 0, this,
+ TQ_SLOT(slotAppendSignature()),
actionCollection(), "append_signature");
- mPrependSignatureAction = new TDEAction (i18n("Prepend S&ignature"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotPrependSignature()),
+ mPrependSignatureAction = new TDEAction (i18n("Prepend S&ignature"), 0, this,
+ TQ_SLOT(slotPrependSignature()),
actionCollection(), "prepend_signature");
- mInsertSignatureAction = new TDEAction (i18n("Insert Signature At C&ursor Position"), "edit", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotInsertSignatureAtCursor()),
+ mInsertSignatureAction = new TDEAction (i18n("Insert Signature At C&ursor Position"), "edit", 0, this,
+ TQ_SLOT(slotInsertSignatureAtCursor()),
actionCollection(), "insert_signature_at_cursor_position");
- mAttachPK = new TDEAction (i18n("Attach &Public Key..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotInsertPublicKey()),
+ mAttachPK = new TDEAction (i18n("Attach &Public Key..."), 0, this,
+ TQ_SLOT(slotInsertPublicKey()),
actionCollection(), "attach_public_key");
- mAttachMPK = new TDEAction (i18n("Attach &My Public Key"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotInsertMyPublicKey()),
+ mAttachMPK = new TDEAction (i18n("Attach &My Public Key"), 0, this,
+ TQ_SLOT(slotInsertMyPublicKey()),
actionCollection(), "attach_my_public_key");
(void) new TDEAction (i18n("&Attach File..."), "attach",
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotAttachFile()),
+ 0, this, TQ_SLOT(slotAttachFile()),
actionCollection(), "attach");
- mAttachRemoveAction = new TDEAction (i18n("&Remove Attachment"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAttachRemove()),
+ mAttachRemoveAction = new TDEAction (i18n("&Remove Attachment"), 0, this,
+ TQ_SLOT(slotAttachRemove()),
actionCollection(), "remove");
mAttachSaveAction = new TDEAction (i18n("&Save Attachment As..."), "document-save",0,
- TQT_TQOBJECT(this), TQT_SLOT(slotAttachSave()),
+ this, TQ_SLOT(slotAttachSave()),
actionCollection(), "attach_save");
- mAttachPropertiesAction = new TDEAction (i18n("Attachment Pr&operties"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAttachProperties()),
+ mAttachPropertiesAction = new TDEAction (i18n("Attachment Pr&operties"), 0, this,
+ TQ_SLOT(slotAttachProperties()),
actionCollection(), "attach_properties");
setStandardToolBarMenuEnabled(true);
- KStdAction::keyBindings(TQT_TQOBJECT(this), TQT_SLOT(slotEditKeys()), actionCollection());
- KStdAction::configureToolbars(TQT_TQOBJECT(this), TQT_SLOT(slotEditToolbars()), actionCollection());
- KStdAction::preferences(kmkernel, TQT_SLOT(slotShowConfigurationDialog()), actionCollection());
+ KStdAction::keyBindings(this, TQ_SLOT(slotEditKeys()), actionCollection());
+ KStdAction::configureToolbars(this, TQ_SLOT(slotEditToolbars()), actionCollection());
+ KStdAction::preferences(kmkernel, TQ_SLOT(slotShowConfigurationDialog()), actionCollection());
- (void) new TDEAction (i18n("&Spellchecker..."), 0, TQT_TQOBJECT(this), TQT_SLOT(slotSpellcheckConfig()),
+ (void) new TDEAction (i18n("&Spellchecker..."), 0, this, TQ_SLOT(slotSpellcheckConfig()),
actionCollection(), "setup_spellchecker");
if ( Kleo::CryptoBackendFactory::instance()->protocol( "Chiasmus" ) ) {
@@ -1490,8 +1489,8 @@ void KMComposeWin::setupActions(void)
"encrypt_message_chiasmus" );
a->setCheckedState( KGuiItem( i18n( "Encrypt Message with Chiasmus..." ), "chiencrypted" ) );
mEncryptChiasmusAction = a;
- connect( mEncryptChiasmusAction, TQT_SIGNAL(toggled(bool)),
- TQT_TQOBJECT(this), TQT_SLOT(slotEncryptChiasmusToggled(bool)) );
+ connect( mEncryptChiasmusAction, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(slotEncryptChiasmusToggled(bool)) );
} else {
mEncryptChiasmusAction = 0;
}
@@ -1537,17 +1536,17 @@ void KMComposeWin::setupActions(void)
setSigning( ( canOpenPGPSign || canSMIMESign ) && GlobalSettings::self()->pgpAutoSign() );
}
- connect(mEncryptAction, TQT_SIGNAL(toggled(bool)),
- TQT_SLOT(slotEncryptToggled( bool )));
- connect(mSignAction, TQT_SIGNAL(toggled(bool)),
- TQT_SLOT(slotSignToggled( bool )));
+ connect(mEncryptAction, TQ_SIGNAL(toggled(bool)),
+ TQ_SLOT(slotEncryptToggled( bool )));
+ connect(mSignAction, TQ_SIGNAL(toggled(bool)),
+ TQ_SLOT(slotSignToggled( bool )));
TQStringList l;
for ( int i = 0 ; i < numCryptoMessageFormats ; ++i )
l.push_back( Kleo::cryptoMessageFormatToLabel( cryptoMessageFormats[i] ) );
mCryptoModuleAction = new TDESelectAction( i18n( "&Cryptographic Message Format" ), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotSelectCryptoModule()),
+ this, TQ_SLOT(slotSelectCryptoModule()),
actionCollection(), "options_select_crypto" );
mCryptoModuleAction->setItems( l );
mCryptoModuleAction->setCurrentItem( format2cb( ident.preferredCryptoMessageFormat() ) );
@@ -1567,50 +1566,50 @@ void KMComposeWin::setupActions(void)
"text_list" );
listAction->setItems( styleItems );
listAction->setToolTip( i18n( "Select a list style" ) );
- connect( listAction, TQT_SIGNAL( activated( const TQString& ) ),
- TQT_SLOT( slotListAction( const TQString& ) ) );
+ connect( listAction, TQ_SIGNAL( activated( const TQString& ) ),
+ TQ_SLOT( slotListAction( const TQString& ) ) );
fontAction = new TDEFontAction( "Select Font", 0, actionCollection(),
"text_font" );
fontAction->setToolTip( i18n( "Select a font" ) );
- connect( fontAction, TQT_SIGNAL( activated( const TQString& ) ),
- TQT_SLOT( slotFontAction( const TQString& ) ) );
+ connect( fontAction, TQ_SIGNAL( activated( const TQString& ) ),
+ TQ_SLOT( slotFontAction( const TQString& ) ) );
fontSizeAction = new TDEFontSizeAction( "Select Size", 0, actionCollection(),
"text_size" );
fontSizeAction->setToolTip( i18n( "Select a font size" ) );
- connect( fontSizeAction, TQT_SIGNAL( fontSizeChanged( int ) ),
- TQT_SLOT( slotSizeAction( int ) ) );
+ connect( fontSizeAction, TQ_SIGNAL( fontSizeChanged( int ) ),
+ TQ_SLOT( slotSizeAction( int ) ) );
alignLeftAction = new TDEToggleAction (i18n("Align Left"), "format-text-direction-ltr", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotAlignLeft()), actionCollection(),
+ this, TQ_SLOT(slotAlignLeft()), actionCollection(),
"align_left");
alignLeftAction->setChecked( true );
alignRightAction = new TDEToggleAction (i18n("Align Right"), "format-text-direction-rtl", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotAlignRight()), actionCollection(),
+ this, TQ_SLOT(slotAlignRight()), actionCollection(),
"align_right");
alignCenterAction = new TDEToggleAction (i18n("Align Center"), "text_center", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotAlignCenter()), actionCollection(),
+ this, TQ_SLOT(slotAlignCenter()), actionCollection(),
"align_center");
textBoldAction = new TDEToggleAction( i18n("&Bold"), "format-text-bold", CTRL+Key_B,
- TQT_TQOBJECT(this), TQT_SLOT(slotTextBold()),
+ this, TQ_SLOT(slotTextBold()),
actionCollection(), "format-text-bold");
textItalicAction = new TDEToggleAction( i18n("&Italic"), "format-text-italic", CTRL+Key_I,
- TQT_TQOBJECT(this), TQT_SLOT(slotTextItalic()),
+ this, TQ_SLOT(slotTextItalic()),
actionCollection(), "format-text-italic");
textUnderAction = new TDEToggleAction( i18n("&Underline"), "format-text-underline", CTRL+Key_U,
- TQT_TQOBJECT(this), TQT_SLOT(slotTextUnder()),
+ this, TQ_SLOT(slotTextUnder()),
actionCollection(), "format-text-underline");
actionFormatReset = new TDEAction( i18n( "Reset Font Settings" ), "eraser", 0,
- TQT_TQOBJECT(this), TQT_SLOT( slotFormatReset() ),
+ this, TQ_SLOT( slotFormatReset() ),
actionCollection(), "format_reset");
actionFormatColor = new TDEAction( i18n( "Text Color..." ), "colorize", 0,
- TQT_TQOBJECT(this), TQT_SLOT( slotTextColor() ),
+ this, TQ_SLOT( slotTextColor() ),
actionCollection(), "format_color");
// editorFocusChanged(false);
createGUI("kmcomposerui.rc");
- connect( toolBar("htmlToolBar"), TQT_SIGNAL( visibilityChanged(bool) ),
- TQT_TQOBJECT(this), TQT_SLOT( htmlToolBarVisibilityChanged(bool) ) );
+ connect( toolBar("htmlToolBar"), TQ_SIGNAL( visibilityChanged(bool) ),
+ this, TQ_SLOT( htmlToolBarVisibilityChanged(bool) ) );
// In Kontact, this entry would read "Configure Kontact", but bring
// up KMail's config dialog. That's sensible, though, so fix the label.
@@ -1664,28 +1663,28 @@ void KMComposeWin::setupEditor(void)
menu = new TQPopupMenu(this);
//#ifdef BROKEN
menu->insertItem(i18n("Undo"),mEditor,
- TQT_SLOT(undo()), TDEStdAccel::shortcut(TDEStdAccel::Undo));
+ TQ_SLOT(undo()), TDEStdAccel::shortcut(TDEStdAccel::Undo));
menu->insertItem(i18n("Redo"),mEditor,
- TQT_SLOT(redo()), TDEStdAccel::shortcut(TDEStdAccel::Redo));
+ TQ_SLOT(redo()), TDEStdAccel::shortcut(TDEStdAccel::Redo));
menu->insertSeparator();
//#endif //BROKEN
- menu->insertItem(i18n("Cut"), this, TQT_SLOT(slotCut()));
- menu->insertItem(i18n("Copy"), this, TQT_SLOT(slotCopy()));
- menu->insertItem(i18n("Paste"), this, TQT_SLOT(slotPasteClipboard()));
- menu->insertItem(i18n("Mark All"),this, TQT_SLOT(slotMarkAll()));
+ menu->insertItem(i18n("Cut"), this, TQ_SLOT(slotCut()));
+ menu->insertItem(i18n("Copy"), this, TQ_SLOT(slotCopy()));
+ menu->insertItem(i18n("Paste"), this, TQ_SLOT(slotPasteClipboard()));
+ menu->insertItem(i18n("Mark All"),this, TQ_SLOT(slotMarkAll()));
menu->insertSeparator();
- menu->insertItem(i18n("Find..."), this, TQT_SLOT(slotFind()));
- menu->insertItem(i18n("Replace..."), this, TQT_SLOT(slotReplace()));
+ menu->insertItem(i18n("Find..."), this, TQ_SLOT(slotFind()));
+ menu->insertItem(i18n("Replace..."), this, TQ_SLOT(slotReplace()));
menu->insertSeparator();
- menu->insertItem(i18n("Fixed Font Widths"), this, TQT_SLOT(slotUpdateFont()));
+ menu->insertItem(i18n("Fixed Font Widths"), this, TQ_SLOT(slotUpdateFont()));
mEditor->installRBPopup(menu);
*/
updateCursorPosition();
- connect(mEditor,TQT_SIGNAL(CursorPositionChanged()),TQT_SLOT(updateCursorPosition()));
- connect( mEditor, TQT_SIGNAL( currentFontChanged( const TQFont & ) ),
- TQT_TQOBJECT(this), TQT_SLOT( fontChanged( const TQFont & ) ) );
- connect( mEditor, TQT_SIGNAL( currentAlignmentChanged( int ) ),
- TQT_TQOBJECT(this), TQT_SLOT( alignmentChanged( int ) ) );
+ connect(mEditor,TQ_SIGNAL(CursorPositionChanged()),TQ_SLOT(updateCursorPosition()));
+ connect( mEditor, TQ_SIGNAL( currentFontChanged( const TQFont & ) ),
+ this, TQ_SLOT( fontChanged( const TQFont & ) ) );
+ connect( mEditor, TQ_SIGNAL( currentAlignmentChanged( int ) ),
+ this, TQ_SLOT( alignmentChanged( int ) ) );
}
@@ -1875,15 +1874,15 @@ void KMComposeWin::setMsg(KMMessage* newMsg, bool mayAutoSign,
// don't overwrite the header values with identity specific values
// unless the identity is sticky
if ( !stickyIdentity ) {
- disconnect(mIdentity,TQT_SIGNAL(identityChanged(uint)),
- TQT_TQOBJECT(this), TQT_SLOT(slotIdentityChanged(uint)));
+ disconnect(mIdentity,TQ_SIGNAL(identityChanged(uint)),
+ this, TQ_SLOT(slotIdentityChanged(uint)));
}
// load the mId into the gui, sticky or not, without emitting
mIdentity->setCurrentIdentity( mId );
const uint idToApply = mId;
if ( !stickyIdentity ) {
- connect(mIdentity,TQT_SIGNAL(identityChanged(uint)),
- TQT_TQOBJECT(this), TQT_SLOT(slotIdentityChanged(uint)));
+ connect(mIdentity,TQ_SIGNAL(identityChanged(uint)),
+ this, TQ_SLOT(slotIdentityChanged(uint)));
} else {
// load the message's state into the mId, without applying it to the gui
// that's so we can detect that the id changed (because a sticky was set)
@@ -2166,11 +2165,11 @@ void KMComposeWin::setMsg(KMMessage* newMsg, bool mayAutoSign,
// Not user friendy if this modal fileseletor opens before the
// composer.
//
- //TQTimer::singleShot( 200, this, TQT_SLOT(slotAppendSignature()) );
+ //TQTimer::singleShot( 200, this, TQ_SLOT(slotAppendSignature()) );
if ( GlobalSettings::self()->prependSignature() ) {
- TQTimer::singleShot( 0, this, TQT_SLOT(slotPrependSignature()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(slotPrependSignature()) );
} else {
- TQTimer::singleShot( 0, this, TQT_SLOT(slotAppendSignature()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(slotAppendSignature()) );
}
}
@@ -2359,8 +2358,8 @@ void KMComposeWin::applyChanges( bool dontSignNorEncrypt, bool dontDisable )
// Make new job and execute it
mComposer = new MessageComposer( this );
- connect( mComposer, TQT_SIGNAL( done( bool ) ),
- TQT_TQOBJECT(this), TQT_SLOT( slotComposerDone( bool ) ) );
+ connect( mComposer, TQ_SIGNAL( done( bool ) ),
+ this, TQ_SLOT( slotComposerDone( bool ) ) );
// TODO: Add a cancel button for the following operations?
// Disable any input to the window, so that we have a snapshot of the
@@ -2436,10 +2435,10 @@ bool KMComposeWin::addAttach(const KURL aUrl)
mMapAtmLoadData.insert(job, ld);
mAttachJobs[job] = aUrl;
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_TQOBJECT(this), TQT_SLOT(slotAttachFileResult(TDEIO::Job *)));
- connect(job, TQT_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
- TQT_TQOBJECT(this), TQT_SLOT(slotAttachFileData(TDEIO::Job *, const TQByteArray &)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ this, TQ_SLOT(slotAttachFileResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
+ this, TQ_SLOT(slotAttachFileData(TDEIO::Job *, const TQByteArray &)));
return true;
}
@@ -2468,10 +2467,10 @@ void KMComposeWin::addAttach(const KMMessagePart* msgPart)
mTempDir = 0;
}
- connect( lvi, TQT_SIGNAL( compress( int ) ),
- TQT_TQOBJECT(this), TQT_SLOT( compressAttach( int ) ) );
- connect( lvi, TQT_SIGNAL( uncompress( int ) ),
- TQT_TQOBJECT(this), TQT_SLOT( uncompressAttach( int ) ) );
+ connect( lvi, TQ_SIGNAL( compress( int ) ),
+ this, TQ_SLOT( compressAttach( int ) ) );
+ connect( lvi, TQ_SIGNAL( uncompress( int ) ),
+ this, TQ_SLOT( uncompressAttach( int ) ) );
slotUpdateAttachActions();
}
@@ -3020,10 +3019,10 @@ void KMComposeWin::slotInsertRecentFile(const KURL& u)
}
}
mMapAtmLoadData.insert(job, ld);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_TQOBJECT(this), TQT_SLOT(slotAttachFileResult(TDEIO::Job *)));
- connect(job, TQT_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
- TQT_TQOBJECT(this), TQT_SLOT(slotAttachFileData(TDEIO::Job *, const TQByteArray &)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ this, TQ_SLOT(slotAttachFileResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
+ this, TQ_SLOT(slotAttachFileData(TDEIO::Job *, const TQByteArray &)));
}
@@ -3150,8 +3149,8 @@ void KMComposeWin::startPublicKeyExport() {
Kleo::ExportJob * job = Kleo::CryptoBackendFactory::instance()->openpgp()->publicKeyExportJob( true );
assert( job );
- connect( job, TQT_SIGNAL(result(const GpgME::Error&,const TQByteArray&)),
- this, TQT_SLOT(slotPublicKeyExportResult(const GpgME::Error&,const TQByteArray&)) );
+ connect( job, TQ_SIGNAL(result(const GpgME::Error&,const TQByteArray&)),
+ this, TQ_SLOT(slotPublicKeyExportResult(const GpgME::Error&,const TQByteArray&)) );
const GpgME::Error err = job->start( mFingerprint );
if ( err )
@@ -3207,21 +3206,21 @@ void KMComposeWin::slotAttachPopupMenu(TQListViewItem *, const TQPoint &, int)
mAttachMenu = new TQPopupMenu(this);
mOpenId = mAttachMenu->insertItem(i18n("to open", "Open"), this,
- TQT_SLOT(slotAttachOpen()));
+ TQ_SLOT(slotAttachOpen()));
mOpenWithId = mAttachMenu->insertItem(i18n("Open With..."), this,
- TQT_SLOT(slotAttachOpenWith()));
+ TQ_SLOT(slotAttachOpenWith()));
mViewId = mAttachMenu->insertItem(i18n("to view", "View"), this,
- TQT_SLOT(slotAttachView()));
- mEditId = mAttachMenu->insertItem( i18n("Edit"), this, TQT_SLOT(slotAttachEdit()) );
+ TQ_SLOT(slotAttachView()));
+ mEditId = mAttachMenu->insertItem( i18n("Edit"), this, TQ_SLOT(slotAttachEdit()) );
mEditWithId = mAttachMenu->insertItem( i18n("Edit With..."), this,
- TQT_SLOT(slotAttachEditWith()) );
- mRemoveId = mAttachMenu->insertItem(i18n("Remove"), this, TQT_SLOT(slotAttachRemove()));
+ TQ_SLOT(slotAttachEditWith()) );
+ mRemoveId = mAttachMenu->insertItem(i18n("Remove"), this, TQ_SLOT(slotAttachRemove()));
mSaveAsId = mAttachMenu->insertItem( SmallIconSet("document-save-as"), i18n("Save As..."), this,
- TQT_SLOT( slotAttachSave() ) );
+ TQ_SLOT( slotAttachSave() ) );
mPropertiesId = mAttachMenu->insertItem( i18n("Properties"), this,
- TQT_SLOT( slotAttachProperties() ) );
+ TQ_SLOT( slotAttachProperties() ) );
mAttachMenu->insertSeparator();
- mAttachMenu->insertItem(i18n("Add Attachment..."), this, TQT_SLOT(slotAttachFile()));
+ mAttachMenu->insertItem(i18n("Add Attachment..."), this, TQ_SLOT(slotAttachFile()));
}
int selectedCount = 0;
@@ -3305,7 +3304,7 @@ void KMComposeWin::compressAttach( int idx )
msgPart = mAtmList.at( i );
TQByteArray array;
TQBuffer dev( array );
- KZip zip( &TQT_TQIODEVICE_OBJECT(dev) );
+ KZip zip( &dev );
TQByteArray decoded = msgPart->bodyDecodedBinary();
if ( ! zip.open( IO_WriteOnly ) ) {
KMessageBox::sorry(0, i18n("KMail could not compress the file.") );
@@ -3384,7 +3383,7 @@ void KMComposeWin::uncompressAttach( int idx )
msgPart = mAtmList.at( i );
TQBuffer dev( msgPart->bodyDecodedBinary() );
- KZip zip( &TQT_TQIODEVICE_OBJECT(dev) );
+ KZip zip( &dev );
TQByteArray decoded;
decoded = msgPart->bodyDecodedBinary();
@@ -3576,8 +3575,8 @@ void KMComposeWin::editAttach(int index, bool openWith)
KMail::EditorWatcher *watcher =
new KMail::EditorWatcher( KURL( atmTempFile->name() ), contentTypeStr, openWith,
- TQT_TQOBJECT(this), this );
- connect( watcher, TQT_SIGNAL(editDone(KMail::EditorWatcher*)), TQT_SLOT(slotEditDone(KMail::EditorWatcher*)) );
+ this, this );
+ connect( watcher, TQ_SIGNAL(editDone(KMail::EditorWatcher*)), TQ_SLOT(slotEditDone(KMail::EditorWatcher*)) );
if ( watcher->start() ) {
mEditorMap.insert( watcher, msgPart );
mEditorTempFiles.insert( watcher, atmTempFile );
@@ -3790,9 +3789,9 @@ void KMComposeWin::slotUndo()
TQWidget* fw = focusWidget();
if (!fw) return;
- if ( ::tqqt_cast<KEdit*>(fw) )
+ if ( ::tqt_cast<KEdit*>(fw) )
static_cast<TQTextEdit*>(fw)->undo();
- else if (::tqqt_cast<TQLineEdit*>(fw))
+ else if (::tqt_cast<TQLineEdit*>(fw))
static_cast<TQLineEdit*>(fw)->undo();
}
@@ -3801,9 +3800,9 @@ void KMComposeWin::slotRedo()
TQWidget* fw = focusWidget();
if (!fw) return;
- if (::tqqt_cast<KEdit*>(fw))
+ if (::tqt_cast<KEdit*>(fw))
static_cast<KEdit*>(fw)->redo();
- else if (::tqqt_cast<TQLineEdit*>(fw))
+ else if (::tqt_cast<TQLineEdit*>(fw))
static_cast<TQLineEdit*>(fw)->redo();
}
@@ -3813,9 +3812,9 @@ void KMComposeWin::slotCut()
TQWidget* fw = focusWidget();
if (!fw) return;
- if (::tqqt_cast<KEdit*>(fw))
+ if (::tqt_cast<KEdit*>(fw))
static_cast<KEdit*>(fw)->cut();
- else if (::tqqt_cast<TQLineEdit*>(fw))
+ else if (::tqt_cast<TQLineEdit*>(fw))
static_cast<TQLineEdit*>(fw)->cut();
}
@@ -3831,7 +3830,7 @@ void KMComposeWin::slotCopy()
#endif
TQKeyEvent k(TQEvent::KeyPress, Key_C, 0, ControlButton);
- kapp->notify(TQT_TQOBJECT(fw), TQT_TQEVENT(&k));
+ kapp->notify(fw, &k);
}
@@ -3889,9 +3888,9 @@ void KMComposeWin::slotMarkAll()
TQWidget* fw = focusWidget();
if (!fw) return;
- if (::tqqt_cast<TQLineEdit*>(fw))
+ if (::tqt_cast<TQLineEdit*>(fw))
static_cast<TQLineEdit*>(fw)->selectAll();
- else if (::tqqt_cast<KEdit*>(fw))
+ else if (::tqt_cast<KEdit*>(fw))
static_cast<KEdit*>(fw)->selectAll();
}
@@ -4083,15 +4082,15 @@ void KMComposeWin::ignoreStickyFields()
void KMComposeWin::slotPrint()
{
mMessageWasModified = isModified();
- connect( this, TQT_SIGNAL( applyChangesDone( bool ) ),
- TQT_TQOBJECT(this), TQT_SLOT( slotContinuePrint( bool ) ) );
+ connect( this, TQ_SIGNAL( applyChangesDone( bool ) ),
+ this, TQ_SLOT( slotContinuePrint( bool ) ) );
applyChanges( true );
}
void KMComposeWin::slotContinuePrint( bool rc )
{
- disconnect( this, TQT_SIGNAL( applyChangesDone( bool ) ),
- TQT_TQOBJECT(this), TQT_SLOT( slotContinuePrint( bool ) ) );
+ disconnect( this, TQ_SIGNAL( applyChangesDone( bool ) ),
+ this, TQ_SLOT( slotContinuePrint( bool ) ) );
if( rc ) {
if ( mComposedMessages.isEmpty() ) {
@@ -4221,8 +4220,8 @@ void KMComposeWin::doSend( KMail::MessageSender::SendMethod method,
const bool neverEncrypt = ( mDisableBreaking && GlobalSettings::self()->neverEncryptDrafts() )
|| mSigningAndEncryptionExplicitlyDisabled;
- connect( this, TQT_SIGNAL( applyChangesDone( bool ) ),
- TQT_SLOT( slotContinueDoSend( bool ) ) );
+ connect( this, TQ_SIGNAL( applyChangesDone( bool ) ),
+ TQ_SLOT( slotContinueDoSend( bool ) ) );
if ( mEditor->textFormat() == TQt::RichText )
mMsg->setHeaderField( "X-KMail-Markup", "true" );
@@ -4334,8 +4333,8 @@ void KMComposeWin::slotContinueDoSend( bool sentOk )
{
kdDebug(5006) << "KMComposeWin::slotContinueDoSend( " << sentOk << " )"
<< endl;
- disconnect( this, TQT_SIGNAL( applyChangesDone( bool ) ),
- TQT_TQOBJECT(this), TQT_SLOT( slotContinueDoSend( bool ) ) );
+ disconnect( this, TQ_SIGNAL( applyChangesDone( bool ) ),
+ this, TQ_SLOT( slotContinueDoSend( bool ) ) );
if ( !sentOk ) {
mDisableBreaking = false;
@@ -4736,8 +4735,8 @@ void KMComposeWin::slotSpellcheck()
mSubjectTextWasSpellChecked = false;
mSpellCheckInProgress=true;
/*
- connect (mEditor, TQT_SIGNAL (spellcheck_progress (unsigned)),
- this, TQT_SLOT (spell_progress (unsigned)));
+ connect (mEditor, TQ_SIGNAL (spellcheck_progress (unsigned)),
+ this, TQ_SLOT (spell_progress (unsigned)));
*/
mEditor->spellcheck();
@@ -4792,7 +4791,7 @@ void KMComposeWin::slotSpellcheckDone(int result)
statusBar()->changeItem(i18n(" Spell check complete."),0);
break;
}
- TQTimer::singleShot( 2000, this, TQT_SLOT(slotSpellcheckDoneClearStatus()) );
+ TQTimer::singleShot( 2000, this, TQ_SLOT(slotSpellcheckDoneClearStatus()) );
}
void KMComposeWin::slotSpellcheckDoneClearStatus()
@@ -4990,7 +4989,7 @@ void KMComposeWin::slotSpellcheckConfig()
{
KDialogBase dlg(KDialogBase::Plain, i18n("Spellchecker"),
KDialogBase::Ok|KDialogBase::Cancel, KDialogBase::Ok,
- TQT_TQWIDGET(this), 0, true, true );
+ this, 0, true, true );
KWin twin;
TQTabDialog qtd (this, "tabdialog", true);
KSpellConfig mKSpellConfig (&qtd);
@@ -5018,8 +5017,8 @@ void KMComposeWin::slotEditToolbars()
saveMainWindowSettings(KMKernel::config(), "Composer");
KEditToolbar dlg(guiFactory(), this);
- connect( &dlg, TQT_SIGNAL(newToolbarConfig()),
- TQT_SLOT(slotUpdateToolbars()) );
+ connect( &dlg, TQ_SIGNAL(newToolbarConfig()),
+ TQ_SLOT(slotUpdateToolbars()) );
dlg.exec();
}
@@ -5079,8 +5078,8 @@ void KMComposeWin::updateAutoSave()
else {
if ( !mAutoSaveTimer ) {
mAutoSaveTimer = new TQTimer( this, "mAutoSaveTimer" );
- connect( mAutoSaveTimer, TQT_SIGNAL( timeout() ),
- TQT_TQOBJECT(this), TQT_SLOT( autoSaveMessage() ) );
+ connect( mAutoSaveTimer, TQ_SIGNAL( timeout() ),
+ this, TQ_SLOT( autoSaveMessage() ) );
}
mAutoSaveTimer->start( autoSaveInterval() );
}
@@ -5311,8 +5310,8 @@ void KMComposeWin::slotEncryptChiasmusToggled( bool on ) {
return;
}
- STD_NAMESPACE_PREFIX auto_ptr<Kleo::SpecialJob> job( chiasmus->specialJob( "x-obtain-keys", TQStringVariantMap() ) );
- if ( !job.get() ) {
+ STD_NAMESPACE_PREFIX unique_ptr<Kleo::SpecialJob> job( chiasmus->specialJob( "x-obtain-keys", TQStringVariantMap() ) );
+ if ( !job ) {
const TQString msg = i18n( "Chiasmus backend does not offer the "
"\"x-obtain-keys\" function. Please report this bug." );
KMessageBox::error( this, msg, i18n( "Chiasmus Backend Error" ) );
@@ -5411,7 +5410,7 @@ void KMComposeWin::slotAttachmentDragStarted()
void KMComposeWin::recipientEditorSizeHintChanged()
{
- TQTimer::singleShot( 1, this, TQT_SLOT(setMaximumHeaderSize()) );
+ TQTimer::singleShot( 1, this, TQ_SLOT(setMaximumHeaderSize()) );
}
void KMComposeWin::setMaximumHeaderSize()
diff --git a/kmail/kmcomposewin.h b/kmail/kmcomposewin.h
index 123f112b..942fc001 100644
--- a/kmail/kmcomposewin.h
+++ b/kmail/kmcomposewin.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* KMComposeWin Header File
* Author: Markus Wuebben <markus.wuebben@kde.org>
*/
@@ -98,7 +98,7 @@ namespace GpgME {
//-----------------------------------------------------------------------------
class KMComposeWin : public KMail::Composer, public MailComposerIface
{
- Q_OBJECT
+ TQ_OBJECT
friend class ::KMEdit;
friend class ::MessageComposer;
diff --git a/kmail/kmdebug.h b/kmail/kmdebug.h
index 46262aeb..142d0b9e 100644
--- a/kmail/kmdebug.h
+++ b/kmail/kmdebug.h
@@ -1,5 +1,3 @@
-// -*- c++ -*- convenience wrappers around kdDebug/kdWarning/etc
-
#ifndef __KMAIL_KMDEBUG_H__
#define __KMAIL_KMDEBUG_H__
diff --git a/kmail/kmedit.cpp b/kmail/kmedit.cpp
index afe854de..b66e6ee6 100644
--- a/kmail/kmedit.cpp
+++ b/kmail/kmedit.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmcomposewin.cpp
// Author: Markus Wuebben <markus.wuebben@kde.org>
// This code is published under the GPL.
@@ -227,21 +226,21 @@ KMEdit::KMEdit(TQWidget *parent, KMComposeWin* composer,
mSpellLineEdit( false ),
mPasteMode( TQClipboard::Clipboard )
{
- connect( this, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(slotSelectionChanged()) );
+ connect( this, TQ_SIGNAL(selectionChanged()), this, TQ_SLOT(slotSelectionChanged()) );
installEventFilter(this);
KCursor::setAutoHideCursor( this, true, true );
setOverwriteEnabled( true );
createSpellers();
- connect( mSpellConfig, TQT_SIGNAL( configChanged() ),
- this, TQT_SLOT( createSpellers() ) );
- connect( mSpeller, TQT_SIGNAL( death() ),
- this, TQT_SLOT( spellerDied() ) );
+ connect( mSpellConfig, TQ_SIGNAL( configChanged() ),
+ this, TQ_SLOT( createSpellers() ) );
+ connect( mSpeller, TQ_SIGNAL( death() ),
+ this, TQ_SLOT( spellerDied() ) );
}
void KMEdit::createSpellers()
{
delete mSpeller;
- mSpeller = new KMSpell( TQT_TQOBJECT(this), TQT_SLOT( spellerReady( KSpell * ) ), mSpellConfig );
+ mSpeller = new KMSpell( this, TQ_SLOT( spellerReady( KSpell * ) ), mSpellConfig );
}
void KMEdit::initializeAutoSpellChecking()
@@ -271,8 +270,8 @@ void KMEdit::initializeAutoSpellChecking()
col1, col2, col3, col4,
mSpellConfig );
- connect( mHighlighter, TQT_SIGNAL(newSuggestions(const TQString&, const TQStringList&, unsigned int)),
- this, TQT_SLOT(addSuggestion(const TQString&, const TQStringList&, unsigned int)) );
+ connect( mHighlighter, TQ_SIGNAL(newSuggestions(const TQString&, const TQStringList&, unsigned int)),
+ this, TQ_SLOT(addSuggestion(const TQString&, const TQStringList&, unsigned int)) );
}
@@ -413,7 +412,7 @@ void KMEdit::spellerReady( KSpell *spell )
bool KMEdit::eventFilter(TQObject*o, TQEvent* e)
{
- if (TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(this))
+ if (o == this)
KCursor::autoHideEventFilter(o, e);
if (e->type() == TQEvent::KeyPress)
@@ -450,17 +449,17 @@ bool KMEdit::eventFilter(TQObject*o, TQEvent* e)
*mExtEditorProcess << sysLine.left(sysLine.find(" ")).local8Bit();
sysLine.remove(0, sysLine.find(" ") + 1);
}
- connect(mExtEditorProcess, TQT_SIGNAL(processExited(TDEProcess*)),
- TQT_SLOT(slotExternalEditorDone(TDEProcess*)));
+ connect(mExtEditorProcess, TQ_SIGNAL(processExited(TDEProcess*)),
+ TQ_SLOT(slotExternalEditorDone(TDEProcess*)));
if (!mExtEditorProcess->start())
{
KMessageBox::error( topLevelWidget(),
i18n("Unable to start external editor.") );
killExternalEditor();
} else {
- mExtEditorTempFileWatcher = new KDirWatch( TQT_TQOBJECT(this), "mExtEditorTempFileWatcher" );
- connect( mExtEditorTempFileWatcher, TQT_SIGNAL(dirty(const TQString&)),
- TQT_SLOT(slotExternalEditorTempFileChanged(const TQString&)) );
+ mExtEditorTempFileWatcher = new KDirWatch( this, "mExtEditorTempFileWatcher" );
+ connect( mExtEditorTempFileWatcher, TQ_SIGNAL(dirty(const TQString&)),
+ TQ_SLOT(slotExternalEditorTempFileChanged(const TQString&)) );
mExtEditorTempFileWatcher->addFile( mExtEditorTempFile->name() );
}
return true;
@@ -543,7 +542,7 @@ bool KMEdit::eventFilter(TQObject*o, TQEvent* e)
if ( mHighlighter ) {
// Wait a bit until reloading the highlighter, the mSpeller first needs to finish saving
// the personal word list.
- TQTimer::singleShot( 200, mHighlighter, TQT_SLOT( slotLocalSpellConfigChanged() ) );
+ TQTimer::singleShot( 200, mHighlighter, TQ_SLOT( slotLocalSpellConfigChanged() ) );
}
}
else if( id > -1 )
@@ -570,7 +569,7 @@ bool KMEdit::eventFilter(TQObject*o, TQEvent* e)
}
}
} else if ( e->type() == TQEvent::FocusIn || e->type() == TQEvent::FocusOut ) {
- TQFocusEvent *fe = TQT_TQFOCUSEVENT(e);
+ TQFocusEvent *fe = static_cast<TQFocusEvent*>(e);
if(! (fe->reason() == TQFocusEvent::ActiveWindow || fe->reason() == TQFocusEvent::Popup) )
emit focusChanged( fe->gotFocus() );
}
@@ -652,28 +651,28 @@ void KMEdit::spellcheck()
// if (textFormat() == TQt::RichText ) {
// kdDebug(5006) << "KMEdit::spellcheck, spellchecking for RichText" << endl;
// mKSpellForDialog = new KSpell(this, i18n("Spellcheck - KMail"), this,
-// TQT_SLOT(slotSpellcheck2(KSpell*)),0,true,false,KSpell::HTML);
+// TQ_SLOT(slotSpellcheck2(KSpell*)),0,true,false,KSpell::HTML);
// }
// else {
// Don't use mSpellConfig here. Reason is that the spell dialog, KSpellDlg, uses its own
// spell config, and therefore the two wouldn't be in sync.
- mKSpellForDialog = new KSpell( TQT_TQWIDGET(this), i18n("Spellcheck - KMail"), TQT_TQOBJECT(this),
- TQT_SLOT(slotSpellcheck2(KSpell*))/*, mSpellConfig*/ );
+ mKSpellForDialog = new KSpell( this, i18n("Spellcheck - KMail"), this,
+ TQ_SLOT(slotSpellcheck2(KSpell*))/*, mSpellConfig*/ );
// }
TQStringList l = KSpellingHighlighter::personalWords();
for ( TQStringList::Iterator it = l.begin(); it != l.end(); ++it ) {
mKSpellForDialog->addPersonal( *it );
}
- connect (mKSpellForDialog, TQT_SIGNAL( death()),
- this, TQT_SLOT (slotSpellDone()));
- connect (mKSpellForDialog, TQT_SIGNAL (misspelling (const TQString &, const TQStringList &, unsigned int)),
- this, TQT_SLOT (slotMisspelling (const TQString &, const TQStringList &, unsigned int)));
- connect (mKSpellForDialog, TQT_SIGNAL (corrected (const TQString &, const TQString &, unsigned int)),
- this, TQT_SLOT (slotCorrected (const TQString &, const TQString &, unsigned int)));
- connect (mKSpellForDialog, TQT_SIGNAL (done(const TQString &)),
- this, TQT_SLOT (slotSpellResult (const TQString&)));
+ connect (mKSpellForDialog, TQ_SIGNAL( death()),
+ this, TQ_SLOT (slotSpellDone()));
+ connect (mKSpellForDialog, TQ_SIGNAL (misspelling (const TQString &, const TQStringList &, unsigned int)),
+ this, TQ_SLOT (slotMisspelling (const TQString &, const TQStringList &, unsigned int)));
+ connect (mKSpellForDialog, TQ_SIGNAL (corrected (const TQString &, const TQString &, unsigned int)),
+ this, TQ_SLOT (slotCorrected (const TQString &, const TQString &, unsigned int)));
+ connect (mKSpellForDialog, TQ_SIGNAL (done(const TQString &)),
+ this, TQ_SLOT (slotSpellResult (const TQString&)));
}
void KMEdit::cut()
@@ -709,7 +708,7 @@ void KMEdit::paste()
// Roll our own internal flag.
void KMEdit::contentsMouseReleaseEvent( TQMouseEvent * e )
{
- if( e->button() != Qt::MidButton )
+ if( e->button() != TQt::MidButton )
return KEdit::contentsMouseReleaseEvent( e );
mPasteMode = TQClipboard::Selection;
KEdit::contentsMouseReleaseEvent( e );
@@ -719,7 +718,7 @@ void KMEdit::contentsMouseReleaseEvent( TQMouseEvent * e )
void KMEdit::contentsMouseDoubleClickEvent( TQMouseEvent *e )
{
bool handled = false;
- if ( e->button() == Qt::LeftButton ) {
+ if ( e->button() == TQt::LeftButton ) {
// Get the cursor position for the place where the user clicked to
int paragraphPos;
diff --git a/kmail/kmedit.h b/kmail/kmedit.h
index f545a136..7327327e 100644
--- a/kmail/kmedit.h
+++ b/kmail/kmedit.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* KMComposeWin Header File
* Author: Markus Wuebben <markus.wuebben@kde.org>
*/
@@ -64,7 +64,7 @@ class KMSyntaxHighter : public KDictSpellingHighlighter
};
class KMEdit : public KEdit {
- Q_OBJECT
+ TQ_OBJECT
public:
KMEdit(TQWidget *parent=0,KMComposeWin* composer=0,
diff --git a/kmail/kmfawidgets.cpp b/kmail/kmfawidgets.cpp
index fdd444b4..9aad593f 100644
--- a/kmail/kmfawidgets.cpp
+++ b/kmail/kmfawidgets.cpp
@@ -39,10 +39,10 @@ KMFilterActionWithAddressWidget::KMFilterActionWithAddressWidget( TQWidget* pare
TQToolTip::add( mBtn, i18n( "Open Address Book" ) );
hbl->addWidget( mBtn );
- connect( mBtn, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotAddrBook()) );
- connect( mLineEdit, TQT_SIGNAL( textChanged(const TQString&) ),
- this, TQT_SIGNAL( textChanged(const TQString&) ) );
+ connect( mBtn, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotAddrBook()) );
+ connect( mLineEdit, TQ_SIGNAL( textChanged(const TQString&) ),
+ this, TQ_SIGNAL( textChanged(const TQString&) ) );
}
void KMFilterActionWithAddressWidget::slotAddrBook()
@@ -75,14 +75,14 @@ KMSoundTestWidget::KMSoundTestWidget(TQWidget *parent, const char *name)
TQHBoxLayout *lay1 = new TQHBoxLayout( this );
m_playButton = new TQPushButton( this, "m_playButton" );
m_playButton->setPixmap( SmallIcon( "1rightarrow" ) );
- connect( m_playButton, TQT_SIGNAL( clicked() ), TQT_SLOT( playSound() ));
+ connect( m_playButton, TQ_SIGNAL( clicked() ), TQ_SLOT( playSound() ));
lay1->addWidget( m_playButton );
m_urlRequester = new KURLRequester( this );
lay1->addWidget( m_urlRequester );
- connect( m_urlRequester, TQT_SIGNAL( openFileDialog( KURLRequester * )),
- TQT_SLOT( openSoundDialog( KURLRequester * )));
- connect( m_urlRequester->lineEdit(), TQT_SIGNAL( textChanged ( const TQString & )), TQT_SLOT( slotUrlChanged(const TQString & )));
+ connect( m_urlRequester, TQ_SIGNAL( openFileDialog( KURLRequester * )),
+ TQ_SLOT( openSoundDialog( KURLRequester * )));
+ connect( m_urlRequester->lineEdit(), TQ_SIGNAL( textChanged ( const TQString & )), TQ_SLOT( slotUrlChanged(const TQString & )));
slotUrlChanged(m_urlRequester->lineEdit()->text() );
}
diff --git a/kmail/kmfawidgets.h b/kmail/kmfawidgets.h
index f5602f5e..90f980e0 100644
--- a/kmail/kmfawidgets.h
+++ b/kmail/kmfawidgets.h
@@ -17,7 +17,7 @@ class KURLRequester;
class KMFilterActionWithAddressWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMFilterActionWithAddressWidget( TQWidget* parent=0, const char* name=0 );
@@ -40,7 +40,7 @@ private:
class KMSoundTestWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMSoundTestWidget( TQWidget * parent, const char * name=0 );
diff --git a/kmail/kmfilter.cpp b/kmail/kmfilter.cpp
index d681c6a6..df6a5543 100644
--- a/kmail/kmfilter.cpp
+++ b/kmail/kmfilter.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* Copyright (c) 1996-1998 Stefan Taferner <taferner@kde.org>
*
diff --git a/kmail/kmfilter.h b/kmail/kmfilter.h
index 35fdecda..fd993e3c 100644
--- a/kmail/kmfilter.h
+++ b/kmail/kmfilter.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* Copyright (c) 1996-1998 Stefan Taferner <taferner@kde.org>
*
diff --git a/kmail/kmfilteraction.cpp b/kmail/kmfilteraction.cpp
index d97e5fa7..b567446d 100644
--- a/kmail/kmfilteraction.cpp
+++ b/kmail/kmfilteraction.cpp
@@ -1423,8 +1423,8 @@ void KMFilterActionCopy::processAsync(KMMessage* msg) const
ActionScheduler *handler = MessageProperty::filterHandler( msg );
KMCommand *cmd = new KMCopyCommand( mFolder, msg );
- TQObject::connect( cmd, TQT_SIGNAL( completed( KMCommand * ) ),
- handler, TQT_SLOT( copyMessageFinished( KMCommand * ) ) );
+ TQObject::connect( cmd, TQ_SIGNAL( completed( KMCommand * ) ),
+ handler, TQ_SLOT( copyMessageFinished( KMCommand * ) ) );
cmd->start();
}
@@ -1816,7 +1816,7 @@ void KMFilterActionExtFilter::processAsync(KMMessage* aMsg) const
inFile->close();
PipeJob *job = new PipeJob(0, 0, aMsg, commandLine, tempFileName);
- TQObject::connect ( job, TQT_SIGNAL( done() ), handler, TQT_SLOT( actionMessage() ) );
+ TQObject::connect ( job, TQ_SIGNAL( done() ), handler, TQ_SLOT( actionMessage() ) );
kmkernel->weaver()->enqueue(job);
}
diff --git a/kmail/kmfilterdlg.cpp b/kmail/kmfilterdlg.cpp
index d9065f6d..e6d1668f 100644
--- a/kmail/kmfilterdlg.cpp
+++ b/kmail/kmfilterdlg.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmfilterdlg.cpp
// Author: Marc Mutz <Marc@Mutz.com>
// based on work by Stefan Taferner <taferner@kde.org>
@@ -139,10 +138,10 @@ KMFilterDlg::KMFilterDlg(TQWidget* parent, const char* name, bool popFilter, boo
setHelp( (bPopFilter)? KMPopFilterDlgHelpAnchor: KMFilterDlgHelpAnchor );
setButtonText( User1, i18n("Import") );
setButtonText( User2, i18n("Export") );
- connect( this, TQT_SIGNAL(user1Clicked()),
- this, TQT_SLOT( slotImportFilters()) );
- connect( this, TQT_SIGNAL(user2Clicked()),
- this, TQT_SLOT( slotExportFilters()) );
+ connect( this, TQ_SIGNAL(user1Clicked()),
+ this, TQ_SLOT( slotImportFilters()) );
+ connect( this, TQ_SIGNAL(user2Clicked()),
+ this, TQ_SLOT( slotExportFilters()) );
TQWidget *w = new TQWidget( this );
setMainWidget( w );
@@ -185,11 +184,11 @@ KMFilterDlg::KMFilterDlg(TQWidget* parent, const char* name, bool popFilter, boo
vbl->addWidget( mGlobalsBox, 0, TQt::AlignTop );
}
else {
- TQGroupBox *agb = new TQGroupBox( 1 /*column*/, Qt::Vertical, i18n("Filter Actions"), page1 );
+ TQGroupBox *agb = new TQGroupBox( 1 /*column*/, TQt::Vertical, i18n("Filter Actions"), page1 );
mActionLister = new KMFilterActionWidgetLister( agb );
vbl->addWidget( agb, 0, TQt::AlignTop );
- mAdvOptsGroup = new TQGroupBox ( 1 /*columns*/, Qt::Vertical,
+ mAdvOptsGroup = new TQGroupBox ( 1 /*columns*/, TQt::Vertical,
i18n("Advanced Options"), page2);
{
TQWidget *adv_w = new TQWidget( mAdvOptsGroup );
@@ -263,81 +262,81 @@ KMFilterDlg::KMFilterDlg(TQWidget* parent, const char* name, bool popFilter, boo
vbl->addStretch( 1 );
// load the filter parts into the edit widgets
- connect( mFilterList, TQT_SIGNAL(filterSelected(KMFilter*)),
- this, TQT_SLOT(slotFilterSelected(KMFilter*)) );
+ connect( mFilterList, TQ_SIGNAL(filterSelected(KMFilter*)),
+ this, TQ_SLOT(slotFilterSelected(KMFilter*)) );
if (bPopFilter){
// set the state of the global setting 'show later msgs'
- connect( mShowLaterBtn, TQT_SIGNAL(toggled(bool)),
- mFilterList, TQT_SLOT(slotShowLaterToggled(bool)));
+ connect( mShowLaterBtn, TQ_SIGNAL(toggled(bool)),
+ mFilterList, TQ_SLOT(slotShowLaterToggled(bool)));
// set the action in the filter when changed
- connect( mActionGroup, TQT_SIGNAL(actionChanged(const KMPopFilterAction)),
- this, TQT_SLOT(slotActionChanged(const KMPopFilterAction)) );
+ connect( mActionGroup, TQ_SIGNAL(actionChanged(const KMPopFilterAction)),
+ this, TQ_SLOT(slotActionChanged(const KMPopFilterAction)) );
} else {
// transfer changes from the 'Apply this filter on...'
// combo box to the filter
- connect( mApplyOnIn, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotApplicabilityChanged()) );
- connect( mApplyOnForAll, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotApplicabilityChanged()) );
- connect( mApplyOnForTraditional, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotApplicabilityChanged()) );
- connect( mApplyOnForChecked, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotApplicabilityChanged()) );
- connect( mApplyOnOut, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotApplicabilityChanged()) );
- connect( mApplyOnCtrlJ, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotApplicabilityChanged()) );
- connect( mAccountList, TQT_SIGNAL(clicked(TQListViewItem*)),
- this, TQT_SLOT(slotApplicableAccountsChanged()) );
- connect( mAccountList, TQT_SIGNAL(spacePressed(TQListViewItem*)),
- this, TQT_SLOT(slotApplicableAccountsChanged()) );
+ connect( mApplyOnIn, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotApplicabilityChanged()) );
+ connect( mApplyOnForAll, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotApplicabilityChanged()) );
+ connect( mApplyOnForTraditional, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotApplicabilityChanged()) );
+ connect( mApplyOnForChecked, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotApplicabilityChanged()) );
+ connect( mApplyOnOut, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotApplicabilityChanged()) );
+ connect( mApplyOnCtrlJ, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotApplicabilityChanged()) );
+ connect( mAccountList, TQ_SIGNAL(clicked(TQListViewItem*)),
+ this, TQ_SLOT(slotApplicableAccountsChanged()) );
+ connect( mAccountList, TQ_SIGNAL(spacePressed(TQListViewItem*)),
+ this, TQ_SLOT(slotApplicableAccountsChanged()) );
// transfer changes from the 'stop processing here'
// check box to the filter
- connect( mStopProcessingHere, TQT_SIGNAL(toggled(bool)),
- this, TQT_SLOT(slotStopProcessingButtonToggled(bool)) );
+ connect( mStopProcessingHere, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(slotStopProcessingButtonToggled(bool)) );
- connect( mConfigureShortcut, TQT_SIGNAL(toggled(bool)),
- this, TQT_SLOT(slotConfigureShortcutButtonToggled(bool)) );
+ connect( mConfigureShortcut, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(slotConfigureShortcutButtonToggled(bool)) );
- connect( mKeyButton, TQT_SIGNAL( capturedShortcut( const TDEShortcut& ) ),
- this, TQT_SLOT( slotCapturedShortcutChanged( const TDEShortcut& ) ) );
+ connect( mKeyButton, TQ_SIGNAL( capturedShortcut( const TDEShortcut& ) ),
+ this, TQ_SLOT( slotCapturedShortcutChanged( const TDEShortcut& ) ) );
- connect( mConfigureToolbar, TQT_SIGNAL(toggled(bool)),
- this, TQT_SLOT(slotConfigureToolbarButtonToggled(bool)) );
+ connect( mConfigureToolbar, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(slotConfigureToolbarButtonToggled(bool)) );
- connect( mFilterActionIconButton, TQT_SIGNAL( iconChanged( TQString ) ),
- this, TQT_SLOT( slotFilterActionIconChanged( TQString ) ) );
+ connect( mFilterActionIconButton, TQ_SIGNAL( iconChanged( TQString ) ),
+ this, TQ_SLOT( slotFilterActionIconChanged( TQString ) ) );
}
// reset all widgets here
- connect( mFilterList, TQT_SIGNAL(resetWidgets()),
- this, TQT_SLOT(slotReset()) );
+ connect( mFilterList, TQ_SIGNAL(resetWidgets()),
+ this, TQ_SLOT(slotReset()) );
- connect( mFilterList, TQT_SIGNAL( applyWidgets() ),
- this, TQT_SLOT( slotUpdateFilter() ) );
+ connect( mFilterList, TQ_SIGNAL( applyWidgets() ),
+ this, TQ_SLOT( slotUpdateFilter() ) );
// support auto-naming the filter
- connect( mPatternEdit, TQT_SIGNAL(maybeNameChanged()),
- mFilterList, TQT_SLOT(slotUpdateFilterName()) );
+ connect( mPatternEdit, TQ_SIGNAL(maybeNameChanged()),
+ mFilterList, TQ_SLOT(slotUpdateFilterName()) );
// apply changes on 'Apply'
- connect( this, TQT_SIGNAL(applyClicked()),
- mFilterList, TQT_SLOT(slotApplyFilterChanges()) );
+ connect( this, TQ_SIGNAL(applyClicked()),
+ mFilterList, TQ_SLOT(slotApplyFilterChanges()) );
// apply changes on 'OK'
- connect( this, TQT_SIGNAL(okClicked()),
- mFilterList, TQT_SLOT(slotApplyFilterChanges()) );
+ connect( this, TQ_SIGNAL(okClicked()),
+ mFilterList, TQ_SLOT(slotApplyFilterChanges()) );
// save dialog size on 'OK'
- connect( this, TQT_SIGNAL(okClicked()),
- this, TQT_SLOT(slotSaveSize()) );
+ connect( this, TQ_SIGNAL(okClicked()),
+ this, TQ_SLOT(slotSaveSize()) );
// destruct the dialog on OK, close and Cancel
- connect( this, TQT_SIGNAL(finished()),
- this, TQT_SLOT(slotFinished()) );
+ connect( this, TQ_SIGNAL(finished()),
+ this, TQ_SLOT(slotFinished()) );
TDEConfigGroup geometry( KMKernel::config(), "Geometry");
const char * configKey
@@ -578,7 +577,7 @@ void KMFilterDlg::slotUpdateAccountList()
//=============================================================================
KMFilterListBox::KMFilterListBox( const TQString & title, TQWidget *parent, const char* name, bool popFilter )
- : TQGroupBox( 1, Qt::Horizontal, title, parent, name ),
+ : TQGroupBox( 1, TQt::Horizontal, title, parent, name ),
bPopFilter(popFilter)
{
mFilterList.setAutoDelete( true );
@@ -643,31 +642,31 @@ KMFilterListBox::KMFilterListBox( const TQString & title, TQWidget *parent, cons
hb = new TQHBox( this );
hb->setSpacing( 4 );
TQPushButton *btn = new TQPushButton( i18n("Select Source Folders"), hb );
- connect( btn, TQT_SIGNAL(clicked()), TQT_SLOT(slotSelectSourceFolders()) );
+ connect( btn, TQ_SIGNAL(clicked()), TQ_SLOT(slotSelectSourceFolders()) );
}
//----------- now connect everything
- connect( mListBox, TQT_SIGNAL(highlighted(int)),
- this, TQT_SLOT(slotSelected(int)) );
- connect( mListBox, TQT_SIGNAL( doubleClicked ( TQListBoxItem * )),
- this, TQT_SLOT( slotRename()) );
- connect( mBtnTop, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotTop()) );
- connect( mBtnUp, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotUp()) );
- connect( mBtnDown, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotDown()) );
- connect( mBtnBot, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotBottom()) );
- connect( mBtnNew, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotNew()) );
- connect( mBtnCopy, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotCopy()) );
- connect( mBtnDelete, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotDelete()) );
- connect( mBtnRename, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotRename()) );
+ connect( mListBox, TQ_SIGNAL(highlighted(int)),
+ this, TQ_SLOT(slotSelected(int)) );
+ connect( mListBox, TQ_SIGNAL( doubleClicked ( TQListBoxItem * )),
+ this, TQ_SLOT( slotRename()) );
+ connect( mBtnTop, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotTop()) );
+ connect( mBtnUp, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotUp()) );
+ connect( mBtnDown, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotDown()) );
+ connect( mBtnBot, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotBottom()) );
+ connect( mBtnNew, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotNew()) );
+ connect( mBtnCopy, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotCopy()) );
+ connect( mBtnDelete, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotDelete()) );
+ connect( mBtnRename, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotRename()) );
// the dialog should call loadFilterList()
// when all signals are connected.
@@ -1153,8 +1152,8 @@ KMFilterActionWidget::KMFilterActionWidget( TQWidget *parent, const char* name )
setFocusProxy( mComboBox );
// now connect the combo box and the widget stack
- connect( mComboBox, TQT_SIGNAL(activated(int)),
- mWidgetStack, TQT_SLOT(raiseWidget(int)) );
+ connect( mComboBox, TQ_SIGNAL(activated(int)),
+ mWidgetStack, TQ_SLOT(raiseWidget(int)) );
}
void KMFilterActionWidget::setAction( const KMFilterAction* aAction )
@@ -1307,8 +1306,8 @@ KMPopFilterActionWidget::KMPopFilterActionWidget( const TQString& title, TQWidge
mIdMap[id(mActionMap[Down])] = Down;
mIdMap[id(mActionMap[Delete])] = Delete;
- connect( this, TQT_SIGNAL(clicked(int)),
- this, TQT_SLOT( slotActionClicked(int)) );
+ connect( this, TQ_SIGNAL(clicked(int)),
+ this, TQ_SLOT( slotActionClicked(int)) );
}
void KMPopFilterActionWidget::setAction( KMPopFilterAction aAction )
diff --git a/kmail/kmfilterdlg.h b/kmail/kmfilterdlg.h
index e2d414b9..8e3b62f9 100644
--- a/kmail/kmfilterdlg.h
+++ b/kmail/kmfilterdlg.h
@@ -59,7 +59,7 @@ class TDEListView;
*/
class KMFilterListBox : public TQGroupBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constuctor. */
@@ -195,7 +195,7 @@ private:
*/
class KMFilterActionWidget : public TQHBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constructor. Creates a filter action widget with no type
@@ -229,7 +229,7 @@ private:
class KMPopFilterActionWidget : public TQVButtonGroup
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMPopFilterActionWidget( const TQString &title, TQWidget* parent=0, const char* name=0 );
@@ -254,7 +254,7 @@ signals: // Signals
class KMFilterActionWidgetLister : public KWidgetLister
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMFilterActionWidgetLister( TQWidget *parent=0, const char* name=0 );
@@ -338,7 +338,7 @@ private:
class KMFilterDlg: public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Create the filter dialog. The only class which should be able to
diff --git a/kmail/kmfiltermgr.cpp b/kmail/kmfiltermgr.cpp
index e91a44a6..f98a78dd 100644
--- a/kmail/kmfiltermgr.cpp
+++ b/kmail/kmfiltermgr.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmfiltermgr.cpp
// my header
@@ -42,8 +41,8 @@ KMFilterMgr::KMFilterMgr( bool popFilter )
mBufferedFolderTarget( true ),
mRefCount( 0 )
{
- connect( kmkernel, TQT_SIGNAL( folderRemoved( KMFolder* ) ),
- this, TQT_SLOT( slotFolderRemoved( KMFolder* ) ) );
+ connect( kmkernel, TQ_SIGNAL( folderRemoved( KMFolder* ) ),
+ this, TQ_SLOT( slotFolderRemoved( KMFolder* ) ) );
}
diff --git a/kmail/kmfiltermgr.h b/kmail/kmfiltermgr.h
index 45e77863..70288a3a 100644
--- a/kmail/kmfiltermgr.h
+++ b/kmail/kmfiltermgr.h
@@ -33,7 +33,7 @@ template <typename T> class TQValueList;
class KMFilterMgr: public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmfolder.cpp b/kmail/kmfolder.cpp
index 45738939..4bcd4992 100644
--- a/kmail/kmfolder.cpp
+++ b/kmail/kmfolder.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* Copyright (c) 1996-1998 Stefan Taferner <taferner@kde.org>
*
@@ -87,53 +87,53 @@ KMFolder::KMFolder( KMFolderDir* aParent, const TQString& aFolderName,
}
if ( aParent ) {
- connect( mStorage, TQT_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ),
- aParent->manager(), TQT_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ) );
- connect( mStorage, TQT_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ),
- parent()->manager(), TQT_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ) );
- connect( this, TQT_SIGNAL( msgChanged( KMFolder*, TQ_UINT32, int ) ),
- parent()->manager(), TQT_SIGNAL( msgChanged( KMFolder*, TQ_UINT32, int ) ) );
- connect( this, TQT_SIGNAL( msgHeaderChanged( KMFolder*, int ) ),
- parent()->manager(), TQT_SIGNAL( msgHeaderChanged( KMFolder*, int ) ) );
- connect( mStorage, TQT_SIGNAL( invalidated( KMFolder* ) ),
- parent()->manager(), TQT_SIGNAL( folderInvalidated( KMFolder* ) ) );
+ connect( mStorage, TQ_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ),
+ aParent->manager(), TQ_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ) );
+ connect( mStorage, TQ_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ),
+ parent()->manager(), TQ_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ) );
+ connect( this, TQ_SIGNAL( msgChanged( KMFolder*, TQ_UINT32, int ) ),
+ parent()->manager(), TQ_SIGNAL( msgChanged( KMFolder*, TQ_UINT32, int ) ) );
+ connect( this, TQ_SIGNAL( msgHeaderChanged( KMFolder*, int ) ),
+ parent()->manager(), TQ_SIGNAL( msgHeaderChanged( KMFolder*, int ) ) );
+ connect( mStorage, TQ_SIGNAL( invalidated( KMFolder* ) ),
+ parent()->manager(), TQ_SIGNAL( folderInvalidated( KMFolder* ) ) );
}
// Resend all mStorage signals
- connect( mStorage, TQT_SIGNAL( changed() ), TQT_SIGNAL( changed() ) );
- connect( mStorage, TQT_SIGNAL( cleared() ), TQT_SIGNAL( cleared() ) );
- connect( mStorage, TQT_SIGNAL( expunged( KMFolder* ) ),
- TQT_SIGNAL( expunged( KMFolder* ) ) );
- connect( mStorage, TQT_SIGNAL( nameChanged() ), TQT_SIGNAL( nameChanged() ) );
- connect( mStorage, TQT_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ),
- TQT_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ) );
- connect( mStorage, TQT_SIGNAL( msgRemoved( int, TQString ) ),
- TQT_SIGNAL( msgRemoved( int, TQString ) ) );
- connect( mStorage, TQT_SIGNAL( msgRemoved( KMFolder* ) ),
- TQT_SIGNAL( msgRemoved( KMFolder* ) ) );
- connect( mStorage, TQT_SIGNAL( msgAdded( int ) ), TQT_SIGNAL( msgAdded( int ) ) );
- connect( mStorage, TQT_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ),
- TQT_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ) );
- connect( mStorage, TQT_SIGNAL( msgChanged( KMFolder*, TQ_UINT32 , int ) ),
- TQT_SIGNAL( msgChanged( KMFolder*, TQ_UINT32 , int ) ) );
- connect( mStorage, TQT_SIGNAL( msgHeaderChanged( KMFolder*, int ) ),
- TQT_SIGNAL( msgHeaderChanged( KMFolder*, int ) ) );
- connect( mStorage, TQT_SIGNAL( statusMsg( const TQString& ) ),
- TQT_SIGNAL( statusMsg( const TQString& ) ) );
- connect( mStorage, TQT_SIGNAL( numUnreadMsgsChanged( KMFolder* ) ),
- TQT_SIGNAL( numUnreadMsgsChanged( KMFolder* ) ) );
- connect( mStorage, TQT_SIGNAL( removed( KMFolder*, bool ) ),
- TQT_SIGNAL( removed( KMFolder*, bool ) ) );
- connect( mStorage, TQT_SIGNAL(noContentChanged()),
- TQT_SIGNAL(noContentChanged()) );
- connect( mStorage, TQT_SIGNAL(syncStateChanged()),
- TQT_SIGNAL(syncStateChanged()) );
-
- connect( mStorage, TQT_SIGNAL( contentsTypeChanged( KMail::FolderContentsType ) ),
- this, TQT_SLOT( slotContentsTypeChanged( KMail::FolderContentsType ) ) );
-
- connect( mStorage, TQT_SIGNAL( folderSizeChanged() ),
- this, TQT_SLOT( slotFolderSizeChanged() ) );
+ connect( mStorage, TQ_SIGNAL( changed() ), TQ_SIGNAL( changed() ) );
+ connect( mStorage, TQ_SIGNAL( cleared() ), TQ_SIGNAL( cleared() ) );
+ connect( mStorage, TQ_SIGNAL( expunged( KMFolder* ) ),
+ TQ_SIGNAL( expunged( KMFolder* ) ) );
+ connect( mStorage, TQ_SIGNAL( nameChanged() ), TQ_SIGNAL( nameChanged() ) );
+ connect( mStorage, TQ_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ),
+ TQ_SIGNAL( msgRemoved( KMFolder*, TQ_UINT32 ) ) );
+ connect( mStorage, TQ_SIGNAL( msgRemoved( int, TQString ) ),
+ TQ_SIGNAL( msgRemoved( int, TQString ) ) );
+ connect( mStorage, TQ_SIGNAL( msgRemoved( KMFolder* ) ),
+ TQ_SIGNAL( msgRemoved( KMFolder* ) ) );
+ connect( mStorage, TQ_SIGNAL( msgAdded( int ) ), TQ_SIGNAL( msgAdded( int ) ) );
+ connect( mStorage, TQ_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ),
+ TQ_SIGNAL( msgAdded( KMFolder*, TQ_UINT32 ) ) );
+ connect( mStorage, TQ_SIGNAL( msgChanged( KMFolder*, TQ_UINT32 , int ) ),
+ TQ_SIGNAL( msgChanged( KMFolder*, TQ_UINT32 , int ) ) );
+ connect( mStorage, TQ_SIGNAL( msgHeaderChanged( KMFolder*, int ) ),
+ TQ_SIGNAL( msgHeaderChanged( KMFolder*, int ) ) );
+ connect( mStorage, TQ_SIGNAL( statusMsg( const TQString& ) ),
+ TQ_SIGNAL( statusMsg( const TQString& ) ) );
+ connect( mStorage, TQ_SIGNAL( numUnreadMsgsChanged( KMFolder* ) ),
+ TQ_SIGNAL( numUnreadMsgsChanged( KMFolder* ) ) );
+ connect( mStorage, TQ_SIGNAL( removed( KMFolder*, bool ) ),
+ TQ_SIGNAL( removed( KMFolder*, bool ) ) );
+ connect( mStorage, TQ_SIGNAL(noContentChanged()),
+ TQ_SIGNAL(noContentChanged()) );
+ connect( mStorage, TQ_SIGNAL(syncStateChanged()),
+ TQ_SIGNAL(syncStateChanged()) );
+
+ connect( mStorage, TQ_SIGNAL( contentsTypeChanged( KMail::FolderContentsType ) ),
+ this, TQ_SLOT( slotContentsTypeChanged( KMail::FolderContentsType ) ) );
+
+ connect( mStorage, TQ_SIGNAL( folderSizeChanged() ),
+ this, TQ_SLOT( slotFolderSizeChanged() ) );
//FIXME: Centralize all the readConfig calls somehow - Zack
// Meanwhile, readConfig must be done before registerWithMessageDict, since
diff --git a/kmail/kmfolder.h b/kmail/kmfolder.h
index dd04d9f2..d6160880 100644
--- a/kmail/kmfolder.h
+++ b/kmail/kmfolder.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++ -*-
+/*
* kmail: KDE mail client
* Copyright (c) 1996-1998 Stefan Taferner <taferner@kde.org>
*
@@ -67,7 +67,7 @@ typedef TQValueList<TQ_UINT32> SerNumList;
class KMFolder: public KMFolderNode
{
- Q_OBJECT
+ TQ_OBJECT
friend class ::KMFolderJob;
public:
diff --git a/kmail/kmfoldercachedimap.cpp b/kmail/kmfoldercachedimap.cpp
index dcfcbe7f..3b7bcc0a 100644
--- a/kmail/kmfoldercachedimap.cpp
+++ b/kmail/kmfoldercachedimap.cpp
@@ -153,10 +153,10 @@ DImapTroubleShootDialog::DImapTroubleShootDialog( TQWidget* parent,
enableButtonSeparator( true );
- connect ( mIndexButton, TQT_SIGNAL(toggled(bool)), mIndexScope, TQT_SLOT(setEnabled(bool)) );
- connect ( mIndexButton, TQT_SIGNAL(toggled(bool)), scopeLabel, TQT_SLOT(setEnabled(bool)) );
- connect( mButtonGroup, TQT_SIGNAL( clicked( int ) ), TQT_SLOT( slotChanged() ) );
- connect( this, TQT_SIGNAL( okClicked () ), this, TQT_SLOT( slotDone() ) );
+ connect ( mIndexButton, TQ_SIGNAL(toggled(bool)), mIndexScope, TQ_SLOT(setEnabled(bool)) );
+ connect ( mIndexButton, TQ_SIGNAL(toggled(bool)), scopeLabel, TQ_SLOT(setEnabled(bool)) );
+ connect( mButtonGroup, TQ_SIGNAL( clicked( int ) ), TQ_SLOT( slotChanged() ) );
+ connect( this, TQ_SIGNAL( okClicked () ), this, TQ_SLOT( slotDone() ) );
enableButtonOK( false );
}
@@ -908,8 +908,8 @@ void KMFolderCachedImap::serverSyncInternal()
// kdDebug(5006) << "makeConnection said Connecting, waiting for signal." << endl;
newState( mProgress, i18n("Connecting to %1").arg( mAccount->host() ) );
// We'll wait for the connectionResult signal from the account.
- connect( mAccount, TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( slotConnectionResult(int, const TQString&) ) );
+ connect( mAccount, TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( slotConnectionResult(int, const TQString&) ) );
break;
} else {
// Connected
@@ -932,8 +932,8 @@ void KMFolderCachedImap::serverSyncInternal()
// Check the user's own rights. We do this every time in case they changed.
mOldUserRights = mUserRights;
newState( mProgress, i18n("Checking permissions"));
- connect( mAccount, TQT_SIGNAL( receivedUserRights( KMFolder* ) ),
- this, TQT_SLOT( slotReceivedUserRights( KMFolder* ) ) );
+ connect( mAccount, TQ_SIGNAL( receivedUserRights( KMFolder* ) ),
+ this, TQ_SLOT( slotReceivedUserRights( KMFolder* ) ) );
mAccount->getUserRights( folder(), imapPath() ); // after connecting, due to the INBOX case
break;
}
@@ -955,8 +955,8 @@ void KMFolderCachedImap::serverSyncInternal()
if ( !newName.isEmpty() && !folder()->isSystemFolder() && !isResourceFolder ) {
newState( mProgress, i18n("Renaming folder") );
CachedImapJob *job = new CachedImapJob( newName, CachedImapJob::tRenameFolder, this );
- connect( job, TQT_SIGNAL( result(KMail::FolderJob *) ), this, TQT_SLOT( slotIncreaseProgress() ) );
- connect( job, TQT_SIGNAL( finished() ), this, TQT_SLOT( slotRenameFolderFinished() ) );
+ connect( job, TQ_SIGNAL( result(KMail::FolderJob *) ), this, TQ_SLOT( slotIncreaseProgress() ) );
+ connect( job, TQ_SIGNAL( finished() ), this, TQ_SLOT( slotRenameFolderFinished() ) );
job->start();
break;
}
@@ -1043,8 +1043,8 @@ void KMFolderCachedImap::serverSyncInternal()
newState( mProgress, i18n("Deleting folders from server"));
CachedImapJob* job = new CachedImapJob( foldersForDeletionOnServer,
CachedImapJob::tDeleteFolders, this );
- connect( job, TQT_SIGNAL( result(KMail::FolderJob *) ), this, TQT_SLOT( slotIncreaseProgress() ) );
- connect( job, TQT_SIGNAL( finished() ), this, TQT_SLOT( slotFolderDeletionOnServerFinished() ) );
+ connect( job, TQ_SIGNAL( result(KMail::FolderJob *) ), this, TQ_SLOT( slotIncreaseProgress() ) );
+ connect( job, TQ_SIGNAL( finished() ), this, TQ_SLOT( slotFolderDeletionOnServerFinished() ) );
job->start();
break;
}
@@ -1082,8 +1082,8 @@ void KMFolderCachedImap::serverSyncInternal()
newState( mProgress, i18n("Expunging deleted messages"));
CachedImapJob *job = new CachedImapJob( TQString(),
CachedImapJob::tExpungeFolder, this );
- connect( job, TQT_SIGNAL( result(KMail::FolderJob *) ), this, TQT_SLOT( slotIncreaseProgress() ) );
- connect( job, TQT_SIGNAL( finished() ), this, TQT_SLOT( serverSyncInternal() ) );
+ connect( job, TQ_SIGNAL( result(KMail::FolderJob *) ), this, TQ_SLOT( slotIncreaseProgress() ) );
+ connect( job, TQ_SIGNAL( finished() ), this, TQ_SLOT( serverSyncInternal() ) );
job->start();
break;
}
@@ -1097,10 +1097,10 @@ void KMFolderCachedImap::serverSyncInternal()
CachedImapJob *job = new CachedImapJob( mMsgsForDownload,
CachedImapJob::tGetMessage,
this );
- connect( job, TQT_SIGNAL( progress(unsigned long, unsigned long) ),
- this, TQT_SLOT( slotProgress(unsigned long, unsigned long) ) );
- connect( job, TQT_SIGNAL( finished() ), this, TQT_SLOT( slotUpdateLastUid() ) );
- connect( job, TQT_SIGNAL( finished() ), this, TQT_SLOT( serverSyncInternal() ) );
+ connect( job, TQ_SIGNAL( progress(unsigned long, unsigned long) ),
+ this, TQ_SLOT( slotProgress(unsigned long, unsigned long) ) );
+ connect( job, TQ_SIGNAL( finished() ), this, TQ_SLOT( slotUpdateLastUid() ) );
+ connect( job, TQ_SIGNAL( finished() ), this, TQ_SLOT( serverSyncInternal() ) );
job->start();
mMsgsForDownload.clear();
break;
@@ -1153,8 +1153,8 @@ void KMFolderCachedImap::serverSyncInternal()
ImapAccountBase::jobData jd( url.url(), folder() );
jd.cancellable = true; // we can always do so later
mAccount->insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotTestAnnotationResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotTestAnnotationResult(TDEIO::Job *)));
break;
}
@@ -1197,10 +1197,10 @@ void KMFolderCachedImap::serverSyncInternal()
jd.cancellable = true;
mAccount->insertJob(job, jd);
- connect( job, TQT_SIGNAL(annotationResult(const TQString&, const TQString&, bool)),
- TQT_SLOT(slotAnnotationResult(const TQString&, const TQString&, bool)) );
- connect( job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotGetAnnotationResult(TDEIO::Job *)) );
+ connect( job, TQ_SIGNAL(annotationResult(const TQString&, const TQString&, bool)),
+ TQ_SLOT(slotAnnotationResult(const TQString&, const TQString&, bool)) );
+ connect( job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotGetAnnotationResult(TDEIO::Job *)) );
break;
}
}
@@ -1238,10 +1238,10 @@ void KMFolderCachedImap::serverSyncInternal()
jd.cancellable = true; // we can always do so later
mAccount->insertJob(job, jd);
- connect(job, TQT_SIGNAL(annotationChanged( const TQString&, const TQString&, const TQString& ) ),
- TQT_SLOT( slotAnnotationChanged( const TQString&, const TQString&, const TQString& ) ));
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotSetAnnotationResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(annotationChanged( const TQString&, const TQString&, const TQString& ) ),
+ TQ_SLOT( slotAnnotationChanged( const TQString&, const TQString&, const TQString& ) ));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotSetAnnotationResult(TDEIO::Job *)));
break;
}
}
@@ -1264,10 +1264,10 @@ void KMFolderCachedImap::serverSyncInternal()
ImapAccountBase::jobData jd( url.url(), folder() );
mAccount->insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotMultiSetACLResult(TDEIO::Job *)));
- connect(job, TQT_SIGNAL(aclChanged( const TQString&, int )),
- TQT_SLOT(slotACLChanged( const TQString&, int )) );
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotMultiSetACLResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(aclChanged( const TQString&, int )),
+ TQ_SLOT(slotACLChanged( const TQString&, int )) );
break;
}
}
@@ -1278,8 +1278,8 @@ void KMFolderCachedImap::serverSyncInternal()
if( !mQuotaOnly && !noContent() && mAccount->hasACLSupport() ) {
newState( mProgress, i18n( "Retrieving permissions" ) );
mAccount->getACL( folder(), mImapPath );
- connect( mAccount, TQT_SIGNAL(receivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )),
- this, TQT_SLOT(slotReceivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )) );
+ connect( mAccount, TQ_SIGNAL(receivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )),
+ this, TQ_SLOT(slotReceivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )) );
break;
}
case SYNC_STATE_FIND_SUBFOLDERS:
@@ -1309,10 +1309,10 @@ void KMFolderCachedImap::serverSyncInternal()
TDEIO::Job* job = KMail::QuotaJobs::getStorageQuota( mAccount->slave(), url );
ImapAccountBase::jobData jd( url.url(), folder() );
mAccount->insertJob(job, jd);
- connect( job, TQT_SIGNAL( storageQuotaResult( const QuotaInfo& ) ),
- TQT_SLOT( slotStorageQuotaResult( const QuotaInfo& ) ) );
- connect( job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotQuotaResult(TDEIO::Job *)) );
+ connect( job, TQ_SIGNAL( storageQuotaResult( const QuotaInfo& ) ),
+ TQ_SLOT( slotStorageQuotaResult( const QuotaInfo& ) ) );
+ connect( job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotQuotaResult(TDEIO::Job *)) );
break;
}
case SYNC_STATE_CLOSE:
@@ -1365,10 +1365,10 @@ void KMFolderCachedImap::syncNextSubFolder( bool secondSync )
mCurrentSubfolder = mSubfoldersForSync.front();
mSubfoldersForSync.pop_front();
if ( mCurrentSubfolder ) {
- connect( mCurrentSubfolder, TQT_SIGNAL( folderComplete(KMFolderCachedImap*, bool) ),
- this, TQT_SLOT( slotSubFolderComplete(KMFolderCachedImap*, bool) ) );
- connect( mCurrentSubfolder, TQT_SIGNAL( closeToQuotaChanged() ),
- this, TQT_SLOT( slotSubFolderCloseToQuotaChanged() ) );
+ connect( mCurrentSubfolder, TQ_SIGNAL( folderComplete(KMFolderCachedImap*, bool) ),
+ this, TQ_SLOT( slotSubFolderComplete(KMFolderCachedImap*, bool) ) );
+ connect( mCurrentSubfolder, TQ_SIGNAL( closeToQuotaChanged() ),
+ this, TQ_SLOT( slotSubFolderCloseToQuotaChanged() ) );
//kdDebug(5006) << "Sync'ing subfolder " << mCurrentSubfolder->imapPath() << endl;
assert( !mCurrentSubfolder->imapPath().isEmpty() );
@@ -1416,10 +1416,10 @@ void KMFolderCachedImap::buildSubFolderList()
void KMFolderCachedImap::disconnectSubFolderSignals()
{
- disconnect( mCurrentSubfolder, TQT_SIGNAL( folderComplete(KMFolderCachedImap*, bool) ),
- this, TQT_SLOT( slotSubFolderComplete(KMFolderCachedImap*, bool) ) );
- disconnect( mCurrentSubfolder, TQT_SIGNAL( closeToQuotaChanged() ),
- this, TQT_SLOT( slotSubFolderCloseToQuotaChanged() ) );
+ disconnect( mCurrentSubfolder, TQ_SIGNAL( folderComplete(KMFolderCachedImap*, bool) ),
+ this, TQ_SLOT( slotSubFolderComplete(KMFolderCachedImap*, bool) ) );
+ disconnect( mCurrentSubfolder, TQ_SIGNAL( closeToQuotaChanged() ),
+ this, TQ_SLOT( slotSubFolderCloseToQuotaChanged() ) );
mCurrentSubfolder = 0;
}
@@ -1428,8 +1428,8 @@ void KMFolderCachedImap::disconnectSubFolderSignals()
*/
void KMFolderCachedImap::slotConnectionResult( int errorCode, const TQString& errorMsg )
{
- disconnect( mAccount, TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( slotConnectionResult(int, const TQString&) ) );
+ disconnect( mAccount, TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( slotConnectionResult(int, const TQString&) ) );
if ( !errorCode ) {
// Success
mSyncState = SYNC_STATE_GET_USERRIGHTS;
@@ -1463,15 +1463,15 @@ void KMFolderCachedImap::uploadNewMessages()
if ( mUserRightsState != KMail::ACLJobs::Ok || ( mUserRights & ( KMail::ACLJobs::Insert ) ) ) {
newState( mProgress, i18n("Uploading messages to server"));
CachedImapJob *job = new CachedImapJob( newMsgs, CachedImapJob::tPutMessage, this );
- connect( job, TQT_SIGNAL( progress( unsigned long, unsigned long) ),
- this, TQT_SLOT( slotPutProgress(unsigned long, unsigned long) ) );
- connect( job, TQT_SIGNAL( finished() ), this, TQT_SLOT( serverSyncInternal() ) );
+ connect( job, TQ_SIGNAL( progress( unsigned long, unsigned long) ),
+ this, TQ_SLOT( slotPutProgress(unsigned long, unsigned long) ) );
+ connect( job, TQ_SIGNAL( finished() ), this, TQ_SLOT( serverSyncInternal() ) );
job->start();
return;
} else {
KMCommand *command = rescueUnsyncedMessages();
- connect( command, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( serverSyncInternal() ) );
+ connect( command, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( serverSyncInternal() ) );
}
} else { // nothing to upload
if ( mUserRights != mOldUserRights && (mOldUserRights & KMail::ACLJobs::Insert)
@@ -1537,8 +1537,8 @@ void KMFolderCachedImap::uploadFlags()
// FIXME END DUPLICATED FROM KMFOLDERIMAP
if ( mStatusFlagsJobs ) {
- connect( mAccount, TQT_SIGNAL( imapStatusChanged(KMFolder*, const TQString&, bool) ),
- this, TQT_SLOT( slotImapStatusChanged(KMFolder*, const TQString&, bool) ) );
+ connect( mAccount, TQ_SIGNAL( imapStatusChanged(KMFolder*, const TQString&, bool) ),
+ this, TQ_SLOT( slotImapStatusChanged(KMFolder*, const TQString&, bool) ) );
return;
}
}
@@ -1588,8 +1588,8 @@ void KMFolderCachedImap::uploadSeenFlags()
}
if ( mStatusFlagsJobs ) {
- connect( mAccount, TQT_SIGNAL( imapStatusChanged(KMFolder*, const TQString&, bool) ),
- this, TQT_SLOT( slotImapStatusChanged(KMFolder*, const TQString&, bool) ) );
+ connect( mAccount, TQ_SIGNAL( imapStatusChanged(KMFolder*, const TQString&, bool) ),
+ this, TQ_SLOT( slotImapStatusChanged(KMFolder*, const TQString&, bool) ) );
return;
}
}
@@ -1607,8 +1607,8 @@ void KMFolderCachedImap::slotImapStatusChanged(KMFolder* folder, const TQString&
if ( folder->storage() == this ) {
--mStatusFlagsJobs;
if ( mStatusFlagsJobs == 0 || !cont ) // done or aborting
- disconnect( mAccount, TQT_SIGNAL( imapStatusChanged(KMFolder*, const TQString&, bool) ),
- this, TQT_SLOT( slotImapStatusChanged(KMFolder*, const TQString&, bool) ) );
+ disconnect( mAccount, TQ_SIGNAL( imapStatusChanged(KMFolder*, const TQString&, bool) ),
+ this, TQ_SLOT( slotImapStatusChanged(KMFolder*, const TQString&, bool) ) );
if ( mStatusFlagsJobs == 0 && cont ) {
mProgress += 5;
serverSyncInternal();
@@ -1646,8 +1646,8 @@ void KMFolderCachedImap::createNewFolders()
if( !newFolders.isEmpty() ) {
newState( mProgress, i18n("Creating subfolders on server"));
CachedImapJob *job = new CachedImapJob( newFolders, CachedImapJob::tAddSubfolders, this );
- connect( job, TQT_SIGNAL( result(KMail::FolderJob *) ), this, TQT_SLOT( slotIncreaseProgress() ) );
- connect( job, TQT_SIGNAL( finished() ), this, TQT_SLOT( serverSyncInternal() ) );
+ connect( job, TQ_SIGNAL( result(KMail::FolderJob *) ), this, TQ_SLOT( slotIncreaseProgress() ) );
+ connect( job, TQ_SIGNAL( finished() ), this, TQ_SLOT( serverSyncInternal() ) );
job->start();
} else {
serverSyncInternal();
@@ -1721,8 +1721,8 @@ bool KMFolderCachedImap::deleteMessages()
uidsForDeletionOnServer.clear();
kdDebug(5006) << "Deleting " << sets.count() << " sets of messages from server folder " << imapPath() << endl;
CachedImapJob *job = new CachedImapJob( sets, CachedImapJob::tDeleteMessage, this );
- connect( job, TQT_SIGNAL( result(KMail::FolderJob *) ),
- this, TQT_SLOT( slotDeleteMessagesResult(KMail::FolderJob *) ) );
+ connect( job, TQ_SIGNAL( result(KMail::FolderJob *) ),
+ this, TQ_SLOT( slotDeleteMessagesResult(KMail::FolderJob *) ) );
job->start();
return true;
} else {
@@ -1757,9 +1757,9 @@ void KMFolderCachedImap::checkUidValidity() {
else {
newState( mProgress, i18n("Checking folder validity"));
CachedImapJob *job = new CachedImapJob( FolderJob::tCheckUidValidity, this );
- connect( job, TQT_SIGNAL(permanentFlags(int)), TQT_SLOT(slotPermanentFlags(int)) );
- connect( job, TQT_SIGNAL( result( KMail::FolderJob* ) ),
- this, TQT_SLOT( slotCheckUidValidityResult( KMail::FolderJob* ) ) );
+ connect( job, TQ_SIGNAL(permanentFlags(int)), TQ_SLOT(slotPermanentFlags(int)) );
+ connect( job, TQ_SIGNAL( result( KMail::FolderJob* ) ),
+ this, TQ_SLOT( slotCheckUidValidityResult( KMail::FolderJob* ) ) );
job->start();
}
}
@@ -1808,8 +1808,8 @@ void KMFolderCachedImap::listMessages() {
mFoundAnIMAPDigest = false;
CachedImapJob* job = new CachedImapJob( FolderJob::tListMessages, this );
- connect( job, TQT_SIGNAL( result(KMail::FolderJob *) ),
- this, TQT_SLOT( slotGetLastMessagesResult(KMail::FolderJob *) ) );
+ connect( job, TQ_SIGNAL( result(KMail::FolderJob *) ),
+ this, TQ_SLOT( slotGetLastMessagesResult(KMail::FolderJob *) ) );
job->start();
}
@@ -2038,9 +2038,9 @@ void KMFolderCachedImap::listNamespaces()
}
KMail::ListJob* job = new KMail::ListJob( mAccount, type, this, mAccount->addPathToNamespace( *it ) );
job->setHonorLocalSubscription( true );
- connect( job, TQT_SIGNAL(receivedFolders(const TQStringList&, const TQStringList&,
+ connect( job, TQ_SIGNAL(receivedFolders(const TQStringList&, const TQStringList&,
const TQStringList&, const TQStringList&, const ImapAccountBase::jobData&)),
- this, TQT_SLOT(slotCheckNamespace(const TQStringList&, const TQStringList&,
+ this, TQ_SLOT(slotCheckNamespace(const TQStringList&, const TQStringList&,
const TQStringList&, const TQStringList&, const ImapAccountBase::jobData&)));
job->start();
}
@@ -2060,9 +2060,9 @@ void KMFolderCachedImap::listNamespaces()
mAccount->addPathToNamespace( ns ) );
job->setNamespace( ns );
job->setHonorLocalSubscription( true );
- connect( job, TQT_SIGNAL(receivedFolders(const TQStringList&, const TQStringList&,
+ connect( job, TQ_SIGNAL(receivedFolders(const TQStringList&, const TQStringList&,
const TQStringList&, const TQStringList&, const ImapAccountBase::jobData&)),
- this, TQT_SLOT(slotListResult(const TQStringList&, const TQStringList&,
+ this, TQ_SLOT(slotListResult(const TQStringList&, const TQStringList&,
const TQStringList&, const TQStringList&, const ImapAccountBase::jobData&)));
job->start();
}
@@ -2148,9 +2148,9 @@ bool KMFolderCachedImap::listDirectory()
type = ImapAccountBase::ListSubscribed;
KMail::ListJob* job = new KMail::ListJob( mAccount, type, this );
job->setHonorLocalSubscription( true );
- connect( job, TQT_SIGNAL(receivedFolders(const TQStringList&, const TQStringList&,
+ connect( job, TQ_SIGNAL(receivedFolders(const TQStringList&, const TQStringList&,
const TQStringList&, const TQStringList&, const ImapAccountBase::jobData&)),
- this, TQT_SLOT(slotListResult(const TQStringList&, const TQStringList&,
+ this, TQ_SLOT(slotListResult(const TQStringList&, const TQStringList&,
const TQStringList&, const TQStringList&, const ImapAccountBase::jobData&)));
job->start();
@@ -2347,8 +2347,8 @@ void KMFolderCachedImap::listDirectory2()
ImapAccountBase::jobData jd( TQString(), folder() );
jd.cancellable = true;
mAccount->insertJob(job, jd);
- connect( job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotMultiUrlGetAnnotationResult(TDEIO::Job *)) );
+ connect( job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotMultiUrlGetAnnotationResult(TDEIO::Job *)) );
} else {
createFoldersNewOnServerAndFinishListing( foldersNewOnServer );
@@ -2493,8 +2493,8 @@ void
KMFolderCachedImap::slotReceivedUserRights( KMFolder* folder )
{
if ( folder->storage() == this ) {
- disconnect( mAccount, TQT_SIGNAL( receivedUserRights( KMFolder* ) ),
- this, TQT_SLOT( slotReceivedUserRights( KMFolder* ) ) );
+ disconnect( mAccount, TQ_SIGNAL( receivedUserRights( KMFolder* ) ),
+ this, TQ_SLOT( slotReceivedUserRights( KMFolder* ) ) );
if ( mUserRightsState == KMail::ACLJobs::Ok ) {
setReadOnly( ( mUserRights & KMail::ACLJobs::Insert ) == 0 );
}
@@ -2516,8 +2516,8 @@ void
KMFolderCachedImap::slotReceivedACL( KMFolder* folder, TDEIO::Job* job, const KMail::ACLList& aclList )
{
if ( folder->storage() == this ) {
- disconnect( mAccount, TQT_SIGNAL(receivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )),
- this, TQT_SLOT(slotReceivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )) );
+ disconnect( mAccount, TQ_SIGNAL(receivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )),
+ this, TQ_SLOT(slotReceivedACL( KMFolder*, TDEIO::Job*, const KMail::ACLList& )) );
mACLListState = job->error() ? KMail::ACLJobs::FetchFailed : KMail::ACLJobs::Ok;
mACLList = aclList;
serverSyncInternal();
@@ -3166,8 +3166,8 @@ void KMFolderCachedImap::rescueUnsyncedMessagesAndDeleteFolder( KMFolder *folder
if ( storage ) {
KMCommand *command = storage->rescueUnsyncedMessages();
if ( command ) {
- connect( command, TQT_SIGNAL(completed(KMCommand*)),
- TQT_SLOT(slotRescueDone(KMCommand*)) );
+ connect( command, TQ_SIGNAL(completed(KMCommand*)),
+ TQ_SLOT(slotRescueDone(KMCommand*)) );
++mRescueCommandCount;
} else {
// nothing to rescue, close folder
diff --git a/kmail/kmfoldercachedimap.h b/kmail/kmfoldercachedimap.h
index e82da6c3..1e2af26e 100644
--- a/kmail/kmfoldercachedimap.h
+++ b/kmail/kmfoldercachedimap.h
@@ -65,7 +65,7 @@ using KMail::AttachmentStrategy;
class DImapTroubleShootDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
enum SelectedOperation {
@@ -92,7 +92,7 @@ private:
class KMFolderCachedImap : public KMFolderMaildir
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmfoldercombobox.cpp b/kmail/kmfoldercombobox.cpp
index 499d444f..4b722c75 100644
--- a/kmail/kmfoldercombobox.cpp
+++ b/kmail/kmfoldercombobox.cpp
@@ -32,15 +32,15 @@ void KMFolderComboBox::init()
mOutboxShown = true;
mImapShown = true;
refreshFolders();
- connect( this, TQT_SIGNAL( activated(int) ),
- this, TQT_SLOT( slotActivated(int) ) );
- connect( kmkernel->folderMgr(), TQT_SIGNAL(changed()),
- this, TQT_SLOT(refreshFolders()) );
- connect( kmkernel->dimapFolderMgr(), TQT_SIGNAL(changed()),
- this, TQT_SLOT(refreshFolders()) );
+ connect( this, TQ_SIGNAL( activated(int) ),
+ this, TQ_SLOT( slotActivated(int) ) );
+ connect( kmkernel->folderMgr(), TQ_SIGNAL(changed()),
+ this, TQ_SLOT(refreshFolders()) );
+ connect( kmkernel->dimapFolderMgr(), TQ_SIGNAL(changed()),
+ this, TQ_SLOT(refreshFolders()) );
if (mImapShown)
- connect( kmkernel->imapFolderMgr(), TQT_SIGNAL(changed()),
- this, TQT_SLOT(refreshFolders()) );
+ connect( kmkernel->imapFolderMgr(), TQ_SIGNAL(changed()),
+ this, TQ_SLOT(refreshFolders()) );
}
@@ -59,11 +59,11 @@ void KMFolderComboBox::showImapFolders(bool shown)
mImapShown = shown;
refreshFolders();
if (shown)
- connect( kmkernel->imapFolderMgr(), TQT_SIGNAL(changed()),
- this, TQT_SLOT(refreshFolders()) );
+ connect( kmkernel->imapFolderMgr(), TQ_SIGNAL(changed()),
+ this, TQ_SLOT(refreshFolders()) );
else
- disconnect( kmkernel->imapFolderMgr(), TQT_SIGNAL(changed()),
- this, TQT_SLOT(refreshFolders()) );
+ disconnect( kmkernel->imapFolderMgr(), TQ_SIGNAL(changed()),
+ this, TQ_SLOT(refreshFolders()) );
}
//-----------------------------------------------------------------------------
diff --git a/kmail/kmfoldercombobox.h b/kmail/kmfoldercombobox.h
index ae90497a..42461c0b 100644
--- a/kmail/kmfoldercombobox.h
+++ b/kmail/kmfoldercombobox.h
@@ -13,7 +13,7 @@
class KMFolderComboBox : public TQComboBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmfolderdia.cpp b/kmail/kmfolderdia.cpp
index 265b1ee9..0ddcc5a5 100644
--- a/kmail/kmfolderdia.cpp
+++ b/kmail/kmfolderdia.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
/**
* kmfolderdia.cpp
*
@@ -150,12 +149,12 @@ KMFolderDialog::KMFolderDialog(KMFolder *aFolder, KMFolderDir *aFolderDir,
void KMFolderDialog::addTab( FolderDiaTab* tab )
{
- connect( tab, TQT_SIGNAL( readyForAccept() ),
- this, TQT_SLOT( slotReadyForAccept() ) );
- connect( tab, TQT_SIGNAL( cancelAccept() ),
- this, TQT_SLOT( slotCancelAccept() ) );
- //connect( tab, TQT_SIGNAL(changed( bool )),
- // this, TQT_SLOT(slotChanged( bool )) );
+ connect( tab, TQ_SIGNAL( readyForAccept() ),
+ this, TQ_SLOT( slotReadyForAccept() ) );
+ connect( tab, TQ_SIGNAL( cancelAccept() ),
+ this, TQ_SLOT( slotCancelAccept() ) );
+ //connect( tab, TQ_SIGNAL(changed( bool )),
+ // this, TQ_SLOT(slotChanged( bool )) );
mTabs.append( tab );
}
@@ -344,8 +343,8 @@ KMail::FolderDiaGeneralTab::FolderDiaGeneralTab( KMFolderDialog* dlg,
}
label->setBuddy( mNameEdit );
hl->addWidget( mNameEdit );
- connect( mNameEdit, TQT_SIGNAL( textChanged( const TQString & ) ),
- this, TQT_SLOT( slotFolderNameChanged( const TQString & ) ) );
+ connect( mNameEdit, TQ_SIGNAL( textChanged( const TQString & ) ),
+ this, TQ_SLOT( slotFolderNameChanged( const TQString & ) ) );
//start icons group
@@ -389,17 +388,17 @@ KMail::FolderDiaGeneralTab::FolderDiaGeneralTab( KMFolderDialog* dlg,
ihl->addWidget( mUnreadIconButton );
ihl->addStretch( 1 );
- connect( mIconsCheckBox, TQT_SIGNAL(toggled(bool)),
- mNormalIconButton, TQT_SLOT(setEnabled(bool)) );
- connect( mIconsCheckBox, TQT_SIGNAL(toggled(bool)),
- mUnreadIconButton, TQT_SLOT(setEnabled(bool)) );
- connect( mIconsCheckBox, TQT_SIGNAL(toggled(bool)),
- mNormalIconLabel, TQT_SLOT(setEnabled(bool)) );
- connect( mIconsCheckBox, TQT_SIGNAL(toggled(bool)),
- mUnreadIconLabel, TQT_SLOT(setEnabled(bool)) );
+ connect( mIconsCheckBox, TQ_SIGNAL(toggled(bool)),
+ mNormalIconButton, TQ_SLOT(setEnabled(bool)) );
+ connect( mIconsCheckBox, TQ_SIGNAL(toggled(bool)),
+ mUnreadIconButton, TQ_SLOT(setEnabled(bool)) );
+ connect( mIconsCheckBox, TQ_SIGNAL(toggled(bool)),
+ mNormalIconLabel, TQ_SLOT(setEnabled(bool)) );
+ connect( mIconsCheckBox, TQ_SIGNAL(toggled(bool)),
+ mUnreadIconLabel, TQ_SLOT(setEnabled(bool)) );
- connect( mNormalIconButton, TQT_SIGNAL(iconChanged(TQString)),
- this, TQT_SLOT(slotChangeIcon(TQString)) );
+ connect( mNormalIconButton, TQ_SIGNAL(iconChanged(TQString)),
+ this, TQ_SLOT(slotChangeIcon(TQString)) );
//end icons group
addLine( this, topLayout);
@@ -511,8 +510,8 @@ KMail::FolderDiaGeneralTab::FolderDiaGeneralTab( KMFolderDialog* dlg,
mContentsComboBox->insertItem( i18n( "Journal" ) );
if ( mDlg->folder() )
mContentsComboBox->setCurrentItem( mDlg->folder()->storage()->contentsType() );
- connect ( mContentsComboBox, TQT_SIGNAL ( activated( int ) ),
- this, TQT_SLOT( slotFolderContentsSelectionChanged( int ) ) );
+ connect ( mContentsComboBox, TQ_SIGNAL ( activated( int ) ),
+ this, TQ_SLOT( slotFolderContentsSelectionChanged( int ) ) );
if ( mDlg->folder()->isReadOnly() || mIsResourceFolder )
mContentsComboBox->setEnabled( false );
} else {
@@ -542,8 +541,8 @@ KMail::FolderDiaGeneralTab::FolderDiaGeneralTab( KMFolderDialog* dlg,
"and should see the alarms for the events or tasks in this folder. "
"The setting applies to Calendar and Task folders only "
"(for tasks, this setting is only used for alarms).\n\n"
- "Example use cases: if the boss shares a folder with his secretary, "
- "only the boss should be marked as busy for his meetings, so he should "
+ "Example use cases: if the boss shares a folder with their secretary, "
+ "only the boss should be marked as busy for their meetings, so they should "
"select \"Admins\", since the secretary has no admin rights on the folder.\n"
"On the other hand if a working group shares a Calendar for "
"group meetings, all readers of the folders should be marked "
@@ -817,18 +816,18 @@ KMail::FolderDiaTemplatesTab::FolderDiaTemplatesTab( KMFolderDialog* dlg,
mCopyGlobal->setEnabled( false );
btns->addWidget( mCopyGlobal );
- connect( mCustom, TQT_SIGNAL(toggled(bool)),
- mWidget, TQT_SLOT(setEnabled(bool)) );
- connect( mCustom, TQT_SIGNAL(toggled(bool)),
- mCopyGlobal, TQT_SLOT(setEnabled(bool)) );
+ connect( mCustom, TQ_SIGNAL(toggled(bool)),
+ mWidget, TQ_SLOT(setEnabled(bool)) );
+ connect( mCustom, TQ_SIGNAL(toggled(bool)),
+ mCopyGlobal, TQ_SLOT(setEnabled(bool)) );
- connect( mCopyGlobal, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotCopyGlobal()) );
+ connect( mCopyGlobal, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotCopyGlobal()) );
initializeWithValuesFromFolder( mDlg->folder() );
- connect( mWidget, TQT_SIGNAL( changed() ),
- this, TQT_SLOT( slotEmitChanged( void ) ) );
+ connect( mWidget, TQ_SIGNAL( changed() ),
+ this, TQ_SLOT( slotEmitChanged( void ) ) );
}
void FolderDiaTemplatesTab::load()
diff --git a/kmail/kmfolderdia.h b/kmail/kmfolderdia.h
index 5f3ea967..b1f41862 100644
--- a/kmail/kmfolderdia.h
+++ b/kmail/kmfolderdia.h
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
/**
* kmfolderdia.h
*
@@ -69,7 +68,7 @@ namespace KMail {
*/
class FolderDiaTab : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
FolderDiaTab( TQWidget *parent=0, const char* name=0 )
@@ -111,7 +110,7 @@ signals:
*/
class FolderDiaGeneralTab : public FolderDiaTab
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -163,7 +162,7 @@ private:
*/
class FolderDiaTemplatesTab : public FolderDiaTab
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -198,7 +197,7 @@ private:
*/
class KMFolderDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmfolderdir.h b/kmail/kmfolderdir.h
index 7fe81689..30bd529c 100644
--- a/kmail/kmfolderdir.h
+++ b/kmail/kmfolderdir.h
@@ -14,7 +14,7 @@ class KMFolderMgr;
*/
class KMFolderDir: public KMFolderNode, public KMFolderNodeList
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -70,7 +70,7 @@ protected:
class KMFolderRootDir: public KMFolderDir
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmfolderimap.cpp b/kmail/kmfolderimap.cpp
index b0686dbb..ee573c17 100644
--- a/kmail/kmfolderimap.cpp
+++ b/kmail/kmfolderimap.cpp
@@ -82,8 +82,8 @@ KMFolderImap::KMFolderImap(KMFolder* folder, const char* aName)
mAddMessageProgressItem = 0;
mReadOnly = false;
- connect (this, TQT_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
- this, TQT_SLOT( slotCompleteMailCheckProgress()) );
+ connect (this, TQ_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
+ this, TQ_SLOT( slotCompleteMailCheckProgress()) );
}
KMFolderImap::~KMFolderImap()
@@ -249,8 +249,8 @@ void KMFolderImap::remove()
false,
account()->useSSL() || account()->useTLS() );
account()->insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- this, TQT_SLOT(slotRemoveFolderResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ this, TQ_SLOT(slotRemoveFolderResult(TDEIO::Job *)));
}
//-----------------------------------------------------------------------------
@@ -417,10 +417,10 @@ int KMFolderImap::addMsg(TQPtrList<KMMessage>& msgList, TQValueList<int>& aIndex
msg = msgParent->getMsg(idx);
}
imapJob = new ImapJob(msg, ImapJob::tPutMessage, this);
- connect(imapJob, TQT_SIGNAL(messageStored(KMMessage*)),
- TQT_SLOT(addMsgQuiet(KMMessage*)));
- connect(imapJob, TQT_SIGNAL(result(KMail::FolderJob*)),
- TQT_SLOT(slotCopyMsgResult(KMail::FolderJob*)));
+ connect(imapJob, TQ_SIGNAL(messageStored(KMMessage*)),
+ TQ_SLOT(addMsgQuiet(KMMessage*)));
+ connect(imapJob, TQ_SIGNAL(result(KMail::FolderJob*)),
+ TQ_SLOT(slotCopyMsgResult(KMail::FolderJob*)));
imapJob->start();
}
@@ -439,10 +439,10 @@ int KMFolderImap::addMsg(TQPtrList<KMMessage>& msgList, TQValueList<int>& aIndex
TQPtrList<KMMessage> temp_msgs = splitMessageList(*it, msgList);
if ( temp_msgs.isEmpty() ) kdDebug(5006) << "Wow! KMFolderImap::splitMessageList() returned an empty list!" << endl;
imapJob = new ImapJob(temp_msgs, *it, ImapJob::tMoveMessage, this);
- connect(imapJob, TQT_SIGNAL(messageCopied(TQPtrList<KMMessage>)),
- TQT_SLOT(addMsgQuiet(TQPtrList<KMMessage>)));
- connect(imapJob, TQT_SIGNAL(result(KMail::FolderJob*)),
- TQT_SLOT(slotCopyMsgResult(KMail::FolderJob*)));
+ connect(imapJob, TQ_SIGNAL(messageCopied(TQPtrList<KMMessage>)),
+ TQ_SLOT(addMsgQuiet(TQPtrList<KMMessage>)));
+ connect(imapJob, TQ_SIGNAL(result(KMail::FolderJob*)),
+ TQ_SLOT(slotCopyMsgResult(KMail::FolderJob*)));
imapJob->start();
}
}
@@ -492,14 +492,14 @@ int KMFolderImap::addMsg(TQPtrList<KMMessage>& msgList, TQValueList<int>& aIndex
true,
account()->useSSL() || account()->useTLS() );
mAddMessageProgressItem->setTotalItems( msgList.count() );
- connect ( mAddMessageProgressItem, TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem*)),
- account(), TQT_SLOT( slotAbortRequested( KPIM::ProgressItem* ) ) );
+ connect ( mAddMessageProgressItem, TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem*)),
+ account(), TQ_SLOT( slotAbortRequested( KPIM::ProgressItem* ) ) );
imapJob->setParentProgressItem( mAddMessageProgressItem );
}
- connect( imapJob, TQT_SIGNAL( messageCopied(TQPtrList<KMMessage>) ),
- TQT_SLOT( addMsgQuiet(TQPtrList<KMMessage>) ) );
- connect( imapJob, TQT_SIGNAL(result(KMail::FolderJob*)),
- TQT_SLOT(slotCopyMsgResult(KMail::FolderJob*)) );
+ connect( imapJob, TQ_SIGNAL( messageCopied(TQPtrList<KMMessage>) ),
+ TQ_SLOT( addMsgQuiet(TQPtrList<KMMessage>) ) );
+ connect( imapJob, TQ_SIGNAL(result(KMail::FolderJob*)),
+ TQ_SLOT(slotCopyMsgResult(KMail::FolderJob*)) );
imapJob->start();
}
@@ -534,8 +534,8 @@ void KMFolderImap::copyMsg(TQPtrList<KMMessage>& msgList)
TQPtrList<KMMessage> temp_msgs = splitMessageList(*it, msgList);
ImapJob *job = new ImapJob(temp_msgs, *it, ImapJob::tCopyMessage, this);
- connect(job, TQT_SIGNAL(result(KMail::FolderJob*)),
- TQT_SLOT(slotCopyMsgResult(KMail::FolderJob*)));
+ connect(job, TQ_SIGNAL(result(KMail::FolderJob*)),
+ TQ_SLOT(slotCopyMsgResult(KMail::FolderJob*)));
job->start();
}
}
@@ -603,8 +603,8 @@ void KMFolderImap::take(TQPtrList<KMMessage> msgList)
//-----------------------------------------------------------------------------
void KMFolderImap::slotListNamespaces()
{
- disconnect( account(), TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( slotListNamespaces() ) );
+ disconnect( account(), TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( slotListNamespaces() ) );
if ( account()->makeConnection() == ImapAccountBase::Error )
{
kdWarning(5006) << "slotListNamespaces - got no connection" << endl;
@@ -613,8 +613,8 @@ void KMFolderImap::slotListNamespaces()
{
// wait for the connectionResult
kdDebug(5006) << "slotListNamespaces - waiting for connection" << endl;
- connect( account(), TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( slotListNamespaces() ) );
+ connect( account(), TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( slotListNamespaces() ) );
return;
}
kdDebug(5006) << "slotListNamespaces" << endl;
@@ -636,9 +636,9 @@ void KMFolderImap::slotListNamespaces()
account()->addPathToNamespace( *it ) );
job->setNamespace( *it );
job->setHonorLocalSubscription( true );
- connect( job, TQT_SIGNAL(receivedFolders(const TQStringList&, const TQStringList&,
+ connect( job, TQ_SIGNAL(receivedFolders(const TQStringList&, const TQStringList&,
const TQStringList&, const TQStringList&, const ImapAccountBase::jobData&)),
- this, TQT_SLOT(slotListResult(const TQStringList&, const TQStringList&,
+ this, TQ_SLOT(slotListResult(const TQStringList&, const TQStringList&,
const TQStringList&, const TQStringList&, const ImapAccountBase::jobData&)));
job->start();
}
@@ -650,9 +650,9 @@ void KMFolderImap::slotListNamespaces()
{
KMail::ListJob* job = new KMail::ListJob( account(), type, this, account()->addPathToNamespace( *it ) );
job->setHonorLocalSubscription( true );
- connect( job, TQT_SIGNAL(receivedFolders(const TQStringList&, const TQStringList&,
+ connect( job, TQ_SIGNAL(receivedFolders(const TQStringList&, const TQStringList&,
const TQStringList&, const TQStringList&, const ImapAccountBase::jobData&)),
- this, TQT_SLOT(slotCheckNamespace(const TQStringList&, const TQStringList&,
+ this, TQ_SLOT(slotCheckNamespace(const TQStringList&, const TQStringList&,
const TQStringList&, const TQStringList&, const ImapAccountBase::jobData&)));
job->start();
}
@@ -754,9 +754,9 @@ bool KMFolderImap::listDirectory()
KMail::ListJob* job = new KMail::ListJob( account(), type, this );
job->setParentProgressItem( account()->listDirProgressItem() );
job->setHonorLocalSubscription( true );
- connect( job, TQT_SIGNAL(receivedFolders(const TQStringList&, const TQStringList&,
+ connect( job, TQ_SIGNAL(receivedFolders(const TQStringList&, const TQStringList&,
const TQStringList&, const TQStringList&, const ImapAccountBase::jobData&)),
- this, TQT_SLOT(slotListResult(const TQStringList&, const TQStringList&,
+ this, TQ_SLOT(slotListResult(const TQStringList&, const TQStringList&,
const TQStringList&, const TQStringList&, const ImapAccountBase::jobData&)));
job->start();
@@ -1034,8 +1034,8 @@ void KMFolderImap::checkValidity()
kdDebug(5006) << "KMFolderImap::checkValidity of: " << imapPath() << endl;
// Start with a clean slate
- disconnect( account(), TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( checkValidity() ) );
+ disconnect( account(), TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( checkValidity() ) );
KMAcctImap::ConnectionState connectionState = account()->makeConnection();
if ( connectionState == ImapAccountBase::Error ) {
@@ -1048,8 +1048,8 @@ void KMFolderImap::checkValidity()
// We'll wait for the connectionResult signal from the account. If it
// errors, the above will catch it.
kdDebug(5006) << "CheckValidity - waiting for connection" << endl;
- connect( account(), TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( checkValidity() ) );
+ connect( account(), TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( checkValidity() ) );
return;
}
// Only check once at a time.
@@ -1079,10 +1079,10 @@ void KMFolderImap::checkValidity()
TDEIO::SimpleJob *job = TDEIO::get(url, false, false);
TDEIO::Scheduler::assignJobToSlave(account()->slave(), job);
account()->insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotCheckValidityResult(TDEIO::Job *)));
- connect(job, TQT_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
- TQT_SLOT(slotSimpleData(TDEIO::Job *, const TQByteArray &)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotCheckValidityResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
+ TQ_SLOT(slotSimpleData(TDEIO::Job *, const TQByteArray &)));
// Only check once at a time.
mCheckingValidity = true;
}
@@ -1238,10 +1238,10 @@ void KMFolderImap::reallyGetFolder(const TQString &startUid)
ImapAccountBase::jobData jd( url.url(), folder() );
jd.cancellable = true;
account()->insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- this, TQT_SLOT(slotListFolderResult(TDEIO::Job *)));
- connect(job, TQT_SIGNAL(entries(TDEIO::Job *, const TDEIO::UDSEntryList &)),
- this, TQT_SLOT(slotListFolderEntries(TDEIO::Job *,
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ this, TQ_SLOT(slotListFolderResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(entries(TDEIO::Job *, const TDEIO::UDSEntryList &)),
+ this, TQ_SLOT(slotListFolderEntries(TDEIO::Job *,
const TDEIO::UDSEntryList &)));
} else {
mContentState = imapDownloadInProgress;
@@ -1254,10 +1254,10 @@ void KMFolderImap::reallyGetFolder(const TQString &startUid)
ImapAccountBase::jobData jd( url.url(), folder() );
jd.cancellable = true;
account()->insertJob(newJob, jd);
- connect(newJob, TQT_SIGNAL(result(TDEIO::Job *)),
- this, TQT_SLOT(slotGetLastMessagesResult(TDEIO::Job *)));
- connect(newJob, TQT_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
- this, TQT_SLOT(slotGetMessagesData(TDEIO::Job *, const TQByteArray &)));
+ connect(newJob, TQ_SIGNAL(result(TDEIO::Job *)),
+ this, TQ_SLOT(slotGetLastMessagesResult(TDEIO::Job *)));
+ connect(newJob, TQ_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
+ this, TQ_SLOT(slotGetMessagesData(TDEIO::Job *, const TQByteArray &)));
}
}
@@ -1360,12 +1360,12 @@ void KMFolderImap::slotListFolderResult(TDEIO::Job * job)
jd.url = url.url();
TDEIO::Scheduler::assignJobToSlave(account()->slave(), newJob);
account()->insertJob(newJob, jd);
- connect(newJob, TQT_SIGNAL(result(TDEIO::Job *)),
+ connect(newJob, TQ_SIGNAL(result(TDEIO::Job *)),
this, (i == sets.at(sets.count() - 1))
- ? TQT_SLOT(slotGetLastMessagesResult(TDEIO::Job *))
- : TQT_SLOT(slotGetMessagesResult(TDEIO::Job *)));
- connect(newJob, TQT_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
- this, TQT_SLOT(slotGetMessagesData(TDEIO::Job *, const TQByteArray &)));
+ ? TQ_SLOT(slotGetLastMessagesResult(TDEIO::Job *))
+ : TQ_SLOT(slotGetMessagesResult(TDEIO::Job *)));
+ connect(newJob, TQ_SIGNAL(data(TDEIO::Job *, const TQByteArray &)),
+ this, TQ_SLOT(slotGetMessagesData(TDEIO::Job *, const TQByteArray &)));
}
}
@@ -1740,8 +1740,8 @@ void KMFolderImap::createFolder(const TQString &name, const TQString& parentPath
ImapAccountBase::jobData jd( url.url(), folder() );
jd.items = name;
account()->insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- this, TQT_SLOT(slotCreateFolderResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ this, TQ_SLOT(slotCreateFolderResult(TDEIO::Job *)));
}
@@ -1841,8 +1841,8 @@ void KMFolderImap::deleteMessage(KMMessage * msg)
TDEIO::Scheduler::assignJobToSlave(account()->slave(), job);
ImapAccountBase::jobData jd( url.url(), 0 );
account()->insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- account(), TQT_SLOT(slotSimpleResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ account(), TQ_SLOT(slotSimpleResult(TDEIO::Job *)));
}
void KMFolderImap::deleteMessage(const TQPtrList<KMMessage>& msgList)
@@ -1874,8 +1874,8 @@ void KMFolderImap::deleteMessage(const TQPtrList<KMMessage>& msgList)
TDEIO::Scheduler::assignJobToSlave(account()->slave(), job);
ImapAccountBase::jobData jd( url.url(), 0 );
account()->insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- account(), TQT_SLOT(slotSimpleResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ account(), TQ_SLOT(slotSimpleResult(TDEIO::Job *)));
}
}
@@ -1968,7 +1968,7 @@ void KMFolderImap::setStatus(TQValueList<int>& _ids, KMMsgStatus status, bool to
// to make sure that we get the latest flags abort the current listing and
// create a new one
kdDebug(5006) << "Set status during folder listing, restarting listing." << endl;
- disconnect(this, TQT_SLOT(slotListFolderResult(TDEIO::Job *)));
+ disconnect(this, TQ_SLOT(slotListFolderResult(TDEIO::Job *)));
quiet( false );
reallyGetFolder( TQString() );
}
@@ -2075,16 +2075,16 @@ void KMFolderImap::expungeFolder(KMFolderImap * aFolder, bool quiet)
ImapAccountBase::jobData jd( url.url(), 0 );
jd.quiet = quiet;
account()->insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- account(), TQT_SLOT(slotSimpleResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ account(), TQ_SLOT(slotSimpleResult(TDEIO::Job *)));
}
//-----------------------------------------------------------------------------
void KMFolderImap::slotProcessNewMail( int errorCode, const TQString &errorMsg )
{
Q_UNUSED( errorMsg );
- disconnect( account(), TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( slotProcessNewMail(int, const TQString&) ) );
+ disconnect( account(), TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( slotProcessNewMail(int, const TQString&) ) );
if ( !errorCode )
processNewMail( false );
else
@@ -2114,8 +2114,8 @@ bool KMFolderImap::processNewMail(bool)
{
// wait
kdDebug(5006) << "KMFolderImap::processNewMail - waiting for connection: " << label() << endl;
- connect( account(), TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( slotProcessNewMail(int, const TQString&) ) );
+ connect( account(), TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( slotProcessNewMail(int, const TQString&) ) );
return true;
}
KURL url = account()->getUrl();
@@ -2137,8 +2137,8 @@ bool KMFolderImap::processNewMail(bool)
ImapAccountBase::jobData jd(url.url(), folder() );
jd.cancellable = true;
account()->insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotStatResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotStatResult(TDEIO::Job *)));
return true;
}
@@ -2247,8 +2247,8 @@ int KMFolderImap::expungeContents()
ImapAccountBase::jobData jd( url.url(), 0 );
jd.quiet = true;
account()->insertJob(job, jd);
- connect(job, TQT_SIGNAL(result(TDEIO::Job *)),
- account(), TQT_SLOT(slotSimpleResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job *)),
+ account(), TQ_SLOT(slotSimpleResult(TDEIO::Job *)));
}
/* Is the below correct? If we are expunging (in the folder sense, not the imap sense),
why delete but not (imap-)expunge? Since the folder is not active there is no concept
@@ -2328,8 +2328,8 @@ void KMFolderImap::setAlreadyRemoved( bool removed )
void KMFolderImap::slotCreatePendingFolders( int errorCode, const TQString& errorMsg )
{
Q_UNUSED( errorMsg );
- disconnect( account(), TQT_SIGNAL( connectionResult( int, const TQString& ) ),
- this, TQT_SLOT( slotCreatePendingFolders( int, const TQString& ) ) );
+ disconnect( account(), TQ_SIGNAL( connectionResult( int, const TQString& ) ),
+ this, TQ_SLOT( slotCreatePendingFolders( int, const TQString& ) ) );
if ( !errorCode ) {
TQStringList::Iterator it = mFoldersPendingCreation.begin();
for ( ; it != mFoldersPendingCreation.end(); ++it ) {
@@ -2350,8 +2350,8 @@ void KMFolderImap::search( const KMSearchPattern* pattern )
return;
}
SearchJob* job = new SearchJob( this, account(), pattern );
- connect( job, TQT_SIGNAL( searchDone( TQValueList<TQ_UINT32>, const KMSearchPattern*, bool ) ),
- this, TQT_SLOT( slotSearchDone( TQValueList<TQ_UINT32>, const KMSearchPattern*, bool ) ) );
+ connect( job, TQ_SIGNAL( searchDone( TQValueList<TQ_UINT32>, const KMSearchPattern*, bool ) ),
+ this, TQ_SLOT( slotSearchDone( TQValueList<TQ_UINT32>, const KMSearchPattern*, bool ) ) );
job->start();
}
@@ -2373,8 +2373,8 @@ void KMFolderImap::search( const KMSearchPattern* pattern, TQ_UINT32 serNum )
return;
}
SearchJob* job = new SearchJob( this, account(), pattern, serNum );
- connect( job, TQT_SIGNAL( searchDone( TQ_UINT32, const KMSearchPattern*, bool ) ),
- this, TQT_SLOT( slotSearchDone( TQ_UINT32, const KMSearchPattern*, bool ) ) );
+ connect( job, TQ_SIGNAL( searchDone( TQ_UINT32, const KMSearchPattern*, bool ) ),
+ this, TQ_SLOT( slotSearchDone( TQ_UINT32, const KMSearchPattern*, bool ) ) );
job->start();
}
diff --git a/kmail/kmfolderimap.h b/kmail/kmfolderimap.h
index 5f454c59..4113350a 100644
--- a/kmail/kmfolderimap.h
+++ b/kmail/kmfolderimap.h
@@ -77,7 +77,7 @@ private:
class KMFolderImap : public KMFolderMbox
{
- Q_OBJECT
+ TQ_OBJECT
friend class ::KMail::ImapJob;
public:
diff --git a/kmail/kmfolderindex.cpp b/kmail/kmfolderindex.cpp
index 7bb77f0d..9b60b25c 100644
--- a/kmail/kmfolderindex.cpp
+++ b/kmail/kmfolderindex.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
This file is part of KMail, the KDE mail client.
Copyright (c) 2000 Don Sanders <sanders@kde.org>
diff --git a/kmail/kmfolderindex.h b/kmail/kmfolderindex.h
index 8a8176e6..194d5c97 100644
--- a/kmail/kmfolderindex.h
+++ b/kmail/kmfolderindex.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
This file is part of KMail, the KDE mail client.
Copyright (c) 2000 Don Sanders <sanders@kde.org>
@@ -36,7 +36,7 @@
class KMFolderIndex: public FolderStorage
{
- Q_OBJECT
+ TQ_OBJECT
//TODO:Have to get rid of this friend declaration and add necessary pure
//virtuals to kmfolder.h so that KMMsgBase::parent() can be a plain KMFolder
diff --git a/kmail/kmfoldermaildir.cpp b/kmail/kmfoldermaildir.cpp
index 5242060a..62228190 100644
--- a/kmail/kmfoldermaildir.cpp
+++ b/kmail/kmfoldermaildir.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmfoldermaildir.cpp
// Author: Kurt Granroth <granroth@kde.org>
@@ -1123,7 +1122,7 @@ TQ_INT64 KMFolderMaildir::doFolderSize() const
item = new KFileItem( S_IFDIR, -1, location() + "/tmp" );
list.append( item );
s_DirSizeJobQueue.append(
- tqMakePair( TQGuardedPtr<const KMFolderMaildir>( this ), list ) );
+ qMakePair( TQGuardedPtr<const KMFolderMaildir>( this ), list ) );
// if there's only one entry in the queue then we can start
// a dirSizeJob right away
@@ -1132,8 +1131,8 @@ TQ_INT64 KMFolderMaildir::doFolderSize() const
//kdDebug(5006) << k_funcinfo << "Starting dirSizeJob for folder "
// << location() << endl;
KDirSize* job = KDirSize::dirSizeJob( list );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ),
- this, TQT_SLOT( slotDirSizeJobResult( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ),
+ this, TQ_SLOT( slotDirSizeJobResult( TDEIO::Job* ) ) );
}
return -1;
@@ -1164,8 +1163,8 @@ void KMFolderMaildir::slotDirSizeJobResult( TDEIO::Job* job )
//kdDebug(5006) << k_funcinfo << "Starting dirSizeJob for folder "
// << entry.first->location() << endl;
KDirSize* job = KDirSize::dirSizeJob( entry.second );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ),
- entry.first, TQT_SLOT( slotDirSizeJobResult( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ),
+ entry.first, TQ_SLOT( slotDirSizeJobResult( TDEIO::Job* ) ) );
break;
}
else
diff --git a/kmail/kmfoldermaildir.h b/kmail/kmfoldermaildir.h
index b4bdb3c5..85109490 100644
--- a/kmail/kmfoldermaildir.h
+++ b/kmail/kmfoldermaildir.h
@@ -23,7 +23,7 @@ using KMail::AttachmentStrategy;
class KMFolderMaildir : public KMFolderIndex
{
- Q_OBJECT
+ TQ_OBJECT
friend class ::KMail::MaildirJob;
public:
diff --git a/kmail/kmfoldermbox.cpp b/kmail/kmfoldermbox.cpp
index 6692f54c..e17f0966 100644
--- a/kmail/kmfoldermbox.cpp
+++ b/kmail/kmfoldermbox.cpp
@@ -1,4 +1,4 @@
-/* -*- c-basic-offset: 2 -*-
+/*
* kmail: KDE mail client
* Copyright (c) 1996-1998 Stefan Taferner <taferner@kde.org>
*
@@ -46,9 +46,7 @@
#include <ctype.h>
#include <unistd.h>
-#ifdef HAVE_FCNTL_H
#include <fcntl.h>
-#endif
#include <stdlib.h>
#include <sys/types.h>
diff --git a/kmail/kmfoldermbox.h b/kmail/kmfoldermbox.h
index d1993b17..517d5f19 100644
--- a/kmail/kmfoldermbox.h
+++ b/kmail/kmfoldermbox.h
@@ -46,7 +46,7 @@ using KMail::AttachmentStrategy;
class KMFolderMbox : public KMFolderIndex
{
- Q_OBJECT
+ TQ_OBJECT
friend class ::KMail::MboxJob;
public:
diff --git a/kmail/kmfoldermgr.cpp b/kmail/kmfoldermgr.cpp
index d270e710..94bbc2b9 100644
--- a/kmail/kmfoldermgr.cpp
+++ b/kmail/kmfoldermgr.cpp
@@ -361,8 +361,8 @@ void KMFolderMgr::remove(KMFolder* aFolder)
void KMFolderMgr::removeFolder(KMFolder* aFolder)
{
- connect(aFolder, TQT_SIGNAL(removed(KMFolder*, bool)),
- this, TQT_SLOT(removeFolderAux(KMFolder*, bool)));
+ connect(aFolder, TQ_SIGNAL(removed(KMFolder*, bool)),
+ this, TQ_SLOT(removeFolderAux(KMFolder*, bool)));
aFolder->remove();
}
@@ -578,10 +578,10 @@ void KMFolderMgr::renameFolder( KMFolder* folder, const TQString& newName,
KMFolderDir *newParent )
{
RenameJob* job = new RenameJob( folder->storage(), newName, newParent );
- connect( job, TQT_SIGNAL( renameDone( TQString, bool ) ),
- this, TQT_SLOT( slotRenameDone( TQString, bool ) ) );
- connect( job, TQT_SIGNAL( renameDone( TQString, bool ) ),
- this, TQT_SIGNAL( folderMoveOrCopyOperationFinished() ) );
+ connect( job, TQ_SIGNAL( renameDone( TQString, bool ) ),
+ this, TQ_SLOT( slotRenameDone( TQString, bool ) ) );
+ connect( job, TQ_SIGNAL( renameDone( TQString, bool ) ),
+ this, TQ_SIGNAL( folderMoveOrCopyOperationFinished() ) );
job->start();
}
@@ -590,8 +590,8 @@ void KMFolderMgr::copyFolder( KMFolder* folder, KMFolderDir *newParent )
{
kdDebug(5006) << "Copy folder: " << folder->prettyURL() << endl;
CopyFolderJob* job = new CopyFolderJob( folder->storage(), newParent );
- connect( job, TQT_SIGNAL( folderCopyComplete( bool ) ),
- this, TQT_SIGNAL( folderMoveOrCopyOperationFinished() ) );
+ connect( job, TQ_SIGNAL( folderCopyComplete( bool ) ),
+ this, TQ_SIGNAL( folderMoveOrCopyOperationFinished() ) );
job->start();
}
diff --git a/kmail/kmfoldermgr.h b/kmail/kmfoldermgr.h
index b6b80ad9..cfafc916 100644
--- a/kmail/kmfoldermgr.h
+++ b/kmail/kmfoldermgr.h
@@ -15,7 +15,7 @@ class KMFolder;
class KMFolderMgr: public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmfoldernode.h b/kmail/kmfoldernode.h
index b4542c96..925997b7 100644
--- a/kmail/kmfoldernode.h
+++ b/kmail/kmfoldernode.h
@@ -28,7 +28,7 @@ class KMFolderDir;
class KMFolderNode: public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmfoldersearch.cpp b/kmail/kmfoldersearch.cpp
index e2a72cb2..29c0c8ab 100644
--- a/kmail/kmfoldersearch.cpp
+++ b/kmail/kmfoldersearch.cpp
@@ -81,7 +81,7 @@ KMSearch::KMSearch(TQObject * parent, const char * name)
mSearchCount = 0;
mProcessNextBatchTimer = new TQTimer(0, "mProcessNextBatchTimer");
- connect(mProcessNextBatchTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotProcessNextBatch()));
+ connect(mProcessNextBatchTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(slotProcessNextBatch()));
}
KMSearch::~KMSearch()
@@ -262,9 +262,9 @@ void KMSearch::slotProcessNextBatch()
folder->open("kmsearch");
mOpenedFolders.append( folder );
connect( folder->storage(),
- TQT_SIGNAL( searchResult( KMFolder*, TQValueList<TQ_UINT32>, const KMSearchPattern*, bool ) ),
+ TQ_SIGNAL( searchResult( KMFolder*, TQValueList<TQ_UINT32>, const KMSearchPattern*, bool ) ),
this,
- TQT_SLOT( slotSearchFolderResult( KMFolder*, TQValueList<TQ_UINT32>, const KMSearchPattern*, bool ) ) );
+ TQ_SLOT( slotSearchFolderResult( KMFolder*, TQValueList<TQ_UINT32>, const KMSearchPattern*, bool ) ) );
folder->storage()->search( mSearchPattern );
} else
--mRemainingFolders;
@@ -291,10 +291,10 @@ void KMSearch::slotSearchFolderResult( KMFolder* folder,
if ( complete )
{
disconnect( folder->storage(),
- TQT_SIGNAL( searchResult( KMFolder*, TQValueList<TQ_UINT32>,
+ TQ_SIGNAL( searchResult( KMFolder*, TQValueList<TQ_UINT32>,
const KMSearchPattern*, bool ) ),
this,
- TQT_SLOT( slotSearchFolderResult( KMFolder*, TQValueList<TQ_UINT32>,
+ TQ_SLOT( slotSearchFolderResult( KMFolder*, TQValueList<TQ_UINT32>,
const KMSearchPattern*, bool ) ) );
--mRemainingFolders;
mSearchCount += folder->count();
@@ -325,54 +325,54 @@ KMFolderSearch::KMFolderSearch(KMFolder* folder, const char* name)
//Hook up some slots for live updating of search folders
//TODO: Optimize folderInvalidated, folderAdded, folderRemoved
- connect(kmkernel->folderMgr(), TQT_SIGNAL(msgAdded(KMFolder*, TQ_UINT32)),
- this, TQT_SLOT(examineAddedMessage(KMFolder*, TQ_UINT32)));
- connect(kmkernel->folderMgr(), TQT_SIGNAL(msgRemoved(KMFolder*, TQ_UINT32)),
- this, TQT_SLOT(examineRemovedMessage(KMFolder*, TQ_UINT32)));
- connect(kmkernel->folderMgr(), TQT_SIGNAL(msgChanged(KMFolder*, TQ_UINT32, int)),
- this, TQT_SLOT(examineChangedMessage(KMFolder*, TQ_UINT32, int)));
- connect(kmkernel->folderMgr(), TQT_SIGNAL(folderInvalidated(KMFolder*)),
- this, TQT_SLOT(examineInvalidatedFolder(KMFolder*)));
- connect(kmkernel->folderMgr(), TQT_SIGNAL(folderAdded(KMFolder*)),
- this, TQT_SLOT(examineInvalidatedFolder(KMFolder*)));
- connect(kmkernel->folderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)),
- this, TQT_SLOT(examineRemovedFolder(KMFolder*)));
- connect(kmkernel->folderMgr(), TQT_SIGNAL(msgHeaderChanged(KMFolder*,int)),
- this, TQT_SLOT(propagateHeaderChanged(KMFolder*,int)));
-
- connect(kmkernel->imapFolderMgr(), TQT_SIGNAL(msgAdded(KMFolder*, TQ_UINT32)),
- this, TQT_SLOT(examineAddedMessage(KMFolder*, TQ_UINT32)));
- connect(kmkernel->imapFolderMgr(), TQT_SIGNAL(msgRemoved(KMFolder*, TQ_UINT32)),
- this, TQT_SLOT(examineRemovedMessage(KMFolder*, TQ_UINT32)));
- connect(kmkernel->imapFolderMgr(), TQT_SIGNAL(msgChanged(KMFolder*, TQ_UINT32, int)),
- this, TQT_SLOT(examineChangedMessage(KMFolder*, TQ_UINT32, int)));
- connect(kmkernel->imapFolderMgr(), TQT_SIGNAL(folderInvalidated(KMFolder*)),
- this, TQT_SLOT(examineInvalidatedFolder(KMFolder*)));
- connect(kmkernel->imapFolderMgr(), TQT_SIGNAL(folderAdded(KMFolder*)),
- this, TQT_SLOT(examineInvalidatedFolder(KMFolder*)));
- connect(kmkernel->imapFolderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)),
- this, TQT_SLOT(examineRemovedFolder(KMFolder*)));
- connect(kmkernel->imapFolderMgr(), TQT_SIGNAL(msgHeaderChanged(KMFolder*,int)),
- this, TQT_SLOT(propagateHeaderChanged(KMFolder*,int)));
-
- connect(kmkernel->dimapFolderMgr(), TQT_SIGNAL(msgAdded(KMFolder*, TQ_UINT32)),
- this, TQT_SLOT(examineAddedMessage(KMFolder*, TQ_UINT32)));
- connect(kmkernel->dimapFolderMgr(), TQT_SIGNAL(msgRemoved(KMFolder*, TQ_UINT32)),
- this, TQT_SLOT(examineRemovedMessage(KMFolder*, TQ_UINT32)));
- connect(kmkernel->dimapFolderMgr(), TQT_SIGNAL(msgChanged(KMFolder*, TQ_UINT32, int)),
- this, TQT_SLOT(examineChangedMessage(KMFolder*, TQ_UINT32, int)));
- connect(kmkernel->dimapFolderMgr(), TQT_SIGNAL(folderInvalidated(KMFolder*)),
- this, TQT_SLOT(examineInvalidatedFolder(KMFolder*)));
- connect(kmkernel->dimapFolderMgr(), TQT_SIGNAL(folderAdded(KMFolder*)),
- this, TQT_SLOT(examineInvalidatedFolder(KMFolder*)));
- connect(kmkernel->dimapFolderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)),
- this, TQT_SLOT(examineRemovedFolder(KMFolder*)));
- connect(kmkernel->dimapFolderMgr(), TQT_SIGNAL(msgHeaderChanged(KMFolder*,int)),
- this, TQT_SLOT(propagateHeaderChanged(KMFolder*,int)));
+ connect(kmkernel->folderMgr(), TQ_SIGNAL(msgAdded(KMFolder*, TQ_UINT32)),
+ this, TQ_SLOT(examineAddedMessage(KMFolder*, TQ_UINT32)));
+ connect(kmkernel->folderMgr(), TQ_SIGNAL(msgRemoved(KMFolder*, TQ_UINT32)),
+ this, TQ_SLOT(examineRemovedMessage(KMFolder*, TQ_UINT32)));
+ connect(kmkernel->folderMgr(), TQ_SIGNAL(msgChanged(KMFolder*, TQ_UINT32, int)),
+ this, TQ_SLOT(examineChangedMessage(KMFolder*, TQ_UINT32, int)));
+ connect(kmkernel->folderMgr(), TQ_SIGNAL(folderInvalidated(KMFolder*)),
+ this, TQ_SLOT(examineInvalidatedFolder(KMFolder*)));
+ connect(kmkernel->folderMgr(), TQ_SIGNAL(folderAdded(KMFolder*)),
+ this, TQ_SLOT(examineInvalidatedFolder(KMFolder*)));
+ connect(kmkernel->folderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)),
+ this, TQ_SLOT(examineRemovedFolder(KMFolder*)));
+ connect(kmkernel->folderMgr(), TQ_SIGNAL(msgHeaderChanged(KMFolder*,int)),
+ this, TQ_SLOT(propagateHeaderChanged(KMFolder*,int)));
+
+ connect(kmkernel->imapFolderMgr(), TQ_SIGNAL(msgAdded(KMFolder*, TQ_UINT32)),
+ this, TQ_SLOT(examineAddedMessage(KMFolder*, TQ_UINT32)));
+ connect(kmkernel->imapFolderMgr(), TQ_SIGNAL(msgRemoved(KMFolder*, TQ_UINT32)),
+ this, TQ_SLOT(examineRemovedMessage(KMFolder*, TQ_UINT32)));
+ connect(kmkernel->imapFolderMgr(), TQ_SIGNAL(msgChanged(KMFolder*, TQ_UINT32, int)),
+ this, TQ_SLOT(examineChangedMessage(KMFolder*, TQ_UINT32, int)));
+ connect(kmkernel->imapFolderMgr(), TQ_SIGNAL(folderInvalidated(KMFolder*)),
+ this, TQ_SLOT(examineInvalidatedFolder(KMFolder*)));
+ connect(kmkernel->imapFolderMgr(), TQ_SIGNAL(folderAdded(KMFolder*)),
+ this, TQ_SLOT(examineInvalidatedFolder(KMFolder*)));
+ connect(kmkernel->imapFolderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)),
+ this, TQ_SLOT(examineRemovedFolder(KMFolder*)));
+ connect(kmkernel->imapFolderMgr(), TQ_SIGNAL(msgHeaderChanged(KMFolder*,int)),
+ this, TQ_SLOT(propagateHeaderChanged(KMFolder*,int)));
+
+ connect(kmkernel->dimapFolderMgr(), TQ_SIGNAL(msgAdded(KMFolder*, TQ_UINT32)),
+ this, TQ_SLOT(examineAddedMessage(KMFolder*, TQ_UINT32)));
+ connect(kmkernel->dimapFolderMgr(), TQ_SIGNAL(msgRemoved(KMFolder*, TQ_UINT32)),
+ this, TQ_SLOT(examineRemovedMessage(KMFolder*, TQ_UINT32)));
+ connect(kmkernel->dimapFolderMgr(), TQ_SIGNAL(msgChanged(KMFolder*, TQ_UINT32, int)),
+ this, TQ_SLOT(examineChangedMessage(KMFolder*, TQ_UINT32, int)));
+ connect(kmkernel->dimapFolderMgr(), TQ_SIGNAL(folderInvalidated(KMFolder*)),
+ this, TQ_SLOT(examineInvalidatedFolder(KMFolder*)));
+ connect(kmkernel->dimapFolderMgr(), TQ_SIGNAL(folderAdded(KMFolder*)),
+ this, TQ_SLOT(examineInvalidatedFolder(KMFolder*)));
+ connect(kmkernel->dimapFolderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)),
+ this, TQ_SLOT(examineRemovedFolder(KMFolder*)));
+ connect(kmkernel->dimapFolderMgr(), TQ_SIGNAL(msgHeaderChanged(KMFolder*,int)),
+ this, TQ_SLOT(propagateHeaderChanged(KMFolder*,int)));
mExecuteSearchTimer = new TQTimer(0, "mExecuteSearchTimer");
- connect(mExecuteSearchTimer, TQT_SIGNAL(timeout()),
- this, TQT_SLOT(executeSearch()));
+ connect(mExecuteSearchTimer, TQ_SIGNAL(timeout()),
+ this, TQ_SLOT(executeSearch()));
}
KMFolderSearch::~KMFolderSearch()
@@ -399,10 +399,10 @@ void KMFolderSearch::setSearch(KMSearch *search)
delete mSearch;
mSearch = search; // take ownership
if (mSearch) {
- TQObject::connect(search, TQT_SIGNAL(found(TQ_UINT32)),
- TQT_SLOT(addSerNum(TQ_UINT32)));
- TQObject::connect(search, TQT_SIGNAL(finished(bool)),
- TQT_SLOT(searchFinished(bool)));
+ TQObject::connect(search, TQ_SIGNAL(found(TQ_UINT32)),
+ TQ_SLOT(addSerNum(TQ_UINT32)));
+ TQObject::connect(search, TQ_SIGNAL(finished(bool)),
+ TQ_SLOT(searchFinished(bool)));
}
}
if (mSearch)
@@ -502,8 +502,8 @@ int KMFolderSearch::addMsg(KMMessage*, int* index_return)
bool KMFolderSearch::readSearch()
{
mSearch = new KMSearch;
- TQObject::connect(mSearch, TQT_SIGNAL(found(TQ_UINT32)), TQT_SLOT(addSerNum(TQ_UINT32)));
- TQObject::connect(mSearch, TQT_SIGNAL(finished(bool)), TQT_SLOT(searchFinished(bool)));
+ TQObject::connect(mSearch, TQ_SIGNAL(found(TQ_UINT32)), TQ_SLOT(addSerNum(TQ_UINT32)));
+ TQObject::connect(mSearch, TQ_SIGNAL(finished(bool)), TQ_SLOT(searchFinished(bool)));
return mSearch->read(location());
}
@@ -603,8 +603,8 @@ int KMFolderSearch::create()
clearIndex();
if (!mSearch) {
mSearch = new KMSearch();
- TQObject::connect(mSearch, TQT_SIGNAL(found(TQ_UINT32)), TQT_SLOT(addSerNum(TQ_UINT32)));
- TQObject::connect(mSearch, TQT_SIGNAL(finished(bool)), TQT_SLOT(searchFinished(bool)));
+ TQObject::connect(mSearch, TQ_SIGNAL(found(TQ_UINT32)), TQ_SLOT(addSerNum(TQ_UINT32)));
+ TQObject::connect(mSearch, TQ_SIGNAL(finished(bool)), TQ_SLOT(searchFinished(bool)));
}
mSearch->write(location());
mOpenCount++;
@@ -959,9 +959,9 @@ void KMFolderSearch::examineAddedMessage(KMFolder *aFolder, TQ_UINT32 serNum)
mFoldersCurrentlyBeingSearched.replace( folder, count+1 );
} else {
connect( folder->storage(),
- TQT_SIGNAL( searchDone( KMFolder*, TQ_UINT32, const KMSearchPattern*, bool ) ),
+ TQ_SIGNAL( searchDone( KMFolder*, TQ_UINT32, const KMSearchPattern*, bool ) ),
this,
- TQT_SLOT( slotSearchExamineMsgDone( KMFolder*, TQ_UINT32,
+ TQ_SLOT( slotSearchExamineMsgDone( KMFolder*, TQ_UINT32,
const KMSearchPattern*, bool ) ) );
mFoldersCurrentlyBeingSearched.insert( folder, 1 );
}
@@ -983,10 +983,10 @@ void KMFolderSearch::slotSearchExamineMsgDone( KMFolder* folder,
unsigned int count = mFoldersCurrentlyBeingSearched[folder];
if ( count == 1 ) {
disconnect( folder->storage(),
- TQT_SIGNAL( searchDone( KMFolder*, TQ_UINT32,
+ TQ_SIGNAL( searchDone( KMFolder*, TQ_UINT32,
const KMSearchPattern*, bool ) ),
this,
- TQT_SLOT( slotSearchExamineMsgDone( KMFolder*, TQ_UINT32,
+ TQ_SLOT( slotSearchExamineMsgDone( KMFolder*, TQ_UINT32,
const KMSearchPattern*, bool ) ) );
mFoldersCurrentlyBeingSearched.remove( folder );
} else {
@@ -1120,9 +1120,9 @@ void KMFolderSearch::propagateHeaderChanged(KMFolder *aFolder, int idx)
mFoldersCurrentlyBeingSearched.replace( aFolder, count+1 );
} else {
connect( aFolder->storage(),
- TQT_SIGNAL( searchDone( KMFolder*, TQ_UINT32, const KMSearchPattern*, bool ) ),
+ TQ_SIGNAL( searchDone( KMFolder*, TQ_UINT32, const KMSearchPattern*, bool ) ),
this,
- TQT_SLOT( slotSearchExamineMsgDone( KMFolder*, TQ_UINT32,
+ TQ_SLOT( slotSearchExamineMsgDone( KMFolder*, TQ_UINT32,
const KMSearchPattern*, bool ) ) );
mFoldersCurrentlyBeingSearched.insert( aFolder, 1 );
}
diff --git a/kmail/kmfoldersearch.h b/kmail/kmfoldersearch.h
index a3fb9706..67c228cf 100644
--- a/kmail/kmfoldersearch.h
+++ b/kmail/kmfoldersearch.h
@@ -51,7 +51,7 @@ using KMail::AttachmentStrategy;
class KMSearch: public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -109,7 +109,7 @@ private:
class KMFolderSearch: public FolderStorage
{
- Q_OBJECT
+ TQ_OBJECT
friend class ::KMFolderSearchJob;
public:
diff --git a/kmail/kmfolderseldlg.cpp b/kmail/kmfolderseldlg.cpp
index b4c9842b..496af0f8 100644
--- a/kmail/kmfolderseldlg.cpp
+++ b/kmail/kmfolderseldlg.cpp
@@ -62,10 +62,10 @@ KMFolderSelDlg::KMFolderSelDlg( TQWidget * parent, KMFolderTree * tree,
void KMFolderSelDlg::init()
{
mTreeView->setFocus();
- connect( mTreeView, TQT_SIGNAL( doubleClicked( TQListViewItem*, const TQPoint&, int ) ),
- this, TQT_SLOT( slotSelect() ) );
- connect( mTreeView, TQT_SIGNAL( selectionChanged() ),
- this, TQT_SLOT( slotUpdateBtnStatus() ) );
+ connect( mTreeView, TQ_SIGNAL( doubleClicked( TQListViewItem*, const TQPoint&, int ) ),
+ this, TQ_SLOT( slotSelect() ) );
+ connect( mTreeView, TQ_SIGNAL( selectionChanged() ),
+ this, TQ_SLOT( slotUpdateBtnStatus() ) );
readConfig();
}
diff --git a/kmail/kmfolderseldlg.h b/kmail/kmfolderseldlg.h
index 1a7f7508..b2b3502a 100644
--- a/kmail/kmfolderseldlg.h
+++ b/kmail/kmfolderseldlg.h
@@ -20,7 +20,7 @@ namespace KMail {
//-----------------------------------------------------------------------------
class KMFolderSelDlg: public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmfoldertree.cpp b/kmail/kmfoldertree.cpp
index e73b69a7..00fcf6d4 100644
--- a/kmail/kmfoldertree.cpp
+++ b/kmail/kmfoldertree.cpp
@@ -281,7 +281,7 @@ void KMFolderTreeItem::slotNoContentChanged()
{
// reload the folder tree if the no content state changed, needed because
// we hide no-content folders if their child nodes are hidden
- TQTimer::singleShot( 0, static_cast<KMFolderTree*>( listView() ), TQT_SLOT(reload()) );
+ TQTimer::singleShot( 0, static_cast<KMFolderTree*>( listView() ), TQ_SLOT(reload()) );
}
//-----------------------------------------------------------------------------
@@ -406,12 +406,12 @@ KMFolderTree::KMFolderTree( KMMainWidget *mainWidget, TQWidget *parent,
mPopup = new TDEPopupMenu(this);
mPopup->insertTitle(i18n("View Columns"));
mPopup->setCheckable(true);
- mUnreadPop = mPopup->insertItem(i18n("Unread Column"), this, TQT_SLOT(slotToggleUnreadColumn()));
- mTotalPop = mPopup->insertItem(i18n("Total Column"), this, TQT_SLOT(slotToggleTotalColumn()));
- mSizePop = mPopup->insertItem(i18n("Size Column"), this, TQT_SLOT(slotToggleSizeColumn()));
+ mUnreadPop = mPopup->insertItem(i18n("Unread Column"), this, TQ_SLOT(slotToggleUnreadColumn()));
+ mTotalPop = mPopup->insertItem(i18n("Total Column"), this, TQ_SLOT(slotToggleTotalColumn()));
+ mSizePop = mPopup->insertItem(i18n("Size Column"), this, TQ_SLOT(slotToggleSizeColumn()));
- connect( this, TQT_SIGNAL( triggerRefresh() ),
- this, TQT_SLOT( refresh() ) );
+ connect( this, TQ_SIGNAL( triggerRefresh() ),
+ this, TQ_SLOT( refresh() ) );
new FolderViewToolTip( this );
}
@@ -420,61 +420,61 @@ KMFolderTree::KMFolderTree( KMMainWidget *mainWidget, TQWidget *parent,
// connects all needed signals to their slots
void KMFolderTree::connectSignals()
{
- connect( mUpdateCountTimer, TQT_SIGNAL(timeout()),
- this, TQT_SLOT(slotUpdateCountTimeout()) );
+ connect( mUpdateCountTimer, TQ_SIGNAL(timeout()),
+ this, TQ_SLOT(slotUpdateCountTimeout()) );
- connect(&mUpdateTimer, TQT_SIGNAL(timeout()),
- this, TQT_SLOT(delayedUpdate()));
+ connect(&mUpdateTimer, TQ_SIGNAL(timeout()),
+ this, TQ_SLOT(delayedUpdate()));
- connect(kmkernel->folderMgr(), TQT_SIGNAL(changed()),
- this, TQT_SLOT(doFolderListChanged()));
+ connect(kmkernel->folderMgr(), TQ_SIGNAL(changed()),
+ this, TQ_SLOT(doFolderListChanged()));
- connect(kmkernel->folderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)),
- this, TQT_SLOT(slotFolderRemoved(KMFolder*)));
+ connect(kmkernel->folderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)),
+ this, TQ_SLOT(slotFolderRemoved(KMFolder*)));
- connect(kmkernel->folderMgr(), TQT_SIGNAL(folderMoveOrCopyOperationFinished()),
- this, TQT_SLOT(slotFolderMoveOrCopyOperationFinished()));
+ connect(kmkernel->folderMgr(), TQ_SIGNAL(folderMoveOrCopyOperationFinished()),
+ this, TQ_SLOT(slotFolderMoveOrCopyOperationFinished()));
- connect(kmkernel->imapFolderMgr(), TQT_SIGNAL(changed()),
- this, TQT_SLOT(doFolderListChanged()));
+ connect(kmkernel->imapFolderMgr(), TQ_SIGNAL(changed()),
+ this, TQ_SLOT(doFolderListChanged()));
- connect(kmkernel->imapFolderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)),
- this, TQT_SLOT(slotFolderRemoved(KMFolder*)));
+ connect(kmkernel->imapFolderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)),
+ this, TQ_SLOT(slotFolderRemoved(KMFolder*)));
- connect(kmkernel->dimapFolderMgr(), TQT_SIGNAL(changed()),
- this, TQT_SLOT(doFolderListChanged()));
+ connect(kmkernel->dimapFolderMgr(), TQ_SIGNAL(changed()),
+ this, TQ_SLOT(doFolderListChanged()));
- connect(kmkernel->dimapFolderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)),
- this, TQT_SLOT(slotFolderRemoved(KMFolder*)));
+ connect(kmkernel->dimapFolderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)),
+ this, TQ_SLOT(slotFolderRemoved(KMFolder*)));
- connect(kmkernel->searchFolderMgr(), TQT_SIGNAL(changed()),
- this, TQT_SLOT(doFolderListChanged()));
+ connect(kmkernel->searchFolderMgr(), TQ_SIGNAL(changed()),
+ this, TQ_SLOT(doFolderListChanged()));
- connect(kmkernel->acctMgr(), TQT_SIGNAL(accountRemoved(KMAccount*)),
- this, TQT_SLOT(slotAccountRemoved(KMAccount*)));
+ connect(kmkernel->acctMgr(), TQ_SIGNAL(accountRemoved(KMAccount*)),
+ this, TQ_SLOT(slotAccountRemoved(KMAccount*)));
- connect(kmkernel->acctMgr(), TQT_SIGNAL(accountAdded(KMAccount*)),
- this, TQT_SLOT(slotUnhideLocalInbox()));
+ connect(kmkernel->acctMgr(), TQ_SIGNAL(accountAdded(KMAccount*)),
+ this, TQ_SLOT(slotUnhideLocalInbox()));
- connect(kmkernel->searchFolderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)),
- this, TQT_SLOT(slotFolderRemoved(KMFolder*)));
+ connect(kmkernel->searchFolderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)),
+ this, TQ_SLOT(slotFolderRemoved(KMFolder*)));
- connect( &autoopen_timer, TQT_SIGNAL( timeout() ),
- this, TQT_SLOT( openFolder() ) );
+ connect( &autoopen_timer, TQ_SIGNAL( timeout() ),
+ this, TQ_SLOT( openFolder() ) );
- connect( this, TQT_SIGNAL( contextMenuRequested( TQListViewItem*, const TQPoint &, int ) ),
- this, TQT_SLOT( slotContextMenuRequested( TQListViewItem*, const TQPoint & ) ) );
+ connect( this, TQ_SIGNAL( contextMenuRequested( TQListViewItem*, const TQPoint &, int ) ),
+ this, TQ_SLOT( slotContextMenuRequested( TQListViewItem*, const TQPoint & ) ) );
- connect( this, TQT_SIGNAL( expanded( TQListViewItem* ) ),
- this, TQT_SLOT( slotFolderExpanded( TQListViewItem* ) ) );
+ connect( this, TQ_SIGNAL( expanded( TQListViewItem* ) ),
+ this, TQ_SLOT( slotFolderExpanded( TQListViewItem* ) ) );
- connect( this, TQT_SIGNAL( collapsed( TQListViewItem* ) ),
- this, TQT_SLOT( slotFolderCollapsed( TQListViewItem* ) ) );
+ connect( this, TQ_SIGNAL( collapsed( TQListViewItem* ) ),
+ this, TQ_SLOT( slotFolderCollapsed( TQListViewItem* ) ) );
- connect( this, TQT_SIGNAL( itemRenamed( TQListViewItem*, int, const TQString &)),
- this, TQT_SLOT( slotRenameFolder( TQListViewItem*, int, const TQString &)));
+ connect( this, TQ_SIGNAL( itemRenamed( TQListViewItem*, int, const TQString &)),
+ this, TQ_SLOT( slotRenameFolder( TQListViewItem*, int, const TQString &)));
- connect( this, TQT_SIGNAL(folderSelected(KMFolder*)), TQT_SLOT(updateCopyActions()) );
+ connect( this, TQ_SIGNAL(folderSelected(KMFolder*)), TQ_SLOT(updateCopyActions()) );
}
//-----------------------------------------------------------------------------
@@ -598,7 +598,7 @@ void KMFolderTree::reload(bool openFolders)
{
// we open all folders to update the count
mUpdateIterator = TQListViewItemIterator (this);
- TQTimer::singleShot( 0, this, TQT_SLOT(slotUpdateOneCount()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(slotUpdateOneCount()) );
}
for ( TQListViewItemIterator it( this ) ; it.current() ; ++it ) {
@@ -606,53 +606,53 @@ void KMFolderTree::reload(bool openFolders)
if ( !fti || !fti->folder() )
continue;
- disconnect(fti->folder(),TQT_SIGNAL(iconsChanged()),
- fti,TQT_SLOT(slotIconsChanged()));
- connect(fti->folder(),TQT_SIGNAL(iconsChanged()),
- fti,TQT_SLOT(slotIconsChanged()));
+ disconnect(fti->folder(),TQ_SIGNAL(iconsChanged()),
+ fti,TQ_SLOT(slotIconsChanged()));
+ connect(fti->folder(),TQ_SIGNAL(iconsChanged()),
+ fti,TQ_SLOT(slotIconsChanged()));
- disconnect(fti->folder(),TQT_SIGNAL(nameChanged()),
- fti,TQT_SLOT(slotNameChanged()));
- connect(fti->folder(),TQT_SIGNAL(nameChanged()),
- fti,TQT_SLOT(slotNameChanged()));
+ disconnect(fti->folder(),TQ_SIGNAL(nameChanged()),
+ fti,TQ_SLOT(slotNameChanged()));
+ connect(fti->folder(),TQ_SIGNAL(nameChanged()),
+ fti,TQ_SLOT(slotNameChanged()));
- disconnect( fti->folder(), TQT_SIGNAL(noContentChanged()),
- fti, TQT_SLOT(slotNoContentChanged()) );
- connect( fti->folder(), TQT_SIGNAL(noContentChanged()),
- fti, TQT_SLOT(slotNoContentChanged()) );
+ disconnect( fti->folder(), TQ_SIGNAL(noContentChanged()),
+ fti, TQ_SLOT(slotNoContentChanged()) );
+ connect( fti->folder(), TQ_SIGNAL(noContentChanged()),
+ fti, TQ_SLOT(slotNoContentChanged()) );
- disconnect( fti->folder(), TQT_SIGNAL(syncStateChanged()),
- this, TQT_SLOT(slotSyncStateChanged()) );
- connect( fti->folder(), TQT_SIGNAL(syncStateChanged()),
- this, TQT_SLOT(slotSyncStateChanged()) );
+ disconnect( fti->folder(), TQ_SIGNAL(syncStateChanged()),
+ this, TQ_SLOT(slotSyncStateChanged()) );
+ connect( fti->folder(), TQ_SIGNAL(syncStateChanged()),
+ this, TQ_SLOT(slotSyncStateChanged()) );
// we want to be noticed of changes to update the unread/total columns
- disconnect(fti->folder(), TQT_SIGNAL(msgAdded(KMFolder*,TQ_UINT32)),
- this,TQT_SLOT(slotUpdateCountsDelayed(KMFolder*)));
- connect(fti->folder(), TQT_SIGNAL(msgAdded(KMFolder*,TQ_UINT32)),
- this,TQT_SLOT(slotUpdateCountsDelayed(KMFolder*)));
+ disconnect(fti->folder(), TQ_SIGNAL(msgAdded(KMFolder*,TQ_UINT32)),
+ this,TQ_SLOT(slotUpdateCountsDelayed(KMFolder*)));
+ connect(fti->folder(), TQ_SIGNAL(msgAdded(KMFolder*,TQ_UINT32)),
+ this,TQ_SLOT(slotUpdateCountsDelayed(KMFolder*)));
//}
- disconnect(fti->folder(), TQT_SIGNAL(numUnreadMsgsChanged(KMFolder*)),
- this,TQT_SLOT(slotUpdateCountsDelayed(KMFolder*)));
- connect(fti->folder(), TQT_SIGNAL(numUnreadMsgsChanged(KMFolder*)),
- this,TQT_SLOT(slotUpdateCountsDelayed(KMFolder*)));
- disconnect(fti->folder(), TQT_SIGNAL(msgRemoved(KMFolder*)),
- this,TQT_SLOT(slotUpdateCountsDelayed(KMFolder*)));
- connect(fti->folder(), TQT_SIGNAL(msgRemoved(KMFolder*)),
- this,TQT_SLOT(slotUpdateCountsDelayed(KMFolder*)));
+ disconnect(fti->folder(), TQ_SIGNAL(numUnreadMsgsChanged(KMFolder*)),
+ this,TQ_SLOT(slotUpdateCountsDelayed(KMFolder*)));
+ connect(fti->folder(), TQ_SIGNAL(numUnreadMsgsChanged(KMFolder*)),
+ this,TQ_SLOT(slotUpdateCountsDelayed(KMFolder*)));
+ disconnect(fti->folder(), TQ_SIGNAL(msgRemoved(KMFolder*)),
+ this,TQ_SLOT(slotUpdateCountsDelayed(KMFolder*)));
+ connect(fti->folder(), TQ_SIGNAL(msgRemoved(KMFolder*)),
+ this,TQ_SLOT(slotUpdateCountsDelayed(KMFolder*)));
- disconnect(fti->folder(), TQT_SIGNAL(folderSizeChanged( KMFolder* )),
- this,TQT_SLOT(slotUpdateCountsDelayed(KMFolder*)));
- connect(fti->folder(), TQT_SIGNAL(folderSizeChanged( KMFolder* )),
- this,TQT_SLOT(slotUpdateCountsDelayed(KMFolder*)));
+ disconnect(fti->folder(), TQ_SIGNAL(folderSizeChanged( KMFolder* )),
+ this,TQ_SLOT(slotUpdateCountsDelayed(KMFolder*)));
+ connect(fti->folder(), TQ_SIGNAL(folderSizeChanged( KMFolder* )),
+ this,TQ_SLOT(slotUpdateCountsDelayed(KMFolder*)));
- disconnect(fti->folder(), TQT_SIGNAL(shortcutChanged(KMFolder*)),
- mMainWidget, TQT_SLOT( slotShortcutChanged(KMFolder*)));
- connect(fti->folder(), TQT_SIGNAL(shortcutChanged(KMFolder*)),
- mMainWidget, TQT_SLOT( slotShortcutChanged(KMFolder*)));
+ disconnect(fti->folder(), TQ_SIGNAL(shortcutChanged(KMFolder*)),
+ mMainWidget, TQ_SLOT( slotShortcutChanged(KMFolder*)));
+ connect(fti->folder(), TQ_SIGNAL(shortcutChanged(KMFolder*)),
+ mMainWidget, TQ_SLOT( slotShortcutChanged(KMFolder*)));
if (!openFolders)
@@ -696,7 +696,7 @@ void KMFolderTree::slotUpdateOneCount()
++mUpdateIterator;
if ( !fti->folder() ) {
// next one please
- TQTimer::singleShot( 0, this, TQT_SLOT(slotUpdateOneCount()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(slotUpdateOneCount()) );
return;
}
@@ -707,7 +707,7 @@ void KMFolderTree::slotUpdateOneCount()
// restore previous state
if (!open) fti->folder()->close("updatecount");
- TQTimer::singleShot( 0, this, TQT_SLOT(slotUpdateOneCount()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(slotUpdateOneCount()) );
}
//-----------------------------------------------------------------------------
@@ -737,7 +737,7 @@ void KMFolderTree::addDirectory( KMFolderDir *fdir, KMFolderTreeItem* parent )
} else {
// hide local inbox if unused
if ( kmkernel->inboxFolder() == folder && hideLocalInbox() ) {
- connect( kmkernel->inboxFolder(), TQT_SIGNAL(msgAdded(KMFolder*,TQ_UINT32)), TQT_SLOT(slotUnhideLocalInbox()) );
+ connect( kmkernel->inboxFolder(), TQ_SIGNAL(msgAdded(KMFolder*,TQ_UINT32)), TQ_SLOT(slotUnhideLocalInbox()) );
continue;
}
@@ -765,14 +765,14 @@ void KMFolderTree::addDirectory( KMFolderDir *fdir, KMFolderTreeItem* parent )
removeFromFolderToItemMap( folder );
delete fti;
// still, it might change in the future, so we better check the change signals
- connect ( folder, TQT_SIGNAL(noContentChanged()), TQT_SLOT(delayedReload()) );
+ connect ( folder, TQ_SIGNAL(noContentChanged()), TQ_SLOT(delayedReload()) );
continue;
}
- connect (fti, TQT_SIGNAL(iconChanged(KMFolderTreeItem*)),
- this, TQT_SIGNAL(iconChanged(KMFolderTreeItem*)));
- connect (fti, TQT_SIGNAL(nameChanged(KMFolderTreeItem*)),
- this, TQT_SIGNAL(nameChanged(KMFolderTreeItem*)));
+ connect (fti, TQ_SIGNAL(iconChanged(KMFolderTreeItem*)),
+ this, TQ_SIGNAL(iconChanged(KMFolderTreeItem*)));
+ connect (fti, TQ_SIGNAL(nameChanged(KMFolderTreeItem*)),
+ this, TQ_SIGNAL(nameChanged(KMFolderTreeItem*)));
}
// restore last open-state
fti->setOpen( readIsListViewItemOpen(fti) );
@@ -1094,7 +1094,7 @@ void KMFolderTree::slotContextMenuRequested( TQListViewItem *lvi,
if ( ( fti->folder() || (fti->text(0) != i18n("Searches")) ) && !multiFolder)
folderMenu->insertItem(SmallIconSet("folder-new"),
createChild, this,
- TQT_SLOT(addChildFolder()));
+ TQ_SLOT(addChildFolder()));
if (!fti->folder()) {
mMainWidget->action("compact_all_folders")->plug(folderMenu);
@@ -1102,7 +1102,7 @@ void KMFolderTree::slotContextMenuRequested( TQListViewItem *lvi,
} else if (fti->folder()->folderType() == KMFolderTypeImap) {
folderMenu->insertItem(SmallIconSet("mail_get"), i18n("Check &Mail"),
this,
- TQT_SLOT(slotCheckMail()));
+ TQ_SLOT(slotCheckMail()));
}
} else { // regular folders
@@ -1110,18 +1110,18 @@ void KMFolderTree::slotContextMenuRequested( TQListViewItem *lvi,
if ( !fti->folder()->noChildren() && !multiFolder ) {
folderMenu->insertItem(SmallIconSet("folder-new"),
i18n("&New Subfolder..."), this,
- TQT_SLOT(addChildFolder()));
+ TQ_SLOT(addChildFolder()));
}
// copy folder
TQPopupMenu *copyMenu = new TQPopupMenu( folderMenu );
- folderToPopupMenu( CopyFolder, TQT_TQOBJECT(this), &mMenuToFolder, copyMenu );
+ folderToPopupMenu( CopyFolder, this, &mMenuToFolder, copyMenu );
folderMenu->insertItem( i18n("&Copy Folder To"), copyMenu );
if ( fti->folder()->isMoveable() && fti->folder()->canDeleteMessages() )
{
TQPopupMenu *moveMenu = new TQPopupMenu( folderMenu );
- folderToPopupMenu( MoveFolder, TQT_TQOBJECT(this), &mMenuToFolder, moveMenu );
+ folderToPopupMenu( MoveFolder, this, &mMenuToFolder, moveMenu );
folderMenu->insertItem( i18n("&Move Folder To"), moveMenu );
}
@@ -1139,7 +1139,7 @@ void KMFolderTree::slotContextMenuRequested( TQListViewItem *lvi,
if ( GlobalSettings::self()->enableFavoriteFolderView() ) {
folderMenu->insertItem( SmallIconSet("bookmark_add"), i18n("Add to Favorite Folders"),
- this, TQT_SLOT(slotAddToFavorites()) );
+ this, TQ_SLOT(slotAddToFavorites()) );
}
folderMenu->insertSeparator();
@@ -1158,24 +1158,24 @@ void KMFolderTree::slotContextMenuRequested( TQListViewItem *lvi,
{
folderMenu->insertItem(SmallIconSet("bookmark_folder"),
i18n("Serverside Subscription..."), mMainWidget,
- TQT_SLOT(slotSubscriptionDialog()));
+ TQ_SLOT(slotSubscriptionDialog()));
folderMenu->insertItem(SmallIcon("bookmark_folder"),
i18n("Local Subscription..."), mMainWidget,
- TQT_SLOT(slotLocalSubscriptionDialog()));
+ TQ_SLOT(slotLocalSubscriptionDialog()));
if (!fti->folder()->noContent())
{
mMainWidget->action("refresh_folder")->plug(folderMenu);
if ( fti->folder()->folderType() == KMFolderTypeImap && !multiFolder ) {
folderMenu->insertItem(SmallIconSet("reload"), i18n("Refresh Folder List"), this,
- TQT_SLOT(slotResetFolderList()));
+ TQ_SLOT(slotResetFolderList()));
}
}
if ( fti->folder()->folderType() == KMFolderTypeCachedImap && !multiFolder ) {
KMFolderCachedImap * folder = static_cast<KMFolderCachedImap*>( fti->folder()->storage() );
folderMenu->insertItem( SmallIconSet("wizard"),
i18n("&Troubleshoot IMAP Cache..."),
- folder, TQT_SLOT(slotTroubleshoot()) );
+ folder, TQ_SLOT(slotTroubleshoot()) );
}
folderMenu->insertSeparator();
}
@@ -1189,11 +1189,11 @@ void KMFolderTree::slotContextMenuRequested( TQListViewItem *lvi,
folderMenu->insertItem(SmallIconSet("configure_shortcuts"),
i18n("&Assign Shortcut..."),
fti,
- TQT_SLOT(assignShortcut()));
+ TQ_SLOT(assignShortcut()));
if ( !fti->folder()->noContent() && fti->folder()->canDeleteMessages() ) {
folderMenu->insertItem( i18n("Expire..."), fti,
- TQT_SLOT( slotShowExpiryProperties() ) );
+ TQ_SLOT( slotShowExpiryProperties() ) );
}
mMainWidget->action("modify")->plug(folderMenu);
}
@@ -1230,7 +1230,7 @@ void KMFolderTree::contentsMouseReleaseEvent(TQMouseEvent* me)
}
// react on middle-button only
- if (btn != Qt::MidButton) {
+ if (btn != TQt::MidButton) {
KFolderTree::contentsMouseReleaseEvent(me);
return;
}
@@ -1753,10 +1753,10 @@ void KMFolderTree::slotToggleSizeColumn()
bool KMFolderTree::eventFilter( TQObject *o, TQEvent *e )
{
if ( e->type() == TQEvent::MouseButtonPress &&
- TQT_TQMOUSEEVENT(e)->button() == Qt::RightButton &&
- o->isA(TQHEADER_OBJECT_NAME_STRING) )
+ static_cast<TQMouseEvent*>(e)->button() == TQt::RightButton &&
+ o->isA("TQHeader") )
{
- mPopup->popup( TQT_TQMOUSEEVENT(e)->globalPos() );
+ mPopup->popup( static_cast<TQMouseEvent*>(e)->globalPos() );
return true;
}
return KFolderTree::eventFilter(o, e);
@@ -1860,15 +1860,15 @@ void KMFolderTree::folderToPopupMenu( MenuAction action, TQObject *receiver,
// connect the signals
if ( action == MoveMessage || action == MoveFolder )
{
- disconnect( menu, TQT_SIGNAL(activated(int)), receiver,
- TQT_SLOT(moveSelectedToFolder(int)) );
- connect( menu, TQT_SIGNAL(activated(int)), receiver,
- TQT_SLOT(moveSelectedToFolder(int)) );
+ disconnect( menu, TQ_SIGNAL(activated(int)), receiver,
+ TQ_SLOT(moveSelectedToFolder(int)) );
+ connect( menu, TQ_SIGNAL(activated(int)), receiver,
+ TQ_SLOT(moveSelectedToFolder(int)) );
} else {
- disconnect( menu, TQT_SIGNAL(activated(int)), receiver,
- TQT_SLOT(copySelectedToFolder(int)) );
- connect( menu, TQT_SIGNAL(activated(int)), receiver,
- TQT_SLOT(copySelectedToFolder(int)) );
+ disconnect( menu, TQ_SIGNAL(activated(int)), receiver,
+ TQ_SLOT(copySelectedToFolder(int)) );
+ connect( menu, TQ_SIGNAL(activated(int)), receiver,
+ TQ_SLOT(copySelectedToFolder(int)) );
}
if ( !item ) {
item = firstChild();
@@ -2176,14 +2176,14 @@ void KMFolderTree::slotAddToFavorites()
void KMFolderTree::slotUnhideLocalInbox()
{
- disconnect( kmkernel->inboxFolder(), TQT_SIGNAL(msgAdded(KMFolder*,TQ_UINT32)),
- this, TQT_SLOT(slotUnhideLocalInbox()) );
+ disconnect( kmkernel->inboxFolder(), TQ_SIGNAL(msgAdded(KMFolder*,TQ_UINT32)),
+ this, TQ_SLOT(slotUnhideLocalInbox()) );
reload();
}
void KMFolderTree::delayedReload()
{
- TQTimer::singleShot( 0, this, TQT_SLOT(reload()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(reload()) );
}
#include "kmfoldertree.moc"
diff --git a/kmail/kmfoldertree.h b/kmail/kmfoldertree.h
index 11e7584f..8184c061 100644
--- a/kmail/kmfoldertree.h
+++ b/kmail/kmfoldertree.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++ -*-
+/*
This file is part of the KDE libraries
This library is free software; you can redistribute it and/or
@@ -21,7 +21,7 @@
#include "foldertreebase.h"
#include <tdelocale.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqguardedptr.h>
#include <tqwidget.h>
@@ -44,7 +44,7 @@ template <typename T> class TQGuardedPtr;
class KDE_EXPORT KMFolderTreeItem : public TQObject, public KFolderTreeItem
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Construct a root item _without_ folder */
@@ -108,7 +108,7 @@ private:
class KMFolderTree : public KMail::FolderTreeBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmheaders.cpp b/kmail/kmheaders.cpp
index 3196e627..fe5531be 100644
--- a/kmail/kmheaders.cpp
+++ b/kmail/kmheaders.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmheaders.cpp
#include <config.h>
@@ -141,10 +140,10 @@ KMHeaders::KMHeaders(KMMainWidget *aOwner, TQWidget *parent,
mPopup->insertItem(i18n("Size"), KPaintInfo::COL_SIZE);
mPopup->insertItem(i18n("Receiver"), KPaintInfo::COL_RECEIVER);
- connect(mPopup, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotToggleColumn(int)));
+ connect(mPopup, TQ_SIGNAL(activated(int)), this, TQ_SLOT(slotToggleColumn(int)));
setShowSortIndicator(true);
- setFocusPolicy( TQ_WheelFocus );
+ setFocusPolicy( TQWidget::WheelFocus );
if (!pixmapsLoaded)
{
@@ -204,18 +203,18 @@ KMHeaders::KMHeaders(KMMainWidget *aOwner, TQWidget *parent,
header()->setResizeEnabled( true, mPaintInfo.senderCol );
header()->setResizeEnabled( true, mPaintInfo.dateCol );
- connect( this, TQT_SIGNAL( contextMenuRequested( TQListViewItem*, const TQPoint &, int )),
- this, TQT_SLOT( rightButtonPressed( TQListViewItem*, const TQPoint &, int )));
- connect(this, TQT_SIGNAL(doubleClicked(TQListViewItem*)),
- this,TQT_SLOT(selectMessage(TQListViewItem*)));
- connect(this,TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this,TQT_SLOT(highlightMessage(TQListViewItem*)));
+ connect( this, TQ_SIGNAL( contextMenuRequested( TQListViewItem*, const TQPoint &, int )),
+ this, TQ_SLOT( rightButtonPressed( TQListViewItem*, const TQPoint &, int )));
+ connect(this, TQ_SIGNAL(doubleClicked(TQListViewItem*)),
+ this,TQ_SLOT(selectMessage(TQListViewItem*)));
+ connect(this,TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this,TQ_SLOT(highlightMessage(TQListViewItem*)));
resetCurrentTime();
mSubjectLists.setAutoDelete( true );
mMoveMessages = false;
- connect( this, TQT_SIGNAL(selectionChanged()), TQT_SLOT(updateActions()) );
+ connect( this, TQ_SIGNAL(selectionChanged()), TQ_SLOT(updateActions()) );
}
@@ -236,8 +235,8 @@ KMHeaders::~KMHeaders ()
bool KMHeaders::eventFilter ( TQObject *o, TQEvent *e )
{
if ( e->type() == TQEvent::MouseButtonPress &&
- TQT_TQMOUSEEVENT(e)->button() == Qt::RightButton &&
- o->isA(TQHEADER_OBJECT_NAME_STRING) )
+ static_cast<TQMouseEvent*>(e)->button() == TQt::RightButton &&
+ o->isA("TQHeader") )
{
// if we currently only show one of either sender/receiver column
// modify the popup text in the way, that it displays the text of the other of the two
@@ -249,7 +248,7 @@ bool KMHeaders::eventFilter ( TQObject *o, TQEvent *e )
else
mPopup->changeItem(KPaintInfo::COL_RECEIVER, i18n("Receiver"));
- mPopup->popup( TQT_TQMOUSEEVENT(e)->globalPos() );
+ mPopup->popup( static_cast<TQMouseEvent*>(e)->globalPos() );
return true;
}
return TDEListView::eventFilter(o, e);
@@ -699,28 +698,28 @@ void KMHeaders::setFolder( KMFolder *aFolder, bool forceJumpToUnread )
// from this folder, since it's msg's are about to be deleted.
highlightMessage(0, false);
- disconnect(mFolder, TQT_SIGNAL(numUnreadMsgsChanged(KMFolder*)),
- this, TQT_SLOT(setFolderInfoStatus()));
+ disconnect(mFolder, TQ_SIGNAL(numUnreadMsgsChanged(KMFolder*)),
+ this, TQ_SLOT(setFolderInfoStatus()));
mFolder->markNewAsUnread();
writeFolderConfig();
- disconnect(mFolder, TQT_SIGNAL(msgHeaderChanged(KMFolder*,int)),
- this, TQT_SLOT(msgHeaderChanged(KMFolder*,int)));
- disconnect(mFolder, TQT_SIGNAL(msgAdded(int)),
- this, TQT_SLOT(msgAdded(int)));
- disconnect(mFolder, TQT_SIGNAL( msgRemoved( int, TQString ) ),
- this, TQT_SLOT( msgRemoved( int, TQString ) ) );
- disconnect(mFolder, TQT_SIGNAL(changed()),
- this, TQT_SLOT(msgChanged()));
- disconnect(mFolder, TQT_SIGNAL(cleared()),
- this, TQT_SLOT(folderCleared()));
- disconnect(mFolder, TQT_SIGNAL(expunged( KMFolder* )),
- this, TQT_SLOT(folderCleared()));
- disconnect(mFolder, TQT_SIGNAL(closed()),
- this, TQT_SLOT(folderClosed()));
- disconnect( mFolder, TQT_SIGNAL( statusMsg( const TQString& ) ),
- BroadcastStatus::instance(), TQT_SLOT( setStatusMsg( const TQString& ) ) );
- disconnect(mFolder, TQT_SIGNAL(viewConfigChanged()), this, TQT_SLOT(reset()));
+ disconnect(mFolder, TQ_SIGNAL(msgHeaderChanged(KMFolder*,int)),
+ this, TQ_SLOT(msgHeaderChanged(KMFolder*,int)));
+ disconnect(mFolder, TQ_SIGNAL(msgAdded(int)),
+ this, TQ_SLOT(msgAdded(int)));
+ disconnect(mFolder, TQ_SIGNAL( msgRemoved( int, TQString ) ),
+ this, TQ_SLOT( msgRemoved( int, TQString ) ) );
+ disconnect(mFolder, TQ_SIGNAL(changed()),
+ this, TQ_SLOT(msgChanged()));
+ disconnect(mFolder, TQ_SIGNAL(cleared()),
+ this, TQ_SLOT(folderCleared()));
+ disconnect(mFolder, TQ_SIGNAL(expunged( KMFolder* )),
+ this, TQ_SLOT(folderCleared()));
+ disconnect(mFolder, TQ_SIGNAL(closed()),
+ this, TQ_SLOT(folderClosed()));
+ disconnect( mFolder, TQ_SIGNAL( statusMsg( const TQString& ) ),
+ BroadcastStatus::instance(), TQ_SLOT( setStatusMsg( const TQString& ) ) );
+ disconnect(mFolder, TQ_SIGNAL(viewConfigChanged()), this, TQ_SLOT(reset()));
writeSortOrder();
mFolder->close("kmheaders");
// System folders remain open but we also should write the index from
@@ -737,25 +736,25 @@ void KMHeaders::setFolder( KMFolder *aFolder, bool forceJumpToUnread )
mOwner->messageActions()->replyListAction()->setEnabled( mFolder ?
mFolder->isMailingListEnabled() : false );
if ( mFolder ) {
- connect(mFolder, TQT_SIGNAL(msgHeaderChanged(KMFolder*,int)),
- this, TQT_SLOT(msgHeaderChanged(KMFolder*,int)));
- connect(mFolder, TQT_SIGNAL(msgAdded(int)),
- this, TQT_SLOT(msgAdded(int)));
- connect(mFolder, TQT_SIGNAL(msgRemoved(int,TQString)),
- this, TQT_SLOT(msgRemoved(int,TQString)));
- connect(mFolder, TQT_SIGNAL(changed()),
- this, TQT_SLOT(msgChanged()));
- connect(mFolder, TQT_SIGNAL(cleared()),
- this, TQT_SLOT(folderCleared()));
- connect(mFolder, TQT_SIGNAL(expunged( KMFolder* )),
- this, TQT_SLOT(folderCleared()));
- connect(mFolder, TQT_SIGNAL(closed()),
- this, TQT_SLOT(folderClosed()));
- connect(mFolder, TQT_SIGNAL(statusMsg(const TQString&)),
- BroadcastStatus::instance(), TQT_SLOT( setStatusMsg( const TQString& ) ) );
- connect(mFolder, TQT_SIGNAL(numUnreadMsgsChanged(KMFolder*)),
- this, TQT_SLOT(setFolderInfoStatus()));
- connect(mFolder, TQT_SIGNAL(viewConfigChanged()), this, TQT_SLOT(reset()));
+ connect(mFolder, TQ_SIGNAL(msgHeaderChanged(KMFolder*,int)),
+ this, TQ_SLOT(msgHeaderChanged(KMFolder*,int)));
+ connect(mFolder, TQ_SIGNAL(msgAdded(int)),
+ this, TQ_SLOT(msgAdded(int)));
+ connect(mFolder, TQ_SIGNAL(msgRemoved(int,TQString)),
+ this, TQ_SLOT(msgRemoved(int,TQString)));
+ connect(mFolder, TQ_SIGNAL(changed()),
+ this, TQ_SLOT(msgChanged()));
+ connect(mFolder, TQ_SIGNAL(cleared()),
+ this, TQ_SLOT(folderCleared()));
+ connect(mFolder, TQ_SIGNAL(expunged( KMFolder* )),
+ this, TQ_SLOT(folderCleared()));
+ connect(mFolder, TQ_SIGNAL(closed()),
+ this, TQ_SLOT(folderClosed()));
+ connect(mFolder, TQ_SIGNAL(statusMsg(const TQString&)),
+ BroadcastStatus::instance(), TQ_SLOT( setStatusMsg( const TQString& ) ) );
+ connect(mFolder, TQ_SIGNAL(numUnreadMsgsChanged(KMFolder*)),
+ this, TQ_SLOT(setFolderInfoStatus()));
+ connect(mFolder, TQ_SIGNAL(viewConfigChanged()), this, TQ_SLOT(reset()));
// Not very nice, but if we go from nested to non-nested
// in the folderConfig below then we need to do this otherwise
@@ -845,8 +844,8 @@ void KMHeaders::msgChanged()
}
// if (!isUpdatesEnabled()) return;
// prevent IMAP messages from scrolling to top
- disconnect(this,TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this,TQT_SLOT(highlightMessage(TQListViewItem*)));
+ disconnect(this,TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this,TQ_SLOT(highlightMessage(TQListViewItem*)));
updateMessageList(); // do not change the selection
@@ -867,8 +866,8 @@ void KMHeaders::msgChanged()
}
}
- connect(this,TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this,TQT_SLOT(highlightMessage(TQListViewItem*)));
+ connect(this,TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this,TQ_SLOT(highlightMessage(TQListViewItem*)));
// if the current message has changed then emit
// the selected signal to force an update
@@ -983,8 +982,8 @@ void KMHeaders::msgAdded(int id)
/* In case the current item is taken during reparenting, prevent qlistview
* from selecting some unrelated item as a result of take() emitting
* currentChanged. */
- disconnect( this, TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this, TQT_SLOT(highlightMessage(TQListViewItem*)));
+ disconnect( this, TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this, TQ_SLOT(highlightMessage(TQListViewItem*)));
if ( !msgId.isEmpty() ) {
TQPtrListIterator<HeaderItem> it(mImperfectlyThreadedList);
@@ -1053,7 +1052,7 @@ void KMHeaders::msgAdded(int id)
sci->setItem(hi);
}
if (mSortInfo.fakeSort) {
- TQObject::disconnect(header(), TQT_SIGNAL(clicked(int)), this, TQT_SLOT(dirtySortOrder(int)));
+ TQObject::disconnect(header(), TQ_SIGNAL(clicked(int)), this, TQ_SLOT(dirtySortOrder(int)));
TDEListView::setSorting(mSortCol, !mSortDescending );
mSortInfo.fakeSort = 0;
}
@@ -1069,8 +1068,8 @@ void KMHeaders::msgAdded(int id)
}
/* restore signal */
- connect( this, TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this, TQT_SLOT(highlightMessage(TQListViewItem*)));
+ connect( this, TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this, TQ_SLOT(highlightMessage(TQListViewItem*)));
emit msgAddedToListView( hi );
END_TIMER(msgAdded);
@@ -1090,8 +1089,8 @@ void KMHeaders::msgRemoved(int id, TQString msgId )
* item once this one is removed. Sine we have already selected
* something in prepare/finalizeMove that's counter productive
*/
- disconnect( this, TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this, TQT_SLOT(highlightMessage(TQListViewItem*)));
+ disconnect( this, TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this, TQ_SLOT(highlightMessage(TQListViewItem*)));
HeaderItem *removedItem = mItems[id];
if (!removedItem) return;
@@ -1138,7 +1137,7 @@ void KMHeaders::msgRemoved(int id, TQString msgId )
}
item->setTempKey( key + item->key( mSortCol, !mSortDescending ));
if (mSortInfo.fakeSort) {
- TQObject::disconnect(header(), TQT_SIGNAL(clicked(int)), this, TQT_SLOT(dirtySortOrder(int)));
+ TQObject::disconnect(header(), TQ_SIGNAL(clicked(int)), this, TQ_SLOT(dirtySortOrder(int)));
TDEListView::setSorting(mSortCol, !mSortDescending );
mSortInfo.fakeSort = 0;
}
@@ -1202,8 +1201,8 @@ void KMHeaders::msgRemoved(int id, TQString msgId )
}
}
/* restore signal */
- connect( this, TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this, TQT_SLOT(highlightMessage(TQListViewItem*)));
+ connect( this, TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this, TQ_SLOT(highlightMessage(TQListViewItem*)));
}
@@ -1468,8 +1467,8 @@ void KMHeaders::applyFiltersOnMsg()
msg->setTransferInProgress(true);
if (!msg->isComplete()) {
FolderJob *job = mFolder->createJob(msg);
- connect(job, TQT_SIGNAL(messageRetrieved(KMMessage*)),
- this, TQT_SLOT(slotFilterMsg(KMMessage*)));
+ connect(job, TQ_SIGNAL(messageRetrieved(KMMessage*)),
+ this, TQ_SLOT(slotFilterMsg(KMMessage*)));
job->start();
} else {
if (slotFilterMsg(msg) == 2)
@@ -1519,8 +1518,8 @@ void KMHeaders::deleteMsg ()
finalizeMove( nextItem, contentX, contentY );
KMCommand *command = new KMDeleteMsgCommand( mFolder, msgList );
- connect( command, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( slotMoveCompleted( KMCommand * ) ) );
+ connect( command, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( slotMoveCompleted( KMCommand * ) ) );
command->start();
BroadcastStatus::instance()->setStatusMsg("");
@@ -1541,8 +1540,8 @@ HeaderItem* KMHeaders::prepareMove( int *contentX, int *contentY )
HeaderItem *ret = 0;
emit maybeDeleting();
- disconnect( this, TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this, TQT_SLOT(highlightMessage(TQListViewItem*)));
+ disconnect( this, TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this, TQ_SLOT(highlightMessage(TQListViewItem*)));
TQListViewItem *curItem;
HeaderItem *item;
@@ -1578,8 +1577,8 @@ void KMHeaders::finalizeMove( HeaderItem *item, int contentX, int contentY )
setContentsPos( contentX, contentY );
makeHeaderVisible();
- connect( this, TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this, TQT_SLOT(highlightMessage(TQListViewItem*)));
+ connect( this, TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this, TQ_SLOT(highlightMessage(TQListViewItem*)));
}
@@ -1608,8 +1607,8 @@ void KMHeaders::moveMsgToFolder ( KMFolder* destFolder, bool askForConfirmation
finalizeMove( nextItem, contentX, contentY );
KMCommand *command = new KMMoveCommand( destFolder, msgList );
- connect( command, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( slotMoveCompleted( KMCommand * ) ) );
+ connect( command, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( slotMoveCompleted( KMCommand * ) ) );
command->start();
}
@@ -1885,13 +1884,13 @@ void KMHeaders::incCurrentMessage()
TQListViewItem *lvi = currentItem();
if ( lvi && lvi->itemBelow() ) {
- disconnect(this,TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this,TQT_SLOT(highlightMessage(TQListViewItem*)));
+ disconnect(this,TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this,TQ_SLOT(highlightMessage(TQListViewItem*)));
setCurrentItem( lvi->itemBelow() );
ensureCurrentItemVisible();
setFocus();
- connect(this,TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this,TQT_SLOT(highlightMessage(TQListViewItem*)));
+ connect(this,TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this,TQ_SLOT(highlightMessage(TQListViewItem*)));
}
}
@@ -1902,13 +1901,13 @@ void KMHeaders::decCurrentMessage()
return;
TQListViewItem *lvi = currentItem();
if ( lvi && lvi->itemAbove() ) {
- disconnect(this,TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this,TQT_SLOT(highlightMessage(TQListViewItem*)));
+ disconnect(this,TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this,TQ_SLOT(highlightMessage(TQListViewItem*)));
setCurrentItem( lvi->itemAbove() );
ensureCurrentItemVisible();
setFocus();
- connect(this,TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this,TQT_SLOT(highlightMessage(TQListViewItem*)));
+ connect(this,TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this,TQ_SLOT(highlightMessage(TQListViewItem*)));
}
}
@@ -2160,7 +2159,7 @@ void KMHeaders::resetCurrentTime()
mDate.reset();
// only reset exactly during minute switch
TQTimer::singleShot( ( 60-TQTime::currentTime().second() ) * 1000,
- this, TQT_SLOT( resetCurrentTime() ) );
+ this, TQ_SLOT( resetCurrentTime() ) );
}
//-----------------------------------------------------------------------------
@@ -2241,8 +2240,8 @@ void KMHeaders::keyPressEvent( TQKeyEvent * e )
if (cntrl) {
if (!shft)
- disconnect(this,TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this,TQT_SLOT(highlightMessage(TQListViewItem*)));
+ disconnect(this,TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this,TQ_SLOT(highlightMessage(TQListViewItem*)));
switch (e->key()) {
case Key_Down:
case Key_Up:
@@ -2254,8 +2253,8 @@ void KMHeaders::keyPressEvent( TQKeyEvent * e )
TDEListView::keyPressEvent( e );
}
if (!shft)
- connect(this,TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this,TQT_SLOT(highlightMessage(TQListViewItem*)));
+ connect(this,TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this,TQ_SLOT(highlightMessage(TQListViewItem*)));
}
}
@@ -2333,12 +2332,12 @@ void KMHeaders::contentsMousePressEvent(TQMouseEvent* e)
if ( e->state() & ControlButton )
setSelected( lvi, !wasSelected );
- if ((e->button() == Qt::LeftButton) )
+ if ((e->button() == TQt::LeftButton) )
mMousePressed = true;
}
// check if we are on a status column and toggle it
- if ( lvi && e->button() == Qt::LeftButton && !( e->state() & (ShiftButton | ControlButton | AltButton | MetaButton) ) ) {
+ if ( lvi && e->button() == TQt::LeftButton && !( e->state() & (ShiftButton | ControlButton | AltButton | MetaButton) ) ) {
bool flagsToggleable = GlobalSettings::self()->allowLocalFlags() || !(mFolder ? mFolder->isReadOnly() : true);
int section = header()->sectionAt( e->pos().x() );
HeaderItem *item = static_cast<HeaderItem*>( lvi );
@@ -2366,7 +2365,7 @@ void KMHeaders::contentsMousePressEvent(TQMouseEvent* e)
//-----------------------------------------------------------------------------
void KMHeaders::contentsMouseReleaseEvent(TQMouseEvent* e)
{
- if (e->button() != Qt::RightButton)
+ if (e->button() != TQt::RightButton)
TDEListView::contentsMouseReleaseEvent(e);
mMousePressed = false;
@@ -2465,7 +2464,7 @@ void KMHeaders::slotRMB()
menu->insertSeparator();
TQPopupMenu *msgCopyMenu = new TQPopupMenu(menu);
- mOwner->folderTree()->folderToPopupMenu( KMFolderTree::CopyMessage, TQT_TQOBJECT(this),
+ mOwner->folderTree()->folderToPopupMenu( KMFolderTree::CopyMessage, this,
&mMenuToFolder, msgCopyMenu );
menu->insertItem(i18n("&Copy To"), msgCopyMenu);
@@ -2474,7 +2473,7 @@ void KMHeaders::slotRMB()
menu->setItemEnabled( id, false );
} else {
TQPopupMenu *msgMoveMenu = new TQPopupMenu(menu);
- mOwner->folderTree()->folderToPopupMenu( KMFolderTree::MoveMessage, TQT_TQOBJECT(this),
+ mOwner->folderTree()->folderToPopupMenu( KMFolderTree::MoveMessage, this,
&mMenuToFolder, msgMoveMenu );
menu->insertItem(i18n("&Move To"), msgMoveMenu);
}
@@ -2624,7 +2623,7 @@ void KMHeaders::setSorting( int column, bool ascending )
// if (column != mSortCol)
// setColumnText( mSortCol, TQIconSet( TQPixmap()), columnText( mSortCol ));
if(mSortInfo.dirty || column != mSortInfo.column || ascending != mSortInfo.ascending) { //dirtied
- TQObject::disconnect(header(), TQT_SIGNAL(clicked(int)), this, TQT_SLOT(dirtySortOrder(int)));
+ TQObject::disconnect(header(), TQ_SIGNAL(clicked(int)), this, TQ_SLOT(dirtySortOrder(int)));
mSortInfo.dirty = true;
}
@@ -2866,7 +2865,7 @@ void KMHeaders::appendItemToSortFile(HeaderItem *khi)
void KMHeaders::dirtySortOrder(int column)
{
mSortInfo.dirty = true;
- TQObject::disconnect(header(), TQT_SIGNAL(clicked(int)), this, TQT_SLOT(dirtySortOrder(int)));
+ TQObject::disconnect(header(), TQ_SIGNAL(clicked(int)), this, TQ_SLOT(dirtySortOrder(int)));
setSorting(column, mSortInfo.column == column ? !mSortInfo.ascending : true);
}
@@ -3110,7 +3109,7 @@ bool KMHeaders::readSortOrder( bool set_selection, bool forceJumpToUnread )
//Hackyness to work around qlistview problems
TDEListView::setSorting(-1);
header()->setSortIndicator(column, ascending);
- TQObject::connect(header(), TQT_SIGNAL(clicked(int)), this, TQT_SLOT(dirtySortOrder(int)));
+ TQObject::connect(header(), TQ_SIGNAL(clicked(int)), this, TQ_SLOT(dirtySortOrder(int)));
//setup mSortInfo here now, as above may change it
mSortInfo.dirty = false;
mSortInfo.column = (short)column;
@@ -3557,7 +3556,7 @@ void KMHeaders::cutMessages()
void KMHeaders::pasteMessages()
{
- new MessageCopyHelper( mCopiedMessages, folder(), mMoveMessages, TQT_TQOBJECT(this) );
+ new MessageCopyHelper( mCopiedMessages, folder(), mMoveMessages, this );
if ( mMoveMessages ) {
mCopiedMessages.clear();
updateActions();
diff --git a/kmail/kmheaders.h b/kmail/kmheaders.h
index 423ec3dc..ab3abf09 100644
--- a/kmail/kmheaders.h
+++ b/kmail/kmheaders.h
@@ -1,5 +1,3 @@
-// -*- mode: C++ -*-
-
#ifndef __KMHEADERS
#define __KMHEADERS
@@ -47,7 +45,7 @@ enum NestingPolicy { AlwaysOpen = 0, DefaultOpen, DefaultClosed, OpenUnread };
/** The widget that shows the contents of folders */
class KMHeaders : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
friend class ::KMail::HeaderItem; // For easy access to the pixmaps
diff --git a/kmail/kmkernel.cpp b/kmail/kmkernel.cpp
index f998a74c..0f1d34ed 100644
--- a/kmail/kmkernel.cpp
+++ b/kmail/kmkernel.cpp
@@ -1,4 +1,3 @@
-/* -*- mode: C++; c-file-style: "gnu" -*- */
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -174,8 +173,8 @@ KMKernel::KMKernel (TQObject *parent, const char *name) :
#ifdef __TDE_HAVE_TDEHWLIB
mNetworkManager = TDEGlobal::networkManager();
if (mNetworkManager) {
- connect( mNetworkManager, TQT_SIGNAL( networkDeviceStateChanged( TDENetworkConnectionStatus::TDENetworkConnectionStatus, TDENetworkConnectionStatus::TDENetworkConnectionStatus, TQString ) ),
- this, TQT_SLOT( slotNetworkStateChanged( TDENetworkConnectionStatus::TDENetworkConnectionStatus, TDENetworkConnectionStatus::TDENetworkConnectionStatus, TQString ) ) );
+ connect( mNetworkManager, TQ_SIGNAL( networkDeviceStateChanged( TDENetworkConnectionStatus::TDENetworkConnectionStatus, TDENetworkConnectionStatus::TDENetworkConnectionStatus, TQString ) ),
+ this, TQ_SLOT( slotNetworkStateChanged( TDENetworkConnectionStatus::TDENetworkConnectionStatus, TDENetworkConnectionStatus::TDENetworkConnectionStatus, TQString ) ) );
if (networkStateConnected()) {
resumeNetworkJobs();
}
@@ -1583,17 +1582,17 @@ void KMKernel::init()
the_weaverLogger->attach (the_weaver);
//#endif
- connect( the_folderMgr, TQT_SIGNAL( folderRemoved(KMFolder*) ),
- this, TQT_SIGNAL( folderRemoved(KMFolder*) ) );
- connect( the_dimapFolderMgr, TQT_SIGNAL( folderRemoved(KMFolder*) ),
- this, TQT_SIGNAL( folderRemoved(KMFolder*) ) );
- connect( the_imapFolderMgr, TQT_SIGNAL( folderRemoved(KMFolder*) ),
- this, TQT_SIGNAL( folderRemoved(KMFolder*) ) );
- connect( the_searchFolderMgr, TQT_SIGNAL( folderRemoved(KMFolder*) ),
- this, TQT_SIGNAL( folderRemoved(KMFolder*) ) );
+ connect( the_folderMgr, TQ_SIGNAL( folderRemoved(KMFolder*) ),
+ this, TQ_SIGNAL( folderRemoved(KMFolder*) ) );
+ connect( the_dimapFolderMgr, TQ_SIGNAL( folderRemoved(KMFolder*) ),
+ this, TQ_SIGNAL( folderRemoved(KMFolder*) ) );
+ connect( the_imapFolderMgr, TQ_SIGNAL( folderRemoved(KMFolder*) ),
+ this, TQ_SIGNAL( folderRemoved(KMFolder*) ) );
+ connect( the_searchFolderMgr, TQ_SIGNAL( folderRemoved(KMFolder*) ),
+ this, TQ_SIGNAL( folderRemoved(KMFolder*) ) );
mBackgroundTasksTimer = new TQTimer( this, "mBackgroundTasksTimer" );
- connect( mBackgroundTasksTimer, TQT_SIGNAL( timeout() ), this, TQT_SLOT( slotRunBackgroundTasks() ) );
+ connect( mBackgroundTasksTimer, TQ_SIGNAL( timeout() ), this, TQ_SLOT( slotRunBackgroundTasks() ) );
#ifdef DEBUG_SCHEDULER // for debugging, see jobscheduler.h
mBackgroundTasksTimer->start( 10000, true ); // 10s, singleshot
#else
@@ -1983,7 +1982,7 @@ void KMKernel::dumpDeadLetters()
return;
for ( TQPtrListIterator<TDEMainWindow> it(*TDEMainWindow::memberList) ; it.current() != 0; ++it ) {
- if ( KMail::Composer * win = ::tqqt_cast<KMail::Composer*>( it.current() ) ) {
+ if ( KMail::Composer * win = ::tqt_cast<KMail::Composer*>( it.current() ) ) {
win->autoSaveMessage();
// saving the message has to be finished right here, we are called from a dtor,
// therefore we have no chance to finish this later
@@ -2021,10 +2020,10 @@ void KMKernel::byteArrayToRemoteFile(const TQByteArray &aData, const KURL &aURL,
TDEIO::Job *job = TDEIO::put(aURL, -1, overwrite, false);
putData pd; pd.url = aURL; pd.data = aData; pd.offset = 0;
mPutJobs.insert(job, pd);
- connect(job, TQT_SIGNAL(dataReq(TDEIO::Job*,TQByteArray&)),
- TQT_SLOT(slotDataReq(TDEIO::Job*,TQByteArray&)));
- connect(job, TQT_SIGNAL(result(TDEIO::Job*)),
- TQT_SLOT(slotResult(TDEIO::Job*)));
+ connect(job, TQ_SIGNAL(dataReq(TDEIO::Job*,TQByteArray&)),
+ TQ_SLOT(slotDataReq(TDEIO::Job*,TQByteArray&)));
+ connect(job, TQ_SIGNAL(result(TDEIO::Job*)),
+ TQ_SLOT(slotResult(TDEIO::Job*)));
}
void KMKernel::slotDataReq(TDEIO::Job *job, TQByteArray &data)
@@ -2080,8 +2079,8 @@ void KMKernel::slotShowConfigurationDialog()
{
if( !mConfigureDialog ) {
mConfigureDialog = new ConfigureDialog( 0, "configure", false );
- connect( mConfigureDialog, TQT_SIGNAL( configChanged() ),
- this, TQT_SLOT( slotConfigChanged() ) );
+ connect( mConfigureDialog, TQ_SIGNAL( configChanged() ),
+ this, TQ_SLOT( slotConfigChanged() ) );
}
if( KMKernel::getKMMainWidget() == 0 )
diff --git a/kmail/kmkernel.h b/kmail/kmkernel.h
index 610ab476..20d3633b 100644
--- a/kmail/kmkernel.h
+++ b/kmail/kmkernel.h
@@ -1,5 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
-
#ifndef _KMCONTROL
#define _KMCONTROL
@@ -13,7 +11,7 @@
#include <tdeconfig.h>
#include <tdeversion.h>
#include <tdeimproxy.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#ifdef __TDE_HAVE_TDEHWLIB
# include <tdenetworkconnections.h>
@@ -92,7 +90,7 @@ class ConfigureDialog;
*/
class KDE_EXPORT KMKernel : public TQObject, virtual public KMailIface
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmlineeditspell.cpp b/kmail/kmlineeditspell.cpp
index 20421ec9..92cc4f7f 100644
--- a/kmail/kmlineeditspell.cpp
+++ b/kmail/kmlineeditspell.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmcomposewin.cpp
// Author: Markus Wuebben <markus.wuebben@kde.org>
// This code is published under the GPL.
@@ -157,7 +156,7 @@ TQPopupMenu *KMLineEdit::createPopupMenu()
menu->insertSeparator();
menu->insertItem( i18n( "Edit Recent Addresses..." ),
- this, TQT_SLOT( editRecentAddresses() ) );
+ this, TQ_SLOT( editRecentAddresses() ) );
return menu;
}
diff --git a/kmail/kmlineeditspell.h b/kmail/kmlineeditspell.h
index 536d3158..98b8ba76 100644
--- a/kmail/kmlineeditspell.h
+++ b/kmail/kmlineeditspell.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* KMComposeWin Header File
* Author: Markus Wuebben <markus.wuebben@kde.org>
*/
@@ -11,7 +11,7 @@ class TQPopupMenu;
class KMLineEdit : public KPIM::AddresseeLineEdit
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMLineEdit(bool useCompletion, TQWidget *parent = 0,
@@ -40,7 +40,7 @@ private:
class KMLineEditSpell : public KMLineEdit
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMLineEditSpell(bool useCompletion, TQWidget *parent = 0,
diff --git a/kmail/kmmainwidget.cpp b/kmail/kmmainwidget.cpp
index 1d2661f5..bdae84d2 100644
--- a/kmail/kmmainwidget.cpp
+++ b/kmail/kmmainwidget.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmmainwidget.cpp
//#define MALLOC_DEBUG 1
@@ -204,41 +203,41 @@ KMMainWidget::KMMainWidget(TQWidget *parent, const char *name,
activatePanners();
- TQTimer::singleShot( 0, TQT_TQOBJECT(this), TQT_SLOT( slotShowStartupFolder() ));
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotShowStartupFolder() ));
- connect( kmkernel->acctMgr(), TQT_SIGNAL( checkedMail( bool, bool, const TQMap<TQString, int> & ) ),
- this, TQT_SLOT( slotMailChecked( bool, bool, const TQMap<TQString, int> & ) ) );
+ connect( kmkernel->acctMgr(), TQ_SIGNAL( checkedMail( bool, bool, const TQMap<TQString, int> & ) ),
+ this, TQ_SLOT( slotMailChecked( bool, bool, const TQMap<TQString, int> & ) ) );
- connect( kmkernel->acctMgr(), TQT_SIGNAL( accountAdded( KMAccount* ) ),
- this, TQT_SLOT( initializeIMAPActions() ) );
- connect( kmkernel->acctMgr(), TQT_SIGNAL( accountRemoved( KMAccount* ) ),
- this, TQT_SLOT( initializeIMAPActions() ) );
+ connect( kmkernel->acctMgr(), TQ_SIGNAL( accountAdded( KMAccount* ) ),
+ this, TQ_SLOT( initializeIMAPActions() ) );
+ connect( kmkernel->acctMgr(), TQ_SIGNAL( accountRemoved( KMAccount* ) ),
+ this, TQ_SLOT( initializeIMAPActions() ) );
- connect(kmkernel, TQT_SIGNAL( configChanged() ),
- this, TQT_SLOT( slotConfigChanged() ));
+ connect(kmkernel, TQ_SIGNAL( configChanged() ),
+ this, TQ_SLOT( slotConfigChanged() ));
// display the full path to the folder in the caption
- connect(mFolderTree, TQT_SIGNAL(currentChanged(TQListViewItem*)),
- this, TQT_SLOT(slotChangeCaption(TQListViewItem*)));
- connect(mFolderTree, TQT_SIGNAL(selectionChanged()),
- TQT_SLOT(updateFolderMenu()) );
- connect( mFolderTree, TQT_SIGNAL(syncStateChanged()),
- TQT_SLOT(updateFolderMenu()) );
+ connect(mFolderTree, TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ this, TQ_SLOT(slotChangeCaption(TQListViewItem*)));
+ connect(mFolderTree, TQ_SIGNAL(selectionChanged()),
+ TQ_SLOT(updateFolderMenu()) );
+ connect( mFolderTree, TQ_SIGNAL(syncStateChanged()),
+ TQ_SLOT(updateFolderMenu()) );
- connect(kmkernel->folderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)),
- this, TQT_SLOT(slotFolderRemoved(KMFolder*)));
+ connect(kmkernel->folderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)),
+ this, TQ_SLOT(slotFolderRemoved(KMFolder*)));
- connect(kmkernel->imapFolderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)),
- this, TQT_SLOT(slotFolderRemoved(KMFolder*)));
+ connect(kmkernel->imapFolderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)),
+ this, TQ_SLOT(slotFolderRemoved(KMFolder*)));
- connect(kmkernel->dimapFolderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)),
- this, TQT_SLOT(slotFolderRemoved(KMFolder*)));
+ connect(kmkernel->dimapFolderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)),
+ this, TQ_SLOT(slotFolderRemoved(KMFolder*)));
- connect(kmkernel->searchFolderMgr(), TQT_SIGNAL(folderRemoved(KMFolder*)),
- this, TQT_SLOT(slotFolderRemoved(KMFolder*)));
+ connect(kmkernel->searchFolderMgr(), TQ_SIGNAL(folderRemoved(KMFolder*)),
+ this, TQ_SLOT(slotFolderRemoved(KMFolder*)));
- connect( kmkernel, TQT_SIGNAL( onlineStatusChanged( GlobalSettings::EnumNetworkState::type ) ),
- this, TQT_SLOT( slotUpdateOnlineStatus( GlobalSettings::EnumNetworkState::type ) ) );
+ connect( kmkernel, TQ_SIGNAL( onlineStatusChanged( GlobalSettings::EnumNetworkState::type ) ),
+ this, TQ_SLOT( slotUpdateOnlineStatus( GlobalSettings::EnumNetworkState::type ) ) );
toggleSystemTray();
@@ -250,9 +249,9 @@ KMMainWidget::KMMainWidget(TQWidget *parent, const char *name,
KStatusBar *sb = mainWin ? mainWin->statusBar() : 0;
mVacationScriptIndicator = new KStatusBarLabel( TQString(), 0, sb );
mVacationScriptIndicator->hide();
- connect( mVacationScriptIndicator, TQT_SIGNAL(itemReleased(int)), TQT_SLOT(slotEditVacation()) );
+ connect( mVacationScriptIndicator, TQ_SIGNAL(itemReleased(int)), TQ_SLOT(slotEditVacation()) );
if ( GlobalSettings::checkOutOfOfficeOnStartup() )
- TQTimer::singleShot( 0, TQT_TQOBJECT(this), TQT_SLOT(slotCheckVacation()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(slotCheckVacation()) );
}
@@ -469,7 +468,7 @@ void KMMainWidget::readConfig(void)
bool check = config->readBoolEntry("checkmail-startup", false);
if (check)
// do it after building the kmmainwin, so that the progressdialog is available
- TQTimer::singleShot( 0, TQT_TQOBJECT(this), TQT_SLOT( slotCheckMail() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotCheckMail() ) );
}
}
@@ -559,9 +558,9 @@ void KMMainWidget::createWidgets(void)
if ( mLongFolderList ) {
// superior splitter: folder tree vs. rest
// inferior splitter: headers vs. message vs. mime tree
- mPanner1 = new TQSplitter( Qt::Horizontal, this, "panner 1" );
+ mPanner1 = new TQSplitter( TQt::Horizontal, this, "panner 1" );
mPanner1->setOpaqueResize( opaqueResize );
- Qt::Orientation orientation = mReaderWindowBelow ? Qt::Vertical : Qt::Horizontal;
+ TQt::Orientation orientation = mReaderWindowBelow ? TQt::Vertical : TQt::Horizontal;
mPanner2 = new TQSplitter( orientation, mPanner1, "panner 2" );
mPanner2->setOpaqueResize( opaqueResize );
mPanner2->setChildrenCollapsible( false );
@@ -570,10 +569,10 @@ void KMMainWidget::createWidgets(void)
} else /* !mLongFolderList */ {
// superior splitter: ( folder tree + headers ) vs. message vs. mime
// inferior splitter: folder tree vs. headers
- mPanner1 = new TQSplitter( Qt::Vertical, this, "panner 1" );
+ mPanner1 = new TQSplitter( TQt::Vertical, this, "panner 1" );
mPanner1->setOpaqueResize( opaqueResize );
mPanner1->setChildrenCollapsible( false );
- mPanner2 = new TQSplitter( Qt::Horizontal, mPanner1, "panner 2" );
+ mPanner2 = new TQSplitter( TQt::Horizontal, mPanner1, "panner 2" );
mPanner2->setOpaqueResize( opaqueResize );
headerParent = mFolderViewParent = mPanner2;
mimeParent = messageParent = mPanner1;
@@ -610,78 +609,78 @@ void KMMainWidget::createWidgets(void)
actionCollection(), "headers quick search line" );
#endif
label->setBuddy( mQuickSearchLine );
- connect( mQuickSearchLine, TQT_SIGNAL( requestFullSearch() ),
- this, TQT_SLOT( slotRequestFullSearchFromQuickSearch() ) );
+ connect( mQuickSearchLine, TQ_SIGNAL( requestFullSearch() ),
+ this, TQ_SLOT( slotRequestFullSearchFromQuickSearch() ) );
mSearchToolBar->setStretchableWidget( mQuickSearchLine );
- connect( mHeaders, TQT_SIGNAL( messageListUpdated() ),
- mQuickSearchLine, TQT_SLOT( updateSearch() ) );
+ connect( mHeaders, TQ_SIGNAL( messageListUpdated() ),
+ mQuickSearchLine, TQ_SLOT( updateSearch() ) );
if ( !GlobalSettings::self()->quickSearchActive() ) mSearchToolBar->hide();
if (mReaderWindowActive) {
- connect(mHeaders, TQT_SIGNAL(selected(KMMessage*)),
- this, TQT_SLOT(slotMsgSelected(KMMessage*)));
+ connect(mHeaders, TQ_SIGNAL(selected(KMMessage*)),
+ this, TQ_SLOT(slotMsgSelected(KMMessage*)));
}
- connect(mHeaders, TQT_SIGNAL(activated(KMMessage*)),
- this, TQT_SLOT(slotMsgActivated(KMMessage*)));
- connect( mHeaders, TQT_SIGNAL( selectionChanged() ),
- TQT_SLOT( startUpdateMessageActionsTimer() ) );
+ connect(mHeaders, TQ_SIGNAL(activated(KMMessage*)),
+ this, TQ_SLOT(slotMsgActivated(KMMessage*)));
+ connect( mHeaders, TQ_SIGNAL( selectionChanged() ),
+ TQ_SLOT( startUpdateMessageActionsTimer() ) );
TQAccel *accel = actionCollection()->tdeaccel();
accel->connectItem(accel->insertItem(SHIFT+Key_Left),
- mHeaders, TQT_SLOT(selectPrevMessage()));
+ mHeaders, TQ_SLOT(selectPrevMessage()));
accel->connectItem(accel->insertItem(SHIFT+Key_Right),
- mHeaders, TQT_SLOT(selectNextMessage()));
+ mHeaders, TQ_SLOT(selectNextMessage()));
if (mReaderWindowActive) {
- mMsgView = new KMReaderWin(messageParent, TQT_TQWIDGET(this), actionCollection(), 0 );
+ mMsgView = new KMReaderWin(messageParent, this, actionCollection(), 0 );
if ( mMsgActions ) {
mMsgActions->setMessageView( mMsgView );
}
- connect(mMsgView, TQT_SIGNAL(replaceMsgByUnencryptedVersion()),
- this, TQT_SLOT(slotReplaceMsgByUnencryptedVersion()));
- connect(mMsgView, TQT_SIGNAL(popupMenu(KMMessage&,const KURL&,const TQPoint&)),
- this, TQT_SLOT(slotMsgPopup(KMMessage&,const KURL&,const TQPoint&)));
- connect(mMsgView, TQT_SIGNAL(urlClicked(const KURL&,int)),
- mMsgView, TQT_SLOT(slotUrlClicked()));
- connect(mHeaders, TQT_SIGNAL(maybeDeleting()),
- mMsgView, TQT_SLOT(clearCache()));
- connect(mMsgView, TQT_SIGNAL(noDrag()),
- mHeaders, TQT_SLOT(slotNoDrag()));
+ connect(mMsgView, TQ_SIGNAL(replaceMsgByUnencryptedVersion()),
+ this, TQ_SLOT(slotReplaceMsgByUnencryptedVersion()));
+ connect(mMsgView, TQ_SIGNAL(popupMenu(KMMessage&,const KURL&,const TQPoint&)),
+ this, TQ_SLOT(slotMsgPopup(KMMessage&,const KURL&,const TQPoint&)));
+ connect(mMsgView, TQ_SIGNAL(urlClicked(const KURL&,int)),
+ mMsgView, TQ_SLOT(slotUrlClicked()));
+ connect(mHeaders, TQ_SIGNAL(maybeDeleting()),
+ mMsgView, TQ_SLOT(clearCache()));
+ connect(mMsgView, TQ_SIGNAL(noDrag()),
+ mHeaders, TQ_SLOT(slotNoDrag()));
accel->connectItem(accel->insertItem(Key_Up),
- mMsgView, TQT_SLOT(slotScrollUp()));
+ mMsgView, TQ_SLOT(slotScrollUp()));
accel->connectItem(accel->insertItem(Key_Down),
- mMsgView, TQT_SLOT(slotScrollDown()));
+ mMsgView, TQ_SLOT(slotScrollDown()));
accel->connectItem(accel->insertItem(Key_Prior),
- mMsgView, TQT_SLOT(slotScrollPrior()));
+ mMsgView, TQ_SLOT(slotScrollPrior()));
accel->connectItem(accel->insertItem(Key_Next),
- mMsgView, TQT_SLOT(slotScrollNext()));
+ mMsgView, TQ_SLOT(slotScrollNext()));
} else {
mMsgView = NULL;
}
TDEAction *action;
- mMoveMsgToFolderAction = new TDEAction( i18n("Move Message to Folder"), Key_M, TQT_TQOBJECT(this),
- TQT_SLOT(slotMoveMsg()), actionCollection(),
+ mMoveMsgToFolderAction = new TDEAction( i18n("Move Message to Folder"), Key_M, this,
+ TQ_SLOT(slotMoveMsg()), actionCollection(),
"move_message_to_folder" );
mMoveMsgToFolderAction->plugAccel( actionCollection()->tdeaccel() );
- action = new TDEAction( i18n("Copy Message to Folder"), Key_C, TQT_TQOBJECT(this),
- TQT_SLOT(slotCopyMsg()), actionCollection(),
+ action = new TDEAction( i18n("Copy Message to Folder"), Key_C, this,
+ TQ_SLOT(slotCopyMsg()), actionCollection(),
"copy_message_to_folder" );
action->plugAccel( actionCollection()->tdeaccel() );
- action = new TDEAction( i18n("Jump to Folder"), Key_J, TQT_TQOBJECT(this),
- TQT_SLOT(slotJumpToFolder()), actionCollection(),
+ action = new TDEAction( i18n("Jump to Folder"), Key_J, this,
+ TQ_SLOT(slotJumpToFolder()), actionCollection(),
"jump_to_folder" );
action->plugAccel( actionCollection()->tdeaccel() );
// create list of folders
- mFolderViewSplitter = new TQSplitter( Qt::Vertical, mFolderViewParent );
+ mFolderViewSplitter = new TQSplitter( TQt::Vertical, mFolderViewParent );
mFolderViewSplitter->setOpaqueResize( TDEGlobalSettings::opaqueResize() );
mFavoriteFolderView = new KMail::FavoriteFolderView( this, mFolderViewSplitter );
if ( mFavoritesCheckMailAction )
- connect( mFavoritesCheckMailAction, TQT_SIGNAL(activated()), mFavoriteFolderView, TQT_SLOT(checkMail()) );
+ connect( mFavoritesCheckMailAction, TQ_SIGNAL(activated()), mFavoriteFolderView, TQ_SLOT(checkMail()) );
TQWidget *folderTreeParent = mFolderViewParent;
if ( GlobalSettings::enableFavoriteFolderView() ) {
folderTreeParent = mFolderViewSplitter;
@@ -691,72 +690,72 @@ void KMMainWidget::createWidgets(void)
if ( !GlobalSettings::enableFavoriteFolderView() ) {
mFolderView = mFolderTree;
}
- connect( mFolderTree, TQT_SIGNAL(folderSelected(KMFolder*)),
- mFavoriteFolderView, TQT_SLOT(folderTreeSelectionChanged(KMFolder*)) );
-
- connect(mFolderTree, TQT_SIGNAL(folderSelected(KMFolder*)),
- this, TQT_SLOT(folderSelected(KMFolder*)));
- connect( mFolderTree, TQT_SIGNAL( folderSelected( KMFolder* ) ),
- mQuickSearchLine, TQT_SLOT( reset() ) );
- connect(mFolderTree, TQT_SIGNAL(folderSelectedUnread(KMFolder*)),
- this, TQT_SLOT(folderSelectedUnread(KMFolder*)));
- connect(mFolderTree, TQT_SIGNAL(folderDrop(KMFolder*)),
- this, TQT_SLOT(slotMoveMsgToFolder(KMFolder*)));
- connect(mFolderTree, TQT_SIGNAL(folderDropCopy(KMFolder*)),
- this, TQT_SLOT(slotCopyMsgToFolder(KMFolder*)));
- connect(mFolderTree, TQT_SIGNAL(columnsChanged()),
- this, TQT_SLOT(slotFolderTreeColumnsChanged()));
+ connect( mFolderTree, TQ_SIGNAL(folderSelected(KMFolder*)),
+ mFavoriteFolderView, TQ_SLOT(folderTreeSelectionChanged(KMFolder*)) );
+
+ connect(mFolderTree, TQ_SIGNAL(folderSelected(KMFolder*)),
+ this, TQ_SLOT(folderSelected(KMFolder*)));
+ connect( mFolderTree, TQ_SIGNAL( folderSelected( KMFolder* ) ),
+ mQuickSearchLine, TQ_SLOT( reset() ) );
+ connect(mFolderTree, TQ_SIGNAL(folderSelectedUnread(KMFolder*)),
+ this, TQ_SLOT(folderSelectedUnread(KMFolder*)));
+ connect(mFolderTree, TQ_SIGNAL(folderDrop(KMFolder*)),
+ this, TQ_SLOT(slotMoveMsgToFolder(KMFolder*)));
+ connect(mFolderTree, TQ_SIGNAL(folderDropCopy(KMFolder*)),
+ this, TQ_SLOT(slotCopyMsgToFolder(KMFolder*)));
+ connect(mFolderTree, TQ_SIGNAL(columnsChanged()),
+ this, TQ_SLOT(slotFolderTreeColumnsChanged()));
if ( mFavoriteFolderView ) {
- connect( mFavoriteFolderView, TQT_SIGNAL(folderDrop(KMFolder*)), TQT_SLOT(slotMoveMsgToFolder(KMFolder*)) );
- connect( mFavoriteFolderView, TQT_SIGNAL(folderDropCopy(KMFolder*)), TQT_SLOT(slotCopyMsgToFolder(KMFolder*)) );
+ connect( mFavoriteFolderView, TQ_SIGNAL(folderDrop(KMFolder*)), TQ_SLOT(slotMoveMsgToFolder(KMFolder*)) );
+ connect( mFavoriteFolderView, TQ_SIGNAL(folderDropCopy(KMFolder*)), TQ_SLOT(slotCopyMsgToFolder(KMFolder*)) );
}
//Commands not worthy of menu items, but that deserve configurable keybindings
mRemoveDuplicatesAction = new TDEAction(
- i18n("Remove Duplicate Messages"), CTRL+Key_Asterisk, TQT_TQOBJECT(this),
- TQT_SLOT(removeDuplicates()), actionCollection(), "remove_duplicate_messages");
+ i18n("Remove Duplicate Messages"), CTRL+Key_Asterisk, this,
+ TQ_SLOT(removeDuplicates()), actionCollection(), "remove_duplicate_messages");
action->plugAccel( actionCollection()->tdeaccel() );
action = new TDEAction(
i18n("Abort Current Operation"), Key_Escape, ProgressManager::instance(),
- TQT_SLOT(slotAbortAll()), actionCollection(), "cancel" );
+ TQ_SLOT(slotAbortAll()), actionCollection(), "cancel" );
action->plugAccel( actionCollection()->tdeaccel() );
action = new TDEAction(
- i18n("Focus on Next Folder"), CTRL+Key_Right, TQT_TQOBJECT(mFolderTree),
- TQT_SLOT(incCurrentFolder()), actionCollection(), "inc_current_folder");
+ i18n("Focus on Next Folder"), CTRL+Key_Right, mFolderTree,
+ TQ_SLOT(incCurrentFolder()), actionCollection(), "inc_current_folder");
action->plugAccel( actionCollection()->tdeaccel() );
action = new TDEAction(
- i18n("Focus on Previous Folder"), CTRL+Key_Left, TQT_TQOBJECT(mFolderTree),
- TQT_SLOT(decCurrentFolder()), actionCollection(), "dec_current_folder");
+ i18n("Focus on Previous Folder"), CTRL+Key_Left, mFolderTree,
+ TQ_SLOT(decCurrentFolder()), actionCollection(), "dec_current_folder");
action->plugAccel( actionCollection()->tdeaccel() );
action = new TDEAction(
- i18n("Select Folder with Focus"), CTRL+Key_Space, TQT_TQOBJECT(mFolderTree),
- TQT_SLOT(selectCurrentFolder()), actionCollection(), "select_current_folder");
+ i18n("Select Folder with Focus"), CTRL+Key_Space, mFolderTree,
+ TQ_SLOT(selectCurrentFolder()), actionCollection(), "select_current_folder");
action->plugAccel( actionCollection()->tdeaccel() );
action = new TDEAction(
- i18n("Focus on Next Message"), ALT+Key_Right, TQT_TQOBJECT(mHeaders),
- TQT_SLOT(incCurrentMessage()), actionCollection(), "inc_current_message");
+ i18n("Focus on Next Message"), ALT+Key_Right, mHeaders,
+ TQ_SLOT(incCurrentMessage()), actionCollection(), "inc_current_message");
action->plugAccel( actionCollection()->tdeaccel() );
action = new TDEAction(
- i18n("Focus on Previous Message"), ALT+Key_Left, TQT_TQOBJECT(mHeaders),
- TQT_SLOT(decCurrentMessage()), actionCollection(), "dec_current_message");
+ i18n("Focus on Previous Message"), ALT+Key_Left, mHeaders,
+ TQ_SLOT(decCurrentMessage()), actionCollection(), "dec_current_message");
action->plugAccel( actionCollection()->tdeaccel() );
action = new TDEAction(
- i18n("Select Message with Focus"), ALT+Key_Space, TQT_TQOBJECT(mHeaders),
- TQT_SLOT( selectCurrentMessage() ), actionCollection(), "select_current_message");
+ i18n("Select Message with Focus"), ALT+Key_Space, mHeaders,
+ TQ_SLOT( selectCurrentMessage() ), actionCollection(), "select_current_message");
action->plugAccel( actionCollection()->tdeaccel() );
- connect( kmkernel->outboxFolder(), TQT_SIGNAL( msgRemoved(int, TQString) ),
- TQT_SLOT( startUpdateMessageActionsTimer() ) );
- connect( kmkernel->outboxFolder(), TQT_SIGNAL( msgAdded(int) ),
- TQT_SLOT( startUpdateMessageActionsTimer() ) );
+ connect( kmkernel->outboxFolder(), TQ_SIGNAL( msgRemoved(int, TQString) ),
+ TQ_SLOT( startUpdateMessageActionsTimer() ) );
+ connect( kmkernel->outboxFolder(), TQ_SIGNAL( msgAdded(int) ),
+ TQ_SLOT( startUpdateMessageActionsTimer() ) );
}
@@ -765,8 +764,8 @@ void KMMainWidget::activatePanners(void)
{
if (mMsgView) {
TQObject::disconnect( mMsgView->copyAction(),
- TQT_SIGNAL( activated() ),
- mMsgView, TQT_SLOT( slotCopySelectedText() ));
+ TQ_SIGNAL( activated() ),
+ mMsgView, TQ_SLOT( slotCopySelectedText() ));
}
setupFolderView();
@@ -801,8 +800,8 @@ void KMMainWidget::activatePanners(void)
if (mMsgView) {
TQObject::connect( mMsgView->copyAction(),
- TQT_SIGNAL( activated() ),
- mMsgView, TQT_SLOT( slotCopySelectedText() ));
+ TQ_SIGNAL( activated() ),
+ mMsgView, TQ_SLOT( slotCopySelectedText() ));
}
}
@@ -826,8 +825,8 @@ void KMMainWidget::slotSearch()
if(!mSearchWin)
{
mSearchWin = new SearchWindow(this, "Search", mFolder, false);
- connect(mSearchWin, TQT_SIGNAL(destroyed()),
- this, TQT_SLOT(slotSearchClosed()));
+ connect(mSearchWin, TQ_SIGNAL(destroyed()),
+ this, TQ_SLOT(slotSearchClosed()));
}
else
{
@@ -1387,7 +1386,7 @@ void KMMainWidget::slotOverrideHtmlLoadExt()
}
mFolderHtmlLoadExtPref = !mFolderHtmlLoadExtPref;
if (mMsgView) {
- mMsgView->setHtmlLoadExtOverride(mFolderHtmlLoadExtPref);
+ mMsgView->setHtmlLoadExtDefault(mFolderHtmlLoadExtPref);
mMsgView->update( true );
}
}
@@ -1717,8 +1716,8 @@ void KMMainWidget::slotCheckVacation()
if ( !kmkernel->askToGoOnline() )
return;
- Vacation *vac = new Vacation( TQT_TQOBJECT(this), true /* check only */ );
- connect( vac, TQT_SIGNAL(scriptActive(bool)), TQT_SLOT(updateVactionScripStatus(bool)) );
+ Vacation *vac = new Vacation( this, true /* check only */ );
+ connect( vac, TQ_SIGNAL(scriptActive(bool)), TQ_SLOT(updateVactionScripStatus(bool)) );
}
void KMMainWidget::slotEditVacation()
@@ -1730,10 +1729,10 @@ void KMMainWidget::slotEditVacation()
if ( mVacation )
return;
- mVacation = new Vacation( TQT_TQOBJECT(this) );
- connect( mVacation, TQT_SIGNAL(scriptActive(bool)), TQT_SLOT(updateVactionScripStatus(bool)) );
+ mVacation = new Vacation( this );
+ connect( mVacation, TQ_SIGNAL(scriptActive(bool)), TQ_SLOT(updateVactionScripStatus(bool)) );
if ( mVacation->isUsable() ) {
- connect( mVacation, TQT_SIGNAL(result(bool)), mVacation, TQT_SLOT(deleteLater()) );
+ connect( mVacation, TQ_SIGNAL(result(bool)), mVacation, TQ_SLOT(deleteLater()) );
} else {
TQString msg = i18n("KMail's Out of Office Reply functionality relies on "
"server-side filtering. You have not yet configured an "
@@ -1839,7 +1838,7 @@ void KMMainWidget::slotPrintMsg()
//-----------------------------------------------------------------------------
void KMMainWidget::setupForwardActions()
{
- disconnect( mForwardActionMenu, TQT_SIGNAL( activated() ), 0, 0 );
+ disconnect( mForwardActionMenu, TQ_SIGNAL( activated() ), 0, 0 );
mForwardActionMenu->remove( mForwardInlineAction );
mForwardActionMenu->remove( mForwardAttachedAction );
@@ -1848,16 +1847,16 @@ void KMMainWidget::setupForwardActions()
mForwardActionMenu->insert( mForwardAttachedAction, 1 );
mForwardInlineAction->setShortcut( Key_F );
mForwardAttachedAction->setShortcut( SHIFT+Key_F );
- connect( mForwardActionMenu, TQT_SIGNAL(activated()), TQT_TQOBJECT(this),
- TQT_SLOT(slotForwardInlineMsg()) );
+ connect( mForwardActionMenu, TQ_SIGNAL(activated()), this,
+ TQ_SLOT(slotForwardInlineMsg()) );
} else {
mForwardActionMenu->insert( mForwardAttachedAction, 0 );
mForwardActionMenu->insert( mForwardInlineAction, 1 );
mForwardInlineAction->setShortcut( SHIFT+Key_F );
mForwardAttachedAction->setShortcut( Key_F );
- connect( mForwardActionMenu, TQT_SIGNAL(activated()), TQT_TQOBJECT(this),
- TQT_SLOT(slotForwardAttachedMsg()) );
+ connect( mForwardActionMenu, TQ_SIGNAL(activated()), this,
+ TQ_SLOT(slotForwardAttachedMsg()) );
}
}
@@ -2026,14 +2025,14 @@ void KMMainWidget::folderSelected( KMFolder* aFolder, bool forceJumpToUnread )
if ( newFolder )
writeFolderConfig();
if ( mFolder ) {
- disconnect( mFolder, TQT_SIGNAL( changed() ),
- this, TQT_SLOT( updateMarkAsReadAction() ) );
- disconnect( mFolder, TQT_SIGNAL( msgHeaderChanged( KMFolder*, int ) ),
- this, TQT_SLOT( updateMarkAsReadAction() ) );
- disconnect( mFolder, TQT_SIGNAL( msgAdded( int ) ),
- this, TQT_SLOT( updateMarkAsReadAction() ) );
- disconnect( mFolder, TQT_SIGNAL( msgRemoved( KMFolder * ) ),
- this, TQT_SLOT( updateMarkAsReadAction() ) );
+ disconnect( mFolder, TQ_SIGNAL( changed() ),
+ this, TQ_SLOT( updateMarkAsReadAction() ) );
+ disconnect( mFolder, TQ_SIGNAL( msgHeaderChanged( KMFolder*, int ) ),
+ this, TQ_SLOT( updateMarkAsReadAction() ) );
+ disconnect( mFolder, TQ_SIGNAL( msgAdded( int ) ),
+ this, TQ_SLOT( updateMarkAsReadAction() ) );
+ disconnect( mFolder, TQ_SIGNAL( msgRemoved( KMFolder * ) ),
+ this, TQ_SLOT( updateMarkAsReadAction() ) );
}
mFolder = aFolder;
@@ -2050,8 +2049,8 @@ void KMMainWidget::folderSelected( KMFolder* aFolder, bool forceJumpToUnread )
imap->open("mainwidget"); // will be closed in the folderSelected slot
// first get new headers before we select the folder
imap->setSelected( true );
- connect( imap, TQT_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
- this, TQT_SLOT( folderSelected() ) );
+ connect( imap, TQ_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
+ this, TQ_SLOT( folderSelected() ) );
imap->getAndCheckFolder();
mHeaders->setFolder( 0 );
updateFolderMenu();
@@ -2060,32 +2059,32 @@ void KMMainWidget::folderSelected( KMFolder* aFolder, bool forceJumpToUnread )
// Set a timer to show a splash screen if fetching folder contents
// takes more than the amount of seconds configured in the kmailrc (default 1000 msec)
mShowBusySplashTimer = new TQTimer( this );
- connect( mShowBusySplashTimer, TQT_SIGNAL( timeout() ), TQT_TQOBJECT(this), TQT_SLOT( slotShowBusySplash() ) );
+ connect( mShowBusySplashTimer, TQ_SIGNAL( timeout() ), this, TQ_SLOT( slotShowBusySplash() ) );
mShowBusySplashTimer->start( GlobalSettings::self()->folderLoadingTimeout(), true );
return;
} else {
// the folder is complete now - so go ahead
- disconnect( imap, TQT_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
- this, TQT_SLOT( folderSelected() ) );
+ disconnect( imap, TQ_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
+ this, TQ_SLOT( folderSelected() ) );
forceJumpToUnread = mForceJumpToUnread;
}
}
if ( mFolder ) { // == 0 -> pointing to toplevel ("Welcome to KMail") folder
- connect( mFolder, TQT_SIGNAL( changed() ),
- this, TQT_SLOT( updateMarkAsReadAction() ) );
- connect( mFolder, TQT_SIGNAL( msgHeaderChanged( KMFolder*, int ) ),
- this, TQT_SLOT( updateMarkAsReadAction() ) );
- connect( mFolder, TQT_SIGNAL( msgAdded( int ) ),
- this, TQT_SLOT( updateMarkAsReadAction() ) );
- connect( mFolder, TQT_SIGNAL( msgRemoved(KMFolder *) ),
- this, TQT_SLOT( updateMarkAsReadAction() ) );
+ connect( mFolder, TQ_SIGNAL( changed() ),
+ this, TQ_SLOT( updateMarkAsReadAction() ) );
+ connect( mFolder, TQ_SIGNAL( msgHeaderChanged( KMFolder*, int ) ),
+ this, TQ_SLOT( updateMarkAsReadAction() ) );
+ connect( mFolder, TQ_SIGNAL( msgAdded( int ) ),
+ this, TQ_SLOT( updateMarkAsReadAction() ) );
+ connect( mFolder, TQ_SIGNAL( msgRemoved(KMFolder *) ),
+ this, TQ_SLOT( updateMarkAsReadAction() ) );
}
readFolderConfig();
if (mMsgView)
{
mMsgView->setHtmlOverride(mFolderHtmlPref);
- mMsgView->setHtmlLoadExtOverride(mFolderHtmlLoadExtPref);
+ mMsgView->setHtmlLoadExtDefault(mFolderHtmlLoadExtPref);
}
mHeaders->setFolder( mFolder, forceJumpToUnread );
updateMessageActions();
@@ -2133,15 +2132,16 @@ void KMMainWidget::slotMsgSelected(KMMessage *msg)
}
mJob = msg->parent()->createJob( msg, FolderJob::tGetMessage, 0,
"STRUCTURE", mMsgView->attachmentStrategy() );
- connect(mJob, TQT_SIGNAL(messageRetrieved(KMMessage*)),
- mMsgView, TQT_SLOT(slotMessageArrived(KMMessage*)));
+ connect(mJob, TQ_SIGNAL(messageRetrieved(KMMessage*)),
+ mMsgView, TQ_SLOT(slotMessageArrived(KMMessage*)));
mJob->start();
} else {
mMsgView->setMsg(msg);
}
// reset HTML override to the folder setting
mMsgView->setHtmlOverride(mFolderHtmlPref);
- mMsgView->setHtmlLoadExtOverride(mFolderHtmlLoadExtPref);
+ mMsgView->setHtmlLoadExtDefault(mFolderHtmlLoadExtPref);
+ mMsgView->setHtmlLoadExtOverride(false);
mMsgView->setDecryptMessageOverwrite( false );
mMsgView->setShowSignatureDetails( false );
}
@@ -2318,8 +2318,8 @@ void KMMainWidget::slotMsgActivated(KMMessage *msg)
if ( !msg ) return;
if ( msg->parent() && !msg->isComplete() ) {
FolderJob *job = msg->parent()->createJob( msg );
- connect( job, TQT_SIGNAL( messageRetrieved( KMMessage* ) ),
- TQT_SLOT( slotMsgActivated( KMMessage* ) ) );
+ connect( job, TQ_SIGNAL( messageRetrieved( KMMessage* ) ),
+ TQ_SLOT( slotMsgActivated( KMMessage* ) ) );
job->start();
return;
}
@@ -2509,26 +2509,26 @@ void KMMainWidget::updateCustomTemplateMenus()
new TDEActionMenu( i18n("Forward With Custom Template"),
"mail_custom_forward",
actionCollection(), "custom_forward" );
- TQSignalMapper *mCustomForwardMapper = new TQSignalMapper( TQT_TQOBJECT(this) );
- connect( mCustomForwardMapper, TQT_SIGNAL( mapped( int ) ),
- TQT_TQOBJECT(this), TQT_SLOT( slotCustomForwardMsg( int ) ) );
+ TQSignalMapper *mCustomForwardMapper = new TQSignalMapper( this );
+ connect( mCustomForwardMapper, TQ_SIGNAL( mapped( int ) ),
+ this, TQ_SLOT( slotCustomForwardMsg( int ) ) );
mForwardActionMenu->insert( mCustomForwardActionMenu );
mCustomReplyActionMenu =
new TDEActionMenu( i18n("Reply With Custom Template"), "mail_custom_reply",
actionCollection(), "custom_reply" );
- TQSignalMapper *mCustomReplyMapper = new TQSignalMapper( TQT_TQOBJECT(this) );
- connect( mCustomReplyMapper, TQT_SIGNAL( mapped( int ) ),
- TQT_TQOBJECT(this), TQT_SLOT( slotCustomReplyToMsg( int ) ) );
+ TQSignalMapper *mCustomReplyMapper = new TQSignalMapper( this );
+ connect( mCustomReplyMapper, TQ_SIGNAL( mapped( int ) ),
+ this, TQ_SLOT( slotCustomReplyToMsg( int ) ) );
mMsgActions->replyMenu()->insert( mCustomReplyActionMenu );
mCustomReplyAllActionMenu =
new TDEActionMenu( i18n("Reply to All With Custom Template"),
"mail_custom_reply_all",
actionCollection(), "custom_reply_all" );
- TQSignalMapper *mCustomReplyAllMapper = new TQSignalMapper( TQT_TQOBJECT(this) );
- connect( mCustomReplyAllMapper, TQT_SIGNAL( mapped( int ) ),
- TQT_TQOBJECT(this), TQT_SLOT( slotCustomReplyAllToMsg( int ) ) );
+ TQSignalMapper *mCustomReplyAllMapper = new TQSignalMapper( this );
+ connect( mCustomReplyAllMapper, TQ_SIGNAL( mapped( int ) ),
+ this, TQ_SLOT( slotCustomReplyAllToMsg( int ) ) );
mMsgActions->replyMenu()->insert( mCustomReplyAllActionMenu );
mCustomTemplates.clear();
@@ -2549,7 +2549,7 @@ void KMMainWidget::updateCustomTemplateMenus()
action = new TDEAction( (*it).replace( "&", "&&" ),
TDEShortcut( t.shortcut() ),
mCustomReplyMapper,
- TQT_SLOT( map() ),
+ TQ_SLOT( map() ),
actionCollection(),
(*it).utf8() );
mCustomReplyMapper->setMapping( action, idx );
@@ -2561,7 +2561,7 @@ void KMMainWidget::updateCustomTemplateMenus()
action = new TDEAction( (*it).replace( "&", "&&" ),
TDEShortcut( t.shortcut() ),
mCustomReplyAllMapper,
- TQT_SLOT( map() ),
+ TQ_SLOT( map() ),
actionCollection(),
(*it).utf8() );
mCustomReplyAllMapper->setMapping( action, idx );
@@ -2573,7 +2573,7 @@ void KMMainWidget::updateCustomTemplateMenus()
action = new TDEAction( (*it).replace( "&", "&&" ),
TDEShortcut( t.shortcut() ),
mCustomForwardMapper,
- TQT_SLOT( map() ),
+ TQ_SLOT( map() ),
actionCollection(),
(*it).utf8() );
mCustomForwardMapper->setMapping( action, idx );
@@ -2585,7 +2585,7 @@ void KMMainWidget::updateCustomTemplateMenus()
action = new TDEAction( (*it).replace( "&", "&&" ),
TDEShortcut::null(),
mCustomReplyMapper,
- TQT_SLOT( map() ),
+ TQ_SLOT( map() ),
actionCollection(),
(*it).utf8() );
mCustomReplyMapper->setMapping( action, idx );
@@ -2595,7 +2595,7 @@ void KMMainWidget::updateCustomTemplateMenus()
action = new TDEAction( (*it).replace( "&", "&&" ),
TDEShortcut::null(),
mCustomReplyAllMapper,
- TQT_SLOT( map() ),
+ TQ_SLOT( map() ),
actionCollection(),
(*it).utf8() );
mCustomReplyAllMapper->setMapping( action, idx );
@@ -2605,7 +2605,7 @@ void KMMainWidget::updateCustomTemplateMenus()
action = new TDEAction( (*it).replace( "&", "&&" ),
TDEShortcut::null(),
mCustomForwardMapper,
- TQT_SLOT( map() ),
+ TQ_SLOT( map() ),
actionCollection(),
(*it).utf8() );
mCustomForwardMapper->setMapping( action, idx );
@@ -2645,53 +2645,53 @@ void KMMainWidget::setupActions()
//----- File Menu
mSaveAsAction = new TDEAction( i18n("Save &As..."), "document-save",
TDEStdAccel::shortcut(TDEStdAccel::Save),
- TQT_TQOBJECT(this), TQT_SLOT(slotSaveMsg()), actionCollection(), "file_save_as" );
+ this, TQ_SLOT(slotSaveMsg()), actionCollection(), "file_save_as" );
- mOpenAction = KStdAction::open( TQT_TQOBJECT(this), TQT_SLOT( slotOpenMsg() ),
+ mOpenAction = KStdAction::open( this, TQ_SLOT( slotOpenMsg() ),
actionCollection() );
(void) new TDEAction( i18n("&Compact All Folders"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotCompactAll()),
+ this, TQ_SLOT(slotCompactAll()),
actionCollection(), "compact_all_folders" );
(void) new TDEAction( i18n("&Expire All Folders"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotExpireAll()),
+ this, TQ_SLOT(slotExpireAll()),
actionCollection(), "expire_all_folders" );
(void) new TDEAction( i18n("&Refresh Local IMAP Cache"), "refresh",
- TQT_TQOBJECT(this), TQT_SLOT(slotInvalidateIMAPFolders()),
+ this, TQ_SLOT(slotInvalidateIMAPFolders()),
actionCollection(), "file_invalidate_imap_cache" );
(void) new TDEAction( i18n("Empty All &Trash Folders"), 0,
- KMKernel::self(), TQT_SLOT(slotEmptyTrash()),
+ KMKernel::self(), TQ_SLOT(slotEmptyTrash()),
actionCollection(), "empty_trash" );
(void) new TDEAction( i18n("Check &Mail"), "mail_get", CTRL+Key_L,
- TQT_TQOBJECT(this), TQT_SLOT(slotCheckMail()),
+ this, TQ_SLOT(slotCheckMail()),
actionCollection(), "check_mail" );
mFavoritesCheckMailAction = new TDEAction( i18n("Check Mail in Favorite Folders"),
"mail_get", CTRL+SHIFT+Key_L, 0, 0,
actionCollection(), "favorite_check_mail" );
if ( mFavoriteFolderView )
- connect( mFavoritesCheckMailAction, TQT_SIGNAL(activated()), mFavoriteFolderView, TQT_SLOT(checkMail()) );
+ connect( mFavoritesCheckMailAction, TQ_SIGNAL(activated()), mFavoriteFolderView, TQ_SLOT(checkMail()) );
TDEActionMenu *actActionMenu = new
TDEActionMenu( i18n("Check Mail &In"), "mail_get", actionCollection(),
"check_mail_in" );
actActionMenu->setDelayed(true); //needed for checking "all accounts"
- connect(actActionMenu,TQT_SIGNAL(activated()),this,TQT_SLOT(slotCheckMail()));
+ connect(actActionMenu,TQ_SIGNAL(activated()),this,TQ_SLOT(slotCheckMail()));
mActMenu = actActionMenu->popupMenu();
- connect(mActMenu,TQT_SIGNAL(activated(int)),this,TQT_SLOT(slotCheckOneAccount(int)));
- connect(mActMenu,TQT_SIGNAL(aboutToShow()),this,TQT_SLOT(getAccountMenu()));
+ connect(mActMenu,TQ_SIGNAL(activated(int)),this,TQ_SLOT(slotCheckOneAccount(int)));
+ connect(mActMenu,TQ_SIGNAL(aboutToShow()),this,TQ_SLOT(getAccountMenu()));
- (void) new TDEAction( i18n("&Send Queued Messages"), "mail-send", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotSendQueued()), actionCollection(), "send_queued");
+ (void) new TDEAction( i18n("&Send Queued Messages"), "mail-send", 0, this,
+ TQ_SLOT(slotSendQueued()), actionCollection(), "send_queued");
- (void) new TDEAction( i18n("Online Status (unknown)"), "online_status", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotOnlineStatus()), actionCollection(), "online_status");
+ (void) new TDEAction( i18n("Online Status (unknown)"), "online_status", 0, this,
+ TQ_SLOT(slotOnlineStatus()), actionCollection(), "online_status");
TDEActionMenu *sendActionMenu = new
TDEActionMenu( i18n("Send Queued Messages Via"), "mail_send_via", actionCollection(),
@@ -2699,166 +2699,166 @@ void KMMainWidget::setupActions()
sendActionMenu->setDelayed(true);
mSendMenu = sendActionMenu->popupMenu();
- connect(mSendMenu,TQT_SIGNAL(activated(int)), TQT_TQOBJECT(this), TQT_SLOT(slotSendQueuedVia(int)));
- connect(mSendMenu,TQT_SIGNAL(aboutToShow()),this,TQT_SLOT(getTransportMenu()));
+ connect(mSendMenu,TQ_SIGNAL(activated(int)), this, TQ_SLOT(slotSendQueuedVia(int)));
+ connect(mSendMenu,TQ_SIGNAL(aboutToShow()),this,TQ_SLOT(getTransportMenu()));
TDEAction *act;
//----- Tools menu
if (parent()->inherits("KMMainWin")) {
- act = new TDEAction( i18n("&Address Book..."), "contents", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAddrBook()), actionCollection(), "addressbook" );
+ act = new TDEAction( i18n("&Address Book..."), "contents", 0, this,
+ TQ_SLOT(slotAddrBook()), actionCollection(), "addressbook" );
if (TDEStandardDirs::findExe("kaddressbook").isEmpty()) act->setEnabled(false);
}
- act = new TDEAction( i18n("Certificate Manager..."), "pgp-keys", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotStartCertManager()), actionCollection(), "tools_start_certman");
+ act = new TDEAction( i18n("Certificate Manager..."), "pgp-keys", 0, this,
+ TQ_SLOT(slotStartCertManager()), actionCollection(), "tools_start_certman");
// disable action if no certman binary is around
if (TDEStandardDirs::findExe("kleopatra").isEmpty()) act->setEnabled(false);
- act = new TDEAction( i18n("GnuPG Log Viewer..."), "pgp-keys", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotStartWatchGnuPG()), actionCollection(), "tools_start_kwatchgnupg");
+ act = new TDEAction( i18n("GnuPG Log Viewer..."), "pgp-keys", 0, this,
+ TQ_SLOT(slotStartWatchGnuPG()), actionCollection(), "tools_start_kwatchgnupg");
// disable action if no kwatchgnupg binary is around
if (TDEStandardDirs::findExe("kwatchgnupg").isEmpty()) act->setEnabled(false);
- act = new TDEAction( i18n("&Import Messages..."), "document-open", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotImport()), actionCollection(), "import" );
+ act = new TDEAction( i18n("&Import Messages..."), "document-open", 0, this,
+ TQ_SLOT(slotImport()), actionCollection(), "import" );
if (TDEStandardDirs::findExe("kmailcvt").isEmpty()) act->setEnabled(false);
#if !defined(NDEBUG)
(void) new TDEAction( i18n("&Debug Sieve..."),
- "idea", 0, TQT_TQOBJECT(this), TQT_SLOT(slotDebugSieve()),
+ "idea", 0, this, TQ_SLOT(slotDebugSieve()),
actionCollection(), "tools_debug_sieve" );
#endif
if ( GlobalSettings::allowOutOfOfficeSettings() ) {
(void) new TDEAction( i18n("Edit \"Out of Office\" Replies..."),
- "configure", 0, TQT_TQOBJECT(this), TQT_SLOT(slotEditVacation()),
+ "configure", 0, this, TQ_SLOT(slotEditVacation()),
actionCollection(), "tools_edit_vacation" );
}
- (void) new TDEAction( i18n("Filter &Log Viewer..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotFilterLogViewer()), actionCollection(), "filter_log_viewer" );
+ (void) new TDEAction( i18n("Filter &Log Viewer..."), 0, this,
+ TQ_SLOT(slotFilterLogViewer()), actionCollection(), "filter_log_viewer" );
- (void) new TDEAction( i18n("&Anti-Spam Wizard..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAntiSpamWizard()), actionCollection(), "antiSpamWizard" );
- (void) new TDEAction( i18n("&Anti-Virus Wizard..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAntiVirusWizard()), actionCollection(), "antiVirusWizard" );
+ (void) new TDEAction( i18n("&Anti-Spam Wizard..."), 0, this,
+ TQ_SLOT(slotAntiSpamWizard()), actionCollection(), "antiSpamWizard" );
+ (void) new TDEAction( i18n("&Anti-Virus Wizard..."), 0, this,
+ TQ_SLOT(slotAntiVirusWizard()), actionCollection(), "antiVirusWizard" );
//----- Edit Menu
mTrashAction = new TDEAction( KGuiItem( i18n("&Move to Trash"), "edittrash",
i18n("Move message to trashcan") ),
- Key_Delete, TQT_TQOBJECT(this), TQT_SLOT(slotTrashMsg()),
+ Key_Delete, this, TQ_SLOT(slotTrashMsg()),
actionCollection(), "move_to_trash" );
/* The delete action is nowhere in the gui, by default, so we need to make
* sure it is plugged into the TDEAccel now, since that won't happen on
* XMLGui construction or manual ->plug(). This is only a problem when run
* as a part, though. */
- mDeleteAction = new TDEAction( i18n("&Delete"), "edit-delete", SHIFT+Key_Delete, TQT_TQOBJECT(this),
- TQT_SLOT(slotDeleteMsg()), actionCollection(), "delete" );
+ mDeleteAction = new TDEAction( i18n("&Delete"), "edit-delete", SHIFT+Key_Delete, this,
+ TQ_SLOT(slotDeleteMsg()), actionCollection(), "delete" );
mDeleteAction->plugAccel( actionCollection()->tdeaccel() );
mTrashThreadAction = new TDEAction( KGuiItem( i18n("M&ove Thread to Trash"), "edittrash",
i18n("Move thread to trashcan") ),
- CTRL+Key_Delete, TQT_TQOBJECT(this), TQT_SLOT(slotTrashThread()),
+ CTRL+Key_Delete, this, TQ_SLOT(slotTrashThread()),
actionCollection(), "move_thread_to_trash" );
- mDeleteThreadAction = new TDEAction( i18n("Delete T&hread"), "edit-delete", CTRL+SHIFT+Key_Delete, TQT_TQOBJECT(this),
- TQT_SLOT(slotDeleteThread()), actionCollection(), "delete_thread" );
+ mDeleteThreadAction = new TDEAction( i18n("Delete T&hread"), "edit-delete", CTRL+SHIFT+Key_Delete, this,
+ TQ_SLOT(slotDeleteThread()), actionCollection(), "delete_thread" );
- (void) new TDEAction( i18n("&Find Messages..."), "mail_find", Key_S, TQT_TQOBJECT(this),
- TQT_SLOT(slotRequestFullSearchFromQuickSearch()), actionCollection(), "search_messages" );
+ (void) new TDEAction( i18n("&Find Messages..."), "mail_find", Key_S, this,
+ TQ_SLOT(slotRequestFullSearchFromQuickSearch()), actionCollection(), "search_messages" );
- mFindInMessageAction = new TDEAction( i18n("&Find in Message..."), "edit-find", TDEStdAccel::shortcut(TDEStdAccel::Find), TQT_TQOBJECT(this),
- TQT_SLOT(slotFind()), actionCollection(), "find_in_messages" );
+ mFindInMessageAction = new TDEAction( i18n("&Find in Message..."), "edit-find", TDEStdAccel::shortcut(TDEStdAccel::Find), this,
+ TQ_SLOT(slotFind()), actionCollection(), "find_in_messages" );
- (void) new TDEAction( i18n("Select &All Messages"), TDEStdAccel::selectAll(), TQT_TQOBJECT(this),
- TQT_SLOT(slotMarkAll()), actionCollection(), "mark_all_messages" );
+ (void) new TDEAction( i18n("Select &All Messages"), TDEStdAccel::selectAll(), this,
+ TQ_SLOT(slotMarkAll()), actionCollection(), "mark_all_messages" );
//----- Folder Menu
- mNewFolderAction = new TDEAction( i18n("&New Folder..."), "folder-new", 0, TQT_TQOBJECT(mFolderTree),
- TQT_SLOT(addChildFolder()), actionCollection(), "new_folder" );
+ mNewFolderAction = new TDEAction( i18n("&New Folder..."), "folder-new", 0, mFolderTree,
+ TQ_SLOT(addChildFolder()), actionCollection(), "new_folder" );
- mModifyFolderAction = new TDEAction( i18n("&Properties"), "configure", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotModifyFolder()), actionCollection(), "modify" );
+ mModifyFolderAction = new TDEAction( i18n("&Properties"), "configure", 0, this,
+ TQ_SLOT(slotModifyFolder()), actionCollection(), "modify" );
mFolderMailingListPropertiesAction = new TDEAction( i18n("&Mailing List Management..."),
- /*"folder_mailinglist_properties",*/ 0, TQT_TQOBJECT(this), TQT_SLOT( slotFolderMailingListProperties() ),
+ /*"folder_mailinglist_properties",*/ 0, this, TQ_SLOT( slotFolderMailingListProperties() ),
actionCollection(), "folder_mailinglist_properties" );
mFolderShortCutCommandAction = new TDEAction( i18n("&Assign Shortcut..."), "configure_shortcuts",
- 0, TQT_TQOBJECT(this), TQT_SLOT( slotFolderShortcutCommand() ), actionCollection(),
+ 0, this, TQ_SLOT( slotFolderShortcutCommand() ), actionCollection(),
"folder_shortcut_command" );
- mMarkAllAsReadAction = new TDEAction( i18n("Mark All Messages as &Read"), "goto", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotMarkAllAsRead()), actionCollection(), "mark_all_as_read" );
+ mMarkAllAsReadAction = new TDEAction( i18n("Mark All Messages as &Read"), "goto", 0, this,
+ TQ_SLOT(slotMarkAllAsRead()), actionCollection(), "mark_all_as_read" );
- mExpireFolderAction = new TDEAction(i18n("&Expiration Settings"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotExpireFolder()),
+ mExpireFolderAction = new TDEAction(i18n("&Expiration Settings"), 0, this, TQ_SLOT(slotExpireFolder()),
actionCollection(), "expire");
- mCompactFolderAction = new TDEAction( i18n("&Compact Folder"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotCompactFolder()), actionCollection(), "compact" );
+ mCompactFolderAction = new TDEAction( i18n("&Compact Folder"), 0, this,
+ TQ_SLOT(slotCompactFolder()), actionCollection(), "compact" );
mRefreshFolderAction = new TDEAction( i18n("Check Mail &in This Folder"), "reload",
- TDEStdAccel::shortcut( TDEStdAccel::Reload ), TQT_TQOBJECT(this),
- TQT_SLOT(slotRefreshFolder()),
+ TDEStdAccel::shortcut( TDEStdAccel::Reload ), this,
+ TQ_SLOT(slotRefreshFolder()),
actionCollection(), "refresh_folder" );
mTroubleshootFolderAction = 0; // set in initializeIMAPActions
- mEmptyFolderAction = new TDEAction( "foo" /*set in updateFolderMenu*/, "edittrash", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotEmptyFolder()), actionCollection(), "empty" );
+ mEmptyFolderAction = new TDEAction( "foo" /*set in updateFolderMenu*/, "edittrash", 0, this,
+ TQ_SLOT(slotEmptyFolder()), actionCollection(), "empty" );
- mRemoveFolderAction = new TDEAction( "foo" /*set in updateFolderMenu*/, "edit-delete", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotRemoveFolder()), actionCollection(), "delete_folder" );
+ mRemoveFolderAction = new TDEAction( "foo" /*set in updateFolderMenu*/, "edit-delete", 0, this,
+ TQ_SLOT(slotRemoveFolder()), actionCollection(), "delete_folder" );
- mArchiveFolderAction = new TDEAction( i18n( "&Archive Folder..." ), "document-save", 0, TQT_TQOBJECT(this),
- TQT_SLOT( slotArchiveFolder() ), actionCollection(),
+ mArchiveFolderAction = new TDEAction( i18n( "&Archive Folder..." ), "document-save", 0, this,
+ TQ_SLOT( slotArchiveFolder() ), actionCollection(),
"archive_folder" );
- mPreferHtmlAction = new TDEToggleAction( i18n("Prefer &HTML to Plain Text"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotOverrideHtml()), actionCollection(), "prefer_html" );
+ mPreferHtmlAction = new TDEToggleAction( i18n("Prefer &HTML to Plain Text"), 0, this,
+ TQ_SLOT(slotOverrideHtml()), actionCollection(), "prefer_html" );
- mPreferHtmlLoadExtAction = new TDEToggleAction( i18n("Load E&xternal References"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotOverrideHtmlLoadExt()), actionCollection(), "prefer_html_external_refs" );
+ mPreferHtmlLoadExtAction = new TDEToggleAction( i18n("Load E&xternal References"), 0, this,
+ TQ_SLOT(slotOverrideHtmlLoadExt()), actionCollection(), "prefer_html_external_refs" );
- mThreadMessagesAction = new TDEToggleAction( i18n("&Thread Messages"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotOverrideThread()), actionCollection(), "thread_messages" );
+ mThreadMessagesAction = new TDEToggleAction( i18n("&Thread Messages"), 0, this,
+ TQ_SLOT(slotOverrideThread()), actionCollection(), "thread_messages" );
- mThreadBySubjectAction = new TDEToggleAction( i18n("Thread Messages also by &Subject"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotToggleSubjectThreading()), actionCollection(), "thread_messages_by_subject" );
+ mThreadBySubjectAction = new TDEToggleAction( i18n("Thread Messages also by &Subject"), 0, this,
+ TQ_SLOT(slotToggleSubjectThreading()), actionCollection(), "thread_messages_by_subject" );
- new TDEAction( i18n("Copy Folder"), "edit-copy", SHIFT+CTRL+Key_C, TQT_TQOBJECT(folderTree()),
- TQT_SLOT(copyFolder()), actionCollection(), "copy_folder" );
- new TDEAction( i18n("Cut Folder"), "edit-cut", SHIFT+CTRL+Key_X, TQT_TQOBJECT(folderTree()),
- TQT_SLOT(cutFolder()), actionCollection(), "cut_folder" );
- new TDEAction( i18n("Paste Folder"), "edit-paste", SHIFT+CTRL+Key_V, TQT_TQOBJECT(folderTree()),
- TQT_SLOT(pasteFolder()), actionCollection(), "paste_folder" );
+ new TDEAction( i18n("Copy Folder"), "edit-copy", SHIFT+CTRL+Key_C, folderTree(),
+ TQ_SLOT(copyFolder()), actionCollection(), "copy_folder" );
+ new TDEAction( i18n("Cut Folder"), "edit-cut", SHIFT+CTRL+Key_X, folderTree(),
+ TQ_SLOT(cutFolder()), actionCollection(), "cut_folder" );
+ new TDEAction( i18n("Paste Folder"), "edit-paste", SHIFT+CTRL+Key_V, folderTree(),
+ TQ_SLOT(pasteFolder()), actionCollection(), "paste_folder" );
- new TDEAction( i18n("Copy Messages"), "edit-copy", ALT+CTRL+Key_C, TQT_TQOBJECT(headers()),
- TQT_SLOT(copyMessages()), actionCollection(), "copy_messages" );
- new TDEAction( i18n("Cut Messages"), "edit-cut", ALT+CTRL+Key_X, TQT_TQOBJECT(headers()),
- TQT_SLOT(cutMessages()), actionCollection(), "cut_messages" );
- new TDEAction( i18n("Paste Messages"), "edit-paste", ALT+CTRL+Key_V, TQT_TQOBJECT(headers()),
- TQT_SLOT(pasteMessages()), actionCollection(), "paste_messages" );
+ new TDEAction( i18n("Copy Messages"), "edit-copy", ALT+CTRL+Key_C, headers(),
+ TQ_SLOT(copyMessages()), actionCollection(), "copy_messages" );
+ new TDEAction( i18n("Cut Messages"), "edit-cut", ALT+CTRL+Key_X, headers(),
+ TQ_SLOT(cutMessages()), actionCollection(), "cut_messages" );
+ new TDEAction( i18n("Paste Messages"), "edit-paste", ALT+CTRL+Key_V, headers(),
+ TQ_SLOT(pasteMessages()), actionCollection(), "paste_messages" );
//----- Message Menu
- (void) new TDEAction( i18n("&New Message..."), "mail-message-new", TDEStdAccel::shortcut(TDEStdAccel::New), TQT_TQOBJECT(this),
- TQT_SLOT(slotCompose()), actionCollection(), "new_message" );
+ (void) new TDEAction( i18n("&New Message..."), "mail-message-new", TDEStdAccel::shortcut(TDEStdAccel::New), this,
+ TQ_SLOT(slotCompose()), actionCollection(), "new_message" );
mTemplateMenu =
new TDEActionMenu( i18n("New Message From &Template"), "document-new",
actionCollection(), "new_from_template" );
mTemplateMenu->setDelayed( true );
- connect( mTemplateMenu->popupMenu(), TQT_SIGNAL( aboutToShow() ), TQT_TQOBJECT(this),
- TQT_SLOT( slotShowNewFromTemplate() ) );
- connect( mTemplateMenu->popupMenu(), TQT_SIGNAL( activated(int) ), TQT_TQOBJECT(this),
- TQT_SLOT( slotNewFromTemplate(int) ) );
+ connect( mTemplateMenu->popupMenu(), TQ_SIGNAL( aboutToShow() ), this,
+ TQ_SLOT( slotShowNewFromTemplate() ) );
+ connect( mTemplateMenu->popupMenu(), TQ_SIGNAL( activated(int) ), this,
+ TQ_SLOT( slotNewFromTemplate(int) ) );
TDEAction* newToML = new TDEAction( i18n("New Message t&o Mailing-List..."), "mail_post_to",
- CTRL+SHIFT+Key_N, TQT_TQOBJECT(this),
- TQT_SLOT(slotPostToML()), actionCollection(), "post_message" );
+ CTRL+SHIFT+Key_N, this,
+ TQ_SLOT(slotPostToML()), actionCollection(), "post_message" );
newToML->plugAccel( actionCollection()->tdeaccel() );
mForwardActionMenu = new TDEActionMenu( i18n("Message->","&Forward"),
@@ -2866,26 +2866,26 @@ void KMMainWidget::setupActions()
"message_forward" );
mForwardInlineAction = new TDEAction( i18n("&Inline..."),
- "mail-forward", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotForwardInlineMsg()),
+ "mail-forward", 0, this,
+ TQ_SLOT(slotForwardInlineMsg()),
actionCollection(),
"message_forward_inline" );
mForwardAttachedAction = new TDEAction( i18n("Message->Forward->","As &Attachment..."),
- "mail-forward", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotForwardAttachedMsg()),
+ "mail-forward", 0, this,
+ TQ_SLOT(slotForwardAttachedMsg()),
actionCollection(),
"message_forward_as_attachment" );
mForwardDigestAction = new TDEAction( i18n("Message->Forward->","As Di&gest..."),
- "mail-forward", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotForwardDigestMsg()),
+ "mail-forward", 0, this,
+ TQ_SLOT(slotForwardDigestMsg()),
actionCollection(),
"message_forward_as_digest" );
mRedirectAction = new TDEAction( i18n("Message->Forward->","&Redirect..."),
- "mail-forward", Key_E, TQT_TQOBJECT(this),
- TQT_SLOT(slotRedirectMsg()),
+ "mail-forward", Key_E, this,
+ TQ_SLOT(slotRedirectMsg()),
actionCollection(),
"message_forward_redirect" );
@@ -2895,38 +2895,38 @@ void KMMainWidget::setupActions()
mForwardActionMenu->insert( mForwardDigestAction );
mForwardActionMenu->insert( mRedirectAction );
- mSendAgainAction = new TDEAction( i18n("Send A&gain..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotResendMsg()), actionCollection(), "send_again" );
+ mSendAgainAction = new TDEAction( i18n("Send A&gain..."), 0, this,
+ TQ_SLOT(slotResendMsg()), actionCollection(), "send_again" );
//----- Create filter actions
mFilterMenu = new TDEActionMenu( i18n("&Create Filter"), "filter", actionCollection(), "create_filter" );
- connect( mFilterMenu, TQT_SIGNAL(activated()), TQT_TQOBJECT(this),
- TQT_SLOT(slotFilter()) );
- mSubjectFilterAction = new TDEAction( i18n("Filter on &Subject..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotSubjectFilter()),
+ connect( mFilterMenu, TQ_SIGNAL(activated()), this,
+ TQ_SLOT(slotFilter()) );
+ mSubjectFilterAction = new TDEAction( i18n("Filter on &Subject..."), 0, this,
+ TQ_SLOT(slotSubjectFilter()),
actionCollection(), "subject_filter");
mFilterMenu->insert( mSubjectFilterAction );
- mFromFilterAction = new TDEAction( i18n("Filter on &From..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotFromFilter()),
+ mFromFilterAction = new TDEAction( i18n("Filter on &From..."), 0, this,
+ TQ_SLOT(slotFromFilter()),
actionCollection(), "from_filter");
mFilterMenu->insert( mFromFilterAction );
- mToFilterAction = new TDEAction( i18n("Filter on &To..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotToFilter()),
+ mToFilterAction = new TDEAction( i18n("Filter on &To..."), 0, this,
+ TQ_SLOT(slotToFilter()),
actionCollection(), "to_filter");
mFilterMenu->insert( mToFilterAction );
- mListFilterAction = new TDEAction( i18n("Filter on Mailing-&List..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotMailingListFilter()), actionCollection(),
+ mListFilterAction = new TDEAction( i18n("Filter on Mailing-&List..."), 0, this,
+ TQ_SLOT(slotMailingListFilter()), actionCollection(),
"mlist_filter");
mFilterMenu->insert( mListFilterAction );
- mPrintAction = KStdAction::print (TQT_TQOBJECT(this), TQT_SLOT(slotPrintMsg()), actionCollection());
+ mPrintAction = KStdAction::print (this, TQ_SLOT(slotPrintMsg()), actionCollection());
mUseAction = new TDEAction( i18n("New Message From &Template"), "document-new",
- Key_N, TQT_TQOBJECT(this), TQT_SLOT( slotUseTemplate() ),
+ Key_N, this, TQ_SLOT( slotUseTemplate() ),
actionCollection(), "use_template" );
mUseAction->plugAccel( actionCollection()->tdeaccel() );
@@ -2936,52 +2936,52 @@ void KMMainWidget::setupActions()
mMarkThreadAsReadAction = new TDEAction(KGuiItem(i18n("Mark Thread as &Read"), "kmmsgread",
i18n("Mark all messages in the selected thread as read")),
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotSetThreadStatusRead()),
+ 0, this, TQ_SLOT(slotSetThreadStatusRead()),
actionCollection(), "thread_read");
mThreadStatusMenu->insert( mMarkThreadAsReadAction );
mMarkThreadAsNewAction = new TDEAction(KGuiItem(i18n("Mark Thread as &New"), "kmmsgnew",
i18n("Mark all messages in the selected thread as new")),
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotSetThreadStatusNew()),
+ 0, this, TQ_SLOT(slotSetThreadStatusNew()),
actionCollection(), "thread_new");
mThreadStatusMenu->insert( mMarkThreadAsNewAction );
mMarkThreadAsUnreadAction = new TDEAction(KGuiItem(i18n("Mark Thread as &Unread"), "kmmsgunseen",
i18n("Mark all messages in the selected thread as unread")),
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotSetThreadStatusUnread()),
+ 0, this, TQ_SLOT(slotSetThreadStatusUnread()),
actionCollection(), "thread_unread");
mThreadStatusMenu->insert( mMarkThreadAsUnreadAction );
- mThreadStatusMenu->insert( new TDEActionSeparator( TQT_TQOBJECT(this) ) );
+ mThreadStatusMenu->insert( new TDEActionSeparator( this ) );
//----- "Mark Thread" toggle actions
mToggleThreadFlagAction = new TDEToggleAction(i18n("Mark Thread as &Important"), "mail_flag",
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotSetThreadStatusFlag()),
+ 0, this, TQ_SLOT(slotSetThreadStatusFlag()),
actionCollection(), "thread_flag");
mToggleThreadFlagAction->setCheckedState( i18n("Remove &Important Thread Mark") );
mThreadStatusMenu->insert( mToggleThreadFlagAction );
mToggleThreadTodoAction = new TDEToggleAction(i18n("Mark Thread as &Action Item"), "mail_todo",
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotSetThreadStatusTodo()),
+ 0, this, TQ_SLOT(slotSetThreadStatusTodo()),
actionCollection(), "thread_todo");
mToggleThreadTodoAction->setCheckedState( i18n("Remove &Action Item Thread Mark") );
mThreadStatusMenu->insert( mToggleThreadTodoAction );
//------- "Watch and ignore thread" actions
mWatchThreadAction = new TDEToggleAction(i18n("&Watch Thread"), "kmmsgwatched",
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotSetThreadStatusWatched()),
+ 0, this, TQ_SLOT(slotSetThreadStatusWatched()),
actionCollection(), "thread_watched");
mIgnoreThreadAction = new TDEToggleAction(i18n("&Ignore Thread"), "mail_ignore",
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotSetThreadStatusIgnored()),
+ 0, this, TQ_SLOT(slotSetThreadStatusIgnored()),
actionCollection(), "thread_ignored");
- mThreadStatusMenu->insert( new TDEActionSeparator( TQT_TQOBJECT(this) ) );
+ mThreadStatusMenu->insert( new TDEActionSeparator( this ) );
mThreadStatusMenu->insert( mWatchThreadAction );
mThreadStatusMenu->insert( mIgnoreThreadAction );
mSaveAttachmentsAction = new TDEAction( i18n("Save A&ttachments..."), "attach",
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotSaveAttachments()),
+ 0, this, TQ_SLOT(slotSaveAttachments()),
actionCollection(), "file_save_attachments" );
mMoveActionMenu = new TDEActionMenu( i18n("&Move To" ),
@@ -2991,8 +2991,8 @@ void KMMainWidget::setupActions()
actionCollection(), "copy_to" );
mApplyAllFiltersAction = new TDEAction( i18n("Appl&y All Filters"), "filter",
- CTRL+Key_J, TQT_TQOBJECT(this),
- TQT_SLOT(slotApplyFilters()),
+ CTRL+Key_J, this,
+ TQ_SLOT(slotApplyFilters()),
actionCollection(), "apply_filters" );
mApplyFilterActionsMenu = new TDEActionMenu( i18n("A&pply Filter" ),
@@ -3006,104 +3006,104 @@ void KMMainWidget::setupActions()
actionCollection(), "view_unread" );
unreadMenu->setToolTip( i18n("Choose how to display the count of unread messages") );
- mUnreadColumnToggle = new TDERadioAction( i18n("View->Unread Count", "View in &Separate Column"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotToggleUnread()),
+ mUnreadColumnToggle = new TDERadioAction( i18n("View->Unread Count", "View in &Separate Column"), 0, this,
+ TQ_SLOT(slotToggleUnread()),
actionCollection(), "view_unread_column" );
mUnreadColumnToggle->setExclusiveGroup( "view_unread_group" );
unreadMenu->insert( mUnreadColumnToggle );
- mUnreadTextToggle = new TDERadioAction( i18n("View->Unread Count", "View After &Folder Name"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotToggleUnread()),
+ mUnreadTextToggle = new TDERadioAction( i18n("View->Unread Count", "View After &Folder Name"), 0, this,
+ TQ_SLOT(slotToggleUnread()),
actionCollection(), "view_unread_text" );
mUnreadTextToggle->setExclusiveGroup( "view_unread_group" );
unreadMenu->insert( mUnreadTextToggle );
// toggle for total column
- mTotalColumnToggle = new TDEToggleAction( i18n("View->", "&Total Column"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotToggleTotalColumn()),
+ mTotalColumnToggle = new TDEToggleAction( i18n("View->", "&Total Column"), 0, this,
+ TQ_SLOT(slotToggleTotalColumn()),
actionCollection(), "view_columns_total" );
mTotalColumnToggle->setToolTip( i18n("Toggle display of column showing the "
"total number of messages in folders.") );
- mSizeColumnToggle = new TDEToggleAction( i18n("View->", "&Size Column"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotToggleSizeColumn()),
+ mSizeColumnToggle = new TDEToggleAction( i18n("View->", "&Size Column"), 0, this,
+ TQ_SLOT(slotToggleSizeColumn()),
actionCollection(), "view_columns_size" );
mSizeColumnToggle->setToolTip( i18n("Toggle display of column showing the "
"total size of messages in folders.") );
(void)new TDEAction( KGuiItem( i18n("View->","&Expand Thread"), TQString(),
i18n("Expand the current thread") ),
- Key_Period, TQT_TQOBJECT(this),
- TQT_SLOT(slotExpandThread()),
+ Key_Period, this,
+ TQ_SLOT(slotExpandThread()),
actionCollection(), "expand_thread" );
(void)new TDEAction( KGuiItem( i18n("View->","&Collapse Thread"), TQString(),
i18n("Collapse the current thread") ),
- Key_Comma, TQT_TQOBJECT(this),
- TQT_SLOT(slotCollapseThread()),
+ Key_Comma, this,
+ TQ_SLOT(slotCollapseThread()),
actionCollection(), "collapse_thread" );
(void)new TDEAction( KGuiItem( i18n("View->","Ex&pand All Threads"), TQString(),
i18n("Expand all threads in the current folder") ),
- CTRL+Key_Period, TQT_TQOBJECT(this),
- TQT_SLOT(slotExpandAllThreads()),
+ CTRL+Key_Period, this,
+ TQ_SLOT(slotExpandAllThreads()),
actionCollection(), "expand_all_threads" );
(void)new TDEAction( KGuiItem( i18n("View->","C&ollapse All Threads"), TQString(),
i18n("Collapse all threads in the current folder") ),
- CTRL+Key_Comma, TQT_TQOBJECT(this),
- TQT_SLOT(slotCollapseAllThreads()),
+ CTRL+Key_Comma, this,
+ TQ_SLOT(slotCollapseAllThreads()),
actionCollection(), "collapse_all_threads" );
- mViewSourceAction = new TDEAction( i18n("&View Source"), Key_V, TQT_TQOBJECT(this),
- TQT_SLOT(slotShowMsgSrc()), actionCollection(),
+ mViewSourceAction = new TDEAction( i18n("&View Source"), Key_V, this,
+ TQ_SLOT(slotShowMsgSrc()), actionCollection(),
"view_source" );
- TDEAction* dukeOfMonmoth = new TDEAction( i18n("&Display Message"), Key_Return, TQT_TQOBJECT(this),
- TQT_SLOT( slotDisplayCurrentMessage() ), actionCollection(),
+ TDEAction* dukeOfMonmoth = new TDEAction( i18n("&Display Message"), Key_Return, this,
+ TQ_SLOT( slotDisplayCurrentMessage() ), actionCollection(),
"display_message" );
dukeOfMonmoth->plugAccel( actionCollection()->tdeaccel() );
//----- Go Menu
new TDEAction( KGuiItem( i18n("&Next Message"), TQString(),
i18n("Go to the next message") ),
- "N;Right", TQT_TQOBJECT(this), TQT_SLOT(slotNextMessage()),
+ "N;Right", this, TQ_SLOT(slotNextMessage()),
actionCollection(), "go_next_message" );
new TDEAction( KGuiItem( i18n("Next &Unread Message"),
TQApplication::reverseLayout() ? "go-previous" : "go-next",
i18n("Go to the next unread message") ),
- Key_Plus, TQT_TQOBJECT(this), TQT_SLOT(slotNextUnreadMessage()),
+ Key_Plus, this, TQ_SLOT(slotNextUnreadMessage()),
actionCollection(), "go_next_unread_message" );
/* ### needs better support from folders:
new TDEAction( KGuiItem( i18n("Next &Important Message"), TQString(),
i18n("Go to the next important message") ),
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotNextImportantMessage()),
+ 0, this, TQ_SLOT(slotNextImportantMessage()),
actionCollection(), "go_next_important_message" );
*/
new TDEAction( KGuiItem( i18n("&Previous Message"), TQString(),
i18n("Go to the previous message") ),
- "P;Left", TQT_TQOBJECT(this), TQT_SLOT(slotPrevMessage()),
+ "P;Left", this, TQ_SLOT(slotPrevMessage()),
actionCollection(), "go_prev_message" );
new TDEAction( KGuiItem( i18n("Previous Unread &Message"),
TQApplication::reverseLayout() ? "go-next" : "go-previous",
i18n("Go to the previous unread message") ),
- Key_Minus, TQT_TQOBJECT(this), TQT_SLOT(slotPrevUnreadMessage()),
+ Key_Minus, this, TQ_SLOT(slotPrevUnreadMessage()),
actionCollection(), "go_prev_unread_message" );
/* needs better support from folders:
new TDEAction( KGuiItem( i18n("Previous I&mportant Message"), TQString(),
i18n("Go to the previous important message") ),
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotPrevImportantMessage()),
+ 0, this, TQ_SLOT(slotPrevImportantMessage()),
actionCollection(), "go_prev_important_message" );
*/
TDEAction *action =
new TDEAction( KGuiItem( i18n("Next Unread &Folder"), TQString(),
i18n("Go to the next folder with unread messages") ),
- ALT+Key_Plus, TQT_TQOBJECT(this), TQT_SLOT(slotNextUnreadFolder()),
+ ALT+Key_Plus, this, TQ_SLOT(slotNextUnreadFolder()),
actionCollection(), "go_next_unread_folder" );
TDEShortcut shortcut = action->shortcut();
shortcut.append( KKey( CTRL+Key_Plus ) );
@@ -3112,7 +3112,7 @@ void KMMainWidget::setupActions()
action =
new TDEAction( KGuiItem( i18n("Previous Unread F&older"), TQString(),
i18n("Go to the previous folder with unread messages") ),
- ALT+Key_Minus, TQT_TQOBJECT(this), TQT_SLOT(slotPrevUnreadFolder()),
+ ALT+Key_Minus, this, TQ_SLOT(slotPrevUnreadFolder()),
actionCollection(), "go_prev_unread_folder" );
shortcut = action->shortcut();
shortcut.append( KKey( CTRL+Key_Minus ) );
@@ -3123,49 +3123,49 @@ void KMMainWidget::setupActions()
i18n("Scroll down current message. "
"If at end of current message, "
"go to next unread message.") ),
- Key_Space, TQT_TQOBJECT(this), TQT_SLOT(slotReadOn()),
+ Key_Space, this, TQ_SLOT(slotReadOn()),
actionCollection(), "go_next_unread_text" );
//----- Settings Menu
mToggleShowQuickSearchAction = new TDEToggleAction(i18n("Show Quick Search"), TQString(),
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotToggleShowQuickSearch()),
+ 0, this, TQ_SLOT(slotToggleShowQuickSearch()),
actionCollection(), "show_quick_search");
mToggleShowQuickSearchAction->setChecked( GlobalSettings::self()->quickSearchActive() );
mToggleShowQuickSearchAction->setWhatsThis(
i18n( GlobalSettings::self()->quickSearchActiveItem()->whatsThis().utf8() ) );
- (void) new TDEAction( i18n("Configure &Filters..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotFilter()), actionCollection(), "filter" );
- (void) new TDEAction( i18n("Configure &POP Filters..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotPopFilter()), actionCollection(), "popFilter" );
- (void) new TDEAction( i18n("Manage &Sieve Scripts..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotManageSieveScripts()), actionCollection(), "sieveFilters" );
+ (void) new TDEAction( i18n("Configure &Filters..."), 0, this,
+ TQ_SLOT(slotFilter()), actionCollection(), "filter" );
+ (void) new TDEAction( i18n("Configure &POP Filters..."), 0, this,
+ TQ_SLOT(slotPopFilter()), actionCollection(), "popFilter" );
+ (void) new TDEAction( i18n("Manage &Sieve Scripts..."), 0, this,
+ TQ_SLOT(slotManageSieveScripts()), actionCollection(), "sieveFilters" );
(void) new TDEAction( KGuiItem( i18n("KMail &Introduction"), 0,
i18n("Display KMail's Welcome Page") ),
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotIntro()),
+ 0, this, TQ_SLOT(slotIntro()),
actionCollection(), "help_kmail_welcomepage" );
// ----- Standard Actions
-// KStdAction::configureNotifications(this, TQT_SLOT(slotEditNotifications()), actionCollection());
+// KStdAction::configureNotifications(this, TQ_SLOT(slotEditNotifications()), actionCollection());
(void) new TDEAction( i18n("Configure &Notifications..."),
- "knotify", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotEditNotifications()), actionCollection(),
+ "knotify", 0, this,
+ TQ_SLOT(slotEditNotifications()), actionCollection(),
"kmail_configure_notifications" );
-// KStdAction::preferences(this, TQT_SLOT(slotSettings()), actionCollection());
+// KStdAction::preferences(this, TQ_SLOT(slotSettings()), actionCollection());
(void) new TDEAction( i18n("&Configure KMail..."),
"configure", 0, kmkernel,
- TQT_SLOT(slotShowConfigurationDialog()), actionCollection(),
+ TQ_SLOT(slotShowConfigurationDialog()), actionCollection(),
"kmail_configure_kmail" );
- KStdAction::undo(TQT_TQOBJECT(this), TQT_SLOT(slotUndo()), actionCollection(), "kmail_undo");
+ KStdAction::undo(this, TQ_SLOT(slotUndo()), actionCollection(), "kmail_undo");
- KStdAction::tipOfDay( TQT_TQOBJECT(this), TQT_SLOT( slotShowTip() ), actionCollection() );
+ KStdAction::tipOfDay( this, TQ_SLOT( slotShowTip() ), actionCollection() );
menutimer = new TQTimer( this, "menutimer" );
- connect( menutimer, TQT_SIGNAL( timeout() ), TQT_SLOT( updateMessageActions() ) );
+ connect( menutimer, TQ_SIGNAL( timeout() ), TQ_SLOT( updateMessageActions() ) );
connect( kmkernel->undoStack(),
- TQT_SIGNAL( undoStackChanged() ), TQT_TQOBJECT(this), TQT_SLOT( slotUpdateUndo() ));
+ TQ_SIGNAL( undoStackChanged() ), this, TQ_SLOT( slotUpdateUndo() ));
initializeIMAPActions( false ); // don't set state, config not read yet
updateMessageActions();
@@ -3288,9 +3288,9 @@ void KMMainWidget::copySelectedToFolder(int menuId )
void KMMainWidget::updateMessageMenu()
{
mMenuToFolder.clear();
- folderTree()->folderToPopupMenu( KMFolderTree::MoveMessage, TQT_TQOBJECT(this),
+ folderTree()->folderToPopupMenu( KMFolderTree::MoveMessage, this,
&mMenuToFolder, mMoveActionMenu->popupMenu() );
- folderTree()->folderToPopupMenu( KMFolderTree::CopyMessage, TQT_TQOBJECT(this),
+ folderTree()->folderToPopupMenu( KMFolderTree::CopyMessage, this,
&mMenuToFolder, mCopyActionMenu->popupMenu() );
updateMessageActions();
}
@@ -3547,8 +3547,8 @@ void KMMainWidget::slotShowStartupFolder()
mFolderTree->cleanupConfigFile();
}
- connect( kmkernel->filterMgr(), TQT_SIGNAL( filterListUpdated() ),
- this, TQT_SLOT( initializeFilterActions() ));
+ connect( kmkernel->filterMgr(), TQ_SIGNAL( filterListUpdated() ),
+ this, TQ_SLOT( initializeFilterActions() ));
// plug shortcut filter actions now
initializeFilterActions();
@@ -3724,7 +3724,7 @@ void KMMainWidget::initializeFilterActions()
if ( icon.isEmpty() )
icon = "gear";
filterAction = new TDEAction(as, icon, (*it)->shortcut(), filterCommand,
- TQT_SLOT(start()), actionCollection(),
+ TQ_SLOT(start()), actionCollection(),
normalizedName.local8Bit());
if(!addedSeparator) {
mApplyFilterActionsMenu->popupMenu()->insertSeparator();
@@ -3770,7 +3770,7 @@ void KMMainWidget::initializeIMAPActions( bool setState /* false the first time,
if ( !mTroubleshootFolderAction ) {
mTroubleshootFolderAction = new TDEAction( i18n("&Troubleshoot IMAP Cache..."), "wizard", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotTroubleshootFolder()), actionCollection(), "troubleshoot_folder" );
+ this, TQ_SLOT(slotTroubleshootFolder()), actionCollection(), "troubleshoot_folder" );
if ( setState )
updateFolderMenu(); // set initial state of the action
} else {
@@ -3806,7 +3806,7 @@ void KMMainWidget::slotShortcutChanged( KMFolder *folder )
TQString actionname = TQString( "FolderShortcut %1").arg( folder->idString() );
TQString normalizedName = actionname.replace(" ", "_");
TDEAction* action =
- new TDEAction(actionlabel, folder->shortcut(), c, TQT_SLOT(start()),
+ new TDEAction(actionlabel, folder->shortcut(), c, TQ_SLOT(start()),
actionCollection(), normalizedName.local8Bit());
action->setIcon( folder->unreadIconPath() );
c->setAction( action ); // will be deleted along with the command
diff --git a/kmail/kmmainwidget.h b/kmail/kmmainwidget.h
index f790ff0f..06020b7b 100644
--- a/kmail/kmmainwidget.h
+++ b/kmail/kmmainwidget.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
This file is part of KMail, the KDE mail client.
Copyright (c) 2002 Don Sanders <sanders@kde.org>
@@ -81,7 +81,7 @@ typedef TQMap<int,KMFolder*> KMMenuToFolder;
class KDE_EXPORT KMMainWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmmainwin.cpp b/kmail/kmmainwin.cpp
index bfc0be0c..d1abdab6 100644
--- a/kmail/kmmainwin.cpp
+++ b/kmail/kmmainwin.cpp
@@ -36,10 +36,10 @@ KMMainWin::KMMainWin(TQWidget *)
kapp->ref();
(void) new TDEAction( i18n("New &Window"), "window-new", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotNewMailReader()),
+ this, TQ_SLOT(slotNewMailReader()),
actionCollection(), "new_mail_client" );
- mKMMainWidget = new KMMainWidget( TQT_TQWIDGET(this), "KMMainWidget", this, actionCollection() );
+ mKMMainWidget = new KMMainWidget( this, "KMMainWidget", this, actionCollection() );
mKMMainWidget->resize( 450, 600 );
setCentralWidget(mKMMainWidget);
setupStatusBar();
@@ -47,17 +47,17 @@ KMMainWin::KMMainWin(TQWidget *)
setInstance( kmkernel->xmlGuiInstance() );
if ( kmkernel->firstInstance() )
- TQTimer::singleShot( 200, this, TQT_SLOT(slotShowTipOnStart()) );
+ TQTimer::singleShot( 200, this, TQ_SLOT(slotShowTipOnStart()) );
setStandardToolBarMenuEnabled(true);
- KStdAction::configureToolbars(TQT_TQOBJECT(this), TQT_SLOT(slotEditToolbars()),
+ KStdAction::configureToolbars(this, TQ_SLOT(slotEditToolbars()),
actionCollection());
- KStdAction::keyBindings(TQT_TQOBJECT(mKMMainWidget), TQT_SLOT(slotEditKeys()),
+ KStdAction::keyBindings(mKMMainWidget, TQ_SLOT(slotEditKeys()),
actionCollection());
- KStdAction::quit( TQT_TQOBJECT(this), TQT_SLOT(slotQuit()), actionCollection());
+ KStdAction::quit( this, TQ_SLOT(slotQuit()), actionCollection());
createGUI( "kmmainwin.rc", false );
// Don't use conserveMemory() because this renders dynamic plugging
// of actions unusable!
@@ -66,14 +66,14 @@ KMMainWin::KMMainWin(TQWidget *)
applyMainWindowSettings(KMKernel::config(), "Main Window");
- connect( KPIM::BroadcastStatus::instance(), TQT_SIGNAL( statusMsg( const TQString& ) ),
- this, TQT_SLOT( displayStatusMsg(const TQString&) ) );
+ connect( KPIM::BroadcastStatus::instance(), TQ_SIGNAL( statusMsg( const TQString& ) ),
+ this, TQ_SLOT( displayStatusMsg(const TQString&) ) );
- connect(kmkernel, TQT_SIGNAL(configChanged()),
- this, TQT_SLOT(slotConfigChanged()));
+ connect(kmkernel, TQ_SIGNAL(configChanged()),
+ this, TQ_SLOT(slotConfigChanged()));
- connect(mKMMainWidget, TQT_SIGNAL(captionChangeRequest(const TQString&)),
- TQT_SLOT(setCaption(const TQString&)) );
+ connect(mKMMainWidget, TQ_SIGNAL(captionChangeRequest(const TQString&)),
+ TQ_SLOT(setCaption(const TQString&)) );
// Enable mail checks again (see destructor)
kmkernel->enableMailCheck();
@@ -96,7 +96,7 @@ KMMainWin::~KMMainWin()
if ( !it.current()->isHidden() &&
it.current()->isTopLevel() &&
it.current() != this &&
- ::tqqt_cast<KMMainWin *>( it.current() )
+ ::tqt_cast<KMMainWin *>( it.current() )
)
not_withdrawn++;
}
@@ -145,8 +145,8 @@ void KMMainWin::slotEditToolbars()
saveMainWindowSettings(KMKernel::config(), "Main Window");
KEditToolbar dlg(actionCollection(), "kmmainwin.rc");
- connect( &dlg, TQT_SIGNAL(newToolbarConfig()),
- TQT_SLOT(slotUpdateToolbars()) );
+ connect( &dlg, TQ_SIGNAL(newToolbarConfig()),
+ TQ_SLOT(slotUpdateToolbars()) );
dlg.exec();
}
diff --git a/kmail/kmmainwin.h b/kmail/kmmainwin.h
index 2de06c26..9e12e71c 100644
--- a/kmail/kmmainwin.h
+++ b/kmail/kmmainwin.h
@@ -34,7 +34,7 @@ using KPIM::ProgressDialog;
class KMMainWin : public TDEMainWindow
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmmessage.cpp b/kmail/kmmessage.cpp
index d9961478..f9a7f388 100644
--- a/kmail/kmmessage.cpp
+++ b/kmail/kmmessage.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmmessage.cpp
// if you do not want GUI elements in here then set ALLOW_GUI to 0.
diff --git a/kmail/kmmessage.h b/kmail/kmmessage.h
index 3a61a11f..dfe96116 100644
--- a/kmail/kmmessage.h
+++ b/kmail/kmmessage.h
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
/* kmmessage.h: Mime Message Class
*
*/
diff --git a/kmail/kmmimeparttree.cpp b/kmail/kmmimeparttree.cpp
index 200e7736..56910cb2 100644
--- a/kmail/kmmimeparttree.cpp
+++ b/kmail/kmmimeparttree.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmmimeparttree.h A MIME part tree viwer.
This file is part of KMail, the KDE mail client.
@@ -68,11 +68,11 @@ KMMimePartTree::KMMimePartTree( KMReaderWin* readerWin,
setColumnAlignment( 3, TQt::AlignRight );
restoreLayoutIfPresent();
- connect( this, TQT_SIGNAL( clicked( TQListViewItem* ) ),
- this, TQT_SLOT( itemClicked( TQListViewItem* ) ) );
- connect( this, TQT_SIGNAL( contextMenuRequested( TQListViewItem*,
+ connect( this, TQ_SIGNAL( clicked( TQListViewItem* ) ),
+ this, TQ_SLOT( itemClicked( TQListViewItem* ) ) );
+ connect( this, TQ_SIGNAL( contextMenuRequested( TQListViewItem*,
const TQPoint&, int ) ),
- this, TQT_SLOT( itemRightClicked( TQListViewItem*, const TQPoint& ) ) );
+ this, TQ_SLOT( itemRightClicked( TQListViewItem*, const TQPoint& ) ) );
setSelectionMode( TQListView::Extended );
setRootIsDecorated( false );
setAllColumnsShowFocus( true );
@@ -131,32 +131,33 @@ void KMMimePartTree::itemRightClicked( TQListViewItem* item,
else {
TQPopupMenu* popup = new TQPopupMenu;
if ( mCurrentContextMenuItem->node()->nodeId() > 2 &&
- mCurrentContextMenuItem->node()->typeString() != "Multipart" ) {
- popup->insertItem( SmallIcon("document-open"), i18n("to open", "Open"), this, TQT_SLOT(slotOpen()) );
- popup->insertItem( i18n("Open With..."), this, TQT_SLOT(slotOpenWith()) );
- popup->insertItem( i18n("to view something", "View"), this, TQT_SLOT(slotView()) );
+ mCurrentContextMenuItem->node()->typeString() != "Multipart" ||
+ mCurrentContextMenuItem->node()->subTypeString() == "HTML" ) {
+ popup->insertItem( SmallIcon("document-open"), i18n("to open", "Open"), this, TQ_SLOT(slotOpen()) );
+ popup->insertItem( i18n("Open With..."), this, TQ_SLOT(slotOpenWith()) );
+ popup->insertItem( i18n("to view something", "View"), this, TQ_SLOT(slotView()) );
}
- popup->insertItem( SmallIcon("document-save-as"),i18n( "Save &As..." ), this, TQT_SLOT( slotSaveAs() ) );
+ popup->insertItem( SmallIcon("document-save-as"),i18n( "Save &As..." ), this, TQ_SLOT( slotSaveAs() ) );
/*
* FIXME mkae optional?
popup->insertItem( i18n( "Save as &Encoded..." ), this,
- TQT_SLOT( slotSaveAsEncoded() ) );
+ TQ_SLOT( slotSaveAsEncoded() ) );
*/
popup->insertItem( i18n( "Save All Attachments..." ), this,
- TQT_SLOT( slotSaveAll() ) );
+ TQ_SLOT( slotSaveAll() ) );
// edit + delete only for attachments
if ( mCurrentContextMenuItem->node()->nodeId() > 2 &&
mCurrentContextMenuItem->node()->typeString() != "Multipart" ) {
- popup->insertItem( SmallIcon("edit-copy"), i18n("Copy"), this, TQT_SLOT(slotCopy()) );
+ popup->insertItem( SmallIcon("edit-copy"), i18n("Copy"), this, TQ_SLOT(slotCopy()) );
if ( GlobalSettings::self()->allowAttachmentDeletion() )
popup->insertItem( SmallIcon("edit-delete"), i18n( "Delete Attachment" ),
- this, TQT_SLOT( slotDelete() ) );
+ this, TQ_SLOT( slotDelete() ) );
if ( GlobalSettings::self()->allowAttachmentEditing() )
popup->insertItem( SmallIcon( "edit" ), i18n( "Edit Attachment" ),
- this, TQT_SLOT( slotEdit() ) );
+ this, TQ_SLOT( slotEdit() ) );
}
if ( mCurrentContextMenuItem->node()->nodeId() > 0 )
- popup->insertItem( i18n("Properties"), this, TQT_SLOT(slotProperties()) );
+ popup->insertItem( i18n("Properties"), this, TQ_SLOT(slotProperties()) );
popup->exec( point );
delete popup;
mCurrentContextMenuItem = 0;
@@ -295,8 +296,8 @@ void KMMimePartTree::startHandleAttachmentCommand(int type)
KMHandleAttachmentCommand* command = new KMHandleAttachmentCommand(
node, mReaderWin->message(), node->nodeId(), name,
KMHandleAttachmentCommand::AttachmentAction( type ), 0, this );
- connect( command, TQT_SIGNAL( showAttachment( int, const TQString& ) ),
- mReaderWin, TQT_SLOT( slotAtmView( int, const TQString& ) ) );
+ connect( command, TQ_SIGNAL( showAttachment( int, const TQString& ) ),
+ mReaderWin, TQ_SLOT( slotAtmView( int, const TQString& ) ) );
command->start();
}
diff --git a/kmail/kmmimeparttree.h b/kmail/kmmimeparttree.h
index 395694fe..84da01cf 100644
--- a/kmail/kmmimeparttree.h
+++ b/kmail/kmmimeparttree.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmmimeparttree.cpp A MIME part tree viwer.
This file is part of KMail, the KDE mail client.
@@ -28,10 +28,6 @@
you do not wish to do so, delete this exception statement from
your version.
*/
-
-
-
-// -*- c++ -*-
#ifndef KMMIMEPARTTREE_H
#define KMMIMEPARTTREE_H
@@ -46,7 +42,7 @@ class KMMimePartTreeItem;
class KMMimePartTree : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
friend class ::KMReaderWin;
diff --git a/kmail/kmmsgpart.h b/kmail/kmmsgpart.h
index 4994800b..452114d4 100644
--- a/kmail/kmmsgpart.h
+++ b/kmail/kmmsgpart.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++ -*-
+/*
* kmail: KDE mail client
* Copyright (c) 1996-1998 Stefan Taferner <taferner@kde.org>
*
diff --git a/kmail/kmmsgpartdlg.cpp b/kmail/kmmsgpartdlg.cpp
index 869ee015..9cf26fbe 100644
--- a/kmail/kmmsgpartdlg.cpp
+++ b/kmail/kmmsgpartdlg.cpp
@@ -71,7 +71,7 @@ KMMsgPartDialog::KMMsgPartDialog( const TQString & caption,
// row 0: Type combobox:
mMimeType = new KComboBox( true, plainPage() );
mMimeType->setInsertionPolicy( TQComboBox::NoInsertion );
- mMimeType->setValidator( new KMimeTypeValidator( TQT_TQOBJECT(mMimeType) ) );
+ mMimeType->setValidator( new KMimeTypeValidator( mMimeType ) );
mMimeType->insertStringList( TQStringList()
<< TQString::fromLatin1("text/html")
<< TQString::fromLatin1("text/plain")
@@ -81,8 +81,8 @@ KMMsgPartDialog::KMMsgPartDialog( const TQString & caption,
<< TQString::fromLatin1("application/octet-stream")
<< TQString::fromLatin1("application/x-gunzip")
<< TQString::fromLatin1("application/zip") );
- connect( mMimeType, TQT_SIGNAL(textChanged(const TQString&)),
- this, TQT_SLOT(slotMimeTypeChanged(const TQString&)) );
+ connect( mMimeType, TQ_SIGNAL(textChanged(const TQString&)),
+ this, TQ_SLOT(slotMimeTypeChanged(const TQString&)) );
glay->addWidget( mMimeType, 0, 1 );
msg = i18n("<qt><p>The <em>MIME type</em> of the file:</p>"
diff --git a/kmail/kmmsgpartdlg.h b/kmail/kmmsgpartdlg.h
index 0132be01..2cb9b114 100644
--- a/kmail/kmmsgpartdlg.h
+++ b/kmail/kmmsgpartdlg.h
@@ -38,7 +38,7 @@ class TQLineEdit;
*/
class KMMsgPartDialog: public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -139,7 +139,7 @@ protected:
@author Marc Mutz <mutz@kde.org>
*/
class KMMsgPartDialogCompat : public KMMsgPartDialog {
- Q_OBJECT
+ TQ_OBJECT
public:
KMMsgPartDialogCompat( TQWidget * parent=0, const char * caption=0, bool=FALSE );
diff --git a/kmail/kmpopfiltercnfrmdlg.cpp b/kmail/kmpopfiltercnfrmdlg.cpp
index 3689e663..9e18532d 100644
--- a/kmail/kmpopfiltercnfrmdlg.cpp
+++ b/kmail/kmpopfiltercnfrmdlg.cpp
@@ -61,8 +61,8 @@ KMPopHeadersView::KMPopHeadersView(TQWidget *aParent, KMPopFilterCnfrmDlg *aDial
//we rely on fixed column order, so we forbid this
header()->setMovingEnabled(false);
- connect(this, TQT_SIGNAL(pressed(TQListViewItem*, const TQPoint&, int)),
- TQT_SLOT(slotPressed(TQListViewItem*, const TQPoint&, int)));
+ connect(this, TQ_SIGNAL(pressed(TQListViewItem*, const TQPoint&, int)),
+ TQ_SLOT(slotPressed(TQListViewItem*, const TQPoint&, int)));
}
KMPopHeadersView::~KMPopHeadersView()
@@ -363,15 +363,15 @@ KMPopFilterCnfrmDlg::KMPopFilterCnfrmDlg(TQPtrList<KMPopHeaders> *aHeaders, cons
lowerBox->setTitle(i18n("Ruleset Filtered Messages: %1").arg(rulesetCount));
// connect signals and slots
- connect(lv, TQT_SIGNAL(pressed(TQListViewItem*, const TQPoint&, int)),
- this, TQT_SLOT(slotPressed(TQListViewItem*, const TQPoint&, int)));
- connect(mFilteredHeaders, TQT_SIGNAL(pressed(TQListViewItem*, const TQPoint&, int)),
- this, TQT_SLOT(slotPressed(TQListViewItem*, const TQPoint&, int)));
- connect(cb, TQT_SIGNAL(toggled(bool)),
- this, TQT_SLOT(slotToggled(bool)));
+ connect(lv, TQ_SIGNAL(pressed(TQListViewItem*, const TQPoint&, int)),
+ this, TQ_SLOT(slotPressed(TQListViewItem*, const TQPoint&, int)));
+ connect(mFilteredHeaders, TQ_SIGNAL(pressed(TQListViewItem*, const TQPoint&, int)),
+ this, TQ_SLOT(slotPressed(TQListViewItem*, const TQPoint&, int)));
+ connect(cb, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(slotToggled(bool)));
adjustSize();
- TQTimer::singleShot(0, this, TQT_SLOT(slotUpdateMinimumSize()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotUpdateMinimumSize()));
}
KMPopFilterCnfrmDlg::~KMPopFilterCnfrmDlg()
@@ -459,7 +459,7 @@ void KMPopFilterCnfrmDlg::slotToggled(bool aOn)
mFilteredHeaders->hide();
}
}
- TQTimer::singleShot(0, this, TQT_SLOT(slotUpdateMinimumSize()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotUpdateMinimumSize()));
}
void KMPopFilterCnfrmDlg::slotUpdateMinimumSize()
diff --git a/kmail/kmpopfiltercnfrmdlg.h b/kmail/kmpopfiltercnfrmdlg.h
index bb545305..f2fc4f80 100644
--- a/kmail/kmpopfiltercnfrmdlg.h
+++ b/kmail/kmpopfiltercnfrmdlg.h
@@ -35,7 +35,7 @@ class KMPopFilterCnfrmDlg;
*/
class KMPopHeadersView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -78,7 +78,7 @@ protected:
class KMPopFilterCnfrmDlg : public KDialogBase
{
friend class ::KMPopHeadersView;
- Q_OBJECT
+ TQ_OBJECT
protected:
KMPopFilterCnfrmDlg() { };
diff --git a/kmail/kmreadermainwin.cpp b/kmail/kmreadermainwin.cpp
index 336d4c16..db42f3fa 100644
--- a/kmail/kmreadermainwin.cpp
+++ b/kmail/kmreadermainwin.cpp
@@ -50,7 +50,7 @@
#include "kmreadermainwin.h"
-KMReaderMainWin::KMReaderMainWin( bool htmlOverride, bool htmlLoadExtOverride,
+KMReaderMainWin::KMReaderMainWin( bool htmlOverride, bool htmlLoadExtDefault,
char *name )
: KMail::SecondaryWindow( name ? name : "readerwindow#" ),
mMsg( 0 )
@@ -59,7 +59,7 @@ KMReaderMainWin::KMReaderMainWin( bool htmlOverride, bool htmlLoadExtOverride,
//mReaderWin->setShowCompleteMessage( true );
mReaderWin->setAutoDelete( true );
mReaderWin->setHtmlOverride( htmlOverride );
- mReaderWin->setHtmlLoadExtOverride( htmlLoadExtOverride );
+ mReaderWin->setHtmlLoadExtDefault( htmlLoadExtDefault );
mReaderWin->setDecryptMessageOverwrite( true );
mReaderWin->setShowSignatureDetails( false );
initKMReaderMainWin();
@@ -103,8 +103,8 @@ void KMReaderMainWin::initKMReaderMainWin() {
toolBar( "mainToolBar" )->hide();
}
- connect( kmkernel, TQT_SIGNAL( configChanged() ),
- this, TQT_SLOT( slotConfigChanged() ) );
+ connect( kmkernel, TQ_SIGNAL( configChanged() ),
+ this, TQ_SLOT( slotConfigChanged() ) );
}
void KMReaderMainWin::setupForwardingActionsList()
@@ -156,7 +156,7 @@ void KMReaderMainWin::showMsg( const TQString & encoding, KMMessage *msg,
menuBar()->show();
toolBar( "mainToolBar" )->show();
- connect ( msg->parent(), TQT_SIGNAL( destroyed( TQObject* ) ), this, TQT_SLOT( slotFolderRemoved( TQObject* ) ) );
+ connect ( msg->parent(), TQ_SIGNAL( destroyed( TQObject* ) ), this, TQ_SLOT( slotFolderRemoved( TQObject* ) ) );
}
@@ -241,8 +241,8 @@ void KMReaderMainWin::slotForwardInlineMsg()
} else {
command = new KMForwardInlineCommand( this, mReaderWin->message() );
}
- connect( command, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( slotReplyOrForwardFinished() ) );
+ connect( command, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( slotReplyOrForwardFinished() ) );
command->start();
}
@@ -256,8 +256,8 @@ void KMReaderMainWin::slotForwardAttachedMsg()
} else {
command = new KMForwardAttachedCommand( this, mReaderWin->message() );
}
- connect( command, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( slotReplyOrForwardFinished() ) );
+ connect( command, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( slotReplyOrForwardFinished() ) );
command->start();
}
@@ -271,8 +271,8 @@ void KMReaderMainWin::slotForwardDigestMsg()
} else {
command = new KMForwardDigestCommand( this, mReaderWin->message() );
}
- connect( command, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( slotReplyOrForwardFinished() ) );
+ connect( command, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( slotReplyOrForwardFinished() ) );
command->start();
}
@@ -280,8 +280,8 @@ void KMReaderMainWin::slotForwardDigestMsg()
void KMReaderMainWin::slotRedirectMsg()
{
KMCommand *command = new KMRedirectCommand( this, mReaderWin->message() );
- connect( command, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SLOT( slotReplyOrForwardFinished() ) );
+ connect( command, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( slotReplyOrForwardFinished() ) );
command->start();
}
@@ -299,7 +299,7 @@ void KMReaderMainWin::slotShowMsgSrc()
//-----------------------------------------------------------------------------
void KMReaderMainWin::setupForwardActions()
{
- disconnect( mForwardActionMenu, TQT_SIGNAL( activated() ), 0, 0 );
+ disconnect( mForwardActionMenu, TQ_SIGNAL( activated() ), 0, 0 );
mForwardActionMenu->remove( mForwardInlineAction );
mForwardActionMenu->remove( mForwardAttachedAction );
@@ -308,16 +308,16 @@ void KMReaderMainWin::setupForwardActions()
mForwardActionMenu->insert( mForwardAttachedAction, 1 );
mForwardInlineAction->setShortcut( Key_F );
mForwardAttachedAction->setShortcut( SHIFT+Key_F );
- connect( mForwardActionMenu, TQT_SIGNAL(activated()), this,
- TQT_SLOT(slotForwardInlineMsg()) );
+ connect( mForwardActionMenu, TQ_SIGNAL(activated()), this,
+ TQ_SLOT(slotForwardInlineMsg()) );
} else {
mForwardActionMenu->insert( mForwardAttachedAction, 0 );
mForwardActionMenu->insert( mForwardInlineAction, 1 );
mForwardInlineAction->setShortcut( SHIFT+Key_F );
mForwardAttachedAction->setShortcut( Key_F );
- connect( mForwardActionMenu, TQT_SIGNAL(activated()), this,
- TQT_SLOT(slotForwardAttachedMsg()) );
+ connect( mForwardActionMenu, TQ_SIGNAL(activated()), this,
+ TQ_SLOT(slotForwardAttachedMsg()) );
}
}
@@ -336,42 +336,42 @@ void KMReaderMainWin::setupAccel()
mMsgActions = new KMail::MessageActions( actionCollection(), this );
mMsgActions->setMessageView( mReaderWin );
- connect( mMsgActions, TQT_SIGNAL( replyActionFinished() ),
- this, TQT_SLOT( slotReplyOrForwardFinished() ) );
+ connect( mMsgActions, TQ_SIGNAL( replyActionFinished() ),
+ this, TQ_SLOT( slotReplyOrForwardFinished() ) );
//----- File Menu
- //mOpenAction = KStdAction::open( this, TQT_SLOT( slotOpenMsg() ),
+ //mOpenAction = KStdAction::open( this, TQ_SLOT( slotOpenMsg() ),
// actionCollection() );
//mSaveAsAction = new TDEAction( i18n("Save &As..."), "document-save",
// TDEStdAccel::shortcut( TDEStdAccel::Save ),
- // this, TQT_SLOT( slotSaveMsg() ),
+ // this, TQ_SLOT( slotSaveMsg() ),
// actionCollection(), "file_save_as" );
- mSaveAsAction = KStdAction::saveAs( TQT_TQOBJECT(mReaderWin), TQT_SLOT( slotSaveMsg() ),
+ mSaveAsAction = KStdAction::saveAs( mReaderWin, TQ_SLOT( slotSaveMsg() ),
actionCollection() );
mSaveAsAction->setShortcut( TDEStdAccel::shortcut( TDEStdAccel::Save ) );
- mPrintAction = KStdAction::print( TQT_TQOBJECT(this), TQT_SLOT( slotPrintMsg() ),
+ mPrintAction = KStdAction::print( this, TQ_SLOT( slotPrintMsg() ),
actionCollection() );
- TDEAction *closeAction = KStdAction::close( TQT_TQOBJECT(this), TQT_SLOT( close() ), actionCollection() );
+ TDEAction *closeAction = KStdAction::close( this, TQ_SLOT( close() ), actionCollection() );
TDEShortcut closeShortcut = closeAction->shortcut();
closeShortcut.append( KKey(Key_Escape));
closeAction->setShortcut(closeShortcut);
//----- Edit Menu
- KStdAction::copy( TQT_TQOBJECT(this), TQT_SLOT( slotCopy() ), actionCollection() );
- KStdAction::selectAll( TQT_TQOBJECT(this), TQT_SLOT( slotMarkAll() ), actionCollection() );
- KStdAction::find( TQT_TQOBJECT(this), TQT_SLOT(slotFind()), actionCollection() );
- KStdAction::findNext( TQT_TQOBJECT(this), TQT_SLOT( slotFindNext() ), actionCollection() );
+ KStdAction::copy( this, TQ_SLOT( slotCopy() ), actionCollection() );
+ KStdAction::selectAll( this, TQ_SLOT( slotMarkAll() ), actionCollection() );
+ KStdAction::find( this, TQ_SLOT(slotFind()), actionCollection() );
+ KStdAction::findNext( this, TQ_SLOT( slotFindNext() ), actionCollection() );
mTrashAction = new TDEAction( KGuiItem( i18n( "&Move to Trash" ), "edittrash",
i18n( "Move message to trashcan" ) ),
- Key_Delete, TQT_TQOBJECT(this), TQT_SLOT( slotTrashMsg() ),
+ Key_Delete, this, TQ_SLOT( slotTrashMsg() ),
actionCollection(), "move_to_trash" );
//----- View Menu
- mViewSourceAction = new TDEAction( i18n("&View Source"), Key_V, TQT_TQOBJECT(this),
- TQT_SLOT(slotShowMsgSrc()), actionCollection(),
+ mViewSourceAction = new TDEAction( i18n("&View Source"), Key_V, this,
+ TQ_SLOT(slotShowMsgSrc()), actionCollection(),
"view_source" );
@@ -379,26 +379,26 @@ void KMReaderMainWin::setupAccel()
"mail-forward", actionCollection(),
"message_forward" );
mForwardInlineAction = new TDEAction( i18n("&Inline..."),
- "mail-forward", SHIFT+Key_F, TQT_TQOBJECT(this),
- TQT_SLOT(slotForwardInlineMsg()),
+ "mail-forward", SHIFT+Key_F, this,
+ TQ_SLOT(slotForwardInlineMsg()),
actionCollection(),
"message_forward_inline" );
mForwardAttachedAction = new TDEAction( i18n("Message->Forward->","As &Attachment..."),
- "mail-forward", Key_F, TQT_TQOBJECT(this),
- TQT_SLOT(slotForwardAttachedMsg()),
+ "mail-forward", Key_F, this,
+ TQ_SLOT(slotForwardAttachedMsg()),
actionCollection(),
"message_forward_as_attachment" );
mForwardDigestAction = new TDEAction( i18n("Message->Forward->","As Di&gest..."),
- "mail-forward", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotForwardDigestMsg()),
+ "mail-forward", 0, this,
+ TQ_SLOT(slotForwardDigestMsg()),
actionCollection(),
"message_forward_as_digest" );
mRedirectAction = new TDEAction( i18n("Message->Forward->","&Redirect..."),
- "mail-forward", Key_E, TQT_TQOBJECT(this),
- TQT_SLOT(slotRedirectMsg()),
+ "mail-forward", Key_E, this,
+ TQ_SLOT(slotRedirectMsg()),
actionCollection(),
"message_forward_redirect" );
@@ -410,32 +410,32 @@ void KMReaderMainWin::setupAccel()
fontAction = new TDEFontAction( "Select Font", 0, actionCollection(),
"text_font" );
fontAction->setFont( mReaderWin->cssHelper()->bodyFont().family() );
- connect( fontAction, TQT_SIGNAL( activated( const TQString& ) ),
- TQT_SLOT( slotFontAction( const TQString& ) ) );
+ connect( fontAction, TQ_SIGNAL( activated( const TQString& ) ),
+ TQ_SLOT( slotFontAction( const TQString& ) ) );
fontSizeAction = new TDEFontSizeAction( "Select Size", 0, actionCollection(),
"text_size" );
fontSizeAction->setFontSize( mReaderWin->cssHelper()->bodyFont().pointSize() );
- connect( fontSizeAction, TQT_SIGNAL( fontSizeChanged( int ) ),
- TQT_SLOT( slotSizeAction( int ) ) );
+ connect( fontSizeAction, TQ_SIGNAL( fontSizeChanged( int ) ),
+ TQ_SLOT( slotSizeAction( int ) ) );
TQAccel *accel = new TQAccel(mReaderWin, "showMsg()");
accel->connectItem(accel->insertItem(Key_Up),
- mReaderWin, TQT_SLOT(slotScrollUp()));
+ mReaderWin, TQ_SLOT(slotScrollUp()));
accel->connectItem(accel->insertItem(Key_Down),
- mReaderWin, TQT_SLOT(slotScrollDown()));
+ mReaderWin, TQ_SLOT(slotScrollDown()));
accel->connectItem(accel->insertItem(Key_Prior),
- mReaderWin, TQT_SLOT(slotScrollPrior()));
+ mReaderWin, TQ_SLOT(slotScrollPrior()));
accel->connectItem(accel->insertItem(Key_Next),
- mReaderWin, TQT_SLOT(slotScrollNext()));
+ mReaderWin, TQ_SLOT(slotScrollNext()));
accel->connectItem(accel->insertItem(TDEStdAccel::shortcut(TDEStdAccel::Copy)),
- mReaderWin, TQT_SLOT(slotCopySelectedText()));
- connect( mReaderWin, TQT_SIGNAL(popupMenu(KMMessage&,const KURL&,const TQPoint&)),
- this, TQT_SLOT(slotMsgPopup(KMMessage&,const KURL&,const TQPoint&)));
- connect(mReaderWin, TQT_SIGNAL(urlClicked(const KURL&,int)),
- mReaderWin, TQT_SLOT(slotUrlClicked()));
+ mReaderWin, TQ_SLOT(slotCopySelectedText()));
+ connect( mReaderWin, TQ_SIGNAL(popupMenu(KMMessage&,const KURL&,const TQPoint&)),
+ this, TQ_SLOT(slotMsgPopup(KMMessage&,const KURL&,const TQPoint&)));
+ connect(mReaderWin, TQ_SIGNAL(urlClicked(const KURL&,int)),
+ mReaderWin, TQ_SLOT(slotUrlClicked()));
setStandardToolBarMenuEnabled(true);
- KStdAction::configureToolbars(TQT_TQOBJECT(this), TQT_SLOT(slotEditToolbars()), actionCollection());
+ KStdAction::configureToolbars(this, TQ_SLOT(slotEditToolbars()), actionCollection());
}
@@ -503,7 +503,7 @@ void KMReaderMainWin::slotMsgPopup(KMMessage &aMsg, const KURL &aUrl, const TQPo
TQPopupMenu* copyMenu = new TQPopupMenu(menu);
KMMainWidget* mainwin = kmkernel->getKMMainWidget();
if ( mainwin )
- mainwin->folderTree()->folderToPopupMenu( KMFolderTree::CopyMessage, TQT_TQOBJECT(this),
+ mainwin->folderTree()->folderToPopupMenu( KMFolderTree::CopyMessage, this,
&mMenuToFolder, copyMenu );
menu->insertItem( i18n("&Copy To" ), copyMenu );
menu->insertSeparator();
@@ -513,7 +513,7 @@ void KMReaderMainWin::slotMsgPopup(KMMessage &aMsg, const KURL &aUrl, const TQPo
menu->insertSeparator();
mPrintAction->plug( menu );
mSaveAsAction->plug( menu );
- menu->insertItem( i18n("Save Attachments..."), mReaderWin, TQT_SLOT(slotSaveAttachments()) );
+ menu->insertItem( i18n("Save Attachments..."), mReaderWin, TQ_SLOT(slotSaveAttachments()) );
mMsgActions->createTodoAction()->plug( menu );
}
menu->exec(aPoint, 0);
@@ -561,7 +561,7 @@ void KMReaderMainWin::slotEditToolbars()
{
saveMainWindowSettings( KMKernel::config(), "ReaderWindow" );
KEditToolbar dlg( guiFactory(), this );
- connect( &dlg, TQT_SIGNAL(newToolbarConfig()), TQT_SLOT(slotUpdateToolbars()) );
+ connect( &dlg, TQ_SIGNAL(newToolbarConfig()), TQ_SLOT(slotUpdateToolbars()) );
dlg.exec();
}
diff --git a/kmail/kmreadermainwin.h b/kmail/kmreadermainwin.h
index 2fa3462f..2a753b95 100644
--- a/kmail/kmreadermainwin.h
+++ b/kmail/kmreadermainwin.h
@@ -1,5 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
-
#ifndef KMReaderMainWin_h
#define KMReaderMainWin_h
@@ -24,11 +22,11 @@ class MessageActions;
class KMReaderMainWin : public KMail::SecondaryWindow
{
- Q_OBJECT
+ TQ_OBJECT
public:
- KMReaderMainWin( bool htmlOverride, bool htmlLoadExtOverride, char *name = 0 );
+ KMReaderMainWin( bool htmlOverride, bool htmlLoadExtDefault, char *name = 0 );
KMReaderMainWin( char *name = 0 );
KMReaderMainWin(KMMessagePart* aMsgPart,
bool aHTML, const TQString& aFileName, const TQString& pname,
diff --git a/kmail/kmreaderwin.cpp b/kmail/kmreaderwin.cpp
index 927a5d59..d0d78b72 100644
--- a/kmail/kmreaderwin.cpp
+++ b/kmail/kmreaderwin.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmreaderwin.cpp
// Author: Markus Wuebben <markus.wuebben@kde.org>
@@ -386,7 +385,7 @@ kdDebug(5006) << " Root node will NOT be replaced." << endl
void KMReaderWin::createWidgets() {
TQVBoxLayout * vlay = new TQVBoxLayout( this );
- mSplitter = new TQSplitter( Qt::Vertical, this, "mSplitter" );
+ mSplitter = new TQSplitter( TQt::Vertical, this, "mSplitter" );
vlay->addWidget( mSplitter );
mMimePartTree = new KMMimePartTree( this, mSplitter, "mMimePartTree" );
mBox = new TQHBox( mSplitter, "mBox" );
@@ -465,18 +464,19 @@ KMReaderWin::KMReaderWin(TQWidget *aParent,
readConfig();
mHtmlOverride = false;
+ mHtmlLoadExtDefault = false;
mHtmlLoadExtOverride = false;
mLevelQuote = GlobalSettings::self()->collapseQuoteLevelSpin() - 1;
- connect( &mUpdateReaderWinTimer, TQT_SIGNAL(timeout()),
- TQT_TQOBJECT(this), TQT_SLOT(updateReaderWin()) );
- connect( &mResizeTimer, TQT_SIGNAL(timeout()),
- TQT_TQOBJECT(this), TQT_SLOT(slotDelayedResize()) );
- connect( &mDelayedMarkTimer, TQT_SIGNAL(timeout()),
- TQT_TQOBJECT(this), TQT_SLOT(slotTouchMessage()) );
- connect( &mHeaderRefreshTimer, TQT_SIGNAL(timeout()),
- TQT_TQOBJECT(this), TQT_SLOT(updateHeader()) );
+ connect( &mUpdateReaderWinTimer, TQ_SIGNAL(timeout()),
+ this, TQ_SLOT(updateReaderWin()) );
+ connect( &mResizeTimer, TQ_SIGNAL(timeout()),
+ this, TQ_SLOT(slotDelayedResize()) );
+ connect( &mDelayedMarkTimer, TQ_SIGNAL(timeout()),
+ this, TQ_SLOT(slotTouchMessage()) );
+ connect( &mHeaderRefreshTimer, TQ_SIGNAL(timeout()),
+ this, TQ_SLOT(updateHeader()) );
}
@@ -491,46 +491,46 @@ void KMReaderWin::createActions( TDEActionCollection * ac ) {
new TDEActionMenu( i18n("View->", "&Headers"), ac, "view_headers" );
headerMenu->setToolTip( i18n("Choose display style of message headers") );
- connect( headerMenu, TQT_SIGNAL(activated()),
- TQT_TQOBJECT(this), TQT_SLOT(slotCycleHeaderStyles()) );
+ connect( headerMenu, TQ_SIGNAL(activated()),
+ this, TQ_SLOT(slotCycleHeaderStyles()) );
raction = new TDERadioAction( i18n("View->headers->", "&Enterprise Headers"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotEnterpriseHeaders()),
+ this, TQ_SLOT(slotEnterpriseHeaders()),
ac, "view_headers_enterprise" );
raction->setToolTip( i18n("Show the list of headers in Enterprise style") );
raction->setExclusiveGroup( "view_headers_group" );
headerMenu->insert(raction);
raction = new TDERadioAction( i18n("View->headers->", "&Fancy Headers"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotFancyHeaders()),
+ this, TQ_SLOT(slotFancyHeaders()),
ac, "view_headers_fancy" );
raction->setToolTip( i18n("Show the list of headers in a fancy format") );
raction->setExclusiveGroup( "view_headers_group" );
headerMenu->insert( raction );
raction = new TDERadioAction( i18n("View->headers->", "&Brief Headers"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotBriefHeaders()),
+ this, TQ_SLOT(slotBriefHeaders()),
ac, "view_headers_brief" );
raction->setToolTip( i18n("Show brief list of message headers") );
raction->setExclusiveGroup( "view_headers_group" );
headerMenu->insert( raction );
raction = new TDERadioAction( i18n("View->headers->", "&Standard Headers"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotStandardHeaders()),
+ this, TQ_SLOT(slotStandardHeaders()),
ac, "view_headers_standard" );
raction->setToolTip( i18n("Show standard list of message headers") );
raction->setExclusiveGroup( "view_headers_group" );
headerMenu->insert( raction );
raction = new TDERadioAction( i18n("View->headers->", "&Long Headers"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotLongHeaders()),
+ this, TQ_SLOT(slotLongHeaders()),
ac, "view_headers_long" );
raction->setToolTip( i18n("Show long list of message headers") );
raction->setExclusiveGroup( "view_headers_group" );
headerMenu->insert( raction );
raction = new TDERadioAction( i18n("View->headers->", "&All Headers"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotAllHeaders()),
+ this, TQ_SLOT(slotAllHeaders()),
ac, "view_headers_all" );
raction->setToolTip( i18n("Show all message headers") );
raction->setExclusiveGroup( "view_headers_group" );
@@ -540,39 +540,39 @@ void KMReaderWin::createActions( TDEActionCollection * ac ) {
TDEActionMenu *attachmentMenu =
new TDEActionMenu( i18n("View->", "&Attachments"), ac, "view_attachments" );
attachmentMenu->setToolTip( i18n("Choose display style of attachments") );
- connect( attachmentMenu, TQT_SIGNAL(activated()),
- TQT_TQOBJECT(this), TQT_SLOT(slotCycleAttachmentStrategy()) );
+ connect( attachmentMenu, TQ_SIGNAL(activated()),
+ this, TQ_SLOT(slotCycleAttachmentStrategy()) );
raction = new TDERadioAction( i18n("View->attachments->", "&As Icons"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotIconicAttachments()),
+ this, TQ_SLOT(slotIconicAttachments()),
ac, "view_attachments_as_icons" );
raction->setToolTip( i18n("Show all attachments as icons. Click to see them.") );
raction->setExclusiveGroup( "view_attachments_group" );
attachmentMenu->insert( raction );
raction = new TDERadioAction( i18n("View->attachments->", "&Smart"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotSmartAttachments()),
+ this, TQ_SLOT(slotSmartAttachments()),
ac, "view_attachments_smart" );
raction->setToolTip( i18n("Show attachments as suggested by sender.") );
raction->setExclusiveGroup( "view_attachments_group" );
attachmentMenu->insert( raction );
raction = new TDERadioAction( i18n("View->attachments->", "&Inline"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotInlineAttachments()),
+ this, TQ_SLOT(slotInlineAttachments()),
ac, "view_attachments_inline" );
raction->setToolTip( i18n("Show all attachments inline (if possible)") );
raction->setExclusiveGroup( "view_attachments_group" );
attachmentMenu->insert( raction );
raction = new TDERadioAction( i18n("View->attachments->", "&Hide"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotHideAttachments()),
+ this, TQ_SLOT(slotHideAttachments()),
ac, "view_attachments_hide" );
raction->setToolTip( i18n("Do not show attachments in the message viewer") );
raction->setExclusiveGroup( "view_attachments_group" );
attachmentMenu->insert( raction );
mHeaderOnlyAttachmentsAction = new TDERadioAction( i18n( "View->attachments->", "In Header &Only" ), 0,
- TQT_TQOBJECT(this), TQT_SLOT( slotHeaderOnlyAttachments() ),
+ this, TQ_SLOT( slotHeaderOnlyAttachments() ),
ac, "view_attachments_headeronly" );
mHeaderOnlyAttachmentsAction->setToolTip( i18n( "Show Attachments only in the header of the mail" ) );
mHeaderOnlyAttachmentsAction->setExclusiveGroup( "view_attachments_group" );
@@ -580,7 +580,7 @@ void KMReaderWin::createActions( TDEActionCollection * ac ) {
// Set Encoding submenu
mSelectEncodingAction = new TDESelectAction( i18n( "&Set Encoding" ), "charset", 0,
- TQT_TQOBJECT(this), TQT_SLOT( slotSetEncoding() ),
+ this, TQ_SLOT( slotSetEncoding() ),
ac, "encoding" );
TQStringList encodings = KMMsgBase::supportedEncodings( false );
encodings.prepend( i18n( "Auto" ) );
@@ -588,45 +588,45 @@ void KMReaderWin::createActions( TDEActionCollection * ac ) {
mSelectEncodingAction->setCurrentItem( 0 );
mMailToComposeAction = new TDEAction( i18n("New Message To..."), "mail-message-new",
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotMailtoCompose()), ac,
+ 0, this, TQ_SLOT(slotMailtoCompose()), ac,
"mailto_compose" );
mMailToReplyAction = new TDEAction( i18n("Reply To..."), "mail-reply-sender",
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotMailtoReply()), ac,
+ 0, this, TQ_SLOT(slotMailtoReply()), ac,
"mailto_reply" );
mMailToForwardAction = new TDEAction( i18n("Forward To..."), "mail-forward",
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotMailtoForward()), ac,
+ 0, this, TQ_SLOT(slotMailtoForward()), ac,
"mailto_forward" );
mAddAddrBookAction = new TDEAction( i18n("Add to Address Book"),
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotMailtoAddAddrBook()),
+ 0, this, TQ_SLOT(slotMailtoAddAddrBook()),
ac, "add_addr_book" );
mOpenAddrBookAction = new TDEAction( i18n("Open in Address Book"),
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotMailtoOpenAddrBook()),
+ 0, this, TQ_SLOT(slotMailtoOpenAddrBook()),
ac, "openin_addr_book" );
- mCopyAction = KStdAction::copy( TQT_TQOBJECT(this), TQT_SLOT(slotCopySelectedText()), ac, "kmail_copy");
- mSelectAllAction = new TDEAction( i18n("Select All Text"), CTRL+SHIFT+Key_A, TQT_TQOBJECT(this),
- TQT_SLOT(selectAll()), ac, "mark_all_text" );
- mCopyURLAction = new TDEAction( i18n("Copy Link Address"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotUrlCopy()), ac, "copy_url" );
- mUrlOpenAction = new TDEAction( i18n("Open URL"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotUrlOpen()), ac, "open_url" );
+ mCopyAction = KStdAction::copy( this, TQ_SLOT(slotCopySelectedText()), ac, "kmail_copy");
+ mSelectAllAction = new TDEAction( i18n("Select All Text"), CTRL+SHIFT+Key_A, this,
+ TQ_SLOT(selectAll()), ac, "mark_all_text" );
+ mCopyURLAction = new TDEAction( i18n("Copy Link Address"), 0, this,
+ TQ_SLOT(slotUrlCopy()), ac, "copy_url" );
+ mUrlOpenAction = new TDEAction( i18n("Open URL"), 0, this,
+ TQ_SLOT(slotUrlOpen()), ac, "open_url" );
mAddBookmarksAction = new TDEAction( i18n("Bookmark This Link"),
"bookmark_add",
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotAddBookmarks()),
+ 0, this, TQ_SLOT(slotAddBookmarks()),
ac, "add_bookmarks" );
- mUrlSaveAsAction = new TDEAction( i18n("Save Link As..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotUrlSave()), ac, "saveas_url" );
+ mUrlSaveAsAction = new TDEAction( i18n("Save Link As..."), 0, this,
+ TQ_SLOT(slotUrlSave()), ac, "saveas_url" );
mToggleFixFontAction = new TDEToggleAction( i18n("Use Fi&xed Font"),
- Key_X, TQT_TQOBJECT(this), TQT_SLOT(slotToggleFixedFont()),
+ Key_X, this, TQ_SLOT(slotToggleFixedFont()),
ac, "toggle_fixedfont" );
mToggleMimePartTreeAction = new TDEToggleAction( i18n("Show Message Structure"),
0, ac, "toggle_mimeparttree" );
- connect(mToggleMimePartTreeAction, TQT_SIGNAL(toggled(bool)),
- TQT_TQOBJECT(this), TQT_SLOT(slotToggleMimePartTree()));
+ connect(mToggleMimePartTreeAction, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(slotToggleMimePartTree()));
- mStartIMChatAction = new TDEAction( i18n("Chat &With..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotIMChat()), ac, "start_im_chat" );
+ mStartIMChatAction = new TDEAction( i18n("Chat &With..."), 0, this,
+ TQ_SLOT(slotIMChat()), ac, "start_im_chat" );
}
// little helper function
@@ -903,7 +903,6 @@ void KMReaderWin::readConfig(void)
mToggleFixFontAction->setChecked( mUseFixedFont );
mHtmlMail = reader.readBoolEntry( "htmlMail", false );
- mHtmlLoadExternal = reader.readBoolEntry( "htmlLoadExternal", false );
setHeaderStyleAndStrategy( HeaderStyle::create( reader.readEntry( "header-style", "fancy" ) ),
HeaderStrategy::create( reader.readEntry( "header-set-displayed", "rich" ) ) );
@@ -1001,7 +1000,7 @@ void KMReaderWin::writeConfig( bool sync ) const {
//-----------------------------------------------------------------------------
void KMReaderWin::initHtmlWidget(void)
{
- mViewer->widget()->setFocusPolicy(TQ_WheelFocus);
+ mViewer->widget()->setFocusPolicy(TQWidget::WheelFocus);
// Let's better be paranoid and disable plugins (it defaults to enabled):
mViewer->setPluginsEnabled(false);
mViewer->setJScriptEnabled(false); // just make this explicit
@@ -1022,17 +1021,17 @@ void KMReaderWin::initHtmlWidget(void)
#endif
connect(mViewer->browserExtension(),
- TQT_SIGNAL(openURLRequest(const KURL &, const KParts::URLArgs &)),this,
- TQT_SLOT(slotUrlOpen(const KURL &)));
+ TQ_SIGNAL(openURLRequest(const KURL &, const KParts::URLArgs &)),this,
+ TQ_SLOT(slotUrlOpen(const KURL &)));
connect(mViewer->browserExtension(),
- TQT_SIGNAL(createNewWindow(const KURL &, const KParts::URLArgs &)),this,
- TQT_SLOT(slotUrlOpen(const KURL &)));
- connect(mViewer,TQT_SIGNAL(popupMenu(const TQString &, const TQPoint &)),
- TQT_SLOT(slotUrlPopup(const TQString &, const TQPoint &)));
- connect( kmkernel->imProxy(), TQT_SIGNAL( sigContactPresenceChanged( const TQString & ) ),
- TQT_TQOBJECT(this), TQT_SLOT( contactStatusChanged( const TQString & ) ) );
- connect( kmkernel->imProxy(), TQT_SIGNAL( sigPresenceInfoExpired() ),
- TQT_TQOBJECT(this), TQT_SLOT( updateReaderWin() ) );
+ TQ_SIGNAL(createNewWindow(const KURL &, const KParts::URLArgs &)),this,
+ TQ_SLOT(slotUrlOpen(const KURL &)));
+ connect(mViewer,TQ_SIGNAL(popupMenu(const TQString &, const TQPoint &)),
+ TQ_SLOT(slotUrlPopup(const TQString &, const TQPoint &)));
+ connect( kmkernel->imProxy(), TQ_SIGNAL( sigContactPresenceChanged( const TQString & ) ),
+ this, TQ_SLOT( contactStatusChanged( const TQString & ) ) );
+ connect( kmkernel->imProxy(), TQ_SIGNAL( sigPresenceInfoExpired() ),
+ this, TQ_SLOT( updateReaderWin() ) );
}
void KMReaderWin::contactStatusChanged( const TQString &uid)
@@ -1409,8 +1408,6 @@ void KMReaderWin::updateReaderWin()
{
if (!mMsgDisplay) return;
- mViewer->setOnlyLocalReferences(!htmlLoadExternal());
-
htmlWriter()->reset();
KMFolder* folder = 0;
@@ -1500,7 +1497,7 @@ void KMReaderWin::displayMessage() {
htmlWriter()->queue("</body></html>");
htmlWriter()->flush();
- TQTimer::singleShot( 1, TQT_TQOBJECT(this), TQT_SLOT(injectAttachments()) );
+ TQTimer::singleShot( 1, this, TQ_SLOT(injectAttachments()) );
}
static bool message_was_saved_decrypted_before( const KMMessage * msg ) {
@@ -1580,6 +1577,7 @@ void KMReaderWin::parseMsg(KMMessage* aMsg)
// - this can only be done *after* calling parseObjectTree()
KMMsgEncryptionState encryptionState = mRootNode->overallEncryptionState();
KMMsgSignatureState signatureState = mRootNode->overallSignatureState();
+ mViewer->setOnlyLocalReferences(!htmlLoadExternal());
// Don't crash when switching message while GPG passphrase entry dialog is shown #53185
if (aMsg != message()) {
displayMessage();
@@ -1777,8 +1775,12 @@ TQString KMReaderWin::writeMessagePartToTempFile( KMMessagePart* aMsgPart,
int slashPos = fileName.findRev( '/' );
if( -1 != slashPos )
fileName = fileName.mid( slashPos + 1 );
- if( fileName.isEmpty() )
+ if( fileName.isEmpty() ) {
fileName = "unnamed";
+ // Save html emails with extension
+ if ( aMsgPart->subtype() == DwMime::kSubtypeHtml )
+ fileName += ".html";
+ }
fname += "/" + fileName;
TQByteArray data = aMsgPart->bodyDecodedBinary();
@@ -1996,7 +1998,7 @@ void KMReaderWin::slotUrlOpen(const KURL &aUrl, const KParts::URLArgs &)
return;
kdWarning( 5006 ) << "KMReaderWin::slotOpenUrl(): Unhandled URL click!" << endl;
- emit urlClicked( aUrl, Qt::LeftButton );
+ emit urlClicked( aUrl, TQt::LeftButton );
}
//-----------------------------------------------------------------------------
@@ -2067,7 +2069,7 @@ void KMReaderWin::showAttachmentPopup( int id, const TQString & name, const TQPo
menu->insertItem( i18n("Scroll To"), 10 );
}
- connect(menu, TQT_SIGNAL(activated(int)), TQT_TQOBJECT(this), TQT_SLOT(slotHandleAttachment(int)));
+ connect(menu, TQ_SIGNAL(activated(int)), this, TQ_SLOT(slotHandleAttachment(int)));
menu->exec( p ,0 );
delete menu;
}
@@ -2107,8 +2109,8 @@ void KMReaderWin::slotHandleAttachment( int choice )
KMHandleAttachmentCommand* command = new KMHandleAttachmentCommand(
node, message(), mAtmCurrent, mAtmCurrentName,
KMHandleAttachmentCommand::AttachmentAction( choice ), 0, this );
- connect( command, TQT_SIGNAL( showAttachment( int, const TQString& ) ),
- TQT_TQOBJECT(this), TQT_SLOT( slotAtmView( int, const TQString& ) ) );
+ connect( command, TQ_SIGNAL( showAttachment( int, const TQString& ) ),
+ this, TQ_SLOT( slotAtmView( int, const TQString& ) ) );
command->start();
} else if ( choice == 7 ) {
slotDeleteAttachment( node );
@@ -2395,8 +2397,8 @@ void KMReaderWin::openAttachment( int id, const TQString & name )
KMHandleAttachmentCommand* command = new KMHandleAttachmentCommand( node,
message(), mAtmCurrent, mAtmCurrentName, KMHandleAttachmentCommand::Save,
offer, this );
- connect( command, TQT_SIGNAL( showAttachment( int, const TQString& ) ),
- TQT_TQOBJECT(this), TQT_SLOT( slotAtmView( int, const TQString& ) ) );
+ connect( command, TQ_SIGNAL( showAttachment( int, const TQString& ) ),
+ this, TQ_SLOT( slotAtmView( int, const TQString& ) ) );
command->start();
}
else if( choice == KMessageBox::No ) { // Open
@@ -2405,8 +2407,8 @@ void KMReaderWin::openAttachment( int id, const TQString & name )
mAtmUpdate = true;
KMHandleAttachmentCommand* command = new KMHandleAttachmentCommand( node,
message(), mAtmCurrent, mAtmCurrentName, action, offer, this );
- connect( command, TQT_SIGNAL( showAttachment( int, const TQString& ) ),
- TQT_TQOBJECT(this), TQT_SLOT( slotAtmView( int, const TQString& ) ) );
+ connect( command, TQ_SIGNAL( showAttachment( int, const TQString& ) ),
+ this, TQ_SLOT( slotAtmView( int, const TQString& ) ) );
command->start();
} else { // Cancel
kdDebug(5006) << "Canceled opening attachment" << endl;
@@ -2498,11 +2500,14 @@ void KMReaderWin::setHtmlOverride(bool override)
//-----------------------------------------------------------------------------
-void KMReaderWin::setHtmlLoadExtOverride(bool override)
+void KMReaderWin::setHtmlLoadExtDefault(bool loadExtDefault)
+{
+ mHtmlLoadExtDefault = loadExtDefault;
+}
+
+void KMReaderWin::setHtmlLoadExtOverride(bool loadExtOverride)
{
- mHtmlLoadExtOverride = override;
- //if (message())
- // message()->setDecodeHTML(htmlMail());
+ mHtmlLoadExtOverride = loadExtOverride;
}
@@ -2516,8 +2521,19 @@ bool KMReaderWin::htmlMail()
//-----------------------------------------------------------------------------
bool KMReaderWin::htmlLoadExternal()
{
- return ((mHtmlLoadExternal && !mHtmlLoadExtOverride) ||
- (!mHtmlLoadExternal && mHtmlLoadExtOverride));
+ if (!mRootNode)
+ {
+ return mHtmlLoadExtOverride;
+ }
+
+ // when displaying an encrypted message, only load external resources on explicit request
+ if (mRootNode->overallEncryptionState() != KMMsgNotEncrypted)
+ {
+ return mHtmlLoadExtOverride;
+ }
+
+ return ((mHtmlLoadExtDefault && !mHtmlLoadExtOverride) ||
+ (!mHtmlLoadExtDefault && mHtmlLoadExtOverride));
}
@@ -2742,14 +2758,14 @@ static TQString linkForNode( const DOM::Node &node )
bool KMReaderWin::eventFilter( TQObject *, TQEvent *e )
{
if ( e->type() == TQEvent::MouseButtonPress ) {
- TQMouseEvent* me = TQT_TQMOUSEEVENT(e);
- if ( me->button() == Qt::LeftButton && ( me->state() & ShiftButton ) ) {
+ TQMouseEvent* me = static_cast<TQMouseEvent*>(e);
+ if ( me->button() == TQt::LeftButton && ( me->state() & ShiftButton ) ) {
// special processing for shift+click
URLHandlerManager::instance()->handleShiftClick( mHoveredUrl, this );
return true;
}
- if ( me->button() == Qt::LeftButton ) {
+ if ( me->button() == TQt::LeftButton ) {
TQString imagePath;
const DOM::Node nodeUnderMouse = mViewer->nodeUnderMouse();
@@ -2774,7 +2790,7 @@ bool KMReaderWin::eventFilter( TQObject *, TQEvent *e )
}
if ( e->type() == TQEvent::MouseMove ) {
- TQMouseEvent* me = TQT_TQMOUSEEVENT( e );
+ TQMouseEvent* me = static_cast<TQMouseEvent*>( e );
// Handle this ourselves instead of connecting to mViewer::onURL(), since TDEHTML misses some
// notifications in case we started a drag ourselves
@@ -2789,8 +2805,8 @@ bool KMReaderWin::eventFilter( TQObject *, TQEvent *e )
// HACK: Send a mouse release event to the TDEHTMLView, as otherwise that will be missed in
// case we started a drag. If the event is missed, the HTML view gets into a wrong
// state, in which funny things like unsolicited drags start to happen.
- TQMouseEvent mouseEvent( TQEvent::MouseButtonRelease, me->pos(), Qt::NoButton, Qt::NoButton );
- TQT_TQOBJECT( mViewer->view() )->eventFilter( mViewer->view()->viewport(),
+ TQMouseEvent mouseEvent( TQEvent::MouseButtonRelease, me->pos(), TQt::NoButton, TQt::NoButton );
+ static_cast<TQObject*>(mViewer->view())->eventFilter( mViewer->view()->viewport(),
&mouseEvent );
return true;
}
@@ -2841,10 +2857,10 @@ void KMReaderWin::slotDeleteAttachment(partNode * node)
if ( msg && nodeId != -1 ) {
KMDeleteAttachmentCommand* command = new KMDeleteAttachmentCommand( nodeId, msg, this );
command->start();
- connect( command, TQT_SIGNAL( completed( KMCommand * ) ),
- TQT_TQOBJECT(this), TQT_SLOT( updateReaderWin() ) );
- connect( command, TQT_SIGNAL( completed( KMCommand * ) ),
- TQT_TQOBJECT(this), TQT_SLOT( disconnectMsgAdded() ) );
+ connect( command, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( updateReaderWin() ) );
+ connect( command, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SLOT( disconnectMsgAdded() ) );
// ### HACK: Since the command will do delete + add, a new message will arrive. However, we don't
// want the selection to change. Therefore, as soon as a new message arrives, select it, and then
@@ -2852,8 +2868,8 @@ void KMReaderWin::slotDeleteAttachment(partNode * node)
// Of course the are races, another message can arrive before ours, but we take the risk.
// And it won't work properly with multiple main windows
const KMHeaders * const headers = KMKernel::self()->getKMMainWidget()->headers();
- connect( headers, TQT_SIGNAL( msgAddedToListView( TQListViewItem* ) ),
- TQT_TQOBJECT(this), TQT_SLOT( msgAdded( TQListViewItem* ) ) );
+ connect( headers, TQ_SIGNAL( msgAddedToListView( TQListViewItem* ) ),
+ this, TQ_SLOT( msgAdded( TQListViewItem* ) ) );
}
// If we are operating on a copy of parts of the message, make sure to update the copy as well.
@@ -2878,8 +2894,8 @@ void KMReaderWin::msgAdded( TQListViewItem *item )
void KMReaderWin::disconnectMsgAdded()
{
const KMHeaders *const headers = KMKernel::self()->getKMMainWidget()->headers();
- disconnect( headers, TQT_SIGNAL( msgAddedToListView( TQListViewItem* ) ),
- TQT_TQOBJECT(this), TQT_SLOT( msgAdded( TQListViewItem* ) ) );
+ disconnect( headers, TQ_SIGNAL( msgAddedToListView( TQListViewItem* ) ),
+ this, TQ_SLOT( msgAdded( TQListViewItem* ) ) );
}
void KMReaderWin::slotEditAttachment(partNode * node)
@@ -3030,10 +3046,15 @@ TQString KMReaderWin::renderAttachments(partNode * node, const TQColor &bgColor
}
} else {
partNode::AttachmentDisplayInfo info = node->attachmentDisplayInfo();
+
+ // Write HTML parts and attachments to disk to allow them to be opened
+ bool writePartToDisk = info.displayInHeader || node->msgPart().subtype() == DwMime::kSubtypeHtml;
+ if ( writePartToDisk )
+ TQString fileName = writeMessagePartToTempFile( &node->msgPart(), node->nodeId() );
+
if ( info.displayInHeader ) {
html += "<div style=\"float:left;\">";
html += TQString::fromLatin1( "<span style=\"white-space:nowrap; border-width: 0px; border-left-width: 5px; border-color: %1; 2px; border-left-style: solid;\">" ).arg( bgColor.name() );
- TQString fileName = writeMessagePartToTempFile( &node->msgPart(), node->nodeId() );
TQString href = node->asHREF( "header" );
html += TQString::fromLatin1( "<a href=\"" ) + href +
TQString::fromLatin1( "\">" );
diff --git a/kmail/kmreaderwin.h b/kmail/kmreaderwin.h
index c9f78aec..fca9c3af 100644
--- a/kmail/kmreaderwin.h
+++ b/kmail/kmreaderwin.h
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// Header for kmreaderwin the kmail reader
// written by Markus Wuebben <markus.wuebben@kde.org>
@@ -74,7 +73,7 @@ namespace KParts {
*/
class KMReaderWin: public TQWidget, public KMail::Interface::Observer {
- Q_OBJECT
+ TQ_OBJECT
friend void KMMimePartTree::itemClicked( TQListViewItem* item );
@@ -200,9 +199,22 @@ public:
bool htmlOverride() const { return mHtmlOverride; }
void setHtmlOverride( bool override );
- /** Override default load external references setting */
+ /** Get the load external references override setting */
bool htmlLoadExtOverride() const { return mHtmlLoadExtOverride; }
- void setHtmlLoadExtOverride( bool override );
+
+ /** Default behavior for loading external references.
+ * Use this for specifying the external reference loading behavior as
+ * specified in the user settings.
+ * @see setHtmlLoadExtOverride
+ */
+ void setHtmlLoadExtDefault(bool loadExtDefault);
+
+ /** Override default load external references setting
+ * @warning This must only be called when the user has explicitly
+ * been asked to retrieve external references!
+ * @see setHtmlLoadExtDefault
+ */
+ void setHtmlLoadExtOverride(bool loadExtOverride);
/** Is html mail to be supported? Takes into account override */
bool htmlMail();
@@ -545,7 +557,7 @@ private:
TQString renderAttachments( partNode *node, const TQColor &bgColor );
private:
- bool mHtmlMail, mHtmlLoadExternal, mHtmlOverride, mHtmlLoadExtOverride;
+ bool mHtmlMail, mHtmlLoadExtDefault, mHtmlOverride, mHtmlLoadExtOverride;
int mAtmCurrent;
TQString mAtmCurrentName;
KMMessage *mMessage;
diff --git a/kmail/kmsearchpattern.cpp b/kmail/kmsearchpattern.cpp
index d1d47daf..114f4e8d 100644
--- a/kmail/kmsearchpattern.cpp
+++ b/kmail/kmsearchpattern.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmsearchpattern.cpp
// Author: Marc Mutz <Marc@Mutz.com>
// This code is under GPL!
diff --git a/kmail/kmsearchpattern.h b/kmail/kmsearchpattern.h
index 9b521c1f..9d517fdf 100644
--- a/kmail/kmsearchpattern.h
+++ b/kmail/kmsearchpattern.h
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmsearchpattern.h
// Author: Marc Mutz <Marc@Mutz.com>
// This code is under GPL!
diff --git a/kmail/kmsearchpatternedit.cpp b/kmail/kmsearchpatternedit.cpp
index 88f3609b..43f56e95 100644
--- a/kmail/kmsearchpatternedit.cpp
+++ b/kmail/kmsearchpatternedit.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmsearchpatternedit.cpp
// Author: Marc Mutz <Marc@Mutz.com>
// This code is under GPL
@@ -117,17 +116,17 @@ void KMSearchRuleWidget::initWidget()
RuleWidgetHandlerManager::instance()->createWidgets( mFunctionStack,
mValueStack,
- TQT_TQOBJECT(this) );
+ this );
// redirect focus to the header field combo box
setFocusProxy( mRuleField );
- connect( mRuleField, TQT_SIGNAL( activated( const TQString & ) ),
- this, TQT_SLOT( slotRuleFieldChanged( const TQString & ) ) );
- connect( mRuleField, TQT_SIGNAL( textChanged( const TQString & ) ),
- this, TQT_SLOT( slotRuleFieldChanged( const TQString & ) ) );
- connect( mRuleField, TQT_SIGNAL( textChanged( const TQString & ) ),
- this, TQT_SIGNAL( fieldChanged( const TQString & ) ) );
+ connect( mRuleField, TQ_SIGNAL( activated( const TQString & ) ),
+ this, TQ_SLOT( slotRuleFieldChanged( const TQString & ) ) );
+ connect( mRuleField, TQ_SIGNAL( textChanged( const TQString & ) ),
+ this, TQ_SLOT( slotRuleFieldChanged( const TQString & ) ) );
+ connect( mRuleField, TQ_SIGNAL( textChanged( const TQString & ) ),
+ this, TQ_SIGNAL( fieldChanged( const TQString & ) ) );
}
void KMSearchRuleWidget::setRule( KMSearchRule *aRule )
@@ -392,14 +391,14 @@ void KMSearchRuleWidgetLister::regenerateRuleListFromWidgets()
//=============================================================================
KMSearchPatternEdit::KMSearchPatternEdit(TQWidget *parent, const char *name, bool headersOnly, bool absoluteDates )
- : TQGroupBox( 1/*columns*/, Qt::Horizontal, parent, name )
+ : TQGroupBox( 1/*columns*/, TQt::Horizontal, parent, name )
{
setTitle( i18n("Search Criteria") );
initLayout( headersOnly, absoluteDates );
}
KMSearchPatternEdit::KMSearchPatternEdit(const TQString & title, TQWidget *parent, const char *name, bool headersOnly, bool absoluteDates)
- : TQGroupBox( 1/*column*/, Qt::Horizontal, title, parent, name )
+ : TQGroupBox( 1/*column*/, TQt::Horizontal, title, parent, name )
{
initLayout( headersOnly, absoluteDates );
}
@@ -427,15 +426,15 @@ void KMSearchPatternEdit::initLayout(bool headersOnly, bool absoluteDates)
mRuleLister->slotClear();
//------------connect a few signals
- connect( bg, TQT_SIGNAL(clicked(int)),
- this, TQT_SLOT(slotRadioClicked(int)) );
+ connect( bg, TQ_SIGNAL(clicked(int)),
+ this, TQ_SLOT(slotRadioClicked(int)) );
KMSearchRuleWidget *srw = (KMSearchRuleWidget*)mRuleLister->mWidgetList.first();
if ( srw ) {
- connect( srw, TQT_SIGNAL(fieldChanged(const TQString &)),
- this, TQT_SLOT(slotAutoNameHack()) );
- connect( srw, TQT_SIGNAL(contentsChanged(const TQString &)),
- this, TQT_SLOT(slotAutoNameHack()) );
+ connect( srw, TQ_SIGNAL(fieldChanged(const TQString &)),
+ this, TQ_SLOT(slotAutoNameHack()) );
+ connect( srw, TQ_SIGNAL(contentsChanged(const TQString &)),
+ this, TQ_SLOT(slotAutoNameHack()) );
} else
kdDebug(5006) << "KMSearchPatternEdit: no first KMSearchRuleWidget, though slotClear() has been called!" << endl;
}
diff --git a/kmail/kmsearchpatternedit.h b/kmail/kmsearchpatternedit.h
index 77089df4..ebb2498c 100644
--- a/kmail/kmsearchpatternedit.h
+++ b/kmail/kmsearchpatternedit.h
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kmfilterrulesedit.h
// Author: Marc Mutz <Marc@Mutz.com>
// This code is under GPL
@@ -39,7 +38,7 @@ class KMSearchPatternEdit;
class KMSearchRuleWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constructor. You can give a KMSearchRule as parameter, which will
@@ -105,7 +104,7 @@ private:
class KMSearchRuleWidgetLister : public KWidgetLister
{
- Q_OBJECT
+ TQ_OBJECT
friend class ::KMSearchPatternEdit;
@@ -166,7 +165,7 @@ private:
*/
class KMSearchPatternEdit : public TQGroupBox {
- Q_OBJECT
+ TQ_OBJECT
public:
/** Constructor. The parent and name parameters are passed to the underlying
diff --git a/kmail/kmsender.cpp b/kmail/kmsender.cpp
index 9a8ae5be..5e8e4b41 100644
--- a/kmail/kmsender.cpp
+++ b/kmail/kmsender.cpp
@@ -231,8 +231,8 @@ bool KMSender::doSendQueued( const TQString &customTransport )
for( int i = 0 ; i<mTotalMessages ; ++i )
mTotalBytes += mOutboxFolder->getMsgBase(i)->msgSize();
- connect( mOutboxFolder, TQT_SIGNAL(msgAdded(int)),
- this, TQT_SLOT(outboxMsgAdded(int)) );
+ connect( mOutboxFolder, TQ_SIGNAL(msgAdded(int)),
+ this, TQ_SLOT(outboxMsgAdded(int)) );
mCurrentMsg = 0;
mSentFolder = kmkernel->sentFolder();
@@ -472,8 +472,8 @@ void KMSender::doSendMsg()
i18n( "Sending messages" ),
i18n("Initiating sender process..."),
true );
- connect( mProgressItem, TQT_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)),
- this, TQT_SLOT( slotAbortSend() ) );
+ connect( mProgressItem, TQ_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)),
+ this, TQ_SLOT( slotAbortSend() ) );
kapp->ref();
mSendInProgress = true;
}
@@ -483,6 +483,9 @@ void KMSender::doSendMsg()
msgTransport = mCurrentMsg->headerField("X-KMail-Transport");
}
if ( msgTransport.isEmpty() ) {
+ msgTransport = GlobalSettings::self()->defaultTransport();
+ }
+ if ( msgTransport.isEmpty() ) {
const TQStringList sl = KMTransportInfo::availableTransports();
if (!sl.empty()) msgTransport = sl.front();
}
@@ -517,8 +520,8 @@ void KMSender::doSendMsg()
if (!mSendProc)
sendProcStarted(false);
else {
- connect(mSendProc, TQT_SIGNAL(idle()), TQT_SLOT(slotIdle()));
- connect(mSendProc, TQT_SIGNAL(started(bool)), TQT_SLOT(sendProcStarted(bool)));
+ connect(mSendProc, TQ_SIGNAL(idle()), TQ_SLOT(slotIdle()));
+ connect(mSendProc, TQ_SIGNAL(started(bool)), TQ_SLOT(sendProcStarted(bool)));
// Run the precommand if there is one
if ( !mTransportInfo->precommand.isEmpty() ) {
@@ -538,8 +541,8 @@ void KMSender::doSendMsg()
bool KMSender::runPrecommand( const TQString & cmd ) {
setStatusMsg( i18n("Executing precommand %1").arg( cmd ) );
mPrecommand = new KMPrecommand( cmd );
- connect( mPrecommand, TQT_SIGNAL(finished(bool)),
- TQT_SLOT(slotPrecommandFinished(bool)) );
+ connect( mPrecommand, TQ_SIGNAL(finished(bool)),
+ TQ_SLOT(slotPrecommandFinished(bool)) );
if ( !mPrecommand->start() ) {
delete mPrecommand; mPrecommand = 0;
return false;
@@ -641,8 +644,8 @@ void KMSender::cleanup(void)
mSentFolder = 0;
}
if ( mOutboxFolder ) {
- disconnect( mOutboxFolder, TQT_SIGNAL(msgAdded(int)),
- this, TQT_SLOT(outboxMsgAdded(int)) );
+ disconnect( mOutboxFolder, TQ_SIGNAL(msgAdded(int)),
+ this, TQ_SLOT(outboxMsgAdded(int)) );
mOutboxFolder->close("dosendoutbox");
if ( mOutboxFolder->count( true ) == 0 ) {
mOutboxFolder->expunge();
@@ -944,12 +947,12 @@ bool KMSendSendmail::doStart() {
{
mMailerProc = new TDEProcess;
assert(mMailerProc != 0);
- connect(mMailerProc,TQT_SIGNAL(processExited(TDEProcess*)),
- this, TQT_SLOT(sendmailExited(TDEProcess*)));
- connect(mMailerProc,TQT_SIGNAL(wroteStdin(TDEProcess*)),
- this, TQT_SLOT(wroteStdin(TDEProcess*)));
- connect(mMailerProc,TQT_SIGNAL(receivedStderr(TDEProcess*,char*,int)),
- this, TQT_SLOT(receivedStderr(TDEProcess*, char*, int)));
+ connect(mMailerProc,TQ_SIGNAL(processExited(TDEProcess*)),
+ this, TQ_SLOT(sendmailExited(TDEProcess*)));
+ connect(mMailerProc,TQ_SIGNAL(wroteStdin(TDEProcess*)),
+ this, TQ_SLOT(wroteStdin(TDEProcess*)));
+ connect(mMailerProc,TQ_SIGNAL(receivedStderr(TDEProcess*,char*,int)),
+ this, TQ_SLOT(receivedStderr(TDEProcess*, char*, int)));
}
return true;
}
@@ -1043,8 +1046,8 @@ KMSendSMTP::KMSendSMTP(KMSender *sender)
mJob(0),
mSlave(0)
{
- TDEIO::Scheduler::connect(TQT_SIGNAL(slaveError(TDEIO::Slave *, int,
- const TQString &)), this, TQT_SLOT(slaveError(TDEIO::Slave *, int,
+ TDEIO::Scheduler::connect(TQ_SIGNAL(slaveError(TDEIO::Slave *, int,
+ const TQString &)), this, TQ_SLOT(slaveError(TDEIO::Slave *, int,
const TQString &)));
}
@@ -1151,9 +1154,9 @@ bool KMSendSMTP::doSend( const TQString & sender, const TQStringList & to, const
}
mJob->addMetaData( "lf2crlf+dotstuff", "slave" );
TDEIO::Scheduler::assignJobToSlave(mSlave, mJob);
- connect(mJob, TQT_SIGNAL(result(TDEIO::Job *)), this, TQT_SLOT(result(TDEIO::Job *)));
- connect(mJob, TQT_SIGNAL(dataReq(TDEIO::Job *, TQByteArray &)),
- this, TQT_SLOT(dataReq(TDEIO::Job *, TQByteArray &)));
+ connect(mJob, TQ_SIGNAL(result(TDEIO::Job *)), this, TQ_SLOT(result(TDEIO::Job *)));
+ connect(mJob, TQ_SIGNAL(dataReq(TDEIO::Job *, TQByteArray &)),
+ this, TQ_SLOT(dataReq(TDEIO::Job *, TQByteArray &)));
mSendOk = true;
mInProcess = true;
return true;
diff --git a/kmail/kmsender.h b/kmail/kmsender.h
index 8ae577b0..955bab91 100644
--- a/kmail/kmsender.h
+++ b/kmail/kmsender.h
@@ -52,7 +52,7 @@ namespace KPIM {
class KMSender: public TQObject, public KMail::MessageSender
{
- Q_OBJECT
+ TQ_OBJECT
friend class ::KMSendProc;
friend class ::KMSendSendmail;
diff --git a/kmail/kmsender_p.h b/kmail/kmsender_p.h
index d07dcf34..f3214eff 100644
--- a/kmail/kmsender_p.h
+++ b/kmail/kmsender_p.h
@@ -22,7 +22,7 @@ namespace TDEIO {
class KMSendProc: public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -86,7 +86,7 @@ protected:
//-----------------------------------------------------------------------------
class KMSendSendmail: public KMSendProc
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMSendSendmail(KMSender*);
@@ -117,7 +117,7 @@ private:
//-----------------------------------------------------------------------------
class KMSendSMTP : public KMSendProc
{
-Q_OBJECT
+TQ_OBJECT
public:
KMSendSMTP(KMSender *sender);
diff --git a/kmail/kmservertest.cpp b/kmail/kmservertest.cpp
index 446c739e..7383060d 100644
--- a/kmail/kmservertest.cpp
+++ b/kmail/kmservertest.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmservertest.cpp
This file is part of KMail, the KDE mail client.
@@ -51,8 +51,8 @@ KMServerTest::KMServerTest( const TQString & protocol, const TQString & host, in
mSSL( false ), mJob( 0 ), mSlave( 0 ), mConnectionErrorCount( 0 )
{
TDEIO::Scheduler::connect(
- TQT_SIGNAL(slaveError(TDEIO::Slave *, int, const TQString &)),
- this, TQT_SLOT(slotSlaveResult(TDEIO::Slave *, int, const TQString &)));
+ TQ_SIGNAL(slaveError(TDEIO::Slave *, int, const TQString &)),
+ this, TQ_SLOT(slotSlaveResult(TDEIO::Slave *, int, const TQString &)));
if ( port == 993 || port == 995 || port == 465 )
port = 0;
@@ -85,8 +85,8 @@ void KMServerTest::startOffSlave( int port ) {
slotSlaveResult( 0, 1 );
return;
}
- connect( mSlave, TQT_SIGNAL(metaData(const TDEIO::MetaData&)),
- TQT_SLOT(slotMetaData(const TDEIO::MetaData&)) );
+ connect( mSlave, TQ_SIGNAL(metaData(const TDEIO::MetaData&)),
+ TQ_SLOT(slotMetaData(const TDEIO::MetaData&)) );
TQByteArray packedArgs;
TQDataStream stream( packedArgs, IO_WriteOnly );
@@ -95,9 +95,9 @@ void KMServerTest::startOffSlave( int port ) {
mJob = TDEIO::special( url, packedArgs, false );
TDEIO::Scheduler::assignJobToSlave( mSlave, mJob );
- connect( mJob, TQT_SIGNAL(result(TDEIO::Job*)), TQT_SLOT(slotResult(TDEIO::Job*)) );
- connect( mJob, TQT_SIGNAL(infoMessage(TDEIO::Job*,const TQString&)),
- TQT_SLOT(slotData(TDEIO::Job*,const TQString&)) );
+ connect( mJob, TQ_SIGNAL(result(TDEIO::Job*)), TQ_SLOT(slotResult(TDEIO::Job*)) );
+ connect( mJob, TQ_SIGNAL(infoMessage(TDEIO::Job*,const TQString&)),
+ TQ_SLOT(slotData(TDEIO::Job*,const TQString&)) );
}
@@ -166,7 +166,7 @@ void KMServerTest::slotSlaveResult(TDEIO::Slave *aSlave, int error,
if ( error )
{
mJob = 0;
- KMessageBox::error( TQT_TQWIDGET(kapp->activeWindow()),
+ KMessageBox::error( kapp->activeWindow(),
TDEIO::buildErrorString( error, errorText ),
i18n("Error") );
emit capabilities( mListNormal, mListSSL );
diff --git a/kmail/kmservertest.h b/kmail/kmservertest.h
index 5d5cddf1..0a32491a 100644
--- a/kmail/kmservertest.h
+++ b/kmail/kmservertest.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmservertest.h
This file is part of KMail, the KDE mail client.
@@ -46,7 +46,7 @@ namespace TDEIO {
class KMServerTest : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/kmstartup.h b/kmail/kmstartup.h
index 456a39a4..11c840e6 100644
--- a/kmail/kmstartup.h
+++ b/kmail/kmstartup.h
@@ -18,7 +18,7 @@
#ifndef KMSTARTUP
#define KMSTARTUP
-#include <tdepimmacros.h>
+#include <kdemacros.h>
extern "C" {
diff --git a/kmail/kmsystemtray.cpp b/kmail/kmsystemtray.cpp
index f3ff58a4..b6e1f969 100644
--- a/kmail/kmsystemtray.cpp
+++ b/kmail/kmsystemtray.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
/***************************************************************************
kmsystemtray.cpp - description
-------------------
@@ -72,7 +71,7 @@ KMSystemTray::KMSystemTray(TQWidget *parent, const char *name)
mLastUpdate = time( 0 );
mUpdateTimer = new TQTimer( this, "systraytimer" );
- connect( mUpdateTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( updateNewMessages() ) );
+ connect( mUpdateTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( updateNewMessages() ) );
mDefaultIcon = loadIcon( "kmail" );
mLightIconImage = loadIcon( "kmaillight" ).convertToImage();
@@ -95,15 +94,15 @@ KMSystemTray::KMSystemTray(TQWidget *parent, const char *name)
/** Initiate connections between folders and this object */
foldersChanged();
- connect( kmkernel->folderMgr(), TQT_SIGNAL(changed()), TQT_SLOT(foldersChanged()));
- connect( kmkernel->imapFolderMgr(), TQT_SIGNAL(changed()), TQT_SLOT(foldersChanged()));
- connect( kmkernel->dimapFolderMgr(), TQT_SIGNAL(changed()), TQT_SLOT(foldersChanged()));
- connect( kmkernel->searchFolderMgr(), TQT_SIGNAL(changed()), TQT_SLOT(foldersChanged()));
+ connect( kmkernel->folderMgr(), TQ_SIGNAL(changed()), TQ_SLOT(foldersChanged()));
+ connect( kmkernel->imapFolderMgr(), TQ_SIGNAL(changed()), TQ_SLOT(foldersChanged()));
+ connect( kmkernel->dimapFolderMgr(), TQ_SIGNAL(changed()), TQ_SLOT(foldersChanged()));
+ connect( kmkernel->searchFolderMgr(), TQ_SIGNAL(changed()), TQ_SLOT(foldersChanged()));
- connect( kmkernel->acctMgr(), TQT_SIGNAL( checkedMail( bool, bool, const TQMap<TQString, int> & ) ),
- TQT_SLOT( updateNewMessages() ) );
+ connect( kmkernel->acctMgr(), TQ_SIGNAL( checkedMail( bool, bool, const TQMap<TQString, int> & ) ),
+ TQ_SLOT( updateNewMessages() ) );
- connect( this, TQT_SIGNAL( quitSelected() ), TQT_SLOT( tray_quit() ) );
+ connect( this, TQ_SIGNAL( quitSelected() ), TQ_SLOT( tray_quit() ) );
}
void KMSystemTray::buildPopupMenu()
@@ -133,7 +132,7 @@ void KMSystemTray::buildPopupMenu()
action->plug( mPopupMenu );
mPopupMenu->insertSeparator();
- mPopupMenu->insertItem( SmallIcon("system-log-out"), i18n("&Quit"), this, TQT_SLOT(maybeQuit()) );
+ mPopupMenu->insertItem( SmallIcon("system-log-out"), i18n("&Quit"), this, TQ_SLOT(maybeQuit()) );
}
void KMSystemTray::tray_quit()
@@ -276,7 +275,7 @@ void KMSystemTray::foldersChanged()
}
/** Disconnect all previous connections */
- disconnect(this, TQT_SLOT(updateNewMessageNotification(KMFolder *)));
+ disconnect(this, TQ_SLOT(updateNewMessageNotification(KMFolder *)));
TQStringList folderNames;
TQValueList<TQGuardedPtr<KMFolder> > folderList;
@@ -298,14 +297,14 @@ void KMSystemTray::foldersChanged()
!currentFolder->ignoreNewMail() )
{
/** If this is a new folder, start listening for messages */
- connect(currentFolder, TQT_SIGNAL(numUnreadMsgsChanged(KMFolder *)),
- this, TQT_SLOT(updateNewMessageNotification(KMFolder *)));
+ connect(currentFolder, TQ_SIGNAL(numUnreadMsgsChanged(KMFolder *)),
+ this, TQ_SLOT(updateNewMessageNotification(KMFolder *)));
/** Check all new folders to see if we started with any new messages */
updateNewMessageNotification(currentFolder);
}
else {
- disconnect(currentFolder, TQT_SIGNAL(numUnreadMsgsChanged(KMFolder *)), this, TQT_SLOT(updateNewMessageNotification(KMFolder *)) );
+ disconnect(currentFolder, TQ_SIGNAL(numUnreadMsgsChanged(KMFolder *)), this, TQ_SLOT(updateNewMessageNotification(KMFolder *)) );
}
}
}
@@ -317,7 +316,7 @@ void KMSystemTray::foldersChanged()
void KMSystemTray::mousePressEvent(TQMouseEvent *e)
{
// switch to kmail on left mouse button
- if( e->button() == Qt::LeftButton )
+ if( e->button() == TQt::LeftButton )
{
if( mParentVisible && mainWindowIsOnCurrentDesktop() )
hideKMail();
@@ -326,7 +325,7 @@ void KMSystemTray::mousePressEvent(TQMouseEvent *e)
}
// open popup menu on right mouse button
- if( e->button() == Qt::RightButton )
+ if( e->button() == TQt::RightButton )
{
mPopupFolders.clear();
mPopupFolders.reserve( mFoldersWithUnread.count() );
@@ -350,7 +349,7 @@ void KMSystemTray::mousePressEvent(TQMouseEvent *e)
kdDebug(5006) << "Adding folder" << endl;
mPopupFolders.append( it.key() );
TQString item = prettyName(it.key()) + " (" + TQString::number(it.data()) + ")";
- newMessagesPopup->insertItem(item, this, TQT_SLOT(selectedAccount(int)), 0, i);
+ newMessagesPopup->insertItem(item, this, TQ_SLOT(selectedAccount(int)), 0, i);
++it;
}
@@ -546,7 +545,7 @@ void KMSystemTray::updateNewMessages()
if(mFoldersWithUnread.count() == 0)
{
mPopupFolders.clear();
- disconnect(this, TQT_SLOT(selectedAccount(int)));
+ disconnect(this, TQ_SLOT(selectedAccount(int)));
mCount = 0;
diff --git a/kmail/kmsystemtray.h b/kmail/kmsystemtray.h
index b689def5..0472a98c 100644
--- a/kmail/kmsystemtray.h
+++ b/kmail/kmsystemtray.h
@@ -40,7 +40,7 @@ class TQPoint;
*/
class KMSystemTray : public KSystemTray
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** construtor */
diff --git a/kmail/kmtransport.cpp b/kmail/kmtransport.cpp
index 4f991f94..764c1720 100644
--- a/kmail/kmtransport.cpp
+++ b/kmail/kmtransport.cpp
@@ -251,7 +251,7 @@ KMTransportSelDlg::KMTransportSelDlg( TQWidget *parent, const char *name,
TQVBoxLayout *topLayout = new TQVBoxLayout( page, 0, spacingHint() );
TQButtonGroup *group = new TQButtonGroup( i18n("Transport"), page );
- connect(group, TQT_SIGNAL(clicked(int)), TQT_SLOT(buttonClicked(int)) );
+ connect(group, TQ_SIGNAL(clicked(int)), TQ_SLOT(buttonClicked(int)) );
topLayout->addWidget( group, 10 );
TQVBoxLayout *vlay = new TQVBoxLayout( group, spacingHint()*2, spacingHint() );
@@ -339,11 +339,11 @@ void KMTransportDialog::makeSendmailPage()
grid->addWidget( mSendmail.locationEdit, 1, 1 );
mSendmail.chooseButton =
new TQPushButton( i18n("Choos&e..."), page );
- connect( mSendmail.chooseButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotSendmailChooser()) );
+ connect( mSendmail.chooseButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotSendmailChooser()) );
- connect( mSendmail.locationEdit, TQT_SIGNAL(textChanged ( const TQString & )),
- this, TQT_SLOT(slotSendmailEditPath(const TQString &)) );
+ connect( mSendmail.locationEdit, TQ_SIGNAL(textChanged ( const TQString & )),
+ this, TQ_SLOT(slotSendmailEditPath(const TQString &)) );
mSendmail.chooseButton->setAutoDefault( false );
grid->addWidget( mSendmail.chooseButton, 1, 2 );
@@ -401,7 +401,7 @@ void KMTransportDialog::makeSmtpPage()
label = new TQLabel( i18n("&Port:"), page1 );
grid->addWidget( label, 4, 0 );
mSmtp.portEdit = new KLineEdit( page1 );
- mSmtp.portEdit->setValidator( new TQIntValidator(TQT_TQOBJECT(this)) );
+ mSmtp.portEdit->setValidator( new TQIntValidator(this) );
TQWhatsThis::add(mSmtp.portEdit,
i18n("The port number that the SMTP server "
"is listening on. The default port is 25."));
@@ -430,8 +430,8 @@ void KMTransportDialog::makeSmtpPage()
"requires authentication before accepting "
"mail. This is known as "
"'Authenticated SMTP' or simply ASMTP."));
- connect(mSmtp.authCheck, TQT_SIGNAL(clicked()),
- TQT_SLOT(slotRequiresAuthClicked()));
+ connect(mSmtp.authCheck, TQ_SIGNAL(clicked()),
+ TQ_SLOT(slotRequiresAuthClicked()));
grid->addMultiCellWidget( mSmtp.authCheck, 7, 7, 0, 1 );
mSmtp.loginLabel = new TQLabel( i18n("&Login:"), page1 );
@@ -490,15 +490,15 @@ void KMTransportDialog::makeSmtpPage()
"identifying itself to the server."));
mSmtp.localHostnameLabel->setBuddy( mSmtp.localHostnameEdit );
grid->addWidget( mSmtp.localHostnameEdit, 13, 1 );
- connect( mSmtp.specifyHostnameCheck, TQT_SIGNAL(toggled(bool)),
- mSmtp.localHostnameEdit, TQT_SLOT(setEnabled(bool)));
- connect( mSmtp.specifyHostnameCheck, TQT_SIGNAL(toggled(bool)),
- mSmtp.localHostnameLabel, TQT_SLOT(setEnabled(bool)));
+ connect( mSmtp.specifyHostnameCheck, TQ_SIGNAL(toggled(bool)),
+ mSmtp.localHostnameEdit, TQ_SLOT(setEnabled(bool)));
+ connect( mSmtp.specifyHostnameCheck, TQ_SIGNAL(toggled(bool)),
+ mSmtp.localHostnameLabel, TQ_SLOT(setEnabled(bool)));
TQWidget *page2 = new TQWidget( tabWidget );
tabWidget->addTab( page2, i18n("S&ecurity") );
TQVBoxLayout *vlay = new TQVBoxLayout( page2, spacingHint() );
- mSmtp.encryptionGroup = new TQButtonGroup( 1, Qt::Horizontal,
+ mSmtp.encryptionGroup = new TQButtonGroup( 1, TQt::Horizontal,
i18n("Encryption"), page2 );
mSmtp.encryptionNone =
new TQRadioButton( i18n("&None"), mSmtp.encryptionGroup );
@@ -506,11 +506,11 @@ void KMTransportDialog::makeSmtpPage()
new TQRadioButton( i18n("&SSL"), mSmtp.encryptionGroup );
mSmtp.encryptionTLS =
new TQRadioButton( i18n("&TLS"), mSmtp.encryptionGroup );
- connect(mSmtp.encryptionGroup, TQT_SIGNAL(clicked(int)),
- TQT_SLOT(slotSmtpEncryptionChanged(int)));
+ connect(mSmtp.encryptionGroup, TQ_SIGNAL(clicked(int)),
+ TQ_SLOT(slotSmtpEncryptionChanged(int)));
vlay->addWidget( mSmtp.encryptionGroup );
- mSmtp.authGroup = new TQButtonGroup( 1, Qt::Horizontal,
+ mSmtp.authGroup = new TQButtonGroup( 1, TQt::Horizontal,
i18n("Authentication Method"), page2 );
mSmtp.authLogin = new TQRadioButton( i18n("Please translate this "
"authentication method only if you have a good reason", "&LOGIN"),
@@ -533,8 +533,8 @@ void KMTransportDialog::makeSmtpPage()
TQHBoxLayout *buttonLay = new TQHBoxLayout( vlay );
mSmtp.checkCapabilities =
new TQPushButton( i18n("Check &What the Server Supports"), page2 );
- connect(mSmtp.checkCapabilities, TQT_SIGNAL(clicked()),
- TQT_SLOT(slotCheckSmtpCapabilities()));
+ connect(mSmtp.checkCapabilities, TQ_SIGNAL(clicked()),
+ TQ_SLOT(slotCheckSmtpCapabilities()));
buttonLay->addStretch();
buttonLay->addWidget( mSmtp.checkCapabilities );
}
@@ -720,11 +720,11 @@ void KMTransportDialog::slotCheckSmtpCapabilities()
mServerTest = new KMServerTest(SMTP_PROTOCOL, mSmtp.hostEdit->text(),
mSmtp.portEdit->text().toInt());
connect( mServerTest,
- TQT_SIGNAL( capabilities( const TQStringList &, const TQStringList &,
+ TQ_SIGNAL( capabilities( const TQStringList &, const TQStringList &,
const TQString &, const TQString &,
const TQString & )),
this,
- TQT_SLOT( slotSmtpCapabilities( const TQStringList &,
+ TQ_SLOT( slotSmtpCapabilities( const TQStringList &,
const TQStringList &, const TQString &,
const TQString &, const TQString & ) ) );
mSmtp.checkCapabilities->setEnabled(false);
diff --git a/kmail/kmtransport.h b/kmail/kmtransport.h
index e4dd6f1e..7f0cd41b 100644
--- a/kmail/kmtransport.h
+++ b/kmail/kmtransport.h
@@ -63,7 +63,7 @@ public:
class KMTransportSelDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -79,7 +79,7 @@ private:
class KMTransportDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/konqueror/servicemenus/CMakeLists.txt b/kmail/konqueror/servicemenus/CMakeLists.txt
index 33e28a4f..a5d62740 100644
--- a/kmail/konqueror/servicemenus/CMakeLists.txt
+++ b/kmail/konqueror/servicemenus/CMakeLists.txt
@@ -9,6 +9,8 @@
#
#################################################
-install( FILES
- email.desktop
- DESTINATION ${DATA_INSTALL_DIR}/konqueror/servicemenus )
+tde_create_translated_desktop(
+ SOURCE email.desktop
+ DESTINATION ${DATA_INSTALL_DIR}/konqueror/servicemenus
+ PO_DIR kmail-desktops
+)
diff --git a/kmail/konqueror/servicemenus/email.desktop b/kmail/konqueror/servicemenus/email.desktop
index 371022b3..cb451f38 100644
--- a/kmail/konqueror/servicemenus/email.desktop
+++ b/kmail/konqueror/servicemenus/email.desktop
@@ -6,8 +6,5 @@ X-TDE-ExcludeServiceTypes=media/*
[Desktop Action Email]
Name=Email File
-Name[de]=Versenden als E-Mail
-Name[fr]=Envoyer par courriel
-Name[pl]=Wyślij plik w załączniku
Exec=kmail --attach %F
Icon=kmail
diff --git a/kmail/listjob.cpp b/kmail/listjob.cpp
index 75e4dee5..6c189293 100644
--- a/kmail/listjob.cpp
+++ b/kmail/listjob.cpp
@@ -76,8 +76,8 @@ void ListJob::execute()
{
// We'll wait for the connectionResult signal from the account.
kdDebug(5006) << "ListJob - waiting for connection" << endl;
- connect( mAccount, TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( slotConnectionResult(int, const TQString&) ) );
+ connect( mAccount, TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( slotConnectionResult(int, const TQString&) ) );
return;
}
// this is needed until we have a common base class for d(imap)
@@ -145,10 +145,10 @@ void ListJob::execute()
TDEIO::SimpleJob *job = TDEIO::listDir( url, false );
TDEIO::Scheduler::assignJobToSlave( mAccount->slave(), job );
mAccount->insertJob( job, jd );
- connect( job, TQT_SIGNAL(result(TDEIO::Job *)),
- this, TQT_SLOT(slotListResult(TDEIO::Job *)) );
- connect( job, TQT_SIGNAL(entries(TDEIO::Job *, const TDEIO::UDSEntryList &)),
- this, TQT_SLOT(slotListEntries(TDEIO::Job *, const TDEIO::UDSEntryList &)) );
+ connect( job, TQ_SIGNAL(result(TDEIO::Job *)),
+ this, TQ_SLOT(slotListResult(TDEIO::Job *)) );
+ connect( job, TQ_SIGNAL(entries(TDEIO::Job *, const TDEIO::UDSEntryList &)),
+ this, TQ_SLOT(slotListEntries(TDEIO::Job *, const TDEIO::UDSEntryList &)) );
}
void ListJob::slotConnectionResult( int errorCode, const TQString& errorMsg )
diff --git a/kmail/listjob.h b/kmail/listjob.h
index 3b53ea61..54cb535d 100644
--- a/kmail/listjob.h
+++ b/kmail/listjob.h
@@ -53,7 +53,7 @@ namespace KMail {
*/
class ListJob : public FolderJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/kmail/localsubscriptiondialog.cpp b/kmail/localsubscriptiondialog.cpp
index c2d4e555..166cd406 100644
--- a/kmail/localsubscriptiondialog.cpp
+++ b/kmail/localsubscriptiondialog.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
localsubscriptiondialog.cpp
This file is part of KMail, the KDE mail client.
@@ -76,7 +76,7 @@ void LocalSubscriptionDialog::processFolderListing()
if (done == 1000)
{
emit listChanged();
- TQTimer::singleShot(0, this, TQT_SLOT(processItems()));
+ TQTimer::singleShot(0, this, TQ_SLOT(processItems()));
return;
}
++mCount;
diff --git a/kmail/localsubscriptiondialog.h b/kmail/localsubscriptiondialog.h
index 601a8463..f181ab7e 100644
--- a/kmail/localsubscriptiondialog.h
+++ b/kmail/localsubscriptiondialog.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
localsubscriptiondialog.h
This file is part of KMail, the KDE mail client.
@@ -39,7 +39,7 @@ namespace KMail {
class LocalSubscriptionDialog: public SubscriptionDialog
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/maildirjob.cpp b/kmail/maildirjob.cpp
index b507d927..11f6edfb 100644
--- a/kmail/maildirjob.cpp
+++ b/kmail/maildirjob.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2003 Zack Rusin <zack@kde.org>
@@ -74,7 +74,7 @@ void MaildirJob::setParentFolder( const KMFolderMaildir* parent )
//-----------------------------------------------------------------------------
void MaildirJob::execute()
{
- TQTimer::singleShot( 0, this, TQT_SLOT(startJob()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(startJob()) );
}
//-----------------------------------------------------------------------------
diff --git a/kmail/maildirjob.h b/kmail/maildirjob.h
index 1d5a9710..1c21833b 100644
--- a/kmail/maildirjob.h
+++ b/kmail/maildirjob.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2003 Zack Rusin <zack@kde.org>
@@ -40,7 +40,7 @@ namespace KMail {
class MaildirJob : public FolderJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
MaildirJob( KMMessage *msg, JobType jt = tGetMessage, KMFolder *folder = 0 );
diff --git a/kmail/mailinglist-magic.cpp b/kmail/mailinglist-magic.cpp
index 1f927084..37600d50 100644
--- a/kmail/mailinglist-magic.cpp
+++ b/kmail/mailinglist-magic.cpp
@@ -1,4 +1,3 @@
-// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
diff --git a/kmail/mailinglist-magic.h b/kmail/mailinglist-magic.h
index eaa64592..8eed4f8f 100644
--- a/kmail/mailinglist-magic.h
+++ b/kmail/mailinglist-magic.h
@@ -1,4 +1,3 @@
-// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
#ifndef MAILINGLIST_MAGIC_H
#define MAILINGLIST_MAGIC_H
diff --git a/kmail/mailinglistpropertiesdialog.cpp b/kmail/mailinglistpropertiesdialog.cpp
index 0bfb2cc1..ab984161 100644
--- a/kmail/mailinglistpropertiesdialog.cpp
+++ b/kmail/mailinglistpropertiesdialog.cpp
@@ -59,29 +59,29 @@ MailingListFolderPropertiesDialog::MailingListFolderPropertiesDialog( TQWidget*
"topLayout" );
TQGroupBox *mlGroup = new TQGroupBox( i18n("Associated Mailing List" ), this );
- mlGroup->setColumnLayout( 0, Qt::Vertical );
+ mlGroup->setColumnLayout( 0, TQt::Vertical );
TQGridLayout *groupLayout = new TQGridLayout( mlGroup->layout(), 6, 3, spacingHint() );
topLayout->addWidget( mlGroup );
setMainWidget( mlGroup );
mHoldsMailingList = new TQCheckBox( i18n("&Folder holds a mailing list"), mlGroup );
- connect( mHoldsMailingList, TQT_SIGNAL(toggled(bool)),
- TQT_SLOT(slotHoldsML(bool)) );
+ connect( mHoldsMailingList, TQ_SIGNAL(toggled(bool)),
+ TQ_SLOT(slotHoldsML(bool)) );
groupLayout->addMultiCellWidget( mHoldsMailingList, 0, 0, 0, 2 );
groupLayout->addItem( new TQSpacerItem( 0, 10 ), 1, 0 );
mDetectButton = new TQPushButton( i18n("Detect Automatically"), mlGroup );
mDetectButton->setEnabled( false );
- connect( mDetectButton, TQT_SIGNAL(pressed()), TQT_SLOT(slotDetectMailingList()) );
+ connect( mDetectButton, TQ_SIGNAL(pressed()), TQ_SLOT(slotDetectMailingList()) );
groupLayout->addWidget( mDetectButton, 2, 1 );
groupLayout->addItem( new TQSpacerItem( 0, 10 ), 3, 0 );
label = new TQLabel( i18n("Mailing list description:"), mlGroup );
label->setEnabled( false );
- connect( mHoldsMailingList, TQT_SIGNAL(toggled(bool)),
- label, TQT_SLOT(setEnabled(bool)) );
+ connect( mHoldsMailingList, TQ_SIGNAL(toggled(bool)),
+ label, TQ_SLOT(setEnabled(bool)) );
groupLayout->addWidget( label, 4, 0 );
mMLId = new TQLabel( label, "", mlGroup );
groupLayout->addMultiCellWidget( mMLId, 4, 4, 1, 2 );
@@ -90,22 +90,22 @@ MailingListFolderPropertiesDialog::MailingListFolderPropertiesDialog( TQWidget*
//FIXME: add TQWhatsThis
label = new TQLabel( i18n("Preferred handler:"), mlGroup );
label->setEnabled(false);
- connect( mHoldsMailingList, TQT_SIGNAL(toggled(bool)),
- label, TQT_SLOT(setEnabled(bool)) );
+ connect( mHoldsMailingList, TQ_SIGNAL(toggled(bool)),
+ label, TQ_SLOT(setEnabled(bool)) );
groupLayout->addWidget( label, 5, 0 );
mMLHandlerCombo = new TQComboBox( mlGroup );
mMLHandlerCombo->insertItem( i18n("KMail"), MailingList::KMail );
mMLHandlerCombo->insertItem( i18n("Browser"), MailingList::Browser );
mMLHandlerCombo->setEnabled( false );
groupLayout->addMultiCellWidget( mMLHandlerCombo, 5, 5, 1, 2 );
- connect( mMLHandlerCombo, TQT_SIGNAL(activated(int)),
- TQT_SLOT(slotMLHandling(int)) );
+ connect( mMLHandlerCombo, TQ_SIGNAL(activated(int)),
+ TQ_SLOT(slotMLHandling(int)) );
label->setBuddy( mMLHandlerCombo );
label = new TQLabel( i18n("&Address type:"), mlGroup );
label->setEnabled(false);
- connect( mHoldsMailingList, TQT_SIGNAL(toggled(bool)),
- label, TQT_SLOT(setEnabled(bool)) );
+ connect( mHoldsMailingList, TQ_SIGNAL(toggled(bool)),
+ label, TQ_SLOT(setEnabled(bool)) );
groupLayout->addWidget( label, 6, 0 );
mAddressCombo = new TQComboBox( mlGroup );
label->setBuddy( mAddressCombo );
@@ -119,10 +119,10 @@ MailingListFolderPropertiesDialog::MailingListFolderPropertiesDialog( TQWidget*
handleButton->setEnabled( false );
if( mFolder)
{
- connect( mHoldsMailingList, TQT_SIGNAL(toggled(bool)),
- handleButton, TQT_SLOT(setEnabled(bool)) );
- connect( handleButton, TQT_SIGNAL(clicked()),
- TQT_SLOT(slotInvokeHandler()) );
+ connect( mHoldsMailingList, TQ_SIGNAL(toggled(bool)),
+ handleButton, TQ_SLOT(setEnabled(bool)) );
+ connect( handleButton, TQ_SIGNAL(clicked()),
+ TQ_SLOT(slotInvokeHandler()) );
}
groupLayout->addWidget( handleButton, 6, 2 );
@@ -140,8 +140,8 @@ MailingListFolderPropertiesDialog::MailingListFolderPropertiesDialog( TQWidget*
<< i18n( "List Archives" )
<< i18n( "List Help" );
mAddressCombo->insertStringList( el );
- connect( mAddressCombo, TQT_SIGNAL(activated(int)),
- TQT_SLOT(slotAddressChanged(int)) );
+ connect( mAddressCombo, TQ_SIGNAL(activated(int)),
+ TQ_SLOT(slotAddressChanged(int)) );
load();
resize( TQSize(295, 204).expandedTo(minimumSizeHint()) );
diff --git a/kmail/mailinglistpropertiesdialog.h b/kmail/mailinglistpropertiesdialog.h
index e527a5ae..90d5f543 100644
--- a/kmail/mailinglistpropertiesdialog.h
+++ b/kmail/mailinglistpropertiesdialog.h
@@ -44,7 +44,7 @@ namespace KMail
class MailingListFolderPropertiesDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
MailingListFolderPropertiesDialog( TQWidget *parent, KMFolder *folder );
diff --git a/kmail/mailserviceimpl.cpp b/kmail/mailserviceimpl.cpp
index f5b810a3..79af5eaf 100644
--- a/kmail/mailserviceimpl.cpp
+++ b/kmail/mailserviceimpl.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2003 Zack Rusin <zack@kde.org>
diff --git a/kmail/mailserviceimpl.h b/kmail/mailserviceimpl.h
index 6dc5224a..842b4e4e 100644
--- a/kmail/mailserviceimpl.h
+++ b/kmail/mailserviceimpl.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2003 Zack Rusin <zack@kde.org>
diff --git a/kmail/mailsourceviewer.cpp b/kmail/mailsourceviewer.cpp
index eff69cce..d55fe0af 100644
--- a/kmail/mailsourceviewer.cpp
+++ b/kmail/mailsourceviewer.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
*
@@ -58,8 +58,8 @@ MailSourceViewer::MailSourceViewer( TQWidget *parent, const char *name )
{
setWFlags( WDestructiveClose );
TQAccel *accel = new TQAccel( this, "browser close-accel" );
- accel->connectItem( accel->insertItem( TQt::Key_Escape ), this , TQT_SLOT( close() ));
- accel->connectItem( accel->insertItem( TQt::Key_W+CTRL ), this , TQT_SLOT( close() ));
+ accel->connectItem( accel->insertItem( TQt::Key_Escape ), this , TQ_SLOT( close() ));
+ accel->connectItem( accel->insertItem( TQt::Key_W+CTRL ), this , TQ_SLOT( close() ));
setWordWrap( KTextBrowser::NoWrap );
KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon());
}
diff --git a/kmail/mailsourceviewer.h b/kmail/mailsourceviewer.h
index 0c29175b..68f82c23 100644
--- a/kmail/mailsourceviewer.h
+++ b/kmail/mailsourceviewer.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
*
diff --git a/kmail/main.cpp b/kmail/main.cpp
index bb3e0a8a..8b40e555 100644
--- a/kmail/main.cpp
+++ b/kmail/main.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* Copyright (c) 1996-1998 Stefan Taferner <taferner@kde.org>
*
diff --git a/kmail/managesievescriptsdialog.cpp b/kmail/managesievescriptsdialog.cpp
index 560fac90..bd8d9955 100644
--- a/kmail/managesievescriptsdialog.cpp
+++ b/kmail/managesievescriptsdialog.cpp
@@ -46,12 +46,12 @@ KMail::ManageSieveScriptsDialog::ManageSieveScriptsDialog( TQWidget * parent, co
mListView->setResizeMode( TQListView::LastColumn );
mListView->setRootIsDecorated( true );
mListView->setSelectionMode( TQListView::Single );
- connect( mListView, TQT_SIGNAL(contextMenuRequested(TQListViewItem*,const TQPoint&,int)),
- this, TQT_SLOT(slotContextMenuRequested(TQListViewItem*, const TQPoint&)) );
- connect( mListView, TQT_SIGNAL(doubleClicked(TQListViewItem*,const TQPoint&,int)),
- this, TQT_SLOT(slotDoubleClicked(TQListViewItem*)) );
- connect( mListView, TQT_SIGNAL(selectionChanged(TQListViewItem*)),
- this, TQT_SLOT(slotSelectionChanged(TQListViewItem*)) );
+ connect( mListView, TQ_SIGNAL(contextMenuRequested(TQListViewItem*,const TQPoint&,int)),
+ this, TQ_SLOT(slotContextMenuRequested(TQListViewItem*, const TQPoint&)) );
+ connect( mListView, TQ_SIGNAL(doubleClicked(TQListViewItem*,const TQPoint&,int)),
+ this, TQ_SLOT(slotDoubleClicked(TQListViewItem*)) );
+ connect( mListView, TQ_SIGNAL(selectionChanged(TQListViewItem*)),
+ this, TQ_SLOT(slotSelectionChanged(TQListViewItem*)) );
vlay->addWidget( mListView );
resize( 2 * sizeHint().width(), sizeHint().height() );
@@ -111,10 +111,10 @@ void KMail::ManageSieveScriptsDialog::slotRefresh() {
if ( u.isEmpty() )
continue;
SieveJob * job = SieveJob::list( u );
- connect( job, TQT_SIGNAL(item(KMail::SieveJob*,const TQString&,bool)),
- this, TQT_SLOT(slotItem(KMail::SieveJob*,const TQString&,bool)) );
- connect( job, TQT_SIGNAL(result(KMail::SieveJob*,bool,const TQString&,bool)),
- this, TQT_SLOT(slotResult(KMail::SieveJob*,bool,const TQString&,bool)) );
+ connect( job, TQ_SIGNAL(item(KMail::SieveJob*,const TQString&,bool)),
+ this, TQ_SLOT(slotItem(KMail::SieveJob*,const TQString&,bool)) );
+ connect( job, TQ_SIGNAL(result(KMail::SieveJob*,bool,const TQString&,bool)),
+ this, TQ_SLOT(slotResult(KMail::SieveJob*,bool,const TQString&,bool)) );
mJobs.insert( job, last );
mUrls.insert( last, u );
} else {
@@ -162,12 +162,12 @@ void KMail::ManageSieveScriptsDialog::slotContextMenuRequested( TQListViewItem *
mContextMenuItem = item;
if ( item->depth() ) {
// script items:
- menu.insertItem( i18n( "Delete Script" ), this, TQT_SLOT(slotDeleteScript()) );
- menu.insertItem( i18n( "Edit Script..." ), this, TQT_SLOT(slotEditScript()) );
- menu.insertItem( i18n( "Deactivate Script" ), this, TQT_SLOT(slotDeactivateScript()) );
+ menu.insertItem( i18n( "Delete Script" ), this, TQ_SLOT(slotDeleteScript()) );
+ menu.insertItem( i18n( "Edit Script..." ), this, TQ_SLOT(slotEditScript()) );
+ menu.insertItem( i18n( "Deactivate Script" ), this, TQ_SLOT(slotDeactivateScript()) );
} else {
// top-levels:
- menu.insertItem( i18n( "New Script..." ), this, TQT_SLOT(slotNewScript()) );
+ menu.insertItem( i18n( "New Script..." ), this, TQ_SLOT(slotNewScript()) );
}
menu.exec( p );
mContextMenuItem = 0;
@@ -219,8 +219,8 @@ void KMail::ManageSieveScriptsDialog::changeActiveScript( TQCheckListItem * item
job = SieveJob::activate( u );
else
job = SieveJob::desactivate( u );
- connect( job, TQT_SIGNAL(result(KMail::SieveJob*,bool,const TQString&,bool)),
- this, TQT_SLOT(slotRefresh()) );
+ connect( job, TQ_SIGNAL(result(KMail::SieveJob*,bool,const TQString&,bool)),
+ this, TQ_SLOT(slotRefresh()) );
}
void KMail::ManageSieveScriptsDialog::slotDoubleClicked( TQListViewItem * i ) {
@@ -259,8 +259,8 @@ void KMail::ManageSieveScriptsDialog::slotDeleteScript() {
!= KMessageBox::Continue )
return;
SieveJob * job = SieveJob::del( u );
- connect( job, TQT_SIGNAL(result(KMail::SieveJob*,bool,const TQString&,bool)),
- this, TQT_SLOT(slotRefresh()) );
+ connect( job, TQ_SIGNAL(result(KMail::SieveJob*,bool,const TQString&,bool)),
+ this, TQ_SLOT(slotRefresh()) );
}
void KMail::ManageSieveScriptsDialog::slotEditScript() {
@@ -277,8 +277,8 @@ void KMail::ManageSieveScriptsDialog::slotEditScript() {
url.setFileName( mContextMenuItem->text( 0 ) );
mCurrentURL = url;
SieveJob * job = SieveJob::get( url );
- connect( job, TQT_SIGNAL(result(KMail::SieveJob*,bool,const TQString&,bool)),
- this, TQT_SLOT(slotGetResult(KMail::SieveJob*,bool,const TQString&,bool)) );
+ connect( job, TQ_SIGNAL(result(KMail::SieveJob*,bool,const TQString&,bool)),
+ this, TQ_SLOT(slotGetResult(KMail::SieveJob*,bool,const TQString&,bool)) );
}
void KMail::ManageSieveScriptsDialog::slotNewScript() {
@@ -321,7 +321,7 @@ KMail::SieveEditor::SieveEditor( TQWidget * parent, const char * name )
mTextEdit->setTextFormat( TQTextEdit::PlainText );
mTextEdit->setWordWrap( TQTextEdit::NoWrap );
mTextEdit->setFont( TDEGlobalSettings::fixedFont() );
- connect( mTextEdit, TQT_SIGNAL( textChanged () ), TQT_SLOT( slotTextChanged() ) );
+ connect( mTextEdit, TQ_SIGNAL( textChanged () ), TQ_SLOT( slotTextChanged() ) );
resize( 3 * sizeHint() );
}
@@ -342,8 +342,8 @@ void KMail::ManageSieveScriptsDialog::slotGetResult( KMail::SieveJob *, bool suc
mSieveEditor = new SieveEditor( this );
mSieveEditor->setScript( script );
- connect( mSieveEditor, TQT_SIGNAL(okClicked()), this, TQT_SLOT(slotSieveEditorOkClicked()) );
- connect( mSieveEditor, TQT_SIGNAL(cancelClicked()), this, TQT_SLOT(slotSieveEditorCancelClicked()) );
+ connect( mSieveEditor, TQ_SIGNAL(okClicked()), this, TQ_SLOT(slotSieveEditorOkClicked()) );
+ connect( mSieveEditor, TQ_SIGNAL(cancelClicked()), this, TQ_SLOT(slotSieveEditorCancelClicked()) );
mSieveEditor->show();
mWasActive = isActive;
}
@@ -352,8 +352,8 @@ void KMail::ManageSieveScriptsDialog::slotSieveEditorOkClicked() {
if ( !mSieveEditor )
return;
SieveJob * job = SieveJob::put( mCurrentURL,mSieveEditor->script(), mWasActive, mWasActive );
- connect( job, TQT_SIGNAL(result(KMail::SieveJob*,bool,const TQString&,bool)),
- this, TQT_SLOT(slotPutResult(KMail::SieveJob*,bool)) );
+ connect( job, TQ_SIGNAL(result(KMail::SieveJob*,bool,const TQString&,bool)),
+ this, TQ_SLOT(slotPutResult(KMail::SieveJob*,bool)) );
}
void KMail::ManageSieveScriptsDialog::slotSieveEditorCancelClicked() {
diff --git a/kmail/managesievescriptsdialog.h b/kmail/managesievescriptsdialog.h
index 25a53dad..b3a6848c 100644
--- a/kmail/managesievescriptsdialog.h
+++ b/kmail/managesievescriptsdialog.h
@@ -14,7 +14,7 @@ class SieveJob;
class SieveEditor;
class ManageSieveScriptsDialog : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
ManageSieveScriptsDialog( TQWidget * parent=0, const char * name=0 );
diff --git a/kmail/managesievescriptsdialog_p.h b/kmail/managesievescriptsdialog_p.h
index 584d011b..d3b84e69 100644
--- a/kmail/managesievescriptsdialog_p.h
+++ b/kmail/managesievescriptsdialog_p.h
@@ -8,7 +8,7 @@
namespace KMail {
class SieveEditor : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
TQ_PROPERTY( TQString script READ script WRITE setScript )
public:
diff --git a/kmail/mboxjob.cpp b/kmail/mboxjob.cpp
index 7fb22ddb..b591108f 100644
--- a/kmail/mboxjob.cpp
+++ b/kmail/mboxjob.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2003 Zack Rusin <zack@kde.org>
@@ -67,7 +67,7 @@ MboxJob::~MboxJob()
void
MboxJob::execute()
{
- TQTimer::singleShot( 0, this, TQT_SLOT(startJob()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(startJob()) );
}
//-----------------------------------------------------------------------------
diff --git a/kmail/mboxjob.h b/kmail/mboxjob.h
index 9b1d2dea..8c65e181 100644
--- a/kmail/mboxjob.h
+++ b/kmail/mboxjob.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
* Copyright (c) 2003 Zack Rusin <zack@kde.org>
@@ -40,7 +40,7 @@ namespace KMail {
class MboxJob : public FolderJob
{
- Q_OBJECT
+ TQ_OBJECT
friend class ::KMFolderMbox;
public:
diff --git a/kmail/messageactions.cpp b/kmail/messageactions.cpp
index be2d4c9d..e7233d3e 100644
--- a/kmail/messageactions.cpp
+++ b/kmail/messageactions.cpp
@@ -42,36 +42,36 @@ MessageActions::MessageActions( TDEActionCollection *ac, TQWidget * parent ) :
mReplyActionMenu = new TDEActionMenu( i18n("Message->","&Reply"),
"mail-reply-sender", mActionCollection,
"message_reply_menu" );
- connect( mReplyActionMenu, TQT_SIGNAL(activated()), this,
- TQT_SLOT(slotReplyToMsg()) );
+ connect( mReplyActionMenu, TQ_SIGNAL(activated()), this,
+ TQ_SLOT(slotReplyToMsg()) );
mReplyAction = new TDEAction( i18n("&Reply..."), "mail-reply-sender", Key_R, this,
- TQT_SLOT(slotReplyToMsg()), mActionCollection, "reply" );
+ TQ_SLOT(slotReplyToMsg()), mActionCollection, "reply" );
mReplyActionMenu->insert( mReplyAction );
mReplyAuthorAction = new TDEAction( i18n("Reply to A&uthor..."), "mail-reply-sender",
SHIFT+Key_A, this,
- TQT_SLOT(slotReplyAuthorToMsg()),
+ TQ_SLOT(slotReplyAuthorToMsg()),
mActionCollection, "reply_author" );
mReplyActionMenu->insert( mReplyAuthorAction );
mReplyAllAction = new TDEAction( i18n("Reply to &All..."), "mail-reply-all",
- Key_A, this, TQT_SLOT(slotReplyAllToMsg()),
+ Key_A, this, TQ_SLOT(slotReplyAllToMsg()),
mActionCollection, "reply_all" );
mReplyActionMenu->insert( mReplyAllAction );
mReplyListAction = new TDEAction( i18n("Reply to Mailing-&List..."),
"mail_replylist", Key_L, this,
- TQT_SLOT(slotReplyListToMsg()), mActionCollection,
+ TQ_SLOT(slotReplyListToMsg()), mActionCollection,
"reply_list" );
mReplyActionMenu->insert( mReplyListAction );
mNoQuoteReplyAction = new TDEAction( i18n("Reply Without &Quote..."), SHIFT+Key_R,
- this, TQT_SLOT(slotNoQuoteReplyToMsg()), mActionCollection, "noquotereply" );
+ this, TQ_SLOT(slotNoQuoteReplyToMsg()), mActionCollection, "noquotereply" );
mCreateTodoAction = new TDEAction( i18n("Create Task/Reminder..."), "mail_todo",
- 0, this, TQT_SLOT(slotCreateTodo()), mActionCollection,
+ 0, this, TQ_SLOT(slotCreateTodo()), mActionCollection,
"create_todo" );
@@ -80,35 +80,35 @@ MessageActions::MessageActions( TDEActionCollection *ac, TQWidget * parent ) :
mStatusMenu->insert(new TDEAction(KGuiItem(i18n("Mark Message as &Read"), "kmmsgread",
i18n("Mark selected messages as read")),
- 0, this, TQT_SLOT(slotSetMsgStatusRead()),
+ 0, this, TQ_SLOT(slotSetMsgStatusRead()),
mActionCollection, "status_read"));
mStatusMenu->insert(new TDEAction(KGuiItem(i18n("Mark Message as &New"), "kmmsgnew",
i18n("Mark selected messages as new")),
- 0, this, TQT_SLOT(slotSetMsgStatusNew()),
+ 0, this, TQ_SLOT(slotSetMsgStatusNew()),
mActionCollection, "status_new" ));
mStatusMenu->insert(new TDEAction(KGuiItem(i18n("Mark Message as &Unread"), "kmmsgunseen",
i18n("Mark selected messages as unread")),
- 0, this, TQT_SLOT(slotSetMsgStatusUnread()),
+ 0, this, TQ_SLOT(slotSetMsgStatusUnread()),
mActionCollection, "status_unread"));
mStatusMenu->insert( new TDEActionSeparator( this ) );
mToggleFlagAction = new TDEToggleAction(i18n("Mark Message as &Important"), "mail_flag",
- 0, this, TQT_SLOT(slotSetMsgStatusFlag()),
+ 0, this, TQ_SLOT(slotSetMsgStatusFlag()),
mActionCollection, "status_flag");
mToggleFlagAction->setCheckedState( i18n("Remove &Important Message Mark") );
mStatusMenu->insert( mToggleFlagAction );
mToggleTodoAction = new TDEToggleAction(i18n("Mark Message as &Action Item"), "mail_todo",
- 0, this, TQT_SLOT(slotSetMsgStatusTodo()),
+ 0, this, TQ_SLOT(slotSetMsgStatusTodo()),
mActionCollection, "status_todo");
mToggleTodoAction->setCheckedState( i18n("Remove &Action Item Message Mark") );
mStatusMenu->insert( mToggleTodoAction );
mEditAction = new TDEAction( i18n("&Edit Message"), "edit", Key_T, this,
- TQT_SLOT(editCurrentMessage()), mActionCollection, "edit" );
+ TQ_SLOT(editCurrentMessage()), mActionCollection, "edit" );
mEditAction->plugAccel( mActionCollection->tdeaccel() );
updateActions();
@@ -174,8 +174,8 @@ template<typename T> void MessageActions::replyCommand()
return;
const TQString text = mMessageView ? mMessageView->copyText() : "";
KMCommand *command = new T( mParent, mCurrentMessage, text );
- connect( command, TQT_SIGNAL( completed( KMCommand * ) ),
- this, TQT_SIGNAL( replyActionFinished() ) );
+ connect( command, TQ_SIGNAL( completed( KMCommand * ) ),
+ this, TQ_SIGNAL( replyActionFinished() ) );
command->start();
}
diff --git a/kmail/messageactions.h b/kmail/messageactions.h
index 5e46489b..4c81a798 100644
--- a/kmail/messageactions.h
+++ b/kmail/messageactions.h
@@ -38,7 +38,7 @@ namespace KMail {
*/
class MessageActions : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
MessageActions( TDEActionCollection* ac, TQWidget *parent );
diff --git a/kmail/messagecomposer.cpp b/kmail/messagecomposer.cpp
index 60ceed94..1cc0cd33 100644
--- a/kmail/messagecomposer.cpp
+++ b/kmail/messagecomposer.cpp
@@ -373,7 +373,7 @@ void MessageComposer::doNextJob()
}
// We have more jobs to do, but allow others to come first
- TQTimer::singleShot( 0, this, TQT_SLOT( slotDoNextJob() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotDoNextJob() ) );
}
void MessageComposer::emitDone( bool b )
@@ -552,8 +552,8 @@ bool MessageComposer::encryptWithChiasmus( const Kleo::CryptoBackend::Protocol *
const TQByteArray& body,
TQByteArray& resultData )
{
- std::auto_ptr<Kleo::SpecialJob> job( chiasmus->specialJob( "x-encrypt", TQStringVariantMap() ) );
- if ( !job.get() ) {
+ std::unique_ptr<Kleo::SpecialJob> job( chiasmus->specialJob( "x-encrypt", TQStringVariantMap() ) );
+ if ( !job ) {
const TQString msg = i18n( "Chiasmus backend does not offer the "
"\"x-encrypt\" function. Please report this bug." );
KMessageBox::error( mComposeWin, msg, i18n( "Chiasmus Backend Error" ) );
@@ -2162,10 +2162,10 @@ void MessageComposer::pgpSignedMsg( const TQByteArray& cText, Kleo::CryptoMessag
= isSMIME( format ) ? cpf->smime() : cpf->openpgp() ;
assert( proto ); /// hmmm.....?
- std::auto_ptr<Kleo::SignJob> job( proto->signJob( armor( format ),
+ std::unique_ptr<Kleo::SignJob> job( proto->signJob( armor( format ),
textMode( format ) ) );
- if ( !job.get() ) {
+ if ( !job ) {
KMessageBox::sorry( mComposeWin,
i18n("This message could not be signed, "
"since the chosen backend does not seem to support "
@@ -2218,9 +2218,9 @@ Kpgp::Result MessageComposer::pgpEncryptedMsg( TQByteArray & encryptedBody,
= isSMIME( format ) ? cpf->smime() : cpf->openpgp() ;
assert( proto ); // hmmmm....?
- std::auto_ptr<Kleo::EncryptJob> job( proto->encryptJob( armor( format ),
+ std::unique_ptr<Kleo::EncryptJob> job( proto->encryptJob( armor( format ),
textMode( format ) ) );
- if ( !job.get() ) {
+ if ( !job ) {
KMessageBox::sorry( mComposeWin,
i18n("This message could not be encrypted, "
"since the chosen backend does not seem to support "
@@ -2266,9 +2266,9 @@ Kpgp::Result MessageComposer::pgpSignedAndEncryptedMsg( TQByteArray & encryptedB
= isSMIME( format ) ? cpf->smime() : cpf->openpgp() ;
assert( proto ); // hmmmm....?
- std::auto_ptr<Kleo::SignEncryptJob> job( proto->signEncryptJob( armor( format ),
+ std::unique_ptr<Kleo::SignEncryptJob> job( proto->signEncryptJob( armor( format ),
textMode( format ) ) );
- if ( !job.get() ) {
+ if ( !job ) {
KMessageBox::sorry( mComposeWin,
i18n("This message could not be signed and encrypted, "
"since the chosen backend does not seem to support "
diff --git a/kmail/messagecomposer.h b/kmail/messagecomposer.h
index 11290cc2..924b5bf4 100644
--- a/kmail/messagecomposer.h
+++ b/kmail/messagecomposer.h
@@ -63,7 +63,7 @@ namespace KPIM {
}
class MessageComposer : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
friend class ::MessageComposerJob;
friend class ::EncryptMessageJob;
diff --git a/kmail/messagecopyhelper.cpp b/kmail/messagecopyhelper.cpp
index 0257aa0b..4b46141f 100644
--- a/kmail/messagecopyhelper.cpp
+++ b/kmail/messagecopyhelper.cpp
@@ -62,7 +62,7 @@ MessageCopyHelper::MessageCopyHelper( const TQValueList< TQ_UINT32 > & msgs,
command = new KMCopyCommand( dest, list );
}
- connect( command, TQT_SIGNAL(completed(KMCommand*)), TQT_SLOT(copyCompleted(KMCommand*)) );
+ connect( command, TQ_SIGNAL(completed(KMCommand*)), TQ_SLOT(copyCompleted(KMCommand*)) );
command->start();
}
diff --git a/kmail/messagecopyhelper.h b/kmail/messagecopyhelper.h
index 6d38d7b5..a097d4b8 100644
--- a/kmail/messagecopyhelper.h
+++ b/kmail/messagecopyhelper.h
@@ -38,7 +38,7 @@ namespace KMail {
*/
class MessageCopyHelper : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/messageproperty.h b/kmail/messageproperty.h
index fdd3f35d..00da0655 100644
--- a/kmail/messageproperty.h
+++ b/kmail/messageproperty.h
@@ -56,7 +56,7 @@ class ActionScheduler;
*/
class MessageProperty : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/networkaccount.cpp b/kmail/networkaccount.cpp
index 7f4c53b3..9a5f5e99 100644
--- a/kmail/networkaccount.cpp
+++ b/kmail/networkaccount.cpp
@@ -1,4 +1,4 @@
-/** -*- c++ -*-
+/*
* networkaccount.cpp
*
* Copyright (c) 2000-2002 Michael Haeckel <haeckel@kde.org>
diff --git a/kmail/networkaccount.h b/kmail/networkaccount.h
index 1c5dde6e..832f6805 100644
--- a/kmail/networkaccount.h
+++ b/kmail/networkaccount.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
* networkaccount.h
*
* Copyright (c) 2000-2002 Michael Haeckel <haeckel@kde.org>
@@ -46,7 +46,7 @@ namespace TDEIO {
namespace KMail {
class NetworkAccount : public KMAccount {
- Q_OBJECT
+ TQ_OBJECT
protected:
NetworkAccount( AccountManager * parent, const TQString & name, uint id );
diff --git a/kmail/newfolderdialog.cpp b/kmail/newfolderdialog.cpp
index 0643cbbc..862833f0 100644
--- a/kmail/newfolderdialog.cpp
+++ b/kmail/newfolderdialog.cpp
@@ -86,7 +86,7 @@ NewFolderDialog::NewFolderDialog( TQWidget* parent, KMFolder *folder )
mNameLineEdit->setFocus();
mNameHBox->addWidget( mNameLineEdit );
mTopLevelLayout->addLayout( mNameHBox );
- connect( mNameLineEdit, TQT_SIGNAL( textChanged ( const TQString & ) ), this, TQT_SLOT( slotFolderNameChanged( const TQString & ) ) );
+ connect( mNameLineEdit, TQ_SIGNAL( textChanged ( const TQString & ) ), this, TQ_SLOT( slotFolderNameChanged( const TQString & ) ) );
if ( !mFolder ||
( mFolder->folderType() != KMFolderTypeImap &&
diff --git a/kmail/newfolderdialog.h b/kmail/newfolderdialog.h
index 96cfc277..b6d0f929 100644
--- a/kmail/newfolderdialog.h
+++ b/kmail/newfolderdialog.h
@@ -46,7 +46,7 @@ namespace KMail {
class NewFolderDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/objecttreeparser.cpp b/kmail/objecttreeparser.cpp
index 71858bd1..3d0593cc 100644
--- a/kmail/objecttreeparser.cpp
+++ b/kmail/objecttreeparser.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
objecttreeparser.cpp
This file is part of KMail, the KDE mail client.
@@ -1652,7 +1652,7 @@ namespace KMail {
const TQByteArray certData = node->msgPart().bodyDecodedBinary();
- const STD_NAMESPACE_PREFIX auto_ptr<Kleo::ImportJob> import( smimeCrypto->importJob() );
+ const STD_NAMESPACE_PREFIX unique_ptr<Kleo::ImportJob> import( smimeCrypto->importJob() );
const GpgME::ImportResult res = import->exec( certData );
if ( res.error() ) {
htmlWriter()->queue( i18n( "Sorry, certificate could not be imported.<br>"
@@ -1853,8 +1853,8 @@ bool ObjectTreeParser::decryptChiasmus( const TQByteArray& data, TQByteArray& bo
if ( !chiasmus )
return false;
- const STD_NAMESPACE_PREFIX auto_ptr<Kleo::SpecialJob> listjob( chiasmus->specialJob( "x-obtain-keys", TQStringVariantMap() ) );
- if ( !listjob.get() ) {
+ const STD_NAMESPACE_PREFIX unique_ptr<Kleo::SpecialJob> listjob( chiasmus->specialJob( "x-obtain-keys", TQStringVariantMap() ) );
+ if ( !listjob ) {
errorText = i18n( "Chiasmus backend does not offer the "
"\"x-obtain-keys\" function. Please report this bug." );
return false;
@@ -1892,8 +1892,8 @@ bool ObjectTreeParser::decryptChiasmus( const TQByteArray& data, TQByteArray& bo
GlobalSettings::setChiasmusDecryptionKey( selectorDlg.key() );
assert( !GlobalSettings::chiasmusDecryptionKey().isEmpty() );
- const STD_NAMESPACE_PREFIX auto_ptr<Kleo::SpecialJob> job( chiasmus->specialJob( "x-decrypt", TQStringVariantMap() ) );
- if ( !job.get() ) {
+ const STD_NAMESPACE_PREFIX unique_ptr<Kleo::SpecialJob> job( chiasmus->specialJob( "x-decrypt", TQStringVariantMap() ) );
+ if ( !job ) {
errorText = i18n( "Chiasmus backend does not offer the "
"\"x-decrypt\" function. Please report this bug." );
return false;
diff --git a/kmail/objecttreeparser.h b/kmail/objecttreeparser.h
index f9e71427..cd4adfae 100644
--- a/kmail/objecttreeparser.h
+++ b/kmail/objecttreeparser.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
objecttreeparser.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/objecttreeparser_p.cpp b/kmail/objecttreeparser_p.cpp
index a645b398..fbd2b4df 100644
--- a/kmail/objecttreeparser_p.cpp
+++ b/kmail/objecttreeparser_p.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
objecttreeparser_p.cpp
This file is part of KMail, the KDE mail client.
@@ -89,8 +89,8 @@ bool DecryptVerifyBodyPartMemento::start() {
m_dr = DecryptionResult( err );
return false;
}
- connect( m_job, TQT_SIGNAL(result(const GpgME::DecryptionResult&,const GpgME::VerificationResult&,const TQByteArray&)),
- this, TQT_SLOT(slotResult(const GpgME::DecryptionResult&,const GpgME::VerificationResult&,const TQByteArray&)) );
+ connect( m_job, TQ_SIGNAL(result(const GpgME::DecryptionResult&,const GpgME::VerificationResult&,const TQByteArray&)),
+ this, TQ_SLOT(slotResult(const GpgME::DecryptionResult&,const GpgME::VerificationResult&,const TQByteArray&)) );
setRunning( true );
return true;
}
@@ -155,8 +155,8 @@ bool VerifyDetachedBodyPartMemento::start() {
m_vr = VerificationResult( err );
return false;
}
- connect( m_job, TQT_SIGNAL(result(const GpgME::VerificationResult&)),
- this, TQT_SLOT(slotResult(const GpgME::VerificationResult&)) );
+ connect( m_job, TQ_SIGNAL(result(const GpgME::VerificationResult&)),
+ this, TQ_SLOT(slotResult(const GpgME::VerificationResult&)) );
setRunning( true );
return true;
}
@@ -218,9 +218,9 @@ bool VerifyDetachedBodyPartMemento::startKeyListJob()
assert( canStartKeyListJob() );
if ( const GpgME::Error err = m_keylistjob->start( keyListPattern() ) )
return false;
- connect( m_keylistjob, TQT_SIGNAL(done()), this, TQT_SLOT(slotKeyListJobDone()) );
- connect( m_keylistjob, TQT_SIGNAL(nextKey(const GpgME::Key&)),
- this, TQT_SLOT(slotNextKey(const GpgME::Key&)) );
+ connect( m_keylistjob, TQ_SIGNAL(done()), this, TQ_SLOT(slotKeyListJobDone()) );
+ connect( m_keylistjob, TQ_SIGNAL(nextKey(const GpgME::Key&)),
+ this, TQ_SLOT(slotNextKey(const GpgME::Key&)) );
return true;
}
@@ -261,8 +261,8 @@ bool VerifyOpaqueBodyPartMemento::start() {
m_vr = VerificationResult( err );
return false;
}
- connect( m_job, TQT_SIGNAL(result(const GpgME::VerificationResult&,const TQByteArray&)),
- this, TQT_SLOT(slotResult(const GpgME::VerificationResult&,const TQByteArray&)) );
+ connect( m_job, TQ_SIGNAL(result(const GpgME::VerificationResult&,const TQByteArray&)),
+ this, TQ_SLOT(slotResult(const GpgME::VerificationResult&,const TQByteArray&)) );
setRunning( true );
return true;
}
@@ -328,9 +328,9 @@ bool VerifyOpaqueBodyPartMemento::startKeyListJob()
assert( canStartKeyListJob() );
if ( const GpgME::Error err = m_keylistjob->start( keyListPattern() ) )
return false;
- connect( m_keylistjob, TQT_SIGNAL(done()), this, TQT_SLOT(slotKeyListJobDone()) );
- connect( m_keylistjob, TQT_SIGNAL(nextKey(const GpgME::Key&)),
- this, TQT_SLOT(slotNextKey(const GpgME::Key&)) );
+ connect( m_keylistjob, TQ_SIGNAL(done()), this, TQ_SLOT(slotKeyListJobDone()) );
+ connect( m_keylistjob, TQ_SIGNAL(nextKey(const GpgME::Key&)),
+ this, TQ_SLOT(slotNextKey(const GpgME::Key&)) );
return true;
}
diff --git a/kmail/objecttreeparser_p.h b/kmail/objecttreeparser_p.h
index 44a1e9af..961fbfdf 100644
--- a/kmail/objecttreeparser_p.h
+++ b/kmail/objecttreeparser_p.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
objecttreeparser_p.h
This file is part of KMail, the KDE mail client.
@@ -60,7 +60,7 @@ namespace KMail {
public KMail::Interface::BodyPartMemento,
public KMail::ISubject
{
- Q_OBJECT
+ TQ_OBJECT
public:
CryptoBodyPartMemento();
@@ -87,7 +87,7 @@ namespace KMail {
class DecryptVerifyBodyPartMemento
: public CryptoBodyPartMemento
{
- Q_OBJECT
+ TQ_OBJECT
public:
DecryptVerifyBodyPartMemento( Kleo::DecryptVerifyJob * job, const TQByteArray & cipherText );
@@ -123,7 +123,7 @@ namespace KMail {
class VerifyDetachedBodyPartMemento
: public CryptoBodyPartMemento
{
- Q_OBJECT
+ TQ_OBJECT
public:
VerifyDetachedBodyPartMemento( Kleo::VerifyDetachedJob * job,
@@ -163,7 +163,7 @@ namespace KMail {
class VerifyOpaqueBodyPartMemento
: public CryptoBodyPartMemento
{
- Q_OBJECT
+ TQ_OBJECT
public:
VerifyOpaqueBodyPartMemento( Kleo::VerifyOpaqueJob * job,
diff --git a/kmail/partNode.cpp b/kmail/partNode.cpp
index 012c6e18..b39bc65f 100644
--- a/kmail/partNode.cpp
+++ b/kmail/partNode.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
partNode.cpp A node in a MIME tree.
This file is part of KMail, the KDE mail client.
diff --git a/kmail/partNode.h b/kmail/partNode.h
index 20328dde..918f3f31 100644
--- a/kmail/partNode.h
+++ b/kmail/partNode.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
partNode.h A node in a MIME tree.
This file is part of KMail, the KDE mail client.
diff --git a/kmail/partmetadata.h b/kmail/partmetadata.h
index ee6f51d3..e5b060b9 100644
--- a/kmail/partmetadata.h
+++ b/kmail/partmetadata.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
partmetadata.h
KMail, the KDE mail client.
diff --git a/kmail/partnodebodypart.cpp b/kmail/partnodebodypart.cpp
index 45ce2862..4f095ee8 100644
--- a/kmail/partnodebodypart.cpp
+++ b/kmail/partnodebodypart.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
partnodebodypart.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/partnodebodypart.h b/kmail/partnodebodypart.h
index 3591286e..6ce17615 100644
--- a/kmail/partnodebodypart.h
+++ b/kmail/partnodebodypart.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
partnodebodypart.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/popaccount.cpp b/kmail/popaccount.cpp
index b455cc54..97ec2b6c 100644
--- a/kmail/popaccount.cpp
+++ b/kmail/popaccount.cpp
@@ -72,10 +72,10 @@ PopAccount::PopAccount(AccountManager* aOwner, const TQString& aAccountName, uin
mUidsOfNextSeenMsgsDict.setAutoDelete( false );
headersOnServer.setAutoDelete(true);
- connect(&processMsgsTimer,TQT_SIGNAL(timeout()),TQT_SLOT(slotProcessPendingMsgs()));
+ connect(&processMsgsTimer,TQ_SIGNAL(timeout()),TQ_SLOT(slotProcessPendingMsgs()));
TDEIO::Scheduler::connect(
- TQT_SIGNAL(slaveError(TDEIO::Slave *, int, const TQString &)),
- this, TQT_SLOT(slotSlaveError(TDEIO::Slave *, int, const TQString &)));
+ TQ_SIGNAL(slaveError(TDEIO::Slave *, int, const TQString &)),
+ this, TQ_SLOT(slotSlaveError(TDEIO::Slave *, int, const TQString &)));
mHeaderDeleteUids.clear();
mHeaderDownUids.clear();
@@ -286,12 +286,12 @@ void PopAccount::setFilterOnServerCheckSize(unsigned int aSize)
//-----------------------------------------------------------------------------
void PopAccount::connectJob() {
TDEIO::Scheduler::assignJobToSlave(mSlave, job);
- connect(job, TQT_SIGNAL( data( TDEIO::Job*, const TQByteArray &)),
- TQT_SLOT( slotData( TDEIO::Job*, const TQByteArray &)));
- connect(job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotResult( TDEIO::Job * ) ) );
- connect(job, TQT_SIGNAL(infoMessage( TDEIO::Job*, const TQString & )),
- TQT_SLOT( slotMsgRetrieved(TDEIO::Job*, const TQString &)));
+ connect(job, TQ_SIGNAL( data( TDEIO::Job*, const TQByteArray &)),
+ TQ_SLOT( slotData( TDEIO::Job*, const TQByteArray &)));
+ connect(job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotResult( TDEIO::Job * ) ) );
+ connect(job, TQ_SIGNAL(infoMessage( TDEIO::Job*, const TQString & )),
+ TQ_SLOT( slotMsgRetrieved(TDEIO::Job*, const TQString &)));
}
@@ -353,8 +353,8 @@ void PopAccount::slotAbortRequested()
{
if (stage == Idle) return;
if ( mMailCheckProgressItem )
- disconnect( mMailCheckProgressItem, TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem* ) ),
- this, TQT_SLOT( slotAbortRequested() ) );
+ disconnect( mMailCheckProgressItem, TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem* ) ),
+ this, TQ_SLOT( slotAbortRequested() ) );
stage = Quit;
if (job) job->kill();
job = 0;
@@ -404,8 +404,8 @@ void PopAccount::startJob()
i18n("Preparing transmission from \"%1\"...").arg( escapedName ),
true, // can be canceled
useSSL() || useTLS() );
- connect( mMailCheckProgressItem, TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem* ) ),
- this, TQT_SLOT( slotAbortRequested() ) );
+ connect( mMailCheckProgressItem, TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem* ) ),
+ this, TQ_SLOT( slotAbortRequested() ) );
numBytes = 0;
numBytesRead = 0;
@@ -1064,7 +1064,7 @@ void PopAccount::slotSlaveError(TDEIO::Slave *aSlave, int error,
/* We need a timer, otherwise slotSlaveError of the next account is also
executed, if it reuses the slave, because the slave member variable
is changed too early */
- TQTimer::singleShot(0, this, TQT_SLOT(slotCancel()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotCancel()));
}
//-----------------------------------------------------------------------------
diff --git a/kmail/popaccount.h b/kmail/popaccount.h
index f8cb0e92..ef329982 100644
--- a/kmail/popaccount.h
+++ b/kmail/popaccount.h
@@ -1,4 +1,3 @@
-// -*- c++ -*-
#ifndef KMAcctExpPop_h
#define KMAcctExpPop_h
@@ -26,7 +25,7 @@ namespace KMail {
* KMail account for pop mail account
*/
class PopAccount: public NetworkAccount {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/profiles/CMakeLists.txt b/kmail/profiles/CMakeLists.txt
index 2d2367b0..964195f6 100644
--- a/kmail/profiles/CMakeLists.txt
+++ b/kmail/profiles/CMakeLists.txt
@@ -12,7 +12,10 @@
set( profiles default html high-contrast purist secure )
foreach( profile ${profiles} )
- install( FILES "profile-${profile}-rc.desktop"
+ tde_create_translated_desktop(
+ SOURCE "profile-${profile}-rc.desktop"
DESTINATION ${DATA_INSTALL_DIR}/kmail
- RENAME profile-${profile}-rc )
+ OUTPUT_NAME profile-${profile}-rc
+ PO_DIR kmail-desktops
+ )
endforeach( )
diff --git a/kmail/profiles/profile-default-rc.desktop b/kmail/profiles/profile-default-rc.desktop
index b8ba7e96..9450aa17 100644
--- a/kmail/profiles/profile-default-rc.desktop
+++ b/kmail/profiles/profile-default-rc.desktop
@@ -1,136 +1,7 @@
[KMail Profile]
Name=Default
-Name[af]=Standaard
-Name[ar]=الإفتراضي
-Name[az]=Əsas
-Name[be]=Па ўмаўчанні
-Name[bg]=Стандартен
-Name[br]=Dre ziouer
-Name[bs]=Podrazumijevano
-Name[ca]=Omissió
-Name[cs]=Implicitní
-Name[cy]=Rhagosod
-Name[da]=Standard
-Name[de]=Standard
-Name[el]=Προκαθορισμένο
-Name[eo]=Apriora
-Name[es]=Predeterminado
-Name[et]=Vaikimisi
-Name[eu]=Lehenetsia
-Name[fa]=پیش‌فرض
-Name[fi]=Oletus
-Name[fr]=Défaut
-Name[fy]=Standert
-Name[ga]=Réamhshocrú
-Name[gl]=Por Omisión
-Name[he]=ברירת מחדל
-Name[hi]=डिफ़ॉल्ट
-Name[hr]=Uobičajeno
-Name[hu]=Alapértelmezés
-Name[id]=Standar
-Name[is]=Sjálfgefið
-Name[it]=Predefinito
-Name[ja]=標準
-Name[kk]=Әдетті
-Name[km]=លំនាំដើម
-Name[lt]=Numatytasis
-Name[lv]=Noklusētais
-Name[mk]=Стандарден
-Name[ms]=Piawai
-Name[mt]=Normali
-Name[nb]=Standard
-Name[nds]=Standard
-Name[ne]=पूर्वनिर्धारित
-Name[nl]=Standaard
-Name[nn]=Standard
-Name[pa]=ਮੂਲ
-Name[pl]=Domyślny
-Name[pt]=Por Omissão
-Name[pt_BR]=Padrão
-Name[ro]=Implicit
-Name[ru]=По умолчанию
-Name[rw]=Mburabuzi
-Name[se]=Standárda
-Name[sk]=Štandarné
-Name[sl]=Privzeto
-Name[sr]=Подразумевано
-Name[sr@Latn]=Podrazumevano
-Name[sv]=Standard
-Name[ta]=முன்னிருப்பு
-Name[tg]=Пешфарзӣ
-Name[th]=ค่าปริยาย
-Name[tr]=Öntanımlı
-Name[uk]=Типовий
-Name[uz]=Андоза
-Name[ven]=Zwi si zwavhudi
-Name[vi]=Mặc định
-Name[xh]=Engagqibekanga
-Name[zh_CN]=默认
-Name[zh_TW]=預設
-Name[zu]=Engaqedekanga
+
Comment=Standard profile
-Comment[af]=Standaard profiel
-Comment[az]=Standard profil
-Comment[be]=Стандартны профіль
-Comment[bg]=Стандартен профил
-Comment[bs]=Standardni profil
-Comment[ca]=Perfil estàndard
-Comment[cs]=Standardní profil
-Comment[cy]=Proffil safonol
-Comment[da]=Standard-profil
-Comment[de]=Standardprofil
-Comment[el]=Τυπικό προφίλ
-Comment[eo]=Apriora agordo
-Comment[es]=Perfil estándar
-Comment[et]=Standardprofiil
-Comment[eu]=Profil estandarra
-Comment[fa]=profile استاندارد
-Comment[fi]=Normaali profiili
-Comment[fr]=Profil standard
-Comment[fy]=Standert profyl
-Comment[ga]=Próifíl chaighdeánach
-Comment[gl]=Perfil Estándar
-Comment[he]=פרופיל ברירת מחדל
-Comment[hi]=मानक प्रोफ़ाइल
-Comment[hr]=Standardni profil
-Comment[hu]=Standard profil
-Comment[is]=Venjulegt snið
-Comment[it]=Profilo standard
-Comment[ja]=標準プロファイル
-Comment[kk]=Стандартты профилі
-Comment[km]=ទម្រង់​ខ្នាត​គំរូ
-Comment[lt]=Standartinis profilis
-Comment[lv]=Standarta profils
-Comment[mk]=Стандарден профил
-Comment[ms]=Profail Standard
-Comment[nb]=Standardprofil
-Comment[nds]=Standardprofil
-Comment[ne]=मानक प्रोफाइल
-Comment[nl]=Standaard profiel
-Comment[nn]=Standardprofil
-Comment[pl]=Profil standardowy
-Comment[pt]=O perfil-padrão
-Comment[pt_BR]=Perfil padrão
-Comment[ro]=Profil standard
-Comment[ru]=Обычный профиль
-Comment[se]=Standárdprofiila
-Comment[sk]=Štandardný profil
-Comment[sl]=Običajen profil
-Comment[sr]=Стандардни профил
-Comment[sr@Latn]=Standardni profil
-Comment[sv]=Standardprofil
-Comment[ta]=நிலையான சுருக்கக்குறிப்பு
-Comment[tg]=Профили оддӣ
-Comment[th]=โปรไฟล์มาตรฐาน
-Comment[tr]=Standart profil
-Comment[uk]=Типовий профіль
-Comment[uz]=Андоза профили
-Comment[ven]=Zwithu zwo doweleaho
-Comment[vi]=Hồ sơ chuẩn
-Comment[xh]=Imboniselo yabucala esezantsi
-Comment[zh_CN]=标准配置文件
-Comment[zh_TW]=標準設定
-Comment[zu]=Iprofayela Elingeneyo
[Reader]
BackgroundColor=255,255,255
diff --git a/kmail/profiles/profile-high-contrast-rc.desktop b/kmail/profiles/profile-high-contrast-rc.desktop
index a744ff1f..cc8e11b8 100644
--- a/kmail/profiles/profile-high-contrast-rc.desktop
+++ b/kmail/profiles/profile-high-contrast-rc.desktop
@@ -1,117 +1,7 @@
[KMail Profile]
Name=High Contrast
-Name[af]=Hoë kontras
-Name[bg]=Висок контраст
-Name[br]=Dargemm huel
-Name[bs]=Visoki kontrast
-Name[ca]=Alt contrast
-Name[cs]=Vysoký kontrast
-Name[cy]=Cyferbyniad Gref
-Name[da]=Høj kontrast
-Name[de]=Starker Kontrast
-Name[el]=Μεγάλη αντίθεση
-Name[eo]=Forta kontrasto
-Name[es]=Alto contraste
-Name[et]=Suur kontrast
-Name[eu]=Kontraste altua
-Name[fa]=سایه روشن زیاد
-Name[fi]=Korkea kontrasti
-Name[fr]=Contraste élevé
-Name[fy]=Heech kontrast
-Name[ga]=Ardchodarsnacht
-Name[gl]=Alto contraste
-Name[he]=ניגודיות גבוהה
-Name[hi]=उच्च कंट्रास्ट
-Name[hr]=Visoki kontrast
-Name[hu]=Kontrasztos
-Name[is]=Mikil birtuskil
-Name[it]=Alto contrasto
-Name[ja]=ハイコントラスト
-Name[kk]=Контрастығы жоғары
-Name[km]=កម្រិត​ពណ៌​ខ្ពស់
-Name[lt]=Didelis kontrastas
-Name[mk]=Висок контраст
-Name[ms]=Kontras Tinggi
-Name[nb]=Høy kontrast
-Name[nds]=Hoge Kontrast
-Name[ne]=उच्च ब्यतिरेक
-Name[nl]=Hoog contrast
-Name[nn]=Høg kontrast
-Name[pl]=Wysoki kontrast
-Name[pt]=Alto Contraste
-Name[pt_BR]=Alto Contraste
-Name[ro]=Contrast mare
-Name[ru]=Высокий контраст
-Name[sk]=Vysoký kontrast
-Name[sl]=Velik kontrast
-Name[sr]=Високи контраст
-Name[sr@Latn]=Visoki kontrast
-Name[sv]=Hög kontrast
-Name[ta]=அதிக அடர்த்தி
-Name[tg]=Тазоди баланд
-Name[tr]=Yüksek Kontrast
-Name[uk]=Висока контрастність
-Name[zh_CN]=高对比
-Name[zh_TW]=高反差
+
Comment=Increased font sizes for visually impaired users
-Comment[af]=Vergroot die skrif tipe vir visueel gestremde gebruikers
-Comment[ar]=محارف بقياسات أكبر للمستخدمين ذوي البصر الضعيف
-Comment[az]=Görmə pozuqluğu olanlar üçün böyüdülmüş yazı növləri
-Comment[bg]=Увеличаване на размера на шрифта за потребители със зрителни увреждания
-Comment[bs]=Povećane dimenzije fontova za korisnike sa vizuelnim nedostacima
-Comment[ca]=Augmenta la mida de la lletra per als usuaris amb deficiències visuals
-Comment[cs]=Zvětší velikost písma pro zrakově postižené uživatele
-Comment[cy]=Meintiau wynebfathau wedi'u cynyddu ar gyfer defnyddwyr â nam gweledol
-Comment[da]=Forøgede skrifttypestørrelser for brugere med svagt syn
-Comment[de]=Größere Schriften für sehbehinderte Benutzer
-Comment[el]=Αυξημένα μεγέθη γραμματοσειρών για χρήστες με προβλήματα όρασης
-Comment[eo]=Pligrandigitaj tiparoj por vidhandikapitoj
-Comment[es]=Tamaños grandes de tipografía para usuarios con deficiencias visuales
-Comment[et]=Suured fondid halva nägemisega kasutajatele
-Comment[eu]=Letra-tipo handiagoak ikusmen arazoak dituzten erabiltzaileentzat
-Comment[fa]=اندازۀ قلمهای افزایش یافته برای کاربرانی که از نظر تصویری زیان دیده‌اند
-Comment[fi]=Suurennettu kirjasinkoko heikkonäköisille käyttäjille
-Comment[fr]=Des polices de caractères plus grandes pour les malvoyants
-Comment[fy]=Grutter lettertype foar brûker mei minne eagen
-Comment[gl]=Tamaños de fonte aumentados para usuarios con discapacidade visual
-Comment[he]=גופנים גדולים עבור אנשים בעלי ליקויי ראייה
-Comment[hi]=कम दिखाई देने वाले उपयोक्ताओं के लिए फ़ॉन्ट आकार बढ़ाएँ
-Comment[hr]=Povećana pisma za korisnike sa slabijim vidom
-Comment[hu]=Nagyobb betűméretek látáscsökkent felhasználóknak
-Comment[is]=Stærra letur fyrir notendur með slæma sjón
-Comment[it]=Dimensioni più grandi dei caratteri per chi ha problemi di vista
-Comment[ja]=視力障害者のために大きなフォントを使用します
-Comment[kk]=Көру қабілеті нашарларға арналған ірі қаріпті көрініс
-Comment[km]=បង្កើន​ទំហំពុម្ពអក្សរ ដើម្បី​បង្ក​លក្ខណៈ​ងាយស្រួល​ដល់​ជន​ពិការ​ភ្នែក
-Comment[lt]=Padidinti šriftų dydžiai blogai matantiems naudotojams
-Comment[lv]=Palielināti fontu izmēri lietotājiem ar redzes traucējumiem
-Comment[ms]=Saiz fon ditambah untuk pengguna cacat penglihatan
-Comment[nb]=Økte skriftstørrelser for svaksynte brukere
-Comment[nds]=Grötter Tekens för kiekbehinnert Brukers
-Comment[ne]=दृश्यात्मक विकृत प्रयोगकर्ताका लागि बढाइएको फन्ट साइज
-Comment[nl]=Groter lettertype voor slechtziende gebruikers
-Comment[nn]=Auka skriftstorleik for synshemma brukarar
-Comment[pl]=Zwiększone rozmiary czcionek dla osób mających problemy ze wzrokiem
-Comment[pt]=Tamanhos de letra aumentados para utilizadores com problemas visuais
-Comment[pt_BR]=Fontes de tamanho maior para usuários com visão reduzida
-Comment[ro]=Mărimi de font mari pentru utilizatori cu handicap
-Comment[ru]=Увеличенные размеры шрифтов для людей с ослабленным зрением
-Comment[sk]=Zväčšená veľkosť písma pre zrakovo postihnutých užívateľov
-Comment[sl]=Povečane velikosti pisav za uporabnike s slabšim vidom
-Comment[sr]=Повећани фонтови за кориснике са лошијим видом
-Comment[sr@Latn]=Povećani fontovi za korisnike sa lošijim vidom
-Comment[sv]=Större teckenstorlek för användare med synproblem
-Comment[ta]=பார்வையற்ற பயனர்களுக்கான பெரிதுப்படுத்தப்பட்ட எழுத்துரு அளவுகள்
-Comment[tg]=Ҳуруфҳои андозаашон калон барои одамҳои бо чашми хира
-Comment[th]=เพิ่มขนาดตัวอักษรสำหรับผู้ที่สายตาไม่ดี
-Comment[tr]=Görsel engelli kullanıcılar için arttırılmış yazı tipi boyutu
-Comment[uk]=Збільшений розмір шрифтів для людей з поганим зором
-Comment[ven]=Saizi ya fontu yo engedzhwaho uitela vhashumisi vha zwauvhona
-Comment[vi]=Tăng cỡ font cho người dùng tàn tật
-Comment[xh]=Ubungakanani bobukhulu begama bunyusiwe kubasebenzisi ababonayo
-Comment[zh_CN]=对有视觉障碍的用户增加字体大小
-Comment[zh_TW]=遞增字型大小以適合視覺障礙者
-Comment[zu]=Abakhushululiweyo osayizi befont kwabantu abayizimpumputhe
[Reader]
BackgroundColor=250,235,215
diff --git a/kmail/profiles/profile-html-rc.desktop b/kmail/profiles/profile-html-rc.desktop
index f9655c91..a42f50bf 100644
--- a/kmail/profiles/profile-html-rc.desktop
+++ b/kmail/profiles/profile-html-rc.desktop
@@ -1,67 +1,7 @@
[KMail Profile]
Name=HTML
-Name[ar]=لغة علامات النص الفائق
-Name[fa]=زنگام
-Name[ne]=एचटीएमएल
+
Comment=Standard profile with HTML preview enabled - less secure!
-Comment[af]=Standaard profiel, met HTML voorskou geaktiveer. Dis minder veilig!
-Comment[ar]=الشاكلة المعيارية مع تمكين معاينة لغة علامة النص الفائق HTML - أقل أمناً !
-Comment[az]=HTML nümayişli standard - ən az etibarlı!
-Comment[bg]=Стандартен профил с поддръжка на HTML в писмата (по-малко сигурен)
-Comment[bs]=Standardni profil sa omogućenim HTML pregledom - manje siguran!
-Comment[ca]=Perfil estàndard amb la vista prèvia de l'HTML habilitada - menys segur!
-Comment[cs]=Standardní profil s povoleným náhledem HTML souborů - méně bezpečné!
-Comment[cy]=Proffil safonol efo rhagolwg HTML yn alluog - llai ddiogel!
-Comment[da]=Standardprofil med HTML-visning aktiveret - mindre sikkert!
-Comment[de]=Standardprofil mit aktivierter HTML-Vorschau - weniger sicher
-Comment[el]=Τυπικό προφίλ με την προεπισκόπηση HTML ενεργοποιημένη - λιγότερο ασφαλές!
-Comment[eo]=Apriora agordo, kun ŝaltita HTML-antaŭrigardo - malpli sekura!
-Comment[es]=Perfil estándar con las vista HTML activada - menos seguro
-Comment[et]=Standardprofiil HTML-i eelvaatlusega - pole nii turvaline!
-Comment[eu]=HTML aurrebista gaituta duen profil estandarra - sekuritate gutxiago du
-Comment[fa]=profile استاندارد با پیش‌نمایش زنگام فعال‌شده - با ایمنی کمتر!
-Comment[fi]=Normaali profiili HTML-esikatselua käyttäville - vähemmän turvallinen.
-Comment[fr]=Profil standard avec l'aperçu HTML activé - Moins sécurisé !
-Comment[fy]=Standertprofyl mei HTML-foarbyld aktivearre - minder feilich!
-Comment[gl]=Perfil estándar con previsualización HTML activada - menos seguro!
-Comment[hi]=एचटीएमएल पूर्वावलोकन के साथ मानक प्रोफ़ाइल सक्षम है - कम सुरक्षित!
-Comment[hr]=Standardni profil sa uključenim pregledom HTML sadržaja - manje sigurno!
-Comment[hu]=Standard profil, HTML-előnézettel (kevésbé biztonságos)
-Comment[is]=Staðlað snið með HTML forsýn - minna öryggi!
-Comment[it]=Profilo standard con l'anteprima HTML abilitata - meno sicuro!
-Comment[ja]=HTML プレビューを有効にした標準プロファイル - 安全度は下がります!
-Comment[kk]=Стандартты, HTML көрінісі бар профилі - қауіпсізігі төмен!
-Comment[km]=ទម្រង់​ខ្នាត​គំរូ​ដែល​អាច​មើល HTML ជាមុន - មិន​សូវ​មាន​សុវត្ថិភាព​ឡើយ !
-Comment[lt]=Standartinis profilis su HTML peržiūra – mažiau saugus!
-Comment[lv]=Standarta profils ar atļautu HTML apskati - nedrošāks!
-Comment[mk]=Стандарден профил со овозможен преглед на HTML - помалку безбедно!
-Comment[ms]=Profil piawai dengan paparan HTML diaktifkan - kurang selamat!
-Comment[nb]=Standardprofil med forhåndsvisning av HTML – mindre sikkert!
-Comment[nds]=Standardprofil mit aktiveert HTML-Vöransicht - weniger seker
-Comment[ne]=एचटीएमएल पूर्वावलोकनको मानक प्रोफाइल सक्षम पारियो - कम सुरक्षित!
-Comment[nl]=Standaardprofiel met HTML-voorbeeld geactiveerd - minder veilig!
-Comment[nn]=Standard profil med HTML-vising slått på – mindre trygt!
-Comment[pl]=Standardowy profil z włączonym podglądem HTML - mniej bezpieczny!
-Comment[pt]=O perfil predefinido com a antevisão de HTML activada - menos seguro!
-Comment[pt_BR]=Perfil padrão com previsão de HTML habilitada - menos seguro!
-Comment[ro]=Profil standard cu previzualizare HTML activată (securitate scăzută!)
-Comment[ru]=Обычный профиль с просмотром HTML - менее безопасный!
-Comment[sk]=Štandardný profil s HTML náhľadom - menej bezpečné!
-Comment[sl]=Običajen profil z omogočenim ogledom v HTML - manj varno!
-Comment[sr]=Стандардни профил са омогућеним прегледом HTML-а — мање безбедно!
-Comment[sr@Latn]=Standardni profil sa omogućenim pregledom HTML-a — manje bezbedno!
-Comment[sv]=Standardprofil med HTML-förhandsgranskning aktiverad - mindre säker!
-Comment[ta]= சரியான பயனர் விவரங்களுடன் HTML முன்காட்சி செயலாக்கப்பட்டது - குறைந்த பாதுகாப்பு!
-Comment[tg]=Профили оддӣ бо намоиши HTML - каме бехатарнок аст!
-Comment[th]=โปรไฟล์มาตรฐานพร้อมกับแสดงตัวอย่าง HTML - ความปลอดภัยน้อย !
-Comment[tr]=HTML ön izleme aktif standart profil - daha az güvenli!
-Comment[uk]=Окремий профіль з ввімкненим переглядом HTML - менш безпечний!
-Comment[ven]=Profile yo doweleaho irena HTML ya mbonelaphanda yo itwaho - a i ngo tsireledzea!
-Comment[vi]=Hồ sơ chuẩn cho phép xem trước HTML - I't bảo mật hơn !
-Comment[xh]=Imboniselo yabucala esezantsi nge HTML imboniso yenziwe - ukhuseleko oluncinane!
-Comment[zh_CN]=启用 HTML 预览的标准配置文件 - 更不安全!
-Comment[zh_TW]=標準設定,HTML 預覽開啟 - 較不安全!
-Comment[zu]=Yenza ngokulingeneyo iprofayela nge HTML okokukhombisa ngaphambili kwenzeliwe - okuncane ukuvikeleka!
[Reader]
BackgroundColor=255,255,255
diff --git a/kmail/profiles/profile-purist-rc.desktop b/kmail/profiles/profile-purist-rc.desktop
index 89b23cb9..7e6d941c 100644
--- a/kmail/profiles/profile-purist-rc.desktop
+++ b/kmail/profiles/profile-purist-rc.desktop
@@ -1,108 +1,7 @@
[KMail Profile]
Name=Purist
-Name[af]=Suiwer
-Name[bg]=Пуритан
-Name[bs]=Za čistunce
-Name[cs]=Puristický
-Name[cy]=Puryddol
-Name[eo]=Puristo
-Name[es]=Purista
-Name[eu]=Purista
-Name[fa]=سَره‌گرا
-Name[fi]=Puristi
-Name[fr]=Puriste
-Name[gl]=Purista
-Name[he]=נקי
-Name[hi]=प्यूरिस्ट
-Name[hr]=Čistunski
-Name[hu]=Egyszerűsített
-Name[it]=Purista
-Name[ja]=純正
-Name[kk]=Пурист
-Name[km]=បរិសុទ្ធ
-Name[lt]=Itin paprastas
-Name[lv]=Puritānis
-Name[ms]=Mementingkan Istilah Yang Betul
-Name[nds]=Reen
-Name[ne]=संस्कारक
-Name[nn]=Enkel
-Name[pl]=Czysty
-Name[pt]=Purista
-Name[pt_BR]=Purista
-Name[ro]=Puritan
-Name[ru]=Аскет
-Name[se]=Oktageardán
-Name[sr]=Чисто
-Name[sr@Latn]=Čisto
-Name[sv]=Ren
-Name[ta]=சுத்தமானது
-Name[tg]=Пурист
-Name[tr]=Pürist
-Name[uk]=Пуристичний
-Name[ven]=Zwo kunaho
-Name[xh]=isiPurist
-Name[zh_CN]=严格
-Name[zh_TW]=較安全
-Name[zu]=Okuhlanzekileyo
+
Comment=Most features turned off, TDE global settings are used
-Comment[af]=Meeste funksies af geskakel. TDE globale waardes word gebruik.
-Comment[ar]=أغلب الميزات غبر عاملة, سيتم استخدام اعدادات TDE العامة
-Comment[az]=Bir çox xüsusiyyət açıq deyil, TDE qlobal qurğuları işlədilir
-Comment[bg]=Пуритански режим, при който повечето възможности за изключени
-Comment[bs]=Većina mogućnosti je isključena, koriste se TDE globalne postavke
-Comment[ca]=La majoria de característiques estan desactivades, s'usarà l'arranjament global de TDE
-Comment[cs]=Většina funkcí je vypnuta a použije se globální nastavení TDE
-Comment[cy]=Y mwyafrif o nodweddion wedi'u diffodd, defnyddir gosodiadau eang TDE
-Comment[da]=De fleste egenskaber slået fra, TDE's globale opsætning bruges
-Comment[de]=Die meisten Funktionen werden zugunsten von TDE-Voreinstellungen deaktiviert
-Comment[el]=Τα περισσότερα χαρακτηριστικά απενεργοποιημένα, ενώ χρησιμοποιούνται οι καθολικές ρυθμίσεις του TDE
-Comment[eo]=Plej multaj funkcioj malŝaltitaj, malloka agordo de TDE estas uzata
-Comment[es]=La mayoría de las características desactivadas; se usan las opciones globales de TDE
-Comment[et]=Enamik võimalusi välja lülitatud, kasutatakse TDE seadistusi
-Comment[eu]=Eginbide gehienak ezgaituta, TDE-ren ezarpen globalak erabiliko dira
-Comment[fa]=اغلب ویژگیها خاموش شد، تنظیمات سراسری TDE استفاده می‌شوند
-Comment[fi]=Suurin osa ominaisuuksia on pois päältä, käytetään TDE:n järjestelmänlaajuisia asetuksia.
-Comment[fr]=Presque toutes les fonctionnalités désactivées, utilisation de la configuration globale de TDE
-Comment[fy]=Measte mooglikheden útset, de globale TDE-ynstellings wurde brûkt
-Comment[gl]=A maioría das características desactivadas, empréganse as opcións globais de TDE
-Comment[hi]=लगभग सभी विशेषताएँ बन्द की हुई हैं, केडीई वैश्विक विन्यास उपयोग में लिए जाएंगे
-Comment[hr]=Većina mogućnosti isključena, TDE globalne postavke bivaju korištene
-Comment[hu]=A legtöbb extra kikapcsolva, a TDE alapértelmezéseinek felhasználásával
-Comment[is]=Slökkt á flestum aukahlutum, notast við víðværar stillingar TDE
-Comment[it]=La maggior parte delle funzioni sono disabilitate, vengono usate le impostazioni globali di TDE
-Comment[ja]=ほとんどの機能を無効にし、TDE の全体設定を使用します
-Comment[kk]=Мүмкіндіктердің көбі, TDE жалпылары ғана қалдырып, өшірілген
-Comment[km]=លក្ខណៈ​ពិសេស​ភាគ​ច្រើន​ត្រូវ​បាន​បិទ ដោយ​ប្រើ​តែ​ការ​កំណត់​សកល​របស់ TDE ប៉ុណ្ណោះ
-Comment[lt]=Dauguma savybių išjungta, naudojami globalūs TDE nustatymai
-Comment[lv]=Vairums īpašību izslēgtas, tiek izmantoti TDE globālie uzstādījumi
-Comment[mk]=Повеќето карактеристики се исклучени, се користат глобалните поставувања на TDE
-Comment[ms]=Kebanyakan cirian ditutup, seting global TDE digunakan
-Comment[nb]=De fleste funksjoner slått av, TDEs globale innstillinger er i bruk
-Comment[nds]=Mehrste Funkschonen utmaakt, globaal TDE-Vörinstellen warrt bruukt
-Comment[ne]=धेरै विशेषता बन्द गरिएका छन, केडीई विश्वव्यापी सेटिङ प्रयोग गरिएका छन्
-Comment[nl]=Meeste mogelijkheden uitgezet, de globale TDE-instellingen worden gebruikt
-Comment[nn]=Dei fleste funksjonar er slått av, globale TDE-innstillingar vert brukt
-Comment[pl]=Większość opcji wyłączona, używane są domyślne ustawienia TDE
-Comment[pt]=A maioria das funcionalidades desligada, sendo usadas as opções globais do TDE
-Comment[pt_BR]=Maioria dos recursos desligados, são usadas configurações globais do TDE
-Comment[ro]=Multe caracteristici dezactivate; sînt utilizate setările TDE globale
-Comment[ru]=Большинство дополнительных возможностей отключены, используются глобальные настройки TDE
-Comment[sk]=Najviac vlastností je vypnutých, sú použité globálne nastavenia TDE
-Comment[sl]=Večina zmožnosti je izklopljenih, uporabljene so globalne nastavitve TDE
-Comment[sr]=Већина могућности је искључена, користе се глобална подешавања TDE-а
-Comment[sr@Latn]=Većina mogućnosti je isključena, koriste se globalna podešavanja TDE-a
-Comment[sv]=De flesta funktioner avstängda, TDE:s globala inställningar används
-Comment[ta]=நிறைய தன்மைகள் நிறுத்தப்பட்டது. கேடிஇ உலகளாவிய அமைப்புகள் பயன்படுத்தப்பட்டது.
-Comment[tg]=Бисёри имкониятҳои иловагӣ ғайрифаъол шудаанд, танзимотҳои глобалии TDE истифода шуда истодаанд
-Comment[th]=คุณสมบัติส่วนมากถูกปิดการใช้ และใช้ค่าทั่วไปของ TDE แทน
-Comment[tr]=Bir çok özellik kapatılmış, TDE'nin küresel ayarları kullanılır
-Comment[uk]=Більшість функцій вимкнено, вживаються глобальні параметри TDE
-Comment[ven]=Zwithu zwinzhi zwo tsimiwa, mavhekanyelo a TDE a hothe na hothe a khu shumiswa
-Comment[vi]=Hầu hết các chức năng tắt, Thiết lập toàn cục của TDE được dùng
-Comment[xh]=Imisebenzi emininzi icinyiwe, izicwangciso ezingqukuva ze TDE ziyasetyenziswa
-Comment[zh_CN]=关闭大多数特性,使用 TDE 全局设置
-Comment[zh_TW]=大部份功能都關閉,使用 TDE 全域設定
-Comment[zu]=Eziningi izinto azikhanyiswanga, ezezizwe izilungiselo ze TDE ziyasetshenziswa
[Reader]
defaultColors=true
diff --git a/kmail/profiles/profile-secure-rc.desktop b/kmail/profiles/profile-secure-rc.desktop
index 3cfc3cf2..20a837a2 100644
--- a/kmail/profiles/profile-secure-rc.desktop
+++ b/kmail/profiles/profile-secure-rc.desktop
@@ -1,110 +1,7 @@
[KMail Profile]
Name=Most Secure
-Name[af]=Veiligste
-Name[ar]=الأكثر آمن
-Name[bg]=Сигурност
-Name[bs]=Najsigurniji
-Name[ca]=Més segur
-Name[cs]=Nejbezpečnější
-Name[cy]=Diogelaf
-Name[da]=Mest sikker
-Name[de]=Sicherste Variante
-Name[el]=Πιο ασφαλές
-Name[eo]=Plej sekura
-Name[es]=Más seguro
-Name[et]=Kõige turvalisem
-Name[eu]=Seguruena
-Name[fa]=بیشترین امنیت
-Name[fi]=Turvallisin
-Name[fr]=Le plus sécurisé
-Name[fy]=Meast feilich
-Name[gl]=O máis seguro
-Name[he]=הכי בטוח
-Name[hi]=अत्यंत सुरक्षित
-Name[hr]=Najsigurnije
-Name[hu]=Maximális biztonság
-Name[is]=Öruggast
-Name[it]=Massima sicurezza
-Name[ja]=最も安全
-Name[kk]=Ең қауіпсіз
-Name[km]=សុវត្ថិភាព​បំផុត
-Name[lt]=Saugiausias
-Name[mk]=Најбезбедно
-Name[ms]=Paling Selamat
-Name[nb]=Sikrest
-Name[nds]=Sekerst
-Name[ne]=सबैभन्दा सुरक्षित
-Name[nl]=Meest veilig
-Name[nn]=Tryggast
-Name[pa]=ਜਿਆਦਾ ਸੁਰੱਖਿਅਤ
-Name[pl]=Najbezpieczniejszy
-Name[pt]=Mais Seguro
-Name[pt_BR]=Segurança Máxima
-Name[ru]=Самый безопасный
-Name[se]=Sihkkareamus
-Name[sk]=Najviac bezpečné
-Name[sl]=Najbolj varen
-Name[sr]=Најбезбедније
-Name[sr@Latn]=Najbezbednije
-Name[sv]=Säkrast
-Name[ta]=மிகவும் பாதுகாப்பான
-Name[tg]=Аз ҳама бехавфнокаш
-Name[tr]=En Güvenli
-Name[uk]=Найбільш безпечний
-Name[uz]=Жуда хавфсиз
-Name[zh_CN]=最安全
-Name[zh_TW]=最安全
+
Comment=Sets all necessary options to achieve maximum security
-Comment[af]=Stel al die nodige opsies om die maksimum sekuriteit te hê
-Comment[bg]=Режим, в който всички настройки за сигурност за включени
-Comment[bs]=Postavlja sve potrebne opcije radi maksimalne sigurnosti
-Comment[ca]=Estableix totes les opcions necessàries per aconseguir una seguretat màxima
-Comment[cs]=Zapne všechny volby nutné k dosažení nejvyšší bezpečnosti
-Comment[cy]=Gosod pob nodwedd gofynnol i gyrchu diogelwch mwyaf
-Comment[da]=Sætter alle nødvendige tilvalg til maksimal sikkerhed
-Comment[de]=Aktivierung aller nötigen Einstellungen für die höchste Sicherheitsstufe
-Comment[el]=Ενεργοποιεί όλες τις απαραίτητες επιλογές για την επίτευξη της μέγιστης ασφάλειας
-Comment[eo]=Agordas la necesajn opciojn por atingi maksimuman sekurecon
-Comment[es]=Pone todas las opciones necesarias para lograr la máxima seguridad
-Comment[et]=Kõik võimalused maksimaalse turvalisuse tagamiseks
-Comment[eu]=Sekuritate maximoa lortzeko aukera guztiak ezartzen ditu
-Comment[fa]=همۀ گزینه‌های لازم را تنظیم می‌کند تا به امنیت بیشینه دست یابد
-Comment[fi]=Asettaa kaikki tarvittavat asetukset suurimman turvallisuuden saavuttamiseksi
-Comment[fr]=Règle toutes les options nécessaires pour atteindre une sécurité maximale
-Comment[fy]=Stelt alle nedige opsjes yn foar maksimale feiligens
-Comment[gl]=Estabelece tódalas opcións precisas para acada-la máxima seguridade
-Comment[hi]=अधिकतम सुरक्षा के लिए सभी आवश्यक विकल्पों को नियत करे
-Comment[hr]=Podešava sve opcije da postigne najbolju sigurnost
-Comment[hu]=Az összes beállítás a legbiztonságosabb értékre állítva
-Comment[is]=Setur allar stillingar þannig að öryggið sé mest
-Comment[it]=Imposta tutte le opzioni necessario per ottenere la massima sicurezza
-Comment[ja]=最大のセキュリティ確保のために必要なすべてのオプションを設定します
-Comment[kk]=Қауіпсіздігі мейілінше арттырып бапталғаны
-Comment[km]=កំណត់​ជម្រើស​ចាំបាច់​ទាំងអស់ ដើម្បី​ទទួល​បាន​សុវត្ថិភាព​ខ្ពស់​បំផុត
-Comment[lt]=Nustato visas būtinas maksimaliam saugumui parinktis
-Comment[mk]=Ги поставува сите потребни опции за да се постигне максимална безбедност
-Comment[ms]=Mengeset semua opsyen yang perlu untuk mencapai keselamatan maksimum
-Comment[nb]=Setter opp alle nødvendige innstillinger for å oppnå høyeste sikkerhet
-Comment[nds]=All Optschonen op maximale Sekerheit
-Comment[ne]=अधिकतम सुरक्षा प्राप्त गर्न सबै आवश्यक विकल्प सेट गर्छ
-Comment[nl]=Stelt alle benodigde opties in voor maximale veiligheid
-Comment[nn]=Set alle nødvendige innstillingar for maksimal tryggleik
-Comment[pl]=Włącza wszystkie opcje zapewniające najwięcej bezpieczeństwa
-Comment[pt]=Define todas as opções necessárias para atingir a máxima segurança
-Comment[pt_BR]=Define todas as opções necessárias para alcançar segurança máxima
-Comment[ro]=Setează toate opţiunile necesare pentru a atinge securitatea maximă
-Comment[ru]=Устанавливает все параметры, необходимые для достижения максимальной безопасности
-Comment[sk]=Nastaví všetky potrebné voľby pre dosiahnutie maximálnej bezpečnosti
-Comment[sl]=Nastavi vse potrebne možnosti da doseže najvišjo stopnjo varnosti
-Comment[sr]=Све неопходне опције поставају се тако да се постигне највећа безбедност
-Comment[sr@Latn]=Sve neophodne opcije postavaju se tako da se postigne najveća bezbednost
-Comment[sv]=Ställer in alla nödvändiga alternativ för att uppnå maximal säkerhet
-Comment[ta]=எல்லா தேர்வுகளையும் மிகுந்த அளவில் பாதுகாப்பில் இருக்கும்படி அமைக்கிறது
-Comment[tg]=Тамоми параметрҳоро, ки барои ноилшавии амнияти максималӣ лозим аст, сабт мекунад
-Comment[tr]=En yüksek güvenliği yakalamak için gerekli bütün takım seçenekleri
-Comment[uk]=Встановлює всі необхідні параметри для забезпечення максимальної безпеки
-Comment[zh_CN]=设置所有必要的选项来达到最大的安全性
-Comment[zh_TW]=將所有設定設為最高安全狀態
[Composer]
pgp-auto-sign=true
diff --git a/kmail/protocols.h b/kmail/protocols.h
index ab5aa38d..f24730f8 100644
--- a/kmail/protocols.h
+++ b/kmail/protocols.h
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
/**
* protocols.h
*
diff --git a/kmail/quotajobs.cpp b/kmail/quotajobs.cpp
index f8272cac..215a657c 100644
--- a/kmail/quotajobs.cpp
+++ b/kmail/quotajobs.cpp
@@ -51,8 +51,8 @@ QuotaJobs::GetQuotarootJob::GetQuotarootJob( const KURL& url,
bool showProgressInfo )
: TDEIO::SimpleJob( url, TDEIO::CMD_SPECIAL, packedArgs, showProgressInfo )
{
- connect( this, TQT_SIGNAL(infoMessage(TDEIO::Job*,const TQString&)),
- TQT_SLOT(slotInfoMessage(TDEIO::Job*,const TQString&)) );
+ connect( this, TQ_SIGNAL(infoMessage(TDEIO::Job*,const TQString&)),
+ TQ_SLOT(slotInfoMessage(TDEIO::Job*,const TQString&)) );
}
void QuotaJobs::GetQuotarootJob::slotInfoMessage( TDEIO::Job*, const TQString& str )
@@ -106,10 +106,10 @@ QuotaJobs::GetStorageQuotaJob::GetStorageQuotaJob( TDEIO::Slave* slave, const KU
QuotaJobs::GetQuotarootJob *job =
new QuotaJobs::GetQuotarootJob( url, packedArgs, false );
- connect(job, TQT_SIGNAL(quotaInfoReceived(const QuotaInfoList&)),
- TQT_SLOT(slotQuotaInfoReceived(const QuotaInfoList&)));
- connect(job, TQT_SIGNAL(quotaRootResult(const TQStringList&)),
- TQT_SLOT(slotQuotarootResult(const TQStringList&)));
+ connect(job, TQ_SIGNAL(quotaInfoReceived(const QuotaInfoList&)),
+ TQ_SLOT(slotQuotaInfoReceived(const QuotaInfoList&)));
+ connect(job, TQ_SIGNAL(quotaRootResult(const TQStringList&)),
+ TQ_SLOT(slotQuotarootResult(const TQStringList&)));
TDEIO::Scheduler::assignJobToSlave( slave, job );
addSubjob( job );
}
diff --git a/kmail/quotajobs.h b/kmail/quotajobs.h
index 4eb7ea0e..9681fb76 100644
--- a/kmail/quotajobs.h
+++ b/kmail/quotajobs.h
@@ -136,7 +136,7 @@ GetStorageQuotaJob* getStorageQuota( TDEIO::Slave* slave, const KURL& url );
/// for getQuotaroot()
class GetQuotarootJob : public TDEIO::SimpleJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
GetQuotarootJob( const KURL& url, const TQByteArray &packedArgs, bool showProgressInfo );
@@ -163,7 +163,7 @@ protected slots:
/// for getStorageQuota()
class GetStorageQuotaJob : public TDEIO::Job
{
- Q_OBJECT
+ TQ_OBJECT
public:
GetStorageQuotaJob( TDEIO::Slave* slave, const KURL& url );
diff --git a/kmail/recipientseditor.cpp b/kmail/recipientseditor.cpp
index 7497a460..4525bb97 100644
--- a/kmail/recipientseditor.cpp
+++ b/kmail/recipientseditor.cpp
@@ -162,24 +162,24 @@ RecipientLine::RecipientLine( TQWidget *parent )
TQToolTip::add( mEdit,
i18n( "Set the list of email addresses to receive this message" ) );
topLayout->addWidget( mEdit );
- connect( mEdit, TQT_SIGNAL( returnPressed() ), TQT_SLOT( slotReturnPressed() ) );
- connect( mEdit, TQT_SIGNAL( deleteMe() ), TQT_SLOT( slotPropagateDeletion() ) );
- connect( mEdit, TQT_SIGNAL( textChanged( const TQString & ) ),
- TQT_SLOT( analyzeLine( const TQString & ) ) );
- connect( mEdit, TQT_SIGNAL( focusUp() ), TQT_SLOT( slotFocusUp() ) );
- connect( mEdit, TQT_SIGNAL( focusDown() ), TQT_SLOT( slotFocusDown() ) );
- connect( mEdit, TQT_SIGNAL( rightPressed() ), TQT_SIGNAL( rightPressed() ) );
+ connect( mEdit, TQ_SIGNAL( returnPressed() ), TQ_SLOT( slotReturnPressed() ) );
+ connect( mEdit, TQ_SIGNAL( deleteMe() ), TQ_SLOT( slotPropagateDeletion() ) );
+ connect( mEdit, TQ_SIGNAL( textChanged( const TQString & ) ),
+ TQ_SLOT( analyzeLine( const TQString & ) ) );
+ connect( mEdit, TQ_SIGNAL( focusUp() ), TQ_SLOT( slotFocusUp() ) );
+ connect( mEdit, TQ_SIGNAL( focusDown() ), TQ_SLOT( slotFocusDown() ) );
+ connect( mEdit, TQ_SIGNAL( rightPressed() ), TQ_SIGNAL( rightPressed() ) );
- connect( mEdit, TQT_SIGNAL( leftPressed() ), mCombo, TQT_SLOT( setFocus() ) );
- connect( mCombo, TQT_SIGNAL( rightPressed() ), mEdit, TQT_SLOT( setFocus() ) );
+ connect( mEdit, TQ_SIGNAL( leftPressed() ), mCombo, TQ_SLOT( setFocus() ) );
+ connect( mCombo, TQ_SIGNAL( rightPressed() ), mEdit, TQ_SLOT( setFocus() ) );
- connect( mCombo, TQT_SIGNAL( activated ( int ) ),
- this, TQT_SLOT( slotTypeModified() ) );
+ connect( mCombo, TQ_SIGNAL( activated ( int ) ),
+ this, TQ_SLOT( slotTypeModified() ) );
mRemoveButton = new TQPushButton( this );
mRemoveButton->setIconSet( TDEApplication::reverseLayout() ? SmallIconSet("locationbar_erase") : SmallIconSet( "clear_left" ) );
topLayout->addWidget( mRemoveButton );
- connect( mRemoveButton, TQT_SIGNAL( clicked() ), TQT_SLOT( slotPropagateDeletion() ) );
+ connect( mRemoveButton, TQ_SIGNAL( clicked() ), TQ_SLOT( slotPropagateDeletion() ) );
TQToolTip::add( mRemoveButton, i18n("Remove recipient line") );
}
@@ -357,20 +357,20 @@ RecipientLine *RecipientsView::addLine()
addChild( line, 0, mLines.count() * mLineHeight );
line->mEdit->setCompletionMode( mCompletionMode );
line->show();
- connect( line, TQT_SIGNAL( returnPressed( RecipientLine * ) ),
- TQT_SLOT( slotReturnPressed( RecipientLine * ) ) );
- connect( line, TQT_SIGNAL( upPressed( RecipientLine * ) ),
- TQT_SLOT( slotUpPressed( RecipientLine * ) ) );
- connect( line, TQT_SIGNAL( downPressed( RecipientLine * ) ),
- TQT_SLOT( slotDownPressed( RecipientLine * ) ) );
- connect( line, TQT_SIGNAL( rightPressed() ), TQT_SIGNAL( focusRight() ) );
- connect( line, TQT_SIGNAL( deleteLine( RecipientLine * ) ),
- TQT_SLOT( slotDecideLineDeletion( RecipientLine * ) ) );
- connect( line, TQT_SIGNAL( countChanged() ), TQT_SLOT( calculateTotal() ) );
- connect( line, TQT_SIGNAL( typeModified( RecipientLine * ) ),
- TQT_SLOT( slotTypeModified( RecipientLine * ) ) );
- connect( line->mEdit, TQT_SIGNAL( completionModeChanged( TDEGlobalSettings::Completion ) ),
- TQT_SLOT( setCompletionMode( TDEGlobalSettings::Completion ) ) );
+ connect( line, TQ_SIGNAL( returnPressed( RecipientLine * ) ),
+ TQ_SLOT( slotReturnPressed( RecipientLine * ) ) );
+ connect( line, TQ_SIGNAL( upPressed( RecipientLine * ) ),
+ TQ_SLOT( slotUpPressed( RecipientLine * ) ) );
+ connect( line, TQ_SIGNAL( downPressed( RecipientLine * ) ),
+ TQ_SLOT( slotDownPressed( RecipientLine * ) ) );
+ connect( line, TQ_SIGNAL( rightPressed() ), TQ_SIGNAL( focusRight() ) );
+ connect( line, TQ_SIGNAL( deleteLine( RecipientLine * ) ),
+ TQ_SLOT( slotDecideLineDeletion( RecipientLine * ) ) );
+ connect( line, TQ_SIGNAL( countChanged() ), TQ_SLOT( calculateTotal() ) );
+ connect( line, TQ_SIGNAL( typeModified( RecipientLine * ) ),
+ TQ_SLOT( slotTypeModified( RecipientLine * ) ) );
+ connect( line->mEdit, TQ_SIGNAL( completionModeChanged( TDEGlobalSettings::Completion ) ),
+ TQ_SLOT( setCompletionMode( TDEGlobalSettings::Completion ) ) );
if ( mLines.last() ) {
if ( mLines.count() == 1 ) {
@@ -482,7 +482,7 @@ void RecipientsView::slotDecideLineDeletion( RecipientLine *line )
line->clear();
} else {
mCurDelLine = line;
- TQTimer::singleShot( 0, this, TQT_SLOT( slotDeleteLine( ) ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotDeleteLine( ) ) );
}
}
@@ -538,7 +538,7 @@ void RecipientsView::resizeView()
parentWidget()->layout()->activate();
emit sizeHintChanged();
- TQTimer::singleShot( 0, this, TQT_SLOT(moveCompletionPopup()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(moveCompletionPopup()) );
}
void RecipientsView::activateLine( RecipientLine *line )
@@ -768,14 +768,14 @@ SideWidget::SideWidget( RecipientsView *view, TQWidget *parent )
mDistributionListButton = new TQPushButton( i18n("Save List..."), this );
topLayout->addWidget( mDistributionListButton );
mDistributionListButton->hide();
- connect( mDistributionListButton, TQT_SIGNAL( clicked() ),
- TQT_SIGNAL( saveDistributionList() ) );
+ connect( mDistributionListButton, TQ_SIGNAL( clicked() ),
+ TQ_SIGNAL( saveDistributionList() ) );
TQToolTip::add( mDistributionListButton,
i18n("Save recipients as distribution list") );
mSelectButton = new TQPushButton( i18n("Se&lect..."), this );
topLayout->addWidget( mSelectButton );
- connect( mSelectButton, TQT_SIGNAL( clicked() ), TQT_SLOT( pickRecipient() ) );
+ connect( mSelectButton, TQ_SIGNAL( clicked() ), TQ_SLOT( pickRecipient() ) );
TQToolTip::add( mSelectButton, i18n("Select recipients from address book") );
}
@@ -789,8 +789,8 @@ RecipientsPicker* SideWidget::picker() const
// hacks to allow picker() to be const in the presence of lazy loading
SideWidget *non_const_this = const_cast<SideWidget*>( this );
mRecipientPicker = new RecipientsPicker( non_const_this );
- connect( mRecipientPicker, TQT_SIGNAL( pickedRecipient( const Recipient & ) ),
- non_const_this, TQT_SIGNAL( pickedRecipient( const Recipient & ) ) );
+ connect( mRecipientPicker, TQ_SIGNAL( pickedRecipient( const Recipient & ) ),
+ non_const_this, TQ_SIGNAL( pickedRecipient( const Recipient & ) ) );
mPickerPositioner = new KWindowPositioner( non_const_this, mRecipientPicker );
}
return mRecipientPicker;
@@ -845,25 +845,25 @@ RecipientsEditor::RecipientsEditor( TQWidget *parent )
mRecipientsView = new RecipientsView( this );
topLayout->addWidget( mRecipientsView );
- connect( mRecipientsView, TQT_SIGNAL( focusUp() ), TQT_SIGNAL( focusUp() ) );
- connect( mRecipientsView, TQT_SIGNAL( focusDown() ), TQT_SIGNAL( focusDown() ) );
- connect( mRecipientsView, TQT_SIGNAL( completionModeChanged( TDEGlobalSettings::Completion ) ),
- TQT_SIGNAL( completionModeChanged( TDEGlobalSettings::Completion ) ) );
+ connect( mRecipientsView, TQ_SIGNAL( focusUp() ), TQ_SIGNAL( focusUp() ) );
+ connect( mRecipientsView, TQ_SIGNAL( focusDown() ), TQ_SIGNAL( focusDown() ) );
+ connect( mRecipientsView, TQ_SIGNAL( completionModeChanged( TDEGlobalSettings::Completion ) ),
+ TQ_SIGNAL( completionModeChanged( TDEGlobalSettings::Completion ) ) );
mSideWidget = new SideWidget( mRecipientsView, this );
topLayout->addWidget( mSideWidget );
- connect( mSideWidget, TQT_SIGNAL( pickedRecipient( const Recipient & ) ),
- TQT_SLOT( slotPickedRecipient( const Recipient & ) ) );
- connect( mSideWidget, TQT_SIGNAL( saveDistributionList() ),
- TQT_SLOT( saveDistributionList() ) );
-
- connect( mRecipientsView, TQT_SIGNAL( totalChanged( int, int ) ),
- mSideWidget, TQT_SLOT( setTotal( int, int ) ) );
- connect( mRecipientsView, TQT_SIGNAL( focusRight() ),
- mSideWidget, TQT_SLOT( setFocus() ) );
-
- connect( mRecipientsView, TQT_SIGNAL(sizeHintChanged()),
- TQT_SIGNAL(sizeHintChanged()) );
+ connect( mSideWidget, TQ_SIGNAL( pickedRecipient( const Recipient & ) ),
+ TQ_SLOT( slotPickedRecipient( const Recipient & ) ) );
+ connect( mSideWidget, TQ_SIGNAL( saveDistributionList() ),
+ TQ_SLOT( saveDistributionList() ) );
+
+ connect( mRecipientsView, TQ_SIGNAL( totalChanged( int, int ) ),
+ mSideWidget, TQ_SLOT( setTotal( int, int ) ) );
+ connect( mRecipientsView, TQ_SIGNAL( focusRight() ),
+ mSideWidget, TQ_SLOT( setFocus() ) );
+
+ connect( mRecipientsView, TQ_SIGNAL(sizeHintChanged()),
+ TQ_SIGNAL(sizeHintChanged()) );
}
RecipientsEditor::~RecipientsEditor()
diff --git a/kmail/recipientseditor.h b/kmail/recipientseditor.h
index d02a1be5..f53ef48c 100644
--- a/kmail/recipientseditor.h
+++ b/kmail/recipientseditor.h
@@ -71,7 +71,7 @@ class Recipient
class RecipientComboBox : public TQComboBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
RecipientComboBox( TQWidget *parent );
@@ -85,7 +85,7 @@ class RecipientComboBox : public TQComboBox
class RecipientLineEdit : public KMLineEdit
{
- Q_OBJECT
+ TQ_OBJECT
public:
RecipientLineEdit( TQWidget * parent ) :
@@ -102,7 +102,7 @@ class RecipientLineEdit : public KMLineEdit
class RecipientLine : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
RecipientLine( TQWidget *parent );
@@ -172,7 +172,7 @@ class RecipientLine : public TQWidget
class RecipientsView : public TQScrollView
{
- Q_OBJECT
+ TQ_OBJECT
public:
RecipientsView( TQWidget *parent );
@@ -266,7 +266,7 @@ class RecipientsToolTip : public TQToolTip
class SideWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
SideWidget( RecipientsView *view, TQWidget *parent );
@@ -298,7 +298,7 @@ class SideWidget : public TQWidget
class RecipientsEditor : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
RecipientsEditor( TQWidget *parent );
diff --git a/kmail/recipientseditortest.cpp b/kmail/recipientseditortest.cpp
index 50ea58a2..8c3a4d64 100644
--- a/kmail/recipientseditortest.cpp
+++ b/kmail/recipientseditortest.cpp
@@ -64,7 +64,7 @@ Composer::Composer( TQWidget *parent )
TQPushButton *button = new TQPushButton( "&Close", this );
topLayout->addMultiCellWidget( button, 3, 3, 0, 1 );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( slotClose() ) );
+ connect( button, TQ_SIGNAL( clicked() ), TQ_SLOT( slotClose() ) );
}
void Composer::slotClose()
@@ -96,7 +96,7 @@ int main( int argc, char **argv )
TDEApplication app;
- TQObject::connect( &app, TQT_SIGNAL( lastWindowClosed() ), &app, TQT_SLOT( quit() ) );
+ TQObject::connect( &app, TQ_SIGNAL( lastWindowClosed() ), &app, TQ_SLOT( quit() ) );
TQWidget *wid = new Composer( 0 );
diff --git a/kmail/recipientseditortest.h b/kmail/recipientseditortest.h
index 12d0c2fc..68a050bb 100644
--- a/kmail/recipientseditortest.h
+++ b/kmail/recipientseditortest.h
@@ -30,7 +30,7 @@ class RecipientsEditor;
class Composer : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
Composer( TQWidget *parent );
diff --git a/kmail/recipientspicker.cpp b/kmail/recipientspicker.cpp
index be47b022..24679d8e 100644
--- a/kmail/recipientspicker.cpp
+++ b/kmail/recipientspicker.cpp
@@ -103,7 +103,7 @@ void RecipientItem::setAddressee( const TDEABC::Addressee &a,
TQImage img = a.photo().data();
if ( !img.isNull() )
- mIcon = img.smoothScale( 20, 20, TQ_ScaleMin );
+ mIcon = img.smoothScale( 20, 20, TQImage::ScaleMin );
else
mIcon = TDEGlobal::iconLoader()->loadIcon( "preferences-desktop-personal", TDEIcon::Small );
@@ -364,10 +364,10 @@ RecipientsPicker::RecipientsPicker( TQWidget *parent )
resLayout->addWidget( mCollectionCombo );
resLayout->addItem(new TQSpacerItem(1, 1, TQSizePolicy::Expanding));
-// connect( mCollectionCombo, TQT_SIGNAL( highlighted( int ) ),
-// TQT_SLOT( updateList() ) );
- connect( mCollectionCombo, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( updateList() ) );
+// connect( mCollectionCombo, TQ_SIGNAL( highlighted( int ) ),
+// TQ_SLOT( updateList() ) );
+ connect( mCollectionCombo, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( updateList() ) );
TQBoxLayout *searchLayout = new TQHBoxLayout( topLayout );
@@ -375,7 +375,7 @@ RecipientsPicker::RecipientsPicker( TQWidget *parent )
button->setIconSet( TDEGlobal::iconLoader()->loadIconSet(
TDEApplication::reverseLayout() ? "clear_left":"locationbar_erase", TDEIcon::Small, 0 ) );
searchLayout->addWidget( button );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( resetSearch() ) );
+ connect( button, TQ_SIGNAL( clicked() ), TQ_SLOT( resetSearch() ) );
label = new TQLabel( i18n("&Search:"), this );
searchLayout->addWidget( label );
@@ -388,21 +388,21 @@ RecipientsPicker::RecipientsPicker( TQWidget *parent )
mRecipientList->addColumn( i18n("->") );
mRecipientList->addColumn( i18n("Name") );
mRecipientList->addColumn( i18n("Email") );
- connect( mRecipientList, TQT_SIGNAL( doubleClicked( TQListViewItem *,
- const TQPoint &, int ) ), TQT_SLOT( slotPicked() ) );
- connect( mRecipientList, TQT_SIGNAL( returnPressed( TQListViewItem * ) ),
- TQT_SLOT( slotPicked() ) );
+ connect( mRecipientList, TQ_SIGNAL( doubleClicked( TQListViewItem *,
+ const TQPoint &, int ) ), TQ_SLOT( slotPicked() ) );
+ connect( mRecipientList, TQ_SIGNAL( returnPressed( TQListViewItem * ) ),
+ TQ_SLOT( slotPicked() ) );
new RecipientsListToolTip( mRecipientList->viewport(), mRecipientList );
mSearchLine = new SearchLine( this, mRecipientList );
searchLayout->addWidget( mSearchLine );
label->setBuddy( label );
- connect( mSearchLine, TQT_SIGNAL( downPressed() ), TQT_SLOT( setFocusList() ) );
+ connect( mSearchLine, TQ_SIGNAL( downPressed() ), TQ_SLOT( setFocusList() ) );
mSearchLDAPButton = new TQPushButton( i18n("Search &Directory Service"), this );
searchLayout->addWidget( mSearchLDAPButton );
- connect( mSearchLDAPButton, TQT_SIGNAL( clicked() ), TQT_SLOT( slotSearchLDAP() ) );
+ connect( mSearchLDAPButton, TQ_SIGNAL( clicked() ), TQ_SLOT( slotSearchLDAP() ) );
TQBoxLayout *buttonLayout = new TQHBoxLayout( topLayout );
@@ -410,27 +410,27 @@ RecipientsPicker::RecipientsPicker( TQWidget *parent )
mToButton = new TQPushButton( i18n("Add as To"), this );
buttonLayout->addWidget( mToButton );
- connect( mToButton, TQT_SIGNAL( clicked() ), TQT_SLOT( slotToClicked() ) );
+ connect( mToButton, TQ_SIGNAL( clicked() ), TQ_SLOT( slotToClicked() ) );
mCcButton = new TQPushButton( i18n("Add as CC"), this );
buttonLayout->addWidget( mCcButton );
- connect( mCcButton, TQT_SIGNAL( clicked() ), TQT_SLOT( slotCcClicked() ) );
+ connect( mCcButton, TQ_SIGNAL( clicked() ), TQ_SLOT( slotCcClicked() ) );
mBccButton = new TQPushButton( i18n("Add as BCC"), this );
buttonLayout->addWidget( mBccButton );
- connect( mBccButton, TQT_SIGNAL( clicked() ), TQT_SLOT( slotBccClicked() ) );
+ connect( mBccButton, TQ_SIGNAL( clicked() ), TQ_SLOT( slotBccClicked() ) );
// BCC isn't commonly used, so hide it for now
//mBccButton->hide();
TQPushButton *closeButton = new TQPushButton( i18n("&Cancel"), this );
buttonLayout->addWidget( closeButton );
- connect( closeButton, TQT_SIGNAL( clicked() ), TQT_SLOT( close() ) );
+ connect( closeButton, TQ_SIGNAL( clicked() ), TQ_SLOT( close() ) );
{
using namespace TDEABC;
mAddressBook = TDEABC::StdAddressBook::self( true );
- connect( mAddressBook, TQT_SIGNAL( addressBookChanged( AddressBook * ) ),
- this, TQT_SLOT( insertAddressBook( AddressBook * ) ) );
+ connect( mAddressBook, TQ_SIGNAL( addressBookChanged( AddressBook * ) ),
+ this, TQ_SLOT( insertAddressBook( AddressBook * ) ) );
}
initCollections();
@@ -845,8 +845,8 @@ void RecipientsPicker::slotSearchLDAP()
{
if ( !mLdapSearchDialog ) {
mLdapSearchDialog = new KPIM::LDAPSearchDialog( this );
- connect( mLdapSearchDialog, TQT_SIGNAL( addresseesAdded() ),
- TQT_SLOT(ldapSearchResult() ) );
+ connect( mLdapSearchDialog, TQ_SIGNAL( addresseesAdded() ),
+ TQ_SLOT(ldapSearchResult() ) );
}
mLdapSearchDialog->setSearchText( mSearchLine->text() );
mLdapSearchDialog->show();
diff --git a/kmail/recipientspicker.h b/kmail/recipientspicker.h
index d9dc2293..3de8eb6d 100644
--- a/kmail/recipientspicker.h
+++ b/kmail/recipientspicker.h
@@ -162,7 +162,7 @@ class RecipientsCollection
class SearchLine : public TDEListViewSearchLine
{
- Q_OBJECT
+ TQ_OBJECT
public:
SearchLine( TQWidget *parent, TDEListView *listView );
@@ -178,7 +178,7 @@ using namespace TDEABC;
class RecipientsPicker : public TQDialog
{
- Q_OBJECT
+ TQ_OBJECT
public:
RecipientsPicker( TQWidget *parent );
diff --git a/kmail/redirectdialog.cpp b/kmail/redirectdialog.cpp
index 0426bf15..371f8b76 100644
--- a/kmail/redirectdialog.cpp
+++ b/kmail/redirectdialog.cpp
@@ -74,9 +74,9 @@ RedirectDialog::RedirectDialog( TQWidget *parent, const char *name,
"where you can select recipients out "
"of all available addresses." ) );
- connect( mBtnTo, TQT_SIGNAL(clicked()), TQT_SLOT(slotAddrBook()) );
+ connect( mBtnTo, TQ_SIGNAL(clicked()), TQ_SLOT(slotAddrBook()) );
- connect( mEditTo, TQT_SIGNAL( textChanged ( const TQString & ) ), TQT_SLOT( slotEmailChanged( const TQString & ) ) );
+ connect( mEditTo, TQ_SIGNAL( textChanged ( const TQString & ) ), TQ_SLOT( slotEmailChanged( const TQString & ) ) );
mLabelTo->setBuddy( mBtnTo );
mEditTo->setFocus();
diff --git a/kmail/redirectdialog.h b/kmail/redirectdialog.h
index aa46404f..7b0b2601 100644
--- a/kmail/redirectdialog.h
+++ b/kmail/redirectdialog.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++ -*-
+/*
This file is part of KMail.
Copyright (c) 2003 Andreas Gungl <a.gungl@gmx.de>
@@ -49,7 +49,7 @@ namespace KMail {
*/
class RedirectDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/regexplineedit.cpp b/kmail/regexplineedit.cpp
index 1b14fb4f..e99528a9 100644
--- a/kmail/regexplineedit.cpp
+++ b/kmail/regexplineedit.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
regexplineedit.cpp
This file is part of KMail, the KDE mail client.
@@ -76,8 +76,8 @@ namespace KMail {
setFocusProxy( mLineEdit );
hlay->addWidget( mLineEdit );
- connect( mLineEdit, TQT_SIGNAL( textChanged( const TQString & ) ),
- this, TQT_SIGNAL( textChanged( const TQString & ) ) );
+ connect( mLineEdit, TQ_SIGNAL( textChanged( const TQString & ) ),
+ this, TQ_SIGNAL( textChanged( const TQString & ) ) );
if( !TDETrader::self()->query("KRegExpEditor/KRegExpEditor").isEmpty() ) {
mRegExpEditButton = new TQPushButton( i18n("Edit..."), this,
@@ -86,8 +86,8 @@ namespace KMail {
TQSizePolicy::Fixed );
hlay->addWidget( mRegExpEditButton );
- connect( mRegExpEditButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotEditRegExp() ) );
+ connect( mRegExpEditButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotEditRegExp() ) );
}
}
@@ -120,7 +120,7 @@ namespace KMail {
void RegExpLineEdit::slotEditRegExp()
{
if ( !mRegExpEditDialog )
- mRegExpEditDialog = KParts::ComponentFactory::createInstanceFromQuery<TQDialog>( "KRegExpEditor/KRegExpEditor", TQString(), TQT_TQOBJECT(this) );
+ mRegExpEditDialog = KParts::ComponentFactory::createInstanceFromQuery<TQDialog>( "KRegExpEditor/KRegExpEditor", TQString(), this );
KRegExpEditorInterface *iface =
static_cast<KRegExpEditorInterface *>( mRegExpEditDialog->tqt_cast( "KRegExpEditorInterface" ) );
diff --git a/kmail/regexplineedit.h b/kmail/regexplineedit.h
index 4db2e922..22dd69ff 100644
--- a/kmail/regexplineedit.h
+++ b/kmail/regexplineedit.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
regexplineedit.h
This file is part of KMail, the KDE mail client.
@@ -46,7 +46,7 @@ namespace KMail {
class RegExpLineEdit : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/renamejob.cpp b/kmail/renamejob.cpp
index 15c2778f..1c3cbef0 100644
--- a/kmail/renamejob.cpp
+++ b/kmail/renamejob.cpp
@@ -110,7 +110,7 @@ void RenameJob::execute()
}
// copy to the new folder
mCopyFolderJob = new CopyFolderJob( mStorage, mNewParent );
- connect( mCopyFolderJob, TQT_SIGNAL(folderCopyComplete(bool)), TQT_SLOT(folderCopyComplete(bool)) );
+ connect( mCopyFolderJob, TQ_SIGNAL(folderCopyComplete(bool)), TQ_SLOT(folderCopyComplete(bool)) );
mCopyFolderJob->execute();
} else
@@ -149,8 +149,8 @@ void RenameJob::execute()
ImapAccountBase::jobData jd( src.url() );
account->insertJob( job, jd );
TDEIO::Scheduler::assignJobToSlave( account->slave(), job );
- connect( job, TQT_SIGNAL(result(TDEIO::Job*)),
- TQT_SLOT(slotRenameResult(TDEIO::Job*)) );
+ connect( job, TQ_SIGNAL(result(TDEIO::Job*)),
+ TQ_SLOT(slotRenameResult(TDEIO::Job*)) );
}
}
diff --git a/kmail/renamejob.h b/kmail/renamejob.h
index 9e3cea43..f0a54db6 100644
--- a/kmail/renamejob.h
+++ b/kmail/renamejob.h
@@ -50,7 +50,7 @@ class CopyFolderJob;
*/
class RenameJob : public FolderJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/kmail/rulewidgethandlermanager.cpp b/kmail/rulewidgethandlermanager.cpp
index fac482ee..27aa68bc 100644
--- a/kmail/rulewidgethandlermanager.cpp
+++ b/kmail/rulewidgethandlermanager.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
rulewidgethandlermanager.cpp
This file is part of KMail, the KDE mail client.
@@ -251,7 +251,7 @@ void KMail::RuleWidgetHandlerManager::createWidgets( TQWidgetStack *functionStac
for ( int i = 0;
( w = (*it)->createFunctionWidget( i, functionStack, receiver ) );
++i ) {
- if ( childCount( TQT_TQOBJECT(functionStack), w->name() ) < 2 ) {
+ if ( childCount( functionStack, w->name() ) < 2 ) {
// there wasn't already a widget with this name, so add this widget
functionStack->addWidget( w );
}
@@ -266,7 +266,7 @@ void KMail::RuleWidgetHandlerManager::createWidgets( TQWidgetStack *functionStac
for ( int i = 0;
( w = (*it)->createValueWidget( i, valueStack, receiver ) );
++i ) {
- if ( childCount( TQT_TQOBJECT(valueStack), w->name() ) < 2 ) {
+ if ( childCount( valueStack, w->name() ) < 2 ) {
// there wasn't already a widget with this name, so add this widget
valueStack->addWidget( w );
}
@@ -368,7 +368,7 @@ namespace {
TQObject *obj;
while ( ( obj = it.current() ) ) {
++it;
- if ( !objName || tqstrcmp( objName, obj->name() ) == 0 )
+ if ( !objName || qstrcmp( objName, obj->name() ) == 0 )
break;
}
return obj;
@@ -431,8 +431,8 @@ namespace {
funcCombo->insertItem( i18n( TextFunctions[i].displayName ) );
}
funcCombo->adjustSize();
- TQObject::connect( funcCombo, TQT_SIGNAL( activated( int ) ),
- receiver, TQT_SLOT( slotFunctionChanged() ) );
+ TQObject::connect( funcCombo, TQ_SIGNAL( activated( int ) ),
+ receiver, TQ_SLOT( slotFunctionChanged() ) );
return funcCombo;
}
@@ -445,8 +445,8 @@ namespace {
if ( number == 0 ) {
RegExpLineEdit *lineEdit =
new RegExpLineEdit( valueStack, "regExpLineEdit" );
- TQObject::connect( lineEdit, TQT_SIGNAL( textChanged( const TQString & ) ),
- receiver, TQT_SLOT( slotValueChanged() ) );
+ TQObject::connect( lineEdit, TQ_SIGNAL( textChanged( const TQString & ) ),
+ receiver, TQ_SLOT( slotValueChanged() ) );
return lineEdit;
}
@@ -459,8 +459,8 @@ namespace {
TQComboBox *combo = new TQComboBox( valueStack, "categoryCombo" );
TQStringList categories = KabcBridge::categories();
combo->insertStringList( categories );
- TQObject::connect( combo, TQT_SIGNAL( activated( int ) ),
- receiver, TQT_SLOT( slotValueChanged() ) );
+ TQObject::connect( combo, TQ_SIGNAL( activated( int ) ),
+ receiver, TQ_SLOT( slotValueChanged() ) );
return combo;
}
@@ -472,7 +472,7 @@ namespace {
KMSearchRule::Function TextRuleWidgetHandler::currentFunction( const TQWidgetStack *functionStack ) const
{
const TQComboBox *funcCombo =
- dynamic_cast<TQComboBox*>( TQObject_child_const( TQT_TQOBJECT_CONST(functionStack),
+ dynamic_cast<TQComboBox*>( TQObject_child_const( functionStack,
"textRuleFuncCombo" ) );
// FIXME (TQt >= 4.0): Use the following when TQObject::child() is const.
// dynamic_cast<TQComboBox*>( functionStack->child( "textRuleFuncCombo",
@@ -503,7 +503,7 @@ namespace {
if ( func == KMSearchRule::FuncIsInCategory ||
func == KMSearchRule::FuncIsNotInCategory ) {
const TQComboBox *combo=
- dynamic_cast<TQComboBox*>( TQObject_child_const( TQT_TQOBJECT_CONST(valueStack),
+ dynamic_cast<TQComboBox*>( TQObject_child_const( valueStack,
"categoryCombo" ) );
// FIXME (TQt >= 4.0): Use the following when TQObject::child() is const.
// dynamic_cast<TQComboBox*>( valueStack->child( "categoryCombo",
@@ -520,7 +520,7 @@ namespace {
//in other cases of func it is a lineedit
const RegExpLineEdit *lineEdit =
- dynamic_cast<RegExpLineEdit*>( TQObject_child_const( TQT_TQOBJECT_CONST(valueStack),
+ dynamic_cast<RegExpLineEdit*>( TQObject_child_const( valueStack,
"regExpLineEdit" ) );
// FIXME (TQt >= 4.0): Use the following when TQObject::child() is const.
// dynamic_cast<RegExpLineEdit*>( valueStack->child( "regExpLineEdit",
@@ -646,14 +646,14 @@ namespace {
if ( func == KMSearchRule::FuncIsInAddressbook ||
func == KMSearchRule::FuncIsNotInAddressbook ) {
TQWidget *w =
- TQT_TQWIDGET( valueStack->child( "textRuleValueHider",
+ static_cast<TQWidget*>( valueStack->child( "textRuleValueHider",
0, false ) );
valueStack->raiseWidget( w );
}
else if ( func == KMSearchRule::FuncIsInCategory ||
func == KMSearchRule::FuncIsNotInCategory) {
TQComboBox *combo =
- static_cast<TQComboBox*>( TQT_TQWIDGET(valueStack->child( "categoryCombo",
+ static_cast<TQComboBox*>( static_cast<TQWidget*>(valueStack->child( "categoryCombo",
0, false )) );
combo->blockSignals( true );
for ( i = 0; i < combo->count(); ++i )
@@ -692,7 +692,7 @@ namespace {
{
// raise the correct function widget
functionStack->raiseWidget(
- TQT_TQWIDGET( functionStack->child( "textRuleFuncCombo",
+ static_cast<TQWidget*>( functionStack->child( "textRuleFuncCombo",
0, false ) ) );
// raise the correct value widget
@@ -700,13 +700,13 @@ namespace {
if ( func == KMSearchRule::FuncIsInAddressbook ||
func == KMSearchRule::FuncIsNotInAddressbook ) {
valueStack->raiseWidget(
- TQT_TQWIDGET( valueStack->child( "textRuleValueHider",
+ static_cast<TQWidget*>( valueStack->child( "textRuleValueHider",
0, false ) ) );
}
else if ( func == KMSearchRule::FuncIsInCategory ||
func == KMSearchRule::FuncIsNotInCategory) {
valueStack->raiseWidget(
- TQT_TQWIDGET( valueStack->child( "categoryCombo",
+ static_cast<TQWidget*>( valueStack->child( "categoryCombo",
0, false ) ) );
}
else {
@@ -762,8 +762,8 @@ namespace {
funcCombo->insertItem( i18n( MessageFunctions[i].displayName ) );
}
funcCombo->adjustSize();
- TQObject::connect( funcCombo, TQT_SIGNAL( activated( int ) ),
- receiver, TQT_SLOT( slotFunctionChanged() ) );
+ TQObject::connect( funcCombo, TQ_SIGNAL( activated( int ) ),
+ receiver, TQ_SLOT( slotFunctionChanged() ) );
return funcCombo;
}
@@ -776,8 +776,8 @@ namespace {
if ( number == 0 ) {
RegExpLineEdit *lineEdit =
new RegExpLineEdit( valueStack, "regExpLineEdit" );
- TQObject::connect( lineEdit, TQT_SIGNAL( textChanged( const TQString & ) ),
- receiver, TQT_SLOT( slotValueChanged() ) );
+ TQObject::connect( lineEdit, TQ_SIGNAL( textChanged( const TQString & ) ),
+ receiver, TQ_SLOT( slotValueChanged() ) );
return lineEdit;
}
@@ -794,7 +794,7 @@ namespace {
KMSearchRule::Function MessageRuleWidgetHandler::currentFunction( const TQWidgetStack *functionStack ) const
{
const TQComboBox *funcCombo =
- dynamic_cast<TQComboBox*>( TQObject_child_const( TQT_TQOBJECT_CONST(functionStack),
+ dynamic_cast<TQComboBox*>( TQObject_child_const( functionStack,
"messageRuleFuncCombo" ) );
// FIXME (TQt >= 4.0): Use the following when TQObject::child() is const.
// dynamic_cast<TQComboBox*>( functionStack->child( "messageRuleFuncCombo",
@@ -825,7 +825,7 @@ namespace {
KMSearchRule::Function ) const
{
const RegExpLineEdit *lineEdit =
- dynamic_cast<RegExpLineEdit*>( TQObject_child_const( TQT_TQOBJECT_CONST(valueStack),
+ dynamic_cast<RegExpLineEdit*>( TQObject_child_const( valueStack,
"regExpLineEdit" ) );
// FIXME (TQt >= 4.0): Use the following when TQObject::child() is const.
// dynamic_cast<RegExpLineEdit*>( valueStack->child( "regExpLineEdit",
@@ -947,7 +947,7 @@ namespace {
if ( func == KMSearchRule::FuncHasAttachment ||
func == KMSearchRule::FuncHasNoAttachment ) {
TQWidget *w =
- TQT_TQWIDGET( valueStack->child( "textRuleValueHider",
+ static_cast<TQWidget*>( valueStack->child( "textRuleValueHider",
0, false ) );
valueStack->raiseWidget( w );
}
@@ -978,7 +978,7 @@ namespace {
return false;
// raise the correct function widget
functionStack->raiseWidget(
- TQT_TQWIDGET( functionStack->child( "messageRuleFuncCombo",
+ static_cast<TQWidget*>( functionStack->child( "messageRuleFuncCombo",
0, false ) ) );
// raise the correct value widget
@@ -986,7 +986,7 @@ namespace {
if ( func == KMSearchRule::FuncHasAttachment ||
func == KMSearchRule::FuncHasNoAttachment ) {
TQWidget *w =
- TQT_TQWIDGET( valueStack->child( "textRuleValueHider",
+ static_cast<TQWidget*>( valueStack->child( "textRuleValueHider",
0, false ) );
valueStack->raiseWidget( w );
}
@@ -1038,8 +1038,8 @@ namespace {
funcCombo->insertItem( i18n( StatusFunctions[i].displayName ) );
}
funcCombo->adjustSize();
- TQObject::connect( funcCombo, TQT_SIGNAL( activated( int ) ),
- receiver, TQT_SLOT( slotFunctionChanged() ) );
+ TQObject::connect( funcCombo, TQ_SIGNAL( activated( int ) ),
+ receiver, TQ_SLOT( slotFunctionChanged() ) );
return funcCombo;
}
@@ -1058,8 +1058,8 @@ namespace {
statusCombo->insertItem( UserIcon( KMail::StatusValues[ i ].icon ), i18n( KMail::StatusValues[ i ].text ) );
}
statusCombo->adjustSize();
- TQObject::connect( statusCombo, TQT_SIGNAL( activated( int ) ),
- receiver, TQT_SLOT( slotValueChanged() ) );
+ TQObject::connect( statusCombo, TQ_SIGNAL( activated( int ) ),
+ receiver, TQ_SLOT( slotValueChanged() ) );
return statusCombo;
}
@@ -1068,7 +1068,7 @@ namespace {
KMSearchRule::Function StatusRuleWidgetHandler::currentFunction( const TQWidgetStack *functionStack ) const
{
const TQComboBox *funcCombo =
- dynamic_cast<TQComboBox*>( TQObject_child_const( TQT_TQOBJECT_CONST(functionStack),
+ dynamic_cast<TQComboBox*>( TQObject_child_const( functionStack,
"statusRuleFuncCombo" ) );
// FIXME (TQt >= 4.0): Use the following when TQObject::child() is const.
// dynamic_cast<TQComboBox*>( functionStack->child( "statusRuleFuncCombo",
@@ -1098,7 +1098,7 @@ namespace {
int StatusRuleWidgetHandler::currenStatusValue( const TQWidgetStack *valueStack ) const
{
const TQComboBox *statusCombo =
- dynamic_cast<TQComboBox*>( TQObject_child_const( TQT_TQOBJECT_CONST(valueStack),
+ dynamic_cast<TQComboBox*>( TQObject_child_const( valueStack,
"statusRuleValueCombo" ) );
// FIXME (TQt >= 4.0): Use the following when TQObject::child() is const.
// dynamic_cast<TQComboBox*>( valueStack->child( "statusRuleValueCombo",
@@ -1249,12 +1249,12 @@ namespace {
// raise the correct function widget
functionStack->raiseWidget(
- TQT_TQWIDGET( functionStack->child( "statusRuleFuncCombo",
+ static_cast<TQWidget*>( functionStack->child( "statusRuleFuncCombo",
0, false ) ) );
// raise the correct value widget
valueStack->raiseWidget(
- TQT_TQWIDGET( valueStack->child( "statusRuleValueCombo",
+ static_cast<TQWidget*>( valueStack->child( "statusRuleValueCombo",
0, false ) ) );
return true;
}
@@ -1298,8 +1298,8 @@ namespace {
funcCombo->insertItem( i18n( NumericFunctions[i].displayName ) );
}
funcCombo->adjustSize();
- TQObject::connect( funcCombo, TQT_SIGNAL( activated( int ) ),
- receiver, TQT_SLOT( slotFunctionChanged() ) );
+ TQObject::connect( funcCombo, TQ_SIGNAL( activated( int ) ),
+ receiver, TQ_SLOT( slotFunctionChanged() ) );
return funcCombo;
}
@@ -1313,8 +1313,8 @@ namespace {
return 0;
KIntNumInput *numInput = new KIntNumInput( valueStack, "KIntNumInput" );
- TQObject::connect( numInput, TQT_SIGNAL( valueChanged( int ) ),
- receiver, TQT_SLOT( slotValueChanged() ) );
+ TQObject::connect( numInput, TQ_SIGNAL( valueChanged( int ) ),
+ receiver, TQ_SLOT( slotValueChanged() ) );
return numInput;
}
@@ -1323,7 +1323,7 @@ namespace {
KMSearchRule::Function NumericRuleWidgetHandler::currentFunction( const TQWidgetStack *functionStack ) const
{
const TQComboBox *funcCombo =
- dynamic_cast<TQComboBox*>( TQObject_child_const( TQT_TQOBJECT_CONST(functionStack),
+ dynamic_cast<TQComboBox*>( TQObject_child_const( functionStack,
"numericRuleFuncCombo" ) );
// FIXME (TQt >= 4.0): Use the following when TQObject::child() is const.
// dynamic_cast<TQComboBox*>( functionStack->child( "numericRuleFuncCombo",
@@ -1353,7 +1353,7 @@ namespace {
TQString NumericRuleWidgetHandler::currentValue( const TQWidgetStack *valueStack ) const
{
const KIntNumInput *numInput =
- dynamic_cast<KIntNumInput*>( TQObject_child_const( TQT_TQOBJECT_CONST(valueStack),
+ dynamic_cast<KIntNumInput*>( TQObject_child_const( valueStack,
"KIntNumInput" ) );
// FIXME (TQt >= 4.0): Use the following when TQObject::child() is const.
// dynamic_cast<KIntNumInput*>( valueStack->child( "KIntNumInput",
@@ -1502,7 +1502,7 @@ namespace {
// raise the correct function widget
functionStack->raiseWidget(
- TQT_TQWIDGET( functionStack->child( "numericRuleFuncCombo",
+ static_cast<TQWidget*>( functionStack->child( "numericRuleFuncCombo",
0, false ) ) );
// raise the correct value widget
diff --git a/kmail/rulewidgethandlermanager.h b/kmail/rulewidgethandlermanager.h
index 431731e4..8043243c 100644
--- a/kmail/rulewidgethandlermanager.h
+++ b/kmail/rulewidgethandlermanager.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
rulewidgethandlermanager.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/searchjob.cpp b/kmail/searchjob.cpp
index b0b1d9de..7b0b5558 100644
--- a/kmail/searchjob.cpp
+++ b/kmail/searchjob.cpp
@@ -92,10 +92,10 @@ void SearchJob::searchCompleteFolder()
if ( mFolder->imapPath() != TQString( "/" ) )
{
TDEIO::Scheduler::assignJobToSlave( mAccount->slave(), job );
- connect( job, TQT_SIGNAL( infoMessage( TDEIO::Job*, const TQString& ) ),
- TQT_SLOT( slotSearchData( TDEIO::Job*, const TQString& ) ) );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotSearchResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL( infoMessage( TDEIO::Job*, const TQString& ) ),
+ TQ_SLOT( slotSearchData( TDEIO::Job*, const TQString& ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotSearchResult( TDEIO::Job * ) ) );
}
else
{ // for the "/ folder" of an imap account, searching blocks the tdeioslave
@@ -199,8 +199,8 @@ void SearchJob::slotSearchData( TDEIO::Job* job, const TQString& data )
} else
{
// get the folder to make sure we have all messages
- connect ( mFolder, TQT_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
- this, TQT_SLOT( slotSearchFolder()) );
+ connect ( mFolder, TQ_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
+ this, TQ_SLOT( slotSearchFolder()) );
mFolder->getFolder();
}
}
@@ -221,8 +221,8 @@ bool SearchJob::canMapAllUIDs()
//-----------------------------------------------------------------------------
void SearchJob::slotSearchFolder()
{
- disconnect ( mFolder, TQT_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
- this, TQT_SLOT( slotSearchFolder()) );
+ disconnect ( mFolder, TQ_SIGNAL( folderComplete( KMFolderImap*, bool ) ),
+ this, TQ_SLOT( slotSearchFolder()) );
if ( mLocalSearchPattern->isEmpty() ) {
// pure imap search - now get the serial number for the UIDs
@@ -271,8 +271,8 @@ void SearchJob::slotSearchFolder()
true,
mAccount->useSSL() || mAccount->useTLS() );
mProgress->setTotalItems( numMsgs );
- connect ( mProgress, TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem*)),
- this, TQT_SLOT( slotAbortSearch( KPIM::ProgressItem* ) ) );
+ connect ( mProgress, TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem*)),
+ this, TQ_SLOT( slotAbortSearch( KPIM::ProgressItem* ) ) );
for ( unsigned int i = 0; i < numMsgs ; ++i ) {
KMMessage * msg = mFolder->getMsg( i );
@@ -280,8 +280,8 @@ void SearchJob::slotSearchFolder()
ImapJob *job = new ImapJob( msg );
job->setParentFolder( mFolder );
job->setParentProgressItem( mProgress );
- connect( job, TQT_SIGNAL(messageRetrieved(KMMessage*)),
- this, TQT_SLOT(slotSearchMessageArrived(KMMessage*)) );
+ connect( job, TQ_SIGNAL(messageRetrieved(KMMessage*)),
+ this, TQ_SLOT(slotSearchMessageArrived(KMMessage*)) );
job->start();
} else {
slotSearchMessageArrived( msg );
@@ -387,10 +387,10 @@ void SearchJob::searchSingleMessage()
stream << (int) 'E' << url;
TDEIO::SimpleJob *job = TDEIO::special( url, packedArgs, false );
TDEIO::Scheduler::assignJobToSlave(mAccount->slave(), job);
- connect( job, TQT_SIGNAL(infoMessage(TDEIO::Job*,const TQString&)),
- TQT_SLOT(slotSearchDataSingleMessage(TDEIO::Job*,const TQString&)) );
- connect( job, TQT_SIGNAL(result(TDEIO::Job *)),
- TQT_SLOT(slotSearchResult(TDEIO::Job *)) );
+ connect( job, TQ_SIGNAL(infoMessage(TDEIO::Job*,const TQString&)),
+ TQ_SLOT(slotSearchDataSingleMessage(TDEIO::Job*,const TQString&)) );
+ connect( job, TQ_SIGNAL(result(TDEIO::Job *)),
+ TQ_SLOT(slotSearchResult(TDEIO::Job *)) );
}
}
@@ -420,8 +420,8 @@ void SearchJob::slotSearchDataSingleMessage( TDEIO::Job* job, const TQString& da
if ( needsDownload() ) {
ImapJob *job = new ImapJob( msg );
job->setParentFolder( mFolder );
- connect( job, TQT_SIGNAL(messageRetrieved(KMMessage*)),
- this, TQT_SLOT(slotSearchMessageArrived(KMMessage*)) );
+ connect( job, TQ_SIGNAL(messageRetrieved(KMMessage*)),
+ this, TQ_SLOT(slotSearchMessageArrived(KMMessage*)) );
job->start();
} else {
slotSearchMessageArrived( msg );
diff --git a/kmail/searchjob.h b/kmail/searchjob.h
index 85fd5c2a..2408669c 100644
--- a/kmail/searchjob.h
+++ b/kmail/searchjob.h
@@ -52,7 +52,7 @@ class ImapAccountBase;
*/
class SearchJob : public FolderJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/kmail/searchwindow.cpp b/kmail/searchwindow.cpp
index bc97de04..97f1e4b6 100644
--- a/kmail/searchwindow.cpp
+++ b/kmail/searchwindow.cpp
@@ -188,18 +188,18 @@ SearchWindow::SearchWindow(KMMainWidget* w, const char* name,
if ( list )
object = list->first();
delete list;
- if (!searchFolder && object && ::tqqt_cast<TQComboBox*>(object))
- static_cast<TQComboBox*>(TQT_TQWIDGET(object))->setCurrentText("Subject");
+ if (!searchFolder && object && ::tqt_cast<TQComboBox*>(object))
+ static_cast<TQComboBox*>(object)->setCurrentText(i18n("Subject"));
vbl->addWidget( mPatternEdit );
// enable/disable widgets depending on radio buttons:
- connect( mChkbxSpecificFolders, TQT_SIGNAL(toggled(bool)),
- mCbxFolders, TQT_SLOT(setEnabled(bool)) );
- connect( mChkbxSpecificFolders, TQT_SIGNAL(toggled(bool)),
- mChkSubFolders, TQT_SLOT(setEnabled(bool)) );
- connect( mChkbxAllFolders, TQT_SIGNAL(toggled(bool)),
- TQT_TQOBJECT(this), TQT_SLOT(setEnabledSearchButton(bool)) );
+ connect( mChkbxSpecificFolders, TQ_SIGNAL(toggled(bool)),
+ mCbxFolders, TQ_SLOT(setEnabled(bool)) );
+ connect( mChkbxSpecificFolders, TQ_SIGNAL(toggled(bool)),
+ mChkSubFolders, TQ_SLOT(setEnabled(bool)) );
+ connect( mChkbxAllFolders, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(setEnabledSearchButton(bool)) );
mLbxMatches = new MatchListView(searchWidget, this, "Find Messages");
@@ -236,14 +236,14 @@ SearchWindow::SearchWindow(KMMainWidget* w, const char* name,
mLbxMatches->setDragEnabled( true );
- connect( mLbxMatches, TQT_SIGNAL(clicked(TQListViewItem *)),
- TQT_TQOBJECT(this), TQT_SLOT(slotShowMsg(TQListViewItem *)) );
- connect( mLbxMatches, TQT_SIGNAL(doubleClicked(TQListViewItem *)),
- TQT_TQOBJECT(this), TQT_SLOT(slotViewMsg(TQListViewItem *)) );
- connect( mLbxMatches, TQT_SIGNAL(currentChanged(TQListViewItem *)),
- TQT_TQOBJECT(this), TQT_SLOT(slotCurrentChanged(TQListViewItem *)) );
- connect( mLbxMatches, TQT_SIGNAL(contextMenuRequested(TQListViewItem *,const TQPoint &,int)),
- TQT_TQOBJECT(this), TQT_SLOT(slotContextMenuRequested(TQListViewItem *,const TQPoint &,int)) );
+ connect( mLbxMatches, TQ_SIGNAL(clicked(TQListViewItem *)),
+ this, TQ_SLOT(slotShowMsg(TQListViewItem *)) );
+ connect( mLbxMatches, TQ_SIGNAL(doubleClicked(TQListViewItem *)),
+ this, TQ_SLOT(slotViewMsg(TQListViewItem *)) );
+ connect( mLbxMatches, TQ_SIGNAL(currentChanged(TQListViewItem *)),
+ this, TQ_SLOT(slotCurrentChanged(TQListViewItem *)) );
+ connect( mLbxMatches, TQ_SIGNAL(contextMenuRequested(TQListViewItem *,const TQPoint &,int)),
+ this, TQ_SLOT(slotContextMenuRequested(TQListViewItem *,const TQPoint &,int)) );
vbl->addWidget( mLbxMatches );
TQHBoxLayout *hbl2 = new TQHBoxLayout( vbl, spacingHint(), "kmfs_hbl2" );
@@ -260,17 +260,17 @@ SearchWindow::SearchWindow(KMMainWidget* w, const char* name,
mSearchFolderOpenBtn = new TQPushButton(i18n("Op&en Search Folder"), searchWidget);
mSearchFolderOpenBtn->setEnabled(false);
hbl2->addWidget(mSearchFolderOpenBtn);
- connect( mSearchFolderEdt, TQT_SIGNAL( textChanged( const TQString &)),
- TQT_TQOBJECT(this), TQT_SLOT( scheduleRename( const TQString & )));
- connect( &mRenameTimer, TQT_SIGNAL( timeout() ),
- TQT_TQOBJECT(this), TQT_SLOT( renameSearchFolder() ));
- connect( mSearchFolderOpenBtn, TQT_SIGNAL( clicked() ),
- TQT_TQOBJECT(this), TQT_SLOT( openSearchFolder() ));
+ connect( mSearchFolderEdt, TQ_SIGNAL( textChanged( const TQString &)),
+ this, TQ_SLOT( scheduleRename( const TQString & )));
+ connect( &mRenameTimer, TQ_SIGNAL( timeout() ),
+ this, TQ_SLOT( renameSearchFolder() ));
+ connect( mSearchFolderOpenBtn, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( openSearchFolder() ));
mSearchResultOpenBtn = new TQPushButton(i18n("Open &Message"), searchWidget);
mSearchResultOpenBtn->setEnabled(false);
hbl2->addWidget(mSearchResultOpenBtn);
- connect( mSearchResultOpenBtn, TQT_SIGNAL( clicked() ),
- TQT_TQOBJECT(this), TQT_SLOT( slotViewSelectedMsg() ));
+ connect( mSearchResultOpenBtn, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotViewSelectedMsg() ));
mStatusBar = new KStatusBar(searchWidget);
mStatusBar->insertFixedItem(i18n("AMiddleLengthText..."), 0, true);
mStatusBar->changeItem(i18n("Ready."), 0);
@@ -286,20 +286,20 @@ SearchWindow::SearchWindow(KMMainWidget* w, const char* name,
resize(mainWidth, mainHeight);
setMainWidget(searchWidget);
- setButtonBoxOrientation(Qt::Vertical);
+ setButtonBoxOrientation(TQt::Vertical);
mBtnSearch = actionButton(KDialogBase::User1);
mBtnStop = actionButton(KDialogBase::User2);
mBtnStop->setEnabled(false);
- connect(this, TQT_SIGNAL(user1Clicked()), TQT_SLOT(slotSearch()));
- connect(this, TQT_SIGNAL(user2Clicked()), TQT_SLOT(slotStop()));
- connect(this, TQT_SIGNAL(finished()), TQT_TQOBJECT(this), TQT_SLOT(deleteLater()));
+ connect(this, TQ_SIGNAL(user1Clicked()), TQ_SLOT(slotSearch()));
+ connect(this, TQ_SIGNAL(user2Clicked()), TQ_SLOT(slotStop()));
+ connect(this, TQ_SIGNAL(finished()), this, TQ_SLOT(deleteLater()));
// give focus to the value field of the first search rule
object = mPatternEdit->child( "regExpLineEdit" );
if ( object && object->isWidgetType() ) {
- TQT_TQWIDGET(object)->setFocus();
+ static_cast<TQWidget*>(object)->setFocus();
//kdDebug(5006) << "SearchWindow: focus has been given to widget "
// << object->name() << endl;
}
@@ -309,27 +309,27 @@ SearchWindow::SearchWindow(KMMainWidget* w, const char* name,
//set up actions
TDEActionCollection *ac = actionCollection();
ac->setWidget( this );
- mReplyAction = new TDEAction( i18n("&Reply..."), "mail-reply-sender", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotReplyToMsg()), ac, "search_reply" );
+ mReplyAction = new TDEAction( i18n("&Reply..."), "mail-reply-sender", 0, this,
+ TQ_SLOT(slotReplyToMsg()), ac, "search_reply" );
mReplyAllAction = new TDEAction( i18n("Reply to &All..."), "mail-reply-all",
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotReplyAllToMsg()),
+ 0, this, TQ_SLOT(slotReplyAllToMsg()),
ac, "search_reply_all" );
mReplyListAction = new TDEAction( i18n("Reply to Mailing-&List..."),
- "mail_replylist", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotReplyListToMsg()), ac,
+ "mail_replylist", 0, this,
+ TQ_SLOT(slotReplyListToMsg()), ac,
"search_reply_list" );
mForwardActionMenu = new TDEActionMenu( i18n("Message->","&Forward"),
"mail-forward", ac,
"search_message_forward" );
- connect( mForwardActionMenu, TQT_SIGNAL(activated()), this,
- TQT_SLOT(slotForwardInlineMsg()) );
+ connect( mForwardActionMenu, TQ_SIGNAL(activated()), this,
+ TQ_SLOT(slotForwardInlineMsg()) );
mForwardAttachedAction = new TDEAction( i18n("Message->Forward->","As &Attachment..."),
- "mail-forward", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotForwardAttachedMsg()), ac,
+ "mail-forward", 0, this,
+ TQ_SLOT(slotForwardAttachedMsg()), ac,
"search_message_forward_as_attachment" );
mForwardInlineAction = new TDEAction( i18n("&Inline..."),
- "mail-forward", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotForwardInlineMsg()), ac,
+ "mail-forward", 0, this,
+ TQ_SLOT(slotForwardInlineMsg()), ac,
"search_message_forward_inline" );
if ( GlobalSettings::self()->forwardingInlineByDefault() ) {
mForwardActionMenu->insert( mForwardInlineAction );
@@ -340,32 +340,32 @@ SearchWindow::SearchWindow(KMMainWidget* w, const char* name,
}
mForwardDigestAction = new TDEAction( i18n("Message->Forward->","As Di&gest..."),
- "mail-forward", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotForwardDigestMsg()), ac,
+ "mail-forward", 0, this,
+ TQ_SLOT(slotForwardDigestMsg()), ac,
"search_message_forward_as_digest" );
mForwardActionMenu->insert( mForwardDigestAction );
mRedirectAction = new TDEAction( i18n("Message->Forward->","&Redirect..."),
- "mail-forward", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotRedirectMsg()), ac,
+ "mail-forward", 0, this,
+ TQ_SLOT(slotRedirectMsg()), ac,
"search_message_forward_redirect" );
mForwardActionMenu->insert( mRedirectAction );
- mSaveAsAction = KStdAction::saveAs( TQT_TQOBJECT(this), TQT_SLOT(slotSaveMsg()), ac, "search_file_save_as" );
+ mSaveAsAction = KStdAction::saveAs( this, TQ_SLOT(slotSaveMsg()), ac, "search_file_save_as" );
mSaveAtchAction = new TDEAction( i18n("Save Attachments..."), "attach", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotSaveAttachments()), ac, "search_save_attachments" );
+ this, TQ_SLOT(slotSaveAttachments()), ac, "search_save_attachments" );
- mPrintAction = KStdAction::print( TQT_TQOBJECT(this), TQT_SLOT(slotPrintMsg()), ac, "search_print" );
- mClearAction = new TDEAction( i18n("Clear Selection"), 0, 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotClearSelection()), ac, "search_clear_selection" );
+ mPrintAction = KStdAction::print( this, TQ_SLOT(slotPrintMsg()), ac, "search_print" );
+ mClearAction = new TDEAction( i18n("Clear Selection"), 0, 0, this,
+ TQ_SLOT(slotClearSelection()), ac, "search_clear_selection" );
- mCopyAction = KStdAction::copy( TQT_TQOBJECT(this), TQT_SLOT(slotCopyMsgs()), ac, "search_copy_messages" );
- mCutAction = KStdAction::cut( TQT_TQOBJECT(this), TQT_SLOT(slotCutMsgs()), ac, "search_cut_messages" );
+ mCopyAction = KStdAction::copy( this, TQ_SLOT(slotCopyMsgs()), ac, "search_copy_messages" );
+ mCutAction = KStdAction::cut( this, TQ_SLOT(slotCutMsgs()), ac, "search_cut_messages" );
- connect(mTimer, TQT_SIGNAL(timeout()), TQT_TQOBJECT(this), TQT_SLOT(updStatus()));
- connect(kmkernel->searchFolderMgr(), TQT_SIGNAL(folderInvalidated(KMFolder*)),
- TQT_TQOBJECT(this), TQT_SLOT(folderInvalidated(KMFolder*)));
+ connect(mTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(updStatus()));
+ connect(kmkernel->searchFolderMgr(), TQ_SIGNAL(folderInvalidated(KMFolder*)),
+ this, TQ_SLOT(folderInvalidated(KMFolder*)));
- connect(mCbxFolders, TQT_SIGNAL(folderChanged(KMFolder*)),
- TQT_TQOBJECT(this), TQT_SLOT(slotFolderActivated()));
+ connect(mCbxFolders, TQ_SIGNAL(folderChanged(KMFolder*)),
+ this, TQ_SLOT(slotFolderActivated()));
}
@@ -507,18 +507,18 @@ void SearchWindow::slotSearch()
mFolder = dynamic_cast<KMFolderSearch*>( folder->storage() );
}
mFolder->stopSearch();
- disconnect(mFolder, TQT_SIGNAL(msgAdded(int)),
- TQT_TQOBJECT(this), TQT_SLOT(slotAddMsg(int)));
- disconnect(mFolder, TQT_SIGNAL(msgRemoved(KMFolder*, TQ_UINT32)),
- TQT_TQOBJECT(this), TQT_SLOT(slotRemoveMsg(KMFolder*, TQ_UINT32)));
- connect(mFolder, TQT_SIGNAL(msgAdded(int)),
- TQT_TQOBJECT(this), TQT_SLOT(slotAddMsg(int)));
- connect(mFolder, TQT_SIGNAL(msgRemoved(KMFolder*, TQ_UINT32)),
- TQT_TQOBJECT(this), TQT_SLOT(slotRemoveMsg(KMFolder*, TQ_UINT32)));
+ disconnect(mFolder, TQ_SIGNAL(msgAdded(int)),
+ this, TQ_SLOT(slotAddMsg(int)));
+ disconnect(mFolder, TQ_SIGNAL(msgRemoved(KMFolder*, TQ_UINT32)),
+ this, TQ_SLOT(slotRemoveMsg(KMFolder*, TQ_UINT32)));
+ connect(mFolder, TQ_SIGNAL(msgAdded(int)),
+ this, TQ_SLOT(slotAddMsg(int)));
+ connect(mFolder, TQ_SIGNAL(msgRemoved(KMFolder*, TQ_UINT32)),
+ this, TQ_SLOT(slotRemoveMsg(KMFolder*, TQ_UINT32)));
mSearchFolderEdt->setEnabled(false);
KMSearch *search = new KMSearch();
- connect(search, TQT_SIGNAL(finished(bool)),
- TQT_TQOBJECT(this), TQT_SLOT(searchDone()));
+ connect(search, TQ_SIGNAL(finished(bool)),
+ this, TQ_SLOT(searchDone()));
if (mChkbxAllFolders->isChecked()) {
search->setRecursive(true);
} else {
@@ -543,7 +543,7 @@ void SearchWindow::searchDone()
mTimer->stop();
updStatus();
- TQTimer::singleShot(0, TQT_TQOBJECT(this), TQT_SLOT(enableGUI()));
+ TQTimer::singleShot(0, this, TQ_SLOT(enableGUI()));
if(mLastFocus)
mLastFocus->setFocus();
if (mCloseRequested)
@@ -623,7 +623,7 @@ void SearchWindow::closeEvent(TQCloseEvent *e)
//Cancel search in progress by setting the search folder search to
//the null search
mFolder->setSearch(new KMSearch());
- TQTimer::singleShot(0, TQT_TQOBJECT(this), TQT_SLOT(slotClose()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotClose()));
} else {
KDialogBase::closeEvent(e);
}
@@ -676,8 +676,8 @@ void SearchWindow::folderInvalidated(KMFolder *folder)
if (folder->storage() == mFolder) {
mLbxMatches->clear();
if (mFolder->search())
- connect(mFolder->search(), TQT_SIGNAL(finished(bool)),
- TQT_TQOBJECT(this), TQT_SLOT(searchDone()));
+ connect(mFolder->search(), TQ_SIGNAL(finished(bool)),
+ this, TQ_SLOT(searchDone()));
mTimer->start(200);
enableGUI();
}
@@ -840,10 +840,10 @@ void SearchWindow::slotContextMenuRequested( TQListViewItem *lvi, const TQPoint
mMenuToFolder.clear();
TQPopupMenu *msgMoveMenu = new TQPopupMenu(menu);
mKMMainWidget->folderTree()->folderToPopupMenu( KMFolderTree::MoveMessage,
- TQT_TQOBJECT(this), &mMenuToFolder, msgMoveMenu );
+ this, &mMenuToFolder, msgMoveMenu );
TQPopupMenu *msgCopyMenu = new TQPopupMenu(menu);
mKMMainWidget->folderTree()->folderToPopupMenu( KMFolderTree::CopyMessage,
- TQT_TQOBJECT(this), &mMenuToFolder, msgCopyMenu );
+ this, &mMenuToFolder, msgCopyMenu );
// show most used actions
mReplyAction->plug(menu);
diff --git a/kmail/searchwindow.h b/kmail/searchwindow.h
index 84684c84..2bc71593 100644
--- a/kmail/searchwindow.h
+++ b/kmail/searchwindow.h
@@ -67,7 +67,7 @@ namespace KMail {
*/
class SearchWindow: public KDialogBase, virtual public KXMLGUIClient
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/secondarywindow.cpp b/kmail/secondarywindow.cpp
index 5a689633..a421209a 100644
--- a/kmail/secondarywindow.cpp
+++ b/kmail/secondarywindow.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
secondarywindow.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/secondarywindow.h b/kmail/secondarywindow.h
index 560b707d..335524dd 100644
--- a/kmail/secondarywindow.h
+++ b/kmail/secondarywindow.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
secondarywindow.h
This file is part of KMail, the KDE mail client.
@@ -43,7 +43,7 @@ namespace KMail {
*/
class SecondaryWindow : public TDEMainWindow
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/sieveconfig.cpp b/kmail/sieveconfig.cpp
index ff3e156d..9bd137bb 100644
--- a/kmail/sieveconfig.cpp
+++ b/kmail/sieveconfig.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
sieveconfig.cpp
KMail, the KDE mail client.
@@ -70,7 +70,7 @@ namespace KMail {
mManagesieveCheck = new TQCheckBox( i18n("&Server supports Sieve"), this );
glay->addMultiCellWidget( mManagesieveCheck, row, row, 0, 1 );
- connect( mManagesieveCheck, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotEnableWidgets()) );
+ connect( mManagesieveCheck, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotEnableWidgets()) );
// "reuse host and login config" checkbox:
++row;
@@ -79,7 +79,7 @@ namespace KMail {
mSameConfigCheck->setEnabled( false );
glay->addMultiCellWidget( mSameConfigCheck, row, row, 0, 1 );
- connect( mSameConfigCheck, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotEnableWidgets()) );
+ connect( mSameConfigCheck, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotEnableWidgets()) );
// "Managesieve port" spinbox and label:
++row;
diff --git a/kmail/sieveconfig.h b/kmail/sieveconfig.h
index ac296375..41c1beac 100644
--- a/kmail/sieveconfig.h
+++ b/kmail/sieveconfig.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
sieveconfig.h
KMail, the KDE mail client.
@@ -86,7 +86,7 @@ namespace KMail {
};
class SieveConfigEditor : public TQWidget {
- Q_OBJECT
+ TQ_OBJECT
public:
SieveConfigEditor( TQWidget * parent=0, const char * name=0 );
diff --git a/kmail/sievedebugdialog.cpp b/kmail/sievedebugdialog.cpp
index cd3ebdfc..09d7d3fa 100644
--- a/kmail/sievedebugdialog.cpp
+++ b/kmail/sievedebugdialog.cpp
@@ -206,7 +206,7 @@ SieveDebugDialog::SieveDebugDialog( TQWidget *parent, const char *name )
setInitialSize( TQSize( 640, 480 ) );
if ( !mAccountList.isEmpty() )
- TQTimer::singleShot( 0, this, TQT_SLOT( slotDiagNextAccount() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotDiagNextAccount() ) );
}
SieveDebugDialog::~SieveDebugDialog()
@@ -268,8 +268,8 @@ void SieveDebugDialog::slotDiagNextAccount()
mSieveJob = SieveJob::list( mUrl );
- connect( mSieveJob, TQT_SIGNAL( gotList( KMail::SieveJob *, bool, const TQStringList &, const TQString & ) ),
- TQT_SLOT( slotGetScriptList( KMail::SieveJob *, bool, const TQStringList &, const TQString & ) ) );
+ connect( mSieveJob, TQ_SIGNAL( gotList( KMail::SieveJob *, bool, const TQStringList &, const TQString & ) ),
+ TQ_SLOT( slotGetScriptList( KMail::SieveJob *, bool, const TQStringList &, const TQString & ) ) );
// Bypass the singleShot timer -- it's fired when we get our data
return;
@@ -279,7 +279,7 @@ void SieveDebugDialog::slotDiagNextAccount()
}
// Handle next account async
- TQTimer::singleShot( 0, this, TQT_SLOT( slotDiagNextAccount() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotDiagNextAccount() ) );
}
void SieveDebugDialog::slotDiagNextScript()
@@ -288,7 +288,7 @@ void SieveDebugDialog::slotDiagNextScript()
{
// Continue handling accounts instead
mScriptList.clear();
- TQTimer::singleShot( 0, this, TQT_SLOT( slotDiagNextAccount() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotDiagNextAccount() ) );
return;
}
@@ -302,8 +302,8 @@ void SieveDebugDialog::slotDiagNextScript()
mSieveJob = SieveJob::get( mUrl );
- connect( mSieveJob, TQT_SIGNAL( gotScript( KMail::SieveJob *, bool, const TQString &, bool ) ),
- TQT_SLOT( slotGetScript( KMail::SieveJob *, bool, const TQString &, bool ) ) );
+ connect( mSieveJob, TQ_SIGNAL( gotScript( KMail::SieveJob *, bool, const TQString &, bool ) ),
+ TQ_SLOT( slotGetScript( KMail::SieveJob *, bool, const TQString &, bool ) ) );
}
void SieveDebugDialog::slotGetScript( SieveJob * /* job */, bool success,
@@ -328,7 +328,7 @@ void SieveDebugDialog::slotGetScript( SieveJob * /* job */, bool success,
}
// Fetch next script
- TQTimer::singleShot( 0, this, TQT_SLOT( slotDiagNextScript() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotDiagNextScript() ) );
}
void SieveDebugDialog::slotGetScriptList( SieveJob *job, bool success,
@@ -367,7 +367,7 @@ void SieveDebugDialog::slotGetScriptList( SieveJob *job, bool success,
}
// Handle next job: dump scripts for this server
- TQTimer::singleShot( 0, this, TQT_SLOT( slotDiagNextScript() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotDiagNextScript() ) );
}
void SieveDebugDialog::slotDialogOk()
diff --git a/kmail/sievedebugdialog.h b/kmail/sievedebugdialog.h
index 7eacab62..e565cd6e 100644
--- a/kmail/sievedebugdialog.h
+++ b/kmail/sievedebugdialog.h
@@ -49,7 +49,7 @@ class SieveJob;
*/
class SieveDebugDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/sievejob.cpp b/kmail/sievejob.cpp
index 96f0a608..fc7b92cf 100644
--- a/kmail/sievejob.cpp
+++ b/kmail/sievejob.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
sievejob.h
KMail, the KDE mail client.
@@ -72,14 +72,14 @@ namespace KMail {
case Get:
kdDebug(5006) << "SieveJob::schedule: get( " << mUrl.prettyURL() << " )" << endl;
mJob = TDEIO::get( mUrl, false /*reload*/, showProgressInfo );
- connect( mJob, TQT_SIGNAL(data(TDEIO::Job*,const TQByteArray&)),
- TQT_SLOT(slotData(TDEIO::Job*,const TQByteArray&)) );
+ connect( mJob, TQ_SIGNAL(data(TDEIO::Job*,const TQByteArray&)),
+ TQ_SLOT(slotData(TDEIO::Job*,const TQByteArray&)) );
break;
case Put:
kdDebug(5006) << "SieveJob::schedule: put( " << mUrl.prettyURL() << " )" << endl;
mJob = TDEIO::put( mUrl, 0600, true /*overwrite*/, false /*resume*/, showProgressInfo );
- connect( mJob, TQT_SIGNAL(dataReq(TDEIO::Job*,TQByteArray&)),
- TQT_SLOT(slotDataReq(TDEIO::Job*,TQByteArray&)) );
+ connect( mJob, TQ_SIGNAL(dataReq(TDEIO::Job*,TQByteArray&)),
+ TQ_SLOT(slotDataReq(TDEIO::Job*,TQByteArray&)) );
break;
case Activate:
kdDebug(5006) << "SieveJob::schedule: chmod( " << mUrl.prettyURL() << ", 0700 )"
@@ -102,16 +102,16 @@ namespace KMail {
kdDebug(5006) << "SieveJob::schedule: listDir's real URL: " << url.prettyURL()
<< endl;
mJob = TDEIO::listDir( url, showProgressInfo );
- connect( mJob, TQT_SIGNAL(entries(TDEIO::Job*,const TDEIO::UDSEntryList&)),
- TQT_SLOT(slotEntries(TDEIO::Job*,const TDEIO::UDSEntryList&)) );
+ connect( mJob, TQ_SIGNAL(entries(TDEIO::Job*,const TDEIO::UDSEntryList&)),
+ TQ_SLOT(slotEntries(TDEIO::Job*,const TDEIO::UDSEntryList&)) );
break;
}
case List:
kdDebug(5006) << "SieveJob::schedule: listDir( " << mUrl.prettyURL() << " )" << endl;
{
mJob = TDEIO::listDir( mUrl, showProgressInfo );
- connect( mJob, TQT_SIGNAL( entries(TDEIO::Job *, const TDEIO::UDSEntryList & ) ),
- TQT_SLOT( slotEntries( TDEIO::Job *, const TDEIO::UDSEntryList & ) ) );
+ connect( mJob, TQ_SIGNAL( entries(TDEIO::Job *, const TDEIO::UDSEntryList & ) ),
+ TQ_SLOT( slotEntries( TDEIO::Job *, const TDEIO::UDSEntryList & ) ) );
break;
}
case Delete:
@@ -123,7 +123,7 @@ namespace KMail {
}
mJob->setInteractive(showProgressInfo);
// common to all jobs:
- connect( mJob, TQT_SIGNAL(result(TDEIO::Job*)), TQT_SLOT(slotResult(TDEIO::Job*)) );
+ connect( mJob, TQ_SIGNAL(result(TDEIO::Job*)), TQ_SLOT(slotResult(TDEIO::Job*)) );
}
void SieveJob::slotData( Job *, const TQByteArray & data ) {
@@ -290,6 +290,3 @@ namespace KMail {
} // namespace KMail
#include "sievejob.moc"
-
-// vim: set noet sts=2 ts=8 sw=2:
-
diff --git a/kmail/sievejob.h b/kmail/sievejob.h
index fb1d3a90..8a9a2bff 100644
--- a/kmail/sievejob.h
+++ b/kmail/sievejob.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
sievejob.h
KMail, the KDE mail client.
@@ -32,7 +32,7 @@ namespace TDEIO {
namespace KMail {
class SieveJob : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
protected:
enum Command { Get, Put, Activate, Deactivate, SearchActive, List, Delete };
@@ -127,6 +127,3 @@ namespace KMail {
} // namespace KMail
#endif // __KMAIL_SIEVE_JOB_H__
-
-// vim: set noet sts=2 ts=8 sw=2:
-
diff --git a/kmail/signatureconfigurator.cpp b/kmail/signatureconfigurator.cpp
index 81131956..4b7faca3 100644
--- a/kmail/signatureconfigurator.cpp
+++ b/kmail/signatureconfigurator.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
signatureconfigurator.cpp
KMail, the KDE mail client.
@@ -85,19 +85,19 @@ namespace KMail {
TQWidgetStack * widgetStack = new TQWidgetStack( this );
widgetStack->setEnabled( false ); // since !mEnableCheck->isChecked()
vlay->addWidget( widgetStack, 1 );
- connect( mSourceCombo, TQT_SIGNAL(highlighted(int)),
- widgetStack, TQT_SLOT(raiseWidget(int)) );
+ connect( mSourceCombo, TQ_SIGNAL(highlighted(int)),
+ widgetStack, TQ_SLOT(raiseWidget(int)) );
// connects for the enabling of the widgets depending on
// signatureEnabled:
- connect( mEnableCheck, TQT_SIGNAL(toggled(bool)),
- mSourceCombo, TQT_SLOT(setEnabled(bool)) );
- connect( mEnableCheck, TQT_SIGNAL(toggled(bool)),
- widgetStack, TQT_SLOT(setEnabled(bool)) );
- connect( mEnableCheck, TQT_SIGNAL(toggled(bool)),
- label, TQT_SLOT(setEnabled(bool)) );
+ connect( mEnableCheck, TQ_SIGNAL(toggled(bool)),
+ mSourceCombo, TQ_SLOT(setEnabled(bool)) );
+ connect( mEnableCheck, TQ_SIGNAL(toggled(bool)),
+ widgetStack, TQ_SLOT(setEnabled(bool)) );
+ connect( mEnableCheck, TQ_SIGNAL(toggled(bool)),
+ label, TQ_SLOT(setEnabled(bool)) );
// The focus might be still in the widget that is disabled
- connect( mEnableCheck, TQT_SIGNAL(clicked()),
- mEnableCheck, TQT_SLOT(setFocus()) );
+ connect( mEnableCheck, TQ_SIGNAL(clicked()),
+ mEnableCheck, TQ_SLOT(setFocus()) );
int pageno = 0;
// page 0: input field for direct entering:
@@ -126,11 +126,11 @@ namespace KMail {
i18n("S&pecify file:"), page ) );
hlay->addWidget( mFileRequester, 1 );
mFileRequester->button()->setAutoDefault( false );
- connect( mFileRequester, TQT_SIGNAL(textChanged(const TQString &)),
- this, TQT_SLOT(slotEnableEditButton(const TQString &)) );
+ connect( mFileRequester, TQ_SIGNAL(textChanged(const TQString &)),
+ this, TQ_SLOT(slotEnableEditButton(const TQString &)) );
mEditButton = new TQPushButton( i18n("Edit &File"), page );
TQWhatsThis::add(mEditButton, i18n("Opens the specified file in a text editor."));
- connect( mEditButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotEdit()) );
+ connect( mEditButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotEdit()) );
mEditButton->setAutoDefault( false );
mEditButton->setEnabled( false ); // initially nothing to edit
hlay->addWidget( mEditButton );
diff --git a/kmail/signatureconfigurator.h b/kmail/signatureconfigurator.h
index 48e6c5d6..2027110a 100644
--- a/kmail/signatureconfigurator.h
+++ b/kmail/signatureconfigurator.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
signatureconfigurator.cpp
KMail, the KDE mail client.
@@ -32,7 +32,7 @@ class TQTextEdit;
namespace KMail {
class SignatureConfigurator : public TQWidget {
- Q_OBJECT
+ TQ_OBJECT
public:
SignatureConfigurator( TQWidget * parent=0, const char * name=0 );
diff --git a/kmail/simplestringlisteditor.cpp b/kmail/simplestringlisteditor.cpp
index b96a1ad8..c62b73ae 100644
--- a/kmail/simplestringlisteditor.cpp
+++ b/kmail/simplestringlisteditor.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
simplestringlisteditor.cpp
This file is part of KMail, the KDE mail client.
@@ -87,8 +87,8 @@ SimpleStringListEditor::SimpleStringListEditor( TQWidget * parent,
mAddButton = new TQPushButton( addLabel, this );
mAddButton->setAutoDefault( false );
vlay->addWidget( mAddButton );
- connect( mAddButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotAdd()) );
+ connect( mAddButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotAdd()) );
}
if ( buttons & Remove ) {
@@ -99,8 +99,8 @@ SimpleStringListEditor::SimpleStringListEditor( TQWidget * parent,
mRemoveButton->setAutoDefault( false );
mRemoveButton->setEnabled( false ); // no selection yet
vlay->addWidget( mRemoveButton );
- connect( mRemoveButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotRemove()) );
+ connect( mRemoveButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotRemove()) );
}
if ( buttons & Modify ) {
@@ -111,10 +111,10 @@ SimpleStringListEditor::SimpleStringListEditor( TQWidget * parent,
mModifyButton->setAutoDefault( false );
mModifyButton->setEnabled( false ); // no selection yet
vlay->addWidget( mModifyButton );
- connect( mModifyButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotModify()) );
- connect( mListBox, TQT_SIGNAL( doubleClicked( TQListBoxItem* ) ),
- this, TQT_SLOT( slotModify() ) );
+ connect( mModifyButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotModify()) );
+ connect( mListBox, TQ_SIGNAL( doubleClicked( TQListBoxItem* ) ),
+ this, TQ_SLOT( slotModify() ) );
}
if ( buttons & Up ) {
@@ -126,8 +126,8 @@ SimpleStringListEditor::SimpleStringListEditor( TQWidget * parent,
mUpButton->setAutoDefault( false );
mUpButton->setEnabled( false ); // no selection yet
vlay->addWidget( mUpButton );
- connect( mUpButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotUp()) );
+ connect( mUpButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotUp()) );
}
if ( buttons & Down ) {
@@ -139,14 +139,14 @@ SimpleStringListEditor::SimpleStringListEditor( TQWidget * parent,
mDownButton->setAutoDefault( false );
mDownButton->setEnabled( false ); // no selection yet
vlay->addWidget( mDownButton );
- connect( mDownButton, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotDown()) );
+ connect( mDownButton, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotDown()) );
}
vlay->addStretch( 1 ); // spacer
- connect( mListBox, TQT_SIGNAL(selectionChanged()),
- this, TQT_SLOT(slotSelectionChanged()) );
+ connect( mListBox, TQ_SIGNAL(selectionChanged()),
+ this, TQ_SLOT(slotSelectionChanged()) );
}
void SimpleStringListEditor::setStringList( const TQStringList & strings ) {
diff --git a/kmail/simplestringlisteditor.h b/kmail/simplestringlisteditor.h
index cb28d57b..a86afeff 100644
--- a/kmail/simplestringlisteditor.h
+++ b/kmail/simplestringlisteditor.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
simplestringlisteditor.h
This file is part of KMail, the KDE mail client.
@@ -46,7 +46,7 @@ class TQPushButton;
//
class SimpleStringListEditor : public TQWidget {
- Q_OBJECT
+ TQ_OBJECT
public:
enum ButtonCode {
diff --git a/kmail/snippetdlg.cpp b/kmail/snippetdlg.cpp
index 60bf689e..088b39c8 100644
--- a/kmail/snippetdlg.cpp
+++ b/kmail/snippetdlg.cpp
@@ -40,14 +40,14 @@ SnippetDlg::SnippetDlg( TDEActionCollection* ac, TQWidget* parent, const char* n
textLabel3 = new TQLabel( this, "textLabel3" );
keyButton = new KKeyButton( this );
- connect( keyButton, TQT_SIGNAL( capturedShortcut( const TDEShortcut& ) ),
- this, TQT_SLOT( slotCapturedShortcut( const TDEShortcut& ) ) );
+ connect( keyButton, TQ_SIGNAL( capturedShortcut( const TDEShortcut& ) ),
+ this, TQ_SLOT( slotCapturedShortcut( const TDEShortcut& ) ) );
btnAdd->setEnabled( false );
- connect( snippetName, TQT_SIGNAL(textChanged(const TQString &)),
- this, TQT_SLOT(slotTextChanged(const TQString &)) );
- connect( snippetName, TQT_SIGNAL(returnPressed()),
- this, TQT_SLOT(slotReturnPressed()) );
+ connect( snippetName, TQ_SIGNAL(textChanged(const TQString &)),
+ this, TQ_SLOT(slotTextChanged(const TQString &)) );
+ connect( snippetName, TQ_SIGNAL(returnPressed()),
+ this, TQ_SLOT(slotReturnPressed()) );
layout3->addWidget( textLabel3, 7, 0 );
layout3->addWidget( keyButton, 7, 1 );
diff --git a/kmail/snippetdlg.h b/kmail/snippetdlg.h
index c46e2399..3717cc86 100644
--- a/kmail/snippetdlg.h
+++ b/kmail/snippetdlg.h
@@ -18,7 +18,7 @@ class TDEShortcut;
class SnippetDlg : public SnippetDlgBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/snippetitem.h b/kmail/snippetitem.h
index cbc3c4eb..927d817c 100644
--- a/kmail/snippetitem.h
+++ b/kmail/snippetitem.h
@@ -32,7 +32,7 @@ It also holds the needed data for one snippet.
class SnippetItem : public TQObject, public TQListViewItem {
friend class SnippetGroup;
- Q_OBJECT
+ TQ_OBJECT
public:
SnippetItem(TQListViewItem * parent, TQString name, TQString text);
diff --git a/kmail/snippetsettings.h b/kmail/snippetsettings.h
index 706de5af..23f628ed 100644
--- a/kmail/snippetsettings.h
+++ b/kmail/snippetsettings.h
@@ -28,7 +28,7 @@ same named .ui file
*/
class SnippetSettings : public SnippetSettingsBase
{
-Q_OBJECT
+TQ_OBJECT
public:
SnippetSettings(TQWidget *parent = 0, const char *name = 0);
diff --git a/kmail/snippetsettingsbase.ui b/kmail/snippetsettingsbase.ui
index 14be08e9..2034ebe4 100644
--- a/kmail/snippetsettingsbase.ui
+++ b/kmail/snippetsettingsbase.ui
@@ -92,9 +92,6 @@
<property name="text">
<string>Single dialog for each variable within a snippet</string>
</property>
- <property name="accel">
- <string></string>
- </property>
<property name="checked">
<bool>true</bool>
</property>
@@ -109,9 +106,6 @@
<property name="text">
<string>One dialog for all variables within a snippet</string>
</property>
- <property name="accel">
- <string></string>
- </property>
<property name="checked">
<bool>false</bool>
</property>
diff --git a/kmail/snippetwidget.cpp b/kmail/snippetwidget.cpp
index e16b4884..c0851121 100644
--- a/kmail/snippetwidget.cpp
+++ b/kmail/snippetwidget.cpp
@@ -62,22 +62,22 @@ SnippetWidget::SnippetWidget(KMEdit* editor, TDEActionCollection* actionCollecti
setRootIsDecorated(true);
//connect the signals
- connect( this, TQT_SIGNAL( contextMenuRequested ( TQListViewItem *, const TQPoint & , int ) ),
- this, TQT_SLOT( showPopupMenu(TQListViewItem *, const TQPoint & , int ) ) );
+ connect( this, TQ_SIGNAL( contextMenuRequested ( TQListViewItem *, const TQPoint & , int ) ),
+ this, TQ_SLOT( showPopupMenu(TQListViewItem *, const TQPoint & , int ) ) );
- connect( this, TQT_SIGNAL( doubleClicked (TQListViewItem *) ),
- this, TQT_SLOT( slotEdit( TQListViewItem *) ) );
- connect( this, TQT_SIGNAL( returnPressed (TQListViewItem *) ),
- this, TQT_SLOT( slotExecuted( TQListViewItem *) ) );
+ connect( this, TQ_SIGNAL( doubleClicked (TQListViewItem *) ),
+ this, TQ_SLOT( slotEdit( TQListViewItem *) ) );
+ connect( this, TQ_SIGNAL( returnPressed (TQListViewItem *) ),
+ this, TQ_SLOT( slotExecuted( TQListViewItem *) ) );
- connect( this, TQT_SIGNAL( dropped(TQDropEvent *, TQListViewItem *) ),
- this, TQT_SLOT( slotDropped(TQDropEvent *, TQListViewItem *) ) );
+ connect( this, TQ_SIGNAL( dropped(TQDropEvent *, TQListViewItem *) ),
+ this, TQ_SLOT( slotDropped(TQDropEvent *, TQListViewItem *) ) );
- connect( editor, TQT_SIGNAL( insertSnippet() ), this, TQT_SLOT( slotExecute() ));
+ connect( editor, TQ_SIGNAL( insertSnippet() ), this, TQ_SLOT( slotExecute() ));
_cfg = 0;
- TQTimer::singleShot(0, this, TQT_SLOT(initConfig()));
+ TQTimer::singleShot(0, this, TQ_SLOT(initConfig()));
}
SnippetWidget::~SnippetWidget()
@@ -149,11 +149,11 @@ SnippetItem* SnippetWidget::makeItem( SnippetItem* parent, const TQString& name,
const TQString normalizedName = TQString(actionName).replace(" ", "_");
if ( !mActionCollection->action(normalizedName.utf8().data() ) ) {
TDEAction * action = new TDEAction( actionName, shortcut, item,
- TQT_SLOT( slotExecute() ), mActionCollection,
+ TQ_SLOT( slotExecute() ), mActionCollection,
normalizedName.utf8() );
item->setAction(action);
- connect( item, TQT_SIGNAL( execute( TQListViewItem* ) ),
- this, TQT_SLOT( slotExecuted( TQListViewItem* ) ) );
+ connect( item, TQ_SIGNAL( execute( TQListViewItem* ) ),
+ this, TQ_SLOT( slotExecuted( TQListViewItem* ) ) );
}
return item;
}
@@ -542,18 +542,18 @@ void SnippetWidget::showPopupMenu( TQListViewItem * item, const TQPoint & p, int
if ( item ) {
popup.insertTitle( selectedItem->getName() );
if (dynamic_cast<SnippetGroup*>(item)) {
- popup.insertItem( i18n("Edit &group..."), this, TQT_SLOT( slotEditGroup() ) );
+ popup.insertItem( i18n("Edit &group..."), this, TQ_SLOT( slotEditGroup() ) );
} else {
- popup.insertItem( SmallIconSet("edit-paste"), i18n("&Paste"), this, TQT_SLOT( slotExecuted() ) );
- popup.insertItem( SmallIconSet("edit"), i18n("&Edit..."), this, TQT_SLOT( slotEdit() ) );
+ popup.insertItem( SmallIconSet("edit-paste"), i18n("&Paste"), this, TQ_SLOT( slotExecuted() ) );
+ popup.insertItem( SmallIconSet("edit"), i18n("&Edit..."), this, TQ_SLOT( slotEdit() ) );
}
- popup.insertItem( SmallIconSet("edit-delete"), i18n("&Remove"), this, TQT_SLOT( slotRemove() ) );
+ popup.insertItem( SmallIconSet("edit-delete"), i18n("&Remove"), this, TQ_SLOT( slotRemove() ) );
popup.insertSeparator();
} else {
popup.insertTitle(i18n("Text Snippets"));
}
- popup.insertItem( i18n("&Add Snippet..."), this, TQT_SLOT( slotAdd() ) );
- popup.insertItem( i18n("Add G&roup..."), this, TQT_SLOT( slotAddGroup() ) );
+ popup.insertItem( i18n("&Add Snippet..."), this, TQ_SLOT( slotAdd() ) );
+ popup.insertItem( i18n("Add G&roup..."), this, TQ_SLOT( slotAddGroup() ) );
popup.exec(p);
}
@@ -722,8 +722,8 @@ bool SnippetWidget::showMultiVarDialog(TQMap<TQString, TQString> * map, TQMap<TQ
// --END-- building a dynamic dialog
//connect the buttons to the TQDialog default slots
- connect(btn1, TQT_SIGNAL(clicked()), &dlg, TQT_SLOT(reject()) );
- connect(btn2, TQT_SIGNAL(clicked()), &dlg, TQT_SLOT(accept()) );
+ connect(btn1, TQ_SIGNAL(clicked()), &dlg, TQ_SLOT(reject()) );
+ connect(btn2, TQ_SIGNAL(clicked()), &dlg, TQ_SLOT(accept()) );
//prepare to execute the dialog
bool bReturn = false;
@@ -834,8 +834,8 @@ TQString SnippetWidget::showSingleVarDialog(TQString var, TQMap<TQString, TQStri
// --END-- building a dynamic dialog
//connect the buttons to the TQDialog default slots
- connect(btn1, TQT_SIGNAL(clicked()), &dlg, TQT_SLOT(reject()) );
- connect(btn2, TQT_SIGNAL(clicked()), &dlg, TQT_SLOT(accept()) );
+ connect(btn1, TQ_SIGNAL(clicked()), &dlg, TQ_SLOT(reject()) );
+ connect(btn2, TQ_SIGNAL(clicked()), &dlg, TQ_SLOT(accept()) );
//execute the dialog
TQString strReturn = "";
diff --git a/kmail/snippetwidget.h b/kmail/snippetwidget.h
index 90ee8895..ea9f5d24 100644
--- a/kmail/snippetwidget.h
+++ b/kmail/snippetwidget.h
@@ -44,7 +44,7 @@ tooltips which contains the text of the snippet
*/
class SnippetWidget : public TDEListView, public TQToolTip
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/spamheaderanalyzer.cpp b/kmail/spamheaderanalyzer.cpp
index 427aa4d1..debc64b0 100644
--- a/kmail/spamheaderanalyzer.cpp
+++ b/kmail/spamheaderanalyzer.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
spamheaderanalyzer.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/spamheaderanalyzer.h b/kmail/spamheaderanalyzer.h
index ddb9bf1b..391edbcf 100644
--- a/kmail/spamheaderanalyzer.h
+++ b/kmail/spamheaderanalyzer.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
spamheaderanalyzer.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/stl_util.h b/kmail/stl_util.h
index 8a273895..f72512c5 100644
--- a/kmail/stl_util.h
+++ b/kmail/stl_util.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
stl_util.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/subscriptiondialog.cpp b/kmail/subscriptiondialog.cpp
index cf4572b2..8687096c 100644
--- a/kmail/subscriptiondialog.cpp
+++ b/kmail/subscriptiondialog.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
subscriptiondialog.cpp
This file is part of KMail, the KDE mail client.
@@ -55,14 +55,14 @@ SubscriptionDialogBase::SubscriptionDialogBase( TQWidget *parent, const TQString
hideNewOnlyCheckbox();
// ok-button
- connect(this, TQT_SIGNAL(okClicked()), TQT_SLOT(slotSave()));
+ connect(this, TQ_SIGNAL(okClicked()), TQ_SLOT(slotSave()));
// reload-list button
- connect(this, TQT_SIGNAL(user1Clicked()), TQT_SLOT(slotLoadFolders()));
+ connect(this, TQ_SIGNAL(user1Clicked()), TQ_SLOT(slotLoadFolders()));
// get the folders, delayed execution style, otherwise there's bother
// with virtuals from ctors and whatnot
- TQTimer::singleShot(0, this, TQT_SLOT(slotLoadFolders()));
+ TQTimer::singleShot(0, this, TQ_SLOT(slotLoadFolders()));
}
//------------------------------------------------------------------------------
@@ -234,8 +234,8 @@ void SubscriptionDialogBase::slotLoadFolders()
{
// We'll wait for the connectionResult signal from the account.
kdDebug(5006) << "SubscriptionDialog - waiting for connection" << endl;
- connect( ai, TQT_SIGNAL( connectionResult(int, const TQString&) ),
- this, TQT_SLOT( slotConnectionResult(int, const TQString&) ) );
+ connect( ai, TQ_SIGNAL( connectionResult(int, const TQString&) ),
+ this, TQ_SLOT( slotConnectionResult(int, const TQString&) ) );
return;
}
// clear the views
@@ -286,9 +286,9 @@ void SubscriptionDialogBase::processNext()
// kdDebug(5006) << "process " << mCurrentNamespace << ",subscribed=" << mSubscribed << endl;
ListJob* job = new ListJob( ai, type, 0, ai->addPathToNamespace( mCurrentNamespace ), completeListing );
- connect( job, TQT_SIGNAL(receivedFolders(const TQStringList&, const TQStringList&,
+ connect( job, TQ_SIGNAL(receivedFolders(const TQStringList&, const TQStringList&,
const TQStringList&, const TQStringList&, const ImapAccountBase::jobData&)),
- this, TQT_SLOT(slotListDirectory(const TQStringList&, const TQStringList&,
+ this, TQ_SLOT(slotListDirectory(const TQStringList&, const TQStringList&,
const TQStringList&, const TQStringList&, const ImapAccountBase::jobData&)));
job->start();
}
@@ -418,7 +418,7 @@ void SubscriptionDialog::processItems()
if (done == 1000)
{
emit listChanged();
- TQTimer::singleShot(0, this, TQT_SLOT(processItems()));
+ TQTimer::singleShot(0, this, TQ_SLOT(processItems()));
return;
}
++mCount;
diff --git a/kmail/subscriptiondialog.h b/kmail/subscriptiondialog.h
index 30a06d9f..dd84faec 100644
--- a/kmail/subscriptiondialog.h
+++ b/kmail/subscriptiondialog.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
subscriptiondialog.h
This file is part of KMail, the KDE mail client.
@@ -46,7 +46,7 @@ namespace KMail {
// (More Effective C++, Item 33)
class SubscriptionDialogBase : public KSubscription
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -127,7 +127,7 @@ namespace KMail {
class SubscriptionDialog : public SubscriptionDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/tdehtmlparthtmlwriter.cpp b/kmail/tdehtmlparthtmlwriter.cpp
index 5450509e..f75e17bf 100644
--- a/kmail/tdehtmlparthtmlwriter.cpp
+++ b/kmail/tdehtmlparthtmlwriter.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
tdehtmlparthtmlwriter.cpp
This file is part of KMail, the KDE mail client.
@@ -52,7 +52,7 @@ namespace KMail {
mHtmlPart( part ), mHtmlTimer( 0, "mHtmlTimer" ), mState( Ended )
{
assert( part );
- connect( &mHtmlTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotWriteNextHtmlChunk()) );
+ connect( &mHtmlTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotWriteNextHtmlChunk()) );
}
KHtmlPartHtmlWriter::~KHtmlPartHtmlWriter() {
diff --git a/kmail/tdehtmlparthtmlwriter.h b/kmail/tdehtmlparthtmlwriter.h
index 5d9af2e1..dfbddea2 100644
--- a/kmail/tdehtmlparthtmlwriter.h
+++ b/kmail/tdehtmlparthtmlwriter.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
tdehtmlparthtmlwriter.h
This file is part of KMail, the KDE mail client.
@@ -44,7 +44,7 @@ class TDEHTMLPart;
namespace KMail {
class KHtmlPartHtmlWriter : public TQObject, public HtmlWriter {
- Q_OBJECT
+ TQ_OBJECT
public:
// Key is Content-Id, value is URL
diff --git a/kmail/tdelistboxdialog.cpp b/kmail/tdelistboxdialog.cpp
index 89fd0093..d6aabce7 100644
--- a/kmail/tdelistboxdialog.cpp
+++ b/kmail/tdelistboxdialog.cpp
@@ -39,10 +39,10 @@ TDEListBoxDialog::TDEListBoxDialog( TQString& _selectedString,
commentBelowLA->hide();
// signals and slots connections
- connect( entriesLB, TQT_SIGNAL( highlighted( const TQString& ) ),
- this, TQT_SLOT( highlighted( const TQString& ) ) );
- connect( entriesLB, TQT_SIGNAL( selected(int) ),
- TQT_SLOT( slotOk() ) );
+ connect( entriesLB, TQ_SIGNAL( highlighted( const TQString& ) ),
+ this, TQ_SLOT( highlighted( const TQString& ) ) );
+ connect( entriesLB, TQ_SIGNAL( selected(int) ),
+ TQ_SLOT( slotOk() ) );
// buddies
labelAboveLA->setBuddy( entriesLB );
}
diff --git a/kmail/tdelistboxdialog.h b/kmail/tdelistboxdialog.h
index a9e949ac..5a7e47f9 100644
--- a/kmail/tdelistboxdialog.h
+++ b/kmail/tdelistboxdialog.h
@@ -8,7 +8,7 @@ class TQListBox;
class TDEListBoxDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/tdelistviewindexedsearchline.h b/kmail/tdelistviewindexedsearchline.h
index 73d5d6f3..b1d49457 100644
--- a/kmail/tdelistviewindexedsearchline.h
+++ b/kmail/tdelistviewindexedsearchline.h
@@ -48,7 +48,7 @@ class TDEListViewSearchLine;
class TDEUI_EXPORT TDEListViewIndexedSearchLine: public KMail::HeaderListQuickSearch
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/teehtmlwriter.cpp b/kmail/teehtmlwriter.cpp
index b162059e..339eea28 100644
--- a/kmail/teehtmlwriter.cpp
+++ b/kmail/teehtmlwriter.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
teehtmlwriter.cpp
This file is part of KMail, the KDE mail client.
diff --git a/kmail/teehtmlwriter.h b/kmail/teehtmlwriter.h
index a55fd589..2aaa20d5 100644
--- a/kmail/teehtmlwriter.h
+++ b/kmail/teehtmlwriter.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
teehtmlwriter.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/templateparser.cpp b/kmail/templateparser.cpp
index f94be954..9c615791 100644
--- a/kmail/templateparser.cpp
+++ b/kmail/templateparser.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* This file: Copyright (C) 2006 Dmitry Morozhnikov <dmiceman@mail.ru>
*
@@ -1125,12 +1125,12 @@ TQString TemplateParser::pipe( const TQString &cmd, const TQString &buf )
proc << KShell::splitArgs( cmd, KShell::TildeExpand );
proc.setUseShell( true );
- connect( &proc, TQT_SIGNAL( receivedStdout( TDEProcess *, char *, int ) ),
- this, TQT_SLOT( onReceivedStdout( TDEProcess *, char *, int ) ) );
- connect( &proc, TQT_SIGNAL( receivedStderr( TDEProcess *, char *, int ) ),
- this, TQT_SLOT( onReceivedStderr( TDEProcess *, char *, int ) ) );
- connect( &proc, TQT_SIGNAL( wroteStdin( TDEProcess * ) ),
- this, TQT_SLOT( onWroteStdin( TDEProcess * ) ) );
+ connect( &proc, TQ_SIGNAL( receivedStdout( TDEProcess *, char *, int ) ),
+ this, TQ_SLOT( onReceivedStdout( TDEProcess *, char *, int ) ) );
+ connect( &proc, TQ_SIGNAL( receivedStderr( TDEProcess *, char *, int ) ),
+ this, TQ_SLOT( onReceivedStderr( TDEProcess *, char *, int ) ) );
+ connect( &proc, TQ_SIGNAL( wroteStdin( TDEProcess * ) ),
+ this, TQ_SLOT( onWroteStdin( TDEProcess * ) ) );
if ( proc.start( TDEProcess::NotifyOnExit, TDEProcess::All ) ) {
diff --git a/kmail/templateparser.h b/kmail/templateparser.h
index c7551c0f..ae5560ec 100644
--- a/kmail/templateparser.h
+++ b/kmail/templateparser.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* This file: Copyright (C) 2006 Dmitry Morozhnikov <dmiceman@mail.ru>
*
@@ -53,7 +53,7 @@ class TDEProcess;
*/
class TemplateParser : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/templatesconfiguration.cpp b/kmail/templatesconfiguration.cpp
index 9a90ca5a..3dc2d189 100644
--- a/kmail/templatesconfiguration.cpp
+++ b/kmail/templatesconfiguration.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* This file: Copyright (C) 2006 Dmitry Morozhnikov
*
@@ -50,19 +50,19 @@ TemplatesConfiguration::TemplatesConfiguration( TQWidget *parent, const char *na
setSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Expanding );
sizeHint();
- connect( textEdit_new, TQT_SIGNAL( textChanged() ),
- this, TQT_SLOT( slotTextChanged( void ) ) );
- connect( textEdit_reply, TQT_SIGNAL( textChanged() ),
- this, TQT_SLOT( slotTextChanged( void ) ) );
- connect( textEdit_reply_all, TQT_SIGNAL( textChanged() ),
- this, TQT_SLOT( slotTextChanged( void ) ) );
- connect( textEdit_forward, TQT_SIGNAL( textChanged() ),
- this, TQT_SLOT( slotTextChanged( void ) ) );
- connect( lineEdit_quote, TQT_SIGNAL( textChanged( const TQString & ) ),
- this, TQT_SLOT( slotTextChanged( void ) ) );
-
- connect( mInsertCommand, TQT_SIGNAL( insertCommand(TQString, int) ),
- this, TQT_SLOT( slotInsertCommand(TQString, int) ) );
+ connect( textEdit_new, TQ_SIGNAL( textChanged() ),
+ this, TQ_SLOT( slotTextChanged( void ) ) );
+ connect( textEdit_reply, TQ_SIGNAL( textChanged() ),
+ this, TQ_SLOT( slotTextChanged( void ) ) );
+ connect( textEdit_reply_all, TQ_SIGNAL( textChanged() ),
+ this, TQ_SLOT( slotTextChanged( void ) ) );
+ connect( textEdit_forward, TQ_SIGNAL( textChanged() ),
+ this, TQ_SLOT( slotTextChanged( void ) ) );
+ connect( lineEdit_quote, TQ_SIGNAL( textChanged( const TQString & ) ),
+ this, TQ_SLOT( slotTextChanged( void ) ) );
+
+ connect( mInsertCommand, TQ_SIGNAL( insertCommand(TQString, int) ),
+ this, TQ_SLOT( slotInsertCommand(TQString, int) ) );
TQString help;
if ( TQString( name ) == "folder-templates" ) {
diff --git a/kmail/templatesconfiguration.h b/kmail/templatesconfiguration.h
index a0196c8e..0fd8c6ef 100644
--- a/kmail/templatesconfiguration.h
+++ b/kmail/templatesconfiguration.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* This file: Copyright (C) 2006 Dmitry Morozhnikov
*
@@ -28,7 +28,7 @@
class TemplatesConfiguration : public TemplatesConfigurationBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/templatesconfiguration_base.ui b/kmail/templatesconfiguration_base.ui
index 683c7e86..1023dea7 100644
--- a/kmail/templatesconfiguration_base.ui
+++ b/kmail/templatesconfiguration_base.ui
@@ -329,8 +329,6 @@
<include location="global" impldecl="in implementation">kactivelabel.h</include>
<include location="global" impldecl="in implementation">klineedit.h</include>
<include location="global" impldecl="in implementation">kpushbutton.h</include>
+ <include location="global" impldecl="in implementation">templatesinsertcommand.h</include>
</includes>
-<includehints>
- <includehint>templatesinsertcommand.h</includehint>
-</includehints>
</UI>
diff --git a/kmail/templatesinsertcommand.cpp b/kmail/templatesinsertcommand.cpp
index b89fd2a1..8817711c 100644
--- a/kmail/templatesinsertcommand.cpp
+++ b/kmail/templatesinsertcommand.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* This file: Copyright (C) 2006 Dmitry Morozhnikov <dmiceman@mail.ru>
*
@@ -35,127 +35,127 @@ TemplatesInsertCommand::TemplatesInsertCommand( TQWidget *parent,
: TQPushButton( parent, name )
{
setText( i18n( "&Insert Command..." ) );
- connect( this, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotClicked() ) );
+ connect( this, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotClicked() ) );
TDEAction *action;
TDEActionMenu *menu;
- TQSignalMapper *mapper = new TQSignalMapper( TQT_TQOBJECT(this) );
- connect( mapper, TQT_SIGNAL( mapped(int) ),
- this, TQT_SLOT( slotMapped(int) ) );
+ TQSignalMapper *mapper = new TQSignalMapper( this );
+ connect( mapper, TQ_SIGNAL( mapped(int) ),
+ this, TQ_SLOT( slotMapped(int) ) );
- mMenu = new TDEActionMenu( i18n( "Insert Command..." ), TQT_TQOBJECT(this) );
+ mMenu = new TDEActionMenu( i18n( "Insert Command..." ), this );
// ******************************************************
menu = new TDEActionMenu( i18n( "Original Message" ), mMenu );
mMenu->insert( menu );
action = new TDEAction( i18n("Quoted Message"),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CQuote );
menu->insert( action );
action = new TDEAction( i18n("Message Text as Is"),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CText );
menu->insert( action );
action = new TDEAction( i18n("Message Id"),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COMsgId );
menu->insert( action );
action = new TDEAction( i18n("Date"),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CODate );
menu->insert( action );
action = new TDEAction( i18n("Date in Short Format"),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CODateShort );
menu->insert( action );
action = new TDEAction( i18n("Date in C Locale"),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CODateEn );
menu->insert( action );
action = new TDEAction( i18n("Day of Week"),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CODow );
menu->insert( action );
action = new TDEAction( i18n("Time"),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COTime );
menu->insert( action );
action = new TDEAction( i18n("Time in Long Format"),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COTimeLong );
menu->insert( action );
action = new TDEAction( i18n("Time in C Locale"),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COTimeLongEn );
menu->insert( action );
action = new TDEAction( i18n("To Field Address"),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COToAddr );
menu->insert( action );
action = new TDEAction( i18n("To Field Name"),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COToName );
menu->insert( action );
action = new TDEAction( i18n("To Field First Name"),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COToFName );
menu->insert( action );
action = new TDEAction( i18n("To Field Last Name"),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COToLName );
menu->insert( action );
action = new TDEAction( i18n( "CC Field Address" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COCCAddr );
menu->insert( action );
action = new TDEAction( i18n( "CC Field Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COCCName );
menu->insert( action );
action = new TDEAction( i18n( "CC Field First Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COCCFName );
menu->insert( action );
action = new TDEAction( i18n( "CC Field Last Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COCCLName );
menu->insert( action );
action = new TDEAction( i18n( "From Field Address" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COFromAddr );
menu->insert( action );
action = new TDEAction( i18n( "From Field Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COFromName );
menu->insert( action );
action = new TDEAction( i18n( "From Field First Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COFromFName );
menu->insert( action );
action = new TDEAction( i18n( "From Field Last Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COFromLName );
menu->insert( action );
action = new TDEAction( i18n( "Addresses of all original recipients" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COAddresseesAddr );
action = new TDEAction( i18n( "Subject" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COFullSubject );
menu->insert( action );
action = new TDEAction( i18n( "Quoted Headers" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CTQHeaders );
menu->insert( action );
action = new TDEAction( i18n( "Headers as Is" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CHeaders );
menu->insert( action );
action = new TDEAction( i18n( "Header Content" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, COHeader );
menu->insert( action );
@@ -164,91 +164,91 @@ TemplatesInsertCommand::TemplatesInsertCommand( TQWidget *parent,
mMenu->insert( menu );
action = new TDEAction( i18n( "Message Id" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CMsgId );
menu->insert( action );
action = new TDEAction( i18n( "Date" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CDate );
menu->insert( action );
action = new TDEAction( i18n( "Date in Short Format" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CDateShort );
menu->insert( action );
action = new TDEAction( i18n( "Date in C Locale" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CDateEn );
menu->insert( action );
action = new TDEAction( i18n( "Day of Week" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CDow );
menu->insert( action );
action = new TDEAction( i18n( "Time" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CTime );
menu->insert( action );
action = new TDEAction( i18n( "Time in Long Format" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CTimeLong );
menu->insert( action );
action = new TDEAction( i18n( "Time in C Locale" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CTimeLongEn );
menu->insert( action );
action = new TDEAction( i18n( "To Field Address" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CToAddr );
menu->insert( action );
action = new TDEAction( i18n( "To Field Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CToName );
menu->insert( action );
action = new TDEAction( i18n( "To Field First Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CToFName );
menu->insert( action );
action = new TDEAction( i18n( "To Field Last Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CToLName );
menu->insert( action );
action = new TDEAction( i18n( "CC Field Address" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CCCAddr );
menu->insert( action );
action = new TDEAction( i18n( "CC Field Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CCCName );
menu->insert( action );
action = new TDEAction( i18n( "CC Field First Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CCCFName );
menu->insert( action );
action = new TDEAction( i18n( "CC Field Last Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CCCLName );
menu->insert( action );
action = new TDEAction( i18n( "From Field Address" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CFromAddr );
menu->insert( action );
action = new TDEAction( i18n( "From Field Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CFromName );
menu->insert( action );
action = new TDEAction( i18n( "From Field First Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CFromFName );
menu->insert( action );
action = new TDEAction( i18n( "From Field Last Name" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CFromLName );
menu->insert( action );
action = new TDEAction( i18n( "Subject" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CFullSubject );
menu->insert( action );
action = new TDEAction( i18n( "Header Content" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CHeader );
menu->insert( action );
@@ -257,27 +257,27 @@ TemplatesInsertCommand::TemplatesInsertCommand( TQWidget *parent,
mMenu->insert( menu );
action = new TDEAction( i18n( "Insert Result of Command" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CSystem );
menu->insert( action );
action = new TDEAction( i18n( "Pipe Original Message Body and Insert Result as Quoted Text" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CQuotePipe );
menu->insert( action );
action = new TDEAction( i18n( "Pipe Original Message Body and Insert Result as Is" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CTextPipe );
menu->insert( action );
action = new TDEAction( i18n( "Pipe Original Message with Headers and Insert Result as Is" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CMsgPipe );
menu->insert( action );
action = new TDEAction( i18n( "Pipe Current Message Body and Insert Result as Is" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CBodyPipe );
menu->insert( action );
action = new TDEAction( i18n( "Pipe Current Message Body and Replace with Result" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CClearPipe );
menu->insert( action );
@@ -286,35 +286,35 @@ TemplatesInsertCommand::TemplatesInsertCommand( TQWidget *parent,
mMenu->insert( menu );
action = new TDEAction( i18n( "Set Cursor Position" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CCursor );
menu->insert( action );
action = new TDEAction( i18n( "Insert File Content" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CInsert );
menu->insert( action );
action = new TDEAction( i18n( "DNL" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CDnl );
menu->insert( action );
action = new TDEAction( i18n( "Template Comment" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CRem );
menu->insert( action );
action = new TDEAction( i18n( "No Operation" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CNop );
menu->insert( action );
action = new TDEAction( i18n( "Clear Generated Message" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CClear );
menu->insert( action );
action = new TDEAction( i18n( "Turn Debug On" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CDebug );
menu->insert( action );
action = new TDEAction( i18n( "Turn Debug Off" ),
- 0, mapper, TQT_SLOT( map() ), menu );
+ 0, mapper, TQ_SLOT( map() ), menu );
mapper->setMapping( action, CDebugOff );
menu->insert( action );
}
diff --git a/kmail/templatesinsertcommand.h b/kmail/templatesinsertcommand.h
index 437ad8bd..257064b8 100644
--- a/kmail/templatesinsertcommand.h
+++ b/kmail/templatesinsertcommand.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* kmail: KDE mail client
* This file: Copyright (C) 2006 Dmitry Morozhnikov <dmiceman@mail.ru>
*
@@ -29,7 +29,7 @@ class TDEActionMenu;
class TemplatesInsertCommand : public TQPushButton
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/tests/messagedicttests.h b/kmail/tests/messagedicttests.h
index f60a3b2f..42bed1ab 100644
--- a/kmail/tests/messagedicttests.h
+++ b/kmail/tests/messagedicttests.h
@@ -13,7 +13,7 @@ class KMDict;
class MessageDictTester : public KUnitTest::SlotTester
{
- Q_OBJECT
+ TQ_OBJECT
public slots:
diff --git a/kmail/tests/mimelibtests.h b/kmail/tests/mimelibtests.h
index 8fd06124..0d66b967 100644
--- a/kmail/tests/mimelibtests.h
+++ b/kmail/tests/mimelibtests.h
@@ -25,7 +25,7 @@ class DwString;
class MimeLibTester : public KUnitTest::SlotTester
{
- Q_OBJECT
+ TQ_OBJECT
public slots:
diff --git a/kmail/tests/utiltests.h b/kmail/tests/utiltests.h
index 0bcbcdf1..a88a01e9 100644
--- a/kmail/tests/utiltests.h
+++ b/kmail/tests/utiltests.h
@@ -11,7 +11,7 @@
class UtilTester : public KUnitTest::SlotTester
{
- Q_OBJECT
+ TQ_OBJECT
public slots:
diff --git a/kmail/treebase.cpp b/kmail/treebase.cpp
index 1e23a007..97d43b5d 100644
--- a/kmail/treebase.cpp
+++ b/kmail/treebase.cpp
@@ -35,10 +35,10 @@ TreeBase::TreeBase( TQWidget *parent, KMFolderTree *folderTree,
Q_UNUSED( mustBeReadWrite );
kdDebug(5006) << k_funcinfo << endl;
- connect(this, TQT_SIGNAL(collapsed(TQListViewItem*)), TQT_SLOT(recolorRows()));
- connect(this, TQT_SIGNAL(expanded(TQListViewItem*)), TQT_SLOT(recolorRows()));
- connect( this, TQT_SIGNAL( contextMenuRequested( TQListViewItem*, const TQPoint &, int ) ),
- this, TQT_SLOT( slotContextMenuRequested( TQListViewItem*, const TQPoint & ) ) );
+ connect(this, TQ_SIGNAL(collapsed(TQListViewItem*)), TQ_SLOT(recolorRows()));
+ connect(this, TQ_SIGNAL(expanded(TQListViewItem*)), TQ_SLOT(recolorRows()));
+ connect( this, TQ_SIGNAL( contextMenuRequested( TQListViewItem*, const TQPoint &, int ) ),
+ this, TQ_SLOT( slotContextMenuRequested( TQListViewItem*, const TQPoint & ) ) );
}
@@ -97,7 +97,7 @@ void TreeBase::slotContextMenuRequested( TQListViewItem *lvi, const TQPoint &p
folderMenu->insertSeparator();
folderMenu->insertItem(SmallIconSet("folder-new"),
i18n("&New Subfolder..."), this,
- TQT_SLOT(addChildFolder()));
+ TQ_SLOT(addChildFolder()));
kmkernel->setContextMenuShown( true );
folderMenu->exec (p, 0);
kmkernel->setContextMenuShown( false );
diff --git a/kmail/treebase.h b/kmail/treebase.h
index 23b2bd3d..48a614df 100644
--- a/kmail/treebase.h
+++ b/kmail/treebase.h
@@ -32,7 +32,7 @@ class TreeItemBase;
class TreeBase : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
TreeBase( TQWidget * parent, KMFolderTree *folderTree,
diff --git a/kmail/twindowpositioner.h b/kmail/twindowpositioner.h
index 88fab3f8..6825ad38 100644
--- a/kmail/twindowpositioner.h
+++ b/kmail/twindowpositioner.h
@@ -27,7 +27,7 @@ class TQWindow;
class KWindowPositioner : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
enum Mode { Right, Bottom };
diff --git a/kmail/undostack.h b/kmail/undostack.h
index 1debbf10..6bb6c29a 100644
--- a/kmail/undostack.h
+++ b/kmail/undostack.h
@@ -43,7 +43,7 @@ public:
class UndoStack : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmail/urlhandlermanager.cpp b/kmail/urlhandlermanager.cpp
index c17c1859..dde2944e 100644
--- a/kmail/urlhandlermanager.cpp
+++ b/kmail/urlhandlermanager.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
urlhandlermanager.cpp
This file is part of KMail, the KDE mail client.
@@ -752,7 +752,7 @@ namespace {
namespace {
bool FallBackURLHandler::handleClick( const KURL & url, KMReaderWin * w ) const {
if ( w )
- w->emitUrlClicked( url, Qt::LeftButton );
+ w->emitUrlClicked( url, TQt::LeftButton );
return true;
}
diff --git a/kmail/urlhandlermanager.h b/kmail/urlhandlermanager.h
index 2e0959ed..191213b0 100644
--- a/kmail/urlhandlermanager.h
+++ b/kmail/urlhandlermanager.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
urlhandlermanager.h
This file is part of KMail, the KDE mail client.
diff --git a/kmail/vacation.cpp b/kmail/vacation.cpp
index 3066b559..7ad0728c 100644
--- a/kmail/vacation.cpp
+++ b/kmail/vacation.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
vacation.cpp
KMail, the KDE mail client.
@@ -436,8 +436,8 @@ namespace KMail {
if ( mUrl.isEmpty() ) // nothing to do...
return;
mSieveJob = SieveJob::get( mUrl, !checkOnly );
- connect( mSieveJob, TQT_SIGNAL(gotScript(KMail::SieveJob*,bool,const TQString&,bool)),
- TQT_SLOT(slotGetResult(KMail::SieveJob*,bool,const TQString&,bool)) );
+ connect( mSieveJob, TQ_SIGNAL(gotScript(KMail::SieveJob*,bool,const TQString&,bool)),
+ TQ_SLOT(slotGetResult(KMail::SieveJob*,bool,const TQString&,bool)) );
}
Vacation::~Vacation() {
@@ -645,9 +645,9 @@ namespace KMail {
mDialog->setDomainName( domainName );
mDialog->enableDomainAndSendForSpam( !GlobalSettings::allowOutOfOfficeUploadButNoSettings() );
- connect( mDialog, TQT_SIGNAL(okClicked()), TQT_SLOT(slotDialogOk()) );
- connect( mDialog, TQT_SIGNAL(cancelClicked()), TQT_SLOT(slotDialogCancel()) );
- connect( mDialog, TQT_SIGNAL(defaultClicked()), TQT_SLOT(slotDialogDefaults()) );
+ connect( mDialog, TQ_SIGNAL(okClicked()), TQ_SLOT(slotDialogOk()) );
+ connect( mDialog, TQ_SIGNAL(cancelClicked()), TQ_SLOT(slotDialogCancel()) );
+ connect( mDialog, TQ_SIGNAL(defaultClicked()), TQ_SLOT(slotDialogDefaults()) );
mDialog->show();
}
@@ -690,10 +690,10 @@ namespace KMail {
// and commit the dialog's settings to the server:
mSieveJob = SieveJob::put( mUrl, script, active, mWasActive );
- connect( mSieveJob, TQT_SIGNAL(gotScript(KMail::SieveJob*,bool,const TQString&,bool)),
+ connect( mSieveJob, TQ_SIGNAL(gotScript(KMail::SieveJob*,bool,const TQString&,bool)),
active
- ? TQT_SLOT(slotPutActiveResult(KMail::SieveJob*,bool))
- : TQT_SLOT(slotPutInactiveResult(KMail::SieveJob*,bool)) );
+ ? TQ_SLOT(slotPutActiveResult(KMail::SieveJob*,bool))
+ : TQ_SLOT(slotPutInactiveResult(KMail::SieveJob*,bool)) );
// destroy the dialog:
mDialog->delayedDestruct();
diff --git a/kmail/vacation.h b/kmail/vacation.h
index eac3bd9d..3581eff3 100644
--- a/kmail/vacation.h
+++ b/kmail/vacation.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
vacation.cpp
KMail, the KDE mail client.
@@ -36,7 +36,7 @@ namespace KMime {
namespace KMail {
class Vacation : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
Vacation( TQObject * parent=0, bool checkOnly = false, const char * name=0 );
diff --git a/kmail/vacationdialog.cpp b/kmail/vacationdialog.cpp
index 19229895..f02d4236 100644
--- a/kmail/vacationdialog.cpp
+++ b/kmail/vacationdialog.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
vacationdialog.cpp
KMail, the KDE mail client.
@@ -74,7 +74,7 @@ namespace KMail {
int defDayInterval = 7; //default day interval
mIntervalSpin = new KIntSpinBox( 1, 356, 1, defDayInterval, 10, plainPage(), "mIntervalSpin" );
mIntervalSpin->setSuffix( i18n(" day", " days", defDayInterval) );
- connect(mIntervalSpin, TQT_SIGNAL( valueChanged( int )), TQT_SLOT( slotIntervalSpinChanged( int ) ) );
+ connect(mIntervalSpin, TQ_SIGNAL( valueChanged( int )), TQ_SLOT( slotIntervalSpinChanged( int ) ) );
glay->addWidget( new TQLabel( mIntervalSpin, i18n("&Resend notification only after:"), plainPage() ), row, 0 );
glay->addWidget( mIntervalSpin, row, 1 );
@@ -96,11 +96,11 @@ namespace KMail {
mDomainCheck->setChecked( false );
mDomainEdit = new TQLineEdit( plainPage(), "mDomainEdit" );
mDomainEdit->setEnabled( false );
- mDomainEdit->setValidator( new TQRegExpValidator( TQRegExp( "[a-zA-Z0-9+-]+(?:\\.[a-zA-Z0-9+-]+)*" ), TQT_TQOBJECT(mDomainEdit) ) );
+ mDomainEdit->setValidator( new TQRegExpValidator( TQRegExp( "[a-zA-Z0-9+-]+(?:\\.[a-zA-Z0-9+-]+)*" ), mDomainEdit ) );
glay->addWidget( mDomainCheck, row, 0 );
glay->addWidget( mDomainEdit, row, 1 );
- connect( mDomainCheck, TQT_SIGNAL(toggled(bool)),
- mDomainEdit, TQT_SLOT(setEnabled(bool)) );
+ connect( mDomainCheck, TQ_SIGNAL(toggled(bool)),
+ mDomainEdit, TQ_SLOT(setEnabled(bool)) );
Q_ASSERT( row == rows - 1 );
}
diff --git a/kmail/vacationdialog.h b/kmail/vacationdialog.h
index d38c75d0..c97e164f 100644
--- a/kmail/vacationdialog.h
+++ b/kmail/vacationdialog.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
vacationdialog.h
KMail, the KDE mail client.
@@ -35,7 +35,7 @@ namespace KMime {
namespace KMail {
class VacationDialog : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
VacationDialog( const TQString & caption, TQWidget * parent=0,
diff --git a/kmail/vcardviewer.h b/kmail/vcardviewer.h
index abd88820..904bd479 100644
--- a/kmail/vcardviewer.h
+++ b/kmail/vcardviewer.h
@@ -36,7 +36,7 @@ namespace KMail {
class VCardViewer : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
#if defined(KABC_VCARD_ENCODING_FIX)
diff --git a/kmail/xfaceconfigurator.cpp b/kmail/xfaceconfigurator.cpp
index 593e86ed..bc77041a 100644
--- a/kmail/xfaceconfigurator.cpp
+++ b/kmail/xfaceconfigurator.cpp
@@ -126,17 +126,17 @@ namespace KMail {
TQWidgetStack * widgetStack = new TQWidgetStack( this );
widgetStack->setEnabled( false ); // since !mEnableCheck->isChecked()
vlay->addWidget( widgetStack, 1 );
- connect( mSourceCombo, TQT_SIGNAL(highlighted(int)),
- widgetStack, TQT_SLOT(raiseWidget(int)) );
- connect( mEnableCheck, TQT_SIGNAL(toggled(bool)),
- mSourceCombo, TQT_SLOT(setEnabled(bool)) );
- connect( mEnableCheck, TQT_SIGNAL(toggled(bool)),
- widgetStack, TQT_SLOT(setEnabled(bool)) );
- connect( mEnableCheck, TQT_SIGNAL(toggled(bool)),
- label, TQT_SLOT(setEnabled(bool)) );
+ connect( mSourceCombo, TQ_SIGNAL(highlighted(int)),
+ widgetStack, TQ_SLOT(raiseWidget(int)) );
+ connect( mEnableCheck, TQ_SIGNAL(toggled(bool)),
+ mSourceCombo, TQ_SLOT(setEnabled(bool)) );
+ connect( mEnableCheck, TQ_SIGNAL(toggled(bool)),
+ widgetStack, TQ_SLOT(setEnabled(bool)) );
+ connect( mEnableCheck, TQ_SIGNAL(toggled(bool)),
+ label, TQ_SLOT(setEnabled(bool)) );
// The focus might be still in the widget that is disabled
- connect( mEnableCheck, TQT_SIGNAL(clicked()),
- mEnableCheck, TQT_SLOT(setFocus()) );
+ connect( mEnableCheck, TQ_SIGNAL(clicked()),
+ mEnableCheck, TQ_SLOT(setFocus()) );
int pageno = 0;
// page 0: create X-Face from image file or address book entry
@@ -151,16 +151,16 @@ namespace KMail {
"A light background helps improve the result." ) );
mFromFileBtn->setAutoDefault( false );
page_vlay->addWidget( mFromFileBtn, 1 );
- connect( mFromFileBtn, TQT_SIGNAL(released()),
- this, TQT_SLOT(slotSelectFile()) );
+ connect( mFromFileBtn, TQ_SIGNAL(released()),
+ this, TQ_SLOT(slotSelectFile()) );
mFromAddrbkBtn = new TQPushButton( i18n("Set From Address Book"), page );
TQWhatsThis::add( mFromAddrbkBtn,
i18n( "You can use a scaled-down version of the picture "
"you have set in your address book entry." ) );
mFromAddrbkBtn->setAutoDefault( false );
page_vlay->addWidget( mFromAddrbkBtn, 1 );
- connect( mFromAddrbkBtn, TQT_SIGNAL(released()),
- this, TQT_SLOT(slotSelectFromAddressbook()) );
+ connect( mFromAddrbkBtn, TQ_SIGNAL(released()),
+ this, TQ_SLOT(slotSelectFromAddressbook()) );
label1 = new TQLabel( i18n("<qt>KMail can send a small (48x48 pixels), low-quality, "
"monochrome picture with every message. "
"For example, this could be a picture of you or a glyph. "
@@ -185,7 +185,7 @@ namespace KMail {
page_vlay->addWidget( label2 );
- connect(mTextEdit, TQT_SIGNAL(textChanged()), this, TQT_SLOT(slotUpdateXFace()));
+ connect(mTextEdit, TQ_SIGNAL(textChanged()), this, TQ_SLOT(slotUpdateXFace()));
}
XFaceConfigurator::~XFaceConfigurator() {
diff --git a/kmail/xfaceconfigurator.h b/kmail/xfaceconfigurator.h
index e6530714..2589400d 100644
--- a/kmail/xfaceconfigurator.h
+++ b/kmail/xfaceconfigurator.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
xfaceconfigurator.cpp
KMail, the KDE mail client.
@@ -30,7 +30,7 @@ class TQComboBox;
namespace KMail {
class XFaceConfigurator : public TQWidget {
- Q_OBJECT
+ TQ_OBJECT
public:
XFaceConfigurator( TQWidget * parent=0, const char * name=0 );
diff --git a/kmailcvt/CMakeL10n.txt b/kmailcvt/CMakeL10n.txt
index cf11083b..a5d59794 100644
--- a/kmailcvt/CMakeL10n.txt
+++ b/kmailcvt/CMakeL10n.txt
@@ -1,6 +1,3 @@
##### create translation templates ##############
-tde_l10n_create_template(
- CATALOG "kmailcvt"
- SOURCES "." "*.cxx" "*.hxx"
-)
+tde_l10n_create_template( "kmailcvt" )
diff --git a/kmailcvt/CMakeLists.txt b/kmailcvt/CMakeLists.txt
index 9a566690..ac96928a 100644
--- a/kmailcvt/CMakeLists.txt
+++ b/kmailcvt/CMakeLists.txt
@@ -38,12 +38,12 @@ install(
tde_add_executable( kmailcvt AUTOMOC
SOURCES
kimportpagedlg.ui kimportpage.cpp kselfilterpagedlg.ui
- kselfilterpage.cpp filters.cxx filter_oe.cxx kmailcvt.cpp main.cpp
- filter_pmail.cxx filter_plain.cxx filter_outlook.cxx filter_mbox.cxx
- filter_evolution.cxx filter_mailapp.cxx filter_evolution_v2.cxx
- filter_opera.cxx filter_thunderbird.cxx filter_kmail_maildir.cxx
- filter_sylpheed.cxx filter_thebat.cxx filter_lnotes.cxx
- filter_kmail_archive.cxx
+ kselfilterpage.cpp filters.cpp filter_oe.cpp kmailcvt.cpp main.cpp
+ filter_pmail.cpp filter_plain.cpp filter_outlook.cpp filter_mbox.cpp
+ filter_evolution.cpp filter_mailapp.cpp filter_evolution_v2.cpp
+ filter_opera.cpp filter_thunderbird.cpp filter_kmail_maildir.cpp
+ filter_sylpheed.cpp filter_thebat.cpp filter_lnotes.cpp
+ filter_kmail_archive.cpp
LINK tdeio-shared
DESTINATION ${BIN_INSTALL_DIR}
)
diff --git a/kmailcvt/Makefile.am b/kmailcvt/Makefile.am
index 84777d75..af5a8feb 100644
--- a/kmailcvt/Makefile.am
+++ b/kmailcvt/Makefile.am
@@ -1,32 +1,32 @@
bin_PROGRAMS = kmailcvt
kmailcvt_SOURCES = kimportpagedlg.ui kimportpage.cpp kselfilterpagedlg.ui \
- kselfilterpage.cpp filters.cxx filter_oe.cxx kmailcvt.cpp \
- main.cpp filter_pmail.cxx filter_plain.cxx filter_outlook.cxx \
- filter_mbox.cxx filter_evolution.cxx filter_mailapp.cxx \
- filter_evolution_v2.cxx filter_opera.cxx filter_thunderbird.cxx \
- filter_kmail_maildir.cxx filter_sylpheed.cxx filter_thebat.cxx \
- filter_lnotes.cxx filter_kmail_archive.cxx
+ kselfilterpage.cpp filters.cpp filter_oe.cpp kmailcvt.cpp \
+ main.cpp filter_pmail.cpp filter_plain.cpp filter_outlook.cpp \
+ filter_mbox.cpp filter_evolution.cpp filter_mailapp.cpp \
+ filter_evolution_v2.cpp filter_opera.cpp filter_thunderbird.cpp \
+ filter_kmail_maildir.cpp filter_sylpheed.cpp filter_thebat.cpp \
+ filter_lnotes.cpp filter_kmail_archive.cpp
kmailcvt_LDADD = $(LIB_TDEFILE)
EXTRA_DIST = main.cpp kmailcvt.cpp kimportpage.cpp kimportpage.h \
kselfilterpage.cpp kselfilterpage.h kmailcvt.h \
- kmailcvt.desktop filter_oe.cxx filter_oe.hxx \
- filters.cxx filters.hxx \
+ kmailcvt.desktop filter_oe.cpp filter_oe.h \
+ filters.cpp filters.h \
PAB_format.html sv9429424.gif \
- filter_pmail.cxx filter_pmail.hxx \
- filter_plain.cxx filter_plain.hxx \
- filter_mbox.cxx filter_mbox.hxx \
- filter_evolution.cxx filter_evolution.hxx \
- filter_mailapp.hxx filter_mailapp.cxx \
- filter_opera.hxx filter_opera.cxx \
- filter_evolution_v2.hxx filter_evolution_v2.cxx \
- filter_thunderbird.hxx filter_thunderbird.cxx \
- filter_kmail_maildir.hxx filter_kmail_maildir.cxx \
- filter_sylpheed.hxx filter_sylpheed.cxx \
- filter_thebat.hxx filter_thebat.cxx filter_lnotes.hxx filter_lnotes.cxx \
- filter_kmail_archive.cxx fitler_kmail_archive.hxx
+ filter_pmail.cpp filter_pmail.h \
+ filter_plain.cpp filter_plain.h \
+ filter_mbox.cpp filter_mbox.h \
+ filter_evolution.cpp filter_evolution.h \
+ filter_mailapp.h filter_mailapp.cpp \
+ filter_opera.h filter_opera.cpp \
+ filter_evolution_v2.h filter_evolution_v2.cpp \
+ filter_thunderbird.h filter_thunderbird.cpp \
+ filter_kmail_maildir.h filter_kmail_maildir.cpp \
+ filter_sylpheed.h filter_sylpheed.cpp \
+ filter_thebat.h filter_thebat.cpp filter_lnotes.h filter_lnotes.cpp \
+ filter_kmail_archive.cpp fitler_kmail_archive.h
install-data-local: uninstall.desktop
$(mkinstalldirs) $(DESTDIR)$(kde_appsdir)/Utilities
@@ -45,7 +45,7 @@ kmailcvt_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_TQT) -lDCOP $(LIB_TDECORE
KDE_ICON=AUTO
messages: rc.cpp
- LIST=`find . -name \*.h -o -name \*.hh -o -name \*.H -o -name \*.hxx -o -name \*.hpp -o -name \*.cpp -o -name \*.cc -o -name \*.cxx -o -name \*.ecpp -o -name \*.C`; \
+ LIST=`find . -name \*.h -o -name \*.cpp`; \
if test -n "$$LIST"; then \
$(XGETTEXT) $$LIST -o $(podir)/kmailcvt.pot; \
fi
diff --git a/kmailcvt/README b/kmailcvt/README
index d8322ed4..1f778afe 100644
--- a/kmailcvt/README
+++ b/kmailcvt/README
@@ -7,23 +7,23 @@ with KMail via its DCOP interface to add messages.
Writing a filter
----------------
-...is very easy. Create two files filter_myformat.cxx and filter_myformat.hxx
-and add "filter_myformat.cxx" to the end of the kmailcvt_SOURCES line in
-Makefile.am and "filter_myformat.cxx filter_myformat.hxx" to the end of the
+...is very easy. Create two files filter_myformat.cpp and filter_myformat.h
+and add "filter_myformat.cpp" to the end of the kmailcvt_SOURCES line in
+Makefile.am and "filter_myformat.cpp filter_myformat.h" to the end of the
EXTRA_DIST line in Makefile.am. Now run "make -f Makefile.cvs; ./configure" in
your tdepim source directory.
In the import method of your filter you are passed a FilterInfo object. This has
the following methods that you may want to use:
- void setFrom( const QString& from ); // Set to file importing from
- void setTo( const QString& to ); // Set to folder importing into
- void setCurrent( const QString& current ); // What we are doing
+ void setFrom( const TQString& from ); // Set to file importing from
+ void setTo( const TQString& to ); // Set to folder importing into
+ void setCurrent( const TQString& current ); // What we are doing
void setCurrent( int percent = 0 ); // Set percentage of current file
void setOverall( int percent = 0 ); // Set overall percentage
- void addLog( const QString& log ); // Add a message for the user to see
- void alert( const QString& message ); // Tell user something has gone wrong
- QWidget *parent(); // The parent widget
+ void addLog( const TQString& log ); // Add a message for the user to see
+ void alert( const TQString& message ); // Tell user something has gone wrong
+ TQWidget *parent(); // The parent widget
bool removeDupMsg; // true, if user selected 'remove duplicated messages'
diff --git a/kmailcvt/filter_evolution.cpp b/kmailcvt/filter_evolution.cpp
new file mode 100644
index 00000000..a372058e
--- /dev/null
+++ b/kmailcvt/filter_evolution.cpp
@@ -0,0 +1,200 @@
+/*
+ * filter_evolution.cpp
+ * Author : Simon MARTIN <simartin@users.sourceforge.net>
+ * Copyright (c) 2004 Simon MARTIN
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "filter_evolution.h"
+
+#include <config.h>
+#include <tdelocale.h>
+#include <tdefiledialog.h>
+#include <tdetempfile.h>
+
+
+/** Default constructor. */
+FilterEvolution::FilterEvolution(void) :
+ Filter(i18n("Import Evolution 1.x Local Mails and Folder Structure"),
+ "Simon MARTIN<br /><br />( Filter accelerated by Danny Kukawka )",
+ i18n("<p><b>Evolution 1.x import filter</b></p>"
+ "<p>Select the base directory of Evolution's mails (usually ~/evolution/local).</p>"
+ "<p>Since it is possible to recreate the folder structure, the folders "
+ "will be stored under: \"Evolution-Import\".</p>"))
+{}
+
+/** Destructor. */
+FilterEvolution::~FilterEvolution(void)
+{
+}
+
+/** Recursive import of Evolution's mboxes. */
+void FilterEvolution::import(FilterInfo *info)
+{
+ // We ask the user to choose Evolution's root directory.
+ TQString evolDir = TQDir::homeDirPath() + "/evolution/local";
+ TQDir d( evolDir );
+ if ( !d.exists() ) {
+ evolDir = TQDir::homeDirPath();
+ }
+
+ mailDir = KFileDialog::getExistingDirectory(evolDir, info->parent());
+
+ if (mailDir.isEmpty()) {
+ info->alert(i18n("No directory selected."));
+ }
+ /**
+ * If the user only select homedir no import needed because
+ * there should be no files and we surely import wrong files.
+ */
+ else if ( mailDir == TQDir::homeDirPath() || mailDir == (TQDir::homeDirPath() + "/")) {
+ info->addLog(i18n("No files found for import."));
+ } else {
+ info->setOverall(0);
+ // Recursive import of the MBoxes.
+ TQDir dir(mailDir);
+ TQStringList rootSubDirs = dir.entryList("[^\\.]*", TQDir::Dirs, TQDir::Name); // Removal of . and ..
+ int currentDir = 1, numSubDirs = rootSubDirs.size();
+ for(TQStringList::Iterator filename = rootSubDirs.begin() ; filename != rootSubDirs.end() ; ++filename, ++currentDir) {
+ importDirContents(info, dir.filePath(*filename), *filename, TQString());
+ info->setOverall((int) ((float) currentDir / numSubDirs * 100));
+ }
+ }
+ info->addLog( i18n("Finished importing emails from %1").arg( mailDir ));
+ info->setCurrent(100);
+ info->setOverall(100);
+}
+
+/**
+ * Import of a directory contents.
+ * @param info Information storage for the operation.
+ * @param dirName The name of the directory to import.
+ * @param KMailRootDir The directory's root directory in KMail's folder structure.
+ * @param KMailSubDir The directory's direct ancestor in KMail's folder structure.
+ */
+void FilterEvolution::importDirContents(FilterInfo *info, const TQString& dirName, const TQString& KMailRootDir, const TQString& KMailSubDir)
+{
+ // If there is a mbox, we import it
+ TQDir dir(dirName);
+ if(dir.exists("mbox")) {
+ importMBox(info, dirName + "/mbox", KMailRootDir, KMailSubDir);
+ }
+ // If there are subfolders, we import them one by one
+ if(dir.exists("subfolders")) {
+ TQDir subfolders(dirName + "/subfolders");
+ TQStringList subDirs = subfolders.entryList("[^\\.]*", TQDir::Dirs, TQDir::Name);
+ for(TQStringList::Iterator filename = subDirs.begin() ; filename != subDirs.end() ; ++filename) {
+ TQString kSubDir;
+ if(!KMailSubDir.isNull()) {
+ kSubDir = KMailSubDir + "/" + *filename;
+ } else {
+ kSubDir = *filename;
+ }
+ importDirContents(info, subfolders.filePath(*filename), KMailRootDir, kSubDir);
+ }
+ }
+}
+
+/**
+ * Import of a MBox file.
+ * @param info Information storage for the operation.
+ * @param dirName The MBox's name.
+ * @param KMailRootDir The directory's root directory in KMail's folder structure.
+ * @param KMailSubDir The directory's equivalent in KMail's folder structure. *
+ */
+void FilterEvolution::importMBox(FilterInfo *info, const TQString& mboxName, const TQString& rootDir, const TQString& targetDir)
+{
+ TQFile mbox(mboxName);
+ bool first_msg = true;
+ TQString tmp_from = mboxName;
+ if (!mbox.open(IO_ReadOnly)) {
+ info->alert(i18n("Unable to open %1, skipping").arg(mboxName));
+ } else {
+ TQFileInfo filenameInfo(mboxName);
+
+ info->setCurrent(0);
+ if( mboxName.length() > 20 ) {
+ TQString tmp_info = mboxName;
+ tmp_info = tmp_info.replace( mailDir, ".." );
+ if (tmp_info.contains("subfolders/"))
+ tmp_info.remove("subfolders/");
+ info->setFrom( tmp_info );
+ tmp_from = tmp_info;
+ } else
+ info->setFrom(mboxName);
+ if(targetDir.contains("subfolders/")) {
+ TQString tmp_info = targetDir;
+ tmp_info.remove("subfolders/");
+ info->setTo(tmp_info);
+ } else
+ info->setTo(targetDir);
+
+ info->addLog(i18n("Importing emails from %1...").arg(tmp_from));
+
+ TQByteArray input(MAX_LINE);
+ long l = 0;
+
+ while (!mbox.atEnd()) {
+ KTempFile tmp;
+ /* comment by Danny:
+ * Don't use TQTextStream to read from mbox, etter use TQDataStream. TQTextStream only
+ * support Unicode/Latin1/Locale. So you lost information from emails with
+ * charset!=Unicode/Latin1/Locale (e.g. KOI8-R) and Content-Transfer-Encoding != base64
+ * (e.g. 8Bit). It also not help to convert the TQTextStream to Unicode. By this you
+ * get Unicode/UTF-email but KMail can't detect the correct charset.
+ */
+ TQCString seperate;
+
+ if(!first_msg)
+ tmp.file()->writeBlock( input, l );
+ l = mbox.readLine( input.data(),MAX_LINE); // read the first line, prevent "From "
+ tmp.file()->writeBlock( input, l );
+
+ while ( ! mbox.atEnd() && (l = mbox.readLine(input.data(),MAX_LINE)) && ((seperate = input.data()).left(5) != "From ")) {
+ tmp.file()->writeBlock( input, l );
+ }
+ tmp.close();
+ first_msg = false;
+
+ TQString destFolder = rootDir;
+ if(!targetDir.isNull()) {
+ destFolder = "Evolution-Import/" + destFolder + "/" + targetDir;
+ } else {
+ destFolder = "Evolution-Import/" + destFolder;
+ }
+
+ /* comment by Danny Kukawka:
+ * addMessage() == old function, need more time and check for duplicates
+ * addMessage_fastImport == new function, faster and no check for duplicates
+ */
+ if(info->removeDupMsg)
+ addMessage( info, destFolder, tmp.name() );
+ else
+ addMessage_fastImport( info, destFolder, tmp.name() );
+
+ tmp.unlink();
+ int currentPercentage = (int) (((float) mbox.at() / filenameInfo.size()) * 100);
+ info->setCurrent(currentPercentage);
+ if (info->shouldTerminate()) return;
+ }
+
+ if (count_duplicates > 0) {
+ info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
+ }
+ count_duplicates = 0;
+ mbox.close();
+ }
+}
diff --git a/kmailcvt/filter_evolution.cxx b/kmailcvt/filter_evolution.cxx
deleted file mode 100644
index b4443d14..00000000
--- a/kmailcvt/filter_evolution.cxx
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * filter_evolution.cxx
- * Author : Simon MARTIN <simartin@users.sourceforge.net>
- * Copyright (c) 2004 Simon MARTIN
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "filter_evolution.hxx"
-
-#include <config.h>
-#include <tdelocale.h>
-#include <tdefiledialog.h>
-#include <tdetempfile.h>
-
-
-/** Default constructor. */
-FilterEvolution::FilterEvolution(void) :
- Filter(i18n("Import Evolution 1.x Local Mails and Folder Structure"),
- "Simon MARTIN<br /><br />( Filter accelerated by Danny Kukawka )",
- i18n("<p><b>Evolution 1.x import filter</b></p>"
- "<p>Select the base directory of Evolution's mails (usually ~/evolution/local).</p>"
- "<p>Since it is possible to recreate the folder structure, the folders "
- "will be stored under: \"Evolution-Import\".</p>"))
-{}
-
-/** Destructor. */
-FilterEvolution::~FilterEvolution(void)
-{
-}
-
-/** Recursive import of Evolution's mboxes. */
-void FilterEvolution::import(FilterInfo *info)
-{
- // We ask the user to choose Evolution's root directory.
- TQString evolDir = TQDir::homeDirPath() + "/evolution/local";
- TQDir d( evolDir );
- if ( !d.exists() ) {
- evolDir = TQDir::homeDirPath();
- }
-
- mailDir = KFileDialog::getExistingDirectory(evolDir, info->parent());
-
- if (mailDir.isEmpty()) {
- info->alert(i18n("No directory selected."));
- }
- /**
- * If the user only select homedir no import needed because
- * there should be no files and we surely import wrong files.
- */
- else if ( mailDir == TQDir::homeDirPath() || mailDir == (TQDir::homeDirPath() + "/")) {
- info->addLog(i18n("No files found for import."));
- } else {
- info->setOverall(0);
- // Recursive import of the MBoxes.
- TQDir dir(mailDir);
- TQStringList rootSubDirs = dir.entryList("[^\\.]*", TQDir::Dirs, TQDir::Name); // Removal of . and ..
- int currentDir = 1, numSubDirs = rootSubDirs.size();
- for(TQStringList::Iterator filename = rootSubDirs.begin() ; filename != rootSubDirs.end() ; ++filename, ++currentDir) {
- importDirContents(info, dir.filePath(*filename), *filename, TQString());
- info->setOverall((int) ((float) currentDir / numSubDirs * 100));
- }
- }
- info->addLog( i18n("Finished importing emails from %1").arg( mailDir ));
- info->setCurrent(100);
- info->setOverall(100);
-}
-
-/**
- * Import of a directory contents.
- * @param info Information storage for the operation.
- * @param dirName The name of the directory to import.
- * @param KMailRootDir The directory's root directory in KMail's folder structure.
- * @param KMailSubDir The directory's direct ancestor in KMail's folder structure.
- */
-void FilterEvolution::importDirContents(FilterInfo *info, const TQString& dirName, const TQString& KMailRootDir, const TQString& KMailSubDir)
-{
- // If there is a mbox, we import it
- TQDir dir(dirName);
- if(dir.exists("mbox")) {
- importMBox(info, dirName + "/mbox", KMailRootDir, KMailSubDir);
- }
- // If there are subfolders, we import them one by one
- if(dir.exists("subfolders")) {
- TQDir subfolders(dirName + "/subfolders");
- TQStringList subDirs = subfolders.entryList("[^\\.]*", TQDir::Dirs, TQDir::Name);
- for(TQStringList::Iterator filename = subDirs.begin() ; filename != subDirs.end() ; ++filename) {
- TQString kSubDir;
- if(!KMailSubDir.isNull()) {
- kSubDir = KMailSubDir + "/" + *filename;
- } else {
- kSubDir = *filename;
- }
- importDirContents(info, subfolders.filePath(*filename), KMailRootDir, kSubDir);
- }
- }
-}
-
-/**
- * Import of a MBox file.
- * @param info Information storage for the operation.
- * @param dirName The MBox's name.
- * @param KMailRootDir The directory's root directory in KMail's folder structure.
- * @param KMailSubDir The directory's equivalent in KMail's folder structure. *
- */
-void FilterEvolution::importMBox(FilterInfo *info, const TQString& mboxName, const TQString& rootDir, const TQString& targetDir)
-{
- TQFile mbox(mboxName);
- bool first_msg = true;
- TQString tmp_from = mboxName;
- if (!mbox.open(IO_ReadOnly)) {
- info->alert(i18n("Unable to open %1, skipping").arg(mboxName));
- } else {
- TQFileInfo filenameInfo(mboxName);
-
- info->setCurrent(0);
- if( mboxName.length() > 20 ) {
- TQString tmp_info = mboxName;
- tmp_info = tmp_info.replace( mailDir, ".." );
- if (tmp_info.contains("subfolders/"))
- tmp_info.remove("subfolders/");
- info->setFrom( tmp_info );
- tmp_from = tmp_info;
- } else
- info->setFrom(mboxName);
- if(targetDir.contains("subfolders/")) {
- TQString tmp_info = targetDir;
- tmp_info.remove("subfolders/");
- info->setTo(tmp_info);
- } else
- info->setTo(targetDir);
-
- info->addLog(i18n("Importing emails from %1...").arg(tmp_from));
-
- TQByteArray input(MAX_LINE);
- long l = 0;
-
- while (!mbox.atEnd()) {
- KTempFile tmp;
- /* comment by Danny:
- * Don't use TQTextStream to read from mbox, etter use TQDataStream. TQTextStream only
- * support Unicode/Latin1/Locale. So you lost information from emails with
- * charset!=Unicode/Latin1/Locale (e.g. KOI8-R) and Content-Transfer-Encoding != base64
- * (e.g. 8Bit). It also not help to convert the TQTextStream to Unicode. By this you
- * get Unicode/UTF-email but KMail can't detect the correct charset.
- */
- TQCString seperate;
-
- if(!first_msg)
- tmp.file()->writeBlock( input, l );
- l = mbox.readLine( input.data(),MAX_LINE); // read the first line, prevent "From "
- tmp.file()->writeBlock( input, l );
-
- while ( ! mbox.atEnd() && (l = mbox.readLine(input.data(),MAX_LINE)) && ((seperate = input.data()).left(5) != "From ")) {
- tmp.file()->writeBlock( input, l );
- }
- tmp.close();
- first_msg = false;
-
- TQString destFolder = rootDir;
- if(!targetDir.isNull()) {
- destFolder = "Evolution-Import/" + destFolder + "/" + targetDir;
- } else {
- destFolder = "Evolution-Import/" + destFolder;
- }
-
- /* comment by Danny Kukawka:
- * addMessage() == old function, need more time and check for duplicates
- * addMessage_fastImport == new function, faster and no check for duplicates
- */
- if(info->removeDupMsg)
- addMessage( info, destFolder, tmp.name() );
- else
- addMessage_fastImport( info, destFolder, tmp.name() );
-
- tmp.unlink();
- int currentPercentage = (int) (((float) mbox.at() / filenameInfo.size()) * 100);
- info->setCurrent(currentPercentage);
- if (info->shouldTerminate()) return;
- }
-
- if (count_duplicates > 0) {
- info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
- }
- count_duplicates = 0;
- mbox.close();
- }
-}
diff --git a/kmailcvt/filter_evolution.h b/kmailcvt/filter_evolution.h
new file mode 100644
index 00000000..83fb4155
--- /dev/null
+++ b/kmailcvt/filter_evolution.h
@@ -0,0 +1,45 @@
+/*
+ * filter_evolution.h
+ * Author : Simon MARTIN <simartin@users.sourceforge.net>
+ * Copyright (c) 2004 Simon MARTIN
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef FILTER_EVOLUTION_H
+#define FILTER_EVOLUTION_H
+
+#include "filters.h"
+
+/**
+ * Imports Evolution mboxes recursively, keeping the folder structure.
+ * @author Simon MARTIN
+ */
+class FilterEvolution : public Filter
+{
+public:
+ FilterEvolution(void);
+ ~FilterEvolution(void);
+
+ void import(FilterInfo *info);
+
+private:
+ TQString mailDir;
+
+ void importDirContents(FilterInfo*, const TQString&, const TQString&, const TQString&);
+ void importMBox(FilterInfo*, const TQString&, const TQString&, const TQString&);
+};
+
+#endif
diff --git a/kmailcvt/filter_evolution.hxx b/kmailcvt/filter_evolution.hxx
deleted file mode 100644
index 1aa5184f..00000000
--- a/kmailcvt/filter_evolution.hxx
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * filter_evolution.hxx
- * Author : Simon MARTIN <simartin@users.sourceforge.net>
- * Copyright (c) 2004 Simon MARTIN
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef FILTER_EVOLUTION_HXX
-#define FILTER_EVOLUTION_HXX
-
-#include "filters.hxx"
-
-/**
- * Imports Evolution mboxes recursively, keeping the folder structure.
- * @author Simon MARTIN
- */
-class FilterEvolution : public Filter
-{
-public:
- FilterEvolution(void);
- ~FilterEvolution(void);
-
- void import(FilterInfo *info);
-
-private:
- TQString mailDir;
-
- void importDirContents(FilterInfo*, const TQString&, const TQString&, const TQString&);
- void importMBox(FilterInfo*, const TQString&, const TQString&, const TQString&);
-};
-
-#endif
diff --git a/kmailcvt/filter_evolution_v2.cpp b/kmailcvt/filter_evolution_v2.cpp
new file mode 100644
index 00000000..a4c6203c
--- /dev/null
+++ b/kmailcvt/filter_evolution_v2.cpp
@@ -0,0 +1,231 @@
+/***************************************************************************
+ filter_evolution_v2.cpp - Evolution 2.0.x mail import
+ -------------------
+ begin : Januar 26 2005
+ copyright : (C) 2005 by Danny Kukawka
+ (inspired and partly copied from filter_evolution)
+ email : danny.kukawka@web.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include "filter_evolution_v2.h"
+
+#include <config.h>
+#include <tdelocale.h>
+#include <tdefiledialog.h>
+#include <tdetempfile.h>
+
+
+/** Default constructor. */
+FilterEvolution_v2::FilterEvolution_v2(void) :
+ Filter(i18n("Import Evolution 2.x Local Mails and Folder Structure"),
+ "Danny Kukawka",
+ i18n("<p><b>Evolution 2.x import filter</b></p>"
+ "<p>Select the base directory of your local Evolution mailfolder (usually ~/.evolution/mail/local/).</p>"
+ "<p><b>Note:</b> Never choose a Folder which <u>does not</u> contain mbox-files (for example "
+ "a maildir): if you do, you will get many new folders.</p>"
+ "<p>Since it is possible to recreate the folder structure, the folders "
+ "will be stored under: \"Evolution-Import\".</p>"))
+{}
+
+/** Destructor. */
+FilterEvolution_v2::~FilterEvolution_v2(void)
+{
+}
+
+/** Recursive import of Evolution's mboxes. */
+void FilterEvolution_v2::import(FilterInfo *info)
+{
+ /**
+ * We ask the user to choose Evolution's root directory.
+ * This should be usually ~/.evolution/mail/local/
+ */
+ TQString evolDir = TQDir::homeDirPath() + "/.evolution/mail/local";
+ TQDir d( evolDir );
+ if ( !d.exists() ) {
+ evolDir = TQDir::homeDirPath();
+ }
+
+ //TQString mailDir = KFileDialog::getExistingDirectory(TQDir::homeDirPath(), info->parent());
+ KFileDialog *kfd;
+ kfd = new KFileDialog( evolDir, "", 0, "tdefiledialog", true );
+ kfd->setMode(KFile::Directory | KFile::LocalOnly);
+ kfd->exec();
+ mailDir = kfd->selectedFile();
+ delete kfd;
+
+ if (mailDir.isEmpty()) {
+ info->alert(i18n("No directory selected."));
+ }
+ /**
+ * If the user only select homedir no import needed because
+ * there should be no files and we surely import wrong files.
+ */
+ else if ( mailDir == TQDir::homeDirPath() || mailDir == (TQDir::homeDirPath() + "/")) {
+ info->addLog(i18n("No files found for import."));
+ } else {
+ info->setOverall(0);
+
+ /** Recursive import of the MailArchives */
+ TQDir dir(mailDir);
+ TQStringList rootSubDirs = dir.entryList("[^\\.]*", TQDir::Dirs, TQDir::Name); // Removal of . and ..
+ int currentDir = 1, numSubDirs = rootSubDirs.size();
+ for(TQStringList::Iterator dirname = rootSubDirs.begin() ; dirname != rootSubDirs.end() ; ++dirname, ++currentDir) {
+ if (info->shouldTerminate()) break;
+ importDirContents(info, false, dir.filePath(*dirname), *dirname, *dirname);
+ info->setOverall((int) ((float) currentDir / numSubDirs * 100));
+ }
+
+ /** import last but not least all archives from the root-dir */
+ importDirContents(info, true, mailDir, TQString(), TQString());
+
+ info->addLog( i18n("Finished importing emails from %1").arg( mailDir ));
+ if(count_duplicates > 0) {
+ info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
+ }
+ if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
+ }
+ info->setCurrent(100);
+ info->setOverall(100);
+}
+
+/**
+ * Import of a directory contents.
+ * @param info Information storage for the operation.
+ * @param root if this is the rootdir or not
+ * @param dirName The name of the directory to import.
+ * @param KMailRootDir The directory's root directory in KMail's folder structure.
+ * @param KMailSubDir The directory's direct ancestor in KMail's folder structure.
+ */
+void FilterEvolution_v2::importDirContents(FilterInfo *info, bool root,
+ const TQString& dirName, const TQString& KMailRootDir, const TQString& KMailSubDir)
+{
+ if (info->shouldTerminate()) return;
+
+ /** Here Import all archives in the current dir */
+ TQDir dir(dirName);
+
+ TQDir importDir (dirName);
+ TQStringList files = importDir.entryList("[^\\.]*", TQDir::Files, TQDir::Name);
+ for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile) {
+ if (info->shouldTerminate()) break;
+ TQString temp_mailfile = *mailFile;
+ if (temp_mailfile.endsWith(".cmeta") || temp_mailfile.endsWith(".ev-summary") || temp_mailfile.endsWith(".ev-summary-meta") ||
+ temp_mailfile.endsWith(".ibex.index") || temp_mailfile.endsWith(".ibex.index.data") ) {}
+ else {
+ info->addLog( i18n("Start import file %1...").arg( temp_mailfile ) );
+ if (!root)
+ importMBox(info, (dirName + "/" + temp_mailfile) , KMailRootDir, KMailSubDir);
+ else
+ importMBox(info, dirName + temp_mailfile , temp_mailfile, TQString());
+ }
+ }
+
+ if (!root) {
+ /** If there are subfolders, we import them one by one */
+ TQDir subfolders(dirName);
+ TQStringList subDirs = subfolders.entryList("[^\\.]*", TQDir::Dirs, TQDir::Name);
+ for(TQStringList::Iterator filename = subDirs.begin() ; filename != subDirs.end() ; ++filename) {
+ TQString kSubDir;
+ if(!KMailSubDir.isNull()) {
+ kSubDir = KMailSubDir + "/" + *filename;
+ } else {
+ kSubDir = *filename;
+ }
+ importDirContents(info, false, subfolders.filePath(*filename), KMailRootDir, kSubDir);
+ }
+ }
+}
+
+/**
+ * Import of a MBox file.
+ * @param info Information storage for the operation.
+ * @param dirName The MBox's name.
+ * @param KMailRootDir The directory's root directory in KMail's folder structure.
+ * @param KMailSubDir The directory's equivalent in KMail's folder structure. *
+ */
+void FilterEvolution_v2::importMBox(FilterInfo *info, const TQString& mboxName, const TQString& rootDir, const TQString& targetDir)
+{
+ TQFile mbox(mboxName);
+ bool first_msg = true;
+ if (!mbox.open(IO_ReadOnly)) {
+ info->alert(i18n("Unable to open %1, skipping").arg(mboxName));
+ } else {
+ TQFileInfo filenameInfo(mboxName);
+
+ info->setCurrent(0);
+ if( mboxName.length() > 20 ) {
+ TQString tmp_info = mboxName;
+ tmp_info = tmp_info.replace( mailDir, "../" );
+ if (tmp_info.contains(".sbd"))
+ tmp_info.remove(".sbd");
+ info->setFrom( tmp_info );
+ } else
+ info->setFrom(mboxName);
+ if(targetDir.contains(".sbd")) {
+ TQString tmp_info = targetDir;
+ tmp_info.remove(".sbd");
+ info->setTo(tmp_info);
+ } else
+ info->setTo(targetDir);
+
+ TQByteArray input(MAX_LINE);
+ long l = 0;
+
+ while (!mbox.atEnd()) {
+ KTempFile tmp;
+ /** @todo check if the file is really a mbox, maybe search for 'from' string at start */
+ /* comment by Danny:
+ * Don't use TQTextStream to read from mbox, etter use TQDataStream. TQTextStream only
+ * support Unicode/Latin1/Locale. So you lost information from emails with
+ * charset!=Unicode/Latin1/Locale (e.g. KOI8-R) and Content-Transfer-Encoding != base64
+ * (e.g. 8Bit). It also not help to convert the TQTextStream to Unicode. By this you
+ * get Unicode/UTF-email but KMail can't detect the correct charset.
+ */
+ TQCString seperate;
+
+ if(!first_msg)
+ tmp.file()->writeBlock( input, l );
+ l = mbox.readLine( input.data(),MAX_LINE); // read the first line, prevent "From "
+ tmp.file()->writeBlock( input, l );
+
+ while ( ! mbox.atEnd() && (l = mbox.readLine(input.data(),MAX_LINE)) && ((seperate = input.data()).left(5) != "From ")) {
+ tmp.file()->writeBlock( input, l );
+ }
+ tmp.close();
+ first_msg = false;
+
+ TQString destFolder;
+ TQString _targetDir = targetDir;
+ if(!targetDir.isNull()) {
+ if(_targetDir.contains(".sbd"))
+ _targetDir.remove(".sbd");
+ destFolder += "Evolution-Import/" + _targetDir + "/" + filenameInfo.baseName(TRUE); // mboxName;
+ } else {
+ destFolder = "Evolution-Import/" + rootDir;
+ if(destFolder.contains(".sbd"))
+ destFolder.remove(".sbd");
+ }
+
+
+ if(info->removeDupMsg)
+ addMessage( info, destFolder, tmp.name() );
+ else
+ addMessage_fastImport( info, destFolder, tmp.name() );
+
+ tmp.unlink();
+ int currentPercentage = (int) (((float) mbox.at() / filenameInfo.size()) * 100);
+ info->setCurrent(currentPercentage);
+ if (info->shouldTerminate()) break;
+ }
+ mbox.close();
+ }
+}
diff --git a/kmailcvt/filter_evolution_v2.cxx b/kmailcvt/filter_evolution_v2.cxx
deleted file mode 100644
index b6ee8a57..00000000
--- a/kmailcvt/filter_evolution_v2.cxx
+++ /dev/null
@@ -1,231 +0,0 @@
-/***************************************************************************
- filter_evolution_v2.cxx - Evolution 2.0.x mail import
- -------------------
- begin : Januar 26 2005
- copyright : (C) 2005 by Danny Kukawka
- (inspired and partly copied from filter_evolution)
- email : danny.kukawka@web.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include "filter_evolution_v2.hxx"
-
-#include <config.h>
-#include <tdelocale.h>
-#include <tdefiledialog.h>
-#include <tdetempfile.h>
-
-
-/** Default constructor. */
-FilterEvolution_v2::FilterEvolution_v2(void) :
- Filter(i18n("Import Evolution 2.x Local Mails and Folder Structure"),
- "Danny Kukawka",
- i18n("<p><b>Evolution 2.x import filter</b></p>"
- "<p>Select the base directory of your local Evolution mailfolder (usually ~/.evolution/mail/local/).</p>"
- "<p><b>Note:</b> Never choose a Folder which <u>does not</u> contain mbox-files (for example "
- "a maildir): if you do, you will get many new folders.</p>"
- "<p>Since it is possible to recreate the folder structure, the folders "
- "will be stored under: \"Evolution-Import\".</p>"))
-{}
-
-/** Destructor. */
-FilterEvolution_v2::~FilterEvolution_v2(void)
-{
-}
-
-/** Recursive import of Evolution's mboxes. */
-void FilterEvolution_v2::import(FilterInfo *info)
-{
- /**
- * We ask the user to choose Evolution's root directory.
- * This should be usually ~/.evolution/mail/local/
- */
- TQString evolDir = TQDir::homeDirPath() + "/.evolution/mail/local";
- TQDir d( evolDir );
- if ( !d.exists() ) {
- evolDir = TQDir::homeDirPath();
- }
-
- //TQString mailDir = KFileDialog::getExistingDirectory(TQDir::homeDirPath(), info->parent());
- KFileDialog *kfd;
- kfd = new KFileDialog( evolDir, "", 0, "tdefiledialog", true );
- kfd->setMode(KFile::Directory | KFile::LocalOnly);
- kfd->exec();
- mailDir = kfd->selectedFile();
- delete kfd;
-
- if (mailDir.isEmpty()) {
- info->alert(i18n("No directory selected."));
- }
- /**
- * If the user only select homedir no import needed because
- * there should be no files and we surely import wrong files.
- */
- else if ( mailDir == TQDir::homeDirPath() || mailDir == (TQDir::homeDirPath() + "/")) {
- info->addLog(i18n("No files found for import."));
- } else {
- info->setOverall(0);
-
- /** Recursive import of the MailArchives */
- TQDir dir(mailDir);
- TQStringList rootSubDirs = dir.entryList("[^\\.]*", TQDir::Dirs, TQDir::Name); // Removal of . and ..
- int currentDir = 1, numSubDirs = rootSubDirs.size();
- for(TQStringList::Iterator dirname = rootSubDirs.begin() ; dirname != rootSubDirs.end() ; ++dirname, ++currentDir) {
- if (info->shouldTerminate()) break;
- importDirContents(info, false, dir.filePath(*dirname), *dirname, *dirname);
- info->setOverall((int) ((float) currentDir / numSubDirs * 100));
- }
-
- /** import last but not least all archives from the root-dir */
- importDirContents(info, true, mailDir, TQString(), TQString());
-
- info->addLog( i18n("Finished importing emails from %1").arg( mailDir ));
- if(count_duplicates > 0) {
- info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
- }
- if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
- }
- info->setCurrent(100);
- info->setOverall(100);
-}
-
-/**
- * Import of a directory contents.
- * @param info Information storage for the operation.
- * @param root if this is the rootdir or not
- * @param dirName The name of the directory to import.
- * @param KMailRootDir The directory's root directory in KMail's folder structure.
- * @param KMailSubDir The directory's direct ancestor in KMail's folder structure.
- */
-void FilterEvolution_v2::importDirContents(FilterInfo *info, bool root,
- const TQString& dirName, const TQString& KMailRootDir, const TQString& KMailSubDir)
-{
- if (info->shouldTerminate()) return;
-
- /** Here Import all archives in the current dir */
- TQDir dir(dirName);
-
- TQDir importDir (dirName);
- TQStringList files = importDir.entryList("[^\\.]*", TQDir::Files, TQDir::Name);
- for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile) {
- if (info->shouldTerminate()) break;
- TQString temp_mailfile = *mailFile;
- if (temp_mailfile.endsWith(".cmeta") || temp_mailfile.endsWith(".ev-summary") || temp_mailfile.endsWith(".ev-summary-meta") ||
- temp_mailfile.endsWith(".ibex.index") || temp_mailfile.endsWith(".ibex.index.data") ) {}
- else {
- info->addLog( i18n("Start import file %1...").arg( temp_mailfile ) );
- if (!root)
- importMBox(info, (dirName + "/" + temp_mailfile) , KMailRootDir, KMailSubDir);
- else
- importMBox(info, dirName + temp_mailfile , temp_mailfile, TQString());
- }
- }
-
- if (!root) {
- /** If there are subfolders, we import them one by one */
- TQDir subfolders(dirName);
- TQStringList subDirs = subfolders.entryList("[^\\.]*", TQDir::Dirs, TQDir::Name);
- for(TQStringList::Iterator filename = subDirs.begin() ; filename != subDirs.end() ; ++filename) {
- TQString kSubDir;
- if(!KMailSubDir.isNull()) {
- kSubDir = KMailSubDir + "/" + *filename;
- } else {
- kSubDir = *filename;
- }
- importDirContents(info, false, subfolders.filePath(*filename), KMailRootDir, kSubDir);
- }
- }
-}
-
-/**
- * Import of a MBox file.
- * @param info Information storage for the operation.
- * @param dirName The MBox's name.
- * @param KMailRootDir The directory's root directory in KMail's folder structure.
- * @param KMailSubDir The directory's equivalent in KMail's folder structure. *
- */
-void FilterEvolution_v2::importMBox(FilterInfo *info, const TQString& mboxName, const TQString& rootDir, const TQString& targetDir)
-{
- TQFile mbox(mboxName);
- bool first_msg = true;
- if (!mbox.open(IO_ReadOnly)) {
- info->alert(i18n("Unable to open %1, skipping").arg(mboxName));
- } else {
- TQFileInfo filenameInfo(mboxName);
-
- info->setCurrent(0);
- if( mboxName.length() > 20 ) {
- TQString tmp_info = mboxName;
- tmp_info = tmp_info.replace( mailDir, "../" );
- if (tmp_info.contains(".sbd"))
- tmp_info.remove(".sbd");
- info->setFrom( tmp_info );
- } else
- info->setFrom(mboxName);
- if(targetDir.contains(".sbd")) {
- TQString tmp_info = targetDir;
- tmp_info.remove(".sbd");
- info->setTo(tmp_info);
- } else
- info->setTo(targetDir);
-
- TQByteArray input(MAX_LINE);
- long l = 0;
-
- while (!mbox.atEnd()) {
- KTempFile tmp;
- /** @todo check if the file is really a mbox, maybe search for 'from' string at start */
- /* comment by Danny:
- * Don't use TQTextStream to read from mbox, etter use TQDataStream. TQTextStream only
- * support Unicode/Latin1/Locale. So you lost information from emails with
- * charset!=Unicode/Latin1/Locale (e.g. KOI8-R) and Content-Transfer-Encoding != base64
- * (e.g. 8Bit). It also not help to convert the TQTextStream to Unicode. By this you
- * get Unicode/UTF-email but KMail can't detect the correct charset.
- */
- TQCString seperate;
-
- if(!first_msg)
- tmp.file()->writeBlock( input, l );
- l = mbox.readLine( input.data(),MAX_LINE); // read the first line, prevent "From "
- tmp.file()->writeBlock( input, l );
-
- while ( ! mbox.atEnd() && (l = mbox.readLine(input.data(),MAX_LINE)) && ((seperate = input.data()).left(5) != "From ")) {
- tmp.file()->writeBlock( input, l );
- }
- tmp.close();
- first_msg = false;
-
- TQString destFolder;
- TQString _targetDir = targetDir;
- if(!targetDir.isNull()) {
- if(_targetDir.contains(".sbd"))
- _targetDir.remove(".sbd");
- destFolder += "Evolution-Import/" + _targetDir + "/" + filenameInfo.baseName(TRUE); // mboxName;
- } else {
- destFolder = "Evolution-Import/" + rootDir;
- if(destFolder.contains(".sbd"))
- destFolder.remove(".sbd");
- }
-
-
- if(info->removeDupMsg)
- addMessage( info, destFolder, tmp.name() );
- else
- addMessage_fastImport( info, destFolder, tmp.name() );
-
- tmp.unlink();
- int currentPercentage = (int) (((float) mbox.at() / filenameInfo.size()) * 100);
- info->setCurrent(currentPercentage);
- if (info->shouldTerminate()) break;
- }
- mbox.close();
- }
-}
diff --git a/kmailcvt/filter_evolution_v2.h b/kmailcvt/filter_evolution_v2.h
new file mode 100644
index 00000000..2c93bba8
--- /dev/null
+++ b/kmailcvt/filter_evolution_v2.h
@@ -0,0 +1,43 @@
+/***************************************************************************
+ filter_evolution_v2.h - Evolution 2.0.x mail import
+ -------------------
+ begin : Januar 26 2005
+ copyright : (C) 2005 by Danny Kukawka
+ (inspired and partly copied from filter_evolution)
+ email : danny.kukawka@web.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef FILTER_EVOLUTION_V2_H
+#define FILTER_EVOLUTION_V2_H
+
+#include "filters.h"
+
+/**
+ * Imports Evolution v2.x mail folder recursively, keeping the folder structure.
+ * @author Danny Kukawka
+ */
+class FilterEvolution_v2 : public Filter
+{
+public:
+ FilterEvolution_v2(void);
+ ~FilterEvolution_v2(void);
+
+ void import(FilterInfo *info);
+
+private:
+ TQString mailDir;
+
+ void importDirContents(FilterInfo*, bool, const TQString&, const TQString&, const TQString&);
+ void importMBox(FilterInfo*, const TQString&, const TQString&, const TQString&);
+};
+
+#endif
diff --git a/kmailcvt/filter_evolution_v2.hxx b/kmailcvt/filter_evolution_v2.hxx
deleted file mode 100644
index da58b4fe..00000000
--- a/kmailcvt/filter_evolution_v2.hxx
+++ /dev/null
@@ -1,43 +0,0 @@
-/***************************************************************************
- filter_evolution_v2.hxx - Evolution 2.0.x mail import
- -------------------
- begin : Januar 26 2005
- copyright : (C) 2005 by Danny Kukawka
- (inspired and partly copied from filter_evolution)
- email : danny.kukawka@web.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#ifndef FILTER_EVOLUTION_V2_HXX
-#define FILTER_EVOLUTION_V2_HXX
-
-#include "filters.hxx"
-
-/**
- * Imports Evolution v2.x mail folder recursively, keeping the folder structure.
- * @author Danny Kukawka
- */
-class FilterEvolution_v2 : public Filter
-{
-public:
- FilterEvolution_v2(void);
- ~FilterEvolution_v2(void);
-
- void import(FilterInfo *info);
-
-private:
- TQString mailDir;
-
- void importDirContents(FilterInfo*, bool, const TQString&, const TQString&, const TQString&);
- void importMBox(FilterInfo*, const TQString&, const TQString&, const TQString&);
-};
-
-#endif
diff --git a/kmailcvt/filter_kmail_archive.cpp b/kmailcvt/filter_kmail_archive.cpp
new file mode 100644
index 00000000..49325d2a
--- /dev/null
+++ b/kmailcvt/filter_kmail_archive.cpp
@@ -0,0 +1,35 @@
+/* Copyright 2009 Klarälvdalens Datakonsult AB
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License or (at your option) version 3 or any later version
+ accepted by the membership of KDE e.V. (or its successor approved
+ by the membership of KDE e.V.), which shall act as a proxy
+ defined in Section 14 of version 3 of the license.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#include "filter_kmail_archive.h"
+
+#include <tdelocale.h>
+
+FilterKMailArchive::FilterKMailArchive()
+ : Filter( i18n( "Import KMail Archive File" ),
+ "Klar\xE4lvdalens Datakonsult AB",
+ i18n( "<p><b>KMail Archive File Import Filter</b></p>"
+ "<p>This filter will import archives files previously exported by KMail.</p>"
+ "<p>Archive files contain a complete folder subtree compressed into a single file.</p>" ) )
+{
+}
+
+void FilterKMailArchive::import( FilterInfo *info )
+{
+ showKMailImportArchiveDialog( info );
+}
diff --git a/kmailcvt/filter_kmail_archive.cxx b/kmailcvt/filter_kmail_archive.cxx
deleted file mode 100644
index 3c7c20d0..00000000
--- a/kmailcvt/filter_kmail_archive.cxx
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2009 Klarälvdalens Datakonsult AB
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License or (at your option) version 3 or any later version
- accepted by the membership of KDE e.V. (or its successor approved
- by the membership of KDE e.V.), which shall act as a proxy
- defined in Section 14 of version 3 of the license.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-#include "filter_kmail_archive.hxx"
-
-#include <tdelocale.h>
-
-FilterKMailArchive::FilterKMailArchive()
- : Filter( i18n( "Import KMail Archive File" ),
- "Klar\xE4lvdalens Datakonsult AB",
- i18n( "<p><b>KMail Archive File Import Filter</b></p>"
- "<p>This filter will import archives files previously exported by KMail.</p>"
- "<p>Archive files contain a complete folder subtree compressed into a single file.</p>" ) )
-{
-}
-
-void FilterKMailArchive::import( FilterInfo *info )
-{
- showKMailImportArchiveDialog( info );
-}
diff --git a/kmailcvt/filter_kmail_archive.h b/kmailcvt/filter_kmail_archive.h
new file mode 100644
index 00000000..a1f74925
--- /dev/null
+++ b/kmailcvt/filter_kmail_archive.h
@@ -0,0 +1,32 @@
+/* Copyright 2009 Klarälvdalens Datakonsult AB
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License or (at your option) version 3 or any later version
+ accepted by the membership of KDE e.V. (or its successor approved
+ by the membership of KDE e.V.), which shall act as a proxy
+ defined in Section 14 of version 3 of the license.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#ifndef FILTER_KMAIL_ARCHIVE_H
+#define FILTER_KMAIL_ARCHIVE_H
+
+#include "filters.h"
+
+class FilterKMailArchive : public Filter
+{
+public:
+ FilterKMailArchive();
+ void import( FilterInfo *info );
+ virtual bool needsSecondPage() { return false; }
+};
+
+#endif
diff --git a/kmailcvt/filter_kmail_archive.hxx b/kmailcvt/filter_kmail_archive.hxx
deleted file mode 100644
index 755d3cc2..00000000
--- a/kmailcvt/filter_kmail_archive.hxx
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2009 Klarälvdalens Datakonsult AB
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License or (at your option) version 3 or any later version
- accepted by the membership of KDE e.V. (or its successor approved
- by the membership of KDE e.V.), which shall act as a proxy
- defined in Section 14 of version 3 of the license.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-#ifndef FILTER_KMAIL_ARCHIVE_HXX
-#define FILTER_KMAIL_ARCHIVE_HXX
-
-#include "filters.hxx"
-
-class FilterKMailArchive : public Filter
-{
-public:
- FilterKMailArchive();
- void import( FilterInfo *info );
- virtual bool needsSecondPage() { return false; }
-};
-
-#endif
diff --git a/kmailcvt/filter_kmail_maildir.cpp b/kmailcvt/filter_kmail_maildir.cpp
new file mode 100644
index 00000000..f24ef7af
--- /dev/null
+++ b/kmailcvt/filter_kmail_maildir.cpp
@@ -0,0 +1,218 @@
+/***************************************************************************
+ filter_kmail_maildir.cpp - Kmail maildir mail import
+ -------------------
+ begin : April 06 2005
+ copyright : (C) 2005 by Danny Kukawka
+ email : danny.kukawka@web.de
+***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include "filter_kmail_maildir.h"
+
+#include <config.h>
+#include <tdelocale.h>
+#include <tdefiledialog.h>
+
+/** Default constructor. */
+FilterKMail_maildir::FilterKMail_maildir( void ) :
+ Filter( i18n( "Import KMail Maildirs and Folder Structure" ),
+ "Danny Kukawka",
+ i18n( "<p><b>KMail import filter</b></p>"
+ "<p>Select the base directory of the KMail mailfolder you want to import.</p>"
+ "<p><b>Note:</b> Never select your current local KMail maildir (usually "
+ "~/Mail or ~/.trinity/share/apps/kmail/mail ): in this case, KMailCVT may become stuck "
+ "in a continuous loop. </p>"
+ "<p>This filter does not import KMail mailfolders with mbox files.</p>"
+ "<p>Since it is possible to recreate the folder structure, the folders "
+ "will be stored under: \"KMail-Import\" in your local folder.</p>" ) )
+{}
+
+/** Destructor. */
+FilterKMail_maildir::~FilterKMail_maildir( void )
+{
+}
+
+/** Recursive import of KMail maildir. */
+void FilterKMail_maildir::import( FilterInfo *info )
+{
+
+ TQString _homeDir = TQDir::homeDirPath();
+
+ KFileDialog *kfd;
+ kfd = new KFileDialog( _homeDir, "", 0, "tdefiledialog", true );
+ kfd->setMode( KFile::Directory | KFile::LocalOnly );
+ kfd->exec();
+ mailDir = kfd->selectedFile();
+ delete kfd;
+
+ if ( mailDir.isEmpty() ) {
+ info->alert( i18n( "No directory selected." ) );
+ }
+ /**
+ * If the user only select homedir no import needed because
+ * there should be no files and we surely import wrong files.
+ */
+ else if ( mailDir == TQDir::homeDirPath() || mailDir == ( TQDir::homeDirPath() + "/" ) ) {
+ info->addLog( i18n( "No files found for import." ) );
+ } else {
+ info->setOverall(0);
+
+ /** Recursive import of the MailArchives */
+ TQDir dir(mailDir);
+ TQStringList rootSubDirs = dir.entryList("*", TQDir::Dirs | TQDir::Hidden, TQDir::Name);
+ int currentDir = 1, numSubDirs = rootSubDirs.size();
+ for(TQStringList::Iterator filename = rootSubDirs.begin() ; filename != rootSubDirs.end() ; ++filename, ++currentDir) {
+ if(info->shouldTerminate()) break;
+ if(!(*filename == "." || *filename == "..")) {
+ info->setCurrent(0);
+ importDirContents(info, dir.filePath(*filename));
+ info->setOverall((int) ((float) currentDir / numSubDirs * 100));
+ info->setCurrent(100);
+ }
+ }
+ }
+
+ info->addLog( i18n("Finished importing emails from %1").arg( mailDir ));
+ if (count_duplicates > 0) {
+ info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
+ }
+ if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
+ count_duplicates = 0;
+ info->setCurrent(100);
+ info->setOverall(100);
+}
+
+/**
+ * Import of a directory contents.
+ * @param info Information storage for the operation.
+ * @param dirName The name of the directory to import.
+ */
+void FilterKMail_maildir::importDirContents( FilterInfo *info, const TQString& dirName)
+{
+
+ /** Here Import all archives in the current dir */
+ importFiles(info, dirName);
+
+ /** If there are subfolders, we import them one by one */
+
+ TQDir subfolders(dirName);
+ TQStringList subDirs = subfolders.entryList("*", TQDir::Dirs | TQDir::Hidden, TQDir::Name);
+ for(TQStringList::Iterator filename = subDirs.begin() ; filename != subDirs.end() ; ++filename) {
+ if(info->shouldTerminate()) return;
+ if(!(*filename == "." || *filename == "..")) {
+ importDirContents(info, subfolders.filePath(*filename));
+ }
+ }
+}
+
+
+/**
+ * Extract the X-Status flag from a mailfile
+ * @param info Information storage for the operation.
+ * @param fileName The full path to the file to import
+ */
+TQString FilterKMail_maildir::getMessageFlags( FilterInfo *info, const TQString& fileName ) {
+
+ TQString status_flag = "";
+
+ TQFile mailfile( fileName );
+ if (! mailfile.open( IO_ReadOnly ) ) {
+ info->alert( i18n("Unable to open %1, skipping").arg( fileName ) );
+ return status_flag;
+ } else {
+
+ TQByteArray input(MAX_LINE);
+
+ while ( !mailfile.atEnd() && status_flag.isEmpty()) {
+ TQCString seperate;
+
+ while ( ! mailfile.atEnd() && mailfile.readLine(input.data(),MAX_LINE) ) {
+
+ if ((seperate = input.data()).left(10) == "X-Status: ") {
+ status_flag = seperate;
+ status_flag.remove("X-Status: ");
+ status_flag = status_flag.stripWhiteSpace();
+ // tqDebug("status_flag: %s", status_flag.latin1() );
+ break;
+ }
+ }
+ }
+ mailfile.close();
+ }
+ return status_flag;
+}
+
+
+/**
+ * Import the files within a Folder.
+ * @param info Information storage for the operation.
+ * @param dirName The name of the directory to import.
+ */
+void FilterKMail_maildir::importFiles( FilterInfo *info, const TQString& dirName)
+{
+
+ TQDir dir(dirName);
+ TQString _path;
+ bool generatedPath = false;
+
+ TQDir importDir (dirName);
+ TQStringList files = importDir.entryList("[^\\.]*", TQDir::Files, TQDir::Name);
+ int currentFile = 1, numFiles = files.size();
+ for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile, ++currentFile) {
+ if(info->shouldTerminate()) return;
+
+ TQString temp_mailfile = *mailFile;
+
+ if (!(temp_mailfile.endsWith(".index") || temp_mailfile.endsWith(".index.ids") ||
+ temp_mailfile.endsWith(".index.sorted") || temp_mailfile.endsWith(".uidcache") )) {
+ if(!generatedPath) {
+ _path = "KMail-Import";
+ TQString _tmp = dir.filePath(*mailFile);
+ _tmp = _tmp.remove( mailDir ,TRUE);
+ TQStringList subFList = TQStringList::split("/",_tmp,FALSE);
+ for ( TQStringList::Iterator it = subFList.begin(); it != subFList.end(); ++it ) {
+ TQString _cat = *it;
+ if(!(_cat == *mailFile)) {
+ if(_cat.startsWith(".") && _cat.endsWith(".directory")) {
+ _cat.remove(0,1);
+ _cat.remove((_cat.length() - 10), 10);
+ } else if (_cat.startsWith(".")) {
+ _cat = _cat.remove(0 , 1);
+ }
+ _path += "/" + _cat;
+ }
+ }
+ if(_path.endsWith("cur"))
+ _path.remove(_path.length() - 4 , 4);
+ TQString _info = _path;
+ info->addLog(i18n("Import folder %1...").arg(_info.remove(0,12)));
+ info->setFrom(_info);
+ info->setTo(_path);
+ generatedPath = true;
+ }
+
+ TQString msg_flag = getMessageFlags(info, dir.filePath(*mailFile));
+
+ if(info->removeDupMsg) {
+ if(! addMessage( info, _path, dir.filePath(*mailFile), msg_flag )) {
+ info->addLog( i18n("Could not import %1").arg( *mailFile ) );
+ }
+ info->setCurrent((int) ((float) currentFile / numFiles * 100));
+ } else {
+ if(! addMessage_fastImport( info, _path, dir.filePath(*mailFile), msg_flag )) {
+ info->addLog( i18n("Could not import %1").arg( *mailFile ) );
+ }
+ info->setCurrent((int) ((float) currentFile / numFiles * 100));
+ }
+ }
+ }
+}
+
diff --git a/kmailcvt/filter_kmail_maildir.cxx b/kmailcvt/filter_kmail_maildir.cxx
deleted file mode 100644
index 9d642814..00000000
--- a/kmailcvt/filter_kmail_maildir.cxx
+++ /dev/null
@@ -1,218 +0,0 @@
-/***************************************************************************
- filter_kmail_maildir.cxx - Kmail maildir mail import
- -------------------
- begin : April 06 2005
- copyright : (C) 2005 by Danny Kukawka
- email : danny.kukawka@web.de
-***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include "filter_kmail_maildir.hxx"
-
-#include <config.h>
-#include <tdelocale.h>
-#include <tdefiledialog.h>
-
-/** Default constructor. */
-FilterKMail_maildir::FilterKMail_maildir( void ) :
- Filter( i18n( "Import KMail Maildirs and Folder Structure" ),
- "Danny Kukawka",
- i18n( "<p><b>KMail import filter</b></p>"
- "<p>Select the base directory of the KMail mailfolder you want to import.</p>"
- "<p><b>Note:</b> Never select your current local KMail maildir (usually "
- "~/Mail or ~/.trinity/share/apps/kmail/mail ): in this case, KMailCVT may become stuck "
- "in a continuous loop. </p>"
- "<p>This filter does not import KMail mailfolders with mbox files.</p>"
- "<p>Since it is possible to recreate the folder structure, the folders "
- "will be stored under: \"KMail-Import\" in your local folder.</p>" ) )
-{}
-
-/** Destructor. */
-FilterKMail_maildir::~FilterKMail_maildir( void )
-{
-}
-
-/** Recursive import of KMail maildir. */
-void FilterKMail_maildir::import( FilterInfo *info )
-{
-
- TQString _homeDir = TQDir::homeDirPath();
-
- KFileDialog *kfd;
- kfd = new KFileDialog( _homeDir, "", 0, "tdefiledialog", true );
- kfd->setMode( KFile::Directory | KFile::LocalOnly );
- kfd->exec();
- mailDir = kfd->selectedFile();
- delete kfd;
-
- if ( mailDir.isEmpty() ) {
- info->alert( i18n( "No directory selected." ) );
- }
- /**
- * If the user only select homedir no import needed because
- * there should be no files and we surely import wrong files.
- */
- else if ( mailDir == TQDir::homeDirPath() || mailDir == ( TQDir::homeDirPath() + "/" ) ) {
- info->addLog( i18n( "No files found for import." ) );
- } else {
- info->setOverall(0);
-
- /** Recursive import of the MailArchives */
- TQDir dir(mailDir);
- TQStringList rootSubDirs = dir.entryList("*", TQDir::Dirs | TQDir::Hidden, TQDir::Name);
- int currentDir = 1, numSubDirs = rootSubDirs.size();
- for(TQStringList::Iterator filename = rootSubDirs.begin() ; filename != rootSubDirs.end() ; ++filename, ++currentDir) {
- if(info->shouldTerminate()) break;
- if(!(*filename == "." || *filename == "..")) {
- info->setCurrent(0);
- importDirContents(info, dir.filePath(*filename));
- info->setOverall((int) ((float) currentDir / numSubDirs * 100));
- info->setCurrent(100);
- }
- }
- }
-
- info->addLog( i18n("Finished importing emails from %1").arg( mailDir ));
- if (count_duplicates > 0) {
- info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
- }
- if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
- count_duplicates = 0;
- info->setCurrent(100);
- info->setOverall(100);
-}
-
-/**
- * Import of a directory contents.
- * @param info Information storage for the operation.
- * @param dirName The name of the directory to import.
- */
-void FilterKMail_maildir::importDirContents( FilterInfo *info, const TQString& dirName)
-{
-
- /** Here Import all archives in the current dir */
- importFiles(info, dirName);
-
- /** If there are subfolders, we import them one by one */
-
- TQDir subfolders(dirName);
- TQStringList subDirs = subfolders.entryList("*", TQDir::Dirs | TQDir::Hidden, TQDir::Name);
- for(TQStringList::Iterator filename = subDirs.begin() ; filename != subDirs.end() ; ++filename) {
- if(info->shouldTerminate()) return;
- if(!(*filename == "." || *filename == "..")) {
- importDirContents(info, subfolders.filePath(*filename));
- }
- }
-}
-
-
-/**
- * Extract the X-Status flag from a mailfile
- * @param info Information storage for the operation.
- * @param fileName The full path to the file to import
- */
-TQString FilterKMail_maildir::getMessageFlags( FilterInfo *info, const TQString& fileName ) {
-
- TQString status_flag = "";
-
- TQFile mailfile( fileName );
- if (! mailfile.open( IO_ReadOnly ) ) {
- info->alert( i18n("Unable to open %1, skipping").arg( fileName ) );
- return status_flag;
- } else {
-
- TQByteArray input(MAX_LINE);
-
- while ( !mailfile.atEnd() && status_flag.isEmpty()) {
- TQCString seperate;
-
- while ( ! mailfile.atEnd() && mailfile.readLine(input.data(),MAX_LINE) ) {
-
- if ((seperate = input.data()).left(10) == "X-Status: ") {
- status_flag = seperate;
- status_flag.remove("X-Status: ");
- status_flag = status_flag.stripWhiteSpace();
- // tqDebug("status_flag: %s", status_flag.latin1() );
- break;
- }
- }
- }
- mailfile.close();
- }
- return status_flag;
-}
-
-
-/**
- * Import the files within a Folder.
- * @param info Information storage for the operation.
- * @param dirName The name of the directory to import.
- */
-void FilterKMail_maildir::importFiles( FilterInfo *info, const TQString& dirName)
-{
-
- TQDir dir(dirName);
- TQString _path;
- bool generatedPath = false;
-
- TQDir importDir (dirName);
- TQStringList files = importDir.entryList("[^\\.]*", TQDir::Files, TQDir::Name);
- int currentFile = 1, numFiles = files.size();
- for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile, ++currentFile) {
- if(info->shouldTerminate()) return;
-
- TQString temp_mailfile = *mailFile;
-
- if (!(temp_mailfile.endsWith(".index") || temp_mailfile.endsWith(".index.ids") ||
- temp_mailfile.endsWith(".index.sorted") || temp_mailfile.endsWith(".uidcache") )) {
- if(!generatedPath) {
- _path = "KMail-Import";
- TQString _tmp = dir.filePath(*mailFile);
- _tmp = _tmp.remove( mailDir ,TRUE);
- TQStringList subFList = TQStringList::split("/",_tmp,FALSE);
- for ( TQStringList::Iterator it = subFList.begin(); it != subFList.end(); ++it ) {
- TQString _cat = *it;
- if(!(_cat == *mailFile)) {
- if(_cat.startsWith(".") && _cat.endsWith(".directory")) {
- _cat.remove(0,1);
- _cat.remove((_cat.length() - 10), 10);
- } else if (_cat.startsWith(".")) {
- _cat = _cat.remove(0 , 1);
- }
- _path += "/" + _cat;
- }
- }
- if(_path.endsWith("cur"))
- _path.remove(_path.length() - 4 , 4);
- TQString _info = _path;
- info->addLog(i18n("Import folder %1...").arg(_info.remove(0,12)));
- info->setFrom(_info);
- info->setTo(_path);
- generatedPath = true;
- }
-
- TQString msg_flag = getMessageFlags(info, dir.filePath(*mailFile));
-
- if(info->removeDupMsg) {
- if(! addMessage( info, _path, dir.filePath(*mailFile), msg_flag )) {
- info->addLog( i18n("Could not import %1").arg( *mailFile ) );
- }
- info->setCurrent((int) ((float) currentFile / numFiles * 100));
- } else {
- if(! addMessage_fastImport( info, _path, dir.filePath(*mailFile), msg_flag )) {
- info->addLog( i18n("Could not import %1").arg( *mailFile ) );
- }
- info->setCurrent((int) ((float) currentFile / numFiles * 100));
- }
- }
- }
-}
-
diff --git a/kmailcvt/filter_kmail_maildir.h b/kmailcvt/filter_kmail_maildir.h
new file mode 100644
index 00000000..f0d8c6ac
--- /dev/null
+++ b/kmailcvt/filter_kmail_maildir.h
@@ -0,0 +1,43 @@
+/***************************************************************************
+ filter_kmail_maildir.h - Kmail maildir mail import
+ -------------------
+ begin : April 06 2005
+ copyright : (C) 2005 by Danny Kukawka
+ email : danny.kukawka@web.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+#ifndef FILTER_KMAIL_MAILDIR_H
+#define FILTER_KMAIL_MAILDIR_H
+
+#include "filters.h"
+
+/**
+ * Imports KMail mail folder with maildir format recursively, recreating the folder structure.
+ * @author Danny Kukawka
+ */
+class FilterKMail_maildir : public Filter
+{
+public:
+ FilterKMail_maildir(void);
+ ~FilterKMail_maildir(void);
+
+ void import(FilterInfo *info);
+
+private:
+ TQString mailDir;
+
+ TQString getMessageFlags(FilterInfo*, const TQString&);
+
+ void importDirContents(FilterInfo*, const TQString&);
+ void importFiles(FilterInfo*, const TQString&);
+};
+
+#endif
diff --git a/kmailcvt/filter_kmail_maildir.hxx b/kmailcvt/filter_kmail_maildir.hxx
deleted file mode 100644
index 66f44490..00000000
--- a/kmailcvt/filter_kmail_maildir.hxx
+++ /dev/null
@@ -1,43 +0,0 @@
-/***************************************************************************
- filter_kmail_maildir.hxx - Kmail maildir mail import
- -------------------
- begin : April 06 2005
- copyright : (C) 2005 by Danny Kukawka
- email : danny.kukawka@web.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-#ifndef FILTER_KMAIL_MAILDIR_HXX
-#define FILTER_KMAIL_MAILDIR_HXX
-
-#include "filters.hxx"
-
-/**
- * Imports KMail mail folder with maildir format recursively, recreating the folder structure.
- * @author Danny Kukawka
- */
-class FilterKMail_maildir : public Filter
-{
-public:
- FilterKMail_maildir(void);
- ~FilterKMail_maildir(void);
-
- void import(FilterInfo *info);
-
-private:
- TQString mailDir;
-
- TQString getMessageFlags(FilterInfo*, const TQString&);
-
- void importDirContents(FilterInfo*, const TQString&);
- void importFiles(FilterInfo*, const TQString&);
-};
-
-#endif
diff --git a/kmailcvt/filter_lnotes.cpp b/kmailcvt/filter_lnotes.cpp
new file mode 100644
index 00000000..7733c1c1
--- /dev/null
+++ b/kmailcvt/filter_lnotes.cpp
@@ -0,0 +1,157 @@
+/***************************************************************************
+ filter_lnotes.cpp - Lotus Notes Structured Text mail import
+ -------------------
+ begin : Wed Feb 16, 2005
+ copyright : (C) 2005 by Robert Rockers
+ email : tdeconfigure@rockerssoft.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <config.h>
+
+#include <tdelocale.h>
+#include <tdefiledialog.h>
+#include <tdetempfile.h>
+#include <kdebug.h>
+#include <tqfileinfo.h>
+
+#include "filter_lnotes.h"
+
+/** Default constructor. */
+FilterLNotes::FilterLNotes() :
+ Filter( i18n("Import Lotus Notes Emails"),
+ "Robert Rockers",
+ i18n("<p><b>Lotus Notes Structured Text mail import filter</b></p>"
+ "<p>This filter will import Structured Text files from an exported Lotus Notes email "
+ "client into KMail. Use this filter if you want to import mails from Lotus or other "
+ "mailers that use the Lotus Notes Structured Text format.</p>"
+ "<p><b>Note:</b> Since it is possible to recreate the folder structure, the imported "
+ "messages will be stored in subfolders under: \"LNotes-Import\", in your local folder, "
+ "named using the names of the files the messages came from.</p>"))
+{}
+
+/** Destructor. */
+FilterLNotes::~FilterLNotes() {
+}
+
+/**
+ * Recursive import of The Bat! maildir.
+ * @param info Information storage for the operation.
+ */
+void FilterLNotes::import(FilterInfo *info) {
+
+ inf = info;
+ currentFile = 1;
+ totalFiles = 0;
+
+ TQStringList filenames = KFileDialog::getOpenFileNames( TQDir::homeDirPath(), "*|" + i18n("All Files (*)"),
+ inf->parent() );
+ totalFiles = filenames.count();
+ inf->setOverall(0);
+
+ // See filter_mbox.cpp for better reference.
+ for ( TQStringList::Iterator filename = filenames.begin(); filename != filenames.end(); ++filename ) {
+
+ ++currentFile;
+ info->addLog( i18n("Importing emails from %1").arg(*filename) );
+ ImportLNotes( *filename );
+ inf->setOverall( 100 * currentFile / totalFiles );
+ if ( info->shouldTerminate() )
+ break;
+ }
+}
+
+/**
+ * Import the files within a Folder.
+ * @param file The name of the file to import.
+ */
+void FilterLNotes::ImportLNotes(const TQString& file) {
+
+ // See Filter_pmail.cpp for better reference
+
+ // Format of a Lotus Notes 5 Structured Text Document w form feed
+ // Each email begins with a custom Header Principal:
+ // The Message ends with a 0c character
+
+ // open the message
+ TQFile f(file);
+
+ if (! f.open( IO_ReadOnly ) ) {
+ inf->alert( i18n("Unable to open %1, skipping").arg( file ) );
+ } else {
+
+ int ch = 0;
+ int state = 0;
+ int n = 0;
+ KTempFile *tempfile = 0;
+
+ // Get folder name
+ TQFileInfo filenameInfo( file );
+ TQString folder("LNotes-Import/" + filenameInfo.baseName(TRUE));
+ inf->setTo(folder);
+
+ // State machine to read the data in. The fgetc usage is probably terribly slow ...
+ while ((ch = f.getch()) >= 0) {
+ switch (state) {
+ // new message state
+ case 0:
+ // open temp output file
+ tempfile = new KTempFile;
+ state = 1;
+ inf->setCurrent(i18n("Message %1").arg(n++));
+ if ( inf->shouldTerminate() )
+ return;
+ // fall through
+
+ // inside a message state
+ case 1:
+ if (ch == 0x0c) {
+ // close file, send it
+ tempfile->close();
+
+ if(inf->removeDupMsg)
+ addMessage( inf, folder, tempfile->name() );
+ else
+ addMessage_fastImport( inf, folder, tempfile->name() );
+
+ tempfile->unlink();
+ state = 0;
+
+ int currentPercentage = (int) ( ( (float) f.at() / filenameInfo.size() ) * 100 );
+ inf->setCurrent( currentPercentage );
+ if ( inf->shouldTerminate() )
+ return;
+
+ break;
+ }
+ if (ch == 0x0d) {
+ break;
+ }
+ tempfile->file()->putch(ch);
+ break;
+ }
+ }
+
+ // did Folder end without 0x1a at the end?
+ if (state != 0) {
+ tempfile->close();
+
+ if(inf->removeDupMsg)
+ addMessage( inf, folder, tempfile->name() );
+ else
+ addMessage_fastImport( inf, folder, tempfile->name() );
+
+ tempfile->unlink();
+ delete tempfile;
+ }
+ f.close();
+ }
+}
diff --git a/kmailcvt/filter_lnotes.cxx b/kmailcvt/filter_lnotes.cxx
deleted file mode 100644
index af92e1b4..00000000
--- a/kmailcvt/filter_lnotes.cxx
+++ /dev/null
@@ -1,157 +0,0 @@
-/***************************************************************************
- filter_lnotes.cxx - Lotus Notes Structured Text mail import
- -------------------
- begin : Wed Feb 16, 2005
- copyright : (C) 2005 by Robert Rockers
- email : tdeconfigure@rockerssoft.com
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include <config.h>
-
-#include <tdelocale.h>
-#include <tdefiledialog.h>
-#include <tdetempfile.h>
-#include <kdebug.h>
-#include <tqfileinfo.h>
-
-#include "filter_lnotes.hxx"
-
-/** Default constructor. */
-FilterLNotes::FilterLNotes() :
- Filter( i18n("Import Lotus Notes Emails"),
- "Robert Rockers",
- i18n("<p><b>Lotus Notes Structured Text mail import filter</b></p>"
- "<p>This filter will import Structured Text files from an exported Lotus Notes email "
- "client into KMail. Use this filter if you want to import mails from Lotus or other "
- "mailers that use the Lotus Notes Structured Text format.</p>"
- "<p><b>Note:</b> Since it is possible to recreate the folder structure, the imported "
- "messages will be stored in subfolders under: \"LNotes-Import\", in your local folder, "
- "named using the names of the files the messages came from.</p>"))
-{}
-
-/** Destructor. */
-FilterLNotes::~FilterLNotes() {
-}
-
-/**
- * Recursive import of The Bat! maildir.
- * @param info Information storage for the operation.
- */
-void FilterLNotes::import(FilterInfo *info) {
-
- inf = info;
- currentFile = 1;
- totalFiles = 0;
-
- TQStringList filenames = KFileDialog::getOpenFileNames( TQDir::homeDirPath(), "*|" + i18n("All Files (*)"),
- inf->parent() );
- totalFiles = filenames.count();
- inf->setOverall(0);
-
- // See filter_mbox.cxx for better reference.
- for ( TQStringList::Iterator filename = filenames.begin(); filename != filenames.end(); ++filename ) {
-
- ++currentFile;
- info->addLog( i18n("Importing emails from %1").arg(*filename) );
- ImportLNotes( *filename );
- inf->setOverall( 100 * currentFile / totalFiles );
- if ( info->shouldTerminate() )
- break;
- }
-}
-
-/**
- * Import the files within a Folder.
- * @param file The name of the file to import.
- */
-void FilterLNotes::ImportLNotes(const TQString& file) {
-
- // See Filter_pmail.cxx for better reference
-
- // Format of a Lotus Notes 5 Structured Text Document w form feed
- // Each email begins with a custom Header Principal:
- // The Message ends with a 0c character
-
- // open the message
- TQFile f(file);
-
- if (! f.open( IO_ReadOnly ) ) {
- inf->alert( i18n("Unable to open %1, skipping").arg( file ) );
- } else {
-
- int ch = 0;
- int state = 0;
- int n = 0;
- KTempFile *tempfile = 0;
-
- // Get folder name
- TQFileInfo filenameInfo( file );
- TQString folder("LNotes-Import/" + filenameInfo.baseName(TRUE));
- inf->setTo(folder);
-
- // State machine to read the data in. The fgetc usage is probably terribly slow ...
- while ((ch = f.getch()) >= 0) {
- switch (state) {
- // new message state
- case 0:
- // open temp output file
- tempfile = new KTempFile;
- state = 1;
- inf->setCurrent(i18n("Message %1").arg(n++));
- if ( inf->shouldTerminate() )
- return;
- // fall through
-
- // inside a message state
- case 1:
- if (ch == 0x0c) {
- // close file, send it
- tempfile->close();
-
- if(inf->removeDupMsg)
- addMessage( inf, folder, tempfile->name() );
- else
- addMessage_fastImport( inf, folder, tempfile->name() );
-
- tempfile->unlink();
- state = 0;
-
- int currentPercentage = (int) ( ( (float) f.at() / filenameInfo.size() ) * 100 );
- inf->setCurrent( currentPercentage );
- if ( inf->shouldTerminate() )
- return;
-
- break;
- }
- if (ch == 0x0d) {
- break;
- }
- tempfile->file()->putch(ch);
- break;
- }
- }
-
- // did Folder end without 0x1a at the end?
- if (state != 0) {
- tempfile->close();
-
- if(inf->removeDupMsg)
- addMessage( inf, folder, tempfile->name() );
- else
- addMessage_fastImport( inf, folder, tempfile->name() );
-
- tempfile->unlink();
- delete tempfile;
- }
- f.close();
- }
-}
diff --git a/kmailcvt/filter_lnotes.h b/kmailcvt/filter_lnotes.h
new file mode 100644
index 00000000..bf5cd91c
--- /dev/null
+++ b/kmailcvt/filter_lnotes.h
@@ -0,0 +1,53 @@
+/***************************************************************************
+ filter_lnotes.h - Lotus Notes Structured Text mail import
+ -------------------
+ begin : Wed Feb 16, 2005
+ copyright : (C) 2005 by Robert Rockers
+ email : tdeconfigure@rockerssoft.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef FILTER_LNOTES_H
+#define FILTER_LNOTES_H
+
+#include "filters.h"
+
+/**imports Lotus Notes Structured Text Archives and archvies messages into KMail
+ *@author Robert Rockers
+ */
+
+class FilterLNotes : public Filter {
+
+public:
+ FilterLNotes();
+ ~FilterLNotes();
+ /** Standard import filter... starting line for our import */
+ void import(FilterInfo *info);
+
+private:
+ /** the working directory */
+ TQDir dir;
+ /** Our Filterinfo stuff... important methods for getting the email imported */
+ FilterInfo * inf;
+ /** which file (of totalFiles) is now in the work? */
+ int currentFile;
+ /** total number of files that get imported */
+ int totalFiles;
+
+ /**
+ * This is were all the real action is gonna be handled.
+ * Gets called once for EACH file imported
+ */
+ void ImportLNotes(const TQString& file);
+
+};
+
+#endif
diff --git a/kmailcvt/filter_lnotes.hxx b/kmailcvt/filter_lnotes.hxx
deleted file mode 100644
index 430ae83e..00000000
--- a/kmailcvt/filter_lnotes.hxx
+++ /dev/null
@@ -1,53 +0,0 @@
-/***************************************************************************
- filter_lnotes.hxx - Lotus Notes Structured Text mail import
- -------------------
- begin : Wed Feb 16, 2005
- copyright : (C) 2005 by Robert Rockers
- email : tdeconfigure@rockerssoft.com
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#ifndef FILTER_LNOTES_HXX
-#define FILTER_LNOTES_HXX
-
-#include "filters.hxx"
-
-/**imports Lotus Notes Structured Text Archives and archvies messages into KMail
- *@author Robert Rockers
- */
-
-class FilterLNotes : public Filter {
-
-public:
- FilterLNotes();
- ~FilterLNotes();
- /** Standard import filter... starting line for our import */
- void import(FilterInfo *info);
-
-private:
- /** the working directory */
- TQDir dir;
- /** Our Filterinfo stuff... important methods for getting the email imported */
- FilterInfo * inf;
- /** which file (of totalFiles) is now in the work? */
- int currentFile;
- /** total number of files that get imported */
- int totalFiles;
-
- /**
- * This is were all the real action is gonna be handled.
- * Gets called once for EACH file imported
- */
- void ImportLNotes(const TQString& file);
-
-};
-
-#endif
diff --git a/kmailcvt/filter_mailapp.cpp b/kmailcvt/filter_mailapp.cpp
new file mode 100644
index 00000000..1da632ec
--- /dev/null
+++ b/kmailcvt/filter_mailapp.cpp
@@ -0,0 +1,168 @@
+/***************************************************************************
+ filter_mailapp.cpp - OS X Mail App import
+ -------------------
+ copyright : (C) 2004 by Chris Howells
+ email : howells@kde.org
+
+ Derived from code by:
+ copyright : (C) 2003 by Laurence Anderson
+ email : l.d.anderson@warwick.ac.uk
+
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+
+#include <config.h>
+#include <tdelocale.h>
+#include <tdefiledialog.h>
+#include <tdetempfile.h>
+#include <kdebug.h>
+
+#include "filter_mailapp.h"
+
+FilterMailApp::FilterMailApp() :
+ Filter( i18n("Import From OS X Mail"),
+ "Chris Howells<br /><br />Filter accelerated by Danny Kukawka )",
+ i18n("<p><b>OS X Mail Import Filter</b></p>"
+ "<p>This filter imports e-mails from the Mail client in Apple Mac OS X.</p>"))
+{}
+
+FilterMailApp::~FilterMailApp()
+{
+}
+
+void FilterMailApp::import(FilterInfo *info)
+{
+ int currentFile = 1;
+ int overall_status = 0;
+ bool first_msg = true;
+
+ TQString directory = KFileDialog::getExistingDirectory( TQDir::homeDirPath(), info->parent() );
+
+ //tqDebug("starting by looking in directory: %s", directory.latin1());
+ if ( directory.isEmpty() ) {
+ info->addLog( i18n("No directory selected."));
+ info->addLog( i18n("No files found for import."));
+ } else {
+ info->setOverall(0);
+ traverseDirectory(info, directory);
+
+ for ( TQStringList::Iterator filename = mMboxFiles.begin(); filename != mMboxFiles.end(); ++filename, ++currentFile) {
+ if ( info->shouldTerminate() ) break;
+ TQFile mbox( *filename );
+ if (! mbox.open( IO_ReadOnly ) ) {
+ info->alert( i18n("Unable to open %1, skipping").arg( *filename ) );
+ } else {
+ TQFileInfo filenameInfo( *filename );
+ kdDebug() << "importing filename " << *filename << endl;
+ TQStringList name = TQStringList::split("/", *filename);
+ TQString folderName(name[name.count() - 2]);
+
+ info->setCurrent(0);
+ info->addLog( i18n("Importing emails from %1...").arg( *filename ) );
+ info->setFrom( *filename );
+ info->setTo( folderName );
+
+ TQByteArray input(MAX_LINE);
+ long l = 0;
+
+ while ( ! mbox.atEnd() ) {
+ KTempFile tmp;
+ /* comment by Danny:
+ * Don't use TQTextStream to read from mbox, etter use TQDataStream. TQTextStream only
+ * support Unicode/Latin1/Locale. So you lost information from emails with
+ * charset!=Unicode/Latin1/Locale (e.g. KOI8-R) and Content-Transfer-Encoding != base64
+ * (e.g. 8Bit). It also not help to convert the TQTextStream to Unicode. By this you
+ * get Unicode/UTF-email but KMail can't detect the correct charset.
+ */
+ TQCString seperate;
+
+ if(!first_msg)
+ tmp.file()->writeBlock( input, l );
+ l = mbox.readLine( input.data(),MAX_LINE); // read the first line, prevent "From "
+ tmp.file()->writeBlock( input, l );
+
+ while ( ! mbox.atEnd() && (l = mbox.readLine(input.data(),MAX_LINE)) && ((seperate = input.data()).left(5) != "From ")) {
+ tmp.file()->writeBlock( input, l );
+ }
+ tmp.close();
+ first_msg = false;
+
+ // force stop if user chancel the import
+ if ( info->shouldTerminate() ) {
+ tmp.unlink();
+ break;
+ }
+
+ /* comment by Danny Kukawka:
+ * addMessage() == old function, need more time and check for duplicates
+ * addMessage_fastImport == new function, faster and no check for duplicates
+ */
+ if(info->removeDupMsg)
+ addMessage( info, folderName, tmp.name() );
+ else
+ addMessage_fastImport( info, folderName, tmp.name() );
+
+ tmp.unlink();
+
+ int currentPercentage = (int) ( ( (float) mbox.at() / filenameInfo.size() ) * 100 );
+ info->setCurrent( currentPercentage );
+ if (currentFile == 1)
+ overall_status = (int)( currentPercentage*((float)currentFile/mMboxFiles.count()));
+ else
+ overall_status = (int)(((currentFile-1)*(100.0/(float)mMboxFiles.count()))+(currentPercentage*(1.0/(float)mMboxFiles.count())));
+ info->setOverall( overall_status );
+ if ( info->shouldTerminate() ) break;
+ }
+
+ info->addLog( i18n("Finished importing emails from %1").arg( *filename ) );
+ if (count_duplicates > 0) {
+ info->addLog( i18n("1 duplicate message not imported to folder %1 in KMail",
+ "%n duplicate messages not imported to folder %1 in KMail", count_duplicates).arg(folderName));
+ }
+ count_duplicates = 0;
+ mbox.close();
+ }
+ }
+ }
+
+ if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
+ info->setCurrent(100);
+ info->setOverall(100);
+}
+
+void FilterMailApp::traverseDirectory(FilterInfo *info, const TQString &dirName)
+{
+ TQDir dir(dirName);
+ dir.setFilter(TQDir::Dirs | TQDir::Files);
+
+ const TQFileInfoList *fileinfolist = dir.entryInfoList();
+ TQFileInfoListIterator it(*fileinfolist);
+ TQFileInfo *fi;
+
+ if ( info->shouldTerminate() ) return;
+
+ while ((fi = it.current())) {
+ if (fi->fileName() == "." || fi->fileName() == "..") {
+ ++it;
+ continue;
+ }
+ if (fi->isDir() && fi->isReadable()) {
+ traverseDirectory(info, fi->filePath());
+ } else {
+ if (!fi->isDir() && fi->fileName() == "mbox") {
+ kdDebug() << "adding the file " << fi->filePath() << endl;
+ mMboxFiles.append(fi->filePath());
+ }
+ }
+ ++it;
+ }
+}
diff --git a/kmailcvt/filter_mailapp.cxx b/kmailcvt/filter_mailapp.cxx
deleted file mode 100644
index fded411d..00000000
--- a/kmailcvt/filter_mailapp.cxx
+++ /dev/null
@@ -1,168 +0,0 @@
-/***************************************************************************
- filter_mailapp.cxx - OS X Mail App import
- -------------------
- copyright : (C) 2004 by Chris Howells
- email : howells@kde.org
-
- Derived from code by:
- copyright : (C) 2003 by Laurence Anderson
- email : l.d.anderson@warwick.ac.uk
-
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-
-#include <config.h>
-#include <tdelocale.h>
-#include <tdefiledialog.h>
-#include <tdetempfile.h>
-#include <kdebug.h>
-
-#include "filter_mailapp.hxx"
-
-FilterMailApp::FilterMailApp() :
- Filter( i18n("Import From OS X Mail"),
- "Chris Howells<br /><br />Filter accelerated by Danny Kukawka )",
- i18n("<p><b>OS X Mail Import Filter</b></p>"
- "<p>This filter imports e-mails from the Mail client in Apple Mac OS X.</p>"))
-{}
-
-FilterMailApp::~FilterMailApp()
-{
-}
-
-void FilterMailApp::import(FilterInfo *info)
-{
- int currentFile = 1;
- int overall_status = 0;
- bool first_msg = true;
-
- TQString directory = KFileDialog::getExistingDirectory( TQDir::homeDirPath(), info->parent() );
-
- //tqDebug("starting by looking in directory: %s", directory.latin1());
- if ( directory.isEmpty() ) {
- info->addLog( i18n("No directory selected."));
- info->addLog( i18n("No files found for import."));
- } else {
- info->setOverall(0);
- traverseDirectory(info, directory);
-
- for ( TQStringList::Iterator filename = mMboxFiles.begin(); filename != mMboxFiles.end(); ++filename, ++currentFile) {
- if ( info->shouldTerminate() ) break;
- TQFile mbox( *filename );
- if (! mbox.open( IO_ReadOnly ) ) {
- info->alert( i18n("Unable to open %1, skipping").arg( *filename ) );
- } else {
- TQFileInfo filenameInfo( *filename );
- kdDebug() << "importing filename " << *filename << endl;
- TQStringList name = TQStringList::split("/", *filename);
- TQString folderName(name[name.count() - 2]);
-
- info->setCurrent(0);
- info->addLog( i18n("Importing emails from %1...").arg( *filename ) );
- info->setFrom( *filename );
- info->setTo( folderName );
-
- TQByteArray input(MAX_LINE);
- long l = 0;
-
- while ( ! mbox.atEnd() ) {
- KTempFile tmp;
- /* comment by Danny:
- * Don't use TQTextStream to read from mbox, etter use TQDataStream. TQTextStream only
- * support Unicode/Latin1/Locale. So you lost information from emails with
- * charset!=Unicode/Latin1/Locale (e.g. KOI8-R) and Content-Transfer-Encoding != base64
- * (e.g. 8Bit). It also not help to convert the TQTextStream to Unicode. By this you
- * get Unicode/UTF-email but KMail can't detect the correct charset.
- */
- TQCString seperate;
-
- if(!first_msg)
- tmp.file()->writeBlock( input, l );
- l = mbox.readLine( input.data(),MAX_LINE); // read the first line, prevent "From "
- tmp.file()->writeBlock( input, l );
-
- while ( ! mbox.atEnd() && (l = mbox.readLine(input.data(),MAX_LINE)) && ((seperate = input.data()).left(5) != "From ")) {
- tmp.file()->writeBlock( input, l );
- }
- tmp.close();
- first_msg = false;
-
- // force stop if user chancel the import
- if ( info->shouldTerminate() ) {
- tmp.unlink();
- break;
- }
-
- /* comment by Danny Kukawka:
- * addMessage() == old function, need more time and check for duplicates
- * addMessage_fastImport == new function, faster and no check for duplicates
- */
- if(info->removeDupMsg)
- addMessage( info, folderName, tmp.name() );
- else
- addMessage_fastImport( info, folderName, tmp.name() );
-
- tmp.unlink();
-
- int currentPercentage = (int) ( ( (float) mbox.at() / filenameInfo.size() ) * 100 );
- info->setCurrent( currentPercentage );
- if (currentFile == 1)
- overall_status = (int)( currentPercentage*((float)currentFile/mMboxFiles.count()));
- else
- overall_status = (int)(((currentFile-1)*(100.0/(float)mMboxFiles.count()))+(currentPercentage*(1.0/(float)mMboxFiles.count())));
- info->setOverall( overall_status );
- if ( info->shouldTerminate() ) break;
- }
-
- info->addLog( i18n("Finished importing emails from %1").arg( *filename ) );
- if (count_duplicates > 0) {
- info->addLog( i18n("1 duplicate message not imported to folder %1 in KMail",
- "%n duplicate messages not imported to folder %1 in KMail", count_duplicates).arg(folderName));
- }
- count_duplicates = 0;
- mbox.close();
- }
- }
- }
-
- if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
- info->setCurrent(100);
- info->setOverall(100);
-}
-
-void FilterMailApp::traverseDirectory(FilterInfo *info, const TQString &dirName)
-{
- TQDir dir(dirName);
- dir.setFilter(TQDir::Dirs | TQDir::Files);
-
- const TQFileInfoList *fileinfolist = dir.entryInfoList();
- TQFileInfoListIterator it(*fileinfolist);
- TQFileInfo *fi;
-
- if ( info->shouldTerminate() ) return;
-
- while ((fi = it.current())) {
- if (fi->fileName() == "." || fi->fileName() == "..") {
- ++it;
- continue;
- }
- if (fi->isDir() && fi->isReadable()) {
- traverseDirectory(info, fi->filePath());
- } else {
- if (!fi->isDir() && fi->fileName() == "mbox") {
- kdDebug() << "adding the file " << fi->filePath() << endl;
- mMboxFiles.append(fi->filePath());
- }
- }
- ++it;
- }
-}
diff --git a/kmailcvt/filter_mailapp.h b/kmailcvt/filter_mailapp.h
new file mode 100644
index 00000000..e562dbf7
--- /dev/null
+++ b/kmailcvt/filter_mailapp.h
@@ -0,0 +1,36 @@
+/***************************************************************************
+ filter_mailapp.h - OS X Mail App import
+ -------------------
+ copyright : (C) 2004 by Chris Howells
+ email : howells@kde.org
+
+ Derived from code by:
+ copyright : (C) 2003 by Laurence Anderson
+ email : l.d.anderson@warwick.ac.uk
+
+ ***************************************************************************/
+
+#ifndef FILTER_MAILAPP_H
+#define FILTER_MAILAPP_H
+
+#include "filters.h"
+
+/**
+ *imports mbox archives messages into KMail
+ *@author Chris Howells
+ */
+
+class FilterMailApp : public Filter
+{
+public:
+ FilterMailApp();
+ ~FilterMailApp();
+
+ void import(FilterInfo *info);
+
+private:
+ TQStringList mMboxFiles;
+ void traverseDirectory(FilterInfo *info, const TQString &);
+};
+
+#endif
diff --git a/kmailcvt/filter_mailapp.hxx b/kmailcvt/filter_mailapp.hxx
deleted file mode 100644
index 571f77ff..00000000
--- a/kmailcvt/filter_mailapp.hxx
+++ /dev/null
@@ -1,36 +0,0 @@
-/***************************************************************************
- filter_mailapp.hxx - OS X Mail App import
- -------------------
- copyright : (C) 2004 by Chris Howells
- email : howells@kde.org
-
- Derived from code by:
- copyright : (C) 2003 by Laurence Anderson
- email : l.d.anderson@warwick.ac.uk
-
- ***************************************************************************/
-
-#ifndef FILTER_MAILAPP_HXX
-#define FILTER_MAILAPP_HXX
-
-#include "filters.hxx"
-
-/**
- *imports mbox archives messages into KMail
- *@author Chris Howells
- */
-
-class FilterMailApp : public Filter
-{
-public:
- FilterMailApp();
- ~FilterMailApp();
-
- void import(FilterInfo *info);
-
-private:
- TQStringList mMboxFiles;
- void traverseDirectory(FilterInfo *info, const TQString &);
-};
-
-#endif
diff --git a/kmailcvt/filter_mbox.cpp b/kmailcvt/filter_mbox.cpp
new file mode 100644
index 00000000..c5f87e51
--- /dev/null
+++ b/kmailcvt/filter_mbox.cpp
@@ -0,0 +1,144 @@
+/***************************************************************************
+ filter_mbox.cpp - mbox mail import
+ -------------------
+ begin : Sat Apr 5 2003
+ copyright : (C) 2003 by Laurence Anderson
+ email : l.d.anderson@warwick.ac.uk
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <config.h>
+#include <tdelocale.h>
+#include <tdefiledialog.h>
+#include <tdetempfile.h>
+#include <kdebug.h>
+
+#include "filter_mbox.h"
+
+
+FilterMBox::FilterMBox() :
+ Filter( i18n("Import mbox Files (UNIX, Evolution)"),
+ "Laurence Anderson <p>( Filter accelerated by Danny Kukawka )</p>",
+ i18n("<p><b>mbox import filter</b></p>"
+ "<p>This filter will import mbox files into KMail. Use this filter "
+ "if you want to import mails from Ximian Evolution or other mailers "
+ "that use this traditional UNIX format.</p>"
+ "<p><b>Note:</b> Emails will be imported into folders named after the "
+ "file they came from, prefixed with MBOX-</p>" ))
+{}
+
+FilterMBox::~FilterMBox()
+{
+}
+
+void FilterMBox::import(FilterInfo *info)
+{
+ int currentFile = 1;
+ int overall_status = 0;
+ bool first_msg = true;
+
+ TQStringList filenames = KFileDialog::getOpenFileNames( TQDir::homeDirPath(), "*|" + i18n("mbox Files (*)"), info->parent() );
+ info->setOverall(0);
+
+ for ( TQStringList::Iterator filename = filenames.begin(); filename != filenames.end(); ++filename, ++currentFile) {
+ TQFile mbox( *filename );
+ if (! mbox.open( IO_ReadOnly ) ) {
+ info->alert( i18n("Unable to open %1, skipping").arg( *filename ) );
+ } else {
+ TQFileInfo filenameInfo( *filename );
+ TQString folderName( "MBOX-" + filenameInfo.baseName(TRUE) );
+
+ info->setCurrent(0);
+ info->addLog( i18n("Importing emails from %1...").arg( *filename ) );
+
+ info->setFrom( *filename );
+ info->setTo( folderName );
+
+ TQByteArray input(MAX_LINE);
+ long l = 0;
+
+ while ( ! mbox.atEnd() ) {
+ KTempFile tmp;
+ TQIODevice::Offset filepos = 0;
+ /* comment by Danny:
+ * Don't use TQTextStream to read from mbox, better use TQDataStream. TQTextStream only
+ * support Unicode/Latin1/Locale. So you lost information from emails with
+ * charset!=Unicode/Latin1/Locale (e.g. KOI8-R) and Content-Transfer-Encoding != base64
+ * (e.g. 8Bit). It also not help to convert the TQTextStream to Unicode. By this you
+ * get Unicode/UTF-email but KMail can't detect the correct charset.
+ */
+ TQCString seperate;
+ TQString x_status_flag = "";
+
+ /* check if the first line start with "From " (and not "From: ") and discard the line
+ * in this case because some IMAP servers (e.g. Cyrus) don't accept this header line */
+ if(!first_msg && ((seperate = input.data()).left(5) != "From "))
+ tmp.file()->writeBlock( input, l );
+
+ l = mbox.readLine( input.data(),MAX_LINE); // read the first line, prevent "From "
+
+ if ((seperate = input.data()).left(5) != "From ")
+ tmp.file()->writeBlock( input, l );
+
+ while ( ! mbox.atEnd() && (l = mbox.readLine(input.data(),MAX_LINE)) && ((seperate = input.data()).left(5) != "From ")) {
+ tmp.file()->writeBlock( input, l );
+
+ if ((seperate = input.data()).left(10) == "X-Status: ") {
+ x_status_flag = seperate;
+ x_status_flag.remove("X-Status: ");
+ x_status_flag = x_status_flag.stripWhiteSpace();
+ // tqDebug("x_status_flag: %s", x_status_flag.latin1() );
+ }
+
+ // workaround to fix hang if a corrupted mbox contains some
+ // binary data, for more see bug #106796
+ if (mbox.at() == filepos)
+ mbox.at(mbox.size());
+ else
+ filepos = mbox.at();
+ }
+ tmp.close();
+ first_msg = false;
+
+ /* comment by Danny Kukawka:
+ * addMessage() == old function, need more time and check for duplicates
+ * addMessage_fastImport == new function, faster and no check for duplicates
+ */
+ if(info->removeDupMsg)
+ addMessage( info, folderName, tmp.name(), x_status_flag );
+ else
+ addMessage_fastImport( info, folderName, tmp.name(), x_status_flag );
+
+ tmp.unlink();
+ int currentPercentage = (int) ( ( (float) mbox.at() / filenameInfo.size() ) * 100 );
+ info->setCurrent( currentPercentage );
+ if (currentFile == 1)
+ overall_status = (int)( currentPercentage*((float)currentFile/filenames.count()));
+ else
+ overall_status = (int)(((currentFile-1)*(100.0/(float)filenames.count()))+(currentPercentage*(1.0/(float)filenames.count())));
+ info->setOverall( overall_status );
+
+ if ( info->shouldTerminate() ) break;
+ }
+
+ info->addLog( i18n("Finished importing emails from %1").arg( *filename ));
+ if (count_duplicates > 0) {
+ info->addLog( i18n("1 duplicate message not imported to folder %1 in KMail",
+ "%n duplicate messages not imported to folder %1 in KMail",
+ count_duplicates).arg(folderName));
+ }
+ if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
+ count_duplicates = 0;
+ // don't forget to close the file !!!
+ mbox.close();
+ }
+ }
+}
diff --git a/kmailcvt/filter_mbox.cxx b/kmailcvt/filter_mbox.cxx
deleted file mode 100644
index 19afccf2..00000000
--- a/kmailcvt/filter_mbox.cxx
+++ /dev/null
@@ -1,144 +0,0 @@
-/***************************************************************************
- filter_mbox.cxx - mbox mail import
- -------------------
- begin : Sat Apr 5 2003
- copyright : (C) 2003 by Laurence Anderson
- email : l.d.anderson@warwick.ac.uk
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include <config.h>
-#include <tdelocale.h>
-#include <tdefiledialog.h>
-#include <tdetempfile.h>
-#include <kdebug.h>
-
-#include "filter_mbox.hxx"
-
-
-FilterMBox::FilterMBox() :
- Filter( i18n("Import mbox Files (UNIX, Evolution)"),
- "Laurence Anderson <p>( Filter accelerated by Danny Kukawka )</p>",
- i18n("<p><b>mbox import filter</b></p>"
- "<p>This filter will import mbox files into KMail. Use this filter "
- "if you want to import mails from Ximian Evolution or other mailers "
- "that use this traditional UNIX format.</p>"
- "<p><b>Note:</b> Emails will be imported into folders named after the "
- "file they came from, prefixed with MBOX-</p>" ))
-{}
-
-FilterMBox::~FilterMBox()
-{
-}
-
-void FilterMBox::import(FilterInfo *info)
-{
- int currentFile = 1;
- int overall_status = 0;
- bool first_msg = true;
-
- TQStringList filenames = KFileDialog::getOpenFileNames( TQDir::homeDirPath(), "*|" + i18n("mbox Files (*)"), info->parent() );
- info->setOverall(0);
-
- for ( TQStringList::Iterator filename = filenames.begin(); filename != filenames.end(); ++filename, ++currentFile) {
- TQFile mbox( *filename );
- if (! mbox.open( IO_ReadOnly ) ) {
- info->alert( i18n("Unable to open %1, skipping").arg( *filename ) );
- } else {
- TQFileInfo filenameInfo( *filename );
- TQString folderName( "MBOX-" + filenameInfo.baseName(TRUE) );
-
- info->setCurrent(0);
- info->addLog( i18n("Importing emails from %1...").arg( *filename ) );
-
- info->setFrom( *filename );
- info->setTo( folderName );
-
- TQByteArray input(MAX_LINE);
- long l = 0;
-
- while ( ! mbox.atEnd() ) {
- KTempFile tmp;
- TQIODevice::Offset filepos = 0;
- /* comment by Danny:
- * Don't use TQTextStream to read from mbox, better use TQDataStream. TQTextStream only
- * support Unicode/Latin1/Locale. So you lost information from emails with
- * charset!=Unicode/Latin1/Locale (e.g. KOI8-R) and Content-Transfer-Encoding != base64
- * (e.g. 8Bit). It also not help to convert the TQTextStream to Unicode. By this you
- * get Unicode/UTF-email but KMail can't detect the correct charset.
- */
- TQCString seperate;
- TQString x_status_flag = "";
-
- /* check if the first line start with "From " (and not "From: ") and discard the line
- * in this case because some IMAP servers (e.g. Cyrus) don't accept this header line */
- if(!first_msg && ((seperate = input.data()).left(5) != "From "))
- tmp.file()->writeBlock( input, l );
-
- l = mbox.readLine( input.data(),MAX_LINE); // read the first line, prevent "From "
-
- if ((seperate = input.data()).left(5) != "From ")
- tmp.file()->writeBlock( input, l );
-
- while ( ! mbox.atEnd() && (l = mbox.readLine(input.data(),MAX_LINE)) && ((seperate = input.data()).left(5) != "From ")) {
- tmp.file()->writeBlock( input, l );
-
- if ((seperate = input.data()).left(10) == "X-Status: ") {
- x_status_flag = seperate;
- x_status_flag.remove("X-Status: ");
- x_status_flag = x_status_flag.stripWhiteSpace();
- // tqDebug("x_status_flag: %s", x_status_flag.latin1() );
- }
-
- // workaround to fix hang if a corrupted mbox contains some
- // binary data, for more see bug #106796
- if (mbox.at() == filepos)
- mbox.at(mbox.size());
- else
- filepos = mbox.at();
- }
- tmp.close();
- first_msg = false;
-
- /* comment by Danny Kukawka:
- * addMessage() == old function, need more time and check for duplicates
- * addMessage_fastImport == new function, faster and no check for duplicates
- */
- if(info->removeDupMsg)
- addMessage( info, folderName, tmp.name(), x_status_flag );
- else
- addMessage_fastImport( info, folderName, tmp.name(), x_status_flag );
-
- tmp.unlink();
- int currentPercentage = (int) ( ( (float) mbox.at() / filenameInfo.size() ) * 100 );
- info->setCurrent( currentPercentage );
- if (currentFile == 1)
- overall_status = (int)( currentPercentage*((float)currentFile/filenames.count()));
- else
- overall_status = (int)(((currentFile-1)*(100.0/(float)filenames.count()))+(currentPercentage*(1.0/(float)filenames.count())));
- info->setOverall( overall_status );
-
- if ( info->shouldTerminate() ) break;
- }
-
- info->addLog( i18n("Finished importing emails from %1").arg( *filename ));
- if (count_duplicates > 0) {
- info->addLog( i18n("1 duplicate message not imported to folder %1 in KMail",
- "%n duplicate messages not imported to folder %1 in KMail",
- count_duplicates).arg(folderName));
- }
- if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
- count_duplicates = 0;
- // don't forget to close the file !!!
- mbox.close();
- }
- }
-}
diff --git a/kmailcvt/filter_mbox.h b/kmailcvt/filter_mbox.h
new file mode 100644
index 00000000..f1f376de
--- /dev/null
+++ b/kmailcvt/filter_mbox.h
@@ -0,0 +1,37 @@
+/***************************************************************************
+ filter_mbox.h - mbox mail import
+ -------------------
+ begin : Sat Apr 5 2003
+ copyright : (C) 2003 by Laurence Anderson
+ email : l.d.anderson@warwick.ac.uk
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef FILTER_MBOX_H
+#define FILTER_MBOX_H
+
+#include "filters.h"
+
+/**
+ * imports mbox archives messages into KMail
+ * @author Laurence Anderson
+ */
+
+class FilterMBox : public Filter
+{
+public:
+ FilterMBox();
+ ~FilterMBox();
+
+ void import(FilterInfo *info);
+};
+
+#endif
diff --git a/kmailcvt/filter_mbox.hxx b/kmailcvt/filter_mbox.hxx
deleted file mode 100644
index e1c5e967..00000000
--- a/kmailcvt/filter_mbox.hxx
+++ /dev/null
@@ -1,37 +0,0 @@
-/***************************************************************************
- filter_mbox.hxx - mbox mail import
- -------------------
- begin : Sat Apr 5 2003
- copyright : (C) 2003 by Laurence Anderson
- email : l.d.anderson@warwick.ac.uk
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#ifndef FILTER_MBOX_HXX
-#define FILTER_MBOX_HXX
-
-#include "filters.hxx"
-
-/**
- * imports mbox archives messages into KMail
- * @author Laurence Anderson
- */
-
-class FilterMBox : public Filter
-{
-public:
- FilterMBox();
- ~FilterMBox();
-
- void import(FilterInfo *info);
-};
-
-#endif
diff --git a/kmailcvt/filter_oe.cpp b/kmailcvt/filter_oe.cpp
new file mode 100644
index 00000000..47002d96
--- /dev/null
+++ b/kmailcvt/filter_oe.cpp
@@ -0,0 +1,429 @@
+/***************************************************************************
+ filter_oe.cpp - Outlook Express mail import
+ -------------------
+ begin : Sat Feb 1 2003
+ copyright : (C) 2003 by Laurence Anderson
+ (C) 2005 by Danny Kukawka
+ email : l.d.anderson@warwick.ac.uk
+ danny.Kukawka@web.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+// This filter was created by looking at libdbx & liboe
+
+#include <config.h>
+#include <tdelocale.h>
+#include <tdefiledialog.h>
+#include <tdetempfile.h>
+#include <kdebug.h>
+
+#include "filter_oe.h"
+
+#define OE4_SIG_1 0x36464d4a
+#define OE4_SIG_2 0x00010003
+#define OE5_SIG_1 0xfe12adcf
+#define OE5_EMAIL_SIG_2 0x6f74fdc5
+#define OE5_FOLDER_SIG_2 0x6f74fdc6
+#define OE5_SIG_3 0x11d1e366
+#define OE5_SIG_4 0xc0004e9a
+#define MBX_MAILMAGIC 0x7F007F00
+
+FilterOE::FilterOE() :
+ Filter( i18n("Import Outlook Express Emails"),
+ "Laurence Anderson <br>( Filter enhanced by Danny Kukawka )</p>",
+ i18n("<p><b>Outlook Express 4/5/6 import filter</b></p>"
+ "<p>You will need to locate the folder where the mailbox has been "
+ "stored by searching for .dbx or .mbx files under "
+ "<ul><li><i>C:\\Windows\\Application Data</i> in Windows 9x"
+ "<li><i>Documents and Settings</i> in Windows 2000 or later</ul></p>"
+ "<p><b>Note:</b> Since it is possible to recreate the folder structure, the folders from "
+ "Outlook Express 5 and 6 will be stored under: \"OE-Import\" in your local folder.</p>" ))
+{}
+
+FilterOE::~FilterOE()
+{
+}
+
+void FilterOE::import(FilterInfo *info)
+{
+ // Select directory containing plain text emails
+ mailDir = KFileDialog::getExistingDirectory(TQDir::homeDirPath(),info->parent());
+ if (mailDir.isEmpty()) { // No directory selected
+ info->alert(i18n("No directory selected."));
+ return;
+ }
+
+ TQDir dir (mailDir);
+ TQStringList files = dir.entryList("*.[dDmM][bB][xX]", TQDir::Files, TQDir::Name);
+ if (files.isEmpty()) {
+ info->alert(i18n("No Outlook Express mailboxes found in directory %1.").arg(mailDir));
+ return;
+ }
+
+ totalFiles = files.count();
+ currentFile = 0;
+ count0x04 = 0;
+ count0x84 = 0;
+ parsedFolder = false;
+
+ info->setOverall(0);
+
+ /** search the folderfile to recreate folder struct */
+ for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile ) {
+ if(*mailFile == "Folders.dbx") {
+ info->addLog(i18n("Import folder structure..."));
+ importMailBox(info, dir.filePath(*mailFile));
+ if(!folderStructure.isEmpty()) parsedFolder = true;
+ // remove file from TQStringList::files, no longer needed
+ files.remove(mailFile);
+ currentIsFolderFile = false;
+ break;
+ }
+ }
+
+ int n=0;
+ for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile ) {
+ if ( info->shouldTerminate() ) break;
+ importMailBox(info, dir.filePath(*mailFile));
+ info->setOverall(100 * ++n / files.count());
+ }
+
+ info->setOverall(100);
+ info->setCurrent(100);
+ info->addLog(i18n("Finished importing Outlook Express emails"));
+ if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
+
+ kdDebug() << "\n" << "total emails in current file: " << totalEmails << endl;
+ kdDebug() << "0x84 Mails: " << count0x84 << endl;
+ kdDebug() << "0x04 Mails: " << count0x04 << endl;
+}
+
+void FilterOE::importMailBox( FilterInfo *info, const TQString& fileName)
+{
+ TQFile mailfile(fileName);
+ TQFileInfo mailfileinfo(fileName);
+ TQString _nameOfFile = fileName;
+ _nameOfFile.remove( mailDir );
+ _nameOfFile.remove( "/" );
+ info->setFrom(mailfileinfo.fileName());
+
+ if (!mailfile.open(IO_ReadOnly)) {
+ info->addLog(i18n("Unable to open mailbox %1").arg(fileName));
+ return;
+ }
+ TQDataStream mailbox(&mailfile);
+ mailbox.setByteOrder(TQDataStream::LittleEndian);
+
+ // Parse magic
+ TQ_UINT32 sig_block1, sig_block2;
+ mailbox >> sig_block1 >> sig_block2;
+ if (sig_block1 == OE4_SIG_1 && sig_block2 == OE4_SIG_2) {
+ folderName = "OE-Import/" + mailfileinfo.baseName(TRUE);
+ info->addLog(i18n("Importing OE4 Mailbox %1").arg( "../" + _nameOfFile));
+ info->setTo(folderName);
+ mbxImport(info, mailbox);
+ return;
+ } else {
+ TQ_UINT32 sig_block3, sig_block4;
+ mailbox >> sig_block3 >> sig_block4;
+ if (sig_block1 == OE5_SIG_1 && sig_block3 == OE5_SIG_3 && sig_block4 == OE5_SIG_4) {
+ if (sig_block2 == OE5_EMAIL_SIG_2) {
+ folderName = "OE-Import/" + mailfileinfo.baseName(TRUE);
+ if(parsedFolder) {
+ TQString _tmpFolder = getFolderName(_nameOfFile);
+ if(!_tmpFolder.isEmpty()) folderName = "OE-Import/" + _tmpFolder;
+ }
+ info->addLog(i18n("Importing OE5+ Mailbox %1").arg( "../" + _nameOfFile));
+ info->setTo(folderName);
+ dbxImport(info, mailbox);
+ return;
+ } else if (sig_block2 == OE5_FOLDER_SIG_2) {
+ if(!parsedFolder) {
+ info->addLog(i18n("Importing OE5+ Folder file %1").arg( "../" + _nameOfFile));
+ currentIsFolderFile = true;
+ dbxImport(info, mailbox);
+ currentIsFolderFile = false;
+ }
+ return;
+ }
+ }
+ }
+ // info->addLog(i18n("File %1 does not seem to be an Outlook Express mailbox").arg("../" + _nameOfFile));
+}
+
+/* ------------------- MBX support ------------------- */
+
+void FilterOE::mbxImport( FilterInfo *info, TQDataStream& ds)
+{
+ TQ_UINT32 msgCount, lastMsgNum, fileSize;
+
+ // Read the header
+ ds >> msgCount >> lastMsgNum >> fileSize;
+ ds.device()->at( ds.device()->at() + 64 ); // Skip 0's
+ kdDebug() << "This mailbox has " << msgCount << " messages" << endl;
+ if (msgCount == 0)
+ return; // Don't import empty mailbox
+
+ TQ_UINT32 msgMagic;
+ ds >> msgMagic; // Read first magic
+
+ while (!ds.atEnd()) {
+ TQ_UINT32 msgNumber, msgSize, msgTextSize;
+ KTempFile tmp;
+ tmp.dataStream()->setByteOrder(TQDataStream::LittleEndian);
+
+ // Read the messages
+ ds >> msgNumber >> msgSize >> msgTextSize; // All seem to be lies...?
+
+ do {
+ ds >> msgMagic;
+ if (msgMagic != MBX_MAILMAGIC)
+ *tmp.dataStream() << msgMagic;
+ else
+ break;
+ } while ( !ds.atEnd() );
+
+ tmp.close();
+ /* comment by Danny Kukawka:
+ * addMessage() == old function, need more time and check for duplicates
+ * addMessage_fastImport == new function, faster and no check for duplicates
+ */
+ if(info->removeDupMsg)
+ addMessage( info, folderName, tmp.name() );
+ else
+ addMessage_fastImport( info, folderName, tmp.name() );
+
+ tmp.unlink();
+ if(info->shouldTerminate()) return;
+ }
+}
+
+/* ------------------- DBX support ------------------- */
+
+void FilterOE::dbxImport( FilterInfo *info, TQDataStream& ds)
+{
+ // Get item count & offset of index
+ TQ_UINT32 itemCount, indexPtr;
+ ds.device()->at(0xc4);
+ ds >> itemCount;
+ ds.device()->at(0xe4);
+ ds >> indexPtr;
+ kdDebug() << "Item count is " << itemCount << ", Index at " << indexPtr << endl;
+
+ if (itemCount == 0)
+ return; // Empty file
+ totalEmails = itemCount;
+ currentEmail = 0;
+ // Parse the indexes
+ ds.device()->at(indexPtr);
+ dbxReadIndex(info, ds, indexPtr);
+}
+
+void FilterOE::dbxReadIndex( FilterInfo *info, TQDataStream& ds, int filePos)
+{
+
+ if(info->shouldTerminate()) return;
+ TQ_UINT32 self, unknown, nextIndexPtr, parent, indexCount;
+ TQ_UINT8 unknown2, ptrCount;
+ TQ_UINT16 unknown3;
+ int wasAt = ds.device()->at();
+ ds.device()->at(filePos);
+
+
+ kdDebug() << "Reading index of file " << folderName << endl;
+ ds >> self >> unknown >> nextIndexPtr >> parent >> unknown2 >> ptrCount >> unknown3 >> indexCount; // _dbx_tableindexstruct
+
+ kdDebug() << "This index has " << (int) ptrCount << " data pointers" << endl;
+ for (int count = 0; count < ptrCount; count++) {
+ if(info->shouldTerminate()) return;
+ TQ_UINT32 dataIndexPtr, anotherIndexPtr, anotherIndexCount; // _dbx_indexstruct
+ ds >> dataIndexPtr >> anotherIndexPtr >> anotherIndexCount;
+
+ if (anotherIndexCount > 0) {
+ kdDebug() << "Recursing to another table @ " << anotherIndexPtr << endl;
+ dbxReadIndex(info, ds, anotherIndexPtr);
+ }
+ kdDebug() << "Data index @ " << dataIndexPtr << endl;
+ dbxReadDataBlock(info, ds, dataIndexPtr);
+ }
+
+ if (indexCount > 0) { // deal with nextTablePtr
+ kdDebug() << "Recuring to next table @ " << nextIndexPtr << endl;
+ dbxReadIndex(info, ds, nextIndexPtr);
+ }
+
+ ds.device()->at(wasAt); // Restore file position to same as when function called
+}
+
+void FilterOE::dbxReadDataBlock( FilterInfo *info, TQDataStream& ds, int filePos)
+{
+ TQ_UINT32 curOffset, blockSize;
+ TQ_UINT16 unknown;
+ TQ_UINT8 count, unknown2;
+ int wasAt = ds.device()->at();
+
+ TQString folderEntry[4];
+
+ ds.device()->at(filePos);
+
+ ds >> curOffset >> blockSize >> unknown >> count >> unknown2; // _dbx_email_headerstruct
+ kdDebug() << "Data block has " << (int) count << " elements" << endl;
+
+ for (int c = 0; c < count; c++) {
+ if(info->shouldTerminate()) return;
+ TQ_UINT8 type; // _dbx_email_pointerstruct
+ TQ_UINT32 value; // Actually 24 bit
+
+ ds >> type >> value;
+ value &= 0xffffff;
+ ds.device()->at(ds.device()->at() - 1); // We only wanted 3 bytes
+
+ if(!currentIsFolderFile) {
+ if (type == 0x84) { // It's an email!
+ kdDebug() << "**** Offset of emaildata (0x84) " << value << " ****" << endl;
+ dbxReadEmail(info, ds, value);
+ ++count0x84;
+ } else if( type == 0x04) {
+ int currentFilePos = ds.device()->at();
+ ds.device()->at(filePos + 12 + value + (count*4) );
+ TQ_UINT32 newOFF;
+ ds >> newOFF;
+ kdDebug() << "**** Offset of emaildata (0x04) " << newOFF << endl;
+ ds.device()->at(currentFilePos);
+ dbxReadEmail(info, ds, newOFF);
+ ++count0x04;
+ }
+ }
+ else {
+ // this is a folderfile
+ if(type == 0x02) {
+ // kdDebug() << "**** FOLDER: descriptive name ****" << endl;
+ folderEntry[0] = parseFolderString(ds, filePos + 12 + value + (count*4) );
+ } else if (type == 0x03) {
+ // kdDebug() << "**** FOLDER: filename ****" << endl;
+ folderEntry[1] = parseFolderString(ds, filePos + 12 + value + (count*4) );
+
+ } else if (type == 0x80) {
+ // kdDebug() << "**** FOLDER: current ID ****" << endl;
+ folderEntry[2] = TQString::number(value);
+
+ } else if (type == 0x81) {
+ // kdDebug() << "**** FOLDER: parent ID ****" << endl;
+ folderEntry[3] = TQString::number(value);
+ }
+ }
+ }
+ if(currentIsFolderFile) {
+ folderStructure.append(folderEntry);
+ }
+ ds.device()->at(wasAt); // Restore file position to same as when function called
+}
+
+void FilterOE::dbxReadEmail( FilterInfo *info, TQDataStream& ds, int filePos)
+{
+ if(info->shouldTerminate()) return;
+ TQ_UINT32 self, nextAddressOffset, nextAddress=0;
+ TQ_UINT16 blockSize;
+ TQ_UINT8 intCount, unknown;
+ KTempFile tmp;
+ bool _break = false;
+ int wasAt = ds.device()->at();
+ ds.device()->at(filePos);
+
+ do {
+ ds >> self >> nextAddressOffset >> blockSize >> intCount >> unknown >> nextAddress; // _dbx_block_hdrstruct
+ TQByteArray blockBuffer(blockSize);
+ ds.readRawBytes(blockBuffer.data(), blockSize);
+ tmp.dataStream()->writeRawBytes(blockBuffer.data(), blockSize);
+ // to detect incomplete mails or corrupted archives. See Bug #86119
+ if(ds.atEnd()) {
+ _break = true;
+ break;
+ }
+ ds.device()->at(nextAddress);
+ } while (nextAddress != 0);
+ tmp.close();
+
+ if(!_break) {
+ if(info->removeDupMsg)
+ addMessage( info, folderName, tmp.name() );
+ else
+ addMessage_fastImport( info, folderName, tmp.name() );
+
+ currentEmail++;
+ int currentPercentage = (int) ( ( (float) currentEmail / totalEmails ) * 100 );
+ info->setCurrent(currentPercentage);
+ ds.device()->at(wasAt);
+ }
+ tmp.unlink();
+}
+
+/* ------------------- FolderFile support ------------------- */
+TQString FilterOE::parseFolderString( TQDataStream& ds, int filePos )
+{
+ char tmp;
+ TQString returnString;
+ int wasAt = ds.device()->at();
+ ds.device()->at(filePos);
+
+ // read while != 0x00
+ while( !ds.device()->atEnd() ) {
+ tmp = ds.device()->getch();
+ if( tmp != 0x00) {
+ returnString += tmp;
+ }
+ else break;
+ }
+ ds.device()->at(wasAt);
+ return returnString;
+}
+
+/** get the foldername for a given file ID from folderMatrix */
+TQString FilterOE::getFolderName(TQString filename)
+{
+ bool found = false;
+ bool foundFilename = false;
+ TQString folder;
+ // we must do this because folder with more than one upper letter
+ // at start have maybe not a file named like the folder !!!
+ TQString search = filename.lower();
+
+ while (!found)
+ {
+ for ( FolderStructureIterator it = folderStructure.begin(); it != folderStructure.end(); it++) {
+ FolderStructure tmp = *it;
+ if(foundFilename == false) {
+ TQString _tmpFileName = tmp[1];
+ _tmpFileName = _tmpFileName.lower();
+ if(_tmpFileName == search) {
+ folder.prepend( tmp[0] + TQString::fromLatin1("/") );
+ search = tmp[3];
+ foundFilename = true;
+ }
+ } else {
+ TQString _currentID = tmp[2];
+ TQString _parentID = tmp[3];
+ if(_currentID == search) {
+ if(_parentID.isEmpty()) { // this is the root of the folder
+ found = true;
+ break;
+ } else {
+ folder.prepend( tmp[0] + TQString::fromLatin1("/") );
+ search = tmp[3];
+ }
+ }
+ }
+ }
+ // need to break the while loop maybe in some cases
+ if((foundFilename == false) && (folder.isEmpty())) return folder;
+ }
+ return folder;
+}
diff --git a/kmailcvt/filter_oe.cxx b/kmailcvt/filter_oe.cxx
deleted file mode 100644
index afd96527..00000000
--- a/kmailcvt/filter_oe.cxx
+++ /dev/null
@@ -1,429 +0,0 @@
-/***************************************************************************
- filter_oe.cxx - Outlook Express mail import
- -------------------
- begin : Sat Feb 1 2003
- copyright : (C) 2003 by Laurence Anderson
- (C) 2005 by Danny Kukawka
- email : l.d.anderson@warwick.ac.uk
- danny.Kukawka@web.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-// This filter was created by looking at libdbx & liboe
-
-#include <config.h>
-#include <tdelocale.h>
-#include <tdefiledialog.h>
-#include <tdetempfile.h>
-#include <kdebug.h>
-
-#include "filter_oe.hxx"
-
-#define OE4_SIG_1 0x36464d4a
-#define OE4_SIG_2 0x00010003
-#define OE5_SIG_1 0xfe12adcf
-#define OE5_EMAIL_SIG_2 0x6f74fdc5
-#define OE5_FOLDER_SIG_2 0x6f74fdc6
-#define OE5_SIG_3 0x11d1e366
-#define OE5_SIG_4 0xc0004e9a
-#define MBX_MAILMAGIC 0x7F007F00
-
-FilterOE::FilterOE() :
- Filter( i18n("Import Outlook Express Emails"),
- "Laurence Anderson <br>( Filter enhanced by Danny Kukawka )</p>",
- i18n("<p><b>Outlook Express 4/5/6 import filter</b></p>"
- "<p>You will need to locate the folder where the mailbox has been "
- "stored by searching for .dbx or .mbx files under "
- "<ul><li><i>C:\\Windows\\Application Data</i> in Windows 9x"
- "<li><i>Documents and Settings</i> in Windows 2000 or later</ul></p>"
- "<p><b>Note:</b> Since it is possible to recreate the folder structure, the folders from "
- "Outlook Express 5 and 6 will be stored under: \"OE-Import\" in your local folder.</p>" ))
-{}
-
-FilterOE::~FilterOE()
-{
-}
-
-void FilterOE::import(FilterInfo *info)
-{
- // Select directory containing plain text emails
- mailDir = KFileDialog::getExistingDirectory(TQDir::homeDirPath(),info->parent());
- if (mailDir.isEmpty()) { // No directory selected
- info->alert(i18n("No directory selected."));
- return;
- }
-
- TQDir dir (mailDir);
- TQStringList files = dir.entryList("*.[dDmM][bB][xX]", TQDir::Files, TQDir::Name);
- if (files.isEmpty()) {
- info->alert(i18n("No Outlook Express mailboxes found in directory %1.").arg(mailDir));
- return;
- }
-
- totalFiles = files.count();
- currentFile = 0;
- count0x04 = 0;
- count0x84 = 0;
- parsedFolder = false;
-
- info->setOverall(0);
-
- /** search the folderfile to recreate folder struct */
- for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile ) {
- if(*mailFile == "Folders.dbx") {
- info->addLog(i18n("Import folder structure..."));
- importMailBox(info, dir.filePath(*mailFile));
- if(!folderStructure.isEmpty()) parsedFolder = true;
- // remove file from TQStringList::files, no longer needed
- files.remove(mailFile);
- currentIsFolderFile = false;
- break;
- }
- }
-
- int n=0;
- for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile ) {
- if ( info->shouldTerminate() ) break;
- importMailBox(info, dir.filePath(*mailFile));
- info->setOverall(100 * ++n / files.count());
- }
-
- info->setOverall(100);
- info->setCurrent(100);
- info->addLog(i18n("Finished importing Outlook Express emails"));
- if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
-
- kdDebug() << "\n" << "total emails in current file: " << totalEmails << endl;
- kdDebug() << "0x84 Mails: " << count0x84 << endl;
- kdDebug() << "0x04 Mails: " << count0x04 << endl;
-}
-
-void FilterOE::importMailBox( FilterInfo *info, const TQString& fileName)
-{
- TQFile mailfile(fileName);
- TQFileInfo mailfileinfo(fileName);
- TQString _nameOfFile = fileName;
- _nameOfFile.remove( mailDir );
- _nameOfFile.remove( "/" );
- info->setFrom(mailfileinfo.fileName());
-
- if (!mailfile.open(IO_ReadOnly)) {
- info->addLog(i18n("Unable to open mailbox %1").arg(fileName));
- return;
- }
- TQDataStream mailbox(&mailfile);
- mailbox.setByteOrder(TQDataStream::LittleEndian);
-
- // Parse magic
- TQ_UINT32 sig_block1, sig_block2;
- mailbox >> sig_block1 >> sig_block2;
- if (sig_block1 == OE4_SIG_1 && sig_block2 == OE4_SIG_2) {
- folderName = "OE-Import/" + mailfileinfo.baseName(TRUE);
- info->addLog(i18n("Importing OE4 Mailbox %1").arg( "../" + _nameOfFile));
- info->setTo(folderName);
- mbxImport(info, mailbox);
- return;
- } else {
- TQ_UINT32 sig_block3, sig_block4;
- mailbox >> sig_block3 >> sig_block4;
- if (sig_block1 == OE5_SIG_1 && sig_block3 == OE5_SIG_3 && sig_block4 == OE5_SIG_4) {
- if (sig_block2 == OE5_EMAIL_SIG_2) {
- folderName = "OE-Import/" + mailfileinfo.baseName(TRUE);
- if(parsedFolder) {
- TQString _tmpFolder = getFolderName(_nameOfFile);
- if(!_tmpFolder.isEmpty()) folderName = "OE-Import/" + _tmpFolder;
- }
- info->addLog(i18n("Importing OE5+ Mailbox %1").arg( "../" + _nameOfFile));
- info->setTo(folderName);
- dbxImport(info, mailbox);
- return;
- } else if (sig_block2 == OE5_FOLDER_SIG_2) {
- if(!parsedFolder) {
- info->addLog(i18n("Importing OE5+ Folder file %1").arg( "../" + _nameOfFile));
- currentIsFolderFile = true;
- dbxImport(info, mailbox);
- currentIsFolderFile = false;
- }
- return;
- }
- }
- }
- // info->addLog(i18n("File %1 does not seem to be an Outlook Express mailbox").arg("../" + _nameOfFile));
-}
-
-/* ------------------- MBX support ------------------- */
-
-void FilterOE::mbxImport( FilterInfo *info, TQDataStream& ds)
-{
- TQ_UINT32 msgCount, lastMsgNum, fileSize;
-
- // Read the header
- ds >> msgCount >> lastMsgNum >> fileSize;
- ds.device()->at( ds.device()->at() + 64 ); // Skip 0's
- kdDebug() << "This mailbox has " << msgCount << " messages" << endl;
- if (msgCount == 0)
- return; // Don't import empty mailbox
-
- TQ_UINT32 msgMagic;
- ds >> msgMagic; // Read first magic
-
- while (!ds.atEnd()) {
- TQ_UINT32 msgNumber, msgSize, msgTextSize;
- KTempFile tmp;
- tmp.dataStream()->setByteOrder(TQDataStream::LittleEndian);
-
- // Read the messages
- ds >> msgNumber >> msgSize >> msgTextSize; // All seem to be lies...?
-
- do {
- ds >> msgMagic;
- if (msgMagic != MBX_MAILMAGIC)
- *tmp.dataStream() << msgMagic;
- else
- break;
- } while ( !ds.atEnd() );
-
- tmp.close();
- /* comment by Danny Kukawka:
- * addMessage() == old function, need more time and check for duplicates
- * addMessage_fastImport == new function, faster and no check for duplicates
- */
- if(info->removeDupMsg)
- addMessage( info, folderName, tmp.name() );
- else
- addMessage_fastImport( info, folderName, tmp.name() );
-
- tmp.unlink();
- if(info->shouldTerminate()) return;
- }
-}
-
-/* ------------------- DBX support ------------------- */
-
-void FilterOE::dbxImport( FilterInfo *info, TQDataStream& ds)
-{
- // Get item count & offset of index
- TQ_UINT32 itemCount, indexPtr;
- ds.device()->at(0xc4);
- ds >> itemCount;
- ds.device()->at(0xe4);
- ds >> indexPtr;
- kdDebug() << "Item count is " << itemCount << ", Index at " << indexPtr << endl;
-
- if (itemCount == 0)
- return; // Empty file
- totalEmails = itemCount;
- currentEmail = 0;
- // Parse the indexes
- ds.device()->at(indexPtr);
- dbxReadIndex(info, ds, indexPtr);
-}
-
-void FilterOE::dbxReadIndex( FilterInfo *info, TQDataStream& ds, int filePos)
-{
-
- if(info->shouldTerminate()) return;
- TQ_UINT32 self, unknown, nextIndexPtr, parent, indexCount;
- TQ_UINT8 unknown2, ptrCount;
- TQ_UINT16 unknown3;
- int wasAt = ds.device()->at();
- ds.device()->at(filePos);
-
-
- kdDebug() << "Reading index of file " << folderName << endl;
- ds >> self >> unknown >> nextIndexPtr >> parent >> unknown2 >> ptrCount >> unknown3 >> indexCount; // _dbx_tableindexstruct
-
- kdDebug() << "This index has " << (int) ptrCount << " data pointers" << endl;
- for (int count = 0; count < ptrCount; count++) {
- if(info->shouldTerminate()) return;
- TQ_UINT32 dataIndexPtr, anotherIndexPtr, anotherIndexCount; // _dbx_indexstruct
- ds >> dataIndexPtr >> anotherIndexPtr >> anotherIndexCount;
-
- if (anotherIndexCount > 0) {
- kdDebug() << "Recursing to another table @ " << anotherIndexPtr << endl;
- dbxReadIndex(info, ds, anotherIndexPtr);
- }
- kdDebug() << "Data index @ " << dataIndexPtr << endl;
- dbxReadDataBlock(info, ds, dataIndexPtr);
- }
-
- if (indexCount > 0) { // deal with nextTablePtr
- kdDebug() << "Recuring to next table @ " << nextIndexPtr << endl;
- dbxReadIndex(info, ds, nextIndexPtr);
- }
-
- ds.device()->at(wasAt); // Restore file position to same as when function called
-}
-
-void FilterOE::dbxReadDataBlock( FilterInfo *info, TQDataStream& ds, int filePos)
-{
- TQ_UINT32 curOffset, blockSize;
- TQ_UINT16 unknown;
- TQ_UINT8 count, unknown2;
- int wasAt = ds.device()->at();
-
- TQString folderEntry[4];
-
- ds.device()->at(filePos);
-
- ds >> curOffset >> blockSize >> unknown >> count >> unknown2; // _dbx_email_headerstruct
- kdDebug() << "Data block has " << (int) count << " elements" << endl;
-
- for (int c = 0; c < count; c++) {
- if(info->shouldTerminate()) return;
- TQ_UINT8 type; // _dbx_email_pointerstruct
- TQ_UINT32 value; // Actually 24 bit
-
- ds >> type >> value;
- value &= 0xffffff;
- ds.device()->at(ds.device()->at() - 1); // We only wanted 3 bytes
-
- if(!currentIsFolderFile) {
- if (type == 0x84) { // It's an email!
- kdDebug() << "**** Offset of emaildata (0x84) " << value << " ****" << endl;
- dbxReadEmail(info, ds, value);
- ++count0x84;
- } else if( type == 0x04) {
- int currentFilePos = ds.device()->at();
- ds.device()->at(filePos + 12 + value + (count*4) );
- TQ_UINT32 newOFF;
- ds >> newOFF;
- kdDebug() << "**** Offset of emaildata (0x04) " << newOFF << endl;
- ds.device()->at(currentFilePos);
- dbxReadEmail(info, ds, newOFF);
- ++count0x04;
- }
- }
- else {
- // this is a folderfile
- if(type == 0x02) {
- // kdDebug() << "**** FOLDER: descriptive name ****" << endl;
- folderEntry[0] = parseFolderString(ds, filePos + 12 + value + (count*4) );
- } else if (type == 0x03) {
- // kdDebug() << "**** FOLDER: filename ****" << endl;
- folderEntry[1] = parseFolderString(ds, filePos + 12 + value + (count*4) );
-
- } else if (type == 0x80) {
- // kdDebug() << "**** FOLDER: current ID ****" << endl;
- folderEntry[2] = TQString::number(value);
-
- } else if (type == 0x81) {
- // kdDebug() << "**** FOLDER: parent ID ****" << endl;
- folderEntry[3] = TQString::number(value);
- }
- }
- }
- if(currentIsFolderFile) {
- folderStructure.append(folderEntry);
- }
- ds.device()->at(wasAt); // Restore file position to same as when function called
-}
-
-void FilterOE::dbxReadEmail( FilterInfo *info, TQDataStream& ds, int filePos)
-{
- if(info->shouldTerminate()) return;
- TQ_UINT32 self, nextAddressOffset, nextAddress=0;
- TQ_UINT16 blockSize;
- TQ_UINT8 intCount, unknown;
- KTempFile tmp;
- bool _break = false;
- int wasAt = ds.device()->at();
- ds.device()->at(filePos);
-
- do {
- ds >> self >> nextAddressOffset >> blockSize >> intCount >> unknown >> nextAddress; // _dbx_block_hdrstruct
- TQByteArray blockBuffer(blockSize);
- ds.readRawBytes(blockBuffer.data(), blockSize);
- tmp.dataStream()->writeRawBytes(blockBuffer.data(), blockSize);
- // to detect incomplete mails or corrupted archives. See Bug #86119
- if(ds.atEnd()) {
- _break = true;
- break;
- }
- ds.device()->at(nextAddress);
- } while (nextAddress != 0);
- tmp.close();
-
- if(!_break) {
- if(info->removeDupMsg)
- addMessage( info, folderName, tmp.name() );
- else
- addMessage_fastImport( info, folderName, tmp.name() );
-
- currentEmail++;
- int currentPercentage = (int) ( ( (float) currentEmail / totalEmails ) * 100 );
- info->setCurrent(currentPercentage);
- ds.device()->at(wasAt);
- }
- tmp.unlink();
-}
-
-/* ------------------- FolderFile support ------------------- */
-TQString FilterOE::parseFolderString( TQDataStream& ds, int filePos )
-{
- char tmp;
- TQString returnString;
- int wasAt = ds.device()->at();
- ds.device()->at(filePos);
-
- // read while != 0x00
- while( !ds.device()->atEnd() ) {
- tmp = ds.device()->getch();
- if( tmp != 0x00) {
- returnString += tmp;
- }
- else break;
- }
- ds.device()->at(wasAt);
- return returnString;
-}
-
-/** get the foldername for a given file ID from folderMatrix */
-TQString FilterOE::getFolderName(TQString filename)
-{
- bool found = false;
- bool foundFilename = false;
- TQString folder;
- // we must do this because folder with more than one upper letter
- // at start have maybe not a file named like the folder !!!
- TQString search = filename.lower();
-
- while (!found)
- {
- for ( FolderStructureIterator it = folderStructure.begin(); it != folderStructure.end(); it++) {
- FolderStructure tmp = *it;
- if(foundFilename == false) {
- TQString _tmpFileName = tmp[1];
- _tmpFileName = _tmpFileName.lower();
- if(_tmpFileName == search) {
- folder.prepend( tmp[0] + TQString::fromLatin1("/") );
- search = tmp[3];
- foundFilename = true;
- }
- } else {
- TQString _currentID = tmp[2];
- TQString _parentID = tmp[3];
- if(_currentID == search) {
- if(_parentID.isEmpty()) { // this is the root of the folder
- found = true;
- break;
- } else {
- folder.prepend( tmp[0] + TQString::fromLatin1("/") );
- search = tmp[3];
- }
- }
- }
- }
- // need to break the while loop maybe in some cases
- if((foundFilename == false) && (folder.isEmpty())) return folder;
- }
- return folder;
-}
diff --git a/kmailcvt/filter_oe.h b/kmailcvt/filter_oe.h
new file mode 100644
index 00000000..2a46854f
--- /dev/null
+++ b/kmailcvt/filter_oe.h
@@ -0,0 +1,84 @@
+/***************************************************************************
+ filter_oe.h - Outlook Express mail import
+ -------------------
+ begin : Sat Feb 1 2003
+ copyright : (C) 2003 by Laurence Anderson
+ email : l.d.anderson@warwick.ac.uk
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef FILTER_OE_H
+#define FILTER_OE_H
+
+#include "filters.h"
+
+/**
+ *imports outlook text messages into KMail
+ *@author Laurence Anderson
+ */
+
+class FilterOE : public Filter
+{
+public:
+ FilterOE();
+ ~FilterOE();
+
+ void import(FilterInfo *info);
+
+protected:
+ void importMailBox( FilterInfo *info, const TQString& fileName);
+ void mbxImport( FilterInfo *info, TQDataStream& ds);
+ void dbxImport( FilterInfo *info, TQDataStream& ds);
+ void dbxReadIndex( FilterInfo *info, TQDataStream& ds, int filePos);
+ void dbxReadDataBlock( FilterInfo *info, TQDataStream& ds, int filePos);
+ void dbxReadEmail( FilterInfo *info, TQDataStream& ds, int filePos);
+
+ /** helperfunctions for folder structure support */
+ TQString parseFolderString( TQDataStream& ds, int filePos);
+ TQString getFolderName(TQString filename);
+
+private: // Private methods
+ /** which file (of totalFiles) is now in the work? */
+ int currentFile;
+ /** total number of files that get imported */
+ int totalFiles;
+ /** total emails in current file */
+ int totalEmails;
+ /** which email (of totalFiles) is now in the work? */
+ int currentEmail;
+ /** number of imported mails with flag 0x04 */
+ int count0x04;
+ /** number of imported mails with flag 0x84 */
+ int count0x84;
+
+ /** true if the folderstructure is parsed */
+ bool parsedFolder;
+ /** true if the current parsing file is the folder file */
+ bool currentIsFolderFile;
+
+ /** Folder structure with following 4 entries:
+ 1. descriptive folder name
+ 2. filename
+ 3. ID of current folder
+ 4. ID of parent folder
+ */
+ typedef FolderStructureBase<4> FolderStructure;
+ /** matrix with information about the folder structure*/
+ TQValueList<FolderStructure> folderStructure;
+ typedef TQValueList<FolderStructure>::Iterator FolderStructureIterator;
+
+ /** name of the current folder */
+ TQString folderName;
+ /** name of the chosen folder */
+ TQString mailDir;
+};
+
+#endif
diff --git a/kmailcvt/filter_oe.hxx b/kmailcvt/filter_oe.hxx
deleted file mode 100644
index 821aa5df..00000000
--- a/kmailcvt/filter_oe.hxx
+++ /dev/null
@@ -1,84 +0,0 @@
-/***************************************************************************
- filter_oe.hxx - Outlook Express mail import
- -------------------
- begin : Sat Feb 1 2003
- copyright : (C) 2003 by Laurence Anderson
- email : l.d.anderson@warwick.ac.uk
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#ifndef FILTER_OE_HXX
-#define FILTER_OE_HXX
-
-#include "filters.hxx"
-
-/**
- *imports outlook text messages into KMail
- *@author Laurence Anderson
- */
-
-class FilterOE : public Filter
-{
-public:
- FilterOE();
- ~FilterOE();
-
- void import(FilterInfo *info);
-
-protected:
- void importMailBox( FilterInfo *info, const TQString& fileName);
- void mbxImport( FilterInfo *info, TQDataStream& ds);
- void dbxImport( FilterInfo *info, TQDataStream& ds);
- void dbxReadIndex( FilterInfo *info, TQDataStream& ds, int filePos);
- void dbxReadDataBlock( FilterInfo *info, TQDataStream& ds, int filePos);
- void dbxReadEmail( FilterInfo *info, TQDataStream& ds, int filePos);
-
- /** helperfunctions for folder structure support */
- TQString parseFolderString( TQDataStream& ds, int filePos);
- TQString getFolderName(TQString filename);
-
-private: // Private methods
- /** which file (of totalFiles) is now in the work? */
- int currentFile;
- /** total number of files that get imported */
- int totalFiles;
- /** total emails in current file */
- int totalEmails;
- /** which email (of totalFiles) is now in the work? */
- int currentEmail;
- /** number of imported mails with flag 0x04 */
- int count0x04;
- /** number of imported mails with flag 0x84 */
- int count0x84;
-
- /** true if the folderstructure is parsed */
- bool parsedFolder;
- /** true if the current parsing file is the folder file */
- bool currentIsFolderFile;
-
- /** Folder structure with following 4 entries:
- 1. descriptive folder name
- 2. filename
- 3. ID of current folder
- 4. ID of parent folder
- */
- typedef FolderStructureBase<4> FolderStructure;
- /** matrix with information about the folder structure*/
- TQValueList<FolderStructure> folderStructure;
- typedef TQValueList<FolderStructure>::Iterator FolderStructureIterator;
-
- /** name of the current folder */
- TQString folderName;
- /** name of the chosen folder */
- TQString mailDir;
-};
-
-#endif
diff --git a/kmailcvt/filter_opera.cpp b/kmailcvt/filter_opera.cpp
new file mode 100644
index 00000000..ff537695
--- /dev/null
+++ b/kmailcvt/filter_opera.cpp
@@ -0,0 +1,158 @@
+/***************************************************************************
+ filter_opera.cpp - Opera mail import
+ -------------------
+ begin : Januar 26 2005
+ copyright : (C) 2005 by Danny Kukawka
+ email : danny.kukawka@web.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <config.h>
+#include <tdelocale.h>
+#include <tdefiledialog.h>
+#include <tdetempfile.h>
+#include <kdebug.h>
+
+#include "filter_opera.h"
+
+
+FilterOpera::FilterOpera() :
+ Filter( i18n("Import Opera Emails"),
+ "Danny Kukawka",
+ i18n("<p><b>Opera email import filter</b></p>"
+ "<p>This filter will import mails from Opera mail folder. Use this filter "
+ "if you want to import all mails within a account in the Opera maildir.</p>"
+ "<p>Select the directory of the account (usually ~/.opera/mail/store/account*).</p>"
+ "<p><b>Note:</b> Emails will be imported into a folder named after the account "
+ "they came from, prefixed with OPERA-</p>" ))
+{}
+
+FilterOpera::~FilterOpera()
+{
+}
+
+void FilterOpera::import(FilterInfo *info)
+{
+ /** try to go to opera mailfolder in the home of the user */
+ TQString startdir = TQDir::homeDirPath() + "/.opera/mail/store/";
+ TQDir d( startdir );
+ if ( !d.exists() ) {
+ startdir = TQDir::homeDirPath();
+ }
+
+ //TQString mailDir = KFileDialog::getExistingDirectory(TQDir::homeDirPath(), info->parent());
+ KFileDialog *kfd;
+ kfd = new KFileDialog( startdir, "", 0, "tdefiledialog", true );
+ kfd->setMode(KFile::Directory | KFile::LocalOnly);
+ kfd->exec();
+ TQString operaDir = kfd->selectedFile();
+ delete kfd;
+
+ if (operaDir.isEmpty()) {
+ info->alert(i18n("No directory selected."));
+ }
+ /**
+ * If the user only select homedir no import needed because
+ * there should be no files and we surely import wrong files.
+ */
+ else if ( operaDir == TQDir::homeDirPath() || operaDir == (TQDir::homeDirPath() + "/")) {
+ info->addLog(i18n("No files found for import."));
+ } else {
+ info->setOverall(0);
+
+ TQDir importDir (operaDir);
+ TQStringList files = importDir.entryList("*.[mM][bB][sS]", TQDir::Files, TQDir::Name);
+
+ // Count total number of files to be processed
+ info->addLog(i18n("Counting files..."));
+ int totalFiles = files.count();
+ int currentFile = 1;
+
+ if(totalFiles > 0) {
+ int overall_status = 0;
+
+ info->addLog(i18n("Importing new mail files..."));
+ for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile) {
+ info->setCurrent(0);
+ TQFile operaArchiv( importDir.filePath(*mailFile) );
+ if (! operaArchiv.open( IO_ReadOnly ) ) {
+ info->alert( i18n("Unable to open %1, skipping").arg( *mailFile ) );
+ } else {
+ info->addLog( i18n("Importing emails from %1...").arg( *mailFile ) );
+ TQFileInfo filenameInfo( importDir.filePath(*mailFile) );
+ TQString folderName( "OPERA-" + importDir.dirName() );
+
+ info->setFrom( *mailFile );
+ info->setTo( folderName );
+
+ TQByteArray input(MAX_LINE);
+ long l = 0;
+ bool first_msg = true;
+
+ while ( !operaArchiv.atEnd() ) {
+ KTempFile tmp;
+ /* comment by Danny:
+ * Don't use TQTextStream to read from mbox, etter use TQDataStream. TQTextStream only
+ * support Unicode/Latin1/Locale. So you lost information from emails with
+ * charset!=Unicode/Latin1/Locale (e.g. KOI8-R) and Content-Transfer-Encoding != base64
+ * (e.g. 8Bit). It also not help to convert the TQTextStream to Unicode. By this you
+ * get Unicode/UTF-email but KMail can't detect the correct charset.
+ */
+ TQCString seperate;
+
+ if(!first_msg)
+ tmp.file()->writeBlock( input, l );
+ l = operaArchiv.readLine( input.data(),MAX_LINE); // read the first line, prevent "From "
+ tmp.file()->writeBlock( input, l );
+
+ while ( ! operaArchiv.atEnd() && (l = operaArchiv.readLine(input.data(),MAX_LINE)) && ((seperate = input.data()).left(5) != "From ")) {
+ /** remove in KMail unneeded Flags from Opera (for example: X-Opera-Status)*/
+ if(seperate.left(8) != "X-Opera-")
+ tmp.file()->writeBlock( input, l );
+ }
+ tmp.close();
+ first_msg = false;
+
+ if(info->removeDupMsg)
+ addMessage( info, folderName, tmp.name() );
+ else
+ addMessage_fastImport( info, folderName, tmp.name() );
+ tmp.unlink();
+ int currentPercentage = (int) ( ( (float) operaArchiv.at() / filenameInfo.size() ) * 100 );
+ info->setCurrent( currentPercentage );
+
+ if (currentFile == 1)
+ overall_status = (int) ( currentPercentage * ( (float) currentFile / totalFiles ) );
+ else
+ overall_status = (int)(((currentFile-1)*(100.0/(float)totalFiles))+(currentPercentage*(1.0/(float)totalFiles)));
+
+ info->setOverall( overall_status );
+ if ( info->shouldTerminate() ) break;
+ }
+
+ info->addLog( i18n("Finished importing emails from %1").arg( *mailFile ));
+ if (count_duplicates > 0) {
+ info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
+ }
+ currentFile++;
+ count_duplicates = 0;
+ operaArchiv.close();
+ }
+ if ( info->shouldTerminate() ) break;
+ }
+ } else {
+ info->addLog(i18n("No files found for import."));
+ }
+ }
+ if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
+ info->setCurrent(100);
+ info->setOverall(100);
+}
diff --git a/kmailcvt/filter_opera.cxx b/kmailcvt/filter_opera.cxx
deleted file mode 100644
index 90aef382..00000000
--- a/kmailcvt/filter_opera.cxx
+++ /dev/null
@@ -1,158 +0,0 @@
-/***************************************************************************
- filter_opera.cxx - Opera mail import
- -------------------
- begin : Januar 26 2005
- copyright : (C) 2005 by Danny Kukawka
- email : danny.kukawka@web.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include <config.h>
-#include <tdelocale.h>
-#include <tdefiledialog.h>
-#include <tdetempfile.h>
-#include <kdebug.h>
-
-#include "filter_opera.hxx"
-
-
-FilterOpera::FilterOpera() :
- Filter( i18n("Import Opera Emails"),
- "Danny Kukawka",
- i18n("<p><b>Opera email import filter</b></p>"
- "<p>This filter will import mails from Opera mail folder. Use this filter "
- "if you want to import all mails within a account in the Opera maildir.</p>"
- "<p>Select the directory of the account (usually ~/.opera/mail/store/account*).</p>"
- "<p><b>Note:</b> Emails will be imported into a folder named after the account "
- "they came from, prefixed with OPERA-</p>" ))
-{}
-
-FilterOpera::~FilterOpera()
-{
-}
-
-void FilterOpera::import(FilterInfo *info)
-{
- /** try to go to opera mailfolder in the home of the user */
- TQString startdir = TQDir::homeDirPath() + "/.opera/mail/store/";
- TQDir d( startdir );
- if ( !d.exists() ) {
- startdir = TQDir::homeDirPath();
- }
-
- //TQString mailDir = KFileDialog::getExistingDirectory(TQDir::homeDirPath(), info->parent());
- KFileDialog *kfd;
- kfd = new KFileDialog( startdir, "", 0, "tdefiledialog", true );
- kfd->setMode(KFile::Directory | KFile::LocalOnly);
- kfd->exec();
- TQString operaDir = kfd->selectedFile();
- delete kfd;
-
- if (operaDir.isEmpty()) {
- info->alert(i18n("No directory selected."));
- }
- /**
- * If the user only select homedir no import needed because
- * there should be no files and we surely import wrong files.
- */
- else if ( operaDir == TQDir::homeDirPath() || operaDir == (TQDir::homeDirPath() + "/")) {
- info->addLog(i18n("No files found for import."));
- } else {
- info->setOverall(0);
-
- TQDir importDir (operaDir);
- TQStringList files = importDir.entryList("*.[mM][bB][sS]", TQDir::Files, TQDir::Name);
-
- // Count total number of files to be processed
- info->addLog(i18n("Counting files..."));
- int totalFiles = files.count();
- int currentFile = 1;
-
- if(totalFiles > 0) {
- int overall_status = 0;
-
- info->addLog(i18n("Importing new mail files..."));
- for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile) {
- info->setCurrent(0);
- TQFile operaArchiv( importDir.filePath(*mailFile) );
- if (! operaArchiv.open( IO_ReadOnly ) ) {
- info->alert( i18n("Unable to open %1, skipping").arg( *mailFile ) );
- } else {
- info->addLog( i18n("Importing emails from %1...").arg( *mailFile ) );
- TQFileInfo filenameInfo( importDir.filePath(*mailFile) );
- TQString folderName( "OPERA-" + importDir.dirName() );
-
- info->setFrom( *mailFile );
- info->setTo( folderName );
-
- TQByteArray input(MAX_LINE);
- long l = 0;
- bool first_msg = true;
-
- while ( !operaArchiv.atEnd() ) {
- KTempFile tmp;
- /* comment by Danny:
- * Don't use TQTextStream to read from mbox, etter use TQDataStream. TQTextStream only
- * support Unicode/Latin1/Locale. So you lost information from emails with
- * charset!=Unicode/Latin1/Locale (e.g. KOI8-R) and Content-Transfer-Encoding != base64
- * (e.g. 8Bit). It also not help to convert the TQTextStream to Unicode. By this you
- * get Unicode/UTF-email but KMail can't detect the correct charset.
- */
- TQCString seperate;
-
- if(!first_msg)
- tmp.file()->writeBlock( input, l );
- l = operaArchiv.readLine( input.data(),MAX_LINE); // read the first line, prevent "From "
- tmp.file()->writeBlock( input, l );
-
- while ( ! operaArchiv.atEnd() && (l = operaArchiv.readLine(input.data(),MAX_LINE)) && ((seperate = input.data()).left(5) != "From ")) {
- /** remove in KMail unneeded Flags from Opera (for example: X-Opera-Status)*/
- if(seperate.left(8) != "X-Opera-")
- tmp.file()->writeBlock( input, l );
- }
- tmp.close();
- first_msg = false;
-
- if(info->removeDupMsg)
- addMessage( info, folderName, tmp.name() );
- else
- addMessage_fastImport( info, folderName, tmp.name() );
- tmp.unlink();
- int currentPercentage = (int) ( ( (float) operaArchiv.at() / filenameInfo.size() ) * 100 );
- info->setCurrent( currentPercentage );
-
- if (currentFile == 1)
- overall_status = (int) ( currentPercentage * ( (float) currentFile / totalFiles ) );
- else
- overall_status = (int)(((currentFile-1)*(100.0/(float)totalFiles))+(currentPercentage*(1.0/(float)totalFiles)));
-
- info->setOverall( overall_status );
- if ( info->shouldTerminate() ) break;
- }
-
- info->addLog( i18n("Finished importing emails from %1").arg( *mailFile ));
- if (count_duplicates > 0) {
- info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
- }
- currentFile++;
- count_duplicates = 0;
- operaArchiv.close();
- }
- if ( info->shouldTerminate() ) break;
- }
- } else {
- info->addLog(i18n("No files found for import."));
- }
- }
- if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
- info->setCurrent(100);
- info->setOverall(100);
-}
diff --git a/kmailcvt/filter_opera.h b/kmailcvt/filter_opera.h
new file mode 100644
index 00000000..7da80afa
--- /dev/null
+++ b/kmailcvt/filter_opera.h
@@ -0,0 +1,37 @@
+/***************************************************************************
+ filter_opera.h - Opera mail import
+ -------------------
+ begin : Januar 26 2005
+ copyright : (C) 2005 by Danny Kukawka
+ email : danny.kukawka@web.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef FILTER_OPERA_H
+#define FILTER_OPERA_H
+
+#include "filters.h"
+
+/**
+ *imports opera account-archives into KMail
+ *@author Danny Kukawka
+ */
+
+class FilterOpera : public Filter
+{
+public:
+ FilterOpera();
+ ~FilterOpera();
+
+ void import(FilterInfo *info);
+};
+
+#endif
diff --git a/kmailcvt/filter_opera.hxx b/kmailcvt/filter_opera.hxx
deleted file mode 100644
index 27ded4cc..00000000
--- a/kmailcvt/filter_opera.hxx
+++ /dev/null
@@ -1,37 +0,0 @@
-/***************************************************************************
- filter_opera.hxx - Opera mail import
- -------------------
- begin : Januar 26 2005
- copyright : (C) 2005 by Danny Kukawka
- email : danny.kukawka@web.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#ifndef FILTER_OPERA_HXX
-#define FILTER_OPERA_HXX
-
-#include "filters.hxx"
-
-/**
- *imports opera account-archives into KMail
- *@author Danny Kukawka
- */
-
-class FilterOpera : public Filter
-{
-public:
- FilterOpera();
- ~FilterOpera();
-
- void import(FilterInfo *info);
-};
-
-#endif
diff --git a/kmailcvt/filter_outlook.cpp b/kmailcvt/filter_outlook.cpp
new file mode 100644
index 00000000..bb395918
--- /dev/null
+++ b/kmailcvt/filter_outlook.cpp
@@ -0,0 +1,61 @@
+/***************************************************************************
+ filter_opera.cpp - Outlook mail import
+ -------------------
+ begin : February 01 2005
+ copyright : (C) 2005 by Danny Kukawka
+ email : danny.kukawka@web.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+
+#include <config.h>
+#include <tdelocale.h>
+#include <tdefiledialog.h>
+#include <tdetempfile.h>
+#include <kdebug.h>
+
+#include "filter_outlook.h"
+
+FilterOutlook::FilterOutlook() :
+ Filter( i18n("Import Outlook Emails"),
+ "Danny Kukawka",
+ i18n("<p><b>Outlook email import filter</b></p>"
+ "<p>This filter will import mails from a Outlook pst-file. You will need to locate "
+ "the folder where the pst-file has been stored by searching for .pst files under: "
+ "<i>C:\\Documents and Settings</i> in Windows 2000 or later</p>"
+ "<p><b>Note:</b> Emails will be imported into a folder named after the "
+ "account they came from, prefixed with OUTLOOK-</p>" ))
+{}
+
+FilterOutlook::~FilterOutlook()
+{
+}
+
+void FilterOutlook::import(FilterInfo *info)
+{
+ info->alert(i18n("No directory selected."));
+ info->addLog(i18n("Counting files..."));
+ info->addLog(i18n("Counting mail..."));
+ info->addLog(i18n("Counting directories..."));
+ info->addLog(i18n("Counting folders..."));
+ info->addLog(i18n("Importing new mail files..."));
+ info->addLog(i18n("No files found for import."));
+
+ TQString outlookDir;
+ outlookDir = KFileDialog::getExistingDirectory(TQDir::homeDirPath(), info->parent());
+ TQDir importDir (outlookDir);
+ TQStringList files = importDir.entryList("*.[pP][sS][tT]", TQDir::Files, TQDir::Name);
+ for ( TQStringList::Iterator pstFile = files.begin(); pstFile != files.end(); ++pstFile) {
+ info->addLog( i18n("Importing emails from %1...").arg( *pstFile ) );
+ info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
+ info->alert( i18n("Unable to open %1, skipping").arg( *pstFile ) );
+ }
+}
diff --git a/kmailcvt/filter_outlook.cxx b/kmailcvt/filter_outlook.cxx
deleted file mode 100644
index 10483d09..00000000
--- a/kmailcvt/filter_outlook.cxx
+++ /dev/null
@@ -1,61 +0,0 @@
-/***************************************************************************
- filter_opera.cxx - Outlook mail import
- -------------------
- begin : February 01 2005
- copyright : (C) 2005 by Danny Kukawka
- email : danny.kukawka@web.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-
-#include <config.h>
-#include <tdelocale.h>
-#include <tdefiledialog.h>
-#include <tdetempfile.h>
-#include <kdebug.h>
-
-#include "filter_outlook.hxx"
-
-FilterOutlook::FilterOutlook() :
- Filter( i18n("Import Outlook Emails"),
- "Danny Kukawka",
- i18n("<p><b>Outlook email import filter</b></p>"
- "<p>This filter will import mails from a Outlook pst-file. You will need to locate "
- "the folder where the pst-file has been stored by searching for .pst files under: "
- "<i>C:\\Documents and Settings</i> in Windows 2000 or later</p>"
- "<p><b>Note:</b> Emails will be imported into a folder named after the "
- "account they came from, prefixed with OUTLOOK-</p>" ))
-{}
-
-FilterOutlook::~FilterOutlook()
-{
-}
-
-void FilterOutlook::import(FilterInfo *info)
-{
- info->alert(i18n("No directory selected."));
- info->addLog(i18n("Counting files..."));
- info->addLog(i18n("Counting mail..."));
- info->addLog(i18n("Counting directories..."));
- info->addLog(i18n("Counting folders..."));
- info->addLog(i18n("Importing new mail files..."));
- info->addLog(i18n("No files found for import."));
-
- TQString outlookDir;
- outlookDir = KFileDialog::getExistingDirectory(TQDir::homeDirPath(), info->parent());
- TQDir importDir (outlookDir);
- TQStringList files = importDir.entryList("*.[pP][sS][tT]", TQDir::Files, TQDir::Name);
- for ( TQStringList::Iterator pstFile = files.begin(); pstFile != files.end(); ++pstFile) {
- info->addLog( i18n("Importing emails from %1...").arg( *pstFile ) );
- info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
- info->alert( i18n("Unable to open %1, skipping").arg( *pstFile ) );
- }
-}
diff --git a/kmailcvt/filter_outlook.h b/kmailcvt/filter_outlook.h
new file mode 100644
index 00000000..ec762066
--- /dev/null
+++ b/kmailcvt/filter_outlook.h
@@ -0,0 +1,38 @@
+/***************************************************************************
+ filter_opera.h - Outlook mail import
+ -------------------
+ begin : Januar 26 2005
+ copyright : (C) 2005 by Danny Kukawka
+ email : danny.kukawka@web.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef FILTER_OUTLOOK_H
+#define FILTER_OUTLOOK_H
+
+#include "filters.h"
+
+/**
+ * imports mails from Outlook pst-files into KMail
+ * NOTE: This is a dummy at the moment
+ * @author Danny Kukawka
+ */
+
+class FilterOutlook : public Filter
+{
+public:
+ FilterOutlook();
+ ~FilterOutlook();
+
+ void import(FilterInfo *info);
+};
+
+#endif
diff --git a/kmailcvt/filter_outlook.hxx b/kmailcvt/filter_outlook.hxx
deleted file mode 100644
index bad7d5ee..00000000
--- a/kmailcvt/filter_outlook.hxx
+++ /dev/null
@@ -1,38 +0,0 @@
-/***************************************************************************
- filter_opera.hxx - Outlook mail import
- -------------------
- begin : Januar 26 2005
- copyright : (C) 2005 by Danny Kukawka
- email : danny.kukawka@web.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#ifndef FILTER_OUTLOOK_HXX
-#define FILTER_OUTLOOK_HXX
-
-#include "filters.hxx"
-
-/**
- * imports mails from Outlook pst-files into KMail
- * NOTE: This is a dummy at the moment
- * @author Danny Kukawka
- */
-
-class FilterOutlook : public Filter
-{
-public:
- FilterOutlook();
- ~FilterOutlook();
-
- void import(FilterInfo *info);
-};
-
-#endif
diff --git a/kmailcvt/filter_plain.cpp b/kmailcvt/filter_plain.cpp
new file mode 100644
index 00000000..01554c87
--- /dev/null
+++ b/kmailcvt/filter_plain.cpp
@@ -0,0 +1,87 @@
+/***************************************************************************
+ FilterPlain.cpp - Plain mail import
+ -------------------
+ begin : Fri Jun 14 2002
+ copyright : (C) 2002 by Laurence Anderson
+ email : l.d.anderson@warwick.ac.uk
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <config.h>
+#include <tdelocale.h>
+#include <tdefiledialog.h>
+#include <libgen.h>
+
+#include "filter_plain.h"
+
+
+FilterPlain::FilterPlain() :
+ Filter(i18n("Import Plain Text Emails"),
+ "Laurence Anderson <p>( Filter accelerated by Danny Kukawka )</p>",
+ i18n("<p>Select the directory containing the emails on your system. "
+ "The emails are placed in a folder with the same name as the "
+ "directory they were in, prefixed by PLAIN-</p>"
+ "<p>This filter will import all .msg, .eml and .txt emails.</p>"))
+{}
+
+FilterPlain::~FilterPlain()
+{
+}
+
+void FilterPlain::import(FilterInfo *info)
+{
+ // Select directory containing plain text emails
+ TQString mailDir = KFileDialog::getExistingDirectory(TQDir::homeDirPath(),info->parent());
+ if (mailDir.isEmpty()) { // No directory selected
+ info->alert(i18n("No directory selected."));
+ return;
+ }
+ TQDir dir (mailDir);
+ TQStringList files = dir.entryList("*.[eE][mM][lL]; *.[tT][xX][tT]; *.[mM][sS][gG]", TQDir::Files, TQDir::Name);
+
+ // Count total number of files to be processed
+ info->addLog(i18n("Counting files..."));
+ int totalFiles = files.count();
+ int currentFile = 0;
+
+ info->addLog(i18n("Importing new mail files..."));
+ for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile ) {
+ info->setFrom(*mailFile);
+ info->setTo(dir.dirName());
+ info->setCurrent(0);
+
+ /* comment by Danny Kukawka:
+ * addMessage() == old function, need more time and check for duplicates
+ * addMessage_fastImport == new function, faster and no check for duplicates
+ */
+ if(info->removeDupMsg) {
+ if(! addMessage( info, "PLAIN-" + dir.dirName(), dir.filePath(*mailFile) )) {
+ info->addLog( i18n("Could not import %1").arg( *mailFile ) );
+ }
+ } else {
+ if( ! addMessage_fastImport( info, "PLAIN-" + dir.dirName(), dir.filePath(*mailFile) )) {
+ info->addLog( i18n("Could not import %1").arg( *mailFile ) );
+ }
+ }
+
+ info->setCurrent(100);
+ info->setOverall(100 * ++currentFile/ totalFiles);
+ if ( info->shouldTerminate() ) break;
+ }
+
+ info->addLog( i18n("Finished importing emails from %1").arg( mailDir ));
+ if (count_duplicates > 0) {
+ info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
+ }
+ if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
+
+ count_duplicates = 0;
+}
diff --git a/kmailcvt/filter_plain.cxx b/kmailcvt/filter_plain.cxx
deleted file mode 100644
index 9f78b939..00000000
--- a/kmailcvt/filter_plain.cxx
+++ /dev/null
@@ -1,87 +0,0 @@
-/***************************************************************************
- FilterPlain.cxx - Plain mail import
- -------------------
- begin : Fri Jun 14 2002
- copyright : (C) 2002 by Laurence Anderson
- email : l.d.anderson@warwick.ac.uk
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include <config.h>
-#include <tdelocale.h>
-#include <tdefiledialog.h>
-#include <libgen.h>
-
-#include "filter_plain.hxx"
-
-
-FilterPlain::FilterPlain() :
- Filter(i18n("Import Plain Text Emails"),
- "Laurence Anderson <p>( Filter accelerated by Danny Kukawka )</p>",
- i18n("<p>Select the directory containing the emails on your system. "
- "The emails are placed in a folder with the same name as the "
- "directory they were in, prefixed by PLAIN-</p>"
- "<p>This filter will import all .msg, .eml and .txt emails.</p>"))
-{}
-
-FilterPlain::~FilterPlain()
-{
-}
-
-void FilterPlain::import(FilterInfo *info)
-{
- // Select directory containing plain text emails
- TQString mailDir = KFileDialog::getExistingDirectory(TQDir::homeDirPath(),info->parent());
- if (mailDir.isEmpty()) { // No directory selected
- info->alert(i18n("No directory selected."));
- return;
- }
- TQDir dir (mailDir);
- TQStringList files = dir.entryList("*.[eE][mM][lL]; *.[tT][xX][tT]; *.[mM][sS][gG]", TQDir::Files, TQDir::Name);
-
- // Count total number of files to be processed
- info->addLog(i18n("Counting files..."));
- int totalFiles = files.count();
- int currentFile = 0;
-
- info->addLog(i18n("Importing new mail files..."));
- for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile ) {
- info->setFrom(*mailFile);
- info->setTo(dir.dirName());
- info->setCurrent(0);
-
- /* comment by Danny Kukawka:
- * addMessage() == old function, need more time and check for duplicates
- * addMessage_fastImport == new function, faster and no check for duplicates
- */
- if(info->removeDupMsg) {
- if(! addMessage( info, "PLAIN-" + dir.dirName(), dir.filePath(*mailFile) )) {
- info->addLog( i18n("Could not import %1").arg( *mailFile ) );
- }
- } else {
- if( ! addMessage_fastImport( info, "PLAIN-" + dir.dirName(), dir.filePath(*mailFile) )) {
- info->addLog( i18n("Could not import %1").arg( *mailFile ) );
- }
- }
-
- info->setCurrent(100);
- info->setOverall(100 * ++currentFile/ totalFiles);
- if ( info->shouldTerminate() ) break;
- }
-
- info->addLog( i18n("Finished importing emails from %1").arg( mailDir ));
- if (count_duplicates > 0) {
- info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
- }
- if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
-
- count_duplicates = 0;
-}
diff --git a/kmailcvt/filter_plain.h b/kmailcvt/filter_plain.h
new file mode 100644
index 00000000..2319e888
--- /dev/null
+++ b/kmailcvt/filter_plain.h
@@ -0,0 +1,37 @@
+/***************************************************************************
+ FilterPlain.h - Plain mail import
+ -------------------
+ begin : Fri Jun 24 2002
+ copyright : (C) 2002 by Laurence Anderson
+ email : l.d.anderson@warwick.ac.uk
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef FILTER_PLAIN_H
+#define FILTER_PLAIN_H
+
+#include "filters.h"
+
+/**
+ *imports Plain text messages into KMail
+ *@author laurence
+ */
+
+class FilterPlain : public Filter
+{
+public:
+ FilterPlain();
+ ~FilterPlain();
+
+ void import(FilterInfo *info);
+};
+
+#endif
diff --git a/kmailcvt/filter_plain.hxx b/kmailcvt/filter_plain.hxx
deleted file mode 100644
index ddd9d494..00000000
--- a/kmailcvt/filter_plain.hxx
+++ /dev/null
@@ -1,37 +0,0 @@
-/***************************************************************************
- FilterPlain.hxx - Plain mail import
- -------------------
- begin : Fri Jun 24 2002
- copyright : (C) 2002 by Laurence Anderson
- email : l.d.anderson@warwick.ac.uk
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#ifndef FILTER_PLAIN_HXX
-#define FILTER_PLAIN_HXX
-
-#include "filters.hxx"
-
-/**
- *imports Plain text messages into KMail
- *@author laurence
- */
-
-class FilterPlain : public Filter
-{
-public:
- FilterPlain();
- ~FilterPlain();
-
- void import(FilterInfo *info);
-};
-
-#endif
diff --git a/kmailcvt/filter_pmail.cpp b/kmailcvt/filter_pmail.cpp
new file mode 100644
index 00000000..b45a0be4
--- /dev/null
+++ b/kmailcvt/filter_pmail.cpp
@@ -0,0 +1,346 @@
+/***************************************************************************
+ FilterPMail.cpp - Pegasus-Mail import
+ -------------------
+ begin : Sat Jan 6 2001
+ copyright : (C) 2001 by Holger Schurig
+ (C) 2005 by Danny Kukawka
+ email : holgerschurig@gmx.de
+ danny.kukawka@web.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <config.h>
+#include <tdelocale.h>
+#include <tdefiledialog.h>
+#include <tqregexp.h>
+#include <tdetempfile.h>
+#include <kdebug.h>
+
+#include "filter_pmail.h"
+
+
+FilterPMail::FilterPMail() :
+ Filter(i18n("Import Folders From Pegasus-Mail"),
+ "Holger Schurig <br>( rewritten by Danny Kukawka )",
+ i18n("<p>Select the Pegasus-Mail directory on your system (containing *.CNM, *.PMM and *.MBX files). "
+ "On many systems this is stored in C:\\pmail\\mail or C:\\pmail\\mail\\admin</p>"
+ "<p><b>Note:</b> Since it is possible to recreate the folder structure, the folders "
+ "will be stored under: \"PegasusMail-Import\".</p>"))
+{}
+
+FilterPMail::~FilterPMail()
+{
+}
+
+void FilterPMail::import(FilterInfo *info)
+{
+ inf = info;
+
+ // Select directory from where I have to import files
+ KFileDialog *kfd;
+ kfd = new KFileDialog( TQDir::homeDirPath(), "", 0, "tdefiledialog", true );
+ kfd->setMode(KFile::Directory | KFile::LocalOnly);
+ kfd->exec();
+ chosenDir = kfd->selectedFile();
+ delete kfd;
+
+ if (chosenDir.isEmpty()) {
+ info->alert(i18n("No directory selected."));
+ return;
+ }
+
+ // Count total number of files to be processed
+ info->addLog(i18n("Counting files..."));
+ dir.setPath (chosenDir);
+ TQStringList files = dir.entryList("*.[cC][nN][mM]; *.[pP][mM][mM]; *.[mM][bB][xX]", TQDir::Files, TQDir::Name);
+ totalFiles = files.count();
+ currentFile = 0;
+ kdDebug() << "Count is " << totalFiles << endl;
+
+ if(!(folderParsed = parseFolderMatrix())) {
+ info->addLog(i18n("Cannot parse the folder structure; continuing import without subfolder support."));
+ }
+
+ info->addLog(i18n("Importing new mail files ('.cnm')..."));
+ processFiles("*.[cC][nN][mM]", &FilterPMail::importNewMessage);
+ info->addLog(i18n("Importing mail folders ('.pmm')..."));
+ processFiles("*.[pP][mM][mM]", &FilterPMail::importMailFolder);
+ info->addLog(i18n("Importing 'UNIX' mail folders ('.mbx')..."));
+ processFiles("*.[mM][bB][xX]", &FilterPMail::importUnixMailFolder);
+
+ info->addLog( i18n("Finished importing emails from %1").arg( chosenDir ));
+ info->setCurrent(100);
+ info->setOverall(100);
+}
+
+/** this looks for all files with the filemask 'mask' and calls the 'workFunc' on each of them */
+void FilterPMail::processFiles(const TQString& mask, void(FilterPMail::* workFunc)(const TQString&) )
+{
+ if (inf->shouldTerminate()) return;
+
+ TQStringList files = dir.entryList(mask, TQDir::Files, TQDir::Name);
+ //kdDebug() << "Mask is " << mask << " count is " << files.count() << endl;
+ for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile ) {
+ // Notify current file
+ TQFileInfo mailfileinfo(*mailFile);
+ inf->setFrom(mailfileinfo.fileName());
+
+ // Clear the other fields
+ inf->setTo(TQString());
+ inf->setCurrent(TQString());
+ inf->setCurrent(-1);
+
+ // call worker function, increase progressbar
+ (this->*workFunc)(dir.filePath(*mailFile));
+ ++currentFile;
+ inf->setOverall( (int) ((float) currentFile / totalFiles * 100));
+ inf->setCurrent( 100 );
+ if (inf->shouldTerminate()) return;
+ }
+}
+
+
+/** this function imports one *.CNM message */
+void FilterPMail::importNewMessage(const TQString& file)
+{
+ TQString destFolder("PegasusMail-Import/New Messages");
+ inf->setTo(destFolder);
+
+ /* comment by Danny Kukawka:
+ * addMessage() == old function, need more time and check for duplicates
+ * addMessage_fastImport == new function, faster and no check for duplicates
+ */
+ if(inf->removeDupMsg)
+ addMessage( inf, destFolder, file );
+ else
+ addMessage_fastImport( inf, destFolder, file );
+}
+
+
+/** this function imports one mail folder file (*.PMM) */
+void FilterPMail::importMailFolder(const TQString& file)
+{
+ // Format of a PMM file:
+ // First comes a header with 128 bytes. At the beginning is the name of
+ // the folder. Then there are some unknown bytes (strings). At offset 128
+ // the first message starts.
+ //
+ // Each message is terminated by a 0x1A byte. The next message follows
+ // immediately.
+ //
+ // The last message is followed by a 0x1A, too.
+ //
+ // 000000 6d 61 69 6c 73 65 72 76 65 72 2d 70 72 6f 6a 65 mailserver-proje
+ // 000010 63 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ct..............
+ // 000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ // 000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ // 000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ // 000050 00 00 00 00 00 00 36 30 34 37 35 37 32 45 3a 36 ......6047572E:6
+ // 000060 46 34 39 3a 46 4f 4c 30 31 33 35 35 00 00 00 00 F49:FOL01355....
+ // 000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
+ // 000080 52 65 74 75 72 6e 2d 50 61 74 68 3a 20 3c 75 72 Return-Path: <ur
+ // ...
+ // 000cb0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0d 0a 1a 52 65 74 ---------+...Ret
+ // 000cc0 75 72 6e 2d 50 61 74 68 3a 20 3c 62 6f 75 6e 63 urn-Path: <bounc
+ // ...
+ // 04dc50 46 30 33 38 44 2e 36 31 35 44 37 34 44 30 2d 2d F038D.615D74D0--
+ // 04dc60 0d 0a 1a
+
+ struct {
+ char folder[86];
+ char id[42];
+ } pmm_head;
+
+ long l = 0;
+ TQFile f(file);
+ if (!f.open(IO_ReadOnly)) {
+ inf->alert(i18n("Unable to open %1, skipping").arg(file));
+ } else {
+ // Get folder name
+ l = f.readBlock((char *) &pmm_head, sizeof(pmm_head));
+ TQString folder("PegasusMail-Import/");
+ if(folderParsed)
+ folder.append(getFolderName((TQString)pmm_head.id));
+ else
+ folder.append(pmm_head.folder);
+ inf->setTo(folder);
+ inf->addLog(i18n("Importing %1").arg("../" + TQString(pmm_head.folder)));
+
+ TQByteArray input(MAX_LINE);
+ bool first_msg = true;
+
+ while (!f.atEnd()) {
+ KTempFile tempfile;
+ inf->setCurrent( (int) ( ( (float) f.at() / f.size() ) * 100 ) );
+
+ if(!first_msg) {
+ // set the filepos back to last line minus the seperate char (0x1a)
+ f.at(f.at() - l + 1);
+ }
+
+ // no problem to loose the last line in file. This only contains a seperate char
+ while ( ! f.atEnd() && (l = f.readLine(input.data(),MAX_LINE))) {
+ if (inf->shouldTerminate()){
+ tempfile.close();
+ tempfile.unlink();
+ return;
+ }
+ if(input[0] == 0x1a ) {
+ break;
+ } else {
+ tempfile.file()->writeBlock( input, l );
+ }
+ }
+ tempfile.close();
+
+ if(inf->removeDupMsg)
+ addMessage( inf, folder, tempfile.name() );
+ else
+ addMessage_fastImport( inf, folder, tempfile.name() );
+
+ first_msg = false;
+ tempfile.unlink();
+ }
+ }
+ f.close();
+}
+
+
+/** imports a 'unix' format mail folder (*.MBX) */
+void FilterPMail::importUnixMailFolder(const TQString& file)
+{
+ struct {
+ char folder[58];
+ char id[31];
+ } pmg_head;
+
+ TQFile f;
+ TQString folder("PegasusMail-Import/"), s(file), seperate;
+ TQByteArray line(MAX_LINE);
+ int n = 0, l = 0;
+
+ /** Get the folder name */
+ s.replace( TQRegExp("mbx$"), "pmg");
+ s.replace( TQRegExp("MBX$"), "PMG");
+ f.setName(s);
+ if (! f.open( IO_ReadOnly ) ) {
+ inf->alert( i18n("Unable to open %1, skipping").arg( s ) );
+ return;
+ } else {
+ f.readBlock((char *) &pmg_head, sizeof(pmg_head));
+ f.close();
+
+ if(folderParsed)
+ folder.append(getFolderName((TQString)pmg_head.id));
+ else
+ folder.append(pmg_head.folder);
+
+ inf->setTo(folder);
+ inf->setTo(folder);
+ }
+
+ /** Read in the mbox */
+ f.setName(file);
+ if (! f.open( IO_ReadOnly ) ) {
+ inf->alert( i18n("Unable to open %1, skipping").arg( s ) );
+ } else {
+ inf->addLog(i18n("Importing %1").arg("../" + TQString(pmg_head.folder)));
+ l = f.readLine( line.data(),MAX_LINE); // read the first line which is unneeded
+ while ( ! f.atEnd() ) {
+ KTempFile tempfile;
+
+ // we lost the last line, which is the first line of the new message in
+ // this lopp, but this is ok, because this is the seperate line with
+ // "From ???@???" and we can forget them
+ while ( ! f.atEnd() && (l = f.readLine(line.data(),MAX_LINE)) && ((seperate = line.data()).left(5) != "From ")) {
+ tempfile.file()->writeBlock(line.data(), l);
+ if (inf->shouldTerminate()){
+ tempfile.close();
+ tempfile.unlink();
+ return;
+ }
+ }
+ tempfile.close();
+ if(inf->removeDupMsg)
+ addMessage( inf, folder, tempfile.name() );
+ else
+ addMessage_fastImport( inf, folder, tempfile.name() );
+ tempfile.unlink();
+
+ n++;
+ inf->setCurrent(i18n("Message %1").arg(n));
+ inf->setCurrent( (int) ( ( (float) f.at() / f.size() ) * 100 ) );
+ }
+ }
+ f.close();
+}
+
+/** Parse the information about folderstructure to folderMatrix */
+bool FilterPMail::parseFolderMatrix()
+{
+ kdDebug() << "Start parsing the foldermatrix." << endl;
+ inf->addLog(i18n("Parsing the folder structure..."));
+
+ TQFile hierarch(chosenDir + "/hierarch.pm");
+ if (! hierarch.open( IO_ReadOnly ) ) {
+ inf->alert( i18n("Unable to open %1, skipping").arg( chosenDir + "hierarch.pm" ) );
+ return false;
+ } else {
+ TQStringList tmpList;
+ TQString tmpRead;
+ while ( !hierarch.atEnd() && hierarch.readLine(tmpRead,100)) {
+ TQString tmpArray[5];
+ tmpRead.remove(tmpRead.length() -2,2);
+ TQStringList tmpList = TQStringList::split(",", tmpRead, false);
+ int i = 0;
+ for ( TQStringList::Iterator it = tmpList.begin(); it != tmpList.end(); ++it, i++) {
+ TQString _tmp = *it;
+ if(i < 5) tmpArray[i] = _tmp.remove("\"");
+ else {
+ hierarch.close();
+ return false;
+ }
+ }
+ folderMatrix.append(tmpArray);
+ }
+ }
+ hierarch.close();
+ return true;
+}
+
+/** get the foldername for a given file ID from folderMatrix */
+TQString FilterPMail::getFolderName(TQString ID)
+{
+ bool found = false;
+ TQString folder;
+ TQString search = ID;
+
+ while (!found)
+ {
+ for ( FolderStructureIterator it = folderMatrix.begin(); it != folderMatrix.end(); it++) {
+ FolderStructure tmp = *it;
+
+ TQString _ID = tmp[2];
+ if(_ID == search) {
+ TQString _type = tmp[0] + tmp[1];
+ if(( _type == "21")) {
+ found = true;
+ break;
+ }
+ else {
+ folder.prepend((tmp[4] + "/"));
+ search = tmp[3];
+ }
+ }
+ }
+ }
+ return folder;
+}
diff --git a/kmailcvt/filter_pmail.cxx b/kmailcvt/filter_pmail.cxx
deleted file mode 100644
index e48e062d..00000000
--- a/kmailcvt/filter_pmail.cxx
+++ /dev/null
@@ -1,346 +0,0 @@
-/***************************************************************************
- FilterPMail.cxx - Pegasus-Mail import
- -------------------
- begin : Sat Jan 6 2001
- copyright : (C) 2001 by Holger Schurig
- (C) 2005 by Danny Kukawka
- email : holgerschurig@gmx.de
- danny.kukawka@web.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include <config.h>
-#include <tdelocale.h>
-#include <tdefiledialog.h>
-#include <tqregexp.h>
-#include <tdetempfile.h>
-#include <kdebug.h>
-
-#include "filter_pmail.hxx"
-
-
-FilterPMail::FilterPMail() :
- Filter(i18n("Import Folders From Pegasus-Mail"),
- "Holger Schurig <br>( rewritten by Danny Kukawka )",
- i18n("<p>Select the Pegasus-Mail directory on your system (containing *.CNM, *.PMM and *.MBX files). "
- "On many systems this is stored in C:\\pmail\\mail or C:\\pmail\\mail\\admin</p>"
- "<p><b>Note:</b> Since it is possible to recreate the folder structure, the folders "
- "will be stored under: \"PegasusMail-Import\".</p>"))
-{}
-
-FilterPMail::~FilterPMail()
-{
-}
-
-void FilterPMail::import(FilterInfo *info)
-{
- inf = info;
-
- // Select directory from where I have to import files
- KFileDialog *kfd;
- kfd = new KFileDialog( TQDir::homeDirPath(), "", 0, "tdefiledialog", true );
- kfd->setMode(KFile::Directory | KFile::LocalOnly);
- kfd->exec();
- chosenDir = kfd->selectedFile();
- delete kfd;
-
- if (chosenDir.isEmpty()) {
- info->alert(i18n("No directory selected."));
- return;
- }
-
- // Count total number of files to be processed
- info->addLog(i18n("Counting files..."));
- dir.setPath (chosenDir);
- TQStringList files = dir.entryList("*.[cC][nN][mM]; *.[pP][mM][mM]; *.[mM][bB][xX]", TQDir::Files, TQDir::Name);
- totalFiles = files.count();
- currentFile = 0;
- kdDebug() << "Count is " << totalFiles << endl;
-
- if(!(folderParsed = parseFolderMatrix())) {
- info->addLog(i18n("Cannot parse the folder structure; continuing import without subfolder support."));
- }
-
- info->addLog(i18n("Importing new mail files ('.cnm')..."));
- processFiles("*.[cC][nN][mM]", &FilterPMail::importNewMessage);
- info->addLog(i18n("Importing mail folders ('.pmm')..."));
- processFiles("*.[pP][mM][mM]", &FilterPMail::importMailFolder);
- info->addLog(i18n("Importing 'UNIX' mail folders ('.mbx')..."));
- processFiles("*.[mM][bB][xX]", &FilterPMail::importUnixMailFolder);
-
- info->addLog( i18n("Finished importing emails from %1").arg( chosenDir ));
- info->setCurrent(100);
- info->setOverall(100);
-}
-
-/** this looks for all files with the filemask 'mask' and calls the 'workFunc' on each of them */
-void FilterPMail::processFiles(const TQString& mask, void(FilterPMail::* workFunc)(const TQString&) )
-{
- if (inf->shouldTerminate()) return;
-
- TQStringList files = dir.entryList(mask, TQDir::Files, TQDir::Name);
- //kdDebug() << "Mask is " << mask << " count is " << files.count() << endl;
- for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile ) {
- // Notify current file
- TQFileInfo mailfileinfo(*mailFile);
- inf->setFrom(mailfileinfo.fileName());
-
- // Clear the other fields
- inf->setTo(TQString());
- inf->setCurrent(TQString());
- inf->setCurrent(-1);
-
- // call worker function, increase progressbar
- (this->*workFunc)(dir.filePath(*mailFile));
- ++currentFile;
- inf->setOverall( (int) ((float) currentFile / totalFiles * 100));
- inf->setCurrent( 100 );
- if (inf->shouldTerminate()) return;
- }
-}
-
-
-/** this function imports one *.CNM message */
-void FilterPMail::importNewMessage(const TQString& file)
-{
- TQString destFolder("PegasusMail-Import/New Messages");
- inf->setTo(destFolder);
-
- /* comment by Danny Kukawka:
- * addMessage() == old function, need more time and check for duplicates
- * addMessage_fastImport == new function, faster and no check for duplicates
- */
- if(inf->removeDupMsg)
- addMessage( inf, destFolder, file );
- else
- addMessage_fastImport( inf, destFolder, file );
-}
-
-
-/** this function imports one mail folder file (*.PMM) */
-void FilterPMail::importMailFolder(const TQString& file)
-{
- // Format of a PMM file:
- // First comes a header with 128 bytes. At the beginning is the name of
- // the folder. Then there are some unknown bytes (strings). At offset 128
- // the first message starts.
- //
- // Each message is terminated by a 0x1A byte. The next message follows
- // immediately.
- //
- // The last message is followed by a 0x1A, too.
- //
- // 000000 6d 61 69 6c 73 65 72 76 65 72 2d 70 72 6f 6a 65 mailserver-proje
- // 000010 63 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ct..............
- // 000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- // 000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- // 000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- // 000050 00 00 00 00 00 00 36 30 34 37 35 37 32 45 3a 36 ......6047572E:6
- // 000060 46 34 39 3a 46 4f 4c 30 31 33 35 35 00 00 00 00 F49:FOL01355....
- // 000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- // 000080 52 65 74 75 72 6e 2d 50 61 74 68 3a 20 3c 75 72 Return-Path: <ur
- // ...
- // 000cb0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0d 0a 1a 52 65 74 ---------+...Ret
- // 000cc0 75 72 6e 2d 50 61 74 68 3a 20 3c 62 6f 75 6e 63 urn-Path: <bounc
- // ...
- // 04dc50 46 30 33 38 44 2e 36 31 35 44 37 34 44 30 2d 2d F038D.615D74D0--
- // 04dc60 0d 0a 1a
-
- struct {
- char folder[86];
- char id[42];
- } pmm_head;
-
- long l = 0;
- TQFile f(file);
- if (!f.open(IO_ReadOnly)) {
- inf->alert(i18n("Unable to open %1, skipping").arg(file));
- } else {
- // Get folder name
- l = f.readBlock((char *) &pmm_head, sizeof(pmm_head));
- TQString folder("PegasusMail-Import/");
- if(folderParsed)
- folder.append(getFolderName((TQString)pmm_head.id));
- else
- folder.append(pmm_head.folder);
- inf->setTo(folder);
- inf->addLog(i18n("Importing %1").arg("../" + TQString(pmm_head.folder)));
-
- TQByteArray input(MAX_LINE);
- bool first_msg = true;
-
- while (!f.atEnd()) {
- KTempFile tempfile;
- inf->setCurrent( (int) ( ( (float) f.at() / f.size() ) * 100 ) );
-
- if(!first_msg) {
- // set the filepos back to last line minus the seperate char (0x1a)
- f.at(f.at() - l + 1);
- }
-
- // no problem to loose the last line in file. This only contains a seperate char
- while ( ! f.atEnd() && (l = f.readLine(input.data(),MAX_LINE))) {
- if (inf->shouldTerminate()){
- tempfile.close();
- tempfile.unlink();
- return;
- }
- if(input[0] == 0x1a ) {
- break;
- } else {
- tempfile.file()->writeBlock( input, l );
- }
- }
- tempfile.close();
-
- if(inf->removeDupMsg)
- addMessage( inf, folder, tempfile.name() );
- else
- addMessage_fastImport( inf, folder, tempfile.name() );
-
- first_msg = false;
- tempfile.unlink();
- }
- }
- f.close();
-}
-
-
-/** imports a 'unix' format mail folder (*.MBX) */
-void FilterPMail::importUnixMailFolder(const TQString& file)
-{
- struct {
- char folder[58];
- char id[31];
- } pmg_head;
-
- TQFile f;
- TQString folder("PegasusMail-Import/"), s(file), seperate;
- TQByteArray line(MAX_LINE);
- int n = 0, l = 0;
-
- /** Get the folder name */
- s.replace( TQRegExp("mbx$"), "pmg");
- s.replace( TQRegExp("MBX$"), "PMG");
- f.setName(s);
- if (! f.open( IO_ReadOnly ) ) {
- inf->alert( i18n("Unable to open %1, skipping").arg( s ) );
- return;
- } else {
- f.readBlock((char *) &pmg_head, sizeof(pmg_head));
- f.close();
-
- if(folderParsed)
- folder.append(getFolderName((TQString)pmg_head.id));
- else
- folder.append(pmg_head.folder);
-
- inf->setTo(folder);
- inf->setTo(folder);
- }
-
- /** Read in the mbox */
- f.setName(file);
- if (! f.open( IO_ReadOnly ) ) {
- inf->alert( i18n("Unable to open %1, skipping").arg( s ) );
- } else {
- inf->addLog(i18n("Importing %1").arg("../" + TQString(pmg_head.folder)));
- l = f.readLine( line.data(),MAX_LINE); // read the first line which is unneeded
- while ( ! f.atEnd() ) {
- KTempFile tempfile;
-
- // we lost the last line, which is the first line of the new message in
- // this lopp, but this is ok, because this is the seperate line with
- // "From ???@???" and we can forget them
- while ( ! f.atEnd() && (l = f.readLine(line.data(),MAX_LINE)) && ((seperate = line.data()).left(5) != "From ")) {
- tempfile.file()->writeBlock(line.data(), l);
- if (inf->shouldTerminate()){
- tempfile.close();
- tempfile.unlink();
- return;
- }
- }
- tempfile.close();
- if(inf->removeDupMsg)
- addMessage( inf, folder, tempfile.name() );
- else
- addMessage_fastImport( inf, folder, tempfile.name() );
- tempfile.unlink();
-
- n++;
- inf->setCurrent(i18n("Message %1").arg(n));
- inf->setCurrent( (int) ( ( (float) f.at() / f.size() ) * 100 ) );
- }
- }
- f.close();
-}
-
-/** Parse the information about folderstructure to folderMatrix */
-bool FilterPMail::parseFolderMatrix()
-{
- kdDebug() << "Start parsing the foldermatrix." << endl;
- inf->addLog(i18n("Parsing the folder structure..."));
-
- TQFile hierarch(chosenDir + "/hierarch.pm");
- if (! hierarch.open( IO_ReadOnly ) ) {
- inf->alert( i18n("Unable to open %1, skipping").arg( chosenDir + "hierarch.pm" ) );
- return false;
- } else {
- TQStringList tmpList;
- TQString tmpRead;
- while ( !hierarch.atEnd() && hierarch.readLine(tmpRead,100)) {
- TQString tmpArray[5];
- tmpRead.remove(tmpRead.length() -2,2);
- TQStringList tmpList = TQStringList::split(",", tmpRead, false);
- int i = 0;
- for ( TQStringList::Iterator it = tmpList.begin(); it != tmpList.end(); ++it, i++) {
- TQString _tmp = *it;
- if(i < 5) tmpArray[i] = _tmp.remove("\"");
- else {
- hierarch.close();
- return false;
- }
- }
- folderMatrix.append(tmpArray);
- }
- }
- hierarch.close();
- return true;
-}
-
-/** get the foldername for a given file ID from folderMatrix */
-TQString FilterPMail::getFolderName(TQString ID)
-{
- bool found = false;
- TQString folder;
- TQString search = ID;
-
- while (!found)
- {
- for ( FolderStructureIterator it = folderMatrix.begin(); it != folderMatrix.end(); it++) {
- FolderStructure tmp = *it;
-
- TQString _ID = tmp[2];
- if(_ID == search) {
- TQString _type = tmp[0] + tmp[1];
- if(( _type == "21")) {
- found = true;
- break;
- }
- else {
- folder.prepend((tmp[4] + "/"));
- search = tmp[3];
- }
- }
- }
- }
- return folder;
-}
diff --git a/kmailcvt/filter_pmail.h b/kmailcvt/filter_pmail.h
new file mode 100644
index 00000000..07f62a36
--- /dev/null
+++ b/kmailcvt/filter_pmail.h
@@ -0,0 +1,76 @@
+/***************************************************************************
+ FilterPMail.h - Pegasus-Mail import
+ -------------------
+ begin : Sat Jan 6 2001
+ copyright : (C) 2001 by Holger Schurig
+ email : holgerschurig@gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef FILTER_PMAIL_H
+#define FILTER_PMAIL_H
+
+#include <tqdir.h>
+#include <tqvaluelist.h>
+
+#include "filters.h"
+
+class FilterPMail : public Filter
+{
+public:
+ FilterPMail();
+ ~FilterPMail();
+
+ void import(FilterInfo *info);
+
+protected:
+ /** this looks for all files with the filemask 'mask' and calls the 'workFunc' on each of them */
+ void processFiles(const TQString& mask, void(FilterPMail::* workFunc)(const TQString&) );
+ /** this function imports one *.CNM message */
+ void importNewMessage(const TQString& file);
+ /** this function imports one mail folder file (*.PMM) */
+ void importMailFolder(const TQString& file);
+ /** imports a 'unix' format mail folder (*.MBX) */
+ void importUnixMailFolder(const TQString& file);
+ /** this function recreate the folder structure */
+ bool parseFolderMatrix();
+ /** this function parse the folder structure */
+ TQString getFolderName(TQString ID);
+
+private:
+ /** the working directory */
+ TQDir dir;
+ /** pointer to the info */
+ FilterInfo * inf;
+
+ /** Folder structure here has 5 entries. */
+ typedef FolderStructureBase<5> FolderStructure;
+ /** List with the folder matrix, which contains following strings:
+ 1. type (2 for root-folder, 1 for folder, 0 for mailarchiv)
+ 2. type (1 for root-folder, 3 for folder, 0 for mailarchiv)
+ 3. "ID:flag:filename" of folder/archiv
+ 4. "ID:name" of parent folder
+ 5. name of folder/archiv
+ */
+ TQValueList<FolderStructure> folderMatrix;
+ typedef TQValueList<FolderStructure>::Iterator FolderStructureIterator;
+
+ bool folderParsed;
+
+ TQString chosenDir;
+
+ /** which file (of totalFiles) is now in the work? */
+ int currentFile;
+ /** total number of files that get imported */
+ int totalFiles;
+
+};
+#endif
diff --git a/kmailcvt/filter_pmail.hxx b/kmailcvt/filter_pmail.hxx
deleted file mode 100644
index 664fdcc1..00000000
--- a/kmailcvt/filter_pmail.hxx
+++ /dev/null
@@ -1,76 +0,0 @@
-/***************************************************************************
- FilterPMail.hxx - Pegasus-Mail import
- -------------------
- begin : Sat Jan 6 2001
- copyright : (C) 2001 by Holger Schurig
- email : holgerschurig@gmx.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#ifndef FILTER_PMAIL_HXX
-#define FILTER_PMAIL_HXX
-
-#include <tqdir.h>
-#include <tqvaluelist.h>
-
-#include "filters.hxx"
-
-class FilterPMail : public Filter
-{
-public:
- FilterPMail();
- ~FilterPMail();
-
- void import(FilterInfo *info);
-
-protected:
- /** this looks for all files with the filemask 'mask' and calls the 'workFunc' on each of them */
- void processFiles(const TQString& mask, void(FilterPMail::* workFunc)(const TQString&) );
- /** this function imports one *.CNM message */
- void importNewMessage(const TQString& file);
- /** this function imports one mail folder file (*.PMM) */
- void importMailFolder(const TQString& file);
- /** imports a 'unix' format mail folder (*.MBX) */
- void importUnixMailFolder(const TQString& file);
- /** this function recreate the folder structure */
- bool parseFolderMatrix();
- /** this function parse the folder structure */
- TQString getFolderName(TQString ID);
-
-private:
- /** the working directory */
- TQDir dir;
- /** pointer to the info */
- FilterInfo * inf;
-
- /** Folder structure here has 5 entries. */
- typedef FolderStructureBase<5> FolderStructure;
- /** List with the folder matrix, which contains following strings:
- 1. type (2 for root-folder, 1 for folder, 0 for mailarchiv)
- 2. type (1 for root-folder, 3 for folder, 0 for mailarchiv)
- 3. "ID:flag:filename" of folder/archiv
- 4. "ID:name" of parent folder
- 5. name of folder/archiv
- */
- TQValueList<FolderStructure> folderMatrix;
- typedef TQValueList<FolderStructure>::Iterator FolderStructureIterator;
-
- bool folderParsed;
-
- TQString chosenDir;
-
- /** which file (of totalFiles) is now in the work? */
- int currentFile;
- /** total number of files that get imported */
- int totalFiles;
-
-};
-#endif
diff --git a/kmailcvt/filter_sylpheed.cpp b/kmailcvt/filter_sylpheed.cpp
new file mode 100644
index 00000000..bf8427c2
--- /dev/null
+++ b/kmailcvt/filter_sylpheed.cpp
@@ -0,0 +1,228 @@
+/***************************************************************************
+ filter_sylpheed.h - Sylpheed maildir mail import
+ -------------------
+ begin : April 07 2005
+ copyright : (C) 2005 by Danny Kukawka
+ email : danny.kukawka@web.de
+***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include "filter_sylpheed.h"
+
+#include <config.h>
+#include <tdelocale.h>
+#include <tdefiledialog.h>
+#include <kdebug.h>
+
+/** Default constructor. */
+FilterSylpheed::FilterSylpheed( void ) :
+ Filter( i18n( "Import Sylpheed Maildirs and Folder Structure" ),
+ "Danny Kukawka",
+ i18n( "<p><b>Sylpheed import filter</b></p>"
+ "<p>Select the base directory of the Sylpheed mailfolder you want to import "
+ "(usually: ~/Mail ).</p>"
+ "<p>Since it is possible to recreate the folder structure, the folders "
+ "will be stored under: \"Sylpheed-Import\" in your local folder.</p>"
+ "<p>This filter also recreates the status of message, e.g. new or forwarded.") )
+{}
+
+/** Destructor. */
+FilterSylpheed::~FilterSylpheed( void )
+{
+}
+
+/** Recursive import of Sylpheed maildir. */
+void FilterSylpheed::import( FilterInfo *info )
+{
+
+ TQString _homeDir = TQDir::homeDirPath();
+
+ KFileDialog *kfd;
+ kfd = new KFileDialog( _homeDir, "", 0, "tdefiledialog", true );
+ kfd->setMode( KFile::Directory | KFile::LocalOnly );
+ kfd->exec();
+ mailDir = kfd->selectedFile();
+ delete kfd;
+
+ if ( mailDir.isEmpty() ) {
+ info->alert( i18n( "No directory selected." ) );
+ }
+ /**
+ * If the user only select homedir no import needed because
+ * there should be no files and we surely import wrong files.
+ */
+ else if ( mailDir == TQDir::homeDirPath() || mailDir == ( TQDir::homeDirPath() + "/" ) ) {
+ info->addLog( i18n( "No files found for import." ) );
+ } else {
+ info->setOverall(0);
+
+ /** Recursive import of the MailFolders */
+ TQDir dir(mailDir);
+ TQStringList rootSubDirs = dir.entryList("[^\\.]*", TQDir::Dirs , TQDir::Name);
+ int currentDir = 1, numSubDirs = rootSubDirs.size();
+ for(TQStringList::Iterator filename = rootSubDirs.begin() ; filename != rootSubDirs.end() ; ++filename, ++currentDir) {
+ if(info->shouldTerminate()) break;
+ importDirContents(info, dir.filePath(*filename));
+ info->setOverall((int) ((float) currentDir / numSubDirs * 100));
+ }
+ }
+
+ info->addLog( i18n("Finished importing emails from %1").arg( mailDir ));
+ if (count_duplicates > 0) {
+ info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
+ }
+ if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
+ count_duplicates = 0;
+ info->setCurrent(100);
+ info->setOverall(100);
+}
+
+/**
+ * Import of a directory contents.
+ * @param info Information storage for the operation.
+ * @param dirName The name of the directory to import.
+ */
+void FilterSylpheed::importDirContents( FilterInfo *info, const TQString& dirName)
+{
+ if(info->shouldTerminate()) return;
+
+ /** Here Import all archives in the current dir */
+ importFiles(info, dirName);
+
+ /** If there are subfolders, we import them one by one */
+ TQDir subfolders(dirName);
+ TQStringList subDirs = subfolders.entryList("[^\\.]*", TQDir::Dirs , TQDir::Name);
+ for(TQStringList::Iterator filename = subDirs.begin() ; filename != subDirs.end() ; ++filename) {
+ if(info->shouldTerminate()) return;
+ importDirContents(info, subfolders.filePath(*filename));
+ }
+}
+
+
+/**
+ * Import the files within a Folder.
+ * @param info Information storage for the operation.
+ * @param dirName The name of the directory to import.
+ */
+void FilterSylpheed::importFiles( FilterInfo *info, const TQString& dirName)
+{
+ TQDir dir(dirName);
+ TQString _path;
+ bool generatedPath = false;
+
+ TQDict<unsigned long> msgflags;
+ msgflags.setAutoDelete(true);
+
+ TQDir importDir (dirName);
+ TQStringList files = importDir.entryList("[^\\.]*", TQDir::Files, TQDir::Name);
+ int currentFile = 1, numFiles = files.size();
+
+ readMarkFile(info, dir.filePath(".sylpheed_mark"), msgflags);
+
+ for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile, ++currentFile) {
+ if(info->shouldTerminate()) return;
+ TQString _mfile = *mailFile;
+ if (!(_mfile.endsWith(".sylpheed_cache") || _mfile.endsWith(".sylpheed_mark") || _mfile.endsWith(".mh_sequences") )) {
+ if(!generatedPath) {
+ _path = "Sylpheed-Import/";
+ TQString _tmp = dir.filePath(*mailFile);
+ _tmp = _tmp.remove(_tmp.length() - _mfile.length() -1, _mfile.length()+1);
+ _path += _tmp.remove( mailDir ,TRUE);
+ TQString _info = _path;
+ info->addLog(i18n("Import folder %1...").arg(_info.remove(0,15)));
+
+ info->setFrom(_info);
+ info->setTo(_path);
+ generatedPath = true;
+ }
+
+ TQString flags;
+ if (msgflags[_mfile])
+ flags = msgFlagsToString(*(msgflags[_mfile]));
+
+ if(info->removeDupMsg) {
+ if(! addMessage( info, _path, dir.filePath(*mailFile), flags )) {
+ info->addLog( i18n("Could not import %1").arg( *mailFile ) );
+ }
+ info->setCurrent((int) ((float) currentFile / numFiles * 100));
+ } else {
+ if(! addMessage_fastImport( info, _path, dir.filePath(*mailFile), flags )) {
+ info->addLog( i18n("Could not import %1").arg( *mailFile ) );
+ }
+ info->setCurrent((int) ((float) currentFile / numFiles * 100));
+ }
+ }
+ }
+}
+
+
+void FilterSylpheed::readMarkFile( FilterInfo *info, const TQString &path, TQDict<unsigned long> &dict )
+{
+ /* Each sylpheed mail directory contains a .sylpheed_mark file which
+ * contains all the flags for each messages. The layout of this file
+ * is documented in the source code of sylpheed: in procmsg.h for
+ * the flag bits, and procmsg.c.
+ *
+ * Note that the mark file stores 32 bit unsigned integers in the
+ * platform's native "endianness".
+ *
+ * The mark file starts with a 32 bit unsigned integer with a version
+ * number. It is then followed by pairs of 32 bit unsigned integers,
+ * the first one with the message file name (which is a number),
+ * and the second one with the actual message flags */
+
+ TQ_UINT32 in, flags;
+ TQFile file(path);
+
+ if (!file.open(IO_ReadOnly))
+ return;
+
+ TQDataStream stream(&file);
+
+ if (TQ_BYTE_ORDER == TQ_LITTLE_ENDIAN)
+ stream.setByteOrder(TQDataStream::LittleEndian);
+
+
+
+ /* Read version; if the value is reasonably too big, we're looking
+ * at a file created on another platform. I don't have any test
+ * marks/folders, so just ignoring this case */
+ stream >> in;
+ if (in > (TQ_UINT32) 0xffff)
+ return;
+
+ while (!stream.atEnd()) {
+ if(info->shouldTerminate()){
+ file.close();
+ return;
+ }
+ stream >> in;
+ stream >> flags;
+ TQString s;
+ s.setNum((uint) in);
+ dict.insert(s, new unsigned long(flags));
+ }
+}
+
+TQString FilterSylpheed::msgFlagsToString(unsigned long flags)
+{
+ TQString status;
+
+ /* see sylpheed's procmsg.h */
+ if (flags & 1UL) status += 'N';
+ if (flags & 2UL) status += 'U';
+ if ((flags & 3UL) == 0UL) status += 'R';
+ if (flags & 8UL) status += 'D';
+ if (flags & 16UL) status += 'A';
+ if (flags & 32UL) status += 'F';
+
+ return status;
+}
diff --git a/kmailcvt/filter_sylpheed.cxx b/kmailcvt/filter_sylpheed.cxx
deleted file mode 100644
index 1fc008d4..00000000
--- a/kmailcvt/filter_sylpheed.cxx
+++ /dev/null
@@ -1,228 +0,0 @@
-/***************************************************************************
- filter_sylpheed.hxx - Sylpheed maildir mail import
- -------------------
- begin : April 07 2005
- copyright : (C) 2005 by Danny Kukawka
- email : danny.kukawka@web.de
-***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include "filter_sylpheed.hxx"
-
-#include <config.h>
-#include <tdelocale.h>
-#include <tdefiledialog.h>
-#include <kdebug.h>
-
-/** Default constructor. */
-FilterSylpheed::FilterSylpheed( void ) :
- Filter( i18n( "Import Sylpheed Maildirs and Folder Structure" ),
- "Danny Kukawka",
- i18n( "<p><b>Sylpheed import filter</b></p>"
- "<p>Select the base directory of the Sylpheed mailfolder you want to import "
- "(usually: ~/Mail ).</p>"
- "<p>Since it is possible to recreate the folder structure, the folders "
- "will be stored under: \"Sylpheed-Import\" in your local folder.</p>"
- "<p>This filter also recreates the status of message, e.g. new or forwarded.") )
-{}
-
-/** Destructor. */
-FilterSylpheed::~FilterSylpheed( void )
-{
-}
-
-/** Recursive import of Sylpheed maildir. */
-void FilterSylpheed::import( FilterInfo *info )
-{
-
- TQString _homeDir = TQDir::homeDirPath();
-
- KFileDialog *kfd;
- kfd = new KFileDialog( _homeDir, "", 0, "tdefiledialog", true );
- kfd->setMode( KFile::Directory | KFile::LocalOnly );
- kfd->exec();
- mailDir = kfd->selectedFile();
- delete kfd;
-
- if ( mailDir.isEmpty() ) {
- info->alert( i18n( "No directory selected." ) );
- }
- /**
- * If the user only select homedir no import needed because
- * there should be no files and we surely import wrong files.
- */
- else if ( mailDir == TQDir::homeDirPath() || mailDir == ( TQDir::homeDirPath() + "/" ) ) {
- info->addLog( i18n( "No files found for import." ) );
- } else {
- info->setOverall(0);
-
- /** Recursive import of the MailFolders */
- TQDir dir(mailDir);
- TQStringList rootSubDirs = dir.entryList("[^\\.]*", TQDir::Dirs , TQDir::Name);
- int currentDir = 1, numSubDirs = rootSubDirs.size();
- for(TQStringList::Iterator filename = rootSubDirs.begin() ; filename != rootSubDirs.end() ; ++filename, ++currentDir) {
- if(info->shouldTerminate()) break;
- importDirContents(info, dir.filePath(*filename));
- info->setOverall((int) ((float) currentDir / numSubDirs * 100));
- }
- }
-
- info->addLog( i18n("Finished importing emails from %1").arg( mailDir ));
- if (count_duplicates > 0) {
- info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
- }
- if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
- count_duplicates = 0;
- info->setCurrent(100);
- info->setOverall(100);
-}
-
-/**
- * Import of a directory contents.
- * @param info Information storage for the operation.
- * @param dirName The name of the directory to import.
- */
-void FilterSylpheed::importDirContents( FilterInfo *info, const TQString& dirName)
-{
- if(info->shouldTerminate()) return;
-
- /** Here Import all archives in the current dir */
- importFiles(info, dirName);
-
- /** If there are subfolders, we import them one by one */
- TQDir subfolders(dirName);
- TQStringList subDirs = subfolders.entryList("[^\\.]*", TQDir::Dirs , TQDir::Name);
- for(TQStringList::Iterator filename = subDirs.begin() ; filename != subDirs.end() ; ++filename) {
- if(info->shouldTerminate()) return;
- importDirContents(info, subfolders.filePath(*filename));
- }
-}
-
-
-/**
- * Import the files within a Folder.
- * @param info Information storage for the operation.
- * @param dirName The name of the directory to import.
- */
-void FilterSylpheed::importFiles( FilterInfo *info, const TQString& dirName)
-{
- TQDir dir(dirName);
- TQString _path;
- bool generatedPath = false;
-
- TQDict<unsigned long> msgflags;
- msgflags.setAutoDelete(true);
-
- TQDir importDir (dirName);
- TQStringList files = importDir.entryList("[^\\.]*", TQDir::Files, TQDir::Name);
- int currentFile = 1, numFiles = files.size();
-
- readMarkFile(info, dir.filePath(".sylpheed_mark"), msgflags);
-
- for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile, ++currentFile) {
- if(info->shouldTerminate()) return;
- TQString _mfile = *mailFile;
- if (!(_mfile.endsWith(".sylpheed_cache") || _mfile.endsWith(".sylpheed_mark") || _mfile.endsWith(".mh_sequences") )) {
- if(!generatedPath) {
- _path = "Sylpheed-Import/";
- TQString _tmp = dir.filePath(*mailFile);
- _tmp = _tmp.remove(_tmp.length() - _mfile.length() -1, _mfile.length()+1);
- _path += _tmp.remove( mailDir ,TRUE);
- TQString _info = _path;
- info->addLog(i18n("Import folder %1...").arg(_info.remove(0,15)));
-
- info->setFrom(_info);
- info->setTo(_path);
- generatedPath = true;
- }
-
- TQString flags;
- if (msgflags[_mfile])
- flags = msgFlagsToString(*(msgflags[_mfile]));
-
- if(info->removeDupMsg) {
- if(! addMessage( info, _path, dir.filePath(*mailFile), flags )) {
- info->addLog( i18n("Could not import %1").arg( *mailFile ) );
- }
- info->setCurrent((int) ((float) currentFile / numFiles * 100));
- } else {
- if(! addMessage_fastImport( info, _path, dir.filePath(*mailFile), flags )) {
- info->addLog( i18n("Could not import %1").arg( *mailFile ) );
- }
- info->setCurrent((int) ((float) currentFile / numFiles * 100));
- }
- }
- }
-}
-
-
-void FilterSylpheed::readMarkFile( FilterInfo *info, const TQString &path, TQDict<unsigned long> &dict )
-{
- /* Each sylpheed mail directory contains a .sylpheed_mark file which
- * contains all the flags for each messages. The layout of this file
- * is documented in the source code of sylpheed: in procmsg.h for
- * the flag bits, and procmsg.c.
- *
- * Note that the mark file stores 32 bit unsigned integers in the
- * platform's native "endianness".
- *
- * The mark file starts with a 32 bit unsigned integer with a version
- * number. It is then followed by pairs of 32 bit unsigned integers,
- * the first one with the message file name (which is a number),
- * and the second one with the actual message flags */
-
- TQ_UINT32 in, flags;
- TQFile file(path);
-
- if (!file.open(IO_ReadOnly))
- return;
-
- TQDataStream stream(&file);
-
- if (Q_BYTE_ORDER == Q_LITTLE_ENDIAN)
- stream.setByteOrder(TQDataStream::LittleEndian);
-
-
-
- /* Read version; if the value is reasonably too big, we're looking
- * at a file created on another platform. I don't have any test
- * marks/folders, so just ignoring this case */
- stream >> in;
- if (in > (TQ_UINT32) 0xffff)
- return;
-
- while (!stream.atEnd()) {
- if(info->shouldTerminate()){
- file.close();
- return;
- }
- stream >> in;
- stream >> flags;
- TQString s;
- s.setNum((uint) in);
- dict.insert(s, new unsigned long(flags));
- }
-}
-
-TQString FilterSylpheed::msgFlagsToString(unsigned long flags)
-{
- TQString status;
-
- /* see sylpheed's procmsg.h */
- if (flags & 1UL) status += 'N';
- if (flags & 2UL) status += 'U';
- if ((flags & 3UL) == 0UL) status += 'R';
- if (flags & 8UL) status += 'D';
- if (flags & 16UL) status += 'A';
- if (flags & 32UL) status += 'F';
-
- return status;
-}
diff --git a/kmailcvt/filter_sylpheed.h b/kmailcvt/filter_sylpheed.h
new file mode 100644
index 00000000..1d92adf0
--- /dev/null
+++ b/kmailcvt/filter_sylpheed.h
@@ -0,0 +1,47 @@
+/***************************************************************************
+ filter_sylpheed.h - Sylpheed maildir mail import
+ -------------------
+ begin : April 07 2005
+ copyright : (C) 2005 by Danny Kukawka
+ email : danny.kukawka@web.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+#ifndef FILTER_SYLPHEED_H
+#define FILTER_SYLPHEED_H
+
+#include <tqdict.h>
+
+#include "filters.h"
+
+/**
+ * Imports Sylpheed mail folder with maildir format recursively, recreating the folder structure.
+ * @author Danny Kukawka
+ */
+class FilterSylpheed : public Filter
+{
+
+public:
+ FilterSylpheed(void);
+ ~FilterSylpheed(void);
+
+ void import(FilterInfo *info);
+
+private:
+ TQString mailDir;
+
+ void importDirContents(FilterInfo*, const TQString&);
+ void importFiles(FilterInfo*, const TQString&);
+
+ void readMarkFile( FilterInfo*, const TQString&, TQDict<unsigned long>&);
+ TQString msgFlagsToString(unsigned long);
+};
+
+#endif
diff --git a/kmailcvt/filter_sylpheed.hxx b/kmailcvt/filter_sylpheed.hxx
deleted file mode 100644
index fcc3af85..00000000
--- a/kmailcvt/filter_sylpheed.hxx
+++ /dev/null
@@ -1,47 +0,0 @@
-/***************************************************************************
- filter_sylpheed.hxx - Sylpheed maildir mail import
- -------------------
- begin : April 07 2005
- copyright : (C) 2005 by Danny Kukawka
- email : danny.kukawka@web.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-#ifndef FILTER_SYLPHEED_HXX
-#define FILTER_SYLPHEED_HXX
-
-#include <tqdict.h>
-
-#include "filters.hxx"
-
-/**
- * Imports Sylpheed mail folder with maildir format recursively, recreating the folder structure.
- * @author Danny Kukawka
- */
-class FilterSylpheed : public Filter
-{
-
-public:
- FilterSylpheed(void);
- ~FilterSylpheed(void);
-
- void import(FilterInfo *info);
-
-private:
- TQString mailDir;
-
- void importDirContents(FilterInfo*, const TQString&);
- void importFiles(FilterInfo*, const TQString&);
-
- void readMarkFile( FilterInfo*, const TQString&, TQDict<unsigned long>&);
- TQString msgFlagsToString(unsigned long);
-};
-
-#endif
diff --git a/kmailcvt/filter_thebat.cpp b/kmailcvt/filter_thebat.cpp
new file mode 100644
index 00000000..a255f352
--- /dev/null
+++ b/kmailcvt/filter_thebat.cpp
@@ -0,0 +1,231 @@
+/***************************************************************************
+ filter_thebat.h - TheBat! mail import
+ -------------------
+ begin : April 07 2005
+ copyright : (C) 2005 by Danny Kukawka
+ email : danny.kukawka@web.de
+***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include "filter_thebat.h"
+
+#include <config.h>
+
+#include <tqregexp.h>
+#include <tqvaluelist.h>
+
+#include <tdelocale.h>
+#include <tdefiledialog.h>
+#include <tdetempfile.h>
+
+#include <tdemessagebox.h>
+
+/** Default constructor. */
+FilterTheBat::FilterTheBat( void ) :
+ Filter( i18n( "Import The Bat! Mails and Folder Structure" ),
+ "Danny Kukawka",
+ i18n( "<p><b>The Bat! import filter</b></p>"
+ "<p>Select the base directory of the \'The Bat!\' local mailfolder you "
+ "want to import.</p>"
+ "<p><b>Note:</b> This filter imports the *.tbb-files from \'The Bat!\' "
+ "local folder, e.g. from POP accounts, and not from IMAP/DIMAP accounts.</p>"
+ "<p>Since it is possible to recreate the folder structure, the folders "
+ "will be stored under: \"TheBat-Import\" in your local account.</p>" ) )
+{}
+
+/** Destructor. */
+FilterTheBat::~FilterTheBat( void )
+{
+}
+
+/** Recursive import of The Bat! maildir. */
+void FilterTheBat::import( FilterInfo *info )
+{
+ TQString _homeDir = TQDir::homeDirPath();
+
+ KFileDialog *kfd;
+ kfd = new KFileDialog( _homeDir, "", 0, "tdefiledialog", true );
+ kfd->setMode( KFile::Directory | KFile::LocalOnly );
+ kfd->exec();
+ mailDir = kfd->selectedFile();
+ delete kfd;
+
+ if ( mailDir.isEmpty() ) {
+ info->alert( i18n( "No directory selected." ) );
+ }
+ /**
+ * If the user only select homedir no import needed because
+ * there should be no files and we surely import wrong files.
+ */
+ else if ( mailDir == TQDir::homeDirPath() || mailDir == ( TQDir::homeDirPath() + "/" ) ) {
+ info->addLog( i18n( "No files found for import." ) );
+ } else {
+ info->setOverall(0);
+
+ /** Recursive import of the MailFolders */
+ TQDir dir(mailDir);
+ TQStringList rootSubDirs = dir.entryList("[^\\.]*", TQDir::Dirs , TQDir::Name);
+ int currentDir = 1, numSubDirs = rootSubDirs.size();
+ for(TQStringList::Iterator filename = rootSubDirs.begin() ; filename != rootSubDirs.end() ; ++filename, ++currentDir) {
+ importDirContents(info, dir.filePath(*filename));
+ info->setOverall((int) ((float) currentDir / numSubDirs * 100));
+ if(info->shouldTerminate()) break;
+ }
+ }
+
+ info->addLog( i18n("Finished importing emails from %1").arg( mailDir ));
+ if (count_duplicates > 0) {
+ info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
+ }
+ if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
+
+ count_duplicates = 0;
+ info->setCurrent(100);
+ info->setOverall(100);
+}
+
+/**
+ * Import of a directory contents.
+ * @param info Information storage for the operation.
+ * @param dirName The name of the directory to import.
+ */
+void FilterTheBat::importDirContents( FilterInfo *info, const TQString& dirName)
+{
+ if(info->shouldTerminate()) return;
+
+ /** Here Import all archives in the current dir */
+ TQDir dir(dirName);
+ TQDir importDir (dirName);
+ TQStringList files = importDir.entryList("*.[tT][bB][bB]", TQDir::Files, TQDir::Name);
+ for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile) {
+ TQString temp_mailfile = *mailFile;
+ importFiles(info, (dirName + "/" + temp_mailfile));
+ if(info->shouldTerminate()) return;
+ }
+
+ /** If there are subfolders, we import them one by one */
+ TQDir subfolders(dirName);
+ TQStringList subDirs = subfolders.entryList("[^\\.]*", TQDir::Dirs , TQDir::Name);
+ for(TQStringList::Iterator filename = subDirs.begin() ; filename != subDirs.end() ; ++filename) {
+ importDirContents(info, subfolders.filePath(*filename));
+ if(info->shouldTerminate()) return;
+ }
+}
+
+/**
+ * Import the files within a Folder.
+ * @param info Information storage for the operation.
+ * @param dirName The name of the directory to import.
+ */
+void FilterTheBat::importFiles( FilterInfo *info, const TQString& FileName)
+{
+
+ // Format of a tbb-file from The Bat! 3.x
+ // ----------------------------------------
+ // First comes a header of 3K (3128 byte/ 0x00000c38), which we can forget.
+ // The byte 3129 is the first character of the first message.
+ //
+ // The end of a message is marked trough "! p 0" and 43 following characters.
+ // (within: "_UB", blanks and some other chars.) Together are 48 characters as
+ // separator.
+ // ----------------------------------------
+
+ long l = 0;
+ TQByteArray input(50);
+ TQRegExp regexp("!.p.0");
+ TQFile tbb(FileName);
+ int iFound = 0;
+ int count = 0;
+ long endOfEmail = 0;
+ TQValueList<long> offsets;
+
+ if (!tbb.open(IO_ReadOnly)) {
+ info->alert(i18n("Unable to open %1, skipping").arg(FileName));
+ } else {
+ // BUILD the index of messages :
+ // We need this really ugly way, because read with tbb.readLine()
+ // does not work correct. Maybe in come in a continuous loop !!!
+ // Reason:
+ // if you use readLine() to read from a file with binary data
+ // TQFile::at() and TQFile::atEnd() return wrong value. So we
+ // never get TQFile::atEnd() == true in some cases. This looks
+ // like a bug in TQt3 maybe fixed in TQt4.
+ //
+ while((l = tbb.readBlock(input.data(),50)) ) {
+ if(info->shouldTerminate()) {
+ tbb.close();
+ return;
+ }
+ TQString _tmp = input.data();
+
+ if (tbb.atEnd())
+ break;
+
+ iFound = _tmp.contains(regexp);
+ if(!iFound) {
+ iFound = _tmp.findRev("!");
+ if (iFound >= 0 && ((l-iFound) < 5) ) {
+ int _i = tbb.at();
+ tbb.at((_i - iFound));
+ }
+ } else {
+ ++count;
+ endOfEmail = (tbb.at() - l + _tmp.find(regexp));
+ offsets.append(endOfEmail);
+ }
+ }
+ // info->addLog(i18n("--COUNTED: %1").arg(count));
+
+ // IMPORT the messages:
+ if(!offsets.empty() || (offsets.empty() && (tbb.size() > 3128))) {
+ offsets.append(tbb.size());
+ tbb.at(3128);
+ long lastPos = 3128;
+ long endPos = 0;
+
+ TQString _path = "TheBat-Import/";
+ TQString _tmp = FileName;
+ _tmp = _tmp.remove(_tmp.length() - 13, 13);
+ _path += _tmp.remove( mailDir ,TRUE);
+ TQString _info = _path;
+ info->addLog(i18n("Import folder %1...").arg(_info.remove(0,14)));
+ info->setTo(_path);
+ info->setFrom("../" + _info + "/messages.tbb");
+
+ for(TQValueList<long>::Iterator it = offsets.begin() ; it != offsets.end() ; ++it) {
+ if(info->shouldTerminate()) {
+ tbb.close();
+ return;
+ }
+ endPos = *it;
+ TQByteArray input(endPos-lastPos);
+ tbb.readBlock(input.data(), endPos-lastPos);
+
+ KTempFile tmp;
+ tmp.file()->writeBlock( input, endPos-lastPos );
+ tmp.close();
+
+ //KMessageBox::warningContinueCancel(info->parent(), "");
+ if(info->removeDupMsg)
+ addMessage( info, _path, tmp.name() );
+ else
+ addMessage_fastImport( info, _path, tmp.name() );
+
+ tmp.unlink();
+ lastPos = endPos + 48;
+ tbb.at(lastPos);
+ info->setCurrent( (int) ( ( (float) tbb.at() / tbb.size() ) * 100 ));
+ }
+
+ }
+ }
+ tbb.close();
+}
diff --git a/kmailcvt/filter_thebat.cxx b/kmailcvt/filter_thebat.cxx
deleted file mode 100644
index eaf16461..00000000
--- a/kmailcvt/filter_thebat.cxx
+++ /dev/null
@@ -1,231 +0,0 @@
-/***************************************************************************
- filter_thebat.hxx - TheBat! mail import
- -------------------
- begin : April 07 2005
- copyright : (C) 2005 by Danny Kukawka
- email : danny.kukawka@web.de
-***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include "filter_thebat.hxx"
-
-#include <config.h>
-
-#include <tqregexp.h>
-#include <tqvaluelist.h>
-
-#include <tdelocale.h>
-#include <tdefiledialog.h>
-#include <tdetempfile.h>
-
-#include <tdemessagebox.h>
-
-/** Default constructor. */
-FilterTheBat::FilterTheBat( void ) :
- Filter( i18n( "Import The Bat! Mails and Folder Structure" ),
- "Danny Kukawka",
- i18n( "<p><b>The Bat! import filter</b></p>"
- "<p>Select the base directory of the \'The Bat!\' local mailfolder you "
- "want to import.</p>"
- "<p><b>Note:</b> This filter imports the *.tbb-files from \'The Bat!\' "
- "local folder, e.g. from POP accounts, and not from IMAP/DIMAP accounts.</p>"
- "<p>Since it is possible to recreate the folder structure, the folders "
- "will be stored under: \"TheBat-Import\" in your local account.</p>" ) )
-{}
-
-/** Destructor. */
-FilterTheBat::~FilterTheBat( void )
-{
-}
-
-/** Recursive import of The Bat! maildir. */
-void FilterTheBat::import( FilterInfo *info )
-{
- TQString _homeDir = TQDir::homeDirPath();
-
- KFileDialog *kfd;
- kfd = new KFileDialog( _homeDir, "", 0, "tdefiledialog", true );
- kfd->setMode( KFile::Directory | KFile::LocalOnly );
- kfd->exec();
- mailDir = kfd->selectedFile();
- delete kfd;
-
- if ( mailDir.isEmpty() ) {
- info->alert( i18n( "No directory selected." ) );
- }
- /**
- * If the user only select homedir no import needed because
- * there should be no files and we surely import wrong files.
- */
- else if ( mailDir == TQDir::homeDirPath() || mailDir == ( TQDir::homeDirPath() + "/" ) ) {
- info->addLog( i18n( "No files found for import." ) );
- } else {
- info->setOverall(0);
-
- /** Recursive import of the MailFolders */
- TQDir dir(mailDir);
- TQStringList rootSubDirs = dir.entryList("[^\\.]*", TQDir::Dirs , TQDir::Name);
- int currentDir = 1, numSubDirs = rootSubDirs.size();
- for(TQStringList::Iterator filename = rootSubDirs.begin() ; filename != rootSubDirs.end() ; ++filename, ++currentDir) {
- importDirContents(info, dir.filePath(*filename));
- info->setOverall((int) ((float) currentDir / numSubDirs * 100));
- if(info->shouldTerminate()) break;
- }
- }
-
- info->addLog( i18n("Finished importing emails from %1").arg( mailDir ));
- if (count_duplicates > 0) {
- info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
- }
- if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
-
- count_duplicates = 0;
- info->setCurrent(100);
- info->setOverall(100);
-}
-
-/**
- * Import of a directory contents.
- * @param info Information storage for the operation.
- * @param dirName The name of the directory to import.
- */
-void FilterTheBat::importDirContents( FilterInfo *info, const TQString& dirName)
-{
- if(info->shouldTerminate()) return;
-
- /** Here Import all archives in the current dir */
- TQDir dir(dirName);
- TQDir importDir (dirName);
- TQStringList files = importDir.entryList("*.[tT][bB][bB]", TQDir::Files, TQDir::Name);
- for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile) {
- TQString temp_mailfile = *mailFile;
- importFiles(info, (dirName + "/" + temp_mailfile));
- if(info->shouldTerminate()) return;
- }
-
- /** If there are subfolders, we import them one by one */
- TQDir subfolders(dirName);
- TQStringList subDirs = subfolders.entryList("[^\\.]*", TQDir::Dirs , TQDir::Name);
- for(TQStringList::Iterator filename = subDirs.begin() ; filename != subDirs.end() ; ++filename) {
- importDirContents(info, subfolders.filePath(*filename));
- if(info->shouldTerminate()) return;
- }
-}
-
-/**
- * Import the files within a Folder.
- * @param info Information storage for the operation.
- * @param dirName The name of the directory to import.
- */
-void FilterTheBat::importFiles( FilterInfo *info, const TQString& FileName)
-{
-
- // Format of a tbb-file from The Bat! 3.x
- // ----------------------------------------
- // First comes a header of 3K (3128 byte/ 0x00000c38), which we can forget.
- // The byte 3129 is the first character of the first message.
- //
- // The end of a message is marked trough "! p 0" and 43 following characters.
- // (within: "_UB", blanks and some other chars.) Together are 48 characters as
- // separator.
- // ----------------------------------------
-
- long l = 0;
- TQByteArray input(50);
- TQRegExp regexp("!.p.0");
- TQFile tbb(FileName);
- int iFound = 0;
- int count = 0;
- long endOfEmail = 0;
- TQValueList<long> offsets;
-
- if (!tbb.open(IO_ReadOnly)) {
- info->alert(i18n("Unable to open %1, skipping").arg(FileName));
- } else {
- // BUILD the index of messages :
- // We need this really ugly way, because read with tbb.readLine()
- // does not work correct. Maybe in come in a continuous loop !!!
- // Reason:
- // if you use readLine() to read from a file with binary data
- // TQFile::at() and TQFile::atEnd() return wrong value. So we
- // never get TQFile::atEnd() == true in some cases. This looks
- // like a bug in TQt3 maybe fixed in TQt4.
- //
- while((l = tbb.readBlock(input.data(),50)) ) {
- if(info->shouldTerminate()) {
- tbb.close();
- return;
- }
- TQString _tmp = input.data();
-
- if (tbb.atEnd())
- break;
-
- iFound = _tmp.contains(regexp);
- if(!iFound) {
- iFound = _tmp.findRev("!");
- if (iFound >= 0 && ((l-iFound) < 5) ) {
- int _i = tbb.at();
- tbb.at((_i - iFound));
- }
- } else {
- ++count;
- endOfEmail = (tbb.at() - l + _tmp.find(regexp));
- offsets.append(endOfEmail);
- }
- }
- // info->addLog(i18n("--COUNTED: %1").arg(count));
-
- // IMPORT the messages:
- if(!offsets.empty() || (offsets.empty() && (tbb.size() > 3128))) {
- offsets.append(tbb.size());
- tbb.at(3128);
- long lastPos = 3128;
- long endPos = 0;
-
- TQString _path = "TheBat-Import/";
- TQString _tmp = FileName;
- _tmp = _tmp.remove(_tmp.length() - 13, 13);
- _path += _tmp.remove( mailDir ,TRUE);
- TQString _info = _path;
- info->addLog(i18n("Import folder %1...").arg(_info.remove(0,14)));
- info->setTo(_path);
- info->setFrom("../" + _info + "/messages.tbb");
-
- for(TQValueList<long>::Iterator it = offsets.begin() ; it != offsets.end() ; ++it) {
- if(info->shouldTerminate()) {
- tbb.close();
- return;
- }
- endPos = *it;
- TQByteArray input(endPos-lastPos);
- tbb.readBlock(input.data(), endPos-lastPos);
-
- KTempFile tmp;
- tmp.file()->writeBlock( input, endPos-lastPos );
- tmp.close();
-
- //KMessageBox::warningContinueCancel(info->parent(), "");
- if(info->removeDupMsg)
- addMessage( info, _path, tmp.name() );
- else
- addMessage_fastImport( info, _path, tmp.name() );
-
- tmp.unlink();
- lastPos = endPos + 48;
- tbb.at(lastPos);
- info->setCurrent( (int) ( ( (float) tbb.at() / tbb.size() ) * 100 ));
- }
-
- }
- }
- tbb.close();
-}
diff --git a/kmailcvt/filter_thebat.h b/kmailcvt/filter_thebat.h
new file mode 100644
index 00000000..ef69c231
--- /dev/null
+++ b/kmailcvt/filter_thebat.h
@@ -0,0 +1,42 @@
+/***************************************************************************
+ filter_thebat.h - TheBat! mail import
+ -------------------
+ begin : April 07 2005
+ copyright : (C) 2005 by Danny Kukawka
+ email : danny.kukawka@web.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+#ifndef FILTER_THEBAT_H
+#define FILTER_THEBAT_H
+
+#include "filters.h"
+
+/**
+ * Imports The Bat! mail folder recursively, recreating the folder structure.
+ * @author Danny Kukawka
+ */
+class FilterTheBat : public Filter
+{
+
+public:
+ FilterTheBat(void);
+ ~FilterTheBat(void);
+
+ void import(FilterInfo *info);
+
+private:
+ TQString mailDir;
+
+ void importDirContents(FilterInfo*, const TQString&);
+ void importFiles(FilterInfo*, const TQString&);
+};
+
+#endif
diff --git a/kmailcvt/filter_thebat.hxx b/kmailcvt/filter_thebat.hxx
deleted file mode 100644
index 7d62018d..00000000
--- a/kmailcvt/filter_thebat.hxx
+++ /dev/null
@@ -1,42 +0,0 @@
-/***************************************************************************
- filter_thebat.hxx - TheBat! mail import
- -------------------
- begin : April 07 2005
- copyright : (C) 2005 by Danny Kukawka
- email : danny.kukawka@web.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-#ifndef FILTER_THEBAT_HXX
-#define FILTER_THEBAT_HXX
-
-#include "filters.hxx"
-
-/**
- * Imports The Bat! mail folder recursively, recreating the folder structure.
- * @author Danny Kukawka
- */
-class FilterTheBat : public Filter
-{
-
-public:
- FilterTheBat(void);
- ~FilterTheBat(void);
-
- void import(FilterInfo *info);
-
-private:
- TQString mailDir;
-
- void importDirContents(FilterInfo*, const TQString&);
- void importFiles(FilterInfo*, const TQString&);
-};
-
-#endif
diff --git a/kmailcvt/filter_thunderbird.cpp b/kmailcvt/filter_thunderbird.cpp
new file mode 100644
index 00000000..e5f21d14
--- /dev/null
+++ b/kmailcvt/filter_thunderbird.cpp
@@ -0,0 +1,234 @@
+/***************************************************************************
+ filter_thunderbird.cpp - Thunderbird mail import
+ -------------------
+ begin : Januar 26 2005
+ copyright : (C) 2005 by Danny Kukawka
+ email : danny.kukawka@web.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include "filter_thunderbird.h"
+
+#include <config.h>
+#include <tdelocale.h>
+#include <tdefiledialog.h>
+#include <tdetempfile.h>
+
+
+/** Default constructor. */
+FilterThunderbird::FilterThunderbird(void) :
+ Filter(i18n("Import Thunderbird/Mozilla Local Mails and Folder Structure"),
+ "Danny Kukawka",
+ i18n("<p><b>Thunderbird/Mozilla import filter</b></p>"
+ "<p>Select your base Thunderbird/Mozilla mailfolder"
+ " (usually ~/.thunderbird/*.default/Mail/Local Folders/).</p>"
+ "<p><b>Note:</b> Never choose a Folder which <u>does not</u> contain mbox-files (for example,"
+ " a maildir): if you do, you will get many new folders.</p>"
+ "<p>Since it is possible to recreate the folder structure, the folders "
+ "will be stored under: \"Thunderbird-Import\".</p>"))
+{}
+
+/** Destructor. */
+FilterThunderbird::~FilterThunderbird(void)
+{
+}
+
+/** Recursive import of Evolution's mboxes. */
+void FilterThunderbird::import(FilterInfo *info)
+{
+ /**
+ * We ask the user to choose Evolution's root directory.
+ * This should be usually ~/.thunderbird/xxxx.default/Mail/Local Folders/
+ */
+ TQString thunderDir = TQDir::homeDirPath() + "/.thunderbird/";
+ TQDir d( thunderDir );
+ if ( !d.exists() ) {
+ thunderDir = TQDir::homeDirPath();
+ }
+
+ KFileDialog *kfd;
+ kfd = new KFileDialog( thunderDir, "", 0, "tdefiledialog", true );
+ kfd->setMode(KFile::Directory | KFile::LocalOnly);
+ kfd->exec();
+ mailDir = kfd->selectedFile();
+ delete kfd;
+
+ if (mailDir.isEmpty()) {
+ info->alert(i18n("No directory selected."));
+ }
+ /**
+ * If the user only select homedir no import needed because
+ * there should be no files and we surely import wrong files.
+ */
+ else if ( mailDir == TQDir::homeDirPath() || mailDir == (TQDir::homeDirPath() + "/")) {
+ info->addLog(i18n("No files found for import."));
+ } else {
+ info->setOverall(0);
+
+ /** Recursive import of the MailArchives */
+ TQDir dir(mailDir);
+ TQStringList rootSubDirs = dir.entryList("[^\\.]*", TQDir::Dirs, TQDir::Name); // Removal of . and ..
+ int currentDir = 1, numSubDirs = rootSubDirs.size();
+ for(TQStringList::Iterator filename = rootSubDirs.begin() ; filename != rootSubDirs.end() ; ++filename, ++currentDir) {
+ if(info->shouldTerminate()) break;
+ importDirContents(info, dir.filePath(*filename), *filename, *filename);
+ info->setOverall((int) ((float) currentDir / numSubDirs * 100));
+ }
+
+ /** import last but not least all archives from the root-dir */
+ TQDir importDir (mailDir);
+ TQStringList files = importDir.entryList("[^\\.]*", TQDir::Files, TQDir::Name);
+ for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile) {
+ if(info->shouldTerminate()) break;
+ TQString temp_mailfile = *mailFile;
+ if (temp_mailfile.endsWith(".msf") || temp_mailfile.endsWith("msgFilterRules.dat")) {}
+ else {
+ info->addLog( i18n("Start import file %1...").arg( temp_mailfile ) );
+ importMBox(info, mailDir + temp_mailfile , temp_mailfile, TQString());
+ }
+ }
+
+ info->addLog( i18n("Finished importing emails from %1").arg( mailDir ));
+ if(count_duplicates > 0) {
+ info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
+ }
+ }
+ if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
+ info->setCurrent(100);
+ info->setOverall(100);
+}
+
+/**
+ * Import of a directory contents.
+ * @param info Information storage for the operation.
+ * @param dirName The name of the directory to import.
+ * @param KMailRootDir The directory's root directory in KMail's folder structure.
+ * @param KMailSubDir The directory's direct ancestor in KMail's folder structure.
+ */
+void FilterThunderbird::importDirContents(FilterInfo *info, const TQString& dirName, const TQString& KMailRootDir, const TQString& KMailSubDir)
+{
+ if(info->shouldTerminate()) return;
+ /** Here Import all archives in the current dir */
+ TQDir dir(dirName);
+
+ TQDir importDir (dirName);
+ TQStringList files = importDir.entryList("[^\\.]*", TQDir::Files, TQDir::Name);
+ for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile) {
+ if(info->shouldTerminate()) break;
+ TQString temp_mailfile = *mailFile;
+ if (temp_mailfile.endsWith(".msf") || temp_mailfile.endsWith("msgFilterRules.dat")) {}
+ else {
+ info->addLog( i18n("Start import file %1...").arg( temp_mailfile ) );
+ importMBox(info, (dirName + "/" + temp_mailfile) , KMailRootDir, KMailSubDir);
+ }
+ }
+
+ /** If there are subfolders, we import them one by one */
+ TQDir subfolders(dirName);
+ TQStringList subDirs = subfolders.entryList("[^\\.]*", TQDir::Dirs, TQDir::Name);
+ for(TQStringList::Iterator filename = subDirs.begin() ; filename != subDirs.end() ; ++filename) {
+ if(info->shouldTerminate()) break;
+ TQString kSubDir;
+ if(!KMailSubDir.isNull()) {
+ kSubDir = KMailSubDir + "/" + *filename;
+ } else {
+ kSubDir = *filename;
+ }
+ importDirContents(info, subfolders.filePath(*filename), KMailRootDir, kSubDir);
+ }
+}
+
+/**
+ * Import of a MBox file.
+ * @param info Information storage for the operation.
+ * @param dirName The MBox's name.
+ * @param KMailRootDir The directory's root directory in KMail's folder structure.
+ * @param KMailSubDir The directory's equivalent in KMail's folder structure. *
+ */
+void FilterThunderbird::importMBox(FilterInfo *info, const TQString& mboxName, const TQString& rootDir, const TQString& targetDir)
+{
+ TQFile mbox(mboxName);
+ bool first_msg = true;
+ if (!mbox.open(IO_ReadOnly)) {
+ info->alert(i18n("Unable to open %1, skipping").arg(mboxName));
+ } else {
+ TQFileInfo filenameInfo(mboxName);
+
+ info->setCurrent(0);
+ if( mboxName.length() > 20 ) {
+ TQString tmp_info = mboxName;
+ tmp_info = tmp_info.replace( mailDir, "../" );
+ if (tmp_info.contains(".sbd"))
+ tmp_info.remove(".sbd");
+ info->setFrom( tmp_info );
+ } else
+ info->setFrom(mboxName);
+ if(targetDir.contains(".sbd")) {
+ TQString tmp_info = targetDir;
+ tmp_info.remove(".sbd");
+ info->setTo(tmp_info);
+ } else
+ info->setTo(targetDir);
+
+ TQByteArray input(MAX_LINE);
+ long l = 0;
+
+ while (!mbox.atEnd()) {
+ KTempFile tmp;
+ /** @todo check if the file is really a mbox, maybe search for 'from' string at start */
+ /* comment by Danny:
+ * Don't use TQTextStream to read from mbox, etter use TQDataStream. TQTextStream only
+ * support Unicode/Latin1/Locale. So you lost information from emails with
+ * charset!=Unicode/Latin1/Locale (e.g. KOI8-R) and Content-Transfer-Encoding != base64
+ * (e.g. 8Bit). It also not help to convert the TQTextStream to Unicode. By this you
+ * get Unicode/UTF-email but KMail can't detect the correct charset.
+ */
+ TQCString seperate;
+
+ if(!first_msg)
+ tmp.file()->writeBlock( input, l );
+ l = mbox.readLine( input.data(),MAX_LINE); // read the first line, prevent "From "
+ tmp.file()->writeBlock( input, l );
+
+ while ( ! mbox.atEnd() && (l = mbox.readLine(input.data(),MAX_LINE)) && ((seperate = input.data()).left(5) != "From ")) {
+ tmp.file()->writeBlock( input, l );
+ }
+ tmp.close();
+ first_msg = false;
+
+ TQString destFolder;
+ TQString _targetDir = targetDir;
+ if(!targetDir.isNull()) {
+ if(_targetDir.contains(".sbd"))
+ _targetDir.remove(".sbd");
+ destFolder += "Thunderbird-Import/" + _targetDir + "/" + filenameInfo.baseName(TRUE);// mboxName;
+ } else {
+ destFolder = "Thunderbird-Import/" + rootDir;
+ if(destFolder.contains(".sbd"))
+ destFolder.remove(".sbd");
+ }
+
+ if(info->removeDupMsg)
+ addMessage( info, destFolder, tmp.name() );
+ else
+ addMessage_fastImport( info, destFolder, tmp.name() );
+
+ tmp.unlink();
+ int currentPercentage = (int) (((float) mbox.at() / filenameInfo.size()) * 100);
+ info->setCurrent(currentPercentage);
+ if (info->shouldTerminate()) {
+ mbox.close();
+ return;
+ }
+ }
+ mbox.close();
+ }
+}
diff --git a/kmailcvt/filter_thunderbird.cxx b/kmailcvt/filter_thunderbird.cxx
deleted file mode 100644
index 50f6355f..00000000
--- a/kmailcvt/filter_thunderbird.cxx
+++ /dev/null
@@ -1,234 +0,0 @@
-/***************************************************************************
- filter_thunderbird.cxx - Thunderbird mail import
- -------------------
- begin : Januar 26 2005
- copyright : (C) 2005 by Danny Kukawka
- email : danny.kukawka@web.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include "filter_thunderbird.hxx"
-
-#include <config.h>
-#include <tdelocale.h>
-#include <tdefiledialog.h>
-#include <tdetempfile.h>
-
-
-/** Default constructor. */
-FilterThunderbird::FilterThunderbird(void) :
- Filter(i18n("Import Thunderbird/Mozilla Local Mails and Folder Structure"),
- "Danny Kukawka",
- i18n("<p><b>Thunderbird/Mozilla import filter</b></p>"
- "<p>Select your base Thunderbird/Mozilla mailfolder"
- " (usually ~/.thunderbird/*.default/Mail/Local Folders/).</p>"
- "<p><b>Note:</b> Never choose a Folder which <u>does not</u> contain mbox-files (for example,"
- " a maildir): if you do, you will get many new folders.</p>"
- "<p>Since it is possible to recreate the folder structure, the folders "
- "will be stored under: \"Thunderbird-Import\".</p>"))
-{}
-
-/** Destructor. */
-FilterThunderbird::~FilterThunderbird(void)
-{
-}
-
-/** Recursive import of Evolution's mboxes. */
-void FilterThunderbird::import(FilterInfo *info)
-{
- /**
- * We ask the user to choose Evolution's root directory.
- * This should be usually ~/.thunderbird/xxxx.default/Mail/Local Folders/
- */
- TQString thunderDir = TQDir::homeDirPath() + "/.thunderbird/";
- TQDir d( thunderDir );
- if ( !d.exists() ) {
- thunderDir = TQDir::homeDirPath();
- }
-
- KFileDialog *kfd;
- kfd = new KFileDialog( thunderDir, "", 0, "tdefiledialog", true );
- kfd->setMode(KFile::Directory | KFile::LocalOnly);
- kfd->exec();
- mailDir = kfd->selectedFile();
- delete kfd;
-
- if (mailDir.isEmpty()) {
- info->alert(i18n("No directory selected."));
- }
- /**
- * If the user only select homedir no import needed because
- * there should be no files and we surely import wrong files.
- */
- else if ( mailDir == TQDir::homeDirPath() || mailDir == (TQDir::homeDirPath() + "/")) {
- info->addLog(i18n("No files found for import."));
- } else {
- info->setOverall(0);
-
- /** Recursive import of the MailArchives */
- TQDir dir(mailDir);
- TQStringList rootSubDirs = dir.entryList("[^\\.]*", TQDir::Dirs, TQDir::Name); // Removal of . and ..
- int currentDir = 1, numSubDirs = rootSubDirs.size();
- for(TQStringList::Iterator filename = rootSubDirs.begin() ; filename != rootSubDirs.end() ; ++filename, ++currentDir) {
- if(info->shouldTerminate()) break;
- importDirContents(info, dir.filePath(*filename), *filename, *filename);
- info->setOverall((int) ((float) currentDir / numSubDirs * 100));
- }
-
- /** import last but not least all archives from the root-dir */
- TQDir importDir (mailDir);
- TQStringList files = importDir.entryList("[^\\.]*", TQDir::Files, TQDir::Name);
- for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile) {
- if(info->shouldTerminate()) break;
- TQString temp_mailfile = *mailFile;
- if (temp_mailfile.endsWith(".msf") || temp_mailfile.endsWith("msgFilterRules.dat")) {}
- else {
- info->addLog( i18n("Start import file %1...").arg( temp_mailfile ) );
- importMBox(info, mailDir + temp_mailfile , temp_mailfile, TQString());
- }
- }
-
- info->addLog( i18n("Finished importing emails from %1").arg( mailDir ));
- if(count_duplicates > 0) {
- info->addLog( i18n("1 duplicate message not imported", "%n duplicate messages not imported", count_duplicates));
- }
- }
- if (info->shouldTerminate()) info->addLog( i18n("Finished import, canceled by user."));
- info->setCurrent(100);
- info->setOverall(100);
-}
-
-/**
- * Import of a directory contents.
- * @param info Information storage for the operation.
- * @param dirName The name of the directory to import.
- * @param KMailRootDir The directory's root directory in KMail's folder structure.
- * @param KMailSubDir The directory's direct ancestor in KMail's folder structure.
- */
-void FilterThunderbird::importDirContents(FilterInfo *info, const TQString& dirName, const TQString& KMailRootDir, const TQString& KMailSubDir)
-{
- if(info->shouldTerminate()) return;
- /** Here Import all archives in the current dir */
- TQDir dir(dirName);
-
- TQDir importDir (dirName);
- TQStringList files = importDir.entryList("[^\\.]*", TQDir::Files, TQDir::Name);
- for ( TQStringList::Iterator mailFile = files.begin(); mailFile != files.end(); ++mailFile) {
- if(info->shouldTerminate()) break;
- TQString temp_mailfile = *mailFile;
- if (temp_mailfile.endsWith(".msf") || temp_mailfile.endsWith("msgFilterRules.dat")) {}
- else {
- info->addLog( i18n("Start import file %1...").arg( temp_mailfile ) );
- importMBox(info, (dirName + "/" + temp_mailfile) , KMailRootDir, KMailSubDir);
- }
- }
-
- /** If there are subfolders, we import them one by one */
- TQDir subfolders(dirName);
- TQStringList subDirs = subfolders.entryList("[^\\.]*", TQDir::Dirs, TQDir::Name);
- for(TQStringList::Iterator filename = subDirs.begin() ; filename != subDirs.end() ; ++filename) {
- if(info->shouldTerminate()) break;
- TQString kSubDir;
- if(!KMailSubDir.isNull()) {
- kSubDir = KMailSubDir + "/" + *filename;
- } else {
- kSubDir = *filename;
- }
- importDirContents(info, subfolders.filePath(*filename), KMailRootDir, kSubDir);
- }
-}
-
-/**
- * Import of a MBox file.
- * @param info Information storage for the operation.
- * @param dirName The MBox's name.
- * @param KMailRootDir The directory's root directory in KMail's folder structure.
- * @param KMailSubDir The directory's equivalent in KMail's folder structure. *
- */
-void FilterThunderbird::importMBox(FilterInfo *info, const TQString& mboxName, const TQString& rootDir, const TQString& targetDir)
-{
- TQFile mbox(mboxName);
- bool first_msg = true;
- if (!mbox.open(IO_ReadOnly)) {
- info->alert(i18n("Unable to open %1, skipping").arg(mboxName));
- } else {
- TQFileInfo filenameInfo(mboxName);
-
- info->setCurrent(0);
- if( mboxName.length() > 20 ) {
- TQString tmp_info = mboxName;
- tmp_info = tmp_info.replace( mailDir, "../" );
- if (tmp_info.contains(".sbd"))
- tmp_info.remove(".sbd");
- info->setFrom( tmp_info );
- } else
- info->setFrom(mboxName);
- if(targetDir.contains(".sbd")) {
- TQString tmp_info = targetDir;
- tmp_info.remove(".sbd");
- info->setTo(tmp_info);
- } else
- info->setTo(targetDir);
-
- TQByteArray input(MAX_LINE);
- long l = 0;
-
- while (!mbox.atEnd()) {
- KTempFile tmp;
- /** @todo check if the file is really a mbox, maybe search for 'from' string at start */
- /* comment by Danny:
- * Don't use TQTextStream to read from mbox, etter use TQDataStream. TQTextStream only
- * support Unicode/Latin1/Locale. So you lost information from emails with
- * charset!=Unicode/Latin1/Locale (e.g. KOI8-R) and Content-Transfer-Encoding != base64
- * (e.g. 8Bit). It also not help to convert the TQTextStream to Unicode. By this you
- * get Unicode/UTF-email but KMail can't detect the correct charset.
- */
- TQCString seperate;
-
- if(!first_msg)
- tmp.file()->writeBlock( input, l );
- l = mbox.readLine( input.data(),MAX_LINE); // read the first line, prevent "From "
- tmp.file()->writeBlock( input, l );
-
- while ( ! mbox.atEnd() && (l = mbox.readLine(input.data(),MAX_LINE)) && ((seperate = input.data()).left(5) != "From ")) {
- tmp.file()->writeBlock( input, l );
- }
- tmp.close();
- first_msg = false;
-
- TQString destFolder;
- TQString _targetDir = targetDir;
- if(!targetDir.isNull()) {
- if(_targetDir.contains(".sbd"))
- _targetDir.remove(".sbd");
- destFolder += "Thunderbird-Import/" + _targetDir + "/" + filenameInfo.baseName(TRUE);// mboxName;
- } else {
- destFolder = "Thunderbird-Import/" + rootDir;
- if(destFolder.contains(".sbd"))
- destFolder.remove(".sbd");
- }
-
- if(info->removeDupMsg)
- addMessage( info, destFolder, tmp.name() );
- else
- addMessage_fastImport( info, destFolder, tmp.name() );
-
- tmp.unlink();
- int currentPercentage = (int) (((float) mbox.at() / filenameInfo.size()) * 100);
- info->setCurrent(currentPercentage);
- if (info->shouldTerminate()) {
- mbox.close();
- return;
- }
- }
- mbox.close();
- }
-}
diff --git a/kmailcvt/filter_thunderbird.h b/kmailcvt/filter_thunderbird.h
new file mode 100644
index 00000000..333e2380
--- /dev/null
+++ b/kmailcvt/filter_thunderbird.h
@@ -0,0 +1,42 @@
+/***************************************************************************
+ filter_thunderbird.h - Thunderbird mail import
+ -------------------
+ begin : Januar 26 2005
+ copyright : (C) 2005 by Danny Kukawka
+ email : danny.kukawka@web.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef FILTER_THUNDERBIRD_H
+#define FILTER_THUNDERBIRD_H
+
+#include "filters.h"
+
+/**
+ * Imports Thinderbird mail folder recursively, keeping the folder structure.
+ * @author Danny Kukawka
+ */
+class FilterThunderbird : public Filter
+{
+public:
+ FilterThunderbird(void);
+ ~FilterThunderbird(void);
+
+ void import(FilterInfo *info);
+
+private:
+ TQString mailDir;
+
+ void importDirContents(FilterInfo*, const TQString&, const TQString&, const TQString&);
+ void importMBox(FilterInfo*, const TQString&, const TQString&, const TQString&);
+};
+
+#endif
diff --git a/kmailcvt/filter_thunderbird.hxx b/kmailcvt/filter_thunderbird.hxx
deleted file mode 100644
index d3bcd7f9..00000000
--- a/kmailcvt/filter_thunderbird.hxx
+++ /dev/null
@@ -1,42 +0,0 @@
-/***************************************************************************
- filter_thunderbird.hxx - Thunderbird mail import
- -------------------
- begin : Januar 26 2005
- copyright : (C) 2005 by Danny Kukawka
- email : danny.kukawka@web.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#ifndef FILTER_THUNDERBIRD_HXX
-#define FILTER_THUNDERBIRD_HXX
-
-#include "filters.hxx"
-
-/**
- * Imports Thinderbird mail folder recursively, keeping the folder structure.
- * @author Danny Kukawka
- */
-class FilterThunderbird : public Filter
-{
-public:
- FilterThunderbird(void);
- ~FilterThunderbird(void);
-
- void import(FilterInfo *info);
-
-private:
- TQString mailDir;
-
- void importDirContents(FilterInfo*, const TQString&, const TQString&, const TQString&);
- void importMBox(FilterInfo*, const TQString&, const TQString&, const TQString&);
-};
-
-#endif
diff --git a/kmailcvt/filters.cpp b/kmailcvt/filters.cpp
new file mode 100644
index 00000000..2c43ff43
--- /dev/null
+++ b/kmailcvt/filters.cpp
@@ -0,0 +1,216 @@
+/***************************************************************************
+ filters.cpp - description
+ -------------------
+ begin : Fri Jun 30 2000
+ copyright : (C) 2000 by Hans Dijkema
+ email : kmailcvt@hum.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <tdemessagebox.h>
+#include <tdelocale.h>
+#include <dcopclient.h>
+#include <dcopref.h>
+#include <kurl.h>
+#include <kdebug.h>
+
+#include "filters.h"
+#include "kmailcvt.h"
+
+
+//////////////////////////////////////////////////////////////////////////////////
+//
+// The API to the kmailcvt dialog --> Gives the import filter access to
+// put information on the dialog.
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+bool FilterInfo::s_terminateASAP = false;
+
+FilterInfo::FilterInfo( KImportPageDlg* dlg, TQWidget* parent , bool _removeDupMsg)
+ : m_dlg( dlg ),
+ m_parent( parent )
+{
+ removeDupMsg = _removeDupMsg;
+ s_terminateASAP = false;
+}
+
+FilterInfo::~FilterInfo()
+{
+}
+
+void FilterInfo::setStatusMsg( const TQString& status )
+{
+ m_dlg->_texStatus->setText( status );
+}
+
+void FilterInfo::setFrom( const TQString& from )
+{
+ m_dlg->_from->setText( from );
+}
+
+void FilterInfo::setTo( const TQString& to )
+{
+ m_dlg->_to->setText( to );
+}
+
+void FilterInfo::setCurrent( const TQString& current )
+{
+ m_dlg->_current->setText( current );
+ kapp->processEvents();
+}
+
+void FilterInfo::setCurrent( int percent )
+{
+ m_dlg->_done_current->setProgress( percent );
+ kapp->processEvents(); // Be careful - back & finish buttons disabled, so only user event that can happen is cancel/close button
+}
+
+void FilterInfo::setOverall( int percent )
+{
+ m_dlg->_done_overall->setProgress( percent );
+}
+
+void FilterInfo::addLog( const TQString& log )
+{
+ m_dlg->_log->insertItem( log );
+ m_dlg->_log->setCurrentItem( m_dlg->_log->count() - 1 );
+ m_dlg->_log->centerCurrentItem();
+ kapp->processEvents();
+}
+
+void FilterInfo::clear()
+{
+ m_dlg->_log->clear();
+ setCurrent();
+ setOverall();
+ setCurrent( TQString() );
+ setFrom( TQString() );
+ setTo( TQString() );
+}
+
+void FilterInfo::alert( const TQString& message )
+{
+ KMessageBox::information( m_parent, message );
+}
+
+void FilterInfo::terminateASAP()
+{
+ s_terminateASAP = true;
+}
+
+bool FilterInfo::shouldTerminate()
+{
+ return s_terminateASAP;
+}
+
+//////////////////////////////////////////////////////////////////////////////////
+//
+// The generic filter class
+//
+//////////////////////////////////////////////////////////////////////////////////
+
+
+Filter::Filter( const TQString& name, const TQString& author,
+ const TQString& info )
+ : m_name( name ),
+ m_author( author ),
+ m_info( info )
+{
+ //public
+ count_duplicates = 0;
+}
+
+bool Filter::addMessage( FilterInfo* info, const TQString& folderName,
+ const TQString& msgPath, const TQString & msgStatusFlags)
+{
+ KURL msgURL;
+ msgURL.setPath( msgPath );
+
+ if ( !kapp->dcopClient()->isApplicationRegistered( "kmail" ) )
+ TDEApplication::startServiceByDesktopName( "kmail", TQString() ); // Will wait until kmail is started
+
+ DCOPReply reply = DCOPRef( "kmail", "KMailIface" ).call( "dcopAddMessage", folderName, msgURL, msgStatusFlags );
+
+ if ( !reply.isValid() )
+ {
+ info->alert( i18n( "<b>Fatal:</b> Unable to start KMail for DCOP communication. "
+ "Make sure <i>kmail</i> is installed." ) );
+ return false;
+ }
+
+ switch ( int( reply ) )
+ {
+ case -1:
+ info->alert( i18n( "Cannot make folder %1 in KMail" ).arg( folderName ) );
+ return false;
+ case -2:
+ info->alert( i18n( "Cannot add message to folder %1 in KMail" ).arg( folderName ) );
+ return false;
+ case -4:
+ count_duplicates++;
+ return false;
+ case 0:
+ info->alert( i18n( "Error while adding message to folder %1 in KMail" ).arg( folderName ) );
+ return false;
+ }
+ return true;
+}
+
+bool Filter::addMessage_fastImport( FilterInfo* info, const TQString& folderName,
+ const TQString& msgPath, const TQString& msgStatusFlags )
+{
+ KURL msgURL;
+ msgURL.setPath( msgPath );
+
+ if ( !kapp->dcopClient()->isApplicationRegistered( "kmail" ) )
+ TDEApplication::startServiceByDesktopName( "kmail", TQString() ); // Will wait until kmail is started
+
+ DCOPReply reply = DCOPRef( "kmail", "KMailIface" ).call( "dcopAddMessage_fastImport", folderName, msgURL, msgStatusFlags );
+ if ( !reply.isValid() )
+ {
+ info->alert( i18n( "<b>Fatal:</b> Unable to start KMail for DCOP communication. "
+ "Make sure <i>kmail</i> is installed." ) );
+ return false;
+ }
+
+ switch ( int( reply ) )
+ {
+ case -1:
+ info->alert( i18n( "Cannot make folder %1 in KMail" ).arg( folderName ) );
+ return false;
+ case -2:
+ info->alert( i18n( "Cannot add message to folder %1 in KMail" ).arg( folderName ) );
+ return false;
+ case 0:
+ info->alert( i18n( "Error while adding message to folder %1 in KMail" ).arg( folderName ) );
+ return false;
+ }
+ return true;
+}
+
+void Filter::showKMailImportArchiveDialog( FilterInfo* info )
+{
+ if ( !kapp->dcopClient()->isApplicationRegistered( "kmail" ) )
+ TDEApplication::startServiceByDesktopName( "kmail", TQString() ); // Will wait until kmail is started
+
+ DCOPReply reply = DCOPRef( "kmail", "KMailIface" ).call( "showImportArchiveDialog" );
+ if ( !reply.isValid() )
+ {
+ info->alert( i18n( "<b>Fatal:</b> Unable to start KMail for DCOP communication. "
+ "Make sure <i>kmail</i> is installed." ) );
+ }
+}
+
+bool Filter::needsSecondPage()
+{
+ return true;
+}
diff --git a/kmailcvt/filters.cxx b/kmailcvt/filters.cxx
deleted file mode 100644
index d7af7705..00000000
--- a/kmailcvt/filters.cxx
+++ /dev/null
@@ -1,218 +0,0 @@
-/***************************************************************************
- filters.cxx - description
- -------------------
- begin : Fri Jun 30 2000
- copyright : (C) 2000 by Hans Dijkema
- email : kmailcvt@hum.org
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include <tdemessagebox.h>
-#include <tdelocale.h>
-#include <dcopclient.h>
-#include <dcopref.h>
-#include <kurl.h>
-#include <kdebug.h>
-
-#include "filters.hxx"
-#include "kmailcvt.h"
-
-
-//////////////////////////////////////////////////////////////////////////////////
-//
-// The API to the kmailcvt dialog --> Gives the import filter access to
-// put information on the dialog.
-//
-//////////////////////////////////////////////////////////////////////////////////
-
-bool FilterInfo::s_terminateASAP = false;
-
-FilterInfo::FilterInfo( KImportPageDlg* dlg, TQWidget* parent , bool _removeDupMsg)
- : m_dlg( dlg ),
- m_parent( parent )
-{
- removeDupMsg = _removeDupMsg;
- s_terminateASAP = false;
-}
-
-FilterInfo::~FilterInfo()
-{
-}
-
-void FilterInfo::setStatusMsg( const TQString& status )
-{
- m_dlg->_texStatus->setText( status );
-}
-
-void FilterInfo::setFrom( const TQString& from )
-{
- m_dlg->_from->setText( from );
-}
-
-void FilterInfo::setTo( const TQString& to )
-{
- m_dlg->_to->setText( to );
-}
-
-void FilterInfo::setCurrent( const TQString& current )
-{
- m_dlg->_current->setText( current );
- kapp->processEvents();
-}
-
-void FilterInfo::setCurrent( int percent )
-{
- m_dlg->_done_current->setProgress( percent );
- kapp->processEvents(); // Be careful - back & finish buttons disabled, so only user event that can happen is cancel/close button
-}
-
-void FilterInfo::setOverall( int percent )
-{
- m_dlg->_done_overall->setProgress( percent );
-}
-
-void FilterInfo::addLog( const TQString& log )
-{
- m_dlg->_log->insertItem( log );
- m_dlg->_log->setCurrentItem( m_dlg->_log->count() - 1 );
- m_dlg->_log->centerCurrentItem();
- kapp->processEvents();
-}
-
-void FilterInfo::clear()
-{
- m_dlg->_log->clear();
- setCurrent();
- setOverall();
- setCurrent( TQString() );
- setFrom( TQString() );
- setTo( TQString() );
-}
-
-void FilterInfo::alert( const TQString& message )
-{
- KMessageBox::information( m_parent, message );
-}
-
-void FilterInfo::terminateASAP()
-{
- s_terminateASAP = true;
-}
-
-bool FilterInfo::shouldTerminate()
-{
- return s_terminateASAP;
-}
-
-//////////////////////////////////////////////////////////////////////////////////
-//
-// The generic filter class
-//
-//////////////////////////////////////////////////////////////////////////////////
-
-
-Filter::Filter( const TQString& name, const TQString& author,
- const TQString& info )
- : m_name( name ),
- m_author( author ),
- m_info( info )
-{
- //public
- count_duplicates = 0;
-}
-
-bool Filter::addMessage( FilterInfo* info, const TQString& folderName,
- const TQString& msgPath, const TQString & msgStatusFlags)
-{
- KURL msgURL;
- msgURL.setPath( msgPath );
-
- if ( !kapp->dcopClient()->isApplicationRegistered( "kmail" ) )
- TDEApplication::startServiceByDesktopName( "kmail", TQString() ); // Will wait until kmail is started
-
- DCOPReply reply = DCOPRef( "kmail", "KMailIface" ).call( "dcopAddMessage", folderName, msgURL, msgStatusFlags );
-
- if ( !reply.isValid() )
- {
- info->alert( i18n( "<b>Fatal:</b> Unable to start KMail for DCOP communication. "
- "Make sure <i>kmail</i> is installed." ) );
- return false;
- }
-
- switch ( int( reply ) )
- {
- case -1:
- info->alert( i18n( "Cannot make folder %1 in KMail" ).arg( folderName ) );
- return false;
- case -2:
- info->alert( i18n( "Cannot add message to folder %1 in KMail" ).arg( folderName ) );
- return false;
- case -4:
- count_duplicates++;
- return false;
- case 0:
- info->alert( i18n( "Error while adding message to folder %1 in KMail" ).arg( folderName ) );
- return false;
- }
- return true;
-}
-
-bool Filter::addMessage_fastImport( FilterInfo* info, const TQString& folderName,
- const TQString& msgPath, const TQString& msgStatusFlags )
-{
- KURL msgURL;
- msgURL.setPath( msgPath );
-
- if ( !kapp->dcopClient()->isApplicationRegistered( "kmail" ) )
- TDEApplication::startServiceByDesktopName( "kmail", TQString() ); // Will wait until kmail is started
-
- DCOPReply reply = DCOPRef( "kmail", "KMailIface" ).call( "dcopAddMessage_fastImport", folderName, msgURL, msgStatusFlags );
- if ( !reply.isValid() )
- {
- info->alert( i18n( "<b>Fatal:</b> Unable to start KMail for DCOP communication. "
- "Make sure <i>kmail</i> is installed." ) );
- return false;
- }
-
- switch ( int( reply ) )
- {
- case -1:
- info->alert( i18n( "Cannot make folder %1 in KMail" ).arg( folderName ) );
- return false;
- case -2:
- info->alert( i18n( "Cannot add message to folder %1 in KMail" ).arg( folderName ) );
- return false;
- case 0:
- info->alert( i18n( "Error while adding message to folder %1 in KMail" ).arg( folderName ) );
- return false;
- }
- return true;
-}
-
-void Filter::showKMailImportArchiveDialog( FilterInfo* info )
-{
- if ( !kapp->dcopClient()->isApplicationRegistered( "kmail" ) )
- TDEApplication::startServiceByDesktopName( "kmail", TQString() ); // Will wait until kmail is started
-
- DCOPReply reply = DCOPRef( "kmail", "KMailIface" ).call( "showImportArchiveDialog" );
- if ( !reply.isValid() )
- {
- info->alert( i18n( "<b>Fatal:</b> Unable to start KMail for DCOP communication. "
- "Make sure <i>kmail</i> is installed." ) );
- }
-}
-
-bool Filter::needsSecondPage()
-{
- return true;
-}
-
-// vim: ts=2 sw=2 et
diff --git a/kmailcvt/filters.h b/kmailcvt/filters.h
new file mode 100644
index 00000000..f9261bcb
--- /dev/null
+++ b/kmailcvt/filters.h
@@ -0,0 +1,145 @@
+/***************************************************************************
+ filters.h - description
+ -------------------
+ begin : Fri Jun 30 2000
+ copyright : (C) 2000 by Hans Dijkema
+ email : kmailcvt@hum.org
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef FILTERS_H
+#define FILTERS_H
+
+#ifndef MAX_LINE
+#define MAX_LINE 4096
+#endif
+
+#include <tqcombobox.h>
+#include <tqprogressbar.h>
+#include <tqptrlist.h>
+#include <tqlistbox.h>
+#include <tqlabel.h>
+
+#include "kimportpagedlg.h"
+
+class FilterInfo
+{
+ public:
+ FilterInfo(KImportPageDlg *dlg, TQWidget *parent, bool _removeDupMsg);
+ ~FilterInfo();
+
+ void setStatusMsg( const TQString& status );
+ void setFrom( const TQString& from );
+ void setTo( const TQString& to );
+ void setCurrent( const TQString& current );
+ void setCurrent( int percent = 0 );
+ void setOverall( int percent = 0 );
+ void addLog( const TQString& log );
+ void clear();
+ void alert( const TQString& message );
+ static void terminateASAP();
+ bool shouldTerminate();
+
+ TQWidget *parent() { return m_parent; }
+ bool removeDupMsg;
+
+ private:
+ KImportPageDlg *m_dlg;
+ TQWidget *m_parent;
+ static bool s_terminateASAP;
+};
+
+class Filter
+{
+ public:
+ Filter( const TQString& name, const TQString& author,
+ const TQString& info = TQString() );
+ virtual ~Filter() {}
+ virtual void import( FilterInfo* ) = 0;
+ TQString author() const { return m_author; }
+ TQString name() const { return m_name; }
+ TQString info() const { return m_info; }
+
+ virtual bool needsSecondPage();
+
+ int count_duplicates; //to count all duplicate messages
+
+ protected:
+ void showKMailImportArchiveDialog( FilterInfo* info );
+ bool addMessage( FilterInfo* info,
+ const TQString& folder,
+ const TQString& msgFile,
+ const TQString& msgStatusFlags = TQString());
+ bool addMessage_fastImport( FilterInfo* info,
+ const TQString& folder,
+ const TQString& msgFile,
+ const TQString& msgStatusFlags = TQString());
+ private:
+ TQString m_name;
+ TQString m_author;
+ TQString m_info;
+};
+
+
+
+/**
+* Glorified TQString[N] for (a) understandability (b) older gcc compatibility.
+*/
+template <unsigned int size> class FolderStructureBase
+{
+public:
+ typedef TQString NString[size];
+ /** Constructor. Need a default constructor for TQValueList. */
+ FolderStructureBase() {} ;
+
+ /** Constructor. Turn N TQStrings into a folder structure
+ * description.
+ */
+ FolderStructureBase(const NString &s)
+ {
+ for(unsigned int i=0; i<size; i++) d[i]=s[i];
+ } ;
+
+ /** Copy Constructor. */
+ FolderStructureBase(const FolderStructureBase &s)
+ {
+ for(unsigned int i=0; i<size; i++) d[i]=s[i];
+ } ;
+
+ /** Assignment operator. Does the same thing as
+ * the copy constructor.
+ */
+ FolderStructureBase &operator =(const FolderStructureBase &s)
+ {
+ for(unsigned int i=0; i<size; i++) d[i]=s[i];
+ return *this;
+ } ;
+
+ /** Access the different fields. There doesn't seem to
+ * be a real semantics for the fields.
+ */
+ const TQString operator [](unsigned int i) const
+ {
+ if (i<size) return d[i]; else return TQString();
+ } ;
+
+ /** Access the different fields, for writing. */
+ TQString &operator [](unsigned int i)
+ {
+ Q_ASSERT(i<size);
+ if (i<size) return d[i]; else return d[0];
+ } ;
+private:
+ TQString d[size];
+} ;
+
+#endif
+
diff --git a/kmailcvt/filters.hxx b/kmailcvt/filters.hxx
deleted file mode 100644
index d6c33f42..00000000
--- a/kmailcvt/filters.hxx
+++ /dev/null
@@ -1,145 +0,0 @@
-/***************************************************************************
- filters.hxx - description
- -------------------
- begin : Fri Jun 30 2000
- copyright : (C) 2000 by Hans Dijkema
- email : kmailcvt@hum.org
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#ifndef FILTERS_HXX
-#define FILTERS_HXX
-
-#ifndef MAX_LINE
-#define MAX_LINE 4096
-#endif
-
-#include <tqcombobox.h>
-#include <tqprogressbar.h>
-#include <tqptrlist.h>
-#include <tqlistbox.h>
-#include <tqlabel.h>
-
-#include "kimportpagedlg.h"
-
-class FilterInfo
-{
- public:
- FilterInfo(KImportPageDlg *dlg, TQWidget *parent, bool _removeDupMsg);
- ~FilterInfo();
-
- void setStatusMsg( const TQString& status );
- void setFrom( const TQString& from );
- void setTo( const TQString& to );
- void setCurrent( const TQString& current );
- void setCurrent( int percent = 0 );
- void setOverall( int percent = 0 );
- void addLog( const TQString& log );
- void clear();
- void alert( const TQString& message );
- static void terminateASAP();
- bool shouldTerminate();
-
- TQWidget *parent() { return m_parent; }
- bool removeDupMsg;
-
- private:
- KImportPageDlg *m_dlg;
- TQWidget *m_parent;
- static bool s_terminateASAP;
-};
-
-class Filter
-{
- public:
- Filter( const TQString& name, const TQString& author,
- const TQString& info = TQString() );
- virtual ~Filter() {}
- virtual void import( FilterInfo* ) = 0;
- TQString author() const { return m_author; }
- TQString name() const { return m_name; }
- TQString info() const { return m_info; }
-
- virtual bool needsSecondPage();
-
- int count_duplicates; //to count all duplicate messages
-
- protected:
- void showKMailImportArchiveDialog( FilterInfo* info );
- bool addMessage( FilterInfo* info,
- const TQString& folder,
- const TQString& msgFile,
- const TQString& msgStatusFlags = TQString());
- bool addMessage_fastImport( FilterInfo* info,
- const TQString& folder,
- const TQString& msgFile,
- const TQString& msgStatusFlags = TQString());
- private:
- TQString m_name;
- TQString m_author;
- TQString m_info;
-};
-
-
-
-/**
-* Glorified TQString[N] for (a) understandability (b) older gcc compatibility.
-*/
-template <unsigned int size> class FolderStructureBase
-{
-public:
- typedef TQString NString[size];
- /** Constructor. Need a default constructor for TQValueList. */
- FolderStructureBase() {} ;
-
- /** Constructor. Turn N TQStrings into a folder structure
- * description.
- */
- FolderStructureBase(const NString &s)
- {
- for(unsigned int i=0; i<size; i++) d[i]=s[i];
- } ;
-
- /** Copy Constructor. */
- FolderStructureBase(const FolderStructureBase &s)
- {
- for(unsigned int i=0; i<size; i++) d[i]=s[i];
- } ;
-
- /** Assignment operator. Does the same thing as
- * the copy constructor.
- */
- FolderStructureBase &operator =(const FolderStructureBase &s)
- {
- for(unsigned int i=0; i<size; i++) d[i]=s[i];
- return *this;
- } ;
-
- /** Access the different fields. There doesn't seem to
- * be a real semantics for the fields.
- */
- const TQString operator [](unsigned int i) const
- {
- if (i<size) return d[i]; else return TQString();
- } ;
-
- /** Access the different fields, for writing. */
- TQString &operator [](unsigned int i)
- {
- Q_ASSERT(i<size);
- if (i<size) return d[i]; else return d[0];
- } ;
-private:
- TQString d[size];
-} ;
-
-#endif
-
diff --git a/kmailcvt/kimportpage.h b/kmailcvt/kimportpage.h
index 9541b5d4..1b9fcdc5 100644
--- a/kmailcvt/kimportpage.h
+++ b/kmailcvt/kimportpage.h
@@ -21,7 +21,7 @@
#include "kimportpagedlg.h"
class KImportPage : public KImportPageDlg {
- Q_OBJECT
+ TQ_OBJECT
public:
KImportPage(TQWidget *parent=0, const char *name=0);
diff --git a/kmailcvt/kmailcvt.cpp b/kmailcvt/kmailcvt.cpp
index d34e0641..39ba423e 100644
--- a/kmailcvt/kmailcvt.cpp
+++ b/kmailcvt/kmailcvt.cpp
@@ -20,7 +20,7 @@
#include <dcopclient.h>
#include <dcopref.h>
#include <kdebug.h>
-#include "filters.hxx"
+#include "filters.h"
KMailCVT::KMailCVT(TQWidget *parent, const char *name)
: KWizard(parent, name, true) {
diff --git a/kmailcvt/kmailcvt.h b/kmailcvt/kmailcvt.h
index 7253d5ac..0f6704b0 100644
--- a/kmailcvt/kmailcvt.h
+++ b/kmailcvt/kmailcvt.h
@@ -26,7 +26,7 @@
/** KMailCVT is the base class of the project */
class KMailCVT : public KWizard {
- Q_OBJECT
+ TQ_OBJECT
public:
KMailCVT(TQWidget* parent=0, const char *name=0);
diff --git a/kmailcvt/kselfilterpage.cpp b/kmailcvt/kselfilterpage.cpp
index 7d97fcfd..ef3d9577 100644
--- a/kmailcvt/kselfilterpage.cpp
+++ b/kmailcvt/kselfilterpage.cpp
@@ -19,23 +19,23 @@
#include <tqtextedit.h>
#include <tqcheckbox.h>
#include <tdelocale.h>
-#include "filters.hxx"
+#include "filters.h"
-#include "filter_mbox.hxx"
-#include "filter_oe.hxx"
-#include "filter_outlook.hxx"
-#include "filter_pmail.hxx"
-#include "filter_plain.hxx"
-#include "filter_evolution.hxx"
-#include "filter_mailapp.hxx"
-#include "filter_evolution_v2.hxx"
-#include "filter_opera.hxx"
-#include "filter_thunderbird.hxx"
-#include "filter_kmail_maildir.hxx"
-#include "filter_kmail_archive.hxx"
-#include "filter_sylpheed.hxx"
-#include "filter_thebat.hxx"
-#include "filter_lnotes.hxx"
+#include "filter_mbox.h"
+#include "filter_oe.h"
+#include "filter_outlook.h"
+#include "filter_pmail.h"
+#include "filter_plain.h"
+#include "filter_evolution.h"
+#include "filter_mailapp.h"
+#include "filter_evolution_v2.h"
+#include "filter_opera.h"
+#include "filter_thunderbird.h"
+#include "filter_kmail_maildir.h"
+#include "filter_kmail_archive.h"
+#include "filter_sylpheed.h"
+#include "filter_thebat.h"
+#include "filter_lnotes.h"
#include "kselfilterpage.h"
@@ -43,7 +43,7 @@ KSelFilterPage::KSelFilterPage(TQWidget *parent, const char *name ) : KSelFilter
mIntroSidebar->setPixmap(locate("data", "kmailcvt/pics/step1.png"));
mFilterList.setAutoDelete( TRUE );
- connect(mFilterCombo, TQT_SIGNAL(activated(int)), TQT_SLOT(filterSelected(int)));
+ connect(mFilterCombo, TQ_SIGNAL(activated(int)), TQ_SLOT(filterSelected(int)));
// Add new filters below. If this annoys you, please rewrite the stuff to use a factory.
// The former approach was overengineered and only worked around problems in the design
diff --git a/kmailcvt/kselfilterpage.h b/kmailcvt/kselfilterpage.h
index 127dc816..1dc208e6 100644
--- a/kmailcvt/kselfilterpage.h
+++ b/kmailcvt/kselfilterpage.h
@@ -24,7 +24,7 @@ class Filter;
template <class T> class TQPtrList;
class KSelFilterPage : public KSelFilterPageDlg {
- Q_OBJECT
+ TQ_OBJECT
public:
KSelFilterPage(TQWidget *parent=0, const char *name=0);
diff --git a/kmobile/CMakeL10n.txt b/kmobile/CMakeL10n.txt
index 273f273b..721ee3e8 100644
--- a/kmobile/CMakeL10n.txt
+++ b/kmobile/CMakeL10n.txt
@@ -6,3 +6,9 @@ tde_l10n_create_template(
)
tde_l10n_auto_add_subdirectories( )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/kmobile-desktops/"
+ SOURCES *.desktop *.protocol
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/kmobile/CMakeLists.txt b/kmobile/CMakeLists.txt
index 1c5cf0c0..43cff0a6 100644
--- a/kmobile/CMakeLists.txt
+++ b/kmobile/CMakeLists.txt
@@ -31,8 +31,18 @@ link_directories(
##### other data ################################
tde_install_icons( kmobile )
-install( FILES kmobile.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
-install( FILES libkmobile.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+
+tde_create_translated_desktop(
+ SOURCE kmobile.desktop
+ PO_DIR kmobile-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE libkmobile.desktop
+ DESTINATION ${SERVICETYPES_INSTALL_DIR}
+ PO_DIR kmobile-desktops
+)
+
install( FILES kmobileui.rc DESTINATION ${DATA_INSTALL_DIR}/kmobile )
diff --git a/kmobile/TODO b/kmobile/TODO
index 33b60b83..e3822225 100644
--- a/kmobile/TODO
+++ b/kmobile/TODO
@@ -12,7 +12,6 @@ TODO:
- fix doubled loading of plugins
- where do I get the device name from the kmobile unique process?
- finish the functions which are available to client apps.
-- kitchensync driver/plugin (starting...)
- a plugin for the left side of the "Open File Dialog". ->
makes direct access to mobile devices really easy
- make the daemon a KDED (KDE Meta Daemon) module (tdelibs/kded/HOWTO, README.kded)
@@ -22,10 +21,3 @@ General Interface TODO:
-----------------------
- automatic logoff timers
- Authentication
-
-
-TODO (lower priority):
-----------------------
-- a kmobile-driver, which can connect to another KDE-computer
- to be able to access Calendar-Entries, ToDo's, ... from there
- and to be able to syncronize them via kitchensync (maybe?)
diff --git a/kmobile/devices/digicam/CMakeLists.txt b/kmobile/devices/digicam/CMakeLists.txt
index 9aee42c1..79213f2d 100644
--- a/kmobile/devices/digicam/CMakeLists.txt
+++ b/kmobile/devices/digicam/CMakeLists.txt
@@ -9,4 +9,8 @@
#
#################################################
-install( FILES libkmobile_digicam.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE libkmobile_digicam.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR kmobile-desktops
+)
diff --git a/kmobile/devices/digicam/libkmobile_digicam.desktop b/kmobile/devices/digicam/libkmobile_digicam.desktop
index fbd66a32..4cb32749 100644
--- a/kmobile/devices/digicam/libkmobile_digicam.desktop
+++ b/kmobile/devices/digicam/libkmobile_digicam.desktop
@@ -1,111 +1,8 @@
[Desktop Entry]
Name=Digital Camera
-Name[af]=Digitale Kamera
-Name[ar]=كاميرا رقمية
-Name[bg]=Фотоапарат
-Name[br]=Kamera niverel
-Name[bs]=Digitalna kamera
-Name[ca]=Càmera digital
-Name[cs]=Digitální fotoaparát
-Name[cy]=Camera Digidol
-Name[da]=Digitalt kamera
-Name[de]=Digitalkamera
-Name[el]=Ψηφιακή κάμερα
-Name[eo]=Cifereca fotilo
-Name[es]=Cámara digital
-Name[et]=Digitaalkaamera
-Name[eu]=Kamera digitala
-Name[fa]=دوربین رقمی
-Name[fi]=digitaalikamera
-Name[fr]=Appareil photo numérique
-Name[fy]=Digitale kamera
-Name[ga]=Ceamara Digiteach
-Name[gl]=Cámara dixital
-Name[hi]=डिजिटल कैमरा
-Name[hr]=Digitalna kamera
-Name[hu]=Fényképezőgép
-Name[is]=Stafræn myndavél
-Name[it]=Macchina fotografica digitale
-Name[ja]=デジタルカメラ
-Name[kk]=Цифрлық камера
-Name[km]=ម៉ាស៊ីន​ថត​រូប​ឌីជីថល
-Name[lt]=Skaitmeninė kamera
-Name[mk]=Дигитална камера
-Name[ms]=Kamera Digital
-Name[nb]=Digitalkamera
-Name[nds]=Digitaalkamera
-Name[ne]=डिजिटल क्यामेरा
-Name[nl]=Digitale camera
-Name[nn]=Digitalt kamera
-Name[pa]=ਡਿਜ਼ੀਟਲ ਕੈਮਰਾ
-Name[pl]=Aparat cyfrowy
-Name[pt]=Máquina Fotográfica Digital
-Name[pt_BR]=Câmera Digital
-Name[ro]=Aparat foto digital
-Name[ru]=Цифровая камера
-Name[se]=Digitálalaš govvenapperáhta
-Name[sk]=Digitálny fotoaparát
-Name[sl]=Digitalna kamera
-Name[sr]=Дигитална камера
-Name[sr@Latn]=Digitalna kamera
-Name[sv]=Digitalkamera
-Name[ta]=டிஜிடல் காமரா
-Name[tg]=Камераи digital
-Name[tr]=Dijital Kamera
-Name[uk]=Цифровий фотоапарат
-Name[uz]=Фотоапарат
-Name[zh_CN]=数码相机
-Name[zh_TW]=數位相機
+
Comment=This driver supports many digital cameras
-Comment[af]=Hierdie drywer ondersteun baie digitale kameras
-Comment[bg]=Драйвер за поддръжка на цифрови фотоапарати и камери
-Comment[bs]=Ovaj drajver podržava mnoge digitalne kamere
-Comment[ca]=Aquest controlador accepta moltes càmeres digitals
-Comment[cs]=Tento ovladač podporuje mnoho digitálních fotoaparátů
-Comment[cy]=Cynhala'r gyrrydd yma lawer o gamerau digidol
-Comment[da]=Denne driver understøtter mange digitale kameraer
-Comment[de]=Ein Treiber, der zahlreiche Digitalkameras unterstützt
-Comment[el]=Αυτός ο οδηγός υποστηρίζει πολλές ψηφιακές κάμερες
-Comment[es]=Este manejador admite muchas cámaras digitales
-Comment[et]=See draiver toetab paljusid digitaalkaameraid
-Comment[eu]=Kontrolatzaile honek kamera digital asko onartzen ditu
-Comment[fa]=این گرداننده اغلب دوربینهای رقمی را پشتیبانی می‌کند
-Comment[fi]=Tämä ajuri tukee useita digitaalikameroita
-Comment[fr]=Ce pilote prend en charge beaucoup d'appareils photo numériques
-Comment[fy]=Dit stjoerprogramma jout stipe foar in soad kamera's
-Comment[ga]=Tacaíonn an tiománaí seo le neart ceamaraí digiteacha
-Comment[gl]=Este controlador atura moitas cámaras dixitais
-Comment[hi]=यह ड्राइवर बहुत से डिजिटल कैमरे समर्थित करता है
-Comment[hu]=Ez a meghajtó különféle digitális fényképezőgépek kezelését teszi lehetővé
-Comment[is]=Þessi rekill styður margar stafrænar myndavélar
-Comment[it]=Questo driver supporta molte fotocamere digitali
-Comment[ja]=このドライバは多種のデジタルカメラをサポートします
-Comment[kk]=Бұл бірспыра цифрлық камераларды қамтитын драйвер
-Comment[km]=កម្មវិធី​បញ្ជា​នេះ​គាំទ្រ​ម៉ាស៊ីន​ថត​រូប​ឌីជីថល​ជាច្រើន
-Comment[lt]=Ši tvarkyklė palaiko daugelį skaitmeninių kamerų
-Comment[mk]=Овој управувач поддржува многу дигитални камери
-Comment[ms]=Pemacu ini menyokong banyak kamera digital
-Comment[nb]=Denne driveren støtter mange digitalkameraer
-Comment[nds]=Ein Driever, de vele Digitaalkameras ünnerstütt
-Comment[ne]=यो ड्राइभरले धेरै डिजिटल क्यामेरा समर्थन गर्छ
-Comment[nl]=Dit stuurprogramma biedt ondersteuning voor veel camera's
-Comment[nn]=Denne drivaren støttar mange digitale kamera
-Comment[pl]=Ten sterownik obsługuje wiele aparatów cyfrowych
-Comment[pt]=Este controlador suporta várias máquinas fotográficas digitais
-Comment[pt_BR]=Este driver suporta muitas câmeras digitais
-Comment[ro]=Acest driver suportă multe camere foto digitale
-Comment[ru]=Этот драйвер поддерживает множество моделей цифровых камер
-Comment[sk]=Tento ovládač podporuje veľa digitálnych fotoaparátov
-Comment[sl]=Ta gonilnik podpira mnogo digitalnih kamer
-Comment[sr]=Овај управљачки програм подржава многе дигиталне камере
-Comment[sr@Latn]=Ovaj upravljački program podržava mnoge digitalne kamere
-Comment[sv]=Den här drivrutinen stöder många digitalkameror
-Comment[ta]=இந்த இயக்கம் பல இலக்கக் காமிராக்களை ஆதரிக்கும்
-Comment[tg]=Ин драйвер бисёри тамсилаҳои камераҳои digital-ро дастгирӣ мекунад
-Comment[tr]=Bu sürücü birçok dijital kamerayı destekler
-Comment[uk]=Цей драйвер підтримує багато цифрових камер
-Comment[zh_CN]=此驱动程序支持许多数码相机
-Comment[zh_TW]=此驅動程式支援許多數位相機
+
Type=Service
X-TDE-ServiceTypes=kdedevice/mobiledevice
X-TDE-Library=libkmobile_digicam
diff --git a/kmobile/devices/gammu/CMakeLists.txt b/kmobile/devices/gammu/CMakeLists.txt
index 9372166e..07d30501 100644
--- a/kmobile/devices/gammu/CMakeLists.txt
+++ b/kmobile/devices/gammu/CMakeLists.txt
@@ -9,4 +9,8 @@
#
#################################################
-install( FILES libkmobile_gammu.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE libkmobile_gammu.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR kmobile-desktops
+)
diff --git a/kmobile/devices/gammu/libkmobile_gammu.desktop b/kmobile/devices/gammu/libkmobile_gammu.desktop
index 82d88880..50d4ab00 100644
--- a/kmobile/devices/gammu/libkmobile_gammu.desktop
+++ b/kmobile/devices/gammu/libkmobile_gammu.desktop
@@ -1,105 +1,8 @@
[Desktop Entry]
Name=Mobile Phone or Organizer (gammu)
-Name[af]=Selfoon of Digitale Dagboek (gammu)
-Name[ar]=الهاتف النقّال أو المنظم (gammu)
-Name[be]=Мабільны тэлефон ці арганізатар (gammu)
-Name[bg]=Мобилни телефони или организатори (gammu)
-Name[bs]=Mobilni telefon ili organizer (gammu)
-Name[ca]=Telèfon mòbil o organitzador (gammu)
-Name[cs]=Mobilní telefon nebo Organizér (gammu)
-Name[cy]=Ffôn Symudol neu Drefnydd (gammu)
-Name[da]=Mobiltelefon eller organisator (gammu)
-Name[de]=Mobiltelefon oder Organizer (gammu)
-Name[el]=Κινητό τηλέφωνο ή Organizer (gammu)
-Name[en_GB]=Mobile Phone or Organiser (gammu)
-Name[es]=Teléfono móvil u organizador (gammu)
-Name[et]=Mobiiltelefon või Organizer (gammu)
-Name[eu]=Mugikorra edo antolatzailea (gammu)
-Name[fa]=تلفن همراه یا سازمان‌دهنده (gammu)
-Name[fi]=Matkapuhelin tai organisaattori (gammu)
-Name[fr]=Téléphone portable ou organiseur (gammu)
-Name[fy]=Mobile tillefoan of Organizer (gammu)
-Name[ga]=Fón Póca nó Eagraí (gammu)
-Name[gl]=Teléfono móbil ou organizador (gammu)
-Name[he]=טלפון נייד או אירגונית (gammu)
-Name[hi]=मोबाइल फोन या आर्गेनाइज़र (गम्मू)
-Name[hu]=Mobiltelefon/határidőnapló-kezelő (Gammu)
-Name[is]=Farsími eða lófatölva (gammu)
-Name[it]=Organizer o telefono cellulare (gammu)
-Name[ja]=携帯電話またはスケジュール管理 (gammu)
-Name[kk]=Қалта телефон не Ұйымдастырғыш (gammu)
-Name[km]=កម្មវិធី​រៀបចំ​ទូរស័ព្ទ​ចល័ត (gammu)
-Name[lt]=Mobilus telefonas ar asmeninės info tvarkyklė (gammu)
-Name[ms]=Telefon Bimbit atau Penyusun (gammu)
-Name[nb]=Mobiltelefon eller PDA (gammu)
-Name[nds]=Mobiltelefoon oder Handreekner (gammu)
-Name[ne]=मोबाइल फोन वा आयोजक (गामु)
-Name[nl]=Mobiele telefoon of Organizer (gammu)
-Name[nn]=Mobiltelefon eller organisator (gammu)
-Name[pl]=Telefon komórkowy lub organizer (gammu)
-Name[pt]=Organizador ou Telemóvel (Gammu)
-Name[pt_BR]=Telefone Móvel ou Organizador (gammu)
-Name[ru]=Мобильный телефон или органайзер (gammu)
-Name[sk]=Mobil alebo organizér (gammu)
-Name[sl]=Prenosni telefon ali organizator (gammu)
-Name[sr]=Мобилни телефон или организатор (gammu)
-Name[sr@Latn]=Mobilni telefon ili organizator (gammu)
-Name[sv]=Mobilenhet (gammu)
-Name[ta]=செல்பேசி அல்லது ஒருங்கிணைப்பாளர்(gammu)
-Name[tg]=Телефони мобилӣ ё органайзер (gammu)
-Name[tr]=Cep Telefonu ya da Organizer (gammu)
-Name[uk]=Мобільний телефон та тижневик (gammu)
-Name[uz]=Уяли телефон ёки органайзер (gammu)
-Name[zh_CN]=移动电话或 PDA(gammu)
-Name[zh_TW]=行動電話或數位助理(gammu)
+
Comment=This driver supports many NOKIA and other mobile phones via the gammu library
-Comment[af]=Hierdie drywer ondersteun baie Nokia en ander selfone d.m.v. die gammu biblioteek
-Comment[bg]=Драйвер за поддръжка на мобилни телефони, предимно Нокиа, чрез библиотеката gammu
-Comment[bs]=Ovaj drajver podržava mnoge NOKIA i druge mobilne telefone putem gammu biblioteke
-Comment[ca]=Aquest controlador accepta molts NOKIA i d'altres telèfons mòbils mitjançant la biblioteca «gammu»
-Comment[cs]=Tento ovladač podporuje mnoho mobilních telefonů NOKIA a dalších pomocí knihovny gammu
-Comment[cy]=Cynhala'r gyrrydd yma lawer o ffoniau NOKIA a ffoniau symudol eraill drwy'r rhaglengell gammu
-Comment[da]=Denne driver understøtter mange NOKIA og andre mobiltelefoner via gammu-biblioteket
-Comment[de]=Ein Treiber, der zahlreiche NOKIA- und sonstige Mobiltelefone über die gammu-Bibliothek unterstützt
-Comment[el]=Αυτός ο οδηγός υποστηρίζει πολλά NOKIA και άλλα κινητά τηλέφωνα μέσω της βιβλιοθήκης gammu
-Comment[es]=Este manejador admite muchos teléfonos móviles NOKIA y de otras marcas vía la biblioteca gammu
-Comment[et]=See draiver toetab gammu teegi vahendusel paljusid Nokia ja teisi mobiiltelefone
-Comment[eu]=Kontrolatzaile honek NOKIA eta beste mugikor asko onartzen ditu gammu liburutegiaren bidez
-Comment[fa]=این گرداننده، اغلب تلفنهای همراه نوکیا و غیره را از طریق کتابخانۀ gammu پشتیبانی می‌کند
-Comment[fi]=Tämä ajuri tukee monia Nokian ja muita matkapuhelimia gammu-kirjaston kautta
-Comment[fr]=Ce pilote prend en charge beaucoup de téléphones portables Nokia et autres à l'aide de la bibliothèque gammu
-Comment[fy]=Dit stjoerprogramma jout stipe foar in soad Nokia- en oare mobile tillefoans fia de gammu-bibliotheek
-Comment[ga]=Tacaíonn an tiománaí seo le neart fóin NOKIA agus cinn eile, tríd an leabharlann gammu
-Comment[gl]=Este controlador soporta moitos móbiles Nokia e outros mediante a libraría gammu
-Comment[hi]=यह ड्राइवर बहुत से नोकिया तथा अन्य मोबाइल फोनों को गम्मू लाइब्रेरी के द्वारा समर्थित करता है
-Comment[hu]=Ez a meghajtó mobiltelefonok (elsősorban Nokia gyártmányúak) kezelését teszi lehetővé a Gammu programkönyvtáron keresztül
-Comment[is]=Þessi rekill styður marga NOKIA og aðra farsíma gegnum gammu aðgerðasafnið
-Comment[it]=Questo driver supporta molti NOKIA e altri telefoni cellulari tramite la libreria gammu.
-Comment[ja]=このドライバは gammu ライブラリを介して NOKIA および他社製の携帯電話を幅広くサポートします
-Comment[kk]=Бұл көп NOKIA мен басқа қалта құрылғыларды, gammu жиыны арқылы, қамтитын драйвер
-Comment[km]=កម្មវិធី​បញ្ជា​នេះ​គាំទ្រ​ប្រភេទ​ទូរស័ព្ទ​ណូគៀ និងទូរស័ព្ទ​ផ្សេងៗ​ទៀត​ជាច្រើន​តាម​រយៈ​បណ្ណាល័យ gammu
-Comment[lt]=Ši tvarkyklė palaiko daugelį NOKIA ir kitų telefonų pasinaudodama gammu biblioteka
-Comment[ms]=Pemacu ini menyokong banyak NOKIA dan telefon bimbit lain melalui pustaka gammu
-Comment[nb]=Denne driveren støtter mange NOKIA og andre mobiltelefoner via gammu-biblioteket
-Comment[nds]=Disse Driever ünnerstütt vele Nokia- un anner Mobiltelefonen över de gammu-Bibliotheek
-Comment[ne]=यो ड्राइभरले गामु लाइब्रेरीबाट धेरै नोकिया र अन्य मोबाइल फोन समर्थन गर्छ
-Comment[nl]=Dit stuurprogramma biedt ondersteuning voor veel Nokia- en andere mobiele telefoons via de gammu-bibliotheek
-Comment[nn]=Denne drivaren støttar mange NOKIA og andre mobiltelefonar via gammu-biblioteket
-Comment[pl]=Ten sterownik obsługuje wiele telefonów komórkowychNokia i innych za pomocą biblioteki gammu
-Comment[pt]=Este controlador suportar muitos NOKIAs, bem como outros telemóveis, com a biblioteca 'gammu'
-Comment[pt_BR]=Este driver suporta muitos telefones móveis, NOKIA e outros, via biblioteca gammu
-Comment[ru]=Этот драйвер поддерживает множество моделей мобильных телефонов Nokia и других производителей через библиотеку gammu
-Comment[sk]=Tento ovládač podporuje veľa mobilov NOKIA a iných pomocou knižnice gammu
-Comment[sl]=Ta gonilnik preko knjižnice gammu podpira mnoge prenosne telefone NOKIA kot tudi druge
-Comment[sr]=Овај управљачки програм подржава многе Nokia-ине и друге мобилне телефоне преко библиотеке gammu
-Comment[sr@Latn]=Ovaj upravljački program podržava mnoge Nokia-ine i druge mobilne telefone preko biblioteke gammu
-Comment[sv]=Den här drivrutinen stöder många Nokia och andra mobiltelefoner via biblioteket gammu
-Comment[ta]=இந்த இயக்கி பல NOKIA மற்றும் மற்ற செல்பேசிகளை கம்மு நூலகம் வழியாக ஆதரிக்கிறது.
-Comment[tg]=Ин драйвер бисёри тамсилаҳои телефонҳои мобилии Nokia-ро ва дигар истеҳсолкунандаҳоро аз китобхонаи gammu дастгирӣ мекунад
-Comment[tr]=Bu sürücü birçok NOKIA ve gammu kütüphanesiyle diğer cep telefonlarını destekler
-Comment[uk]=Цей драйвер підтримує багато мобільних телефонів фірми NOKIA та інших мобільних телефонів через бібліотеку gammu
-Comment[zh_CN]=此驱动程序通过 gammu 库支持许多诺基亚和其它移动电话
-Comment[zh_TW]=此驅動程式支援許多 NOKIA 及其他手機,使用 gammu 函式庫
+
Type=Service
X-TDE-ServiceTypes=kdedevice/mobiledevice
X-TDE-Library=libkmobile_gammu
diff --git a/kmobile/devices/gnokii/CMakeLists.txt b/kmobile/devices/gnokii/CMakeLists.txt
index 140360e1..91bb338f 100644
--- a/kmobile/devices/gnokii/CMakeLists.txt
+++ b/kmobile/devices/gnokii/CMakeLists.txt
@@ -26,9 +26,11 @@ link_directories(
##### other data ################################
-install( FILES
- libkmobile_gnokii.desktop
- DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE libkmobile_gnokii.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR kmobile-desktops
+)
##### libkmobile_gnokii (module) ################
diff --git a/kmobile/devices/gnokii/gnokii_mobile.h b/kmobile/devices/gnokii/gnokii_mobile.h
index cc55911c..461c6d3f 100644
--- a/kmobile/devices/gnokii/gnokii_mobile.h
+++ b/kmobile/devices/gnokii/gnokii_mobile.h
@@ -29,7 +29,7 @@
class KMobileGnokii : public KMobileDevice
{
-Q_OBJECT
+TQ_OBJECT
public:
KMobileGnokii( TQObject *obj=0, const char *name=0, const TQStringList &args=TQStringList() );
@@ -37,7 +37,7 @@ public:
// createObject needs to be reimplemented by every KMobileDevice driver
TQObject *createObject( TQObject *parent=0, const char *name=0,
- const char *classname=TQOBJECT_OBJECT_NAME_STRING, const TQStringList &args=TQStringList() );
+ const char *classname="TQObject", const TQStringList &args=TQStringList() );
// connect, disconnect and current status
bool connectDevice(TQWidget *parent);
diff --git a/kmobile/devices/gnokii/gnokiiconfig.cpp b/kmobile/devices/gnokii/gnokiiconfig.cpp
index 07bc46f4..4be8fb36 100644
--- a/kmobile/devices/gnokii/gnokiiconfig.cpp
+++ b/kmobile/devices/gnokii/gnokiiconfig.cpp
@@ -72,7 +72,7 @@ void GnokiiConfig::setValues(const TQString &model, const TQString &connection,
slotCheckValues();
- connect( cb_Connection, TQT_SIGNAL(textChanged(const TQString &)), this, TQT_SLOT(slotCheckValues(const TQString &)) );
+ connect( cb_Connection, TQ_SIGNAL(textChanged(const TQString &)), this, TQ_SLOT(slotCheckValues(const TQString &)) );
}
void GnokiiConfig::getValues(TQString &model, TQString &connection, TQString &port, TQString &baud) const
diff --git a/kmobile/devices/gnokii/gnokiiconfig.h b/kmobile/devices/gnokii/gnokiiconfig.h
index 530bb4e4..a3f3b04b 100644
--- a/kmobile/devices/gnokii/gnokiiconfig.h
+++ b/kmobile/devices/gnokii/gnokiiconfig.h
@@ -25,7 +25,7 @@
class GnokiiConfig : public GnokiiConfigUI
{
-Q_OBJECT
+TQ_OBJECT
public:
GnokiiConfig( TQWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
diff --git a/kmobile/devices/gnokii/libkmobile_gnokii.desktop b/kmobile/devices/gnokii/libkmobile_gnokii.desktop
index 6ae1a303..c96366bd 100644
--- a/kmobile/devices/gnokii/libkmobile_gnokii.desktop
+++ b/kmobile/devices/gnokii/libkmobile_gnokii.desktop
@@ -1,105 +1,8 @@
[Desktop Entry]
Name=Mobile Phone or Organizer (gnokii)
-Name[af]=Selfoon of Digitale Dagboek (gnokii)
-Name[ar]=الهاتف النقّال أو المنظم (gnokii)
-Name[be]=Мабільны тэлефон ці арганізатар (gnokii)
-Name[bg]=Мобилни телефони или организатори (gnokii)
-Name[bs]=Mobilni telefon ili organizer (gnokii)
-Name[ca]=Telèfon mòbil o organitzador (gnokii)
-Name[cs]=Mobilní telefon nebo Organizér (gnokii)
-Name[cy]=Ffôn Symudol neu Drefnydd (gnokii)
-Name[da]=Mobiltelefon eller organisator (gnokii)
-Name[de]=Mobiltelefon oder Organizer (gnokii)
-Name[el]=Κινητό τηλέφωνο ή Organizer (gnokii)
-Name[en_GB]=Mobile Phone or Organiser (gnokii)
-Name[es]=Teléfono móvil u organizador (gnokii)
-Name[et]=Mobiiltelefon või Organizer (gnokii)
-Name[eu]=Mugikorra edo antolatzailea (gnokii)
-Name[fa]=تلفن همراه یا سازمان‌دهنده (gnokii)
-Name[fi]=Matkapuhelin tai organisoija (gnokii)
-Name[fr]=Téléphone portable ou organiseur (gnokii)
-Name[fy]=Mobile tillefoan of Organizer (gnokii)
-Name[ga]=Fón Póca nó Eagraí (gnokii)
-Name[gl]=Teléfono móbil ou organizador (gnokii)
-Name[he]=טלפון נייד או אירגונית (gnokii)
-Name[hi]=मोबाइल फोन या आर्गेनाइज़र (ग्नोकी)
-Name[hu]=Mobiltelefon/határidőnapló-kezelő (Gnokii)
-Name[is]=Farsími eða lófatölva (gnokii)
-Name[it]=Telefono cellulare o organizer (gnokii)
-Name[ja]=携帯電話またはスケジュール管理 (gnokii)
-Name[kk]=Қалта телефон не Ұйымдастырғыш (gnokii)
-Name[km]=កម្មវិធី​រៀបចំ​ទូរស័ព្ទ​ចល័ត (gnokii)
-Name[lt]=Mobilus telefonas ar asmeninės info tvarkyklė (gnokii)
-Name[ms]=Telefon Bimbit atau Penyusun (gnokii)
-Name[nb]=Mobiltelefon eller PDA (gnokii)
-Name[nds]=Mobiltelefoon oder Handreekner (gnokii)
-Name[ne]=मोबाइल फोन वा आयोजक (जिनोकी)
-Name[nl]=Mobiele telefoon of Organizer (gnokii)
-Name[nn]=Mobiltelefon eller organisator (gnokii)
-Name[pl]=Telefon komórkowy lub organizer (gnokii)
-Name[pt]=Organizador ou Telemóvel (Gnokii)
-Name[pt_BR]=Telefone Móvel ou Organizador (gnokii)
-Name[ru]=Мобильный телефон или органайзер (gnokii)
-Name[sk]=Mobil alebo organizér (gnokii)
-Name[sl]=Prenosni telefon ali organizator (gnokii)
-Name[sr]=Мобилни телефон или организатор (gnokii)
-Name[sr@Latn]=Mobilni telefon ili organizator (gnokii)
-Name[sv]=Mobilenhet (gnokii)
-Name[ta]=செல்பேசி அல்லது ஒருங்கிணைப்பாளர்(gnokii)
-Name[tg]=Телефони мобилӣ ё органайзери (gnokii)
-Name[tr]=Cep Telefonu ya da Organizer (gnokii)
-Name[uk]=Мобільний телефон та тижневик (gnokii)
-Name[uz]=Уяли телефон ёки органайзер (gnokii)
-Name[zh_CN]=移动电话或 PDA(gnokii)
-Name[zh_TW]=行動電話或數位助理(gnokii)
+
Comment=This driver supports many NOKIA and other mobile phones via the gnokii library
-Comment[af]=Hierdie drywer ondersteun baie Nokia en ander selfone d.m.v. die gnokii biblioteek
-Comment[bg]=Драйвер за поддръжка на мобилни телефони, предимно Нокиа, чрез библиотеката gnokii
-Comment[bs]=Ovaj drajver podržava mnoge NOKIA i druge mobilne telefone putem gnokii biblioteke
-Comment[ca]=Aquest controlador accepta molts NOKIA i d'altres telèfons mòbils mitjançant la biblioteca «gnokii»
-Comment[cs]=Tento ovladač podporuje mnoho mobilních telefonů NOKIA a dalších pomocí knihovny gnokii
-Comment[cy]=Cynhala'r gyrrydd yma lawer o ffoniau NOKIA a ffoniau symudol eraill drwy'r rhaglengell gnokii
-Comment[da]=Denne driver understøtter mange NOKIA og andre mobiltelefoner via gnokii-biblioteket
-Comment[de]=Ein Treiber, der zahlreiche NOKIA- und sonstige Mobiltelefone über die gnokii-Bibliothek unterstützt
-Comment[el]=Αυτός ο οδηγός υποστηρίζει πολλά NOKIA και άλλα κινητά τηλέφωνα μέσω της βιβλιοθήκης gnokii
-Comment[es]=Este manejador admite muchos teléfonos móviles NOKIA y de otras marcas vía la biblioteca gnokii
-Comment[et]=See draiver toetab gnokii teegi vahendusel paljusid Nokia ja teisi mobiiltelefone
-Comment[eu]=Kontrolatzaile honek NOKIA eta beste mugikor asko onartzen ditu gnokii liburutegiaren bidez
-Comment[fa]=این گرداننده، اغلب تلفنهای همراه نوکیا و غیره را از طریق کتابخانۀ gnokii پشتیبانی می‌کند
-Comment[fi]=Tämä ajuri tukee monia Nokian ja muita matkapuhelimia gnokii-kirjaston kautta
-Comment[fr]=Ce pilote prend en charge beaucoup de téléphones portables Nokia et autres à l'aide de la bibliothèque gnokii
-Comment[fy]=Dit stjoerprogramma jout stipe foar in soad Nokia- en oare mobile tilefoans fia de gnokii-bibliotheek
-Comment[ga]=Tacaíonn an tiománaí seo le neart fóin NOKIA agus cinn eile, tríd an leabharlann gnokii
-Comment[gl]=Este controlador soporta moitos móbiles Nokia e outros mediante a libraría gnokii
-Comment[hi]=यह ड्राइवर बहुत से नोकिया तथा अन्य मोबाइल फोनों को ग्नोकी लाइब्रेरी के द्वारा समर्थित करता है
-Comment[hu]=Ez a meghajtó mobiltelefonok (elsősorban Nokia gyártmányúak) kezelését teszi lehetővé a Gnokii programkönyvtáron keresztül
-Comment[is]=Þessi rekill styður marga farsíma frá NOKIA og fleiri gegnum gnokii aðgerðasafnið
-Comment[it]=Questo driver supporta molti NOKIA e altri telefoni cellulari tramite la libreria gnokii
-Comment[ja]=このドライバは gnokii ライブラリを介して NOKIA および他社製の携帯電話を幅広くサポートします
-Comment[kk]=Бұл көп NOKIA мен басқа қалта құрылғыларды, gnokii жиыны арқылы, қамтитын драйвер
-Comment[km]=កម្មវិធី​បញ្ជា​នេះ​គាំទ្រ​ប្រភេទ​ទូរស័ព្ទ​ណូគៀ និង​ទូរស័ព្ទ​ផ្សេងៗ​ទៀត​ជាច្រើន​តាម​រយៈ​បណ្ណាល័យ gnokii
-Comment[lt]=Ši tvarkyklė palaiko daugelį NOKIA ir kitų telefonų pasinaudodama gnokii biblioteka
-Comment[ms]=Pemacu ini menyokong banyak NOKIA dan telefon bimbit lain melalui pustaka gnokii
-Comment[nb]=Denne driveren støtter mange NOKIA og andre mobiltelefoner via gnokii-biblioteket
-Comment[nds]=Disse Driever ünnerstütt vele Nokia- un anner Mobiltelefonen över de gnokii-Bibliotheek
-Comment[ne]=यो ड्राइभरले जिनोकी लाइब्रेरीबाट धेरै नोकिया र अन्य मोबाइल फोन समर्थन गर्छ
-Comment[nl]=Dit stuurprogramma biedt ondersteuning voor veel Nokia- en andere mobiele telefoons via de gnokii-bibliotheek
-Comment[nn]=Denne drivaren støttar mange NOKIA og andre mobiltelefonar via gnokii-biblioteket
-Comment[pl]=Ten sterownik obsługuje wiele telefonów komórkowychNokia i innych za pomocą biblioteki gnokii
-Comment[pt]=Este controlador suportar muitos NOKIAs, bem como outros telemóveis, com a biblioteca 'gnokii'
-Comment[pt_BR]=Este driver suporta muitos telefones móveis, NOKIA e outros, via biblioteca gnokii
-Comment[ru]=Этот драйвер поддерживает множество моделей мобильных телефонов Nokia и других производителей через библиотеку gnokii
-Comment[sk]=Tento ovládač podporuje veľa mobilov NOKIA a iných pomocou knižnice gnokii
-Comment[sl]=Ta gonilnik preko knjižnice gnokii podpira mnoge prenosne telefone NOKIA kot tudi druge
-Comment[sr]=Овај управљачки програм подржава многе Nokia-ине и друге мобилне телефоне преко библиотеке gnokii
-Comment[sr@Latn]=Ovaj upravljački program podržava mnoge Nokia-ine i druge mobilne telefone preko biblioteke gnokii
-Comment[sv]=Den här drivrutinen stöder många Nokia och andra mobiltelefoner via biblioteket gnokii
-Comment[ta]=இந்த இயக்கி பல NOKIA மற்றும் மற்ற செல்பேசிகளை gnokii நூலகம் வழியாக ஆதரிக்கிறது.
-Comment[tg]=Ин драйвер бисёри тамсилаҳои телефонҳои мобилии Nokia-ро ва дигар истеҳсолкунандаҳоро аз китобхонаи gnokii дастгирӣ мекунад
-Comment[tr]=Bu sürücü birçok NOKIA ve gnokii kütüphanesiyle diğer cep telefonlarını destekler
-Comment[uk]=Цей драйвер підтримує багато мобільних телефонів фірми NOKIA та інших мобільних телефонів через бібліотеку gnokii
-Comment[zh_CN]=此驱动程序通过 gnokii 库支持许多诺基亚和其它移动电话
-Comment[zh_TW]=此驅動程式支援許多 NOKIA 及其他手機,使用 gnokii 函式庫
+
Type=Service
X-TDE-ServiceTypes=kdedevice/mobiledevice
X-TDE-Library=libkmobile_gnokii
diff --git a/kmobile/devices/skeleton/CMakeLists.txt b/kmobile/devices/skeleton/CMakeLists.txt
index 005f25ff..2c206ccd 100644
--- a/kmobile/devices/skeleton/CMakeLists.txt
+++ b/kmobile/devices/skeleton/CMakeLists.txt
@@ -25,9 +25,11 @@ link_directories(
##### other data ################################
-install( FILES
- libkmobile_skeleton.desktop
- DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE libkmobile_skeleton.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR kmobile-desktops
+)
##### libkmobile_skeleton (module) ##############
diff --git a/kmobile/devices/skeleton/libkmobile_skeleton.desktop b/kmobile/devices/skeleton/libkmobile_skeleton.desktop
index 822216d4..27d8d037 100644
--- a/kmobile/devices/skeleton/libkmobile_skeleton.desktop
+++ b/kmobile/devices/skeleton/libkmobile_skeleton.desktop
@@ -1,106 +1,8 @@
[Desktop Entry]
Name=Skeleton Device
-Name[af]=Raamwerk Toestel
-Name[bg]=Организатори
-Name[br]=Patrom trobarzhell
-Name[bs]=Skeleton uređaj
-Name[ca]=Dispositiu Skeleton
-Name[cs]=Ukázkové zařízení
-Name[cy]=Dyfais Sgerbwd
-Name[da]=Skeleton-enhed
-Name[de]=Skeleton-Gerät
-Name[el]=Συσκευή Skeleton
-Name[eo]=Skelet-aparato
-Name[es]=Dispositivo Skeleton
-Name[et]=Mallseade
-Name[eu]=Skeleton dispositiboa
-Name[fa]=دستگاه Skeleton
-Name[fi]=Luurankolaite
-Name[fr]=Périphérique modèle
-Name[fy]=Foarbyldapparaat
-Name[ga]=Creatghléas
-Name[gl]=Dispositivo Skeleton
-Name[he]=התקן דמה
-Name[hi]=स्केलेटन उपकरण
-Name[hu]=Skeleton eszköz
-Name[is]=Grunntæki
-Name[it]=Dispositivo skeleton
-Name[ja]=スケルトンデバイス
-Name[kk]=Қаңқалы құрылғы
-Name[km]=ឧបករណ៍​គ្រោង
-Name[lt]=Įrenginio skeletas
-Name[ms]=Peranti Rangka
-Name[nb]=Ramme-enhet
-Name[nds]=Skeleton-Reedschap
-Name[ne]=ढाँचा यन्त्र
-Name[nl]=Voorbeeldapparaat
-Name[nn]=Skjeletteining
-Name[pl]=Urządzenie szkieletowe
-Name[pt]=Dispositivo de Esqueleto
-Name[pt_BR]=Dispositivo Skeleton
-Name[ro]=Dispozitiv schelet
-Name[ru]=Прототип устройства
-Name[sk]=Kostra zariadenia
-Name[sl]=Ogrodna naprava
-Name[sr]=Скелетни уређај
-Name[sr@Latn]=Skeletni uređaj
-Name[sv]=Obestämd mobilenhet
-Name[ta]= எலும்புக்கூடு சாதனம்
-Name[tg]=Прототипи дастгоҳ
-Name[tr]=Çatı Aygıt
-Name[uk]=Прототип пристрою
-Name[zh_CN]=万能设备
-Name[zh_TW]=空殼裝置
+
Comment=Mobile Skeleton Device
-Comment[af]=Mobiele raamwerk toestel
-Comment[bg]=Мобилни организатори (устройства)
-Comment[bs]=Mobilni skeleton uređaj
-Comment[ca]=Dispositiu mòbil Skeleton
-Comment[cs]=Ukázkové mobilní zařízení
-Comment[cy]=Dyfais Sgerbwd Symudol
-Comment[da]=Mobil skeleton-enhed
-Comment[de]=Mobiles Skeleton-Gerät
-Comment[el]=Φορητή συσκευή Skeleton
-Comment[eo]=Mobila skelet-aparato
-Comment[es]=Dispositivo móvil Skeleton
-Comment[et]=Mobiili mallseade
-Comment[eu]=Skeleton dispositibo mugikorra
-Comment[fa]=دستگاه Skeleton تلفن همراه
-Comment[fi]=Matkapuhelimen luurankolaite
-Comment[fr]=Modèle de périphérique mobile
-Comment[fy]=Mobyl foarbyldapparaat
-Comment[ga]=Creatghléas Móibíleach
-Comment[gl]=Dispositivo de Esqueleto Móbil
-Comment[he]=התקן נייד דמה
-Comment[hi]=मोबाइल स्केलेटन उपकरण
-Comment[hu]=Hordozható skeleton eszköz
-Comment[is]=Grunn farsími eða lófatölva
-Comment[it]=Dispositivo portatile skeleton
-Comment[ja]=モバイルスケルトンデバイス
-Comment[kk]=Қалта қаңқалы құрылғы
-Comment[km]=ឧបករណ៍​គ្រោង​ចល័ត
-Comment[lt]=Mobilaus įrenginio skeletas
-Comment[ms]=Peranti Rangka Mudah Alih
-Comment[nb]=Mobil ramme-enhet
-Comment[nds]=Mobil Skeleton-Reedschap
-Comment[ne]=मोबाइल ढाँचा यन्त्र
-Comment[nl]=Mobiel voorbeeldapparaat
-Comment[nn]=Mobil skjeletteining
-Comment[pl]=Szkieletowe urządzenie przenośne
-Comment[pt]=Um Dispositivo Móvel de Esqueleto
-Comment[pt_BR]=Dispositivo Skeleton Móvel
-Comment[ru]=Прототип мобильного устройства
-Comment[sk]=Kostra zariadenia mobilumobilného zaria
-Comment[sl]=Mobilna ogrodna naprava
-Comment[sr]=Мобилни скелетни уређај
-Comment[sr@Latn]=Mobilni skeletni uređaj
-Comment[sv]=Obestämd mobilenhet
-Comment[ta]=நடமாடும் எலும்பு சாதனம்
-Comment[tg]=Прототипи дастгоҳи мобилӣ
-Comment[tr]=Taşınabilir Çatı Aygıtı
-Comment[uk]=Прототип мобільного пристрою
-Comment[zh_CN]=移动万能设备
-Comment[zh_TW]=行動通訊空殼裝置
+
Type=Service
X-TDE-ServiceTypes=kdedevice/mobiledevice
X-TDE-Library=libkmobile_skeleton
diff --git a/kmobile/devices/skeleton/skeleton.h b/kmobile/devices/skeleton/skeleton.h
index abd1e8bc..b96af359 100644
--- a/kmobile/devices/skeleton/skeleton.h
+++ b/kmobile/devices/skeleton/skeleton.h
@@ -28,7 +28,7 @@
class KMobileSkeleton : public KMobileDevice
{
-Q_OBJECT
+TQ_OBJECT
public:
KMobileSkeleton( TQObject *obj=0, const char *name=0, const TQStringList &args=TQStringList() );
@@ -36,7 +36,7 @@ public:
// createObject needs to be reimplemented by every KMobileDevice driver
TQObject *createObject( TQObject *parent=0, const char *name=0,
- const char *classname=TQOBJECT_OBJECT_NAME_STRING, const TQStringList &args=TQStringList() );
+ const char *classname="TQObject", const TQStringList &args=TQStringList() );
// connect, disconnect and current status
bool connectDevice(TQWidget *parent);
diff --git a/kmobile/kmobile.cpp b/kmobile/kmobile.cpp
index 379a17cd..6febb6aa 100644
--- a/kmobile/kmobile.cpp
+++ b/kmobile/kmobile.cpp
@@ -74,8 +74,8 @@ KMobile::KMobile()
setAutoSaveSettings();
// allow the view to change the statusbar and caption
- connect(m_view, TQT_SIGNAL(signalChangeStatusbar(const TQString&)),
- this, TQT_SLOT(changeStatusbar(const TQString&)));
+ connect(m_view, TQ_SIGNAL(signalChangeStatusbar(const TQString&)),
+ this, TQ_SLOT(changeStatusbar(const TQString&)));
// restore all configured devices
restoreAll();
@@ -83,7 +83,7 @@ KMobile::KMobile()
// setup the system tray
m_systemTray = new SystemTray(this, "systemTray");
m_systemTray->show();
- connect(m_systemTray, TQT_SIGNAL(quitSelected()), this, TQT_SLOT(slotQuit()));
+ connect(m_systemTray, TQ_SIGNAL(quitSelected()), this, TQ_SLOT(slotQuit()));
}
KMobile::~KMobile()
@@ -93,29 +93,29 @@ KMobile::~KMobile()
void KMobile::setupActions()
{
- KStdAction::close(TQT_TQOBJECT(this), TQT_SLOT(dockApplication()), actionCollection());
- KStdAction::quit(TQT_TQOBJECT(kapp), TQT_SLOT(quit()), actionCollection());
+ KStdAction::close(this, TQ_SLOT(dockApplication()), actionCollection());
+ KStdAction::quit(kapp, TQ_SLOT(quit()), actionCollection());
- m_toolbarAction = KStdAction::showToolbar(TQT_TQOBJECT(this), TQT_SLOT(optionsShowToolbar()), actionCollection());
+ m_toolbarAction = KStdAction::showToolbar(this, TQ_SLOT(optionsShowToolbar()), actionCollection());
optionsShowToolbar();
- m_statusbarAction = KStdAction::showStatusbar(TQT_TQOBJECT(this), TQT_SLOT(optionsShowStatusbar()), actionCollection());
+ m_statusbarAction = KStdAction::showStatusbar(this, TQ_SLOT(optionsShowStatusbar()), actionCollection());
- KStdAction::keyBindings(TQT_TQOBJECT(this), TQT_SLOT(optionsConfigureKeys()), actionCollection());
- KStdAction::configureToolbars(TQT_TQOBJECT(this), TQT_SLOT(optionsConfigureToolbars()), actionCollection());
- KStdAction::preferences(TQT_TQOBJECT(this), TQT_SLOT(optionsPreferences()), actionCollection());
+ KStdAction::keyBindings(this, TQ_SLOT(optionsConfigureKeys()), actionCollection());
+ KStdAction::configureToolbars(this, TQ_SLOT(optionsConfigureToolbars()), actionCollection());
+ KStdAction::preferences(this, TQ_SLOT(optionsPreferences()), actionCollection());
new TDEAction(i18n("&Add Device..."), "folder-new", 0,
- TQT_TQOBJECT(this), TQT_SLOT(addDevice()), actionCollection(), "device_add");
+ this, TQ_SLOT(addDevice()), actionCollection(), "device_add");
new TDEAction( KGuiItem( i18n("&Remove Device"), "edittrash", i18n("Remove this device") ),
- "Delete", TQT_TQOBJECT(this), TQT_SLOT(removeDevice()), actionCollection(), "device_remove");
+ "Delete", this, TQ_SLOT(removeDevice()), actionCollection(), "device_remove");
new TDEAction(i18n("Re&name Device..."), 0, Key_F2,
- TQT_TQOBJECT(this), TQT_SLOT(renameDevice()), actionCollection(), "device_rename");
+ this, TQ_SLOT(renameDevice()), actionCollection(), "device_rename");
new TDEAction(i18n("&Configure Device..."), "configure", 0,
- TQT_TQOBJECT(this), TQT_SLOT(configDevice()), actionCollection(), "device_configure");
+ this, TQ_SLOT(configDevice()), actionCollection(), "device_configure");
createGUI();
- connect( kapp, TQT_SIGNAL(aboutToQuit()), TQT_TQOBJECT(this), TQT_SLOT(saveAll()) );
+ connect( kapp, TQ_SIGNAL(aboutToQuit()), this, TQ_SLOT(saveAll()) );
}
@@ -261,11 +261,11 @@ void KMobile::addDevice()
dialog->helpText->setText( i18n("Please select the category to which your new device belongs:") );
dialog->addButton->setText( i18n("&Scan for New Devices...") );
dialog->addButton->setDisabled(true);
- dialog->iconView->connect( dialog->iconView, TQT_SIGNAL(doubleClicked(TQIconViewItem*)),
- dialog, TQT_SLOT(accept()) );
+ dialog->iconView->connect( dialog->iconView, TQ_SIGNAL(doubleClicked(TQIconViewItem*)),
+ dialog, TQ_SLOT(accept()) );
dialog->selectButton->setText( i18n("&Add") );
- dialog->selectButton->connect( dialog->selectButton, TQT_SIGNAL(clicked()), dialog, TQT_SLOT(accept()) );
- dialog->cancelButton->connect( dialog->cancelButton, TQT_SIGNAL(clicked()), dialog, TQT_SLOT(reject()) );
+ dialog->selectButton->connect( dialog->selectButton, TQ_SIGNAL(clicked()), dialog, TQ_SLOT(accept()) );
+ dialog->cancelButton->connect( dialog->cancelButton, TQ_SIGNAL(clicked()), dialog, TQ_SLOT(reject()) );
TDETrader::OfferList list = KMobileItem::getMobileDevicesList();
TDETrader::OfferListIterator it;
@@ -344,11 +344,11 @@ KMobileDevice * KMobileFactory::chooseDeviceDialog( TQWidget *parent,
if (!dialog)
return 0L;
- dialog->addButton->connect( dialog->addButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotAddDevice()) );
- dialog->iconView->connect( dialog->iconView, TQT_SIGNAL(doubleClicked(TQIconViewItem*)),
- dialog, TQT_SLOT(accept()) );
- dialog->selectButton->connect( dialog->selectButton, TQT_SIGNAL(clicked()), dialog, TQT_SLOT(accept()) );
- dialog->cancelButton->connect( dialog->cancelButton, TQT_SIGNAL(clicked()), dialog, TQT_SLOT(reject()) );
+ dialog->addButton->connect( dialog->addButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotAddDevice()) );
+ dialog->iconView->connect( dialog->iconView, TQ_SIGNAL(doubleClicked(TQIconViewItem*)),
+ dialog, TQ_SLOT(accept()) );
+ dialog->selectButton->connect( dialog->selectButton, TQ_SIGNAL(clicked()), dialog, TQ_SLOT(accept()) );
+ dialog->cancelButton->connect( dialog->cancelButton, TQ_SIGNAL(clicked()), dialog, TQ_SLOT(reject()) );
for (int i=0; i<countDevices(); i++) {
KService::Ptr ptr;
diff --git a/kmobile/kmobile.desktop b/kmobile/kmobile.desktop
index ed66e614..c2169e08 100644
--- a/kmobile/kmobile.desktop
+++ b/kmobile/kmobile.desktop
@@ -6,124 +6,10 @@ X-DocPath=kmobile/index.html
Terminal=false
Name=KMobile
-Name[cy]=KSymudol
-Name[hi]=के-मोबाइल
-Name[ne]=केडीई मोबाइल
-Name[nn]=KMobil
-Name[sv]=Kmobile
-Name[ta]=கேநடமாடும் தொலைபேசி
-Name[zh_TW]=KMobile 行動裝置
GenericName=Manage Mobile Devices
-GenericName[af]=Bestuur draagbare toestelle
-GenericName[ar]=تسيير الأجهزة النقّالة
-GenericName[be]=Кіраванне мабільнымі прыладамі
-GenericName[bg]=Мобилни устройства
-GenericName[br]=Merañ an trobarhelloù lem-laka
-GenericName[bs]=Upravljajte mobilnim uređajima
-GenericName[ca]=Gestor per a dispositius mòbils
-GenericName[cs]=Spravovat mobilní zařízení
-GenericName[cy]=Rheoli Dyfeisiau Symudol
-GenericName[da]=Håndtér mobil-enheder
-GenericName[de]=Mobiltelefone verwalten
-GenericName[el]=Διαχείριση φορητών συσκευών
-GenericName[eo]=Administri mobilajn aparatojn
-GenericName[es]=Gestiona dispositivos móviles
-GenericName[et]=Mobiilihaldur
-GenericName[eu]=Dispositibo mugikorrak kudeatu
-GenericName[fa]=مدیریت دستگاههای تلفن همراه
-GenericName[fi]=Hallitse matkapuhelinlaitteita
-GenericName[fr]=Gérer les périphériques mobiles
-GenericName[fy]=Mobile apparaten beheare
-GenericName[ga]=Bainistigh Gléasanna Móibíleacha
-GenericName[gl]=Xestionar Dispositivos Móbiles
-GenericName[he]=ניהול של התקנים ניידים
-GenericName[hi]=मोबाइल उपकरण प्रबंधन करें
-GenericName[hu]=Mobilkezelő
-GenericName[is]=Sýsla með lófatölvur og farsíma
-GenericName[it]=Gestisce dispositivi portatili
-GenericName[ja]=モバイル機器の管理
-GenericName[kk]=Қалта құрылғыларды басқару
-GenericName[km]=គ្រប់គ្រង​ឧបករណ៍​ចល័ត
-GenericName[lt]=Mobiliųjų įrenginių tvarkymas
-GenericName[mk]=Менаџирање мобилни уреди
-GenericName[ms]=Menguruskan Peranti Mudah Alih
-GenericName[nb]=Håndtere mobile enheter
-GenericName[nds]=Mobilreedschappen plegen
-GenericName[ne]=मोबाइल यन्त्र व्यवस्थापन गर्नुहोस्
-GenericName[nl]=Mobiele apparaten beheren
-GenericName[nn]=Handtera mobileiningar
-GenericName[pl]=Zarządzanie urządzeniami przenośnymi
-GenericName[pt]=Gestão dos Dispositivos Móveis
-GenericName[pt_BR]=Gerenciar Dispositivos Móveis
-GenericName[ro]=Manager dispozitive mobile
-GenericName[ru]=Управление мобильными устройствами
-GenericName[se]=Gieđahala mobilovttadagaid
-GenericName[sk]=Správa prenosných zariadení
-GenericName[sl]=Upravljaj mobilne naprave
-GenericName[sr]=Управљање мобилним уређајима
-GenericName[sr@Latn]=Upravljanje mobilnim uređajima
-GenericName[sv]=Hantera mobilenheter
-GenericName[ta]=நடமாடும் சாதனத்தை நிர்வகி
-GenericName[tg]=Идоракунӣ бо дастгоҳи мобилӣ
-GenericName[tr]=Taşınabilir Aygıtlar Yöneticisi
-GenericName[uk]=Робота з мобільними пристроями
-GenericName[zh_CN]=管理移动设备
-GenericName[zh_TW]=管理行動裝置
Comment=A TDE Mobile Devices Manager
-Comment[af]='n TDE draagbare toestel bestuurder
-Comment[be]=Кіраванне мабільнымі прыладамі TDE
-Comment[bg]=Управление на мобилни устройства
-Comment[bs]=TDE upravitelj mobilnim uređajima
-Comment[ca]=Un gestor de TDE per a dispositius mòbils
-Comment[cs]=Správce mobilních zařízení TDE
-Comment[cy]=Rheolydd Dyfeisiau Symudol TDE
-Comment[da]=En TDE-håndtering af mobil-enheder
-Comment[de]=Verwaltung für mobile Geräte
-Comment[el]=Ένας διαχειριστής φορητών συσκευών του TDE
-Comment[eo]=TDE-mobilaparat-administrilo
-Comment[es]=A gestor de dispositivos móviles para TDE
-Comment[et]=TDE mobiilihaldur
-Comment[eu]=TDE-ren dispositibo mugikorren kudeatzailea
-Comment[fa]=مدیر دستگاههای تلفن همراه TDE
-Comment[fi]=TDE:n matkapuhelinlaitteiden hallinta
-Comment[fr]=Un gestionnaire de périphériques mobiles pour TDE
-Comment[fy]=Behear fan mobile apparaten yn TDE
-Comment[ga]=Bainisteoir Gléasanna Móibíleacha TDE
-Comment[gl]=O Xestor de Móbiles de TDE
-Comment[he]=מנהל התקנים ניידים עבור TDE
-Comment[hi]=एक केडीई मोबाइल उपकरण प्रबंधक
-Comment[hu]=TDE-alapú mobiltelefon-kezelő
-Comment[is]=TDE stjórnforrit fyrir lófatölvur og farsíma
-Comment[it]=Un gestore di dispositivi portatili di TDE
-Comment[ja]=TDE モバイル機器マネージャ
-Comment[kk]=TDE-нің қалта құрылғылар менеджері
-Comment[km]=កម្មវិធី​គ្រប់គ្រង​ឧបករណ៍​ចល័ត TDE
-Comment[lt]=TDE mobiliųjų įrenginių tvarkyklė
-Comment[mk]=Менаџер на мобилни уреди во TDE
-Comment[ms]=Pengurus Peranti Mudah Alih TDE
-Comment[nb]=En TDE-håndterer for mobile enheter
-Comment[nds]=En Pleger för Mobilreedschappen
-Comment[ne]=केडीई मोबाइल यन्त्र प्रबन्धक
-Comment[nl]=Beheer van mobiele apparaten in TDE
-Comment[nn]=Ein einingshandterar for mobiltelefon i TDE
-Comment[pl]=Program obsługujący urządzenia przenośne dla TDE
-Comment[pt]=Um Gestor de Dispositivos Móveis do TDE
-Comment[pt_BR]=Um Gerenciador de Dispositivos Móveis para o TDE
-Comment[ro]=Un manager TDE pentru dispozitive mobile
-Comment[ru]=Менеджер мобильных устройств TDE
-Comment[sk]=TDE správca prenosných zariadení
-Comment[sl]=Upravitelj prenosnih naprav v TDE
-Comment[sr]=TDE-ов менаџер мобилних уређаја
-Comment[sr@Latn]=TDE-ov menadžer mobilnih uređaja
-Comment[sv]=TDE:s hantering av mobilenheter
-Comment[ta]=ஒரு கேடிஇ நடமாடும் சாதனத்தின் மேலாளர்
-Comment[tg]=Мудири дастгоҳи мобилии TDE
-Comment[tr]=TDE Taşınabilir Aygıtlar Yöneticisi
-Comment[uk]=Менеджер мобільних пристроїв TDE
-Comment[zh_CN]=TDE 移动设备管理器
-Comment[zh_TW]=TDE 行動裝置管理員
X-TDE-StartupNotify=false
X-DCOP-ServiceType=Unique
diff --git a/kmobile/kmobile.h b/kmobile/kmobile.h
index f2e110ac..b3223232 100644
--- a/kmobile/kmobile.h
+++ b/kmobile/kmobile.h
@@ -22,7 +22,7 @@ class SystemTray;
*/
class KMobile : public TDEMainWindow
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/kmobile/kmobileclient.h b/kmobile/kmobileclient.h
index 72bf6605..bdb5b19a 100644
--- a/kmobile/kmobileclient.h
+++ b/kmobile/kmobileclient.h
@@ -6,11 +6,11 @@
#define _KMOBILECLIENT_H_
#include <dcopclient.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KDE_EXPORT KMobileClient : public DCOPClient
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMobileClient();
diff --git a/kmobile/kmobiledevice.h b/kmobile/kmobiledevice.h
index 78fc50e8..6647ab73 100644
--- a/kmobile/kmobiledevice.h
+++ b/kmobile/kmobiledevice.h
@@ -24,7 +24,7 @@
#include <tqstringlist.h>
#include <tqmutex.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <klibloader.h>
#include <tdeabc/addressee.h>
@@ -64,7 +64,7 @@ class TDEConfig;
class KDE_EXPORT KMobileDevice : public KLibFactory
{
- Q_OBJECT
+ TQ_OBJECT
friend class KMobileView;
diff --git a/kmobile/kmobileitem.h b/kmobile/kmobileitem.h
index 02ee75cb..d4ae627d 100644
--- a/kmobile/kmobileitem.h
+++ b/kmobile/kmobileitem.h
@@ -12,7 +12,7 @@
class KMobileItem : public TQObject, public TQIconViewItem
{
- Q_OBJECT
+ TQ_OBJECT
friend class KMobileView;
public:
diff --git a/kmobile/kmobileview.cpp b/kmobile/kmobileview.cpp
index 87f691d9..49d69105 100644
--- a/kmobile/kmobileview.cpp
+++ b/kmobile/kmobileview.cpp
@@ -39,8 +39,8 @@ KMobileView::KMobileView(TQWidget *parent, TDEConfig *_config)
setSelectionMode(TQIconView::Single);
setResizeMode(TQIconView::Adjust);
setAutoArrange(true);
- connect(this, TQT_SIGNAL(doubleClicked(TQIconViewItem *)),
- TQT_SLOT(slotDoubleClicked(TQIconViewItem *)));
+ connect(this, TQ_SIGNAL(doubleClicked(TQIconViewItem *)),
+ TQ_SLOT(slotDoubleClicked(TQIconViewItem *)));
}
KMobileView::~KMobileView()
diff --git a/kmobile/kmobileview.h b/kmobile/kmobileview.h
index 166b8eb9..d8862b85 100644
--- a/kmobile/kmobileview.h
+++ b/kmobile/kmobileview.h
@@ -9,7 +9,7 @@
#include "kmobileiface.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TDEConfig;
class KMobileItem;
@@ -22,7 +22,7 @@ class KMobileItem;
*/
class KDE_EXPORT KMobileView : public TQIconView, public kmobileIface
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMobileView(TQWidget *parent, TDEConfig *_config);
diff --git a/kmobile/libkmobile.desktop b/kmobile/libkmobile.desktop
index 1f135851..d2f2c0bd 100644
--- a/kmobile/libkmobile.desktop
+++ b/kmobile/libkmobile.desktop
@@ -1,50 +1,5 @@
[Desktop Entry]
Type=ServiceType
X-TDE-ServiceType=kdedevice/mobiledevice
+
Name=TDE Mobile Device Lowlevel Hardware Driver
-Name[af]=TDE draagbare toestel laevlak hardeware toestel
-Name[bs]=TDE hardverski drajver niskog nivoa za mobilne uređaje
-Name[ca]=Manegador TDE de dispositius de maquinari mòbil de baix nivell
-Name[cs]=TDE nízkoúrovňový ovladač mobilních zářízení
-Name[cy]=Gyrrydd Caledwedd Lefel Isel TDE ar gyfer Dyfeisiau Symudol
-Name[da]=TDE Mobil-enhed Lavt niveau hardware-driver
-Name[de]=Lowlevel-Treiber für mobile Geräte
-Name[el]=Οδηγός χαμηλού επιπέδου φορητής συσκευής του TDE
-Name[es]=Manejador de dispositivos hardware móviles de bajo nivel para TDE
-Name[et]=TDE mobiilide riistvara süvataseme draiver
-Name[eu]=TDE-ren dispositibo mugikorren behe-mailako hardware kontrolatzailea
-Name[fa]=گردانندۀ سخت‌افزاری سطح پایین دستگاه تلفن همراه TDE
-Name[fi]=TDE:n matkapuhelimen matalan tason laiteajuri
-Name[fr]=Pilote matériel de bas niveau des périphériques mobiles pour TDE
-Name[fy]=Hardware-stjoerprogramma foar mobile apparaten
-Name[ga]=Tiománaí crua-earraí íseal-leibhéil do ghléasanna móibíleacha TDE
-Name[gl]=Controlador de Hardware de Baixo Nivel dun Dispositivo Móbil de TDE
-Name[hi]=केडीई मोबाइल उपकरण लो-लेवल हार्डवेयर ड्राइवर
-Name[hu]=Alacsony szintű TDE-s eszközmeghajtó mobiltelefonok kezeléséhez
-Name[is]=Hrár TDE vélbúnaðarrekill fyrir farsíma og lófatölvur
-Name[it]=TDE driver hardware di basso livello per dispositivi portatili
-Name[ja]=TDE モバイル機器低レベルハードウェアドライバ
-Name[kk]=TDE-нің қалта құрылғы жабдықтың төмен деңгейлі драйвері
-Name[km]=កម្មវិធី​បញ្ជា​ផ្នែករឹង​កម្រិត​ទាប​របស់​ឧបករណ៍​ចល័ត TDE
-Name[lt]=TDE mobiliųjų įrenginių žemo lygmens aparatinės įrangos tvarkyklė
-Name[ms]=Pemacu Perkakasan Tahap Rendah Peranti Mudah Alih TDE
-Name[nb]=TDE lavnivå maskinvaredriver for mobile enheter
-Name[nds]=Sietstoop-Driever för Mobilreedschappen
-Name[ne]=केडीई मोबाइल यन्त्रको न्यूनस्तर हार्डवेयर ड्राइभर
-Name[nl]=Hardware-stuurprogramma voor mobiele apparaten
-Name[nn]=Lågnivå maskinvaredrivar for mobileiningar i TDE
-Name[pl]=Niskopoziomowy sterownik sprzętu urządzenia przenośnego dla TDE
-Name[pt]=Controlador de Baixo-Nível de Dispositivos Móveis do TDE
-Name[pt_BR]=Driver de Hardware de Baixo Nível de Dispositivos Móveis do TDE
-Name[ru]=Низкоуровневый драйвер работы с мобильными устройствами в TDE
-Name[sk]=Nízkoúrovňový ovládač prenosných zariadení pre TDE
-Name[sl]=Nizkonivojski gonilnik TDE za stojno opremo prenosnih naprav
-Name[sr]=TDE-ов управљачки програм ниског нивоа за мобилне уређаје
-Name[sr@Latn]=TDE-ov upravljački program niskog nivoa za mobilne uređaje
-Name[sv]=TDE:s lågnivådrivrutin för mobilenheter
-Name[ta]=KAB நடமாடும் சாதனம் கீழ்நிலை வன்பொருள் இயக்கி
-Name[tg]=Драйвери пастдараҷавии кор бо дастгоҳи мобилӣ дар TDE
-Name[tr]=TDE Taşınabilir Aygıt Düşük Seviye Donanım Sürücüsü
-Name[uk]=Мобільний пристрій TDE драйвер працюючий з пристроєм напряму
-Name[zh_CN]=TDE 移动设备低级硬件驱动程序
-Name[zh_TW]=TDE 行動裝置低階硬體驅動程式
diff --git a/kmobile/pref.h b/kmobile/pref.h
index 81430335..787cc581 100644
--- a/kmobile/pref.h
+++ b/kmobile/pref.h
@@ -13,7 +13,7 @@ class KMobilePrefPageTwo;
class KMobilePreferences : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMobilePreferences();
@@ -25,7 +25,7 @@ private:
class KMobilePrefPageOne : public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMobilePrefPageOne(TQWidget *parent = 0);
@@ -33,7 +33,7 @@ public:
class KMobilePrefPageTwo : public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMobilePrefPageTwo(TQWidget *parent = 0);
diff --git a/kmobile/systemtray.cpp b/kmobile/systemtray.cpp
index e5324e9e..020aec1c 100644
--- a/kmobile/systemtray.cpp
+++ b/kmobile/systemtray.cpp
@@ -60,7 +60,7 @@ SystemTray::~SystemTray()
void SystemTray::contextMenuAboutToShow(TDEPopupMenu *menu)
{
- KMobile *main = static_cast<KMobile *>(TQT_TQWIDGET(parent()));
+ KMobile *main = static_cast<KMobile *>(parent());
const int pos = 3;
while (menu->idAt(pos)>=SYSTEMTRAY_STARTID &&
@@ -74,9 +74,9 @@ void SystemTray::contextMenuAboutToShow(TDEPopupMenu *menu)
TQString iconName = main->mainView()->iconFileName(devName);
TQPixmap pm = TDEGlobal::instance()->iconLoader()->loadIcon(iconName, TDEIcon::Small);
menu->insertItem(pm, devName, SYSTEMTRAY_STARTID+no, 3+no);
- menu->connectItem(SYSTEMTRAY_STARTID+no, this, TQT_SLOT(menuItemSelected()));
+ menu->connectItem(SYSTEMTRAY_STARTID+no, this, TQ_SLOT(menuItemSelected()));
}
- connect(menu, TQT_SIGNAL(activated(int)), this, TQT_SLOT(menuItemActivated(int)));
+ connect(menu, TQ_SIGNAL(activated(int)), this, TQ_SLOT(menuItemActivated(int)));
}
void SystemTray::menuItemSelected()
@@ -84,7 +84,7 @@ void SystemTray::menuItemSelected()
if (m_menuID<SYSTEMTRAY_STARTID || m_menuID>SYSTEMTRAY_STARTID+1000)
return;
TQString devName = contextMenu()->text(m_menuID);
- KMobile *main = static_cast<KMobile *>(TQT_TQWIDGET(parent()));
+ KMobile *main = static_cast<KMobile *>(parent());
main->mainView()->startKonqueror(devName);
}
@@ -102,5 +102,3 @@ void SystemTray::setToolTip(const TQString &tip)
}
#include "systemtray.moc"
-
-// vim: ts=8
diff --git a/kmobile/systemtray.h b/kmobile/systemtray.h
index a64cabad..88219269 100644
--- a/kmobile/systemtray.h
+++ b/kmobile/systemtray.h
@@ -27,7 +27,7 @@ class TDEAction;
class SystemTray : public KSystemTray
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kmobile/tdeioslave/mimetypes/mobile_addressbook.desktop b/kmobile/tdeioslave/mimetypes/mobile_addressbook.desktop
index cf56e024..186c7dde 100644
--- a/kmobile/tdeioslave/mimetypes/mobile_addressbook.desktop
+++ b/kmobile/tdeioslave/mimetypes/mobile_addressbook.desktop
@@ -1,57 +1,6 @@
[Desktop Entry]
Comment=Contacts in Mobile Device
-Comment[af]=Kontakte op die draagbare toestel
-Comment[ar]=المراسلون في الجهاز النقّال
-Comment[be]=Кантакты ў мабільнай прыладзе
-Comment[bg]=Контакти в мобилни устройства
-Comment[bs]=Kontakti u mobilnom uređaju
-Comment[ca]=Contactes en el dispositiu mòbil
-Comment[cs]=Kontakty na mobilním zařízení
-Comment[cy]=Cysylltau yn y Dyfais Symudol
-Comment[da]=Kontakter i mobil-enhed
-Comment[de]=Kontakte im Mobilgerät
-Comment[el]=Επαφές στη φορητή συσκευή
-Comment[es]=Contactos del dispositivo móvil
-Comment[et]=Mobiili kontaktid
-Comment[eu]=Kontaktuak dispositibo mugikorrean
-Comment[fa]=تماسها در دستگاه تلفن همراه
-Comment[fi]=Mobiililaitteen yhteystiedot
-Comment[fr]=Contacts dans le périphérique mobile
-Comment[fy]=Kontaktpersoanen yn mobyl apparaat
-Comment[ga]=Teagmhálacha i nGléas Móibíleach
-Comment[gl]=Contactos no dispositivo móbil
-Comment[he]=אנשי קשר בהתקן הנייד
-Comment[hi]=मोबाइल उपकरण में सम्पर्क
-Comment[hu]=Címbejegyzések a mobiltelefonon
-Comment[is]=Tengiliðir í farsíma eða lófatölvu
-Comment[it]=Contatti nel dispositivo portatile
-Comment[ja]=モバイル機器内の連絡先
-Comment[kk]=Қалта құрылғыдағы контакттар
-Comment[km]=ទំនាក់​ទំនង​ក្នុង​ឧបករណ៍​ចល័ត
-Comment[lt]=Kontaktai mobiliajame įrenginyje
-Comment[mk]=Контакти од мобилен уред
-Comment[ms]=Orang hubungan di dalam Peranti Mudah Alih
-Comment[nb]=Kontaktliste i mobil enhet
-Comment[nds]=Kontakten op de Mobilreedschap
-Comment[ne]=मोबाइल यन्त्रमा सम्पर्क गर्छ
-Comment[nl]=Contactpersonen in mobiel apparaat
-Comment[nn]=Kontaktar i mobileiningar
-Comment[pl]=Wizytówki w urządzeniu przenośnym
-Comment[pt]=Contactos no Dispositivo Móvel
-Comment[pt_BR]=Contatos em Dispositivo Móvel
-Comment[ro]=Contacte în dispozitiv mobil
-Comment[ru]=Контакты на мобильном устройстве
-Comment[sk]=Kontakty v prenosnom zariadení
-Comment[sl]=Stiki v prenosni napravi
-Comment[sr]=Контакти у мобилном уређају
-Comment[sr@Latn]=Kontakti u mobilnom uređaju
-Comment[sv]=Kontakter i mobilenhet
-Comment[ta]=நடமாடும் சாதனத்தின் தொடர்ப்புகள்
-Comment[tg]=Алоқот дар дастгоҳи мобилӣ
-Comment[tr]=Taşınabilir Aygıt Bağlantıları
-Comment[uk]=Контакти у мобільному пристрої
-Comment[zh_CN]=移动设备中的联系人
-Comment[zh_TW]=行動裝置中的聯絡人
+
Icon=kaddressbook
Type=MimeType
MimeType=inode/addressbook
diff --git a/kmobile/tdeioslave/mimetypes/mobile_calendar.desktop b/kmobile/tdeioslave/mimetypes/mobile_calendar.desktop
index 09d133ab..362c3358 100644
--- a/kmobile/tdeioslave/mimetypes/mobile_calendar.desktop
+++ b/kmobile/tdeioslave/mimetypes/mobile_calendar.desktop
@@ -1,57 +1,6 @@
[Desktop Entry]
Comment=Calendar in Mobile Device
-Comment[af]=Kalender op die draagbare toestel
-Comment[be]=Каляндар у мабільнай прыладзе
-Comment[bg]=Календар в мобилни устройства
-Comment[bs]=Kalendar u mobilnom uređaju
-Comment[ca]=Calendari en el dispositiu mòbil
-Comment[cs]=Kalendář na mobilním zařízení
-Comment[cy]=Calendr yn y Dyfais Symudol
-Comment[da]=Kalender i mobil-enhed
-Comment[de]=Kalender für Mobiltelefon
-Comment[el]=Ημερολόγιο στη φορητή συσκευή
-Comment[eo]=Kalendaro en mobila aparato
-Comment[es]=Calendario del dispositivo móvil
-Comment[et]=Mobiili kalender
-Comment[eu]=Egutegia dispositibo mugikorrean
-Comment[fa]=تقویم در دستگاه تلفن همراه
-Comment[fi]=Mobiililaitteen kalenteri
-Comment[fr]=Calendrier dans un périphérique mobile
-Comment[fy]=Aginda yn mobyl apparaat
-Comment[ga]=Féilire i nGléas Móibíleach
-Comment[gl]=Calendario no Dispositivo Móbil
-Comment[he]=לוח שנה בהתקן הנייד
-Comment[hi]=मोबाइल उपकरण में कैलेन्डर
-Comment[hu]=Naptár a mobiltelefonon
-Comment[is]=Dagatal í farsíma eða lófatölvu
-Comment[it]=Calendari nel dispositivo portatile
-Comment[ja]=モバイル機器内のカレンダー
-Comment[kk]=Қалта құрылғыдағы күнтізбе
-Comment[km]=ប្រតិទិន​ក្នុង​ឧបករណ៍​ចល័ត
-Comment[lt]=Kalendorius mobiliajame įrenginyje
-Comment[mk]=Календар од мобилен уред
-Comment[ms]=Kalendar dalam Peranti Mudah Alih
-Comment[nb]=Kalender i mobil enhet
-Comment[nds]=Kalenner op Mobilreedschap
-Comment[ne]=मोबाइल यन्त्रको क्यालेन्डर
-Comment[nl]=Agenda in mobiel apparaat
-Comment[nn]=Kalender i mobileiningar
-Comment[pl]=Kalendarz w urządzeniu przenośnym
-Comment[pt]=Calendário no Dispositivo Móvel
-Comment[pt_BR]=Calendário em Dispositivo Móvel
-Comment[ro]=Calendar în dispozitiv mobil
-Comment[ru]=Календарь на мобильном устройстве
-Comment[sk]=Kalendár v prenosnom zariadení
-Comment[sl]=Koledar v prenosni napravi
-Comment[sr]=Календар у мобилном уређају
-Comment[sr@Latn]=Kalendar u mobilnom uređaju
-Comment[sv]=Kalender i mobilenhet
-Comment[ta]=நடமாடும் சாதனத்தில் உள்ள நாள்காட்டி
-Comment[tg]=Тақвим дар дастгоҳи мобилӣ
-Comment[tr]=Cep Telefonu Takvimi
-Comment[uk]=Календар у мобільному пристрої
-Comment[zh_CN]=移动设备中的日历
-Comment[zh_TW]=行動裝置中的行事曆
+
Icon=korganizer
Type=MimeType
MimeType=inode/calendar
diff --git a/kmobile/tdeioslave/mimetypes/mobile_device.desktop b/kmobile/tdeioslave/mimetypes/mobile_device.desktop
index 2f59d2de..5c962a57 100644
--- a/kmobile/tdeioslave/mimetypes/mobile_device.desktop
+++ b/kmobile/tdeioslave/mimetypes/mobile_device.desktop
@@ -1,61 +1,6 @@
[Desktop Entry]
Comment=Mobile Device
-Comment[af]=Draagbare Toestel
-Comment[ar]=الجهاز النقّال
-Comment[be]=Мабільная прылада
-Comment[bg]=Мобилни устройства
-Comment[br]=Trobarzhell lem-laka
-Comment[bs]=Mobilni uređaj
-Comment[ca]=Dispositiu mòbil
-Comment[cs]=Mobilní zařízení
-Comment[cy]=Dyfais Symudol
-Comment[da]=Mobil-enhed
-Comment[de]=Mobilgerät
-Comment[el]=Φορητή συσκευή
-Comment[eo]=Mobila aparato
-Comment[es]=Dispositivo móvil
-Comment[et]=Mobiil
-Comment[eu]=Dispositibo mugikorra
-Comment[fa]=دستگاه تلفن همراه
-Comment[fi]=Mobiililaite
-Comment[fr]=Périphérique mobile
-Comment[fy]=Mobyl apparaat
-Comment[ga]=Gléas Móibíleach
-Comment[gl]=Dispositivo Móbil
-Comment[he]=התקן נייד
-Comment[hi]=मोबाइल उपकरण
-Comment[hu]=Mobil eszköz
-Comment[is]=Farsími eða lófatölva
-Comment[it]=Dispositivo portatile
-Comment[ja]=モバイル機器
-Comment[kk]=Қалта құрылғысы
-Comment[km]=ឧបករណ៍​ចល័ត
-Comment[lt]=Mobilusis įrenginys
-Comment[mk]=Мобилен уред
-Comment[ms]=Peranti Mudah Alih
-Comment[nb]=Mobil enhet
-Comment[nds]=Mobilreedschap
-Comment[ne]=मोबाइल यन्त्र
-Comment[nl]=Mobiel apparaat
-Comment[nn]=Mobileining
-Comment[pa]=ਮੋਬਾਇਲ ਜੰਤਰ
-Comment[pl]=Urządzenie przenośne
-Comment[pt]=Dispositivo Móvel
-Comment[pt_BR]=Dispositivo Móvel
-Comment[ro]=Dispozitiv mobil
-Comment[ru]=Мобильное устройство
-Comment[se]=Mobilovttadat
-Comment[sk]=Prenosné zariadenie
-Comment[sl]=Mobilna naprava
-Comment[sr]=Мобилни уређај
-Comment[sr@Latn]=Mobilni uređaj
-Comment[sv]=Mobilenhet
-Comment[ta]= நடமாடும் சாதனம்
-Comment[tg]=Дастгоҳи мобилӣ
-Comment[tr]=Taşınabilir Aygıt
-Comment[uk]=Мобільний пристрій
-Comment[zh_CN]=移动设备
-Comment[zh_TW]=行動裝置
+
Icon=kmobile
Type=MimeType
MimeType=kdedevice/mobiledevice
diff --git a/kmobile/tdeioslave/mimetypes/mobile_notes.desktop b/kmobile/tdeioslave/mimetypes/mobile_notes.desktop
index 7878c13d..e098c39d 100644
--- a/kmobile/tdeioslave/mimetypes/mobile_notes.desktop
+++ b/kmobile/tdeioslave/mimetypes/mobile_notes.desktop
@@ -1,55 +1,6 @@
[Desktop Entry]
Comment=Notes in Mobile Device
-Comment[af]=Notas op die draagbare toestel
-Comment[be]=Нататкі ў мабільнай прыладзе
-Comment[bg]=Бележки в мобилни устройства
-Comment[bs]=Bilješke u mobilnom uređaju
-Comment[ca]=Notes en el dispositiu mòbil
-Comment[cs]=Poznámky na mobilním zařízení
-Comment[cy]=Nodiadau yn y Dyfais Symudol
-Comment[da]=Noter i mobil-enhed
-Comment[de]=Notizen im Mobilgerät
-Comment[el]=Σημειώσεις στη φορητή συσκευή
-Comment[es]=Notas del dispositivo móvil
-Comment[et]=Mobiili märkmed (Notes)
-Comment[eu]=Oharrak dispositibo mugikorrean
-Comment[fa]=یادداشتها در دستگاه تلفن همراه
-Comment[fi]=Mobiililaitteen muistio
-Comment[fr]=Notes dans un périphérique mobile
-Comment[fy]=Notysjes yn mobyl apparaat
-Comment[ga]=Nótaí i nGléas Móibíleach
-Comment[gl]=Notas no Dispositivo Móbil
-Comment[he]=פתקים בהתקן הנייד
-Comment[hi]=मोबाइल उपकरण में टीप
-Comment[hu]=Feljegyzések a mobiltelefonon
-Comment[is]=Áminningar í farsíma eða lófatölvu
-Comment[it]=Note nel dispositivo portatile
-Comment[ja]=モバイル機器内のメモ
-Comment[kk]=Қалта құрылғыдағы жазбалар
-Comment[km]=ចំណាំ​ក្នុង​ឧបករណ៍​ចល័ត
-Comment[lt]=Užrašai mobiliajame įrenginyje
-Comment[mk]=Белешки од мобилен уред
-Comment[ms]=Nota dalam Peranti Mudah Alih
-Comment[nb]=Notater i mobil enhet
-Comment[nds]=Notizen op Mobilreedschap
-Comment[ne]=मोबाइल यन्त्र भित्रका टिपोट
-Comment[nl]=Notities in mobiel apparaat
-Comment[nn]=Notat i mobileiningar
-Comment[pl]=Notatki w urządzeniu przenośnym
-Comment[pt]=Notas no Dispositivo Móvel
-Comment[pt_BR]=Notas em Dispositivo Móvel
-Comment[ru]=Заметки на мобильном устройстве
-Comment[sk]=Poznámky v prenosnom zariadení
-Comment[sl]=Notice v prenosni napravi
-Comment[sr]=Белешке у мобилном уређају
-Comment[sr@Latn]=Beleške u mobilnom uređaju
-Comment[sv]=Anteckning i mobilenhet
-Comment[ta]=நடமாடும் சாதனத்தின் குறிப்புகள்
-Comment[tg]=Хабарҳо дар дастгоҳи мобилӣ
-Comment[tr]=Cep Telefonu Notları
-Comment[uk]=Нотатки у мобільному пристрої
-Comment[zh_CN]=移动电话中的便笺
-Comment[zh_TW]=行動裝置中的備忘錄
+
Icon=knotes
Type=MimeType
MimeType=inode/notes
diff --git a/kmobile/tdeioslave/tdeio_mobile.cpp b/kmobile/tdeioslave/tdeio_mobile.cpp
index db531417..7b254410 100644
--- a/kmobile/tdeioslave/tdeio_mobile.cpp
+++ b/kmobile/tdeioslave/tdeio_mobile.cpp
@@ -33,7 +33,7 @@
#include "tdeio_mobile.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
using namespace TDEIO;
diff --git a/knode/CMakeL10n.txt b/knode/CMakeL10n.txt
index 12ef43b9..06d23b51 100644
--- a/knode/CMakeL10n.txt
+++ b/knode/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_create_template( "knode" )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/knode-desktops/"
+ SOURCES *.desktop *.protocol
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/knode/CMakeLists.txt b/knode/CMakeLists.txt
index 8b926946..a21deffb 100644
--- a/knode/CMakeLists.txt
+++ b/knode/CMakeLists.txt
@@ -42,16 +42,20 @@ link_directories(
tde_install_icons( )
-install( FILES
- KNode.desktop
- DESTINATION ${XDG_APPS_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE KNode.desktop
+ PO_DIR knode-desktops
+)
-install( FILES
+tde_create_translated_desktop(
+ SOURCE
knewsservice.protocol knode_config_identity.desktop
knode_config_accounts.desktop knode_config_appearance.desktop
knode_config_read_news.desktop knode_config_post_news.desktop
knode_config_privacy.desktop knode_config_cleanup.desktop
- DESTINATION ${SERVICES_INSTALL_DIR} )
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR knode-desktops
+)
install( FILES
headers.rc knodeui.rc knreaderui.rc kncomposerui.rc
diff --git a/knode/KNode.desktop b/knode/KNode.desktop
index 129d03bd..e68e52b2 100644
--- a/knode/KNode.desktop
+++ b/knode/KNode.desktop
@@ -4,81 +4,11 @@ Exec=knode -caption "%c" %i %m
Icon=knode
Terminal=false
X-DocPath=knode/index.html
-Name=KNode
-Name[eo]=Diskutrondoj
-Name[hi]=के-नोड
-Name[ne]=केडीई नोड
-Name[ro]=Ştiri Internet
-Name[sv]=Knode
-Name[ta]=Kநோடு
-Name[th]=อ่านข่าว - K
-Name[zh_TW]=KNode 新聞閱讀器
-GenericName=News Reader
-GenericName[af]=Nuus leser
-GenericName[ar]=قارئ أخبار
-GenericName[az]=Xəbər Oxuyucu
-GenericName[bg]=Четец на новини
-GenericName[br]=Lenner keleier
-GenericName[bs]=Program za čitanje USENet grupa
-GenericName[ca]=Lector de notícies
-GenericName[cs]=Klient pro čtení diskusních skupin
-GenericName[cy]=Darllenydd Newyddion
-GenericName[da]=Nyhedslæser
-GenericName[de]=Usenet-Newsreader
-GenericName[el]=Αναγνώστης νέων
-GenericName[eo]=Legilo por diskutrondoj
-GenericName[es]=Lector de noticias
-GenericName[et]=Uudistelugeja
-GenericName[eu]=Berri Irakurlea
-GenericName[fa]=خوانندۀ اخبار
-GenericName[fi]=Uutisryhmien lukuohjelma
-GenericName[fr]=Lecteur de forums de discussion
-GenericName[fy]=Nijslêzer
-GenericName[ga]=Léitheoir Nuachta
-GenericName[gl]=Lector de Noticias
-GenericName[he]=קורא חדשות
-GenericName[hi]=समाचार वाचक
-GenericName[hr]=Program za čitanje USENet grupa
-GenericName[hu]=NNTP hírolvasó
-GenericName[id]=Pembaca Berita
-GenericName[is]=Fréttaforrit
-GenericName[it]=Lettore newsgroup
-GenericName[ja]=ニュースリーダー
-GenericName[kk]=Жаңалықтарды оқу құралы
-GenericName[km]=កម្មវិធី​អាន​ព័ត៌មាន
-GenericName[lt]=Naujienų skaityklė
-GenericName[lv]=Ziņu Lasītājs
-GenericName[mk]=Читач на вести
-GenericName[ms]=Pembaca Berita
-GenericName[mt]=Qarrej tal-aħbarijiet (news)
-GenericName[nb]=Njusleser
-GenericName[nds]=Usenet-Narichtenkieker
-GenericName[ne]=समाचार वाचक
-GenericName[nl]=Nieuwslezer
-GenericName[nn]=Nyheitslesar
-GenericName[pl]=Program do czytania list dyskusyjnych
-GenericName[pt]=Leitor de Notícias
-GenericName[pt_BR]=Leitor de Notícias
-GenericName[ro]=Cititor de ştiri USENET
-GenericName[ru]=Чтение новостей
-GenericName[rw]=Musoma Amakuru
-GenericName[se]=Ođaslogan
-GenericName[sk]=Prehliadač správ
-GenericName[sl]=Bralnik novic
-GenericName[sr]=Читач вести
-GenericName[sr@Latn]=Čitač vesti
-GenericName[sv]=Nyhetsläsare
-GenericName[ta]=செய்தி வாசிப்பவர்
-GenericName[tg]=Барнома барои хондани иттилоот
-GenericName[th]=เครื่องมืออ่านข่าว
-GenericName[tr]=Haber Okuyucu
-GenericName[uk]=Програма для перегляду новин
-GenericName[ven]=Muvhali wa mafhungo
-GenericName[vi]=Trình đọc News
-GenericName[xh]=Umfundi weendaba
-GenericName[zh_CN]=新闻阅读器
-GenericName[zh_TW]=新聞閱讀器
-GenericName[zu]=Umfundi wezindaba
+
X-TDE-StartupNotify=true
X-DCOP-ServiceType=Unique
Categories=Qt;TDE;Network;News;
+
+Name=KNode
+
+GenericName=News Reader
diff --git a/knode/aboutdata.h b/knode/aboutdata.h
index 528e75b0..50faa6dc 100644
--- a/knode/aboutdata.h
+++ b/knode/aboutdata.h
@@ -15,7 +15,7 @@
*/
#include <tdeaboutdata.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#ifndef KNODE_ABOUTDATA_H
#define KNODE_ABOUTDATA_H
diff --git a/knode/articlewidget.cpp b/knode/articlewidget.cpp
index 1b5b3b9a..faf4b4e8 100644
--- a/knode/articlewidget.cpp
+++ b/knode/articlewidget.cpp
@@ -98,20 +98,20 @@ ArticleWidget::ArticleWidget( TQWidget *parent,
TQHBoxLayout *box = new TQHBoxLayout( this );
mViewer = new TDEHTMLPart( this, "mViewer" );
box->addWidget( mViewer->widget() );
- mViewer->widget()->setFocusPolicy( TQ_WheelFocus );
+ mViewer->widget()->setFocusPolicy( TQWidget::WheelFocus );
mViewer->setPluginsEnabled( false );
mViewer->setJScriptEnabled( false );
mViewer->setJavaEnabled( false );
mViewer->setMetaRefreshEnabled( false );
mViewer->setOnlyLocalReferences( true );
- mViewer->view()->setFocusPolicy( TQ_WheelFocus );
- connect( mViewer->browserExtension(), TQT_SIGNAL(openURLRequestDelayed(const KURL&, const KParts::URLArgs&)),
- TQT_SLOT(slotURLClicked(const KURL&)) );
- connect( mViewer, TQT_SIGNAL(popupMenu(const TQString&, const TQPoint&)),
- TQT_SLOT(slotURLPopup(const TQString&, const TQPoint&)) );
+ mViewer->view()->setFocusPolicy( TQWidget::WheelFocus );
+ connect( mViewer->browserExtension(), TQ_SIGNAL(openURLRequestDelayed(const KURL&, const KParts::URLArgs&)),
+ TQ_SLOT(slotURLClicked(const KURL&)) );
+ connect( mViewer, TQ_SIGNAL(popupMenu(const TQString&, const TQPoint&)),
+ TQ_SLOT(slotURLPopup(const TQString&, const TQPoint&)) );
mTimer = new TQTimer( this );
- connect( mTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotTimeout()) );
+ connect( mTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotTimeout()) );
initActions();
readConfig();
@@ -134,58 +134,58 @@ ArticleWidget::~ArticleWidget()
void ArticleWidget::initActions()
{
- mSaveAction = KStdAction::save( TQT_TQOBJECT(this), TQT_SLOT(slotSave()), mActionCollection );
+ mSaveAction = KStdAction::save( this, TQ_SLOT(slotSave()), mActionCollection );
mSaveAction->setText( KStdGuiItem::saveAs().text() );
- mPrintAction = KStdAction::print( TQT_TQOBJECT(this), TQT_SLOT(slotPrint()), mActionCollection );
- mCopySelectionAction = KStdAction::copy( TQT_TQOBJECT(this), TQT_SLOT(slotCopySelection()), mActionCollection );
- mSelectAllAction = KStdAction::selectAll( TQT_TQOBJECT(this), TQT_SLOT(slotSelectAll()), mActionCollection );
- mFindAction = KStdAction::find( TQT_TQOBJECT(this), TQT_SLOT(slotFind()), mActionCollection, "find_in_article" );
+ mPrintAction = KStdAction::print( this, TQ_SLOT(slotPrint()), mActionCollection );
+ mCopySelectionAction = KStdAction::copy( this, TQ_SLOT(slotCopySelection()), mActionCollection );
+ mSelectAllAction = KStdAction::selectAll( this, TQ_SLOT(slotSelectAll()), mActionCollection );
+ mFindAction = KStdAction::find( this, TQ_SLOT(slotFind()), mActionCollection, "find_in_article" );
mFindAction->setText( i18n("F&ind in Article...") );
- mViewSourceAction = new TDEAction( i18n("&View Source"), Key_V , TQT_TQOBJECT(this),
- TQT_SLOT(slotViewSource()), mActionCollection, "article_viewSource" );
+ mViewSourceAction = new TDEAction( i18n("&View Source"), Key_V , this,
+ TQ_SLOT(slotViewSource()), mActionCollection, "article_viewSource" );
mReplyAction = new TDEAction( i18n("&Followup to Newsgroup..."), "message_reply",
- Key_R, TQT_TQOBJECT(this), TQT_SLOT(slotReply()), mActionCollection, "article_postReply" );
+ Key_R, this, TQ_SLOT(slotReply()), mActionCollection, "article_postReply" );
mRemailAction = new TDEAction( i18n("Reply by E&mail..."), "mail-reply-sender",
- Key_A, TQT_TQOBJECT(this), TQT_SLOT(slotRemail()), mActionCollection, "article_mailReply" );
+ Key_A, this, TQ_SLOT(slotRemail()), mActionCollection, "article_mailReply" );
mForwardAction = new TDEAction( i18n("Forw&ard by Email..."), "mail-forward",
- Key_F, TQT_TQOBJECT(this), TQT_SLOT(slotForward()), mActionCollection, "article_forward" );
+ Key_F, this, TQ_SLOT(slotForward()), mActionCollection, "article_forward" );
mCancelAction = new TDEAction( i18n("article","&Cancel Article"),
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotCancel()), mActionCollection, "article_cancel" );
+ 0, this, TQ_SLOT(slotCancel()), mActionCollection, "article_cancel" );
mSupersedeAction = new TDEAction(i18n("S&upersede Article"),
- 0, TQT_TQOBJECT(this), TQT_SLOT(slotSupersede()), mActionCollection, "article_supersede" );
+ 0, this, TQ_SLOT(slotSupersede()), mActionCollection, "article_supersede" );
mFixedFontToggle = new TDEToggleAction( i18n("U&se Fixed Font"),
- Key_X ,TQT_TQOBJECT(this), TQT_SLOT(slotToggleFixedFont()), mActionCollection, "view_useFixedFont" );
+ Key_X ,this, TQ_SLOT(slotToggleFixedFont()), mActionCollection, "view_useFixedFont" );
mFancyToggle = new TDEToggleAction( i18n("Fancy Formating"),
- Key_Y, TQT_TQOBJECT(this), TQT_SLOT(slotToggleFancyFormating()), mActionCollection, "view_fancyFormating" );
- mRot13Toggle = new TDEToggleAction( i18n("&Unscramble (Rot 13)"), "decrypted", 0 , TQT_TQOBJECT(this),
- TQT_SLOT(slotToggleRot13()), mActionCollection, "view_rot13" );
+ Key_Y, this, TQ_SLOT(slotToggleFancyFormating()), mActionCollection, "view_fancyFormating" );
+ mRot13Toggle = new TDEToggleAction( i18n("&Unscramble (Rot 13)"), "decrypted", 0 , this,
+ TQ_SLOT(slotToggleRot13()), mActionCollection, "view_rot13" );
mRot13Toggle->setChecked( false );
TDERadioAction *ra;
mHeaderStyleMenu = new TDEActionMenu( i18n("&Headers"), mActionCollection, "view_headers" );
- ra = new TDERadioAction( i18n("&Fancy Headers"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotFancyHeaders()),
+ ra = new TDERadioAction( i18n("&Fancy Headers"), 0, this, TQ_SLOT(slotFancyHeaders()),
mActionCollection, "view_headers_fancy" );
ra->setExclusiveGroup( "view_headers" );
mHeaderStyleMenu->insert( ra );
- ra = new TDERadioAction( i18n("&Standard Headers"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotStandardHeaders()),
+ ra = new TDERadioAction( i18n("&Standard Headers"), 0, this, TQ_SLOT(slotStandardHeaders()),
mActionCollection, "view_headers_standard" );
ra->setExclusiveGroup( "view_headers" );
mHeaderStyleMenu->insert( ra );
- ra = new TDERadioAction( i18n("&All Headers"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotAllHeaders()),
+ ra = new TDERadioAction( i18n("&All Headers"), 0, this, TQ_SLOT(slotAllHeaders()),
mActionCollection, "view_headers_all" );
ra->setExclusiveGroup( "view_headers" );
mHeaderStyleMenu->insert( ra );
mAttachmentStyleMenu = new TDEActionMenu( i18n("&Attachments"), mActionCollection, "view_attachments" );
- ra = new TDERadioAction( i18n("&As Icon"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotIconAttachments()),
+ ra = new TDERadioAction( i18n("&As Icon"), 0, this, TQ_SLOT(slotIconAttachments()),
mActionCollection, "view_attachments_icon" );
ra->setExclusiveGroup( "view_attachments" );
mAttachmentStyleMenu->insert( ra );
- ra = new TDERadioAction( i18n("&Inline"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotInlineAttachments()),
+ ra = new TDERadioAction( i18n("&Inline"), 0, this, TQ_SLOT(slotInlineAttachments()),
mActionCollection, "view_attachments_inline" );
ra->setExclusiveGroup( "view_attachments" );
mAttachmentStyleMenu->insert( ra );
- ra = new TDERadioAction( i18n("&Hide"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotHideAttachments()),
+ ra = new TDERadioAction( i18n("&Hide"), 0, this, TQ_SLOT(slotHideAttachments()),
mActionCollection, "view_attachments_hide" );
ra->setExclusiveGroup( "view_attachments" );
mAttachmentStyleMenu->insert( ra );
@@ -196,23 +196,23 @@ void ArticleWidget::initActions()
cs.prepend( i18n("Automatic") );
mCharsetSelect->setItems( cs );
mCharsetSelect->setCurrentItem( 0 );
- connect( mCharsetSelect, TQT_SIGNAL(activated(const TQString&)),TQT_SLOT(slotSetCharset(const TQString&)) );
- mCharsetSelectKeyb = new TDEAction( i18n("Charset"), Key_C, TQT_TQOBJECT(this),
- TQT_SLOT(slotSetCharsetKeyboard()), mActionCollection, "set_charset_keyboard" );
+ connect( mCharsetSelect, TQ_SIGNAL(activated(const TQString&)),TQ_SLOT(slotSetCharset(const TQString&)) );
+ mCharsetSelectKeyb = new TDEAction( i18n("Charset"), Key_C, this,
+ TQ_SLOT(slotSetCharsetKeyboard()), mActionCollection, "set_charset_keyboard" );
- new TDEAction( i18n("&Open URL"), "document-open", 0, TQT_TQOBJECT(this), TQT_SLOT(slotOpenURL()),
+ new TDEAction( i18n("&Open URL"), "document-open", 0, this, TQ_SLOT(slotOpenURL()),
mActionCollection, "open_url" );
- new TDEAction( i18n("&Copy Link Address"), "edit-copy", 0, TQT_TQOBJECT(this), TQT_SLOT( slotCopyURL()),
+ new TDEAction( i18n("&Copy Link Address"), "edit-copy", 0, this, TQ_SLOT( slotCopyURL()),
mActionCollection, "copy_url" );
- new TDEAction( i18n("&Bookmark This Link"), "bookmark_add", 0, TQT_TQOBJECT(this), TQT_SLOT(slotAddBookmark()),
+ new TDEAction( i18n("&Bookmark This Link"), "bookmark_add", 0, this, TQ_SLOT(slotAddBookmark()),
mActionCollection, "add_bookmark" );
- new TDEAction( i18n("&Add to Address Book"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotAddToAddressBook()),
+ new TDEAction( i18n("&Add to Address Book"), 0, this, TQ_SLOT(slotAddToAddressBook()),
mActionCollection, "add_addr_book" );
- new TDEAction( i18n("&Open in Address Book"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotOpenInAddressBook()),
+ new TDEAction( i18n("&Open in Address Book"), 0, this, TQ_SLOT(slotOpenInAddressBook()),
mActionCollection, "openin_addr_book" );
- new TDEAction( i18n("&Open Attachment"), "document-open", 0, TQT_TQOBJECT(this), TQT_SLOT(slotOpenAttachment()),
+ new TDEAction( i18n("&Open Attachment"), "document-open", 0, this, TQ_SLOT(slotOpenAttachment()),
mActionCollection, "open_attachment" );
- new TDEAction( i18n("&Save Attachment As..."), "document-save-as", 0, TQT_TQOBJECT(this), TQT_SLOT(slotSaveAttachment()),
+ new TDEAction( i18n("&Save Attachment As..."), "document-save-as", 0, this, TQ_SLOT(slotSaveAttachment()),
mActionCollection, "save_attachment" );
}
@@ -1472,7 +1472,7 @@ void ArticleWidget::focusOutEvent( TQFocusEvent *e )
bool ArticleWidget::eventFilter( TQObject *o, TQEvent *e )
{
- if ( e->type() == TQEvent::KeyPress && (TQT_TQKEYEVENT(e)->key() == Key_Tab) ) {
+ if ( e->type() == TQEvent::KeyPress && (static_cast<TQKeyEvent*>(e)->key() == Key_Tab) ) {
emit focusChangeRequest( this );
if ( !hasFocus() ) // focusChangeRequest was successful
return true;
diff --git a/knode/articlewidget.h b/knode/articlewidget.h
index cc1cac20..8a00e33f 100644
--- a/knode/articlewidget.h
+++ b/knode/articlewidget.h
@@ -52,7 +52,7 @@ class CSSHelper;
*/
class ArticleWidget : public TQWidget, public KNJobConsumer {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/headerview.cpp b/knode/headerview.cpp
index 06210b2a..cae8da28 100644
--- a/knode/headerview.cpp
+++ b/knode/headerview.cpp
@@ -65,9 +65,9 @@ KNHeaderView::KNHeaderView(TQWidget *parent, const char *name) :
setColumnAlignment( mPaintInfo.scoreCol, TQt::AlignRight );
// due to our own column text squeezing we need to repaint on column resizing
- disconnect( header(), TQT_SIGNAL(sizeChange(int, int, int)) );
- connect( header(), TQT_SIGNAL(sizeChange(int, int, int)),
- TQT_SLOT(slotSizeChanged(int, int, int)) );
+ disconnect( header(), TQ_SIGNAL(sizeChange(int, int, int)) );
+ connect( header(), TQ_SIGNAL(sizeChange(int, int, int)),
+ TQ_SLOT(slotSizeChanged(int, int, int)) );
// column selection RMB menu
mPopup = new TDEPopupMenu( this );
@@ -76,11 +76,11 @@ KNHeaderView::KNHeaderView(TQWidget *parent, const char *name) :
mPopup->insertItem( i18n("Line Count"), KPaintInfo::COL_SIZE );
mPopup->insertItem( i18n("Score"), KPaintInfo::COL_SCORE );
- connect( mPopup, TQT_SIGNAL(activated(int)), this, TQT_SLOT(toggleColumn(int)) );
+ connect( mPopup, TQ_SIGNAL(activated(int)), this, TQ_SLOT(toggleColumn(int)) );
// connect to the article manager
- connect( knGlobals.articleManager(), TQT_SIGNAL(aboutToShowGroup()), TQT_SLOT(prepareForGroup()) );
- connect( knGlobals.articleManager(), TQT_SIGNAL(aboutToShowFolder()), TQT_SLOT(prepareForFolder()) );
+ connect( knGlobals.articleManager(), TQ_SIGNAL(aboutToShowGroup()), TQ_SLOT(prepareForGroup()) );
+ connect( knGlobals.articleManager(), TQ_SIGNAL(aboutToShowFolder()), TQ_SLOT(prepareForFolder()) );
new KNHeaderViewToolTip( this );
@@ -188,7 +188,7 @@ void KNHeaderView::ensureItemVisibleWithMargin( const TQListViewItem *i )
{
ensureVisible( contentsX(), y + h/2, 0, h/2 );
mDelayedCenter = y + h/2;
- TQTimer::singleShot( 300, this, TQT_SLOT(slotCenterDelayed()) );
+ TQTimer::singleShot( 300, this, TQ_SLOT(slotCenterDelayed()) );
} else {
ensureVisible( contentsX(), y + h/2, 0, h/2 );
}
@@ -540,7 +540,7 @@ void KNHeaderView::slotSizeChanged( int section, int, int newSize )
bool KNHeaderView::eventFilter(TQObject *o, TQEvent *e)
{
- if ((e->type() == TQEvent::KeyPress) && (TQT_TQKEYEVENT(e)->key() == Key_Tab)) {
+ if ((e->type() == TQEvent::KeyPress) && (static_cast<TQKeyEvent*>(e)->key() == Key_Tab)) {
emit(focusChangeRequest(this));
if (!hasFocus()) // focusChangeRequest was successful
return true;
@@ -548,10 +548,10 @@ bool KNHeaderView::eventFilter(TQObject *o, TQEvent *e)
// right click on header
if ( e->type() == TQEvent::MouseButtonPress &&
- TQT_TQMOUSEEVENT(e)->button() == Qt::RightButton &&
- o->isA(TQHEADER_OBJECT_NAME_STRING) )
+ static_cast<TQMouseEvent*>(e)->button() == TQt::RightButton &&
+ o->isA("TQHeader") )
{
- mPopup->popup( TQT_TQMOUSEEVENT(e)->globalPos() );
+ mPopup->popup( static_cast<TQMouseEvent*>(e)->globalPos() );
return true;
}
@@ -576,7 +576,7 @@ void KNHeaderView::focusOutEvent(TQFocusEvent *e)
void KNHeaderView::resetCurrentTime()
{
mDateFormatter.reset();
- TQTimer::singleShot( 1000, this, TQT_SLOT(resetCurrentTime()) );
+ TQTimer::singleShot( 1000, this, TQ_SLOT(resetCurrentTime()) );
}
diff --git a/knode/headerview.h b/knode/headerview.h
index 1b74d363..3da99acb 100644
--- a/knode/headerview.h
+++ b/knode/headerview.h
@@ -26,7 +26,7 @@ class KNHdrViewItem;
class KNHeaderView : public TDEListView {
- Q_OBJECT
+ TQ_OBJECT
friend class KNHdrViewItem;
diff --git a/knode/knaccountmanager.cpp b/knode/knaccountmanager.cpp
index 77b97288..45c21936 100644
--- a/knode/knaccountmanager.cpp
+++ b/knode/knaccountmanager.cpp
@@ -228,7 +228,7 @@ void KNAccountManager::loadPasswordsAsync()
else
mWallet = Wallet::openWallet( Wallet::NetworkWallet(), 0, Wallet::Asynchronous );
if ( mWallet ) {
- connect( mWallet, TQT_SIGNAL(walletOpened(bool)), TQT_SLOT(slotWalletOpened(bool)) );
+ connect( mWallet, TQ_SIGNAL(walletOpened(bool)), TQ_SLOT(slotWalletOpened(bool)) );
mAsyncOpening = true;
}
else {
diff --git a/knode/knaccountmanager.h b/knode/knaccountmanager.h
index 56e994c6..8a8b5f61 100644
--- a/knode/knaccountmanager.h
+++ b/knode/knaccountmanager.h
@@ -29,7 +29,7 @@ class KNServerInfo;
class KNAccountManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knapplication.h b/knode/knapplication.h
index 4536c119..c65c010d 100644
--- a/knode/knapplication.h
+++ b/knode/knapplication.h
@@ -21,7 +21,7 @@
class KNApplication : public KUniqueApplication
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNApplication(): KUniqueApplication() { };
diff --git a/knode/knarticlefactory.cpp b/knode/knarticlefactory.cpp
index 9e801a6e..c01e58f8 100644
--- a/knode/knarticlefactory.cpp
+++ b/knode/knarticlefactory.cpp
@@ -65,7 +65,7 @@ void KNArticleFactory::createPosting(KNNntpAccount *a)
KNComposer *c = new KNComposer( art, TQString(), sig, TQString(), true );
mCompList.append( c );
- connect(c, TQT_SIGNAL(composerDone(KNComposer*)), this, TQT_SLOT(slotComposerDone(KNComposer*)));
+ connect(c, TQ_SIGNAL(composerDone(KNComposer*)), this, TQ_SLOT(slotComposerDone(KNComposer*)));
c->show();
}
@@ -94,7 +94,7 @@ void KNArticleFactory::createPosting(KNGroup *g)
KNComposer *c=new KNComposer(art, TQString(), sig, TQString(), true);
mCompList.append( c );
- connect(c, TQT_SIGNAL(composerDone(KNComposer*)), this, TQT_SLOT(slotComposerDone(KNComposer*)));
+ connect(c, TQ_SIGNAL(composerDone(KNComposer*)), this, TQ_SLOT(slotComposerDone(KNComposer*)));
c->show();
}
@@ -264,7 +264,7 @@ void KNArticleFactory::createReply(KNRemoteArticle *a, TQString selectedText, bo
//open composer
KNComposer *c=new KNComposer(art, quoted, sig, notRewraped, true, authorDislikesMailCopies, authorWantsMailCopies);
mCompList.append( c );
- connect(c, TQT_SIGNAL(composerDone(KNComposer*)), this, TQT_SLOT(slotComposerDone(KNComposer*)));
+ connect(c, TQ_SIGNAL(composerDone(KNComposer*)), this, TQ_SLOT(slotComposerDone(KNComposer*)));
c->show();
}
@@ -349,7 +349,7 @@ void KNArticleFactory::createForward(KNArticle *a)
//open composer
KNComposer *c=new KNComposer(art, fwd, sig, TQString(), true);
mCompList.append( c );
- connect(c, TQT_SIGNAL(composerDone(KNComposer*)), this, TQT_SLOT(slotComposerDone(KNComposer*)));
+ connect(c, TQ_SIGNAL(composerDone(KNComposer*)), this, TQ_SLOT(slotComposerDone(KNComposer*)));
c->show();
}
@@ -500,7 +500,7 @@ void KNArticleFactory::createSupersede(KNArticle *a)
//open composer
KNComposer *c=new KNComposer(art, text, sig);
mCompList.append( c );
- connect(c, TQT_SIGNAL(composerDone(KNComposer*)), this, TQT_SLOT(slotComposerDone(KNComposer*)));
+ connect(c, TQ_SIGNAL(composerDone(KNComposer*)), this, TQ_SLOT(slotComposerDone(KNComposer*)));
c->show();
}
@@ -525,7 +525,7 @@ void KNArticleFactory::createMail(KMime::Headers::AddressField *address)
//open composer
KNComposer *c=new KNComposer(art, TQString(), sig, TQString(), true);
mCompList.append( c );
- connect(c, TQT_SIGNAL(composerDone(KNComposer*)), this, TQT_SLOT(slotComposerDone(KNComposer*)));
+ connect(c, TQ_SIGNAL(composerDone(KNComposer*)), this, TQ_SLOT(slotComposerDone(KNComposer*)));
c->show();
}
@@ -604,7 +604,7 @@ void KNArticleFactory::edit(KNLocalArticle *a)
.arg(id->getSigGeneratorStdErr()));
mCompList.append( com );
- connect(com, TQT_SIGNAL(composerDone(KNComposer*)), this, TQT_SLOT(slotComposerDone(KNComposer*)));
+ connect(com, TQ_SIGNAL(composerDone(KNComposer*)), this, TQ_SLOT(slotComposerDone(KNComposer*)));
com->show();
}
@@ -990,7 +990,7 @@ void KNArticleFactory::showSendErrorDialog()
{
if(!s_endErrDlg) {
s_endErrDlg=new KNSendErrorDialog();
- connect(s_endErrDlg, TQT_SIGNAL(closeClicked()), this, TQT_SLOT(slotSendErrorDialogDone()));
+ connect(s_endErrDlg, TQ_SIGNAL(closeClicked()), this, TQ_SLOT(slotSendErrorDialogDone()));
}
s_endErrDlg->show();
}
@@ -1075,7 +1075,7 @@ KNSendErrorDialog::KNSendErrorDialog()
j_obs=new KNDialogListBox(true, page);
e_rror=new TQLabel(TQString(), page);
- connect(j_obs, TQT_SIGNAL(highlighted(int)), this, TQT_SLOT(slotHighlighted(int)));
+ connect(j_obs, TQ_SIGNAL(highlighted(int)), this, TQ_SLOT(slotHighlighted(int)));
KNHelper::restoreWindowSize("sendDlg", this, TQSize(320,250));
}
@@ -1107,5 +1107,3 @@ void KNSendErrorDialog::slotHighlighted(int idx)
//-------------------------------
#include "knarticlefactory.moc"
-
-// kate: space-indent on; indent-width 2;
diff --git a/knode/knarticlefactory.h b/knode/knarticlefactory.h
index 1e13ddc1..c01ac3da 100644
--- a/knode/knarticlefactory.h
+++ b/knode/knarticlefactory.h
@@ -38,7 +38,7 @@ namespace KNConfig {
class KNArticleFactory : public TQObject , public KNJobConsumer {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -96,7 +96,7 @@ class KNArticleFactory : public TQObject , public KNJobConsumer {
class KNSendErrorDialog : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knarticlemanager.cpp b/knode/knarticlemanager.cpp
index 86c58cc6..332690c2 100644
--- a/knode/knarticlemanager.cpp
+++ b/knode/knarticlemanager.cpp
@@ -53,8 +53,8 @@ KNArticleManager::KNArticleManager() : TQObject(0,0)
s_earchDlg=0;
d_isableExpander=false;
- connect(f_ilterMgr, TQT_SIGNAL(filterChanged(KNArticleFilter*)), this,
- TQT_SLOT(slotFilterChanged(KNArticleFilter*)));
+ connect(f_ilterMgr, TQ_SIGNAL(filterChanged(KNArticleFilter*)), this,
+ TQ_SLOT(slotFilterChanged(KNArticleFilter*)));
}
@@ -390,10 +390,10 @@ void KNArticleManager::search()
KWin::activateWindow(s_earchDlg->winId());
} else {
s_earchDlg=new KNSearchDialog(KNSearchDialog::STgroupSearch, 0);
- connect(s_earchDlg, TQT_SIGNAL(doSearch(KNArticleFilter*)), this,
- TQT_SLOT(slotFilterChanged(KNArticleFilter*)));
- connect(s_earchDlg, TQT_SIGNAL(dialogDone()), this,
- TQT_SLOT(slotSearchDialogDone()));
+ connect(s_earchDlg, TQ_SIGNAL(doSearch(KNArticleFilter*)), this,
+ TQ_SLOT(slotFilterChanged(KNArticleFilter*)));
+ connect(s_earchDlg, TQ_SIGNAL(dialogDone()), this,
+ TQ_SLOT(slotSearchDialogDone()));
s_earchDlg->show();
}
}
@@ -1081,8 +1081,8 @@ void KNArticleManager::slotItemExpanded(TQListViewItem *p)
void KNArticleManager::setView(KNHeaderView* v) {
v_iew = v;
if(v) {
- connect(v, TQT_SIGNAL(expanded(TQListViewItem*)), this,
- TQT_SLOT(slotItemExpanded(TQListViewItem*)));
+ connect(v, TQ_SIGNAL(expanded(TQListViewItem*)), this,
+ TQ_SLOT(slotItemExpanded(TQListViewItem*)));
}
}
diff --git a/knode/knarticlemanager.h b/knode/knarticlemanager.h
index ee62c8d0..73fe07d9 100644
--- a/knode/knarticlemanager.h
+++ b/knode/knarticlemanager.h
@@ -38,7 +38,7 @@ class KNJobData;
class KNArticleManager : public TQObject, public KNJobConsumer {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knarticlewindow.cpp b/knode/knarticlewindow.cpp
index 90cf0e7d..4a4235e8 100644
--- a/knode/knarticlewindow.cpp
+++ b/knode/knarticlewindow.cpp
@@ -1,4 +1,3 @@
-// -*- c-basic-offset: 2 -*-
/*
KNode, the KDE newsreader
Copyright (c) 1999-2005 the KNode authors.
@@ -101,10 +100,10 @@ KNArticleWindow::KNArticleWindow(KNArticle *art)
mInstances.append( this );
// file menu
- KStdAction::close( TQT_TQOBJECT(this), TQT_SLOT(close()), actionCollection() );
+ KStdAction::close( this, TQ_SLOT(close()), actionCollection() );
// settings menu
- KStdAction::preferences(TQT_TQOBJECT(knGlobals.top), TQT_SLOT(slotSettings()), actionCollection());
+ KStdAction::preferences(knGlobals.top, TQ_SLOT(slotSettings()), actionCollection());
TDEAccel *accel = new TDEAccel( this );
artW->setCharsetKeyboardAction()->plugAccel( accel );
diff --git a/knode/knarticlewindow.h b/knode/knarticlewindow.h
index b8171da5..e452720a 100644
--- a/knode/knarticlewindow.h
+++ b/knode/knarticlewindow.h
@@ -26,7 +26,7 @@ namespace KNode {
class KNArticleWindow : public TDEMainWindow {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/kncleanup.cpp b/knode/kncleanup.cpp
index 33714840..8b2849a9 100644
--- a/knode/kncleanup.cpp
+++ b/knode/kncleanup.cpp
@@ -315,5 +315,3 @@ void KNCleanUp::ProgressDialog::closeEvent(TQCloseEvent *)
{
// do nothing => prevent that the user closes the window
}
-
-// kate: space-indent on; indent-width 2;
diff --git a/knode/kncleanup.h b/knode/kncleanup.h
index 60a81516..5019b207 100644
--- a/knode/kncleanup.h
+++ b/knode/kncleanup.h
@@ -15,8 +15,6 @@
#ifndef KNCLEANUP_H
#define KNCLEANUP_H
-#include <tqsemimodal.h>
-
class TQProgressBar;
class TQLabel;
@@ -68,5 +66,3 @@ class KNCleanUp {
};
#endif
-
-// kate: space-indent on; indent-width 2;
diff --git a/knode/kncollectionview.cpp b/knode/kncollectionview.cpp
index 8a02fed2..e7f9aa87 100644
--- a/knode/kncollectionview.cpp
+++ b/knode/kncollectionview.cpp
@@ -49,8 +49,8 @@ KNCollectionView::KNCollectionView(TQWidget *parent, const char* name) :
mPopup = new TDEPopupMenu( this );
mPopup->insertTitle( i18n("View Columns") );
mPopup->setCheckable( true );
- mUnreadPop = mPopup->insertItem( i18n("Unread Column"), this, TQT_SLOT(toggleUnreadColumn()) );
- mTotalPop = mPopup->insertItem( i18n("Total Column"), this, TQT_SLOT(toggleTotalColumn()) );
+ mUnreadPop = mPopup->insertItem( i18n("Unread Column"), this, TQ_SLOT(toggleUnreadColumn()) );
+ mTotalPop = mPopup->insertItem( i18n("Total Column"), this, TQ_SLOT(toggleTotalColumn()) );
// add unread and total columns if necessary
readConfig();
@@ -61,21 +61,21 @@ KNCollectionView::KNCollectionView(TQWidget *parent, const char* name) :
// connect to the account manager
KNAccountManager* am = knGlobals.accountManager();
- connect(am, TQT_SIGNAL(accountAdded(KNNntpAccount*)), TQT_SLOT(addAccount(KNNntpAccount*)));
- connect(am, TQT_SIGNAL(accountRemoved(KNNntpAccount*)), TQT_SLOT(removeAccount(KNNntpAccount*)));
- connect(am, TQT_SIGNAL(accountModified(KNNntpAccount*)), TQT_SLOT(updateAccount(KNNntpAccount*)));
+ connect(am, TQ_SIGNAL(accountAdded(KNNntpAccount*)), TQ_SLOT(addAccount(KNNntpAccount*)));
+ connect(am, TQ_SIGNAL(accountRemoved(KNNntpAccount*)), TQ_SLOT(removeAccount(KNNntpAccount*)));
+ connect(am, TQ_SIGNAL(accountModified(KNNntpAccount*)), TQ_SLOT(updateAccount(KNNntpAccount*)));
// connect to the group manager
KNGroupManager* gm = knGlobals.groupManager();
- connect(gm, TQT_SIGNAL(groupAdded(KNGroup*)), TQT_SLOT(addGroup(KNGroup*)));
- connect(gm, TQT_SIGNAL(groupRemoved(KNGroup*)), TQT_SLOT(removeGroup(KNGroup*)));
- connect(gm, TQT_SIGNAL(groupUpdated(KNGroup*)), TQT_SLOT(updateGroup(KNGroup*)));
+ connect(gm, TQ_SIGNAL(groupAdded(KNGroup*)), TQ_SLOT(addGroup(KNGroup*)));
+ connect(gm, TQ_SIGNAL(groupRemoved(KNGroup*)), TQ_SLOT(removeGroup(KNGroup*)));
+ connect(gm, TQ_SIGNAL(groupUpdated(KNGroup*)), TQ_SLOT(updateGroup(KNGroup*)));
// connect to the folder manager
KNFolderManager* fm = knGlobals.folderManager();
- connect(fm, TQT_SIGNAL(folderAdded(KNFolder*)), TQT_SLOT(addPendingFolders()));
- connect(fm, TQT_SIGNAL(folderRemoved(KNFolder*)), TQT_SLOT(removeFolder(KNFolder*)));
- connect(fm, TQT_SIGNAL(folderActivated(KNFolder*)), TQT_SLOT(activateFolder(KNFolder*)));
+ connect(fm, TQ_SIGNAL(folderAdded(KNFolder*)), TQ_SLOT(addPendingFolders()));
+ connect(fm, TQ_SIGNAL(folderRemoved(KNFolder*)), TQ_SLOT(removeFolder(KNFolder*)));
+ connect(fm, TQ_SIGNAL(folderActivated(KNFolder*)), TQ_SLOT(activateFolder(KNFolder*)));
installEventFilter(this);
}
@@ -421,7 +421,7 @@ void KNCollectionView::updatePopup() const
bool KNCollectionView::eventFilter(TQObject *o, TQEvent *e)
{
- if ((e->type() == TQEvent::KeyPress) && (TQT_TQKEYEVENT(e)->key() == Key_Tab)) {
+ if ((e->type() == TQEvent::KeyPress) && (static_cast<TQKeyEvent*>(e)->key() == Key_Tab)) {
emit(focusChangeRequest(this));
if (!hasFocus()) // focusChangeRequest was successful
return true;
@@ -429,10 +429,10 @@ bool KNCollectionView::eventFilter(TQObject *o, TQEvent *e)
// header popup menu
if ( e->type() == TQEvent::MouseButtonPress &&
- TQT_TQMOUSEEVENT(e)->button() == Qt::RightButton &&
- o->isA(TQHEADER_OBJECT_NAME_STRING) )
+ static_cast<TQMouseEvent*>(e)->button() == TQt::RightButton &&
+ o->isA("TQHeader") )
{
- mPopup->popup( TQT_TQMOUSEEVENT(e)->globalPos() );
+ mPopup->popup( static_cast<TQMouseEvent*>(e)->globalPos() );
return true;
}
diff --git a/knode/kncollectionview.h b/knode/kncollectionview.h
index 74a6e25e..957aa207 100644
--- a/knode/kncollectionview.h
+++ b/knode/kncollectionview.h
@@ -26,7 +26,7 @@ class KNCollectionViewItem;
class KNCollectionView : public KFolderTree {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/kncomposer.cpp b/knode/kncomposer.cpp
index c13027a7..5b4f8603 100644
--- a/knode/kncomposer.cpp
+++ b/knode/kncomposer.cpp
@@ -78,7 +78,7 @@ TQPopupMenu *KNLineEdit::createPopupMenu()
menu->insertSeparator();
menu->insertItem( i18n( "Edit Recent Addresses..." ),
- this, TQT_SLOT( editRecentAddresses() ) );
+ this, TQ_SLOT( editRecentAddresses() ) );
return menu;
}
@@ -183,9 +183,9 @@ KNComposer::KNComposer(KNLocalArticle *a, const TQString &text, const TQString &
v_iew=new ComposerView(this);
setCentralWidget(v_iew);
- connect(v_iew->c_ancelEditorBtn, TQT_SIGNAL(clicked()), TQT_SLOT(slotCancelEditor()));
- connect(v_iew->e_dit, TQT_SIGNAL(sigDragEnterEvent(TQDragEnterEvent *)), TQT_SLOT(slotDragEnterEvent(TQDragEnterEvent *)));
- connect(v_iew->e_dit, TQT_SIGNAL(sigDropEvent(TQDropEvent *)), TQT_SLOT(slotDropEvent(TQDropEvent *)));
+ connect(v_iew->c_ancelEditorBtn, TQ_SIGNAL(clicked()), TQ_SLOT(slotCancelEditor()));
+ connect(v_iew->e_dit, TQ_SIGNAL(sigDragEnterEvent(TQDragEnterEvent *)), TQ_SLOT(slotDragEnterEvent(TQDragEnterEvent *)));
+ connect(v_iew->e_dit, TQ_SIGNAL(sigDropEvent(TQDropEvent *)), TQ_SLOT(slotDropEvent(TQDropEvent *)));
//statusbar
KStatusBar *sb=statusBar();
@@ -199,128 +199,128 @@ KNComposer::KNComposer(KNLocalArticle *a, const TQString &text, const TQString &
sb->setItemAlignment (4,AlignCenter | AlignVCenter);
sb->insertItem(TQString(), 5,0); // line
sb->setItemAlignment (5,AlignCenter | AlignVCenter);
- connect(v_iew->e_dit, TQT_SIGNAL(CursorPositionChanged()), TQT_SLOT(slotUpdateCursorPos()));
- connect(v_iew->e_dit, TQT_SIGNAL(toggle_overwrite_signal()), TQT_SLOT(slotUpdateStatusBar()));
+ connect(v_iew->e_dit, TQ_SIGNAL(CursorPositionChanged()), TQ_SLOT(slotUpdateCursorPos()));
+ connect(v_iew->e_dit, TQ_SIGNAL(toggle_overwrite_signal()), TQ_SLOT(slotUpdateStatusBar()));
//------------------------------- <Actions> --------------------------------------
//file menu
- new TDEAction(i18n("&Send Now"),"mail-send", CTRL + Key_Return , TQT_TQOBJECT(this),
- TQT_SLOT(slotSendNow()), actionCollection(), "send_now");
+ new TDEAction(i18n("&Send Now"),"mail-send", CTRL + Key_Return , this,
+ TQ_SLOT(slotSendNow()), actionCollection(), "send_now");
- new TDEAction(i18n("Send &Later"), "queue", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotSendLater()), actionCollection(), "send_later");
+ new TDEAction(i18n("Send &Later"), "queue", 0, this,
+ TQ_SLOT(slotSendLater()), actionCollection(), "send_later");
- new TDEAction(i18n("Save as &Draft"),"document-save", 0 , TQT_TQOBJECT(this),
- TQT_SLOT(slotSaveAsDraft()), actionCollection(), "save_as_draft");
+ new TDEAction(i18n("Save as &Draft"),"document-save", 0 , this,
+ TQ_SLOT(slotSaveAsDraft()), actionCollection(), "save_as_draft");
- new TDEAction(i18n("D&elete"),"edit-delete", 0 , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtDelete()), actionCollection(), "art_delete");
+ new TDEAction(i18n("D&elete"),"edit-delete", 0 , this,
+ TQ_SLOT(slotArtDelete()), actionCollection(), "art_delete");
- KStdAction::close(TQT_TQOBJECT(this), TQT_SLOT(close()),actionCollection());
+ KStdAction::close(this, TQ_SLOT(close()),actionCollection());
//edit menu
- KStdAction::undo(TQT_TQOBJECT(this), TQT_SLOT(slotUndo()), actionCollection());
- KStdAction::redo(TQT_TQOBJECT(this), TQT_SLOT(slotRedo()), actionCollection());
+ KStdAction::undo(this, TQ_SLOT(slotUndo()), actionCollection());
+ KStdAction::redo(this, TQ_SLOT(slotRedo()), actionCollection());
- KStdAction::cut(TQT_TQOBJECT(this), TQT_SLOT(slotCut()), actionCollection());
+ KStdAction::cut(this, TQ_SLOT(slotCut()), actionCollection());
- KStdAction::copy(TQT_TQOBJECT(this), TQT_SLOT(slotCopy()), actionCollection());
+ KStdAction::copy(this, TQ_SLOT(slotCopy()), actionCollection());
- KStdAction::pasteText(TQT_TQOBJECT(this), TQT_SLOT(slotPaste()), actionCollection());
+ KStdAction::pasteText(this, TQ_SLOT(slotPaste()), actionCollection());
- new TDEAction(i18n("Paste as &Quotation"), 0, TQT_TQOBJECT(v_iew->e_dit),
- TQT_SLOT(slotPasteAsQuotation()), actionCollection(), "paste_quoted");
+ new TDEAction(i18n("Paste as &Quotation"), 0, v_iew->e_dit,
+ TQ_SLOT(slotPasteAsQuotation()), actionCollection(), "paste_quoted");
- KStdAction::selectAll(TQT_TQOBJECT(this), TQT_SLOT(slotSelectAll()), actionCollection());
+ KStdAction::selectAll(this, TQ_SLOT(slotSelectAll()), actionCollection());
- KStdAction::find(TQT_TQOBJECT(v_iew->e_dit), TQT_SLOT(slotFind()), actionCollection());
- KStdAction::findNext(TQT_TQOBJECT(v_iew->e_dit), TQT_SLOT(slotSearchAgain()), actionCollection());
+ KStdAction::find(v_iew->e_dit, TQ_SLOT(slotFind()), actionCollection());
+ KStdAction::findNext(v_iew->e_dit, TQ_SLOT(slotSearchAgain()), actionCollection());
- KStdAction::replace(TQT_TQOBJECT(v_iew->e_dit), TQT_SLOT(slotReplace()), actionCollection());
+ KStdAction::replace(v_iew->e_dit, TQ_SLOT(slotReplace()), actionCollection());
//attach menu
- new TDEAction(i18n("Append &Signature"), 0 , TQT_TQOBJECT(this), TQT_SLOT(slotAppendSig()),
+ new TDEAction(i18n("Append &Signature"), 0 , this, TQ_SLOT(slotAppendSig()),
actionCollection(), "append_signature");
- new TDEAction(i18n("&Insert File..."), 0, TQT_TQOBJECT(this), TQT_SLOT(slotInsertFile()),
+ new TDEAction(i18n("&Insert File..."), 0, this, TQ_SLOT(slotInsertFile()),
actionCollection(), "insert_file");
- new TDEAction(i18n("Insert File (in a &box)..."), 0, TQT_TQOBJECT(this), TQT_SLOT(slotInsertFileBoxed()),
+ new TDEAction(i18n("Insert File (in a &box)..."), 0, this, TQ_SLOT(slotInsertFileBoxed()),
actionCollection(), "insert_file_boxed");
- new TDEAction(i18n("Attach &File..."), "attach", 0, TQT_TQOBJECT(this), TQT_SLOT(slotAttachFile()),
+ new TDEAction(i18n("Attach &File..."), "attach", 0, this, TQ_SLOT(slotAttachFile()),
actionCollection(), "attach_file");
a_ctPGPsign = new TDEToggleAction(i18n("Sign Article with &PGP"),
"signature", 0,
actionCollection(), "sign_article");
- a_ctRemoveAttachment = new TDEAction(i18n("&Remove"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotRemoveAttachment()), actionCollection(), "remove_attachment");
+ a_ctRemoveAttachment = new TDEAction(i18n("&Remove"), 0, this,
+ TQ_SLOT(slotRemoveAttachment()), actionCollection(), "remove_attachment");
- a_ctAttachmentProperties = new TDEAction(i18n("&Properties"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAttachmentProperties()), actionCollection(), "attachment_properties");
+ a_ctAttachmentProperties = new TDEAction(i18n("&Properties"), 0, this,
+ TQ_SLOT(slotAttachmentProperties()), actionCollection(), "attachment_properties");
//options menu
- a_ctDoPost = new TDEToggleAction(i18n("Send &News Article"), "document-new", 0 , TQT_TQOBJECT(this),
- TQT_SLOT(slotToggleDoPost()), actionCollection(), "send_news");
+ a_ctDoPost = new TDEToggleAction(i18n("Send &News Article"), "document-new", 0 , this,
+ TQ_SLOT(slotToggleDoPost()), actionCollection(), "send_news");
- a_ctDoMail = new TDEToggleAction(i18n("Send E&mail"), "mail_generic" , 0 , TQT_TQOBJECT(this),
- TQT_SLOT(slotToggleDoMail()), actionCollection(), "send_mail");
+ a_ctDoMail = new TDEToggleAction(i18n("Send E&mail"), "mail_generic" , 0 , this,
+ TQ_SLOT(slotToggleDoMail()), actionCollection(), "send_mail");
a_ctSetCharset = new TDESelectAction(i18n("Set &Charset"), 0, actionCollection(), "set_charset");
a_ctSetCharset->setItems(knGlobals.configManager()->postNewsTechnical()->composerCharsets());
a_ctSetCharset->setShortcutConfigurable(false);
- connect(a_ctSetCharset, TQT_SIGNAL(activated(const TQString&)),
- this, TQT_SLOT(slotSetCharset(const TQString&)));
+ connect(a_ctSetCharset, TQ_SIGNAL(activated(const TQString&)),
+ this, TQ_SLOT(slotSetCharset(const TQString&)));
- a_ctSetCharsetKeyb = new TDEAction(i18n("Set Charset"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotSetCharsetKeyboard()), actionCollection(), "set_charset_keyboard");
+ a_ctSetCharsetKeyb = new TDEAction(i18n("Set Charset"), 0, this,
+ TQ_SLOT(slotSetCharsetKeyboard()), actionCollection(), "set_charset_keyboard");
- a_ctWordWrap = new TDEToggleAction(i18n("&Word Wrap"), 0 , TQT_TQOBJECT(this),
- TQT_SLOT(slotToggleWordWrap()), actionCollection(), "toggle_wordwrap");
+ a_ctWordWrap = new TDEToggleAction(i18n("&Word Wrap"), 0 , this,
+ TQ_SLOT(slotToggleWordWrap()), actionCollection(), "toggle_wordwrap");
//tools menu
- new TDEAction(i18n("Add &Quote Characters"), 0, TQT_TQOBJECT(v_iew->e_dit),
- TQT_SLOT(slotAddQuotes()), actionCollection(), "tools_quote");
+ new TDEAction(i18n("Add &Quote Characters"), 0, v_iew->e_dit,
+ TQ_SLOT(slotAddQuotes()), actionCollection(), "tools_quote");
- new TDEAction(i18n("&Remove Quote Characters"), 0, TQT_TQOBJECT(v_iew->e_dit),
- TQT_SLOT(slotRemoveQuotes()), actionCollection(), "tools_unquote");
+ new TDEAction(i18n("&Remove Quote Characters"), 0, v_iew->e_dit,
+ TQ_SLOT(slotRemoveQuotes()), actionCollection(), "tools_unquote");
- new TDEAction(i18n("Add &Box"), 0, TQT_TQOBJECT(v_iew->e_dit),
- TQT_SLOT(slotAddBox()), actionCollection(), "tools_box");
+ new TDEAction(i18n("Add &Box"), 0, v_iew->e_dit,
+ TQ_SLOT(slotAddBox()), actionCollection(), "tools_box");
- new TDEAction(i18n("Re&move Box"), 0, TQT_TQOBJECT(v_iew->e_dit),
- TQT_SLOT(slotRemoveBox()), actionCollection(), "tools_unbox");
+ new TDEAction(i18n("Re&move Box"), 0, v_iew->e_dit,
+ TQ_SLOT(slotRemoveBox()), actionCollection(), "tools_unbox");
- TDEAction *undoRewrap = new TDEAction(i18n("Get &Original Text (not re-wrapped)"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotUndoRewrap()), actionCollection(), "tools_undoRewrap");
+ TDEAction *undoRewrap = new TDEAction(i18n("Get &Original Text (not re-wrapped)"), 0, this,
+ TQ_SLOT(slotUndoRewrap()), actionCollection(), "tools_undoRewrap");
undoRewrap->setEnabled(!u_nwraped.isNull());
- TDEAction *rot13 = new TDEAction(i18n("S&cramble (Rot 13)"), "encrypted", 0, TQT_TQOBJECT(v_iew->e_dit),
- TQT_SLOT(slotRot13()), actionCollection(), "tools_rot13");
+ TDEAction *rot13 = new TDEAction(i18n("S&cramble (Rot 13)"), "encrypted", 0, v_iew->e_dit,
+ TQ_SLOT(slotRot13()), actionCollection(), "tools_rot13");
rot13->setEnabled(false);
- connect(v_iew->e_dit, TQT_SIGNAL(copyAvailable(bool)), rot13, TQT_SLOT(setEnabled(bool)));
+ connect(v_iew->e_dit, TQ_SIGNAL(copyAvailable(bool)), rot13, TQ_SLOT(setEnabled(bool)));
- a_ctExternalEditor = new TDEAction(i18n("Start &External Editor"), "system-run", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotExternalEditor()), actionCollection(), "external_editor");
+ a_ctExternalEditor = new TDEAction(i18n("Start &External Editor"), "system-run", 0, this,
+ TQ_SLOT(slotExternalEditor()), actionCollection(), "external_editor");
- a_ctSpellCheck = KStdAction::spelling (TQT_TQOBJECT(this), TQT_SLOT(slotSpellcheck()), actionCollection());
+ a_ctSpellCheck = KStdAction::spelling (this, TQ_SLOT(slotSpellcheck()), actionCollection());
//settings menu
createStandardStatusBarAction();
setStandardToolBarMenuEnabled(true);
- KStdAction::keyBindings(TQT_TQOBJECT(this), TQT_SLOT(slotConfKeys()), actionCollection());
+ KStdAction::keyBindings(this, TQ_SLOT(slotConfKeys()), actionCollection());
- KStdAction::configureToolbars(TQT_TQOBJECT(this), TQT_SLOT(slotConfToolbar()), actionCollection());
+ KStdAction::configureToolbars(this, TQ_SLOT(slotConfToolbar()), actionCollection());
- KStdAction::preferences(TQT_TQOBJECT(knGlobals.top), TQT_SLOT(slotSettings()), actionCollection());
+ KStdAction::preferences(knGlobals.top, TQ_SLOT(slotSettings()), actionCollection());
a_ccel=new TDEAccel(this);
a_ctSetCharsetKeyb->plugAccel(a_ccel);
@@ -420,7 +420,7 @@ int KNComposer::listOfResultOfCheckWord( const TQStringList & lst , const TQStri
{
TDEAction * act = new TDEAction( *it );
- connect( act, TQT_SIGNAL(activated()), v_iew->e_dit, TQT_SLOT(slotCorrectWord()) );
+ connect( act, TQ_SIGNAL(activated()), v_iew->e_dit, TQ_SLOT(slotCorrectWord()) );
m_listAction.append( act );
}
}
@@ -437,7 +437,7 @@ void KNComposer::slotUndo()
if (fw->inherits("KEdit"))
((TQMultiLineEdit*)fw)->undo();
- else if (fw->inherits(TQLINEEDIT_OBJECT_NAME_STRING))
+ else if (fw->inherits("TQLineEdit"))
((TQLineEdit*)fw)->undo();
}
@@ -448,7 +448,7 @@ void KNComposer::slotRedo()
if (fw->inherits("KEdit"))
((TQMultiLineEdit*)fw)->redo();
- else if (fw->inherits(TQLINEEDIT_OBJECT_NAME_STRING))
+ else if (fw->inherits("TQLineEdit"))
((TQLineEdit*)fw)->redo();
}
@@ -459,7 +459,7 @@ void KNComposer::slotCut()
if (fw->inherits("KEdit"))
((TQMultiLineEdit*)fw)->cut();
- else if (fw->inherits(TQLINEEDIT_OBJECT_NAME_STRING))
+ else if (fw->inherits("TQLineEdit"))
((TQLineEdit*)fw)->cut();
else kdDebug(5003) << "wrong focus widget" << endl;
}
@@ -471,7 +471,7 @@ void KNComposer::slotCopy()
if (fw->inherits("KEdit"))
((TQMultiLineEdit*)fw)->copy();
- else if (fw->inherits(TQLINEEDIT_OBJECT_NAME_STRING))
+ else if (fw->inherits("TQLineEdit"))
((TQLineEdit*)fw)->copy();
else kdDebug(5003) << "wrong focus widget" << endl;
@@ -485,7 +485,7 @@ void KNComposer::slotPaste()
if (fw->inherits("KEdit"))
((TQMultiLineEdit*)fw)->paste();
- else if (fw->inherits(TQLINEEDIT_OBJECT_NAME_STRING))
+ else if (fw->inherits("TQLineEdit"))
((TQLineEdit*)fw)->paste();
else kdDebug(5003) << "wrong focus widget" << endl;
}
@@ -495,9 +495,9 @@ void KNComposer::slotSelectAll()
TQWidget* fw = focusWidget();
if (!fw) return;
- if (fw->inherits(TQLINEEDIT_OBJECT_NAME_STRING))
+ if (fw->inherits("TQLineEdit"))
((TQLineEdit*)fw)->selectAll();
- else if (fw->inherits(TQMULTILINEEDIT_OBJECT_NAME_STRING))
+ else if (fw->inherits("TQMultiLineEdit"))
((TQMultiLineEdit*)fw)->selectAll();
}
@@ -1302,7 +1302,7 @@ void KNComposer::slotExternalEditor()
if(!filenameAdded) // no %f in the editor command
(*e_xternalEditor) << e_ditorTempfile->name();
- connect(e_xternalEditor, TQT_SIGNAL(processExited(TDEProcess *)),this, TQT_SLOT(slotEditorFinished(TDEProcess *)));
+ connect(e_xternalEditor, TQ_SIGNAL(processExited(TDEProcess *)),this, TQ_SLOT(slotEditorFinished(TDEProcess *)));
if(!e_xternalEditor->start()) {
KMessageBox::error(this, i18n("Unable to start external editor.\nPlease check your configuration in the settings dialog."));
delete e_xternalEditor;
@@ -1327,17 +1327,17 @@ void KNComposer::slotSpellcheck()
a_ctExternalEditor->setEnabled(false);
a_ctSpellCheck->setEnabled(false);
- s_pellChecker = new KSpell(TQT_TQWIDGET(this), i18n("Spellcheck"), TQT_TQOBJECT(this), TQT_SLOT(slotSpellStarted(KSpell *)));
+ s_pellChecker = new KSpell(this, i18n("Spellcheck"), this, TQ_SLOT(slotSpellStarted(KSpell *)));
TQStringList l = KSpellingHighlighter::personalWords();
for ( TQStringList::Iterator it = l.begin(); it != l.end(); ++it ) {
s_pellChecker->addPersonal( *it );
}
- connect(s_pellChecker, TQT_SIGNAL(death()), this, TQT_SLOT(slotSpellFinished()));
- connect(s_pellChecker, TQT_SIGNAL(done(const TQString&)), this, TQT_SLOT(slotSpellDone(const TQString&)));
- connect(s_pellChecker, TQT_SIGNAL(misspelling (const TQString &, const TQStringList &, unsigned int)),
- this, TQT_SLOT(slotMisspelling (const TQString &, const TQStringList &, unsigned int)));
- connect(s_pellChecker, TQT_SIGNAL(corrected (const TQString &, const TQString &, unsigned int)),
- this, TQT_SLOT(slotCorrected (const TQString &, const TQString &, unsigned int)));
+ connect(s_pellChecker, TQ_SIGNAL(death()), this, TQ_SLOT(slotSpellFinished()));
+ connect(s_pellChecker, TQ_SIGNAL(done(const TQString&)), this, TQ_SLOT(slotSpellDone(const TQString&)));
+ connect(s_pellChecker, TQ_SIGNAL(misspelling (const TQString &, const TQStringList &, unsigned int)),
+ this, TQ_SLOT(slotMisspelling (const TQString &, const TQStringList &, unsigned int)));
+ connect(s_pellChecker, TQ_SIGNAL(corrected (const TQString &, const TQString &, unsigned int)),
+ this, TQ_SLOT(slotCorrected (const TQString &, const TQString &, unsigned int)));
}
@@ -1401,7 +1401,7 @@ void KNComposer::slotConfToolbar()
conf->setGroup("composerWindow_options");
saveMainWindowSettings(conf);
KEditToolbar dlg(guiFactory(),this);
- connect(&dlg,TQT_SIGNAL( newToolbarConfig() ), this, TQT_SLOT( slotNewToolbarConfig() ));
+ connect(&dlg,TQ_SIGNAL( newToolbarConfig() ), this, TQ_SLOT( slotNewToolbarConfig() ));
dlg.exec();
}
@@ -1508,10 +1508,10 @@ void KNComposer::slotGroupsBtnClicked()
KNGroupSelectDialog *dlg=new KNGroupSelectDialog(this, nntp, v_iew->g_roups->text().remove(TQRegExp("\\s")));
- connect(dlg, TQT_SIGNAL(loadList(KNNntpAccount*)),
- knGlobals.groupManager(), TQT_SLOT(slotLoadGroupList(KNNntpAccount*)));
- connect(knGlobals.groupManager(), TQT_SIGNAL(newListReady(KNGroupListData*)),
- dlg, TQT_SLOT(slotReceiveList(KNGroupListData*)));
+ connect(dlg, TQ_SIGNAL(loadList(KNNntpAccount*)),
+ knGlobals.groupManager(), TQ_SLOT(slotLoadGroupList(KNNntpAccount*)));
+ connect(knGlobals.groupManager(), TQ_SIGNAL(newListReady(KNGroupListData*)),
+ dlg, TQ_SLOT(slotReceiveList(KNGroupListData*)));
if(dlg->exec())
v_iew->g_roups->setText(dlg->selectedGroups());
@@ -1725,7 +1725,7 @@ TQPopupMenu * KNComposer::popupMenu( const TQString& name )
KNComposer::ComposerView::ComposerView(KNComposer *composer, const char *n)
- : TQSplitter(Qt::Vertical, composer, n), a_ttWidget(0), a_ttView(0), v_iewOpen(false)
+ : TQSplitter(TQt::Vertical, composer, n), a_ttWidget(0), a_ttView(0), v_iewOpen(false)
{
TQWidget *main=new TQWidget(this);
@@ -1744,7 +1744,7 @@ KNComposer::ComposerView::ComposerView(KNComposer *composer, const char *n)
hdrL->addWidget(l_to, 0,0);
hdrL->addWidget(t_o, 0,1);
hdrL->addWidget(t_oBtn, 0,2);
- connect(t_oBtn, TQT_SIGNAL(clicked()), parent(), TQT_SLOT(slotToBtnClicked()));
+ connect(t_oBtn, TQ_SIGNAL(clicked()), parent(), TQ_SLOT(slotToBtnClicked()));
//Newsgroups
g_roups=new KNLineEdit(this, false, hdrFrame);
@@ -1755,9 +1755,9 @@ KNComposer::ComposerView::ComposerView(KNComposer *composer, const char *n)
hdrL->addWidget(l_groups, 1,0);
hdrL->addWidget(g_roups, 1,1);
hdrL->addWidget(g_roupsBtn, 1,2);
- connect(g_roups, TQT_SIGNAL(textChanged(const TQString&)),
- parent(), TQT_SLOT(slotGroupsChanged(const TQString&)));
- connect(g_roupsBtn, TQT_SIGNAL(clicked()), parent(), TQT_SLOT(slotGroupsBtnClicked()));
+ connect(g_roups, TQ_SIGNAL(textChanged(const TQString&)),
+ parent(), TQ_SLOT(slotGroupsChanged(const TQString&)));
+ connect(g_roupsBtn, TQ_SIGNAL(clicked()), parent(), TQ_SLOT(slotGroupsBtnClicked()));
//Followup-To
f_up2=new KComboBox(true, hdrFrame);
@@ -1772,8 +1772,8 @@ KNComposer::ComposerView::ComposerView(KNComposer *composer, const char *n)
TQLabel *l=new TQLabel(s_ubject, i18n("S&ubject:"), hdrFrame);
hdrL->addWidget(l, 3,0);
hdrL->addMultiCellWidget(s_ubject, 3,3, 1,2);
- connect(s_ubject, TQT_SIGNAL(textChanged(const TQString&)),
- parent(), TQT_SLOT(slotSubjectChanged(const TQString&)));
+ connect(s_ubject, TQ_SIGNAL(textChanged(const TQString&)),
+ parent(), TQ_SLOT(slotSubjectChanged(const TQString&)));
//Editor
e_dit=new Editor(this, composer, main);
@@ -1793,12 +1793,12 @@ KNComposer::ComposerView::ComposerView(KNComposer *composer, const char *n)
mSpellChecker = new KDictSpellingHighlighter(e_dit, /*active*/ true, /*autoEnabled*/ true,
/*spellColor*/ config->readColorEntry("NewMessage", &c),
/*colorQuoting*/ true, col1, col2, col3, col4);
- connect( mSpellChecker, TQT_SIGNAL(newSuggestions(const TQString&, const TQStringList&, unsigned int)), e_dit,
- TQT_SLOT(slotAddSuggestion(const TQString&, const TQStringList&, unsigned int)) );
+ connect( mSpellChecker, TQ_SIGNAL(newSuggestions(const TQString&, const TQStringList&, unsigned int)), e_dit,
+ TQ_SLOT(slotAddSuggestion(const TQString&, const TQStringList&, unsigned int)) );
TQVBoxLayout *notL=new TQVBoxLayout(e_dit);
notL->addStretch(1);
- n_otification=new TQGroupBox(2, Qt::Horizontal, e_dit);
+ n_otification=new TQGroupBox(2, TQt::Horizontal, e_dit);
l=new TQLabel(i18n("You are currently editing the article body\nin an external editor. To continue, you have\nto close the external editor."), n_otification);
c_ancelEditorBtn=new TQPushButton(i18n("&Kill External Editor"), n_otification);
n_otification->setFrameStyle(TQFrame::Panel | TQFrame::Raised);
@@ -1906,33 +1906,33 @@ void KNComposer::ComposerView::showAttachmentView()
topL->addMultiCellWidget(a_ttView, 0,2, 0,0);
//connections
- connect(a_ttView, TQT_SIGNAL(currentChanged(TQListViewItem*)),
- parent(), TQT_SLOT(slotAttachmentSelected(TQListViewItem*)));
- connect(a_ttView, TQT_SIGNAL(clicked ( TQListViewItem * )),
- parent(), TQT_SLOT(slotAttachmentSelected(TQListViewItem*)));
-
- connect(a_ttView, TQT_SIGNAL(contextMenu(TDEListView*, TQListViewItem*, const TQPoint&)),
- parent(), TQT_SLOT(slotAttachmentPopup(TDEListView*, TQListViewItem*, const TQPoint&)));
- connect(a_ttView, TQT_SIGNAL(delPressed(TQListViewItem*)),
- parent(), TQT_SLOT(slotAttachmentRemove(TQListViewItem*)));
- connect(a_ttView, TQT_SIGNAL(doubleClicked(TQListViewItem*)),
- parent(), TQT_SLOT(slotAttachmentEdit(TQListViewItem*)));
- connect(a_ttView, TQT_SIGNAL(returnPressed(TQListViewItem*)),
- parent(), TQT_SLOT(slotAttachmentEdit(TQListViewItem*)));
+ connect(a_ttView, TQ_SIGNAL(currentChanged(TQListViewItem*)),
+ parent(), TQ_SLOT(slotAttachmentSelected(TQListViewItem*)));
+ connect(a_ttView, TQ_SIGNAL(clicked ( TQListViewItem * )),
+ parent(), TQ_SLOT(slotAttachmentSelected(TQListViewItem*)));
+
+ connect(a_ttView, TQ_SIGNAL(contextMenu(TDEListView*, TQListViewItem*, const TQPoint&)),
+ parent(), TQ_SLOT(slotAttachmentPopup(TDEListView*, TQListViewItem*, const TQPoint&)));
+ connect(a_ttView, TQ_SIGNAL(delPressed(TQListViewItem*)),
+ parent(), TQ_SLOT(slotAttachmentRemove(TQListViewItem*)));
+ connect(a_ttView, TQ_SIGNAL(doubleClicked(TQListViewItem*)),
+ parent(), TQ_SLOT(slotAttachmentEdit(TQListViewItem*)));
+ connect(a_ttView, TQ_SIGNAL(returnPressed(TQListViewItem*)),
+ parent(), TQ_SLOT(slotAttachmentEdit(TQListViewItem*)));
//buttons
a_ttAddBtn=new TQPushButton(i18n("A&dd..."),a_ttWidget);
- connect(a_ttAddBtn, TQT_SIGNAL(clicked()), parent(), TQT_SLOT(slotAttachFile()));
+ connect(a_ttAddBtn, TQ_SIGNAL(clicked()), parent(), TQ_SLOT(slotAttachFile()));
topL->addWidget(a_ttAddBtn, 0,1);
a_ttRemoveBtn=new TQPushButton(i18n("&Remove"), a_ttWidget);
a_ttRemoveBtn->setEnabled(false);
- connect(a_ttRemoveBtn, TQT_SIGNAL(clicked()), parent(), TQT_SLOT(slotRemoveAttachment()));
+ connect(a_ttRemoveBtn, TQ_SIGNAL(clicked()), parent(), TQ_SLOT(slotRemoveAttachment()));
topL->addWidget(a_ttRemoveBtn, 1,1);
a_ttEditBtn=new TQPushButton(i18n("&Properties"), a_ttWidget);
a_ttEditBtn->setEnabled(false);
- connect(a_ttEditBtn, TQT_SIGNAL(clicked()), parent(), TQT_SLOT(slotAttachmentProperties()));
+ connect(a_ttEditBtn, TQ_SIGNAL(clicked()), parent(), TQ_SLOT(slotAttachmentProperties()));
topL->addWidget(a_ttEditBtn, 2,1, TQt::AlignTop);
topL->setRowStretch(2,1);
@@ -2011,7 +2011,7 @@ KNComposer::Editor::~Editor()
//-----------------------------------------------------------------------------
bool KNComposer::Editor::eventFilter(TQObject*o, TQEvent* e)
{
- if (TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(this))
+ if (o == this)
KCursor::autoHideEventFilter(o, e);
if (e->type() == TQEvent::KeyPress)
@@ -2398,15 +2398,15 @@ void KNComposer::Editor::contentsContextMenuEvent( TQContextMenuEvent */*e*/ )
}
else
{
- spell = new KSpell(this, i18n("Spellcheck"), TQT_TQOBJECT(this), TQT_SLOT(slotSpellStarted(KSpell *)));
+ spell = new KSpell(this, i18n("Spellcheck"), this, TQ_SLOT(slotSpellStarted(KSpell *)));
TQStringList l = KSpellingHighlighter::personalWords();
for ( TQStringList::Iterator it = l.begin(); it != l.end(); ++it ) {
spell->addPersonal( *it );
}
- connect(spell, TQT_SIGNAL(death()), this, TQT_SLOT(slotSpellFinished()));
- connect(spell, TQT_SIGNAL(done(const TQString&)), this, TQT_SLOT(slotSpellDone(const TQString&)));
- connect(spell, TQT_SIGNAL(misspelling (const TQString &, const TQStringList &, unsigned int)),
- this, TQT_SLOT(slotMisspelling (const TQString &, const TQStringList &, unsigned int)));
+ connect(spell, TQ_SIGNAL(death()), this, TQ_SLOT(slotSpellFinished()));
+ connect(spell, TQ_SIGNAL(done(const TQString&)), this, TQ_SLOT(slotSpellDone(const TQString&)));
+ connect(spell, TQ_SIGNAL(misspelling (const TQString &, const TQStringList &, unsigned int)),
+ this, TQ_SLOT(slotMisspelling (const TQString &, const TQStringList &, unsigned int)));
}
}
@@ -2600,8 +2600,8 @@ KNComposer::AttachmentPropertiesDlg::AttachmentPropertiesDlg(KNAttachment *a, TQ
topL->addWidget(mimeGB);
//connections
- connect(m_imeType, TQT_SIGNAL(textChanged(const TQString&)),
- this, TQT_SLOT(slotMimeTypeTextChanged(const TQString&)));
+ connect(m_imeType, TQ_SIGNAL(textChanged(const TQString&)),
+ this, TQ_SLOT(slotMimeTypeTextChanged(const TQString&)));
//finish GUI
setFixedHeight(sizeHint().height());
@@ -2657,5 +2657,3 @@ void KNComposer::AttachmentPropertiesDlg::slotMimeTypeTextChanged(const TQString
//--------------------------------
#include "kncomposer.moc"
-
-// kate: space-indent on; indent-width 2;
diff --git a/knode/kncomposer.h b/knode/kncomposer.h
index c966209f..00dc1551 100644
--- a/knode/kncomposer.h
+++ b/knode/kncomposer.h
@@ -43,7 +43,7 @@ class SpellingFilter;
class KNComposer : public TDEMainWindow , virtual public KNodeComposerIface {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -251,7 +251,7 @@ class KNComposer::ComposerView : public TQSplitter {
//internal class : handle Tabs... (expanding them in textLine(), etc.)
class KNComposer::Editor : public KEdit {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -304,7 +304,7 @@ private:
class KNComposer::AttachmentView : public TDEListView {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -332,7 +332,7 @@ class KNComposer::AttachmentViewItem : public TDEListViewItem {
class KNComposer::AttachmentPropertiesDlg : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -357,7 +357,7 @@ class KNComposer::AttachmentPropertiesDlg : public KDialogBase {
//-----------------------------------------------------------------------------
class KNLineEdit : public TDEABC::AddressLineEdit
{
- Q_OBJECT
+ TQ_OBJECT
typedef TDEABC::AddressLineEdit KNLineEditInherited;
public:
@@ -377,7 +377,7 @@ private:
class KNLineEditSpell : public KNLineEdit
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNLineEditSpell(KNComposer::ComposerView *_composerView, bool useCompletion,TQWidget * parent, const char * name = 0);
diff --git a/knode/knconfig.cpp b/knode/knconfig.cpp
index 7c0ef435..9be34f00 100644
--- a/knode/knconfig.cpp
+++ b/knode/knconfig.cpp
@@ -138,8 +138,8 @@ TQString KNConfig::Identity::getSignature()
for ( TQStringList::Iterator it = command.begin(); it != command.end(); ++it )
process << (*it);
- connect(&process, TQT_SIGNAL(receivedStdout(TDEProcess *, char *, int)), TQT_SLOT(slotReceiveStdout(TDEProcess *, char *, int)));
- connect(&process, TQT_SIGNAL(receivedStderr(TDEProcess *, char *, int)), TQT_SLOT(slotReceiveStderr(TDEProcess *, char *, int)));
+ connect(&process, TQ_SIGNAL(receivedStdout(TDEProcess *, char *, int)), TQ_SLOT(slotReceiveStdout(TDEProcess *, char *, int)));
+ connect(&process, TQ_SIGNAL(receivedStderr(TDEProcess *, char *, int)), TQ_SLOT(slotReceiveStderr(TDEProcess *, char *, int)));
if (!process.start(TDEProcess::Block,TDEProcess::AllOutput))
KMessageBox::error(knGlobals.topWidget, i18n("Cannot run the signature generator."));
diff --git a/knode/knconfig.h b/knode/knconfig.h
index c8605049..f3dff7cd 100644
--- a/knode/knconfig.h
+++ b/knode/knconfig.h
@@ -65,7 +65,7 @@ class Base {
class KDE_EXPORT Identity : public TQObject, public Base {
-Q_OBJECT
+TQ_OBJECT
friend class IdentityWidget;
diff --git a/knode/knconfigmanager.cpp b/knode/knconfigmanager.cpp
index a07a9c5e..f7d26506 100644
--- a/knode/knconfigmanager.cpp
+++ b/knode/knconfigmanager.cpp
@@ -67,7 +67,7 @@ void KNConfigManager::configure()
{
if(!d_ialog) {
d_ialog=new KNConfigDialog(knGlobals.topWidget, "Preferences_Dlg");
- connect(d_ialog, TQT_SIGNAL(finished()), this, TQT_SLOT(slotDialogDone()));
+ connect(d_ialog, TQ_SIGNAL(finished()), this, TQ_SLOT(slotDialogDone()));
d_ialog->show();
}
else
@@ -113,7 +113,7 @@ KNConfigDialog::KNConfigDialog(TQWidget *p, const char *n)
setHelp("anc-setting-your-identity");
- connect(this, TQT_SIGNAL(configCommitted()), this, TQT_SLOT(slotConfigCommitted()));
+ connect(this, TQ_SIGNAL(configCommitted()), this, TQ_SLOT(slotConfigCommitted()));
}
diff --git a/knode/knconfigmanager.h b/knode/knconfigmanager.h
index c0c6a49e..25cbd211 100644
--- a/knode/knconfigmanager.h
+++ b/knode/knconfigmanager.h
@@ -26,7 +26,7 @@ class KNConfigDialog;
class KNConfigManager : TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -71,7 +71,7 @@ class KNConfigManager : TQObject {
class KNConfigDialog : public KCMultiDialog {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knconfigpages.cpp b/knode/knconfigpages.cpp
index 237ff41b..91d7666c 100644
--- a/knode/knconfigpages.cpp
+++ b/knode/knconfigpages.cpp
@@ -23,7 +23,7 @@
#include "knconfigpages.h"
#include "knconfigwidgets.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
//
// common config page with tabs (code mostly taken from kmail)
@@ -38,7 +38,7 @@ KNConfig::BasePageWithTabs::BasePageWithTabs( TQWidget * parent, const char * na
void KNConfig::BasePageWithTabs::addTab( TDECModule* tab, const TQString & title ) {
mTabWidget->addTab( tab, title );
- connect( tab, TQT_SIGNAL(changed( bool )), this, TQT_SIGNAL(changed( bool )) );
+ connect( tab, TQ_SIGNAL(changed( bool )), this, TQ_SIGNAL(changed( bool )) );
}
void KNConfig::BasePageWithTabs::load() {
diff --git a/knode/knconfigpages.h b/knode/knconfigpages.h
index 9bcaf1d4..80d3a6cf 100644
--- a/knode/knconfigpages.h
+++ b/knode/knconfigpages.h
@@ -30,7 +30,7 @@ namespace KNConfig {
* Code mostly taken from kmail.
*/
class KDE_EXPORT BasePageWithTabs : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
BasePageWithTabs( TQWidget * parent=0, const char * name=0 );
@@ -51,7 +51,7 @@ class KDE_EXPORT BasePageWithTabs : public TDECModule {
// accounts page
class AccountsPage : public BasePageWithTabs {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -61,7 +61,7 @@ class AccountsPage : public BasePageWithTabs {
// read news page
class KDE_EXPORT ReadNewsPage : public BasePageWithTabs {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -70,7 +70,7 @@ class KDE_EXPORT ReadNewsPage : public BasePageWithTabs {
// post news page
class KDE_EXPORT PostNewsPage : public BasePageWithTabs {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knconfigwidgets.cpp b/knode/knconfigwidgets.cpp
index 68b474a1..27c81824 100644
--- a/knode/knconfigwidgets.cpp
+++ b/knode/knconfigwidgets.cpp
@@ -66,7 +66,7 @@ KNConfig::IdentityWidget::IdentityWidget( Identity *d, TQWidget *p, const char *
"<p>Ex: <b>John Stuart Masterson III</b>.</p></qt>");
TQWhatsThis::add( n_ame, msg );
TQWhatsThis::add( l, msg );
- connect( n_ame, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(changed()) );
+ connect( n_ame, TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(changed()) );
o_rga=new KLineEdit(this);
l=new TQLabel(o_rga, i18n("Organi&zation:"), this);
@@ -76,7 +76,7 @@ KNConfig::IdentityWidget::IdentityWidget( Identity *d, TQWidget *p, const char *
"<p>Ex: <b>KNode, Inc</b>.</p></qt>" );
TQWhatsThis::add( o_rga, msg );
TQWhatsThis::add( l, msg );
- connect( o_rga, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(changed()) );
+ connect( o_rga, TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(changed()) );
e_mail=new KLineEdit(this);
l=new TQLabel(e_mail, i18n("Email a&ddress:"), this);
@@ -86,7 +86,7 @@ KNConfig::IdentityWidget::IdentityWidget( Identity *d, TQWidget *p, const char *
"reading your articles</p><p>Ex: <b>nospam@please.com</b>.</qt>" );
TQWhatsThis::add( l, msg );
TQWhatsThis::add( e_mail, msg );
- connect( e_mail, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(changed()) );
+ connect( e_mail, TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(changed()) );
r_eplyTo=new KLineEdit(this);
l=new TQLabel(r_eplyTo, i18n("&Reply-to address:"), this);
@@ -97,13 +97,13 @@ KNConfig::IdentityWidget::IdentityWidget( Identity *d, TQWidget *p, const char *
"email address.</p><p>Ex: <b>john@example.com</b>.</p></qt>" );
TQWhatsThis::add( l, msg );
TQWhatsThis::add( r_eplyTo, msg );
- connect( r_eplyTo, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(changed()) );
+ connect( r_eplyTo, TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(changed()) );
m_ailCopiesTo=new KLineEdit(this);
l=new TQLabel(m_ailCopiesTo, i18n("&Mail-copies-to:"), this);
topL->addWidget(l, 4,0);
topL->addMultiCellWidget(m_ailCopiesTo, 4,4, 1,2);
- connect( m_ailCopiesTo, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(changed()) );
+ connect( m_ailCopiesTo, TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(changed()) );
s_igningKey = new Kpgp::SecretKeyRequester(this);
s_igningKey->dialogButton()->setText(i18n("Chan&ge..."));
@@ -117,11 +117,11 @@ KNConfig::IdentityWidget::IdentityWidget( Identity *d, TQWidget *p, const char *
"used to sign your articles.</p></qt>");
TQWhatsThis::add( l, msg );
TQWhatsThis::add( s_igningKey, msg );
- connect( s_igningKey, TQT_SIGNAL(changed()), TQT_SLOT(changed()) );
+ connect( s_igningKey, TQ_SIGNAL(changed()), TQ_SLOT(changed()) );
b_uttonGroup = new TQButtonGroup(this);
- connect( b_uttonGroup, TQT_SIGNAL(clicked(int)),
- this, TQT_SLOT(slotSignatureType(int)) );
+ connect( b_uttonGroup, TQ_SIGNAL(clicked(int)),
+ this, TQ_SLOT(slotSignatureType(int)) );
b_uttonGroup->setExclusive(true);
b_uttonGroup->hide();
@@ -143,12 +143,12 @@ KNConfig::IdentityWidget::IdentityWidget( Identity *d, TQWidget *p, const char *
TQWhatsThis::add( s_ig, msg );
c_hooseBtn = new TQPushButton( i18n("Choo&se..."), this);
- connect(c_hooseBtn, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotSignatureChoose()));
+ connect(c_hooseBtn, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotSignatureChoose()));
topL->addWidget(c_hooseBtn, 7, 2 );
e_ditBtn = new TQPushButton( i18n("&Edit File"), this);
- connect(e_ditBtn, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotSignatureEdit()));
+ connect(e_ditBtn, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotSignatureEdit()));
topL->addWidget(e_ditBtn, 8, 2);
s_igGenerator = new TQCheckBox(i18n("&The file is a program"), this);
@@ -156,7 +156,7 @@ KNConfig::IdentityWidget::IdentityWidget( Identity *d, TQWidget *p, const char *
msg = i18n( "<qt><p>Mark this option if the signature will be generated by a program</p>"
"<p>Ex: <b>/home/robt/gensig.sh</b>.</p></qt>" );
TQWhatsThis::add( s_igGenerator, msg );
- connect( s_igGenerator, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()) );
+ connect( s_igGenerator, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()) );
s_igEdit = new TQRadioButton( i18n("Specify signature &below"), this);
b_uttonGroup->insert(s_igEdit, 1);
@@ -165,13 +165,13 @@ KNConfig::IdentityWidget::IdentityWidget( Identity *d, TQWidget *p, const char *
s_igEditor = new TQTextEdit(this);
s_igEditor->setTextFormat(TQt::PlainText);
topL->addMultiCellWidget(s_igEditor, 10, 10, 0, 2);
- connect( s_igEditor, TQT_SIGNAL(textChanged()), TQT_SLOT(changed()) );
+ connect( s_igEditor, TQ_SIGNAL(textChanged()), TQ_SLOT(changed()) );
topL->setColStretch(1,1);
topL->setRowStretch(7,1);
topL->setResizeMode(TQLayout::Minimum);
- connect(s_ig,TQT_SIGNAL(textChanged ( const TQString & )),
- this,TQT_SLOT(textFileNameChanged(const TQString &)));
+ connect(s_ig,TQ_SIGNAL(textChanged ( const TQString & )),
+ this,TQ_SLOT(textFileNameChanged(const TQString &)));
load();
}
@@ -289,12 +289,12 @@ KNConfig::NntpAccountListWidget::NntpAccountListWidget(TQWidget *p, const char *
// account listbox
l_box=new KNDialogListBox(false, this);
- connect(l_box, TQT_SIGNAL(selected(int)), this, TQT_SLOT(slotItemSelected(int)));
- connect(l_box, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(slotSelectionChanged()));
+ connect(l_box, TQ_SIGNAL(selected(int)), this, TQ_SLOT(slotItemSelected(int)));
+ connect(l_box, TQ_SIGNAL(selectionChanged()), this, TQ_SLOT(slotSelectionChanged()));
topL->addMultiCellWidget(l_box, 0,4, 0,0);
// info box
- TQGroupBox *gb = new TQGroupBox(2,Qt::Vertical,TQString(),this);
+ TQGroupBox *gb = new TQGroupBox(2,TQt::Vertical,TQString(),this);
topL->addWidget(gb,5,0);
s_erverInfo = new TQLabel(gb);
@@ -302,19 +302,19 @@ KNConfig::NntpAccountListWidget::NntpAccountListWidget(TQWidget *p, const char *
// buttons
a_ddBtn=new TQPushButton(i18n("&Add..."), this);
- connect(a_ddBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotAddBtnClicked()));
+ connect(a_ddBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotAddBtnClicked()));
topL->addWidget(a_ddBtn, 0,1);
e_ditBtn=new TQPushButton(i18n("modify something","&Edit..."), this);
- connect(e_ditBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotEditBtnClicked()));
+ connect(e_ditBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotEditBtnClicked()));
topL->addWidget(e_ditBtn, 1,1);
d_elBtn=new TQPushButton(i18n("&Delete"), this);
- connect(d_elBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotDelBtnClicked()));
+ connect(d_elBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotDelBtnClicked()));
topL->addWidget(d_elBtn, 2,1);
s_ubBtn=new TQPushButton(i18n("&Subscribe..."), this);
- connect(s_ubBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotSubBtnClicked()));
+ connect(s_ubBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotSubBtnClicked()));
topL->addWidget(s_ubBtn, 3,1);
topL->setRowStretch(4,1); // stretch the server listbox
@@ -323,9 +323,9 @@ KNConfig::NntpAccountListWidget::NntpAccountListWidget(TQWidget *p, const char *
// the settings dialog is non-modal, so we have to react to changes
// made outside of the dialog
- connect(a_ccManager, TQT_SIGNAL(accountAdded(KNNntpAccount*)), this, TQT_SLOT(slotAddItem(KNNntpAccount*)));
- connect(a_ccManager, TQT_SIGNAL(accountRemoved(KNNntpAccount*)), this, TQT_SLOT(slotRemoveItem(KNNntpAccount*)));
- connect(a_ccManager, TQT_SIGNAL(accountModified(KNNntpAccount*)), this, TQT_SLOT(slotUpdateItem(KNNntpAccount*)));
+ connect(a_ccManager, TQ_SIGNAL(accountAdded(KNNntpAccount*)), this, TQ_SLOT(slotAddItem(KNNntpAccount*)));
+ connect(a_ccManager, TQ_SIGNAL(accountRemoved(KNNntpAccount*)), this, TQ_SLOT(slotRemoveItem(KNNntpAccount*)));
+ connect(a_ccManager, TQ_SIGNAL(accountModified(KNNntpAccount*)), this, TQ_SLOT(slotUpdateItem(KNNntpAccount*)));
slotSelectionChanged(); // disable Delete & Edit initially
}
@@ -510,7 +510,7 @@ KNConfig::NntpAccountConfDialog::NntpAccountConfDialog(KNNntpAccount *a, TQWidge
topL->addMultiCellWidget(u_seDiskCache, 6,6, 0,3);*/
a_uth=new TQCheckBox(i18n("Server requires &authentication"), page);
- connect(a_uth, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotAuthChecked(bool)));
+ connect(a_uth, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(slotAuthChecked(bool)));
topL->addMultiCellWidget(a_uth, 6,6, 0,3);
u_ser=new KLineEdit(page);
@@ -531,7 +531,7 @@ KNConfig::NntpAccountConfDialog::NntpAccountConfDialog(KNNntpAccount *a, TQWidge
topL->addMultiCellWidget(p_ass, 8,8, 1,2);
i_nterval=new TQCheckBox(i18n("Enable &interval news checking"), page);
- connect(i_nterval, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotIntervalChecked(bool)));
+ connect(i_nterval, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(slotIntervalChecked(bool)));
topL->addMultiCellWidget(i_nterval, 9,9, 0,3);
c_heckInterval=new KIntSpinBox(1,10000,1,1,10,page);
@@ -559,7 +559,7 @@ KNConfig::NntpAccountConfDialog::NntpAccountConfDialog(KNNntpAccount *a, TQWidge
cleanupLayout->addWidget( mCleanupWidget );
cleanupLayout->addStretch( 1 );
- connect( knGlobals.accountManager(), TQT_SIGNAL(passwordsChanged()), TQT_SLOT(slotPasswordChanged()) );
+ connect( knGlobals.accountManager(), TQ_SIGNAL(passwordsChanged()), TQ_SLOT(slotPasswordChanged()) );
KNHelper::restoreWindowSize("accNewsPropDLG", this, sizeHint());
@@ -633,7 +633,7 @@ KNConfig::SmtpAccountWidget::SmtpAccountWidget( TQWidget *p, const char *n ) :
SmtpAccountWidgetBase( p, n )
{
mAccount = knGlobals.accountManager()->smtp();
- connect( knGlobals.accountManager(), TQT_SIGNAL(passwordsChanged()), TQT_SLOT(slotPasswordChanged()) );
+ connect( knGlobals.accountManager(), TQ_SIGNAL(passwordsChanged()), TQ_SLOT(slotPasswordChanged()) );
load();
}
@@ -821,29 +821,29 @@ KNConfig::AppearanceWidget::AppearanceWidget( TQWidget *p, const char *n ) :
//color-list
c_List = new KNDialogListBox(false, this);
topL->addMultiCellWidget(c_List,1,3,0,0);
- connect(c_List, TQT_SIGNAL(selected(TQListBoxItem*)),TQT_SLOT(slotColItemSelected(TQListBoxItem*)));
- connect(c_List, TQT_SIGNAL(selectionChanged()), TQT_SLOT(slotColSelectionChanged()));
+ connect(c_List, TQ_SIGNAL(selected(TQListBoxItem*)),TQ_SLOT(slotColItemSelected(TQListBoxItem*)));
+ connect(c_List, TQ_SIGNAL(selectionChanged()), TQ_SLOT(slotColSelectionChanged()));
c_olorCB = new TQCheckBox(i18n("&Use custom colors"),this);
topL->addWidget(c_olorCB,0,0);
- connect(c_olorCB, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotColCheckBoxToggled(bool)));
+ connect(c_olorCB, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(slotColCheckBoxToggled(bool)));
c_olChngBtn=new TQPushButton(i18n("Cha&nge..."), this);
- connect(c_olChngBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotColChangeBtnClicked()));
+ connect(c_olChngBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotColChangeBtnClicked()));
topL->addWidget(c_olChngBtn,1,1);
//font-list
f_List = new KNDialogListBox(false, this);
topL->addMultiCellWidget(f_List,5,7,0,0);
- connect(f_List, TQT_SIGNAL(selected(TQListBoxItem*)),TQT_SLOT(slotFontItemSelected(TQListBoxItem*)));
- connect(f_List, TQT_SIGNAL(selectionChanged()),TQT_SLOT(slotFontSelectionChanged()));
+ connect(f_List, TQ_SIGNAL(selected(TQListBoxItem*)),TQ_SLOT(slotFontItemSelected(TQListBoxItem*)));
+ connect(f_List, TQ_SIGNAL(selectionChanged()),TQ_SLOT(slotFontSelectionChanged()));
f_ontCB = new TQCheckBox(i18n("Use custom &fonts"),this);
topL->addWidget(f_ontCB,4,0);
- connect(f_ontCB, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotFontCheckBoxToggled(bool)));
+ connect(f_ontCB, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(slotFontCheckBoxToggled(bool)));
f_ntChngBtn=new TQPushButton(i18n("Chang&e..."), this);
- connect(f_ntChngBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotFontChangeBtnClicked()));
+ connect(f_ntChngBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotFontChangeBtnClicked()));
topL->addWidget(f_ntChngBtn,5,1);
load();
@@ -1005,7 +1005,7 @@ KNConfig::ReadNewsGeneralWidget::ReadNewsGeneralWidget( ReadNewsGeneral *d, TQWi
l1=new TQLabel(m_axFetch, i18n("&Maximum number of articles to fetch:"), hgb);
m_arkCB=new TQCheckBox(i18n("Mar&k article as read after:"), hgb);
m_arkSecs=new KIntSpinBox(0, 9999, 1, 0, 10, hgb);
- connect(m_arkCB, TQT_SIGNAL(toggled(bool)), m_arkSecs, TQT_SLOT(setEnabled(bool)));
+ connect(m_arkCB, TQ_SIGNAL(toggled(bool)), m_arkSecs, TQ_SLOT(setEnabled(bool)));
m_arkSecs->setSuffix(i18n(" sec"));
m_arkCrossCB=new TQCheckBox(i18n("Mark c&rossposted articles as read"), hgb);
@@ -1059,19 +1059,19 @@ KNConfig::ReadNewsGeneralWidget::ReadNewsGeneralWidget( ReadNewsGeneral *d, TQWi
topL->setResizeMode(TQLayout::Minimum);
- connect(a_utoCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(m_axFetch, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed()));
- connect(m_arkCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(m_arkSecs, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed()));
- connect(m_arkCrossCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(s_martScrollingCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(e_xpThrCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(d_efaultExpandCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(l_inesCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(s_coreCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(u_nreadCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(c_ollCacheSize, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed()));
- connect(a_rtCacheSize, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed()));
+ connect(a_utoCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(m_axFetch, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(changed()));
+ connect(m_arkCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(m_arkSecs, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(changed()));
+ connect(m_arkCrossCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(s_martScrollingCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(e_xpThrCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(d_efaultExpandCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(l_inesCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(s_coreCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(u_nreadCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(c_ollCacheSize, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(changed()));
+ connect(a_rtCacheSize, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(changed()));
load();
}
@@ -1138,7 +1138,7 @@ KNConfig::ReadNewsNavigationWidget::ReadNewsNavigationWidget( ReadNewsNavigation
m_arkAllReadGoNextCB=new TQCheckBox(i18n("&Switch to the next group"), gb);
gbL->addWidget(m_arkAllReadGoNextCB);
- connect(m_arkAllReadGoNextCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
+ connect(m_arkAllReadGoNextCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
// ==== Mark Thread as Read =================================================
@@ -1152,8 +1152,8 @@ KNConfig::ReadNewsNavigationWidget::ReadNewsNavigationWidget( ReadNewsNavigation
m_arkThreadReadGoNextCB=new TQCheckBox(i18n("Go &to the next unread thread"), gb);
gbL->addWidget(m_arkThreadReadGoNextCB);
- connect(m_arkThreadReadCloseThreadCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(m_arkThreadReadGoNextCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
+ connect(m_arkThreadReadCloseThreadCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(m_arkThreadReadGoNextCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
// ==== Ignore Thread =======================================================
@@ -1167,8 +1167,8 @@ KNConfig::ReadNewsNavigationWidget::ReadNewsNavigationWidget( ReadNewsNavigation
i_gnoreThreadGoNextCB=new TQCheckBox(i18n("Go to the next &unread thread"), gb);
gbL->addWidget(i_gnoreThreadGoNextCB);
- connect(i_gnoreThreadCloseThreadCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(i_gnoreThreadGoNextCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
+ connect(i_gnoreThreadCloseThreadCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(i_gnoreThreadGoNextCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
topL->addStretch(1);
topL->setResizeMode(TQLayout::Minimum);
@@ -1253,14 +1253,14 @@ KNConfig::ReadNewsViewerWidget::ReadNewsViewerWidget( ReadNewsViewer *d, TQWidge
topL->setResizeMode(TQLayout::Minimum);
- connect(r_ewrapCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(r_emoveTrailingCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(s_igCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(q_uoteCharacters, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(changed()));
- connect(o_penAttCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(a_ltAttCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect( mShowRefBar, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()) );
- connect( mAlwaysShowHTML, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()) );
+ connect(r_ewrapCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(r_emoveTrailingCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(s_igCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(q_uoteCharacters, TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(changed()));
+ connect(o_penAttCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(a_ltAttCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect( mShowRefBar, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()) );
+ connect( mAlwaysShowHTML, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()) );
load();
}
@@ -1311,29 +1311,29 @@ KNConfig::DisplayedHeadersWidget::DisplayedHeadersWidget( DisplayedHeaders *d, T
//listbox
l_box=new KNDialogListBox(false, this);
- connect(l_box, TQT_SIGNAL(selected(int)), this, TQT_SLOT(slotItemSelected(int)));
- connect(l_box, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(slotSelectionChanged()));
+ connect(l_box, TQ_SIGNAL(selected(int)), this, TQ_SLOT(slotItemSelected(int)));
+ connect(l_box, TQ_SIGNAL(selectionChanged()), this, TQ_SLOT(slotSelectionChanged()));
topL->addMultiCellWidget(l_box, 0,6, 0,0);
// buttons
a_ddBtn=new TQPushButton(i18n("&Add..."), this);
- connect(a_ddBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotAddBtnClicked()));
+ connect(a_ddBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotAddBtnClicked()));
topL->addWidget(a_ddBtn, 0,1);
d_elBtn=new TQPushButton(i18n("&Delete"), this);
- connect(d_elBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotDelBtnClicked()));
+ connect(d_elBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotDelBtnClicked()));
topL->addWidget(d_elBtn, 1,1);
e_ditBtn=new TQPushButton(i18n("modify something","&Edit..."), this);
- connect(e_ditBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotEditBtnClicked()));
+ connect(e_ditBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotEditBtnClicked()));
topL->addWidget(e_ditBtn, 2,1);
u_pBtn=new TQPushButton(i18n("&Up"), this);
- connect(u_pBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotUpBtnClicked()));
+ connect(u_pBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotUpBtnClicked()));
topL->addWidget(u_pBtn, 4,1);
d_ownBtn=new TQPushButton(i18n("Do&wn"), this);
- connect(d_ownBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotDownBtnClicked()));
+ connect(d_ownBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotDownBtnClicked()));
topL->addWidget(d_ownBtn, 5,1);
topL->addRowSpacing(3,20); // separate up/down buttons
@@ -1499,7 +1499,7 @@ KNConfig::DisplayedHeaderConfDialog::DisplayedHeaderConfDialog(KNDisplayedHeader
h_drC=new KComboBox(true, nameW);
h_drC->lineEdit()->setMaxLength(64);
- connect(h_drC, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotActivated(int)));
+ connect(h_drC, TQ_SIGNAL(activated(int)), this, TQ_SLOT(slotActivated(int)));
nameL->addWidget(new TQLabel(h_drC, i18n("H&eader:"),nameW),0,0);
nameL->addWidget(h_drC,0,1);
@@ -1551,7 +1551,7 @@ KNConfig::DisplayedHeaderConfDialog::DisplayedHeaderConfDialog(KNDisplayedHeader
setFixedHeight(sizeHint().height());
KNHelper::restoreWindowSize("accReadHdrPropDLG", this, sizeHint());
- connect(n_ameE, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(slotNameChanged(const TQString&)));
+ connect(n_ameE, TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(slotNameChanged(const TQString&)));
setHelp("anc-knode-headers");
slotNameChanged( n_ameE->text() );
@@ -1610,13 +1610,13 @@ KNConfig::ScoringWidget::ScoringWidget( Scoring *d, TQWidget *p, const char *n )
TQLabel *l=new TQLabel(i_gnored, i18n("Default score for &ignored threads:"), this);
topL->addWidget(l, 2, 0);
topL->addWidget(i_gnored, 2, 1);
- connect(i_gnored, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed()));
+ connect(i_gnored, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(changed()));
w_atched=new KIntSpinBox(-100000, 100000, 1, 0, 10, this);
l=new TQLabel(w_atched, i18n("Default score for &watched threads:"), this);
topL->addWidget(l, 3, 0);
topL->addWidget(w_atched, 3, 1);
- connect(w_atched, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed()));
+ connect(w_atched, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(changed()));
topL->setColStretch(0, 1);
@@ -1658,24 +1658,24 @@ KNConfig::FilterListWidget::FilterListWidget( TQWidget *p, const char *n ) :
f_lb=new KNDialogListBox(false, this);
topL->addWidget(new TQLabel(f_lb, i18n("&Filters:"),this),0,0);
- connect(f_lb, TQT_SIGNAL(selectionChanged()), TQT_SLOT(slotSelectionChangedFilter()));
- connect(f_lb, TQT_SIGNAL(selected(int)), TQT_SLOT(slotItemSelectedFilter(int)));
+ connect(f_lb, TQ_SIGNAL(selectionChanged()), TQ_SLOT(slotSelectionChangedFilter()));
+ connect(f_lb, TQ_SIGNAL(selected(int)), TQ_SLOT(slotItemSelectedFilter(int)));
topL->addMultiCellWidget(f_lb,1,5,0,0);
a_ddBtn=new TQPushButton(i18n("&Add..."), this);
- connect(a_ddBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotAddBtnClicked()));
+ connect(a_ddBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotAddBtnClicked()));
topL->addWidget(a_ddBtn,1,1);
e_ditBtn=new TQPushButton(i18n("modify something","&Edit..."), this);
- connect(e_ditBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotEditBtnClicked()));
+ connect(e_ditBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotEditBtnClicked()));
topL->addWidget(e_ditBtn,2,1);
c_opyBtn=new TQPushButton(i18n("Co&py..."), this);
- connect(c_opyBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotCopyBtnClicked()));
+ connect(c_opyBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotCopyBtnClicked()));
topL->addWidget(c_opyBtn,3,1);
d_elBtn=new TQPushButton(i18n("&Delete"), this);
- connect(d_elBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotDelBtnClicked()));
+ connect(d_elBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotDelBtnClicked()));
topL->addWidget(d_elBtn,4,1);
// == Menu ====================================================
@@ -1683,23 +1683,23 @@ KNConfig::FilterListWidget::FilterListWidget( TQWidget *p, const char *n ) :
m_lb=new KNDialogListBox(false, this);
topL->addWidget(new TQLabel(m_lb, i18n("&Menu:"),this),6,0);
- connect(m_lb, TQT_SIGNAL(selectionChanged()), TQT_SLOT(slotSelectionChangedMenu()));
+ connect(m_lb, TQ_SIGNAL(selectionChanged()), TQ_SLOT(slotSelectionChangedMenu()));
topL->addMultiCellWidget(m_lb,7,11,0,0);
u_pBtn=new TQPushButton(i18n("&Up"), this);
- connect(u_pBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotUpBtnClicked()));
+ connect(u_pBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotUpBtnClicked()));
topL->addWidget(u_pBtn,7,1);
d_ownBtn=new TQPushButton(i18n("Do&wn"), this);
- connect(d_ownBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotDownBtnClicked()));
+ connect(d_ownBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotDownBtnClicked()));
topL->addWidget(d_ownBtn,8,1);
s_epAddBtn=new TQPushButton(i18n("Add\n&Separator"), this);
- connect(s_epAddBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotSepAddBtnClicked()));
+ connect(s_epAddBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotSepAddBtnClicked()));
topL->addWidget(s_epAddBtn,9,1);
s_epRemBtn=new TQPushButton(i18n("&Remove\nSeparator"), this);
- connect(s_epRemBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotSepRemBtnClicked()));
+ connect(s_epRemBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotSepRemBtnClicked()));
topL->addWidget(s_epRemBtn,10,1);
topL->setRowStretch(5,1);
@@ -1946,21 +1946,21 @@ KNConfig::PostNewsTechnicalWidget::PostNewsTechnicalWidget( PostNewsTechnical *d
c_harset->insertStringList(d->composerCharsets());
ggbL->addWidget(new TQLabel(c_harset, i18n("Cha&rset:"), ggb), 1,0);
ggbL->addWidget(c_harset, 1,1);
- connect(c_harset, TQT_SIGNAL(activated(int)), TQT_SLOT(changed()));
+ connect(c_harset, TQ_SIGNAL(activated(int)), TQ_SLOT(changed()));
e_ncoding=new TQComboBox(ggb);
e_ncoding->insertItem(i18n("Allow 8-bit"));
e_ncoding->insertItem(i18n("7-bit (Quoted-Printable)"));
ggbL->addWidget(new TQLabel(e_ncoding, i18n("Enco&ding:"), ggb), 2,0);
ggbL->addWidget(e_ncoding, 2,1);
- connect(e_ncoding, TQT_SIGNAL(activated(int)), TQT_SLOT(changed()));
+ connect(e_ncoding, TQ_SIGNAL(activated(int)), TQ_SLOT(changed()));
u_seOwnCSCB=new TQCheckBox(i18n("Use o&wn default charset when replying"), ggb);
ggbL->addMultiCellWidget(u_seOwnCSCB, 3,3, 0,1);
- connect(u_seOwnCSCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
+ connect(u_seOwnCSCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
g_enMIdCB=new TQCheckBox(i18n("&Generate message-id"), ggb);
- connect(g_enMIdCB, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotGenMIdCBToggled(bool)));
+ connect(g_enMIdCB, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(slotGenMIdCBToggled(bool)));
ggbL->addMultiCellWidget(g_enMIdCB, 4,4, 0,1);
h_ost=new KLineEdit(ggb);
h_ost->setEnabled(false);
@@ -1969,7 +1969,7 @@ KNConfig::PostNewsTechnicalWidget::PostNewsTechnicalWidget( PostNewsTechnical *d
ggbL->addWidget(h_ostL, 5,0);
ggbL->addWidget(h_ost, 5,1);
ggbL->setColStretch(1,1);
- connect(h_ost, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(changed()));
+ connect(h_ost, TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(changed()));
// ==== X-Headers =============================================================
@@ -1980,20 +1980,20 @@ KNConfig::PostNewsTechnicalWidget::PostNewsTechnicalWidget( PostNewsTechnical *d
xgbL->addRowSpacing(0, fontMetrics().lineSpacing()-4);
l_box=new KNDialogListBox(false, xgb);
- connect(l_box, TQT_SIGNAL(selected(int)), TQT_SLOT(slotItemSelected(int)));
- connect(l_box, TQT_SIGNAL(selectionChanged()), TQT_SLOT(slotSelectionChanged()));
+ connect(l_box, TQ_SIGNAL(selected(int)), TQ_SLOT(slotItemSelected(int)));
+ connect(l_box, TQ_SIGNAL(selectionChanged()), TQ_SLOT(slotSelectionChanged()));
xgbL->addMultiCellWidget(l_box, 1,4, 0,0);
a_ddBtn=new TQPushButton(i18n("&Add..."), xgb);
- connect(a_ddBtn, TQT_SIGNAL(clicked()), TQT_SLOT(slotAddBtnClicked()));
+ connect(a_ddBtn, TQ_SIGNAL(clicked()), TQ_SLOT(slotAddBtnClicked()));
xgbL->addWidget(a_ddBtn, 1,1);
d_elBtn=new TQPushButton(i18n("Dele&te"), xgb);
- connect(d_elBtn, TQT_SIGNAL(clicked()), TQT_SLOT(slotDelBtnClicked()));
+ connect(d_elBtn, TQ_SIGNAL(clicked()), TQ_SLOT(slotDelBtnClicked()));
xgbL->addWidget(d_elBtn, 2,1);
e_ditBtn=new TQPushButton(i18n("modify something","&Edit..."), xgb);
- connect(e_ditBtn, TQT_SIGNAL(clicked()), TQT_SLOT(slotEditBtnClicked()));
+ connect(e_ditBtn, TQ_SIGNAL(clicked()), TQ_SLOT(slotEditBtnClicked()));
xgbL->addWidget(e_ditBtn, 3,1);
TQLabel *placeHolders = new TQLabel(i18n("<qt>Placeholders for replies: <b>%NAME</b>=sender's name, <b>%EMAIL</b>=sender's address</qt>"), xgb);
@@ -2001,7 +2001,7 @@ KNConfig::PostNewsTechnicalWidget::PostNewsTechnicalWidget( PostNewsTechnical *d
i_ncUaCB=new TQCheckBox(i18n("Do not add the \"&User-Agent\" identification header"), xgb);
xgbL->addMultiCellWidget(i_ncUaCB, 6,6, 0,1);
- connect(i_ncUaCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
+ connect(i_ncUaCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
xgbL->setRowStretch(4,1);
xgbL->setColStretch(0,1);
@@ -2183,13 +2183,13 @@ KNConfig::PostNewsComposerWidget::PostNewsComposerWidget( PostNewsComposer *d, T
generalL->addWidget(w_ordWrapCB,1,0);
m_axLen=new KIntSpinBox(20, 200, 1, 20, 10, generalB);
generalL->addWidget(m_axLen,1,2);
- connect(w_ordWrapCB, TQT_SIGNAL(toggled(bool)), m_axLen, TQT_SLOT(setEnabled(bool)));
- connect(w_ordWrapCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
- connect(m_axLen, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed()));
+ connect(w_ordWrapCB, TQ_SIGNAL(toggled(bool)), m_axLen, TQ_SLOT(setEnabled(bool)));
+ connect(w_ordWrapCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
+ connect(m_axLen, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(changed()));
o_wnSigCB=new TQCheckBox(i18n("Appe&nd signature automatically"), generalB);
generalL->addMultiCellWidget(o_wnSigCB,2,2,0,1);
- connect(o_wnSigCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
+ connect(o_wnSigCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
generalL->setColStretch(1,1);
@@ -2205,19 +2205,19 @@ KNConfig::PostNewsComposerWidget::PostNewsComposerWidget( PostNewsComposer *d, T
replyL->addMultiCellWidget(new TQLabel(i_ntro,i18n("&Introduction phrase:"), replyB),1,1,0,1);
replyL->addMultiCellWidget(i_ntro, 2,2,0,1);
replyL->addMultiCellWidget(new TQLabel(i18n("<qt>Placeholders: <b>%NAME</b>=sender's name, <b>%EMAIL</b>=sender's address,<br><b>%DATE</b>=date, <b>%MSID</b>=message-id, <b>%GROUP</b>=group name, <b>%L</b>=line break</qt>"), replyB),3,3,0,1);
- connect(i_ntro, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(changed()));
+ connect(i_ntro, TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(changed()));
r_ewrapCB=new TQCheckBox(i18n("Rewrap quoted te&xt automatically"), replyB);
replyL->addMultiCellWidget(r_ewrapCB, 4,4,0,1);
- connect(r_ewrapCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
+ connect(r_ewrapCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
a_uthSigCB=new TQCheckBox(i18n("Include the a&uthor's signature"), replyB);
replyL->addMultiCellWidget(a_uthSigCB, 5,5,0,1);
- connect(a_uthSigCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
+ connect(a_uthSigCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
c_ursorOnTopCB=new TQCheckBox(i18n("Put the cursor &below the introduction phrase"), replyB);
replyL->addMultiCellWidget(c_ursorOnTopCB, 6,6,0,1);
- connect(c_ursorOnTopCB, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
+ connect(c_ursorOnTopCB, TQ_SIGNAL(toggled(bool)), TQ_SLOT(changed()));
replyL->setColStretch(1,1);
@@ -2233,15 +2233,15 @@ KNConfig::PostNewsComposerWidget::PostNewsComposerWidget( PostNewsComposer *d, T
editorL->addWidget(new TQLabel(e_ditor, i18n("Specify edi&tor:"), editorB),1,0);
editorL->addWidget(e_ditor,1,1);
TQPushButton *btn = new TQPushButton(i18n("Choo&se..."),editorB);
- connect(btn, TQT_SIGNAL(clicked()), TQT_SLOT(slotChooseEditor()));
- connect(e_ditor, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(changed()));
+ connect(btn, TQ_SIGNAL(clicked()), TQ_SLOT(slotChooseEditor()));
+ connect(e_ditor, TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(changed()));
editorL->addWidget(btn,1,2);
editorL->addMultiCellWidget(new TQLabel(i18n("%f will be replaced with the filename to edit."), editorB),2,2,0,2);
e_xternCB=new TQCheckBox(i18n("Start exte&rnal editor automatically"), editorB);
editorL->addMultiCellWidget(e_xternCB, 3,3,0,2);
- connect(e_xternCB, TQT_SIGNAL(clicked()), TQT_SLOT(changed()));
+ connect(e_xternCB, TQ_SIGNAL(clicked()), TQ_SLOT(changed()));
editorL->setColStretch(1,1);
@@ -2310,7 +2310,7 @@ KNConfig::PostNewsSpellingWidget::PostNewsSpellingWidget( TQWidget *p, const cha
c_onf = new KSpellConfig( this, "spell", 0, false );
topL->addWidget(c_onf);
- connect(c_onf, TQT_SIGNAL(configChanged()), TQT_SLOT(changed()));
+ connect(c_onf, TQ_SIGNAL(configChanged()), TQ_SLOT(changed()));
topL->addStretch(1);
}
@@ -2335,7 +2335,7 @@ KNConfig::PrivacyWidget::PrivacyWidget(TQWidget *p, const char *n) :
TQBoxLayout *topLayout = new TQVBoxLayout(this, 5);
c_onf = new Kpgp::Config(this,"knode pgp config",false);
topLayout->addWidget(c_onf);
- connect(c_onf, TQT_SIGNAL(changed()), TQT_SLOT(changed()));
+ connect(c_onf, TQ_SIGNAL(changed()), TQ_SLOT(changed()));
topLayout->addStretch(1);
@@ -2367,12 +2367,12 @@ KNConfig::GroupCleanupWidget::GroupCleanupWidget( Cleanup *data, TQWidget *paren
if (!mData->isGlobal()) {
mDefault = new TQCheckBox( i18n("&Use global cleanup configuration"), this );
- connect( mDefault, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotDefaultToggled(bool)) );
+ connect( mDefault, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotDefaultToggled(bool)) );
top->addWidget( mDefault );
}
mExpGroup = new TQGroupBox( i18n("Newsgroup Cleanup Settings"), this );
- mExpGroup->setColumnLayout(0, Qt::Vertical );
+ mExpGroup->setColumnLayout(0, TQt::Vertical );
mExpGroup->layout()->setSpacing( KDialog::spacingHint() );
mExpGroup->layout()->setMargin( KDialog::marginHint() );
top->addWidget( mExpGroup );
@@ -2382,38 +2382,38 @@ KNConfig::GroupCleanupWidget::GroupCleanupWidget( Cleanup *data, TQWidget *paren
mExpEnabled = new TQCheckBox( i18n("&Expire old articles automatically"), mExpGroup );
grid->addMultiCellWidget( mExpEnabled, 1, 1, 0, 1 );
- connect( mExpEnabled, TQT_SIGNAL(toggled(bool)), TQT_SIGNAL(changed()) );
+ connect( mExpEnabled, TQ_SIGNAL(toggled(bool)), TQ_SIGNAL(changed()) );
mExpDays = new KIntSpinBox( 0, 99999, 1, 0, 10, mExpGroup );
TQLabel *label = new TQLabel( mExpDays, i18n("&Purge groups every:"), mExpGroup );
grid->addWidget( label, 2, 0 );
grid->addWidget( mExpDays, 2, 1, TQt::AlignRight );
- connect( mExpDays, TQT_SIGNAL(valueChanged(int)), TQT_SIGNAL(changed()) );
- connect( mExpDays, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(expDaysChanged(int)) );
- connect( mExpEnabled, TQT_SIGNAL(toggled(bool)), label, TQT_SLOT(setEnabled(bool)) );
- connect( mExpEnabled, TQT_SIGNAL(toggled(bool)), mExpDays, TQT_SLOT(setEnabled(bool)) );
+ connect( mExpDays, TQ_SIGNAL(valueChanged(int)), TQ_SIGNAL(changed()) );
+ connect( mExpDays, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(expDaysChanged(int)) );
+ connect( mExpEnabled, TQ_SIGNAL(toggled(bool)), label, TQ_SLOT(setEnabled(bool)) );
+ connect( mExpEnabled, TQ_SIGNAL(toggled(bool)), mExpDays, TQ_SLOT(setEnabled(bool)) );
mExpReadDays = new KIntSpinBox( 0, 99999, 1, 0, 10, mExpGroup );
label = new TQLabel( mExpReadDays, i18n("&Keep read articles:"), mExpGroup );
grid->addWidget( label, 3, 0 );
grid->addWidget( mExpReadDays, 3, 1, TQt::AlignRight );
- connect( mExpReadDays, TQT_SIGNAL(valueChanged(int)), TQT_SIGNAL(changed()) );
- connect( mExpReadDays, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(expReadDaysChanged(int)) );
+ connect( mExpReadDays, TQ_SIGNAL(valueChanged(int)), TQ_SIGNAL(changed()) );
+ connect( mExpReadDays, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(expReadDaysChanged(int)) );
mExpUnreadDays = new KIntSpinBox( 0, 99999, 1, 0, 10, mExpGroup );
label = new TQLabel( mExpUnreadDays, i18n("Keep u&nread articles:"), mExpGroup );
grid->addWidget( label, 4, 0 );
grid->addWidget( mExpUnreadDays, 4, 1, TQt::AlignRight );
- connect( mExpUnreadDays, TQT_SIGNAL(valueChanged(int)), TQT_SIGNAL(changed()) );
- connect( mExpUnreadDays, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(expUnreadDaysChanged(int)) );
+ connect( mExpUnreadDays, TQ_SIGNAL(valueChanged(int)), TQ_SIGNAL(changed()) );
+ connect( mExpUnreadDays, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(expUnreadDaysChanged(int)) );
mExpUnavailable = new TQCheckBox( i18n("&Remove articles that are not available on the server"), mExpGroup );
grid->addMultiCellWidget( mExpUnavailable, 5, 5, 0, 1 );
- connect( mExpUnavailable, TQT_SIGNAL(toggled(bool)), TQT_SIGNAL(changed()) );
+ connect( mExpUnavailable, TQ_SIGNAL(toggled(bool)), TQ_SIGNAL(changed()) );
mPreserveThreads = new TQCheckBox( i18n("Preser&ve threads"), mExpGroup );
grid->addMultiCellWidget( mPreserveThreads, 6, 6, 0, 1 );
- connect( mPreserveThreads, TQT_SIGNAL(toggled(bool)), TQT_SIGNAL(changed()) );
+ connect( mPreserveThreads, TQ_SIGNAL(toggled(bool)), TQ_SIGNAL(changed()) );
grid->setColStretch(1,1);
}
@@ -2476,12 +2476,12 @@ KNConfig::CleanupWidget::CleanupWidget( TQWidget *p, const char *n ) :
mGroupCleanup = new GroupCleanupWidget( d_ata, this );
topL->addWidget( mGroupCleanup );
- connect( mGroupCleanup, TQT_SIGNAL(changed()), TQT_SLOT(changed()) );
+ connect( mGroupCleanup, TQ_SIGNAL(changed()), TQ_SLOT(changed()) );
// === folders =========================================================
TQGroupBox *foldersB=new TQGroupBox(i18n("Folders"), this);
- foldersB->setColumnLayout(0, Qt::Vertical );
+ foldersB->setColumnLayout(0, TQt::Vertical );
foldersB->layout()->setSpacing( KDialog::spacingHint() );
foldersB->layout()->setMargin( KDialog::marginHint() );
@@ -2491,15 +2491,15 @@ KNConfig::CleanupWidget::CleanupWidget( TQWidget *p, const char *n ) :
foldersL->setRowSpacing( 0, KDialog::spacingHint() );
f_olderCB=new TQCheckBox(i18n("Co&mpact folders automatically"), foldersB);
- connect(f_olderCB, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotFolderCBtoggled(bool)));
+ connect(f_olderCB, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(slotFolderCBtoggled(bool)));
foldersL->addMultiCellWidget(f_olderCB,1,1,0,1);
f_olderDays=new KIntSpinBox(0, 99999, 1, 0, 10, foldersB);
f_olderDaysL=new TQLabel(f_olderDays,i18n("P&urge folders every:"), foldersB);
foldersL->addWidget(f_olderDaysL,2,0);
foldersL->addWidget(f_olderDays,2,1,TQt::AlignRight);
- connect(f_olderDays, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(changed()));
- connect(f_olderDays, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotFolderDaysChanged(int)));
+ connect(f_olderDays, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(changed()));
+ connect(f_olderDays, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(slotFolderDaysChanged(int)));
foldersL->setColStretch(1,1);
diff --git a/knode/knconfigwidgets.h b/knode/knconfigwidgets.h
index 1c9fbeab..85c2ecd7 100644
--- a/knode/knconfigwidgets.h
+++ b/knode/knconfigwidgets.h
@@ -65,7 +65,7 @@ namespace KNConfig {
class KDE_EXPORT IdentityWidget : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -107,7 +107,7 @@ class KDE_EXPORT IdentityWidget : public TDECModule {
class KDE_EXPORT NntpAccountListWidget : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -155,7 +155,7 @@ class KDE_EXPORT NntpAccountListWidget : public TDECModule {
class KDE_EXPORT NntpAccountConfDialog : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -197,7 +197,7 @@ class KDE_EXPORT NntpAccountConfDialog : public KDialogBase {
class KDE_EXPORT SmtpAccountWidget : public SmtpAccountWidgetBase {
-Q_OBJECT
+TQ_OBJECT
public:
@@ -219,7 +219,7 @@ Q_OBJECT
class KDE_EXPORT AppearanceWidget : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -348,7 +348,7 @@ class KDE_EXPORT ReadNewsNavigationWidget : public TDECModule {
class KDE_EXPORT ReadNewsViewerWidget : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -375,7 +375,7 @@ class KDE_EXPORT ReadNewsViewerWidget : public TDECModule {
class KDE_EXPORT DisplayedHeadersWidget : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -422,7 +422,7 @@ class KDE_EXPORT DisplayedHeadersWidget : public TDECModule {
class KDE_EXPORT DisplayedHeaderConfDialog : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -447,7 +447,7 @@ class KDE_EXPORT DisplayedHeaderConfDialog : public KDialogBase {
class KDE_EXPORT ScoringWidget : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -468,7 +468,7 @@ class KDE_EXPORT ScoringWidget : public TDECModule {
class KDE_EXPORT FilterListWidget : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -534,7 +534,7 @@ class KDE_EXPORT FilterListWidget : public TDECModule {
class KDE_EXPORT PostNewsTechnicalWidget : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -588,7 +588,7 @@ class KDE_EXPORT XHeaderConfDialog : public KDialogBase {
class KDE_EXPORT PostNewsComposerWidget : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -634,7 +634,7 @@ class KDE_EXPORT PostNewsSpellingWidget : public TDECModule {
class KDE_EXPORT PrivacyWidget : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -654,7 +654,7 @@ class KDE_EXPORT PrivacyWidget : public TDECModule {
/** Configuration widget for group expireration */
class KDE_EXPORT GroupCleanupWidget : public TQWidget {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -683,7 +683,7 @@ class KDE_EXPORT GroupCleanupWidget : public TQWidget {
/** Global cleanup configuration widget */
class KDE_EXPORT CleanupWidget : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -716,7 +716,7 @@ class KDE_EXPORT CleanupWidget : public TDECModule {
/*class CacheWidget : public TDECModule {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knconvert.cpp b/knode/knconvert.cpp
index 20a63ffa..c8325f64 100644
--- a/knode/knconvert.cpp
+++ b/knode/knconvert.cpp
@@ -61,8 +61,8 @@ KNConvert::KNConvert(const TQString &version)
c_ancelBtn=new KPushButton(KStdGuiItem::cancel(), this);
btnL->addWidget(c_ancelBtn);
- connect(s_tartBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotStart()));
- connect(c_ancelBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(reject()));
+ connect(s_tartBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotStart()));
+ connect(c_ancelBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(reject()));
w_1=new TQWidget(s_tack);
s_tack->addWidget(w_1, 1);
@@ -78,7 +78,7 @@ will be created before the conversion starts.").arg(KNODE_VERSION), w_1);
c_reateBkup=new TQCheckBox(i18n("Create backup of old data"), w_1);
w1L->addMultiCellWidget(c_reateBkup, 2,2, 0,2);
- connect(c_reateBkup, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotCreateBkupToggled(bool)));
+ connect(c_reateBkup, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(slotCreateBkupToggled(bool)));
b_ackupPathLabel=new TQLabel(i18n("Save backup in:"), w_1);
w1L->addWidget(b_ackupPathLabel, 3,0);
@@ -87,7 +87,7 @@ will be created before the conversion starts.").arg(KNODE_VERSION), w_1);
w1L->addWidget(b_ackupPath, 3,1);
b_rowseBtn= new TQPushButton(i18n("Browse..."), w_1);
- connect(b_rowseBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotBrowse()));
+ connect(b_rowseBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotBrowse()));
w1L->addWidget(b_rowseBtn, 3,2);
w1L->setColStretch(1,1);
w1L->addRowSpacing(1,15);
@@ -177,7 +177,7 @@ void KNConvert::slotStart()
*t_ar << "tar";
*t_ar << "-cz" << dataDir
<< "-f" << b_ackupPath->text();
- connect(t_ar, TQT_SIGNAL(processExited(TDEProcess*)), this, TQT_SLOT(slotTarExited(TDEProcess*)));
+ connect(t_ar, TQ_SIGNAL(processExited(TDEProcess*)), this, TQ_SLOT(slotTarExited(TDEProcess*)));
if(!t_ar->start()) {
delete t_ar;
t_ar = 0;
diff --git a/knode/knconvert.h b/knode/knconvert.h
index 59b23c9c..56d2f13b 100644
--- a/knode/knconvert.h
+++ b/knode/knconvert.h
@@ -21,7 +21,7 @@
#include <tqglobal.h>
#include <tqvaluelist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQListBox;
class TQLabel;
@@ -34,7 +34,7 @@ class TDEProcess;
class KDE_EXPORT KNConvert : public TQDialog {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knfilterconfigwidget.h b/knode/knfilterconfigwidget.h
index 680231b5..634a679a 100644
--- a/knode/knfilterconfigwidget.h
+++ b/knode/knfilterconfigwidget.h
@@ -26,7 +26,7 @@ class KNRangeFilterWidget;
class KNFilterConfigWidget : public TQTabWidget {
- Q_OBJECT
+ TQ_OBJECT
friend class KNFilterDialog;
diff --git a/knode/knfilterdialog.cpp b/knode/knfilterdialog.cpp
index 6a0e972a..b8471e6b 100644
--- a/knode/knfilterdialog.cpp
+++ b/knode/knfilterdialog.cpp
@@ -78,7 +78,7 @@ KNFilterDialog::KNFilterDialog(KNArticleFilter *f, TQWidget *parent, const char
KNHelper::restoreWindowSize("filterDLG", this, sizeHint());
setHelp("anc-using-filters");
- connect( fname, TQT_SIGNAL( textChanged ( const TQString & )), this, TQT_SLOT( slotTextChanged( const TQString & )));
+ connect( fname, TQ_SIGNAL( textChanged ( const TQString & )), this, TQ_SLOT( slotTextChanged( const TQString & )));
slotTextChanged( fname->text() );
}
diff --git a/knode/knfilterdialog.h b/knode/knfilterdialog.h
index b17eaed6..96935639 100644
--- a/knode/knfilterdialog.h
+++ b/knode/knfilterdialog.h
@@ -28,7 +28,7 @@ class TQCheckBox;
class KNFilterDialog : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
friend class KNFilterManager;
diff --git a/knode/knfiltermanager.cpp b/knode/knfiltermanager.cpp
index eee045c2..a80853ea 100644
--- a/knode/knfiltermanager.cpp
+++ b/knode/knfiltermanager.cpp
@@ -34,7 +34,7 @@ KNFilterSelectAction::KNFilterSelectAction( const TQString& text, const TQString
: TDEActionMenu(text,pix,parent,name), currentItem(-42)
{
popupMenu()->setCheckable(true);
- connect(popupMenu(),TQT_SIGNAL(activated(int)),this,TQT_SLOT(slotMenuActivated(int)));
+ connect(popupMenu(),TQ_SIGNAL(activated(int)),this,TQ_SLOT(slotMenuActivated(int)));
setDelayed(false);
}
@@ -383,10 +383,10 @@ void KNFilterManager::setMenuAction(KNFilterSelectAction *a, TDEAction *keybA)
{
if(a) {
a_ctFilter = a;
- connect(a_ctFilter, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotMenuActivated(int)));
+ connect(a_ctFilter, TQ_SIGNAL(activated(int)), this, TQ_SLOT(slotMenuActivated(int)));
}
if(keybA)
- connect(keybA, TQT_SIGNAL(activated()), this, TQT_SLOT(slotShowFilterChooser()));
+ connect(keybA, TQ_SIGNAL(activated()), this, TQ_SLOT(slotShowFilterChooser()));
updateMenu();
}
diff --git a/knode/knfiltermanager.h b/knode/knfiltermanager.h
index fec9a9f7..b6df5280 100644
--- a/knode/knfiltermanager.h
+++ b/knode/knfiltermanager.h
@@ -30,7 +30,7 @@ class KNFilterDialog;
class KNFilterSelectAction : public TDEActionMenu
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -53,7 +53,7 @@ class KNFilterSelectAction : public TDEActionMenu
class KNFilterManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knfoldermanager.h b/knode/knfoldermanager.h
index 9e817c23..daf3e0ad 100644
--- a/knode/knfoldermanager.h
+++ b/knode/knfoldermanager.h
@@ -25,7 +25,7 @@ class KNCleanUp;
class KNFolderManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knglobals.h b/knode/knglobals.h
index f361f3bb..c2eca4b8 100644
--- a/knode/knglobals.h
+++ b/knode/knglobals.h
@@ -20,7 +20,7 @@
#include <tdeconfig.h>
#include "resource.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TDEInstance;
class KNConfigManager;
diff --git a/knode/kngroup.h b/knode/kngroup.h
index fef5c6d6..15f26839 100644
--- a/knode/kngroup.h
+++ b/knode/kngroup.h
@@ -196,5 +196,3 @@ class KNGroup : public KNArticleCollection , public KNJobItem {
};
#endif
-
-// kate: space-indent on; indent-width 2;
diff --git a/knode/kngroupbrowser.cpp b/knode/kngroupbrowser.cpp
index f2379f51..865dbd20 100644
--- a/knode/kngroupbrowser.cpp
+++ b/knode/kngroupbrowser.cpp
@@ -41,10 +41,8 @@ KNGroupBrowser::KNGroupBrowser(TQWidget *parent, const TQString &caption, KNNntp
{
refilterTimer = new TQTimer();
- allList=new TQSortedList<KNGroupInfo>;
- allList->setAutoDelete(true);
- matchList=new TQSortedList<KNGroupInfo>;
- matchList->setAutoDelete(false);
+ allList = new std::list<KNGroupInfo*>();
+ matchList = new std::list<KNGroupInfo*>();
//create Widgets
page=new TQWidget(this);
@@ -89,8 +87,8 @@ KNGroupBrowser::KNGroupBrowser(TQWidget *parent, const TQString &caption, KNNntp
groupView->addColumn(i18n("Description"));
groupView->setTreeStepSize(15);
- connect(groupView, TQT_SIGNAL(doubleClicked(TQListViewItem*)),
- this, TQT_SLOT(slotItemDoubleClicked(TQListViewItem*)));
+ connect(groupView, TQ_SIGNAL(doubleClicked(TQListViewItem*)),
+ this, TQ_SLOT(slotItemDoubleClicked(TQListViewItem*)));
//layout
TQGridLayout *topL=new TQGridLayout(page,3,1,0,5);
@@ -121,22 +119,22 @@ KNGroupBrowser::KNGroupBrowser(TQWidget *parent, const TQString &caption, KNNntp
arrL->addWidget(arrowBtn2, AlignCenter);
//connect
- connect(filterEdit, TQT_SIGNAL(textChanged(const TQString&)),
- TQT_SLOT(slotFilterTextChanged(const TQString&)));
- connect(groupView, TQT_SIGNAL(expanded(TQListViewItem*)),
- TQT_SLOT(slotItemExpand(TQListViewItem*)));
+ connect(filterEdit, TQ_SIGNAL(textChanged(const TQString&)),
+ TQ_SLOT(slotFilterTextChanged(const TQString&)));
+ connect(groupView, TQ_SIGNAL(expanded(TQListViewItem*)),
+ TQ_SLOT(slotItemExpand(TQListViewItem*)));
- connect(refilterTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotRefilter()));
- connect(noTreeCB, TQT_SIGNAL(clicked()), TQT_SLOT(slotTreeCBToggled()));
- connect(subCB, TQT_SIGNAL(clicked()), TQT_SLOT(slotSubCBToggled()));
- connect(newCB, TQT_SIGNAL(clicked()), TQT_SLOT(slotNewCBToggled()));
+ connect(refilterTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotRefilter()));
+ connect(noTreeCB, TQ_SIGNAL(clicked()), TQ_SLOT(slotTreeCBToggled()));
+ connect(subCB, TQ_SIGNAL(clicked()), TQ_SLOT(slotSubCBToggled()));
+ connect(newCB, TQ_SIGNAL(clicked()), TQ_SLOT(slotNewCBToggled()));
enableButton(User1,false);
enableButton(User2,false);
filterEdit->setFocus();
- TQTimer::singleShot(2, this, TQT_SLOT(slotLoadList()));
+ TQTimer::singleShot(2, this, TQ_SLOT(slotLoadList()));
}
@@ -148,7 +146,16 @@ KNGroupBrowser::~KNGroupBrowser()
knGlobals.netAccess()->stopJobsNntp(KNJobData::JTCheckNewGroups);
delete matchList;
+
+ for (KNGroupInfo *g : *allList)
+ {
+ if (g)
+ {
+ delete g;
+ }
+ }
delete allList;
+
delete refilterTimer;
}
@@ -159,6 +166,13 @@ void KNGroupBrowser::slotReceiveList(KNGroupListData* d)
enableButton(User2,true);
if (d) { // d==0 if something has gone wrong...
+ for (KNGroupInfo *g : *allList)
+ {
+ if (g)
+ {
+ delete g;
+ }
+ }
delete allList;
allList = d->extractList();
incrementalFilter=false;
@@ -206,8 +220,8 @@ void KNGroupBrowser::createListItems(TQListViewItem *parent)
}
}
- for(KNGroupInfo *gn=matchList->first(); gn; gn=matchList->next()) {
-
+ for (KNGroupInfo *gn : *matchList)
+ {
if(!prefix.isEmpty() && !gn->name.startsWith(prefix))
if(!compare.isNull())
break;
@@ -287,7 +301,7 @@ void KNGroupBrowser::slotItemExpand(TQListViewItem *it)
{
groupView->ensureVisible(groupView->contentsX(), y+h/2, 0, h/2);
delayedCenter = y+h/2;
- TQTimer::singleShot(300, this, TQT_SLOT(slotCenterDelayed()));
+ TQTimer::singleShot(300, this, TQ_SLOT(slotCenterDelayed()));
}
}
@@ -321,14 +335,14 @@ void KNGroupBrowser::slotFilter(const TQString &txt)
bool doIncrementalUpdate = (!isRegexp && incrementalFilter && (filtertxt.left(lastFilter.length())==lastFilter));
if (doIncrementalUpdate) {
- TQSortedList<KNGroupInfo> *tempList = new TQSortedList<KNGroupInfo>();
- tempList->setAutoDelete(false);
+ std::list<KNGroupInfo*> *tempList = new std::list<KNGroupInfo*>();
- for(KNGroupInfo *g=matchList->first(); g; g=matchList->next()) {
+ for (KNGroupInfo *g : *matchList)
+ {
if ((notCheckSub||g->subscribed)&&
(notCheckNew||g->newGroup)&&
(notCheckStr||(g->name.find(filtertxt)!=-1)))
- tempList->append(g);
+ tempList->push_back(g);
}
delete matchList;
@@ -336,18 +350,20 @@ void KNGroupBrowser::slotFilter(const TQString &txt)
} else {
matchList->clear();
- for(KNGroupInfo *g=allList->first(); g; g=allList->next()) {
+ for (KNGroupInfo *g : *allList)
+ {
if ((notCheckSub||g->subscribed)&&
(notCheckNew||g->newGroup)&&
(notCheckStr||(isRegexp? (reg.search(g->name,0) != -1):(g->name.find(filtertxt)!=-1))))
- matchList->append(g);
+ matchList->push_back(g);
}
}
groupView->clear();
- if((matchList->count() < MIN_FOR_TREE) || noTreeCB->isChecked()) {
- for(KNGroupInfo *g=matchList->first(); g; g=matchList->next()) {
+ if((matchList->size() < MIN_FOR_TREE) || noTreeCB->isChecked()) {
+ for (KNGroupInfo *g : *matchList)
+ {
cit=new CheckItem(groupView, *g, this);
updateItemState(cit);
}
@@ -358,7 +374,7 @@ void KNGroupBrowser::slotFilter(const TQString &txt)
lastFilter = filtertxt;
incrementalFilter = !isRegexp;
- leftLabel->setText(i18n("Groups on %1: (%2 displayed)").arg(a_ccount->name()).arg(matchList->count()));
+ leftLabel->setText(i18n("Groups on %1: (%2 displayed)").arg(a_ccount->name()).arg(matchList->size()));
arrowBtn1->setEnabled(false);
arrowBtn2->setEnabled(false);
diff --git a/knode/kngroupbrowser.h b/knode/kngroupbrowser.h
index a3df9a76..7470486e 100644
--- a/knode/kngroupbrowser.h
+++ b/knode/kngroupbrowser.h
@@ -34,7 +34,7 @@ class KNNntpAccount;
class KNGroupBrowser : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -98,7 +98,7 @@ class KNGroupBrowser : public KDialogBase {
bool incrementalFilter;
KNNntpAccount *a_ccount;
- TQSortedList<KNGroupInfo> *allList, *matchList;
+ std::list<KNGroupInfo*> *allList, *matchList;
protected slots:
void slotLoadList();
diff --git a/knode/kngroupdialog.cpp b/knode/kngroupdialog.cpp
index 8c9a1746..0fe1e7db 100644
--- a/knode/kngroupdialog.cpp
+++ b/knode/kngroupdialog.cpp
@@ -51,17 +51,17 @@ KNGroupDialog::KNGroupDialog(TQWidget *parent, KNNntpAccount *a) :
dir1=right;
dir2=left;
- connect(groupView, TQT_SIGNAL(selectionChanged(TQListViewItem*)),
- this, TQT_SLOT(slotItemSelected(TQListViewItem*)));
- connect(groupView, TQT_SIGNAL(selectionChanged()),
- this, TQT_SLOT(slotSelectionChanged()));
- connect(subView, TQT_SIGNAL(selectionChanged(TQListViewItem*)),
- this, TQT_SLOT(slotItemSelected(TQListViewItem*)));
- connect(unsubView, TQT_SIGNAL(selectionChanged(TQListViewItem*)),
- this, TQT_SLOT(slotItemSelected(TQListViewItem*)));
-
- connect(arrowBtn1, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotArrowBtn1()));
- connect(arrowBtn2, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotArrowBtn2()));
+ connect(groupView, TQ_SIGNAL(selectionChanged(TQListViewItem*)),
+ this, TQ_SLOT(slotItemSelected(TQListViewItem*)));
+ connect(groupView, TQ_SIGNAL(selectionChanged()),
+ this, TQ_SLOT(slotSelectionChanged()));
+ connect(subView, TQ_SIGNAL(selectionChanged(TQListViewItem*)),
+ this, TQ_SLOT(slotItemSelected(TQListViewItem*)));
+ connect(unsubView, TQ_SIGNAL(selectionChanged(TQListViewItem*)),
+ this, TQ_SLOT(slotItemSelected(TQListViewItem*)));
+
+ connect(arrowBtn1, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotArrowBtn1()));
+ connect(arrowBtn2, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotArrowBtn2()));
KNHelper::restoreWindowSize("groupDlg", this, TQSize(662,393)); // optimized for 800x600
@@ -121,18 +121,17 @@ void KNGroupDialog::updateItemState(CheckItem *it)
-void KNGroupDialog::toSubscribe(TQSortedList<KNGroupInfo> *l)
+void KNGroupDialog::toSubscribe(std::list<KNGroupInfo*> *l)
{
KNGroupInfo *info;
l->clear();
- l->setAutoDelete(true);
bool moderated=false;
TQListViewItemIterator it(subView);
for(; it.current(); ++it) {
info = new KNGroupInfo();
*info = ((static_cast<GroupItem*>(it.current()))->info);
- l->append(info);
+ l->push_back(info);
if (info->status==KNGroup::moderated)
moderated=true;
}
@@ -177,17 +176,17 @@ void KNGroupDialog::setButtonDirection(arrowButton b, arrowDirection d)
void KNGroupDialog::slotItemSelected(TQListViewItem *it)
{
- const TQObject *s=TQT_TQOBJECT(const_cast<TQT_BASE_OBJECT_NAME*>(sender()));
+ const TQObject *s=sender();
- if(TQT_BASE_OBJECT_CONST(s)==TQT_BASE_OBJECT(subView)) {
+ if(s==subView) {
unsubView->clearSelection();
groupView->clearSelection();
arrowBtn2->setEnabled(false);
arrowBtn1->setEnabled(true);
setButtonDirection(btn1, left);
}
- else if(TQT_BASE_OBJECT_CONST(s)==TQT_BASE_OBJECT(unsubView)) {
+ else if(s==unsubView) {
subView->clearSelection();
groupView->clearSelection();
arrowBtn1->setEnabled(false);
@@ -294,7 +293,7 @@ void KNGroupDialog::slotUser2()
TQLabel *l = new TQLabel(TDEGlobal::locale()->formatDate(lastDate, false),btnGrp);
topL->addWidget(l, 1, 1, TQt::AlignLeft);
- connect(takeLast, TQT_SIGNAL(toggled(bool)), l, TQT_SLOT(setEnabled(bool)));
+ connect(takeLast, TQ_SIGNAL(toggled(bool)), l, TQ_SLOT(setEnabled(bool)));
TQRadioButton *takeCustom = new TQRadioButton( i18n("Created since this date:"), btnGrp );
topL->addMultiCellWidget(takeCustom, 2, 2, 0, 1);
@@ -303,7 +302,7 @@ void KNGroupDialog::slotUser2()
dateSel->setMinimumSize(dateSel->sizeHint());
topL->addWidget(dateSel, 3, 1, TQt::AlignLeft);
- connect(takeCustom, TQT_SIGNAL(toggled(bool)), dateSel, TQT_SLOT(setEnabled(bool)));
+ connect(takeCustom, TQ_SIGNAL(toggled(bool)), dateSel, TQ_SLOT(setEnabled(bool)));
takeLast->setChecked(true);
dateSel->setEnabled(false);
diff --git a/knode/kngroupdialog.h b/knode/kngroupdialog.h
index f9b5a523..55398b70 100644
--- a/knode/kngroupdialog.h
+++ b/knode/kngroupdialog.h
@@ -22,14 +22,14 @@
class KNGroupDialog : public KNGroupBrowser {
- Q_OBJECT
+ TQ_OBJECT
public:
KNGroupDialog(TQWidget *parent, KNNntpAccount *a);
~KNGroupDialog();
- void toSubscribe(TQSortedList<KNGroupInfo> *l);
+ void toSubscribe(std::list<KNGroupInfo*> *l);
void toUnsubscribe(TQStringList *l);
protected:
diff --git a/knode/kngroupmanager.cpp b/knode/kngroupmanager.cpp
index 706e9d9b..e4c7aed6 100644
--- a/knode/kngroupmanager.cpp
+++ b/knode/kngroupmanager.cpp
@@ -12,6 +12,7 @@
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US
*/
+#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
#include <tqdir.h>
@@ -74,6 +75,10 @@ bool KNGroupInfo::operator< (const KNGroupInfo &gi2)
return (name < gi2.name);
}
+bool KNGroupInfo::PtrCompFn(KNGroupInfo *a, KNGroupInfo *b)
+{
+ return *a < *b;
+}
//===============================================================================
@@ -81,15 +86,24 @@ bool KNGroupInfo::operator< (const KNGroupInfo &gi2)
KNGroupListData::KNGroupListData()
: codecForDescriptions(0)
{
- groups = new TQSortedList<KNGroupInfo>;
- groups->setAutoDelete(true);
+ groups = new std::list<KNGroupInfo*>();
}
KNGroupListData::~KNGroupListData()
{
- delete groups;
+ if (groups)
+ {
+ for (KNGroupInfo *g : *groups)
+ {
+ if (g)
+ {
+ delete g;
+ }
+ }
+ delete groups;
+ }
}
@@ -145,7 +159,7 @@ bool KNGroupListData::readIn(KNProtocolClient *client)
} else
sub = false;
- groups->append(new KNGroupInfo(name,description,false,sub,status));
+ groups->push_back(new KNGroupInfo(name,description,false,sub,status));
if (timer.elapsed() > 200) { // don't flicker
timer.restart();
@@ -169,7 +183,8 @@ bool KNGroupListData::writeOut()
TQCString temp;
if(f.open(IO_WriteOnly)) {
- for (KNGroupInfo *i=groups->first(); i; i=groups->next()) {
+ for (KNGroupInfo *i : *groups)
+ {
temp = i->name.utf8();
switch (i->status) {
case KNGroup::unknown: temp += " u ";
@@ -196,27 +211,33 @@ bool KNGroupListData::writeOut()
// merge in new groups, we want to preserve the "subscribed"-flag
// of the loaded groups and the "new"-flag of the new groups.
-void KNGroupListData::merge(TQSortedList<KNGroupInfo>* newGroups)
+void KNGroupListData::merge(std::list<KNGroupInfo*> *newGroups)
{
bool subscribed;
- for (KNGroupInfo *i=newGroups->first(); i; i=newGroups->next()) {
- if (groups->find(i)>=0) {
- subscribed = groups->current()->subscribed;
- groups->remove(); // avoid duplicates
+ for (KNGroupInfo *i : *newGroups)
+ {
+ std::list<KNGroupInfo*>::iterator ngIt = std::find(groups->begin(), groups->end(), i);
+
+ if (ngIt != std::end(*groups))
+ {
+ KNGroupInfo *newGr = *ngIt;
+ subscribed = newGr->subscribed;
+ groups->erase(ngIt); // avoid duplicates
+ delete newGr;
} else
subscribed = false;
- groups->append(new KNGroupInfo(i->name,i->description,true,subscribed,i->status));
+ groups->push_back(new KNGroupInfo(i->name,i->description,true,subscribed,i->status));
}
- groups->sort();
+ groups->sort(KNGroupInfo::PtrCompFn);
}
-TQSortedList<KNGroupInfo>* KNGroupListData::extractList()
+std::list<KNGroupInfo*>* KNGroupListData::extractList()
{
- TQSortedList<KNGroupInfo>* temp = groups;
- groups = 0;
+ std::list<KNGroupInfo*>* temp = groups;
+ groups = nullptr;
return temp;
}
@@ -397,10 +418,10 @@ void KNGroupManager::showGroupDialog(KNNntpAccount *a, TQWidget *parent)
{
KNGroupDialog* gDialog=new KNGroupDialog((parent!=0)? parent:knGlobals.topWidget, a);
- connect(gDialog, TQT_SIGNAL(loadList(KNNntpAccount*)), this, TQT_SLOT(slotLoadGroupList(KNNntpAccount*)));
- connect(gDialog, TQT_SIGNAL(fetchList(KNNntpAccount*)), this, TQT_SLOT(slotFetchGroupList(KNNntpAccount*)));
- connect(gDialog, TQT_SIGNAL(checkNew(KNNntpAccount*,TQDate)), this, TQT_SLOT(slotCheckForNewGroups(KNNntpAccount*,TQDate)));
- connect(this, TQT_SIGNAL(newListReady(KNGroupListData*)), gDialog, TQT_SLOT(slotReceiveList(KNGroupListData*)));
+ connect(gDialog, TQ_SIGNAL(loadList(KNNntpAccount*)), this, TQ_SLOT(slotLoadGroupList(KNNntpAccount*)));
+ connect(gDialog, TQ_SIGNAL(fetchList(KNNntpAccount*)), this, TQ_SLOT(slotFetchGroupList(KNNntpAccount*)));
+ connect(gDialog, TQ_SIGNAL(checkNew(KNNntpAccount*,TQDate)), this, TQ_SLOT(slotCheckForNewGroups(KNNntpAccount*,TQDate)));
+ connect(this, TQ_SIGNAL(newListReady(KNGroupListData*)), gDialog, TQ_SLOT(slotReceiveList(KNGroupListData*)));
if(gDialog->exec()) {
KNGroup *g=0;
@@ -417,10 +438,12 @@ void KNGroupManager::showGroupDialog(KNNntpAccount *a, TQWidget *parent)
}
}
- TQSortedList<KNGroupInfo> lst2;
+ std::list<KNGroupInfo*> lst2;
gDialog->toSubscribe(&lst2);
- for(KNGroupInfo *var=lst2.first(); var; var=lst2.next()) {
+ for (KNGroupInfo *var : lst2)
+ {
subscribeGroup(var, a);
+ delete var;
}
}
@@ -593,12 +616,14 @@ void KNGroupManager::processJob(KNJobData *j)
// update the descriptions of the subscribed groups
for ( TQValueList<KNGroup*>::Iterator it = mGroupList.begin(); it != mGroupList.end(); ++it ) {
if ( (*it)->account() == j->account() ) {
- for ( KNGroupInfo* inf = d->groups->first(); inf; inf = d->groups->next() )
+ for (KNGroupInfo *inf : *d->groups)
+ {
if ( inf->name == (*it)->groupname() ) {
(*it)->setDescription( inf->description );
(*it)->setStatus( inf->status );
break;
}
+ }
}
}
}
@@ -700,5 +725,3 @@ void KNGroupManager::slotCheckForNewGroups(KNNntpAccount *a, TQDate date)
//--------------------------------
#include "kngroupmanager.moc"
-
-// kate: space-indent on; indent-width 2;
diff --git a/knode/kngroupmanager.h b/knode/kngroupmanager.h
index e3573830..06aa0b11 100644
--- a/knode/kngroupmanager.h
+++ b/knode/kngroupmanager.h
@@ -15,8 +15,9 @@
#ifndef KNGROUPMANAGER_H
#define KNGROUPMANAGER_H
+#include <list>
+
#include <tqobject.h>
-#include <tqsortedlist.h>
#include "knjobdata.h"
#include "kngroup.h"
@@ -48,6 +49,8 @@ class KNGroupInfo {
bool operator== (const KNGroupInfo &gi2);
bool operator< (const KNGroupInfo &gi2);
+
+ static bool PtrCompFn(KNGroupInfo *a, KNGroupInfo *b);
};
@@ -59,13 +62,13 @@ class KNGroupListData : public KNJobItem {
bool readIn(KNProtocolClient *client=0);
bool writeOut();
- void merge(TQSortedList<KNGroupInfo>* newGroups);
+ void merge(std::list<KNGroupInfo*> *newGroups);
- TQSortedList<KNGroupInfo>* extractList();
+ std::list<KNGroupInfo*>* extractList();
TQStringList subscribed;
TQString path;
- TQSortedList<KNGroupInfo> *groups;
+ std::list<KNGroupInfo*> *groups;
TQDate fetchSince;
bool getDescriptions;
TQTextCodec *codecForDescriptions;
@@ -77,7 +80,7 @@ class KNGroupListData : public KNJobItem {
class KNGroupManager : public TQObject , public KNJobConsumer {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/kngrouppropdlg.cpp b/knode/kngrouppropdlg.cpp
index a6a90578..5a7f5200 100644
--- a/knode/kngrouppropdlg.cpp
+++ b/knode/kngrouppropdlg.cpp
@@ -62,7 +62,7 @@ KNGroupPropDlg::KNGroupPropDlg(KNGroup *group, TQWidget *parent, const char *nam
c_harset->insertStringList(knGlobals.configManager()->postNewsTechnical()->composerCharsets());
c_harset->setCurrentItem(knGlobals.configManager()->postNewsTechnical()->indexForCharset(g_rp->defaultCharset()));
c_harset->setEnabled(g_rp->useCharset());
- connect(u_seCharset, TQT_SIGNAL(toggled(bool)), c_harset, TQT_SLOT(setEnabled(bool)));
+ connect(u_seCharset, TQ_SIGNAL(toggled(bool)), c_harset, TQ_SLOT(setEnabled(bool)));
grpL->addWidget(c_harset, 2,2);
grpL->setColStretch(1,1);
diff --git a/knode/kngrouppropdlg.h b/knode/kngrouppropdlg.h
index 0c640bea..c7c408b7 100644
--- a/knode/kngrouppropdlg.h
+++ b/knode/kngrouppropdlg.h
@@ -55,5 +55,3 @@ class KNGroupPropDlg : public KDialogBase {
};
#endif
-
-// kate: space-indent on; indent-width 2;
diff --git a/knode/kngroupselectdialog.cpp b/knode/kngroupselectdialog.cpp
index 3d137b8a..10374d6d 100644
--- a/knode/kngroupselectdialog.cpp
+++ b/knode/kngroupselectdialog.cpp
@@ -44,14 +44,14 @@ KNGroupSelectDialog::KNGroupSelectDialog(TQWidget *parent, KNNntpAccount *a, con
new GroupItem(selView, info);
}
- connect(selView, TQT_SIGNAL(selectionChanged(TQListViewItem*)),
- this, TQT_SLOT(slotItemSelected(TQListViewItem*)));
- connect(groupView, TQT_SIGNAL(selectionChanged(TQListViewItem*)),
- this, TQT_SLOT(slotItemSelected(TQListViewItem*)));
- connect(groupView, TQT_SIGNAL(selectionChanged()),
- this, TQT_SLOT(slotSelectionChanged()));
- connect(arrowBtn1, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotArrowBtn1()));
- connect(arrowBtn2, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotArrowBtn2()));
+ connect(selView, TQ_SIGNAL(selectionChanged(TQListViewItem*)),
+ this, TQ_SLOT(slotItemSelected(TQListViewItem*)));
+ connect(groupView, TQ_SIGNAL(selectionChanged(TQListViewItem*)),
+ this, TQ_SLOT(slotItemSelected(TQListViewItem*)));
+ connect(groupView, TQ_SIGNAL(selectionChanged()),
+ this, TQ_SLOT(slotSelectionChanged()));
+ connect(arrowBtn1, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotArrowBtn1()));
+ connect(arrowBtn2, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotArrowBtn2()));
KNHelper::restoreWindowSize("groupSelDlg", this, TQSize(659,364)); // optimized for 800x600
}
@@ -114,9 +114,9 @@ TQString KNGroupSelectDialog::selectedGroups()const
void KNGroupSelectDialog::slotItemSelected(TQListViewItem *it)
{
- const TQObject *s=TQT_TQOBJECT(const_cast<TQT_BASE_OBJECT_NAME*>(sender()));
+ const TQObject *s=sender();
- if(TQT_BASE_OBJECT_CONST(s)==TQT_BASE_OBJECT(groupView)) {
+ if(s==groupView) {
selView->clearSelection();
arrowBtn2->setEnabled(false);
if(it)
diff --git a/knode/kngroupselectdialog.h b/knode/kngroupselectdialog.h
index 177765bf..ce00191c 100644
--- a/knode/kngroupselectdialog.h
+++ b/knode/kngroupselectdialog.h
@@ -22,7 +22,7 @@
class KNGroupSelectDialog : public KNGroupBrowser {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knjobdata.cpp b/knode/knjobdata.cpp
index 7d4ac912..74d98a85 100644
--- a/knode/knjobdata.cpp
+++ b/knode/knjobdata.cpp
@@ -105,10 +105,10 @@ void KNJobData::setJob( TDEIO::Job *job )
{
mJob = job;
if ( job ) {
- connect( job, TQT_SIGNAL( percent(TDEIO::Job*, unsigned long) ),
- TQT_SLOT( slotJobPercent(TDEIO::Job*, unsigned long) ) );
- connect( job, TQT_SIGNAL( infoMessage(TDEIO::Job*, const TQString&) ),
- TQT_SLOT( slotJobInfoMessage(TDEIO::Job*, const TQString&) ) );
+ connect( job, TQ_SIGNAL( percent(TDEIO::Job*, unsigned long) ),
+ TQ_SLOT( slotJobPercent(TDEIO::Job*, unsigned long) ) );
+ connect( job, TQ_SIGNAL( infoMessage(TDEIO::Job*, const TQString&) ),
+ TQ_SLOT( slotJobInfoMessage(TDEIO::Job*, const TQString&) ) );
}
}
diff --git a/knode/knjobdata.h b/knode/knjobdata.h
index 70a78872..57106744 100644
--- a/knode/knjobdata.h
+++ b/knode/knjobdata.h
@@ -70,7 +70,7 @@ class KNJobItem {
class KNJobData : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knmainwidget.cpp b/knode/knmainwidget.cpp
index 948ce37e..35f976c4 100644
--- a/knode/knmainwidget.cpp
+++ b/knode/knmainwidget.cpp
@@ -106,9 +106,9 @@ KNMainWidget::KNMainWidget( KXMLGUIClient* client, bool detachable, TQWidget* pa
//setView(a_rtDock);
setMainDockWidget(a_rtDock);
- connect(a_rtDock, TQT_SIGNAL(iMBeingClosed()), TQT_SLOT(slotArticleDockHidden()));
- connect(a_rtDock, TQT_SIGNAL(hasUndocked()), TQT_SLOT(slotArticleDockHidden()));
- connect( mArticleViewer, TQT_SIGNAL(focusChangeRequest(TQWidget*)), TQT_SLOT(slotDockWidgetFocusChangeRequest(TQWidget*)) );
+ connect(a_rtDock, TQ_SIGNAL(iMBeingClosed()), TQ_SLOT(slotArticleDockHidden()));
+ connect(a_rtDock, TQ_SIGNAL(hasUndocked()), TQ_SLOT(slotArticleDockHidden()));
+ connect( mArticleViewer, TQ_SIGNAL(focusChangeRequest(TQWidget*)), TQ_SLOT(slotDockWidgetFocusChangeRequest(TQWidget*)) );
//collection view
c_olDock = createDockWidget("group_view", UserIcon("group"), 0,
@@ -123,22 +123,22 @@ KNMainWidget::KNMainWidget( KXMLGUIClient* client, bool detachable, TQWidget* pa
c_olDock->setWidget(c_olView);
c_olDock->manualDock(a_rtDock, KDockWidget::DockLeft, 3000);
- connect(c_olDock, TQT_SIGNAL(iMBeingClosed()), TQT_SLOT(slotGroupDockHidden()));
- connect(c_olDock, TQT_SIGNAL(hasUndocked()), TQT_SLOT(slotGroupDockHidden()));
- connect(c_olView, TQT_SIGNAL(focusChangeRequest(TQWidget *)), TQT_SLOT(slotDockWidgetFocusChangeRequest(TQWidget *)));
- connect(c_olView, TQT_SIGNAL(selectionChanged(TQListViewItem*)),
- TQT_SLOT(slotCollectionSelected(TQListViewItem*)));
- connect(c_olView, TQT_SIGNAL(contextMenu(TDEListView*, TQListViewItem*, const TQPoint&)),
- TQT_SLOT(slotCollectionRMB(TDEListView*, TQListViewItem*, const TQPoint&)));
- connect(c_olView, TQT_SIGNAL(folderDrop(TQDropEvent*, KNCollectionViewItem*)),
- TQT_SLOT(slotCollectionViewDrop(TQDropEvent*, KNCollectionViewItem*)));
- connect(c_olView, TQT_SIGNAL(itemRenamed(TQListViewItem*)),
- TQT_SLOT(slotCollectionRenamed(TQListViewItem*)));
-
- accel->connectItem( accel->insertItem(Key_Up), mArticleViewer, TQT_SLOT(scrollUp()) );
- accel->connectItem( accel->insertItem(Key_Down), mArticleViewer, TQT_SLOT(scrollDown()) );
- accel->connectItem( accel->insertItem(Key_Prior), mArticleViewer, TQT_SLOT(scrollPrior()) );
- accel->connectItem( accel->insertItem(Key_Next), mArticleViewer, TQT_SLOT(scrollNext()) );
+ connect(c_olDock, TQ_SIGNAL(iMBeingClosed()), TQ_SLOT(slotGroupDockHidden()));
+ connect(c_olDock, TQ_SIGNAL(hasUndocked()), TQ_SLOT(slotGroupDockHidden()));
+ connect(c_olView, TQ_SIGNAL(focusChangeRequest(TQWidget *)), TQ_SLOT(slotDockWidgetFocusChangeRequest(TQWidget *)));
+ connect(c_olView, TQ_SIGNAL(selectionChanged(TQListViewItem*)),
+ TQ_SLOT(slotCollectionSelected(TQListViewItem*)));
+ connect(c_olView, TQ_SIGNAL(contextMenu(TDEListView*, TQListViewItem*, const TQPoint&)),
+ TQ_SLOT(slotCollectionRMB(TDEListView*, TQListViewItem*, const TQPoint&)));
+ connect(c_olView, TQ_SIGNAL(folderDrop(TQDropEvent*, KNCollectionViewItem*)),
+ TQ_SLOT(slotCollectionViewDrop(TQDropEvent*, KNCollectionViewItem*)));
+ connect(c_olView, TQ_SIGNAL(itemRenamed(TQListViewItem*)),
+ TQ_SLOT(slotCollectionRenamed(TQListViewItem*)));
+
+ accel->connectItem( accel->insertItem(Key_Up), mArticleViewer, TQ_SLOT(scrollUp()) );
+ accel->connectItem( accel->insertItem(Key_Down), mArticleViewer, TQ_SLOT(scrollDown()) );
+ accel->connectItem( accel->insertItem(Key_Prior), mArticleViewer, TQ_SLOT(scrollPrior()) );
+ accel->connectItem( accel->insertItem(Key_Next), mArticleViewer, TQ_SLOT(scrollNext()) );
//header view
h_drDock = createDockWidget("header_view", SmallIcon("text_block"), 0,
@@ -171,25 +171,25 @@ KNMainWidget::KNMainWidget( KXMLGUIClient* client, bool detachable, TQWidget* pa
s_earchLineEdit = new TDEListViewSearchLine(q_uicksearch, h_drView, "TDEListViewSearchLine");
q_uicksearch->setStretchableWidget(s_earchLineEdit);
lbl->setBuddy(s_earchLineEdit);
- connect( resetQuickSearch, TQT_SIGNAL( activated() ), s_earchLineEdit, TQT_SLOT( clear() ));
+ connect( resetQuickSearch, TQ_SIGNAL( activated() ), s_earchLineEdit, TQ_SLOT( clear() ));
vlay->addWidget(q_uicksearch);
vlay->addWidget(h_drView);
- connect(h_drDock, TQT_SIGNAL(iMBeingClosed()), TQT_SLOT(slotHeaderDockHidden()));
- connect(h_drDock, TQT_SIGNAL(hasUndocked()), TQT_SLOT(slotHeaderDockHidden()));
- connect(h_drView, TQT_SIGNAL(focusChangeRequest(TQWidget *)),
- TQT_SLOT(slotDockWidgetFocusChangeRequest(TQWidget *)));
- connect(h_drView, TQT_SIGNAL(itemSelected(TQListViewItem*)),
- TQT_SLOT(slotArticleSelected(TQListViewItem*)));
- connect(h_drView, TQT_SIGNAL(selectionChanged()),
- TQT_SLOT(slotArticleSelectionChanged()));
- connect(h_drView, TQT_SIGNAL(contextMenu(TDEListView*, TQListViewItem*, const TQPoint&)),
- TQT_SLOT(slotArticleRMB(TDEListView*, TQListViewItem*, const TQPoint&)));
- connect(h_drView, TQT_SIGNAL(doubleClick(TQListViewItem *)),
- TQT_SLOT(slotOpenArticle(TQListViewItem *)));
- connect(h_drView, TQT_SIGNAL(sortingChanged(int)),
- TQT_SLOT(slotHdrViewSortingChanged(int)));
+ connect(h_drDock, TQ_SIGNAL(iMBeingClosed()), TQ_SLOT(slotHeaderDockHidden()));
+ connect(h_drDock, TQ_SIGNAL(hasUndocked()), TQ_SLOT(slotHeaderDockHidden()));
+ connect(h_drView, TQ_SIGNAL(focusChangeRequest(TQWidget *)),
+ TQ_SLOT(slotDockWidgetFocusChangeRequest(TQWidget *)));
+ connect(h_drView, TQ_SIGNAL(itemSelected(TQListViewItem*)),
+ TQ_SLOT(slotArticleSelected(TQListViewItem*)));
+ connect(h_drView, TQ_SIGNAL(selectionChanged()),
+ TQ_SLOT(slotArticleSelectionChanged()));
+ connect(h_drView, TQ_SIGNAL(contextMenu(TDEListView*, TQListViewItem*, const TQPoint&)),
+ TQ_SLOT(slotArticleRMB(TDEListView*, TQListViewItem*, const TQPoint&)));
+ connect(h_drView, TQ_SIGNAL(doubleClick(TQListViewItem *)),
+ TQ_SLOT(slotOpenArticle(TQListViewItem *)));
+ connect(h_drView, TQ_SIGNAL(sortingChanged(int)),
+ TQ_SLOT(slotHdrViewSortingChanged(int)));
//actions
initActions();
@@ -200,7 +200,7 @@ KNMainWidget::KNMainWidget( KXMLGUIClient* client, bool detachable, TQWidget* pa
//Network
n_etAccess = knGlobals.netAccess();
- connect(n_etAccess, TQT_SIGNAL(netActive(bool)), this, TQT_SLOT(slotNetworkActive(bool)));
+ connect(n_etAccess, TQ_SIGNAL(netActive(bool)), this, TQ_SLOT(slotNetworkActive(bool)));
//Filter Manager
f_ilManager = knGlobals.filterManager();
@@ -225,8 +225,8 @@ KNMainWidget::KNMainWidget( KXMLGUIClient* client, bool detachable, TQWidget* pa
// Score Manager
s_coreManager = knGlobals.scoringManager();
- //connect(s_coreManager, TQT_SIGNAL(changedRules()), TQT_SLOT(slotReScore()));
- connect(s_coreManager, TQT_SIGNAL(finishedEditing()), TQT_SLOT(slotReScore()));
+ //connect(s_coreManager, TQ_SIGNAL(changedRules()), TQ_SLOT(slotReScore()));
+ connect(s_coreManager, TQ_SIGNAL(finishedEditing()), TQ_SLOT(slotReScore()));
// Memory Manager
m_emManager = knGlobals.memoryManager();
@@ -550,114 +550,114 @@ void KNMainWidget::initActions()
//navigation
a_ctNavNextArt = new TDEAction( KGuiItem(i18n("&Next Article"), "go-next",
- i18n("Go to next article")), "N;Right", TQT_TQOBJECT(h_drView),
- TQT_SLOT(nextArticle()), actionCollection(), "go_nextArticle" );
+ i18n("Go to next article")), "N;Right", h_drView,
+ TQ_SLOT(nextArticle()), actionCollection(), "go_nextArticle" );
a_ctNavPrevArt = new TDEAction( KGuiItem(i18n("&Previous Article"), "go-previous",
- i18n("Go to previous article")), "P;Left" , TQT_TQOBJECT(h_drView),
- TQT_SLOT(prevArticle()), actionCollection(), "go_prevArticle" );
- a_ctNavNextUnreadArt = new TDEAction(i18n("Next Unread &Article"), "1rightarrow", ALT+SHIFT+Key_Space , TQT_TQOBJECT(this),
- TQT_SLOT(slotNavNextUnreadArt()), actionCollection(), "go_nextUnreadArticle");
- a_ctNavNextUnreadThread = new TDEAction(i18n("Next Unread &Thread"),"2rightarrow", SHIFT+Key_Space , TQT_TQOBJECT(this),
- TQT_SLOT(slotNavNextUnreadThread()), actionCollection(), "go_nextUnreadThread");
- a_ctNavNextGroup = new TDEAction(i18n("Ne&xt Group"), "go-down", Key_Plus , TQT_TQOBJECT(c_olView),
- TQT_SLOT(nextGroup()), actionCollection(), "go_nextGroup");
- a_ctNavPrevGroup = new TDEAction(i18n("Pre&vious Group"), "go-up", Key_Minus , TQT_TQOBJECT(c_olView),
- TQT_SLOT(prevGroup()), actionCollection(), "go_prevGroup");
- a_ctNavReadThrough = new TDEAction(i18n("Read &Through Articles"), Key_Space , TQT_TQOBJECT(this),
- TQT_SLOT(slotNavReadThrough()), actionCollection(), "go_readThrough");
+ i18n("Go to previous article")), "P;Left" , h_drView,
+ TQ_SLOT(prevArticle()), actionCollection(), "go_prevArticle" );
+ a_ctNavNextUnreadArt = new TDEAction(i18n("Next Unread &Article"), "1rightarrow", ALT+SHIFT+Key_Space , this,
+ TQ_SLOT(slotNavNextUnreadArt()), actionCollection(), "go_nextUnreadArticle");
+ a_ctNavNextUnreadThread = new TDEAction(i18n("Next Unread &Thread"),"2rightarrow", SHIFT+Key_Space , this,
+ TQ_SLOT(slotNavNextUnreadThread()), actionCollection(), "go_nextUnreadThread");
+ a_ctNavNextGroup = new TDEAction(i18n("Ne&xt Group"), "go-down", Key_Plus , c_olView,
+ TQ_SLOT(nextGroup()), actionCollection(), "go_nextGroup");
+ a_ctNavPrevGroup = new TDEAction(i18n("Pre&vious Group"), "go-up", Key_Minus , c_olView,
+ TQ_SLOT(prevGroup()), actionCollection(), "go_prevGroup");
+ a_ctNavReadThrough = new TDEAction(i18n("Read &Through Articles"), Key_Space , this,
+ TQ_SLOT(slotNavReadThrough()), actionCollection(), "go_readThrough");
a_ctNavReadThrough->plugAccel(a_ccel);
TQAccel *accel = new TQAccel( this );
- new TDEAction( i18n("Focus on Next Folder"), CTRL+Key_Right, TQT_TQOBJECT(c_olView),
- TQT_SLOT(incCurrentFolder()), actionCollection(), "inc_current_folder" );
+ new TDEAction( i18n("Focus on Next Folder"), CTRL+Key_Right, c_olView,
+ TQ_SLOT(incCurrentFolder()), actionCollection(), "inc_current_folder" );
accel->connectItem(accel->insertItem(CTRL+Key_Right),
- c_olView, TQT_SLOT(incCurrentFolder()));
- new TDEAction( i18n("Focus on Previous Folder"), CTRL+Key_Left, TQT_TQOBJECT(c_olView),
- TQT_SLOT(decCurrentFolder()), actionCollection(), "dec_current_folder" );
+ c_olView, TQ_SLOT(incCurrentFolder()));
+ new TDEAction( i18n("Focus on Previous Folder"), CTRL+Key_Left, c_olView,
+ TQ_SLOT(decCurrentFolder()), actionCollection(), "dec_current_folder" );
accel->connectItem(accel->insertItem(CTRL+Key_Left),
- c_olView, TQT_SLOT(decCurrentFolder()));
- new TDEAction( i18n("Select Folder with Focus"), CTRL+Key_Space, TQT_TQOBJECT(c_olView),
- TQT_SLOT(selectCurrentFolder()), actionCollection(), "select_current_folder" );
+ c_olView, TQ_SLOT(decCurrentFolder()));
+ new TDEAction( i18n("Select Folder with Focus"), CTRL+Key_Space, c_olView,
+ TQ_SLOT(selectCurrentFolder()), actionCollection(), "select_current_folder" );
accel->connectItem(accel->insertItem(CTRL+Key_Space),
- c_olView, TQT_SLOT(selectCurrentFolder()));
+ c_olView, TQ_SLOT(selectCurrentFolder()));
- new TDEAction( i18n("Focus on Next Article"), ALT+Key_Right, TQT_TQOBJECT(h_drView),
- TQT_SLOT(incCurrentArticle()), actionCollection(), "inc_current_article" );
+ new TDEAction( i18n("Focus on Next Article"), ALT+Key_Right, h_drView,
+ TQ_SLOT(incCurrentArticle()), actionCollection(), "inc_current_article" );
accel->connectItem( accel->insertItem(ALT+Key_Right),
- TQT_TQOBJECT(h_drView), TQT_SLOT(incCurrentArticle()) );
- new TDEAction( i18n("Focus on Previous Article"), ALT+Key_Left, TQT_TQOBJECT(h_drView),
- TQT_SLOT(decCurrentArticle()), actionCollection(), "dec_current_article" );
+ h_drView, TQ_SLOT(incCurrentArticle()) );
+ new TDEAction( i18n("Focus on Previous Article"), ALT+Key_Left, h_drView,
+ TQ_SLOT(decCurrentArticle()), actionCollection(), "dec_current_article" );
accel->connectItem( accel->insertItem(ALT+Key_Left),
- TQT_TQOBJECT(h_drView), TQT_SLOT(decCurrentArticle()) );
- new TDEAction( i18n("Select Article with Focus"), ALT+Key_Space, TQT_TQOBJECT(h_drView),
- TQT_SLOT(selectCurrentArticle()), actionCollection(), "select_current_article" );
+ h_drView, TQ_SLOT(decCurrentArticle()) );
+ new TDEAction( i18n("Select Article with Focus"), ALT+Key_Space, h_drView,
+ TQ_SLOT(selectCurrentArticle()), actionCollection(), "select_current_article" );
accel->connectItem( accel->insertItem(ALT+Key_Space),
- TQT_TQOBJECT(h_drView), TQT_SLOT(selectCurrentArticle()) );
+ h_drView, TQ_SLOT(selectCurrentArticle()) );
//collection-view - accounts
- a_ctAccProperties = new TDEAction(i18n("Account &Properties"), "configure", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAccProperties()), actionCollection(), "account_properties");
- a_ctAccRename = new TDEAction(i18n("&Rename Account"), "text", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAccRename()), actionCollection(), "account_rename");
- a_ctAccSubscribe = new TDEAction(i18n("&Subscribe to Newsgroups..."), "news_subscribe", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAccSubscribe()), actionCollection(), "account_subscribe");
- a_ctAccExpireAll = new TDEAction(i18n("&Expire All Groups"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAccExpireAll()), actionCollection(), "account_expire_all");
- a_ctAccGetNewHdrs = new TDEAction(i18n("&Get New Articles in All Groups"), "mail_get", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAccGetNewHdrs()), actionCollection(), "account_dnlHeaders");
- a_ctAccGetNewHdrsAll = new TDEAction(i18n("&Get New Articles in All Accounts"), "mail_get_all", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAccGetNewHdrsAll()), actionCollection(), "account_dnlAllHeaders");
- a_ctAccDelete = new TDEAction(i18n("&Delete Account"), "edit-delete", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotAccDelete()), actionCollection(), "account_delete");
- a_ctAccPostNewArticle = new TDEAction(i18n("&Post to Newsgroup..."), "mail-message-new", CTRL+Key_N, TQT_TQOBJECT(this),
- TQT_SLOT(slotAccPostNewArticle()), actionCollection(), "article_postNew");
+ a_ctAccProperties = new TDEAction(i18n("Account &Properties"), "configure", 0, this,
+ TQ_SLOT(slotAccProperties()), actionCollection(), "account_properties");
+ a_ctAccRename = new TDEAction(i18n("&Rename Account"), "text", 0, this,
+ TQ_SLOT(slotAccRename()), actionCollection(), "account_rename");
+ a_ctAccSubscribe = new TDEAction(i18n("&Subscribe to Newsgroups..."), "news_subscribe", 0, this,
+ TQ_SLOT(slotAccSubscribe()), actionCollection(), "account_subscribe");
+ a_ctAccExpireAll = new TDEAction(i18n("&Expire All Groups"), 0, this,
+ TQ_SLOT(slotAccExpireAll()), actionCollection(), "account_expire_all");
+ a_ctAccGetNewHdrs = new TDEAction(i18n("&Get New Articles in All Groups"), "mail_get", 0, this,
+ TQ_SLOT(slotAccGetNewHdrs()), actionCollection(), "account_dnlHeaders");
+ a_ctAccGetNewHdrsAll = new TDEAction(i18n("&Get New Articles in All Accounts"), "mail_get_all", 0, this,
+ TQ_SLOT(slotAccGetNewHdrsAll()), actionCollection(), "account_dnlAllHeaders");
+ a_ctAccDelete = new TDEAction(i18n("&Delete Account"), "edit-delete", 0, this,
+ TQ_SLOT(slotAccDelete()), actionCollection(), "account_delete");
+ a_ctAccPostNewArticle = new TDEAction(i18n("&Post to Newsgroup..."), "mail-message-new", CTRL+Key_N, this,
+ TQ_SLOT(slotAccPostNewArticle()), actionCollection(), "article_postNew");
//collection-view - groups
- a_ctGrpProperties = new TDEAction(i18n("Group &Properties"), "configure", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotGrpProperties()), actionCollection(), "group_properties");
- a_ctGrpRename = new TDEAction(i18n("Rename &Group"), "text", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotGrpRename()), actionCollection(), "group_rename");
- a_ctGrpGetNewHdrs = new TDEAction(i18n("&Get New Articles"), "mail_get" , 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotGrpGetNewHdrs()), actionCollection(), "group_dnlHeaders");
- a_ctGrpExpire = new TDEAction(i18n("E&xpire Group"), "wizard", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotGrpExpire()), actionCollection(), "group_expire");
- a_ctGrpReorganize = new TDEAction(i18n("Re&organize Group"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotGrpReorganize()), actionCollection(), "group_reorg");
- a_ctGrpUnsubscribe = new TDEAction(i18n("&Unsubscribe From Group"), "news_unsubscribe", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotGrpUnsubscribe()), actionCollection(), "group_unsubscribe");
- a_ctGrpSetAllRead = new TDEAction(i18n("Mark All as &Read"), "goto", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotGrpSetAllRead()), actionCollection(), "group_allRead");
- a_ctGrpSetAllUnread = new TDEAction(i18n("Mark All as U&nread"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotGrpSetAllUnread()), actionCollection(), "group_allUnread");
- a_ctGrpSetUnread = new TDEAction(i18n("Mark Last as Unr&ead..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotGrpSetUnread()), actionCollection(), "group_unread");
+ a_ctGrpProperties = new TDEAction(i18n("Group &Properties"), "configure", 0, this,
+ TQ_SLOT(slotGrpProperties()), actionCollection(), "group_properties");
+ a_ctGrpRename = new TDEAction(i18n("Rename &Group"), "text", 0, this,
+ TQ_SLOT(slotGrpRename()), actionCollection(), "group_rename");
+ a_ctGrpGetNewHdrs = new TDEAction(i18n("&Get New Articles"), "mail_get" , 0, this,
+ TQ_SLOT(slotGrpGetNewHdrs()), actionCollection(), "group_dnlHeaders");
+ a_ctGrpExpire = new TDEAction(i18n("E&xpire Group"), "wizard", 0, this,
+ TQ_SLOT(slotGrpExpire()), actionCollection(), "group_expire");
+ a_ctGrpReorganize = new TDEAction(i18n("Re&organize Group"), 0, this,
+ TQ_SLOT(slotGrpReorganize()), actionCollection(), "group_reorg");
+ a_ctGrpUnsubscribe = new TDEAction(i18n("&Unsubscribe From Group"), "news_unsubscribe", 0, this,
+ TQ_SLOT(slotGrpUnsubscribe()), actionCollection(), "group_unsubscribe");
+ a_ctGrpSetAllRead = new TDEAction(i18n("Mark All as &Read"), "goto", 0, this,
+ TQ_SLOT(slotGrpSetAllRead()), actionCollection(), "group_allRead");
+ a_ctGrpSetAllUnread = new TDEAction(i18n("Mark All as U&nread"), 0, this,
+ TQ_SLOT(slotGrpSetAllUnread()), actionCollection(), "group_allUnread");
+ a_ctGrpSetUnread = new TDEAction(i18n("Mark Last as Unr&ead..."), 0, this,
+ TQ_SLOT(slotGrpSetUnread()), actionCollection(), "group_unread");
(void) new TDEAction( i18n("&Configure KNode..."),
- "configure", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotSettings()), actionCollection(),
+ "configure", 0, this,
+ TQ_SLOT(slotSettings()), actionCollection(),
"knode_configure_knode" );
//collection-view - folder
- a_ctFolNew = new TDEAction(i18n("&New Folder"), "folder-new", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotFolNew()), actionCollection(), "folder-new");
- a_ctFolNewChild = new TDEAction(i18n("New &Subfolder"), "folder-new", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotFolNewChild()), actionCollection(), "folder_newChild");
- a_ctFolDelete = new TDEAction(i18n("&Delete Folder"), "edit-delete", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotFolDelete()), actionCollection(), "folder_delete");
- a_ctFolRename = new TDEAction(i18n("&Rename Folder"), "text", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotFolRename()), actionCollection(), "folder_rename");
- a_ctFolCompact = new TDEAction(i18n("C&ompact Folder"), "wizard", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotFolCompact()), actionCollection(), "folder_compact");
- a_ctFolCompactAll = new TDEAction(i18n("Co&mpact All Folders"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotFolCompactAll()), actionCollection(), "folder_compact_all");
- a_ctFolEmpty = new TDEAction(i18n("&Empty Folder"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotFolEmpty()), actionCollection(), "folder_empty");
- a_ctFolMboxImport = new TDEAction(i18n("&Import MBox Folder..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotFolMBoxImport()), actionCollection(), "folder_MboxImport");
- a_ctFolMboxExport = new TDEAction(i18n("E&xport as MBox Folder..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotFolMBoxExport()), actionCollection(), "folder_MboxExport");
+ a_ctFolNew = new TDEAction(i18n("&New Folder"), "folder-new", 0, this,
+ TQ_SLOT(slotFolNew()), actionCollection(), "folder-new");
+ a_ctFolNewChild = new TDEAction(i18n("New &Subfolder"), "folder-new", 0, this,
+ TQ_SLOT(slotFolNewChild()), actionCollection(), "folder_newChild");
+ a_ctFolDelete = new TDEAction(i18n("&Delete Folder"), "edit-delete", 0, this,
+ TQ_SLOT(slotFolDelete()), actionCollection(), "folder_delete");
+ a_ctFolRename = new TDEAction(i18n("&Rename Folder"), "text", 0, this,
+ TQ_SLOT(slotFolRename()), actionCollection(), "folder_rename");
+ a_ctFolCompact = new TDEAction(i18n("C&ompact Folder"), "wizard", 0, this,
+ TQ_SLOT(slotFolCompact()), actionCollection(), "folder_compact");
+ a_ctFolCompactAll = new TDEAction(i18n("Co&mpact All Folders"), 0, this,
+ TQ_SLOT(slotFolCompactAll()), actionCollection(), "folder_compact_all");
+ a_ctFolEmpty = new TDEAction(i18n("&Empty Folder"), 0, this,
+ TQ_SLOT(slotFolEmpty()), actionCollection(), "folder_empty");
+ a_ctFolMboxImport = new TDEAction(i18n("&Import MBox Folder..."), 0, this,
+ TQ_SLOT(slotFolMBoxImport()), actionCollection(), "folder_MboxImport");
+ a_ctFolMboxExport = new TDEAction(i18n("E&xport as MBox Folder..."), 0, this,
+ TQ_SLOT(slotFolMBoxExport()), actionCollection(), "folder_MboxExport");
//header-view - list-handling
a_ctArtSortHeaders = new TDESelectAction(i18n("S&ort"), 0, actionCollection(), "view_Sort");
@@ -669,96 +669,96 @@ void KNMainWidget::initActions()
items += i18n("By &Date");
a_ctArtSortHeaders->setItems(items);
a_ctArtSortHeaders->setShortcutConfigurable(false);
- connect(a_ctArtSortHeaders, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotArtSortHeaders(int)));
- a_ctArtSortHeadersKeyb = new TDEAction(i18n("Sort"), TQString(), Key_F7 , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtSortHeadersKeyb()), actionCollection(), "view_Sort_Keyb");
+ connect(a_ctArtSortHeaders, TQ_SIGNAL(activated(int)), this, TQ_SLOT(slotArtSortHeaders(int)));
+ a_ctArtSortHeadersKeyb = new TDEAction(i18n("Sort"), TQString(), Key_F7 , this,
+ TQ_SLOT(slotArtSortHeadersKeyb()), actionCollection(), "view_Sort_Keyb");
a_ctArtSortHeadersKeyb->plugAccel(a_ccel);
a_ctArtFilter = new KNFilterSelectAction(i18n("&Filter"), "filter",
actionCollection(), "view_Filter");
a_ctArtFilter->setShortcutConfigurable(false);
a_ctArtFilterKeyb = new TDEAction(i18n("Filter"), Key_F6, actionCollection(), "view_Filter_Keyb");
a_ctArtFilterKeyb->plugAccel(a_ccel);
- a_ctArtSearch = new TDEAction(i18n("&Search Articles..."),"mail_find" , Key_F4 , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtSearch()), actionCollection(), "article_search");
- a_ctArtRefreshList = new TDEAction(i18n("&Refresh List"),"reload", TDEStdAccel::shortcut(TDEStdAccel::Reload), TQT_TQOBJECT(this),
- TQT_SLOT(slotArtRefreshList()), actionCollection(), "view_Refresh");
- a_ctArtCollapseAll = new TDEAction(i18n("&Collapse All Threads"), 0 , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtCollapseAll()), actionCollection(), "view_CollapseAll");
- a_ctArtExpandAll = new TDEAction(i18n("E&xpand All Threads"), 0 , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtExpandAll()), actionCollection(), "view_ExpandAll");
- a_ctArtToggleThread = new TDEAction(i18n("&Toggle Subthread"), Key_T, TQT_TQOBJECT(this),
- TQT_SLOT(slotArtToggleThread()), actionCollection(), "thread_toggle");
- a_ctArtToggleShowThreads = new TDEToggleAction(i18n("Show T&hreads"), 0 , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtToggleShowThreads()), actionCollection(), "view_showThreads");
+ a_ctArtSearch = new TDEAction(i18n("&Search Articles..."),"mail_find" , Key_F4 , this,
+ TQ_SLOT(slotArtSearch()), actionCollection(), "article_search");
+ a_ctArtRefreshList = new TDEAction(i18n("&Refresh List"),"reload", TDEStdAccel::shortcut(TDEStdAccel::Reload), this,
+ TQ_SLOT(slotArtRefreshList()), actionCollection(), "view_Refresh");
+ a_ctArtCollapseAll = new TDEAction(i18n("&Collapse All Threads"), 0 , this,
+ TQ_SLOT(slotArtCollapseAll()), actionCollection(), "view_CollapseAll");
+ a_ctArtExpandAll = new TDEAction(i18n("E&xpand All Threads"), 0 , this,
+ TQ_SLOT(slotArtExpandAll()), actionCollection(), "view_ExpandAll");
+ a_ctArtToggleThread = new TDEAction(i18n("&Toggle Subthread"), Key_T, this,
+ TQ_SLOT(slotArtToggleThread()), actionCollection(), "thread_toggle");
+ a_ctArtToggleShowThreads = new TDEToggleAction(i18n("Show T&hreads"), 0 , this,
+ TQ_SLOT(slotArtToggleShowThreads()), actionCollection(), "view_showThreads");
a_ctArtToggleShowThreads->setCheckedState(i18n("Hide T&hreads"));
a_ctArtToggleShowThreads->setChecked(c_fgManager->readNewsGeneral()->showThreads());
//header-view - remote articles
- a_ctArtSetArtRead = new TDEAction(i18n("Mark as &Read"), Key_D , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtSetArtRead()), actionCollection(), "article_read");
- a_ctArtSetArtUnread = new TDEAction(i18n("Mar&k as Unread"), Key_U , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtSetArtUnread()), actionCollection(), "article_unread");
- a_ctArtSetThreadRead = new TDEAction(i18n("Mark &Thread as Read"), CTRL+Key_D , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtSetThreadRead()), actionCollection(), "thread_read");
- a_ctArtSetThreadUnread = new TDEAction(i18n("Mark T&hread as Unread"), CTRL+Key_U , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtSetThreadUnread()), actionCollection(), "thread_unread");
- a_ctArtOpenNewWindow = new TDEAction(i18n("Open in Own &Window"), "window-new", Key_O , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtOpenNewWindow()), actionCollection(), "article_ownWindow");
+ a_ctArtSetArtRead = new TDEAction(i18n("Mark as &Read"), Key_D , this,
+ TQ_SLOT(slotArtSetArtRead()), actionCollection(), "article_read");
+ a_ctArtSetArtUnread = new TDEAction(i18n("Mar&k as Unread"), Key_U , this,
+ TQ_SLOT(slotArtSetArtUnread()), actionCollection(), "article_unread");
+ a_ctArtSetThreadRead = new TDEAction(i18n("Mark &Thread as Read"), CTRL+Key_D , this,
+ TQ_SLOT(slotArtSetThreadRead()), actionCollection(), "thread_read");
+ a_ctArtSetThreadUnread = new TDEAction(i18n("Mark T&hread as Unread"), CTRL+Key_U , this,
+ TQ_SLOT(slotArtSetThreadUnread()), actionCollection(), "thread_unread");
+ a_ctArtOpenNewWindow = new TDEAction(i18n("Open in Own &Window"), "window-new", Key_O , this,
+ TQ_SLOT(slotArtOpenNewWindow()), actionCollection(), "article_ownWindow");
// scoring
- a_ctScoresEdit = new TDEAction(i18n("&Edit Scoring Rules..."), "edit", CTRL+Key_E, TQT_TQOBJECT(this),
- TQT_SLOT(slotScoreEdit()), actionCollection(), "scoreedit");
- a_ctReScore = new TDEAction(i18n("Recalculate &Scores"), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotReScore()),actionCollection(),"rescore");
- a_ctScoreLower = new TDEAction(i18n("&Lower Score for Author..."), CTRL+Key_L, TQT_TQOBJECT(this),
- TQT_SLOT(slotScoreLower()), actionCollection(), "scorelower");
- a_ctScoreRaise = new TDEAction(i18n("&Raise Score for Author..."), CTRL+Key_I, TQT_TQOBJECT(this),
- TQT_SLOT(slotScoreRaise()),actionCollection(),"scoreraise");
- a_ctArtToggleIgnored = new TDEAction(i18n("&Ignore Thread"), "go-bottom", Key_I , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtToggleIgnored()), actionCollection(), "thread_ignore");
- a_ctArtToggleWatched = new TDEAction(i18n("&Watch Thread"), "go-top", Key_W , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtToggleWatched()), actionCollection(), "thread_watch");
+ a_ctScoresEdit = new TDEAction(i18n("&Edit Scoring Rules..."), "edit", CTRL+Key_E, this,
+ TQ_SLOT(slotScoreEdit()), actionCollection(), "scoreedit");
+ a_ctReScore = new TDEAction(i18n("Recalculate &Scores"), 0, this,
+ TQ_SLOT(slotReScore()),actionCollection(),"rescore");
+ a_ctScoreLower = new TDEAction(i18n("&Lower Score for Author..."), CTRL+Key_L, this,
+ TQ_SLOT(slotScoreLower()), actionCollection(), "scorelower");
+ a_ctScoreRaise = new TDEAction(i18n("&Raise Score for Author..."), CTRL+Key_I, this,
+ TQ_SLOT(slotScoreRaise()),actionCollection(),"scoreraise");
+ a_ctArtToggleIgnored = new TDEAction(i18n("&Ignore Thread"), "go-bottom", Key_I , this,
+ TQ_SLOT(slotArtToggleIgnored()), actionCollection(), "thread_ignore");
+ a_ctArtToggleWatched = new TDEAction(i18n("&Watch Thread"), "go-top", Key_W , this,
+ TQ_SLOT(slotArtToggleWatched()), actionCollection(), "thread_watch");
//header-view local articles
- a_ctArtSendOutbox = new TDEAction(i18n("Sen&d Pending Messages"), "mail-send", 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotArtSendOutbox()), actionCollection(), "net_sendPending");
- a_ctArtDelete = new TDEAction(i18n("&Delete Article"), "edit-delete", Key_Delete, TQT_TQOBJECT(this),
- TQT_SLOT(slotArtDelete()), actionCollection(), "article_delete");
- a_ctArtSendNow = new TDEAction(i18n("Send &Now"),"mail-send", 0 , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtSendNow()), actionCollection(), "article_sendNow");
- a_ctArtEdit = new TDEAction(i18n("edit article","&Edit Article..."), "edit", Key_E , TQT_TQOBJECT(this),
- TQT_SLOT(slotArtEdit()), actionCollection(), "article_edit");
+ a_ctArtSendOutbox = new TDEAction(i18n("Sen&d Pending Messages"), "mail-send", 0, this,
+ TQ_SLOT(slotArtSendOutbox()), actionCollection(), "net_sendPending");
+ a_ctArtDelete = new TDEAction(i18n("&Delete Article"), "edit-delete", Key_Delete, this,
+ TQ_SLOT(slotArtDelete()), actionCollection(), "article_delete");
+ a_ctArtSendNow = new TDEAction(i18n("Send &Now"),"mail-send", 0 , this,
+ TQ_SLOT(slotArtSendNow()), actionCollection(), "article_sendNow");
+ a_ctArtEdit = new TDEAction(i18n("edit article","&Edit Article..."), "edit", Key_E , this,
+ TQ_SLOT(slotArtEdit()), actionCollection(), "article_edit");
//network
- a_ctNetCancel = new TDEAction(i18n("Stop &Network"),"process-stop",0, TQT_TQOBJECT(this),
- TQT_SLOT(slotNetCancel()), actionCollection(), "net_stop");
+ a_ctNetCancel = new TDEAction(i18n("Stop &Network"),"process-stop",0, this,
+ TQ_SLOT(slotNetCancel()), actionCollection(), "net_stop");
a_ctNetCancel->setEnabled(false);
- a_ctFetchArticleWithID = new TDEAction(i18n("&Fetch Article with ID..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT(slotFetchArticleWithID()), actionCollection(), "fetch_article_with_id");
+ a_ctFetchArticleWithID = new TDEAction(i18n("&Fetch Article with ID..."), 0, this,
+ TQ_SLOT(slotFetchArticleWithID()), actionCollection(), "fetch_article_with_id");
a_ctFetchArticleWithID->setEnabled(false);
- a_ctToggleGroupView = new TDEToggleAction(i18n("Show &Group View"), CTRL+Key_G, TQT_TQOBJECT(this),
- TQT_SLOT(slotToggleGroupView()), actionCollection(), "settings_show_groupView");
+ a_ctToggleGroupView = new TDEToggleAction(i18n("Show &Group View"), CTRL+Key_G, this,
+ TQ_SLOT(slotToggleGroupView()), actionCollection(), "settings_show_groupView");
a_ctToggleGroupView->setCheckedState(i18n("Hide &Group View"));
- a_ctToggleHeaderView = new TDEToggleAction(i18n("Show &Header View"), CTRL+Key_H, TQT_TQOBJECT(this),
- TQT_SLOT(slotToggleHeaderView()), actionCollection(), "settings_show_headerView");
+ a_ctToggleHeaderView = new TDEToggleAction(i18n("Show &Header View"), CTRL+Key_H, this,
+ TQ_SLOT(slotToggleHeaderView()), actionCollection(), "settings_show_headerView");
a_ctToggleHeaderView->setCheckedState(i18n("Hide &Header View"));
- a_ctToggleArticleViewer = new TDEToggleAction(i18n("Show &Article Viewer"), CTRL+Key_J, TQT_TQOBJECT(this),
- TQT_SLOT(slotToggleArticleViewer()), actionCollection(), "settings_show_articleViewer");
+ a_ctToggleArticleViewer = new TDEToggleAction(i18n("Show &Article Viewer"), CTRL+Key_J, this,
+ TQ_SLOT(slotToggleArticleViewer()), actionCollection(), "settings_show_articleViewer");
a_ctToggleArticleViewer->setCheckedState(i18n("Hide &Article Viewer"));
- a_ctToggleQuickSearch = new TDEToggleAction(i18n("Show Quick Search"), TQString(), TQT_TQOBJECT(this),
- TQT_SLOT(slotToggleQuickSearch()), actionCollection(), "settings_show_quickSearch");
+ a_ctToggleQuickSearch = new TDEToggleAction(i18n("Show Quick Search"), TQString(), this,
+ TQ_SLOT(slotToggleQuickSearch()), actionCollection(), "settings_show_quickSearch");
a_ctToggleQuickSearch->setCheckedState(i18n("Hide Quick Search"));
- a_ctSwitchToGroupView = new TDEAction(i18n("Switch to Group View"), Key_G , TQT_TQOBJECT(this),
- TQT_SLOT(slotSwitchToGroupView()), actionCollection(), "switch_to_group_view");
+ a_ctSwitchToGroupView = new TDEAction(i18n("Switch to Group View"), Key_G , this,
+ TQ_SLOT(slotSwitchToGroupView()), actionCollection(), "switch_to_group_view");
a_ctSwitchToGroupView->plugAccel(a_ccel);
- a_ctSwitchToHeaderView = new TDEAction(i18n("Switch to Header View"), Key_H , TQT_TQOBJECT(this),
- TQT_SLOT(slotSwitchToHeaderView()), actionCollection(), "switch_to_header_view");
+ a_ctSwitchToHeaderView = new TDEAction(i18n("Switch to Header View"), Key_H , this,
+ TQ_SLOT(slotSwitchToHeaderView()), actionCollection(), "switch_to_header_view");
a_ctSwitchToHeaderView->plugAccel(a_ccel);
- a_ctSwitchToArticleViewer = new TDEAction(i18n("Switch to Article Viewer"), Key_J , TQT_TQOBJECT(this),
- TQT_SLOT(slotSwitchToArticleViewer()), actionCollection(), "switch_to_article_viewer");
+ a_ctSwitchToArticleViewer = new TDEAction(i18n("Switch to Article Viewer"), Key_J , this,
+ TQ_SLOT(slotSwitchToArticleViewer()), actionCollection(), "switch_to_article_viewer");
a_ctSwitchToArticleViewer->plugAccel(a_ccel);
}
@@ -2054,7 +2054,7 @@ FetchArticleIdDlg::FetchArticleIdDlg(TQWidget *parent, const char */*name*/ )
edit->setFocus();
enableButtonOK( false );
setButtonOK( i18n("&Fetch") );
- connect( edit, TQT_SIGNAL(textChanged( const TQString & )), this, TQT_SLOT(slotTextChanged(const TQString & )));
+ connect( edit, TQ_SIGNAL(textChanged( const TQString & )), this, TQ_SLOT(slotTextChanged(const TQString & )));
KNHelper::restoreWindowSize("fetchArticleWithID", this, TQSize(325,66));
}
diff --git a/knode/knmainwidget.h b/knode/knmainwidget.h
index c90e697d..7dabe226 100644
--- a/knode/knmainwidget.h
+++ b/knode/knmainwidget.h
@@ -21,7 +21,7 @@
#include "resource.h"
#include <tqglobal.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQListViewItem;
@@ -62,7 +62,7 @@ class TDEActionCollection;
class KDE_EXPORT KNMainWidget : public KDockArea, virtual public KNodeIface
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNMainWidget( KXMLGUIClient *client, bool detachable, TQWidget* parent, const char* name );
@@ -413,7 +413,7 @@ private:
class FetchArticleIdDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
FetchArticleIdDlg(TQWidget *parent, const char */*name*/ );
diff --git a/knode/knnetaccess.cpp b/knode/knnetaccess.cpp
index 57488f71..b63ba859 100644
--- a/knode/knnetaccess.cpp
+++ b/knode/knnetaccess.cpp
@@ -51,7 +51,7 @@ KNNetAccess::KNNetAccess(TQObject *parent, const char *name )
}
nntpNotifier=new TQSocketNotifier(nntpInPipe[0], TQSocketNotifier::Read);
- connect(nntpNotifier, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotThreadSignal(int)));
+ connect(nntpNotifier, TQ_SIGNAL(activated(int)), this, TQ_SLOT(slotThreadSignal(int)));
// initialize the KSocks stuff in the main thread, otherwise we get
// strange effects on FreeBSD
@@ -60,14 +60,14 @@ KNNetAccess::KNNetAccess(TQObject *parent, const char *name )
nntpClient=new KNNntpClient(nntpOutPipe[0],nntpInPipe[1],nntp_Mutex);
nntpClient->start();
- connect( knGlobals.accountManager(), TQT_SIGNAL(passwordsChanged()), TQT_SLOT(slotPasswordsChanged()) );
+ connect( knGlobals.accountManager(), TQ_SIGNAL(passwordsChanged()), TQ_SLOT(slotPasswordsChanged()) );
}
KNNetAccess::~KNNetAccess()
{
- disconnect(nntpNotifier, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotThreadSignal(int)));
+ disconnect(nntpNotifier, TQ_SIGNAL(activated(int)), this, TQ_SLOT(slotThreadSignal(int)));
nntpClient->terminateClient();
triggerAsyncThread(nntpOutPipe[1]);
@@ -95,7 +95,7 @@ void KNNetAccess::addJob(KNJobData *job)
}
job->createProgressItem();
- connect( job->progressItem(), TQT_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)), TQT_SLOT(slotCancelJob(KPIM::ProgressItem*)) );
+ connect( job->progressItem(), TQ_SIGNAL(progressItemCanceled(KPIM::ProgressItem*)), TQ_SLOT(slotCancelJob(KPIM::ProgressItem*)) );
emit netActive( true );
// put jobs which are waiting for the wallet into an extra queue
@@ -275,8 +275,8 @@ void KNNetAccess::startJobSmtp()
destination.setPass( account->pass() );
}
TDEIO::Job* job = TDEIO::storedPut( art->encodedContent(true), destination, -1, false, false, false );
- connect( job, TQT_SIGNAL( result(TDEIO::Job*) ),
- TQT_SLOT( slotJobResult(TDEIO::Job*) ) );
+ connect( job, TQ_SIGNAL( result(TDEIO::Job*) ),
+ TQ_SLOT( slotJobResult(TDEIO::Job*) ) );
if ( account->encryption() == KNServerInfo::TLS )
job->addMetaData( "tls", "on" );
else
diff --git a/knode/knnetaccess.h b/knode/knnetaccess.h
index e59d5e51..fb12949e 100644
--- a/knode/knnetaccess.h
+++ b/knode/knnetaccess.h
@@ -36,7 +36,7 @@ class KNNntpClient;
class KNNetAccess : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knnntpaccount.cpp b/knode/knnntpaccount.cpp
index ba1657c0..c5536c96 100644
--- a/knode/knnntpaccount.cpp
+++ b/knode/knnntpaccount.cpp
@@ -46,7 +46,7 @@ void KNNntpAccountIntervalChecking::installTimer()
if(!t_imer)
{
t_imer = new TQTimer();
- connect(t_imer,TQT_SIGNAL(timeout()),this,TQT_SLOT(slotCheckNews()));
+ connect(t_imer,TQ_SIGNAL(timeout()),this,TQ_SLOT(slotCheckNews()));
}
else
{
diff --git a/knode/knnntpaccount.h b/knode/knnntpaccount.h
index 23567077..fd946438 100644
--- a/knode/knnntpaccount.h
+++ b/knode/knnntpaccount.h
@@ -34,7 +34,7 @@ namespace KNConfig {
class KNNntpAccountIntervalChecking : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -114,5 +114,3 @@ class KNNntpAccount : public KNCollection , public KNServerInfo {
};
#endif
-
-// kate: space-indent on; indent-width 2;
diff --git a/knode/knnntpclient.cpp b/knode/knnntpclient.cpp
index 2ba465be..0755dc96 100644
--- a/knode/knnntpclient.cpp
+++ b/knode/knnntpclient.cpp
@@ -15,6 +15,9 @@
*/
#include <stdlib.h>
+#include <algorithm>
+#include <vector>
+
#include <tdelocale.h>
#include <tqtextcodec.h>
#include <tqmutex.h>
@@ -132,7 +135,7 @@ void KNNntpClient::doFetchGroups()
default : status = KNGroup::unknown;
}
- target->groups->append(new KNGroupInfo(name,TQString(),false,subscribed,status));
+ target->groups->push_back(new KNGroupInfo(name,TQString(),false,subscribed,status));
}
doneLines++;
}
@@ -140,15 +143,18 @@ void KNNntpClient::doFetchGroups()
if (!job->success() || job->canceled())
return; // stopped...
- TQSortedVector<KNGroupInfo> tempVector;
- target->groups->toVector(&tempVector);
- tempVector.sort();
+ std::vector<KNGroupInfo*> tempVector;
+ for (KNGroupInfo *g : *target->groups)
+ {
+ tempVector.push_back(g);
+ }
+ std::sort(tempVector.begin(), tempVector.end(), KNGroupInfo::PtrCompFn);
if (target->getDescriptions) {
errorPrefix = i18n("The group descriptions could not be retrieved.\nThe following error occurred:\n");
progressValue = 100;
doneLines = 0;
- predictedLines = target->groups->count();
+ predictedLines = target->groups->size();
sendSignal(TSdownloadDesc);
sendSignal(TSprogressUpdate);
@@ -189,8 +195,11 @@ void KNNntpClient::doFetchGroups()
description = TQString::fromLocal8Bit(s);
info.name = name;
- if ((pos=tempVector.bsearch(&info))!=-1)
- tempVector[pos]->description = description;
+ if (std::binary_search(tempVector.begin(), tempVector.end(), &info, KNGroupInfo::PtrCompFn))
+ {
+ KNGroupInfo *posGroup = *std::lower_bound(tempVector.begin(), tempVector.end(), &info, KNGroupInfo::PtrCompFn);
+ posGroup->description = description;
+ }
}
doneLines++;
}
@@ -200,9 +209,11 @@ void KNNntpClient::doFetchGroups()
return; // stopped...
}
- target->groups->setAutoDelete(false);
- tempVector.toList(target->groups);
- target->groups->setAutoDelete(true);
+ target->groups->clear();
+ for (KNGroupInfo *g : tempVector)
+ {
+ target->groups->push_back(g);
+ }
sendSignal(TSwriteGrouplist);
if (!target->writeOut())
@@ -229,8 +240,7 @@ void KNNntpClient::doCheckNewGroups()
char *s, *line;
TQString name;
KNGroup::Status status;
- TQSortedList<KNGroupInfo> tmpList;
- tmpList.setAutoDelete(true);
+ std::list<KNGroupInfo*> tmpList;
while (getNextLine()) {
line = getCurrentLine();
@@ -261,19 +271,23 @@ void KNNntpClient::doCheckNewGroups()
default : status = KNGroup::unknown;
}
- tmpList.append(new KNGroupInfo(name,TQString(),true,false,status));
+ tmpList.push_back(new KNGroupInfo(name,TQString(),true,false,status));
}
doneLines++;
}
+ bool statusOk = true;
+
if (!job->success() || job->canceled())
- return; // stopped...
+ {
+ statusOk = false; // stopped...
+ }
- if (target->getDescriptions) {
+ if (statusOk && target->getDescriptions) {
errorPrefix = i18n("The group descriptions could not be retrieved.\nThe following error occurred:\n");
progressValue = 100;
doneLines = 0;
- predictedLines = tmpList.count()*3;
+ predictedLines = tmpList.size()*3;
sendSignal(TSdownloadDesc);
sendSignal(TSprogressUpdate);
@@ -283,14 +297,21 @@ void KNNntpClient::doCheckNewGroups()
char *s;
int rep;
- for (KNGroupInfo *group=tmpList.first(); group; group=tmpList.next()) {
+ for (KNGroupInfo *group : tmpList)
+ {
if (!sendCommand(cmd+group->name.utf8(),rep))
- return;
+ {
+ statusOk = false;
+ break;
+ }
if (rep != 215) // 215 informations follows
break;
desList.clear();
if (!getMsg(desList))
- return;
+ {
+ statusOk = false;
+ break;
+ }
if (desList.count()>0) { // group has a description
s = desList.first();
@@ -310,17 +331,26 @@ void KNNntpClient::doCheckNewGroups()
}
}
- sendSignal(TSloadGrouplist);
+ if (statusOk)
+ {
+ sendSignal(TSloadGrouplist);
- if (!target->readIn()) {
- job->setErrorString(i18n("Unable to read the group list file"));
- return;
+ if (!target->readIn()) {
+ job->setErrorString(i18n("Unable to read the group list file"));
+ }
+ else
+ {
+ target->merge(&tmpList);
+ sendSignal(TSwriteGrouplist);
+ if (!target->writeOut()) {
+ job->setErrorString(i18n("Unable to write the group list file"));
+ }
+ }
}
- target->merge(&tmpList);
- sendSignal(TSwriteGrouplist);
- if (!target->writeOut()) {
- job->setErrorString(i18n("Unable to write the group list file"));
- return;
+
+ for (KNGroupInfo *group : tmpList)
+ {
+ delete group;
}
}
diff --git a/knode/knode.cpp b/knode/knode.cpp
index 175d1845..51f4f127 100644
--- a/knode/knode.cpp
+++ b/knode/knode.cpp
@@ -46,17 +46,17 @@ KNMainWindow::KNMainWindow( TQWidget* pWidget )
setStandardToolBarMenuEnabled(true);
//config stuff
- KStdAction::quit(TQT_TQOBJECT(kapp), TQT_SLOT(closeAllWindows()), actionCollection());
- KStdAction::configureToolbars(TQT_TQOBJECT(this), TQT_SLOT(slotConfToolbar()), actionCollection());
- KStdAction::keyBindings(TQT_TQOBJECT(this), TQT_SLOT(slotConfKeys()), actionCollection());
+ KStdAction::quit(kapp, TQ_SLOT(closeAllWindows()), actionCollection());
+ KStdAction::configureToolbars(this, TQ_SLOT(slotConfToolbar()), actionCollection());
+ KStdAction::keyBindings(this, TQ_SLOT(slotConfKeys()), actionCollection());
m_mainWidget = new KNMainWidget( this, true, this, 0 );
- connect( m_mainWidget, TQT_SIGNAL(signalCaptionChangeRequest(const TQString&)),
- TQT_SLOT( setCaption(const TQString&)) );
+ connect( m_mainWidget, TQ_SIGNAL(signalCaptionChangeRequest(const TQString&)),
+ TQ_SLOT( setCaption(const TQString&)) );
setCentralWidget( m_mainWidget );
setupStatusBar();
- connect( KPIM::BroadcastStatus::instance(), TQT_SIGNAL(statusMsg(const TQString&)),
- this, TQT_SLOT(slotShowStatusMsg(const TQString& )) );
+ connect( KPIM::BroadcastStatus::instance(), TQ_SIGNAL(statusMsg(const TQString&)),
+ this, TQ_SLOT(slotShowStatusMsg(const TQString& )) );
createGUI( "knodeui.rc" );
knGlobals.instance = 0;
@@ -77,7 +77,7 @@ void KNMainWindow::slotConfToolbar()
{
saveMainWindowSettings(knGlobals.config(),"mainWindow_options");
KEditToolbar dlg(actionCollection(), "knodeui.rc");
- connect(&dlg,TQT_SIGNAL( newToolbarConfig() ), this, TQT_SLOT( slotNewToolbarConfig() ));
+ connect(&dlg,TQ_SIGNAL( newToolbarConfig() ), this, TQ_SLOT( slotNewToolbarConfig() ));
dlg.exec();
}
diff --git a/knode/knode.h b/knode/knode.h
index f4bbf19f..3d1c7993 100644
--- a/knode/knode.h
+++ b/knode/knode.h
@@ -43,7 +43,7 @@ class KNHeaderView;
class KNMainWindow : public TDEMainWindow
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knode_config_accounts.desktop b/knode/knode_config_accounts.desktop
index 56db3506..b001c7e9 100644
--- a/knode/knode_config_accounts.desktop
+++ b/knode/knode_config_accounts.desktop
@@ -12,104 +12,5 @@ X-TDE-ParentComponents=knode,kontact_knodeplugin
X-TDE-CfgDlgHierarchy=KNode
Name=Accounts
-Name[af]=Rekeninge
-Name[ar]=الحسابات
-Name[be]=Рахункі
-Name[bg]=Сметки
-Name[br]=Kontoù
-Name[bs]=Računi
-Name[ca]=Comptes
-Name[cs]=Účty
-Name[cy]=Cyfrifon
-Name[da]=Konti
-Name[de]=Zugänge
-Name[el]=Λογαριασμοί
-Name[eo]=Kontoj
-Name[es]=Cuentas
-Name[et]=Kontod
-Name[eu]=Kontuak
-Name[fa]=حسابها
-Name[fi]=Tilit
-Name[fr]=Comptes
-Name[fy]=Akkounts
-Name[ga]=Cuntais
-Name[gl]=Contas
-Name[he]=חשבונות
-Name[hu]=Fiókok
-Name[is]=Tengingar
-Name[it]=Account
-Name[ja]=アカウント
-Name[kk]=Тіркелгілері
-Name[km]=គណនី
-Name[lt]=Paskyros
-Name[mk]=Сметки
-Name[ms]=Akaun
-Name[nb]=Kontoer
-Name[nds]=Kontos
-Name[ne]=खाता
-Name[nn]=Kontoar
-Name[pa]=ਖਾਤੇ
-Name[pl]=Konta
-Name[pt]=Contas
-Name[pt_BR]=Contas
-Name[ru]=Учётные записи
-Name[se]=Kontut
-Name[sk]=Účty
-Name[sl]=Računi
-Name[sr]=Налози
-Name[sr@Latn]=Nalozi
-Name[sv]=Konton
-Name[ta]=கணக்குகள்
-Name[tg]=Қайдҳои баҳисобгирӣ
-Name[tr]=Hesaplar
-Name[uk]=Рахунки
-Name[uz]=Ҳисоблар
-Name[zh_CN]=账户
-Name[zh_TW]=帳號
+
Comment=Setup for Newsgroup and Mail Servers
-Comment[af]=Opstel van nuus groep en e-pos bedieners
-Comment[bg]=Настройки на групите и пощенските сървъри
-Comment[bs]=Postavke za newsgrupe i mail servere
-Comment[ca]=Configuració dels grups de notícies i servidors de correu
-Comment[cs]=Nastavení diskuzní skupiny a poštovních serverů
-Comment[da]=Opsætning af nyhedsgruppe og e-mail-servere
-Comment[de]=Einstellungen für Newsgruppen- und Mailserver
-Comment[el]=Ρύθμιση για Ομάδες Συζήτησης και Διακομιστών Αλληλογραφίας
-Comment[es]=Configuración de los servidores de grupos de noticias y de correo
-Comment[et]=Uudiste- ja e-posti serverite seadistus
-Comment[eu]=Berri-talde eta posta zerbitzarien konfigurazioa
-Comment[fa]=برپایی برای کارسازهای نامه و Newsgroup
-Comment[fi]=Uutisryhmien ja sähköpostipalvelinten asetukset
-Comment[fr]=Configuration les serveurs de messagerie et de groupes de discussion
-Comment[fy]=Nijs- en posttsjinners opset
-Comment[gl]=Configuración para Servidores de Correo e Novas
-Comment[hu]=Hír- és levelezési kiszolgálók beállítása
-Comment[is]=Uppsetning fyrir fréttahópa og póstþjóna
-Comment[it]=Impostazioni per newsgroup e server di posta
-Comment[ja]=ニュースグループとメールサーバの設定
-Comment[kk]=Жаңалық топтар мен Пошта серверлері
-Comment[km]=រៀបចំម៉ាស៊ីន​បម្រើ​វេទិកា​ព័ត៌មាន និង​សំបុត្រ
-Comment[lt]=Naujienų grupių ir pašto serverių nustatymai
-Comment[mk]=Поставување за сервери за групи вести и за е-пошта
-Comment[ms]=Setup untuk Kumpulan Berita dan Pelayan Mel
-Comment[nb]=Oppsett av njusgruppe- og e-post tjenere
-Comment[nds]=Narichtenkrink- und Nettpostservers instellen
-Comment[ne]=समाचार समूह र पत्र सर्भरका लागि सेटअप गर्नुहोस्
-Comment[nl]=Instellingen voor nieuws- en mailservers
-Comment[nn]=Oppsett av Usenet- og e-post-tenarar
-Comment[pl]=Ustawienia serwerów poczty i grup dyskusyjnych
-Comment[pt]=Configuração de Servidores de Notícias e de E-mail
-Comment[pt_BR]=Configura Grupos de Discussão e Servidores de E-mails
-Comment[ru]=Учётные записи на почтовых серверах и серверах телеконференций
-Comment[se]=Heivet Usenet- ja e-boastabálvváid
-Comment[sk]=Nastavenie serverov pre poštu a diskusné skupiny
-Comment[sl]=Nastavitve za novične in poštne strežnike
-Comment[sr]=Поставке за групе новости и сервере поште
-Comment[sr@Latn]=Postavke za grupe novosti i servere pošte
-Comment[sv]=Inställningar för diskussionsgrupp och postservrar
-Comment[ta]=செய்திக்குழு மற்றும் மின்னஞ்சல் சேவைகளுக்கான அமைப்பு
-Comment[tg]=Қайдҳои баҳисобгирӣ дар серверҳои почтавӣ ва серверҳои телеконференсия
-Comment[tr]=E-posta ve Haber Grubu Sunucuları için Yapılandırma
-Comment[uk]=Налаштування для груп новин і серверів пошти
-Comment[zh_CN]=新闻组和邮件服务器的设置
-Comment[zh_TW]=設定新聞群組及郵件伺服器
diff --git a/knode/knode_config_appearance.desktop b/knode/knode_config_appearance.desktop
index 04084276..a5ad34c7 100644
--- a/knode/knode_config_appearance.desktop
+++ b/knode/knode_config_appearance.desktop
@@ -12,108 +12,5 @@ X-TDE-ParentComponents=knode,kontact_knodeplugin
X-TDE-CfgDlgHierarchy=KNode
Name=Appearance
-Name[ar]=المظهر
-Name[be]=Знешні выгляд
-Name[bg]=Външен вид
-Name[br]=Neuziadur
-Name[bs]=Izgled
-Name[ca]=Aparença
-Name[cs]=Vzhled
-Name[cy]=Golwg
-Name[da]=Udseende
-Name[de]=Erscheinungsbild
-Name[el]=Εμφάνιση
-Name[eo]=Prezentado
-Name[es]=Apariencia
-Name[et]=Välimus
-Name[eu]=Itxura
-Name[fa]=ظاهر
-Name[fi]=Ulkoasu
-Name[fr]=Apparence
-Name[fy]=Uterlik
-Name[ga]=Cuma
-Name[gl]=Apariencia
-Name[he]=מראה
-Name[hr]=Izgled
-Name[hu]=Megjelenés
-Name[is]=Útlit
-Name[it]=Aspetto
-Name[ja]=外観
-Name[kk]=Сыртқы көрінісі
-Name[km]=រូបរាង
-Name[ko]=모양
-Name[lt]=Išvaizda
-Name[mk]=Изглед
-Name[ms]=Rupa
-Name[nb]=Utseende
-Name[nds]=Utsehn
-Name[ne]=मोहडा
-Name[nl]=Uiterlijk
-Name[nn]=Utsjånad
-Name[pl]=Wygląd
-Name[pt]=Aparência
-Name[pt_BR]=Aparência
-Name[ru]=Внешний вид
-Name[rw]=Imigaragarire
-Name[se]=Fárda
-Name[sk]=Vzhľad
-Name[sl]=Videz
-Name[sr]=Изглед
-Name[sr@Latn]=Izgled
-Name[sv]=Uppträdande
-Name[ta]=தோற்றம்
-Name[tg]=Намуди зоҳирӣ
-Name[tr]=Görünüm
-Name[uk]=Вигляд
-Name[uz]=Кўриниши
-Name[zh_CN]=外观
+
Comment=Customize Visual Appearance
-Comment[af]=Pasmaak die visuele voorkoms
-Comment[bg]=Настройки на външния вид
-Comment[bs]=Prilagodi izgled
-Comment[ca]=Personalitza l'aparença visual
-Comment[cs]=Nastavení vzhledu
-Comment[cy]=Addasu Golwg
-Comment[da]=Brugerindstil visuelt udseende
-Comment[de]=Erscheinungsbild anpassen
-Comment[el]=Προσαρμογή εμφάνισης
-Comment[en_GB]=Customise Visual Appearance
-Comment[es]=Apariencia visual personalizada
-Comment[et]=Välimuse seadistused
-Comment[eu]=Pertsonalizatu itxura
-Comment[fa]=سفارشی کردن ظاهر تصویری
-Comment[fi]=Ulkonäköasetukset
-Comment[fr]=Personnalisation de l'apparence
-Comment[fy]=It uterlik oanpasse
-Comment[gl]=Personalizar a apariencia visual
-Comment[he]=הגדרת מראה
-Comment[hu]=A grafikai megjelenés testreszabása
-Comment[is]=Stilla útlit
-Comment[it]=Personalizza l'aspetto
-Comment[ja]=外観をカスタマイズ
-Comment[kk]=Сыртқы көрінісін ыңғайлау
-Comment[km]=ប្ដូរ​រូបរាង​មើល​ឃើញ​តាម​បំណង
-Comment[lt]=Derinti vizualinę išvaizdą
-Comment[mk]=Приспособете ја визуелната појава
-Comment[ms]=Suaikan Rupa Visual
-Comment[nb]=Tilpass visuelt utseende
-Comment[nds]=Utsehn topassen
-Comment[ne]=दृश्यात्मक मोहडा अनुकूल गर्नुहोस्
-Comment[nl]=Pas het uiterlijk aan
-Comment[nn]=Tilpass utsjånad
-Comment[pl]=Zmiana wyglądu
-Comment[pt]=Personalizar a Aparência Visual
-Comment[pt_BR]=Personalizar Aparência Visual
-Comment[ru]=Настройка внешнего вида
-Comment[se]=Heivet fárdda
-Comment[sk]=Prispôsobenie vzhľadu
-Comment[sl]=Prilagodi videz
-Comment[sr]=Прилагодите визуелни приказ
-Comment[sr@Latn]=Prilagodite vizuelni prikaz
-Comment[sv]=Anpassa visuellt uppträdande
-Comment[ta]=பார்க்கும் தோற்றத்தை தனிபயனாக்கு
-Comment[tg]=Танзимоти намуди зоҳирӣ
-Comment[tr]=Görsel Görünümü Özelleştir
-Comment[uk]=Налаштування зовнішнього вигляду
-Comment[zh_CN]=自定义视觉外观
-Comment[zh_TW]=調整視覺顯示
diff --git a/knode/knode_config_cleanup.desktop b/knode/knode_config_cleanup.desktop
index 896c8e51..8250c974 100644
--- a/knode/knode_config_cleanup.desktop
+++ b/knode/knode_config_cleanup.desktop
@@ -12,100 +12,5 @@ X-TDE-ParentComponents=knode,kontact_knodeplugin
X-TDE-CfgDlgHierarchy=KNode
Name=Cleanup
-Name[ar]=التنظيف
-Name[bg]=Изчистване
-Name[bs]=Čišćenje
-Name[ca]=Neteja
-Name[cs]=Vyčištění
-Name[da]=Oprydning
-Name[de]=Aufräumen
-Name[el]=Καθαρισμός
-Name[eo]=Purigo
-Name[es]=Limpiar
-Name[et]=Puhastamine
-Name[eu]=Garbiketa
-Name[fa]=پاک‌سازی
-Name[fi]=Siivoaminen
-Name[fr]=Nettoyage
-Name[fy]=Opskjinning
-Name[ga]=Glan
-Name[gl]=Limpeza
-Name[he]=ניקיון
-Name[hu]=Tisztítás
-Name[is]=Hreinsun
-Name[it]=Pulizia
-Name[ja]=整理
-Name[kk]=Тазалау
-Name[km]=សម្អាត
-Name[lt]=Išvalymas
-Name[mk]=Расчистување
-Name[ms]=Pembersihan
-Name[nb]=Rydd opp
-Name[nds]=Oprümen
-Name[ne]=हटाउनुहोस्
-Name[nl]=Opschoning
-Name[nn]=Rydd opp
-Name[pl]=Porządkowanie
-Name[pt]=Limpeza
-Name[pt_BR]=Limpeza
-Name[ru]=Очистка диска
-Name[se]=Čorge
-Name[sk]=Vyčistenie
-Name[sl]=Čiščenje
-Name[sr]=Чишћење
-Name[sr@Latn]=Čišćenje
-Name[sv]=Upprensning
-Name[ta]=சுத்தம் செய்
-Name[tg]=Тозакунии диск
-Name[tr]=Temizle
-Name[uk]=Очищення диску
-Name[zh_CN]=清理
-Name[zh_TW]=清除
+
Comment=Preserving Disk Space
-Comment[af]=Bespaar Skyf Spasie
-Comment[bg]=Освобождаване на свободно място на диска
-Comment[bs]=Čuvanje prostora na disku
-Comment[ca]=Preservar l'espai a disc
-Comment[cs]=Zachování místa na disku
-Comment[da]=Bevarer diskplads
-Comment[de]=Plattenplatz bewahren
-Comment[el]=Διαφύλαξη χώρου στο Δίσκο
-Comment[eo]=Ŝpari diskspacon
-Comment[es]=Preservar el espacio de disco
-Comment[et]=Kettaruumi eest hoolitsemine
-Comment[eu]=Diskaren espazioa mantendu
-Comment[fa]=حفظ فضای دیسک
-Comment[fi]=Kiintolevytilan säästäminen
-Comment[fr]=Préservation de l'espace disque
-Comment[fy]=Besparring fan skiifromte
-Comment[gl]=Preservar Espacio en Disco
-Comment[he]=שמירת מקום בכונן
-Comment[hu]=A lemezterület megőrzése
-Comment[is]=Varðveita diskpláss
-Comment[it]=Risparmia lo spazio su disco
-Comment[ja]=ディスクスペースを維持
-Comment[kk]=Дискідегі орынды үнемдеу
-Comment[km]=បង្ការ​ទំហំ​ថាស
-Comment[lt]=Disko erdvės išsaugojimas
-Comment[mk]=Зачувување простор на дискот
-Comment[ms]=Memelihara Ruang Cakera
-Comment[nb]=Bevarer disk plass
-Comment[nds]=Platz op de Fastplaat wohren
-Comment[ne]=चक्का खाली स्थान संचित गर्दैछ
-Comment[nl]=Besparing van schrijfruimte
-Comment[nn]=Frigjer diskplass
-Comment[pl]=Kontrolowanie użytej przestrzeni dyskowej
-Comment[pt]=Preservar o Espaço em Disco
-Comment[pt_BR]=Preservando o Espaço em Disco
-Comment[ru]=Сохранение места на диске
-Comment[sk]=Úspora miesta na disku
-Comment[sl]=Ohranjanje prostora na disku
-Comment[sr]=Чување простора на диску
-Comment[sr@Latn]=Čuvanje prostora na disku
-Comment[sv]=Bevara diskutrymme
-Comment[ta]=தட்டின் இடத்தை சேமித்தல்
-Comment[tg]=Нигоҳ доштани ҷое дар диск
-Comment[tr]=Saklama için Disk Alanı
-Comment[uk]=Збереження місця на диску
-Comment[zh_CN]=腾出磁盘空间
-Comment[zh_TW]=保留磁碟空間
diff --git a/knode/knode_config_identity.desktop b/knode/knode_config_identity.desktop
index 7a630b59..068f7202 100644
--- a/knode/knode_config_identity.desktop
+++ b/knode/knode_config_identity.desktop
@@ -12,110 +12,5 @@ X-TDE-ParentComponents=knode,kontact_knodeplugin
X-TDE-CfgDlgHierarchy=KNode
Name=Identity
-Name[af]=Identiteit
-Name[ar]=الهوية
-Name[be]=Увасабленне
-Name[bg]=Самоличност
-Name[br]=Anvelezh
-Name[bs]=Identitet
-Name[ca]=Identitat
-Name[cy]=Dynodiad
-Name[da]=Identitet
-Name[de]=Identität
-Name[el]=Ταυτότητα
-Name[eo]=Idento
-Name[es]=Identidad
-Name[et]=Identiteet
-Name[eu]=Identitatea
-Name[fa]=هویت
-Name[fi]=Henkilöllisyys
-Name[fr]=Identité
-Name[fy]=Identiteit
-Name[ga]=Aitheantas
-Name[gl]=Identidade
-Name[he]=זהות
-Name[hu]=Azonosító
-Name[is]=Auðkenni
-Name[it]=Identità
-Name[ja]=個人情報
-Name[kk]=Іс-әлпеті
-Name[km]=អត្តសញ្ញាណ
-Name[lt]=Tapatybė
-Name[mk]=Идентитет
-Name[ms]=Identiti
-Name[nb]=Identitet
-Name[nds]=Persoon
-Name[ne]=पहिचान
-Name[nl]=Identiteit
-Name[nn]=Identitet
-Name[pl]=Tożsamość
-Name[pt]=Identidade
-Name[pt_BR]=Identidade
-Name[ru]=Профиль
-Name[se]=Identitehta
-Name[sk]=Identita
-Name[sl]=Identiteta
-Name[sr]=Идентитет
-Name[sr@Latn]=Identitet
-Name[sv]=Identitet
-Name[ta]=அடையாளம்
-Name[tg]=Профил
-Name[tr]=Kimlik
-Name[uk]=Профіль
-Name[uz]=Шахсият
-Name[zh_CN]=身份
-Name[zh_TW]=身份
+
Comment=Personal Information
-Comment[af]=Persoonlike Informasie
-Comment[be]=Пэрсанальная інфармацыя
-Comment[bg]=Управление на личната информация
-Comment[br]=Titouroù diouzhin
-Comment[bs]=Lične informacije
-Comment[ca]=Informació personal
-Comment[cs]=Osobní informace
-Comment[cy]=Gwybodaeth Bersonol
-Comment[da]=Personlig information
-Comment[de]=Persönliche Angaben
-Comment[el]=Προσωπικές πληροφορίες
-Comment[eo]=Personaj Informoj
-Comment[es]=Información personal
-Comment[et]=Personaalne info
-Comment[eu]=Informazio pertsonala
-Comment[fa]=اطلاعات شخصی
-Comment[fi]=Omat tiedot
-Comment[fr]=Informations personnelles
-Comment[fy]=Persoanlike ynformatie
-Comment[ga]=Eolas Pearsanta
-Comment[gl]=Información Persoal
-Comment[he]=מידע אישי
-Comment[hu]=Személyi adatok
-Comment[is]=Persónuupplýsingar
-Comment[it]=Informazioni personali
-Comment[ja]=個人の情報
-Comment[kk]=Дербес мәліметтер
-Comment[km]=ព័ត៌មាន​ផ្ទាល់​ខ្លួន
-Comment[lt]=Asmeninė informacija
-Comment[mk]=Лични информации
-Comment[ms]=Maklumat Peribadi
-Comment[nb]=Personlig informasjon
-Comment[nds]=Persöönlich Informatschonen
-Comment[ne]=व्यक्तिगत सूचना
-Comment[nl]=Persoonlijke informatie
-Comment[nn]=Personleg informasjon
-Comment[pa]=ਨਿੱਜੀ ਜਾਣਕਾਰੀ
-Comment[pl]=Informacje osobiste
-Comment[pt]=Informação Pessoal
-Comment[pt_BR]=Informações Pessoais
-Comment[ru]=Персональная информация
-Comment[se]=Peršuvnnalaš dieđut
-Comment[sk]=Osobné informácie
-Comment[sl]=Osebne informacije
-Comment[sr]=Лична информација
-Comment[sr@Latn]=Lična informacija
-Comment[sv]=Personlig information
-Comment[ta]=சொந்த தகவல்
-Comment[tg]=Маълумоти шахсӣ
-Comment[tr]=Kişisel Bilgi
-Comment[uk]=Особиста інформація
-Comment[zh_CN]=个人信息
-Comment[zh_TW]=個人資訊
diff --git a/knode/knode_config_post_news.desktop b/knode/knode_config_post_news.desktop
index 50cf234f..2d9f8883 100644
--- a/knode/knode_config_post_news.desktop
+++ b/knode/knode_config_post_news.desktop
@@ -12,50 +12,3 @@ X-TDE-ParentComponents=knode,kontact_knodeplugin
X-TDE-CfgDlgHierarchy=KNode
Name=Posting News
-Name[af]=Pos Nuus
-Name[bg]=Изпращане
-Name[bs]=Slanje na Usenet
-Name[ca]=Enviament de notícies
-Name[cs]=Odesílání novinek
-Name[da]=Indsender nyheder
-Name[de]=Artikelversand
-Name[el]=Αποστολή νέων
-Name[es]=Enviar noticias
-Name[et]=Uudiste postitamine
-Name[eu]=Berrien argitaratzea
-Name[fa]=ارسال سریع اخبار
-Name[fi]=Viestien lähettäminen
-Name[fr]=Postage de nouvelles
-Name[fy]=Nijs poste
-Name[gl]=Publicando Noticias
-Name[he]=שליחת חדשות
-Name[hu]=Hírek írása
-Name[is]=Senda fréttir
-Name[it]=Invio news
-Name[ja]=ニュースを投稿
-Name[kk]=Жариялау
-Name[km]=ប្រកាស​ព័ត៌មាន​
-Name[lt]=Naujienų skelbimas
-Name[mk]=Испраќање вести
-Name[ms]=Menampal Berita
-Name[nb]=Legge inn Njus
-Name[nds]=Narichten sennen
-Name[ne]=समाचार पोष्ट गर्दैछ
-Name[nl]=Nieuws posten
-Name[nn]=Send innlegg
-Name[pl]=Publikowanie wiadomości
-Name[pt]=Enviar Notícias
-Name[pt_BR]=Enviando Notícias
-Name[ru]=Размещение статей
-Name[sk]=Posielanie príspevkov
-Name[sl]=Pošiljanje novic
-Name[sr]=Слање новости
-Name[sr@Latn]=Slanje novosti
-Name[sv]=Skicka inlägg
-Name[ta]=செய்திகளை அனுப்புதல்
-Name[tg]=Ҷойгиркунии мақола
-Name[tr]=Gönderilen Haberler
-Name[uk]=Розміщення новин
-Name[zh_CN]=投递新闻
-Name[zh_TW]=發表文章
-
diff --git a/knode/knode_config_privacy.desktop b/knode/knode_config_privacy.desktop
index 250ae262..1e5e8c87 100644
--- a/knode/knode_config_privacy.desktop
+++ b/knode/knode_config_privacy.desktop
@@ -12,94 +12,5 @@ X-TDE-ParentComponents=knode,kontact_knodeplugin
X-TDE-CfgDlgHierarchy=KNode
Name=Signing/Verifying
-Name[af]=Teken/Bevestig
-Name[ar]=التوقيع/التحقق
-Name[bg]=Подпис/проверка
-Name[bs]=Potpisivanje/Provjera
-Name[ca]=Signat/Verificació
-Name[cs]=Podepisování/ověřování
-Name[da]=Underskriver/Verificerer
-Name[de]=Signieren/Verifizieren
-Name[el]=Υπογραφή/Επαλήθευση
-Name[es]=Firmar/Verificar
-Name[et]=Signeerimine/kontroll
-Name[eu]=Sinadura/Egiaztapena
-Name[fa]=امضا/وارسی
-Name[fi]=Allekirjoittaminen/tarkistaminen
-Name[fr]=Signature/Vérification
-Name[fy]=Undertekening/Ferifiearje
-Name[gl]=Asinando/Verificando
-Name[he]=חתימה/ווידוא
-Name[hu]=Aláírás/ellenőrzés
-Name[is]=Undirrita/staðfesta
-Name[it]=Firma/verifica
-Name[ja]=署名/検証
-Name[kk]=Қолтаңбалау/Тексеру
-Name[km]=ចុះហត្ថលេខា/ផ្ទៀងផ្ទាត់
-Name[lt]=Pasirašoma/tikrinama
-Name[mk]=Потпишување/верификација
-Name[ms]=Menandatangan/Menentu sah
-Name[nb]=Signering/Verifisering
-Name[nds]=Ünnerschrieven / Pröven
-Name[ne]=साइनिङ/रुजु गर्दैछ
-Name[nl]=Ondertekening/Verifiëring
-Name[nn]=Signering/stadfesting
-Name[pl]=Podpisywanie/Weryfikacja podpisów
-Name[pt]=Assinar/Verificar
-Name[pt_BR]=Assinando/Verificando
-Name[ru]=Подпись и проверка
-Name[sk]=Podpis/overenie
-Name[sl]=Podpisovanje/Preverjanje
-Name[sr]=Потписивање-проверавање
-Name[sr@Latn]=Potpisivanje-proveravanje
-Name[sv]=Signera och verifiera
-Name[ta]=கையெழுத்து இடுதல்/சரிபார்த்தல்
-Name[tg]=Имзо ва тафтиш
-Name[tr]=İmzalama/Doğruluma
-Name[uk]=Підписування і перевірка
-Name[zh_CN]=签名/校验
-Name[zh_TW]=簽署/檢查
+
Comment=Protect your privacy by signing and verifying postings
-Comment[af]=Beskerm you privaatheid deur pos stukke te onderteken en te bevestig
-Comment[bg]=Защита на личната кореспонденция чрез подписване и проверка на съобщенията
-Comment[bs]=Zaštitite vašu privatnost potpisivanjem i provjerom postinga
-Comment[ca]=Protegiu la vostra privadesa signant i verificant els missatges
-Comment[cs]=Chraňte své soukromí pomocí podepisování a ověřování podpisů
-Comment[da]=Beskyt dine private oplysninger ved at underskrive og verificere indsendelser
-Comment[de]=Schutz der Privatsphäre durch Signieren und Verifizieren von Beiträgen.
-Comment[el]=Προστατεύστε το απόρρητό σας υπογράφοντας και επαληθεύοντας τα μηνύματα
-Comment[es]=Proteja su privacidad firmando y verificando sus envíos
-Comment[et]=Kaitseb sinu privaatsust postitusi signeerides ja konrollides
-Comment[eu]=Babestu zure pribakortasuna argitarapenak sinatu eta egiaztatuz
-Comment[fa]=حفظ محرمانگی خود با امضا و وارسی ارسالهای سریع
-Comment[fi]=Suojele yksityisyyttäsi allekirjoittamalla ja varmentamalla posti
-Comment[fr]=Protection de votre vie privée lors de la signature et vérification des envois
-Comment[fy]=Beskermje jo privacy troch jo berjochten te ûndertekenjen en te ferifiearjen
-Comment[gl]=Protexe a súa intimidade asinando e verificando as entradas
-Comment[hu]=Az adatok védelme az üzenetek elektronikus aláírásával, titkosításával
-Comment[is]=Verndaðu einkalífið þitt með því að undirrita og staðfesta sendingar
-Comment[it]=Proteggi la tua privacy firmando e verificando i messaggi
-Comment[ja]=投稿の署名と検証によりあなたのプライバシーを保護します
-Comment[kk]=Жарияланғанды қолтаңбалап/тексеріп қорғану
-Comment[km]=ការពារ​ភាព​ឯកជន​របស់​អ្នក​ដោយ​ចុះហត្ថលេខា និង​​ផ្ទៀងផ្ទាត់​ការ​ប្រកាស
-Comment[lt]=Saugokite savo privatumą pasirašydami ir patikrindami skelbimus
-Comment[ms]=Melindungi ruang privasi anda dengan menandatangan dan menentusah pengeposan
-Comment[nb]=Beskytt privatlivet ditt ved å signere og verifisere oppslag
-Comment[nds]=Dör dat Ünnerschrieven un Överpröven vun Narichten warrt Dien Privaatrebeet schuult.
-Comment[ne]=तपाईँको नीजिपना साइन गरेर र पोष्टिङ रुजु गरेर सुरक्षा गर्नुहोस्
-Comment[nl]=Bescherm uw privacy door uw berichten te ondertekenen en te verifiëren
-Comment[nn]=Vern om privatlivet med signerte og stadfesta innlegg
-Comment[pl]=Ochrona prywatności poprzez podpisywanie i weryfikację podpisów wiadomości
-Comment[pt]=Proteja a sua privacidade assinando e verificando as mensagens
-Comment[pt_BR]=Protege sua privacidade através da assinatura e verificação das mensagens
-Comment[ru]=Защита информации посредством подписей и проверки сообщений
-Comment[sk]=Chráňte svoje súkromie digitálnymi podpismi a overovaním príspevkov
-Comment[sl]=Zaščitite vašo zasebnost s podpisovanjem ali preverjanjem člankov
-Comment[sr]=Заштитите вашу приватност потписивајући и проверавајући поруке
-Comment[sr@Latn]=Zaštitite vašu privatnost potpisivajući i proveravajući poruke
-Comment[sv]=Skyddar din integritet genom att signera och verifiera meddelanden
-Comment[tg]=Муҳофизати иттилоот ба воситаи имзо ва тафтиши ахборот
-Comment[tr]=Gönderilen iletilerinizi imzalayarak ve doğrulayarak güvenirliliğinizi sağlayın
-Comment[uk]=Захист конфіденційності за допомогою підписування і перевірки повідомлень
-Comment[zh_CN]=通过对发表的文件进行签名和校验来保护您的隐私
-Comment[zh_TW]=以簽署或檢查文章來保護您的隱私
diff --git a/knode/knode_config_read_news.desktop b/knode/knode_config_read_news.desktop
index a8c34e31..1d07b030 100644
--- a/knode/knode_config_read_news.desktop
+++ b/knode/knode_config_read_news.desktop
@@ -12,53 +12,3 @@ X-TDE-ParentComponents=knode,kontact_knodeplugin
X-TDE-CfgDlgHierarchy=KNode
Name=Reading News
-Name[af]=Lees Nuus
-Name[ar]=قراءة الأخبار
-Name[be]=Чытанне навін
-Name[bg]=Четене на новини
-Name[bs]=Čitanje Useneta
-Name[ca]=Lectura de notícies
-Name[cs]=Čtení novinek
-Name[da]=Læser nyheder
-Name[de]=Artikel lesen
-Name[el]=Ανάγνωση νέων
-Name[es]=Leer noticias
-Name[et]=Uudiste lugemine
-Name[eu]=Berrien irakurketa
-Name[fa]=خواندن اخبار
-Name[fi]=Uutisryhmien lukeminen
-Name[fr]=Lecture de nouvelles
-Name[fy]=Nijs lêze
-Name[gl]=Ler Noticias
-Name[he]=קריאת חדשות
-Name[hu]=Hírek olvasása
-Name[is]=Lestur frétta
-Name[it]=Lettura News
-Name[ja]=ニュースを読む
-Name[kk]=Жаңалықтарды оқу
-Name[km]=អាន​ព័ត៌មាន
-Name[lt]=Naujienų skaitymas
-Name[mk]=Читање вести
-Name[ms]=Membaca Berita
-Name[nb]=Lese Njus
-Name[nds]=Narichten lesen
-Name[ne]=समाचार वाचन गर्दैछ
-Name[nl]=Nieuws lezen
-Name[nn]=Les innlegg
-Name[pl]=Odczytywanie wiadomości
-Name[pt]=Leitura de Notícias
-Name[pt_BR]=Lendo Notícias
-Name[ru]=Чтение новостей
-Name[sk]=Čítanie diskusných skupín
-Name[sl]=Branje novic
-Name[sr]=Читање новости
-Name[sr@Latn]=Čitanje novosti
-Name[sv]=Läsa inlägg
-Name[ta]=செய்திகளைப் படித்தல்
-Name[tg]=Хондани ахборот
-Name[tr]=Haber Okuma
-Name[uk]=Читання новин
-Name[uz]=Янгиликларни ўқиш
-Name[zh_CN]=阅读新闻
-Name[zh_TW]=閱讀新聞
-
diff --git a/knode/knode_part.cpp b/knode/knode_part.cpp
index c5169a5b..028a267d 100644
--- a/knode/knode_part.cpp
+++ b/knode/knode_part.cpp
@@ -68,13 +68,13 @@ KNodePart::KNodePart(TQWidget *parentWidget, const char *widgetName,
// create a canvas to insert our widget
TQWidget *canvas = new TQWidget(parentWidget, widgetName);
- canvas->setFocusPolicy(TQ_ClickFocus);
+ canvas->setFocusPolicy(TQWidget::ClickFocus);
setWidget(canvas);
mainWidget = new KNMainWidget( this, false, canvas, "knode_widget" );
TQVBoxLayout *topLayout = new TQVBoxLayout(canvas);
topLayout->addWidget(mainWidget);
- mainWidget->setFocusPolicy(TQ_ClickFocus);
+ mainWidget->setFocusPolicy(TQWidget::ClickFocus);
kapp->dcopClient()->resume(); // Ok. We are ready for DCOP requests.
diff --git a/knode/knode_part.h b/knode/knode_part.h
index b1136db4..99f810c5 100644
--- a/knode/knode_part.h
+++ b/knode/knode_part.h
@@ -41,7 +41,7 @@ class KNMainWidget;
class KNodePart: public KParts::ReadOnlyPart
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNodePart(TQWidget *parentWidget, const char *widgetName,
diff --git a/knode/knrangefilter.cpp b/knode/knrangefilter.cpp
index f5aa5593..a74a48df 100644
--- a/knode/knrangefilter.cpp
+++ b/knode/knrangefilter.cpp
@@ -134,9 +134,9 @@ KNRangeFilterWidget::KNRangeFilterWidget(const TQString& value, int min, int max
topL->setColStretch(1,1);
topL->setColStretch(5,1);
- connect(op1, TQT_SIGNAL(activated(int)), TQT_SLOT(slotOp1Changed(int)));
- connect(op2, TQT_SIGNAL(activated(int)), TQT_SLOT(slotOp2Changed(int)));
- connect(enabled, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotEnabled(bool)));
+ connect(op1, TQ_SIGNAL(activated(int)), TQ_SLOT(slotOp1Changed(int)));
+ connect(op2, TQ_SIGNAL(activated(int)), TQ_SLOT(slotOp2Changed(int)));
+ connect(enabled, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotEnabled(bool)));
slotEnabled(false);
}
diff --git a/knode/knrangefilter.h b/knode/knrangefilter.h
index 1a1f4ebc..f5c429f3 100644
--- a/knode/knrangefilter.h
+++ b/knode/knrangefilter.h
@@ -62,7 +62,7 @@ class KNRangeFilter {
class KNRangeFilterWidget : public TQGroupBox {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knscoring.h b/knode/knscoring.h
index 1e0c8c37..83d332fe 100644
--- a/knode/knscoring.h
+++ b/knode/knscoring.h
@@ -60,7 +60,7 @@ public:
class KNScoringManager : public KScoringManager
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knsearchdialog.cpp b/knode/knsearchdialog.cpp
index b38e0650..646969ee 100644
--- a/knode/knsearchdialog.cpp
+++ b/knode/knsearchdialog.cpp
@@ -60,9 +60,9 @@ KNSearchDialog::KNSearchDialog(searchType /*t*/, TQWidget *parent)
topL->addLayout(filterL, 1);
topL->addWidget(bg);
- connect(startBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotStartClicked()));
- connect(newBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotNewClicked()));
- connect(closeBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotCloseClicked()));
+ connect(startBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotStartClicked()));
+ connect(newBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotNewClicked()));
+ connect(closeBtn, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotCloseClicked()));
f_ilter=new KNArticleFilter();
f_ilter->setLoaded(true);
diff --git a/knode/knsearchdialog.h b/knode/knsearchdialog.h
index 37b12eb3..fac2f1be 100644
--- a/knode/knsearchdialog.h
+++ b/knode/knsearchdialog.h
@@ -27,7 +27,7 @@ class KNArticleFilter;
class KNSearchDialog : public TQDialog {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knsourceviewwindow.cpp b/knode/knsourceviewwindow.cpp
index 71af3c18..651bc1e8 100644
--- a/knode/knsourceviewwindow.cpp
+++ b/knode/knsourceviewwindow.cpp
@@ -27,7 +27,7 @@ KNSourceViewWindow::KNSourceViewWindow( const TQString &text )
{
setWFlags(WType_TopLevel | WDestructiveClose);
TQAccel *accel = new TQAccel( this, "browser close-accel" );
- accel->connectItem( accel->insertItem( TQt::Key_Escape ), this , TQT_SLOT( close() ));
+ accel->connectItem( accel->insertItem( TQt::Key_Escape ), this , TQ_SLOT( close() ));
KNConfig::Appearance *app=knGlobals.configManager()->appearance();
setTextFormat( PlainText );
diff --git a/knode/knsourceviewwindow.h b/knode/knsourceviewwindow.h
index 595a1a99..2007a1a3 100644
--- a/knode/knsourceviewwindow.h
+++ b/knode/knsourceviewwindow.h
@@ -20,7 +20,7 @@
class KNSourceViewWindow : public KTextBrowser {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knstatusfilter.cpp b/knode/knstatusfilter.cpp
index ec098d9c..d770ae22 100644
--- a/knode/knstatusfilter.cpp
+++ b/knode/knstatusfilter.cpp
@@ -116,7 +116,7 @@ KNStatusFilterWidget::KNStatusFilterWidget(TQWidget *parent) :
topL->setColStretch(2,1);
topL->setRowStretch(4,1);
- connect(this, TQT_SIGNAL(clicked(int)), this, TQT_SLOT(slotEnabled(int)));
+ connect(this, TQ_SIGNAL(clicked(int)), this, TQ_SLOT(slotEnabled(int)));
}
diff --git a/knode/knstatusfilter.h b/knode/knstatusfilter.h
index cb949fb7..39ad9d91 100644
--- a/knode/knstatusfilter.h
+++ b/knode/knstatusfilter.h
@@ -53,7 +53,7 @@ class KNStatusFilter {
class KNStatusFilterWidget : public TQButtonGroup {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knstringfilter.cpp b/knode/knstringfilter.cpp
index ba594a9f..20c62f1d 100644
--- a/knode/knstringfilter.cpp
+++ b/knode/knstringfilter.cpp
@@ -161,5 +161,3 @@ void KNStringFilterWidget::setStartFocus()
// -----------------------------------------------------------------------------+
#include "knstringfilter.moc"
-
-// kate: space-indent on; indent-width 2;
diff --git a/knode/knstringfilter.h b/knode/knstringfilter.h
index 8552d087..64df0340 100644
--- a/knode/knstringfilter.h
+++ b/knode/knstringfilter.h
@@ -57,7 +57,7 @@ class KNStringFilter {
class KNStringFilterWidget : public TQGroupBox {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/knwidgets.cpp b/knode/knwidgets.cpp
index b4c9a160..3e1d8dec 100644
--- a/knode/knwidgets.cpp
+++ b/knode/knwidgets.cpp
@@ -110,7 +110,7 @@ void KNDialogListBox::keyPressEvent(TQKeyEvent *e)
KNDockWidgetHeaderDrag::KNDockWidgetHeaderDrag(TQWidget *focusWidget, KDockWidgetAbstractHeader* parent, KDockWidget* dock, const char* name )
: KDockWidgetHeaderDrag(parent, dock, name), f_ocus(false)
{
- connect(focusWidget, TQT_SIGNAL(focusChanged(TQFocusEvent*)), TQT_SLOT(slotFocusChanged(TQFocusEvent*)));
+ connect(focusWidget, TQ_SIGNAL(focusChanged(TQFocusEvent*)), TQ_SLOT(slotFocusChanged(TQFocusEvent*)));
}
diff --git a/knode/knwidgets.h b/knode/knwidgets.h
index dcdfe35b..53b4b853 100644
--- a/knode/knwidgets.h
+++ b/knode/knwidgets.h
@@ -68,7 +68,7 @@ class KNDialogListBox : public TQListBox
class KNDockWidgetHeaderDrag : public KDockWidgetHeaderDrag
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/knode/smtpaccountwidget_base.ui b/knode/smtpaccountwidget_base.ui
index 702ce90d..8913c509 100644
--- a/knode/smtpaccountwidget_base.ui
+++ b/knode/smtpaccountwidget_base.ui
@@ -143,9 +143,6 @@
<property name="text">
<string>None</string>
</property>
- <property name="accel">
- <string></string>
- </property>
</widget>
<widget class="TQRadioButton">
<property name="name">
@@ -154,9 +151,6 @@
<property name="text">
<string>SSL</string>
</property>
- <property name="accel">
- <string></string>
- </property>
</widget>
<widget class="TQRadioButton">
<property name="name">
@@ -165,9 +159,6 @@
<property name="text">
<string>TLS</string>
</property>
- <property name="accel">
- <string></string>
- </property>
</widget>
</vbox>
</widget>
@@ -219,10 +210,10 @@
<slot>changed()</slot>
</connection>
</connections>
-<Q_SLOTS>
+<slots>
<slot access="protected">useExternalMailerToggled(bool)</slot>
<slot access="protected">loginToggled(bool)</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
<includes>
<include location="global" impldecl="in declaration">tdecmodule.h</include>
diff --git a/knode/utilities.h b/knode/utilities.h
index e88ca695..f20d99e1 100644
--- a/knode/utilities.h
+++ b/knode/utilities.h
@@ -20,8 +20,6 @@
#include <tqfile.h>
#include <tqglobal.h>
-#include <tqptrvector.h>
-#include <tqptrlist.h>
class TQWidget;
class TQString;
@@ -36,25 +34,6 @@ class KTempFile;
// utility classes
//*****************************************************************************
-/** clone of TQSortedList... */
-template<class type> class TQ_EXPORT TQSortedVector : public TQPtrVector<type>
-{
-public:
- TQSortedVector() {}
- TQSortedVector ( uint size ) : TQPtrVector<type>(size) {}
- TQSortedVector( const TQSortedVector<type> &l ) : TQPtrVector<type>(l) {}
- ~TQSortedVector() { TQPtrVector<type>::clear(); }
- TQSortedVector<type> &operator=(const TQSortedVector<type> &l)
- { return (TQSortedVector<type>&)TQPtrList<type>::operator=(l); }
-
- virtual int compareItems( TQPtrCollection::Item s1, TQPtrCollection::Item s2 )
- { if ( *((type*)s1) == *((type*)s2) ) return 0; return ( *((type*)s1) < *((type*)s2) ? -1 : 1 ); }
-};
-
-
-//==============================================================================
-
-
class KNFile : public TQFile {
public:
@@ -63,7 +42,7 @@ class KNFile : public TQFile {
const TQCString& readLine();
const TQCString& readLineWnewLine();
/** searches for the string from the current file position
- returns -1 when the string wasn't found. */
+ returns -1 when the string wasn't found. */
int findString(const char *s);
protected:
diff --git a/knotes/CMakeL10n.txt b/knotes/CMakeL10n.txt
index 4cb63049..984b1fee 100644
--- a/knotes/CMakeL10n.txt
+++ b/knotes/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_create_template( "knotes" )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/knotes-desktops/"
+ SOURCES *.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/knotes/CMakeLists.txt b/knotes/CMakeLists.txt
index 198d124e..92708c36 100644
--- a/knotes/CMakeLists.txt
+++ b/knotes/CMakeLists.txt
@@ -39,11 +39,25 @@ install( FILES KNotesIface.h KNotesAppIface.h DESTINATION ${INCLUDE_INSTALL_DIR}
##### other data ################################
-install( FILES knotes.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE knotes.desktop
+ PO_DIR knotes-desktops
+)
+
install( FILES knoteconfig.kcfg knotesglobalconfig.kcfg DESTINATION ${KCFG_INSTALL_DIR} )
install( FILES knotesappui.rc knotesui.rc DESTINATION ${DATA_INSTALL_DIR}/knotes )
-install( FILES local.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/knotes )
-install( FILES knotes_manager.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources )
+
+tde_create_translated_desktop(
+ SOURCE local.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/knotes
+ PO_DIR knotes-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE knotes_manager.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources
+ PO_DIR knotes-desktops
+)
##### knotes (executable) #######################
diff --git a/knotes/knote.cpp b/knotes/knote.cpp
index 2a78d718..69fb1d43 100644
--- a/knotes/knote.cpp
+++ b/knotes/knote.cpp
@@ -105,47 +105,47 @@ KNote::KNote( TQDomDocument buildDoc, Journal *j, TQWidget *parent, const char *
// create the menu items for the note - not the editor...
// rename, mail, print, save as, insert date, alarm, close, delete, new note
new TDEAction( i18n("New"), "document-new", 0,
- TQT_TQOBJECT(this),TQT_SLOT(slotRequestNewNote()) , actionCollection(), "new_note" );
+ this,TQ_SLOT(slotRequestNewNote()) , actionCollection(), "new_note" );
new TDEAction( i18n("Rename..."), "text", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotRename()), actionCollection(), "rename_note" );
+ this, TQ_SLOT(slotRename()), actionCollection(), "rename_note" );
m_readOnly = new TDEToggleAction( i18n("Lock"), "system-lock-screen" , 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotUpdateReadOnly()), actionCollection(), "lock_note" );
+ this, TQ_SLOT(slotUpdateReadOnly()), actionCollection(), "lock_note" );
m_readOnly->setCheckedState( KGuiItem( i18n("Unlock"), "unlock" ) );
new TDEAction( i18n("Hide"), "window-close" , Key_Escape,
- TQT_TQOBJECT(this), TQT_SLOT(slotClose()), actionCollection(), "hide_note" );
+ this, TQ_SLOT(slotClose()), actionCollection(), "hide_note" );
new TDEAction( i18n("Delete"), "knotes_delete", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotKill()), actionCollection(), "delete_note" );
+ this, TQ_SLOT(slotKill()), actionCollection(), "delete_note" );
new TDEAction( i18n("Insert Date"), "knotes_date", 0 ,
- TQT_TQOBJECT(this), TQT_SLOT(slotInsDate()), actionCollection(), "insert_date" );
+ this, TQ_SLOT(slotInsDate()), actionCollection(), "insert_date" );
new TDEAction( i18n("Set Alarm..."), "knotes_alarm", 0 ,
- TQT_TQOBJECT(this), TQT_SLOT(slotSetAlarm()), actionCollection(), "set_alarm" );
+ this, TQ_SLOT(slotSetAlarm()), actionCollection(), "set_alarm" );
new TDEAction( i18n("Send..."), "network", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotSend()), actionCollection(), "send_note" );
+ this, TQ_SLOT(slotSend()), actionCollection(), "send_note" );
new TDEAction( i18n("Mail..."), "mail-send", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotMail()), actionCollection(), "mail_note" );
+ this, TQ_SLOT(slotMail()), actionCollection(), "mail_note" );
new TDEAction( i18n("Save As..."), "document-save-as", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotSaveAs()), actionCollection(), "save_note" );
- KStdAction::print( TQT_TQOBJECT(this), TQT_SLOT(slotPrint()), actionCollection(), "print_note" );
+ this, TQ_SLOT(slotSaveAs()), actionCollection(), "save_note" );
+ KStdAction::print( this, TQ_SLOT(slotPrint()), actionCollection(), "print_note" );
new TDEAction( i18n("Preferences..."), "configure", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotPreferences()), actionCollection(), "configure_note" );
+ this, TQ_SLOT(slotPreferences()), actionCollection(), "configure_note" );
m_keepAbove = new TDEToggleAction( i18n("Keep Above Others"), "go-up", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotUpdateKeepAboveBelow()), actionCollection(), "keep_above" );
+ this, TQ_SLOT(slotUpdateKeepAboveBelow()), actionCollection(), "keep_above" );
m_keepAbove->setExclusiveGroup( "keepAB" );
m_keepBelow = new TDEToggleAction( i18n("Keep Below Others"), "go-down", 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotUpdateKeepAboveBelow()), actionCollection(), "keep_below" );
+ this, TQ_SLOT(slotUpdateKeepAboveBelow()), actionCollection(), "keep_below" );
m_keepBelow->setExclusiveGroup( "keepAB" );
m_toDesktop = new TDEListAction( i18n("To Desktop"), 0,
- TQT_TQOBJECT(this), TQT_SLOT(slotPopupActionToDesktop(int)), actionCollection(), "to_desktop" );
- connect( m_toDesktop->popupMenu(), TQT_SIGNAL(aboutToShow()), TQT_TQOBJECT(this), TQT_SLOT(slotUpdateDesktopActions()) );
+ this, TQ_SLOT(slotPopupActionToDesktop(int)), actionCollection(), "to_desktop" );
+ connect( m_toDesktop->popupMenu(), TQ_SIGNAL(aboutToShow()), this, TQ_SLOT(slotUpdateDesktopActions()) );
// invisible action to walk through the notes to make this configurable
new TDEAction( i18n("Walk Through Notes"), 0, SHIFT+Key_BackTab,
- TQT_TQOBJECT(this), TQT_SIGNAL(sigShowNextNote()), actionCollection(), "walk_notes" );
+ this, TQ_SIGNAL(sigShowNextNote()), actionCollection(), "walk_notes" );
// create the note header, button and label...
m_label = new TQLabel( this );
@@ -155,17 +155,17 @@ KNote::KNote( TQDomDocument buildDoc, Journal *j, TQWidget *parent, const char *
setName( m_journal->summary() ); // don't worry, no signals are connected at this stage yet
m_button = new KNoteButton( "knotes_close", this );
- connect( m_button, TQT_SIGNAL(clicked()), TQT_TQOBJECT(this), TQT_SLOT(slotClose()) );
+ connect( m_button, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotClose()) );
// create the note editor
m_editor = new KNoteEdit( actionCollection(), this );
m_editor->setNote( this );
m_editor->installEventFilter( this ); // receive events (for modified)
m_editor->viewport()->installEventFilter( this );
- connect( m_editor, TQT_SIGNAL(contentsMoving( int, int )), TQT_TQOBJECT(this), TQT_SLOT(slotUpdateViewport( int, int )));
+ connect( m_editor, TQ_SIGNAL(contentsMoving( int, int )), this, TQ_SLOT(slotUpdateViewport( int, int )));
KXMLGUIBuilder builder( this );
- KXMLGUIFactory factory( &builder, TQT_TQOBJECT(this) );
+ KXMLGUIFactory factory( &builder, this );
factory.addClient( this );
m_menu = dynamic_cast<TDEPopupMenu*>(factory.container( "note_context", this ));
@@ -600,9 +600,9 @@ void KNote::find( const TQString& pattern, long options )
delete m_find;
m_find = new KFind( pattern, options, this );
- connect( m_find, TQT_SIGNAL(highlight( const TQString &, int, int )),
- TQT_TQOBJECT(this), TQT_SLOT(slotHighlight( const TQString &, int, int )) );
- connect( m_find, TQT_SIGNAL(findNext()), TQT_TQOBJECT(this), TQT_SLOT(slotFindNext()) );
+ connect( m_find, TQ_SIGNAL(highlight( const TQString &, int, int )),
+ this, TQ_SLOT(slotHighlight( const TQString &, int, int )) );
+ connect( m_find, TQ_SIGNAL(findNext()), this, TQ_SLOT(slotFindNext()) );
m_find->setData( plainText() );
slotFindNext();
@@ -816,8 +816,8 @@ void KNote::slotPreferences()
// create a new preferences dialog...
KNoteConfigDlg *dialog = new KNoteConfigDlg( m_config, name(), this, noteId().utf8() );
- connect( dialog, TQT_SIGNAL(settingsChanged()), TQT_TQOBJECT(this), TQT_SLOT(slotApplyConfig()) );
- connect( this, TQT_SIGNAL(sigNameChanged()), dialog, TQT_SLOT(slotUpdateCaption()) );
+ connect( dialog, TQ_SIGNAL(settingsChanged()), this, TQ_SLOT(slotApplyConfig()) );
+ connect( this, TQ_SIGNAL(sigNameChanged()), dialog, TQ_SLOT(slotUpdateCaption()) );
dialog->show();
}
@@ -1339,7 +1339,7 @@ bool KNote::eventFilter( TQObject *o, TQEvent *ev )
return true;
}
- if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(m_label) )
+ if ( o == m_label )
{
TQMouseEvent *e = (TQMouseEvent *)ev;
@@ -1349,12 +1349,12 @@ bool KNote::eventFilter( TQObject *o, TQEvent *ev )
slotRename();
}
if ( ev->type() == TQEvent::MouseButtonPress &&
- (e->button() == Qt::LeftButton || e->button() == Qt::MidButton))
+ (e->button() == TQt::LeftButton || e->button() == TQt::MidButton))
{
- e->button() == Qt::LeftButton ? KWin::raiseWindow( winId() )
+ e->button() == TQt::LeftButton ? KWin::raiseWindow( winId() )
: KWin::lowerWindow( winId() );
- XUngrabPointer( tqt_xdisplay(), GET_QT_X_TIME() );
+ XUngrabPointer( tqt_xdisplay(), get_tqt_x_time() );
NETRootInfo wm_root( tqt_xdisplay(), NET::WMMoveResize );
wm_root.moveResizeRequest( winId(), e->globalX(), e->globalY(), NET::Move );
return true;
@@ -1370,7 +1370,7 @@ bool KNote::eventFilter( TQObject *o, TQEvent *ev )
#endif
if ( m_menu && ( ev->type() == TQEvent::MouseButtonPress )
- && ( e->button() == Qt::RightButton ) )
+ && ( e->button() == TQt::RightButton ) )
{
m_menu->popup( TQCursor::pos() );
return true;
@@ -1379,9 +1379,9 @@ bool KNote::eventFilter( TQObject *o, TQEvent *ev )
return false;
}
- if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(m_editor) ) {
+ if ( o == m_editor ) {
if ( ev->type() == TQEvent::FocusOut ) {
- TQFocusEvent *fe = TQT_TQFOCUSEVENT(ev);
+ TQFocusEvent *fe = static_cast<TQFocusEvent*>(ev);
if ( fe->reason() != TQFocusEvent::Popup &&
fe->reason() != TQFocusEvent::Mouse ) {
updateFocus();
@@ -1398,11 +1398,11 @@ bool KNote::eventFilter( TQObject *o, TQEvent *ev )
return false;
}
- if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(m_editor->viewport()) )
+ if ( o == m_editor->viewport() )
{
if ( m_edit_menu &&
ev->type() == TQEvent::MouseButtonPress &&
- ((TQMouseEvent *)ev)->button() == Qt::RightButton )
+ ((TQMouseEvent *)ev)->button() == TQt::RightButton )
{
m_edit_menu->popup( TQCursor::pos() );
return true;
diff --git a/knotes/knote.h b/knotes/knote.h
index 201c7f79..73ca8f4a 100644
--- a/knotes/knote.h
+++ b/knotes/knote.h
@@ -50,7 +50,7 @@ namespace KCal {
class KNote : public TQFrame, virtual public KXMLGUIClient
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNote( TQDomDocument buildDoc, KCal::Journal *journal, TQWidget *parent = 0,
diff --git a/knotes/knotealarmdlg.cpp b/knotes/knotealarmdlg.cpp
index 4496da26..5e43a86a 100644
--- a/knotes/knotealarmdlg.cpp
+++ b/knotes/knotealarmdlg.cpp
@@ -49,7 +49,7 @@ KNoteAlarmDlg::KNoteAlarmDlg( const TQString& caption, TQWidget *parent, const c
: KDialogBase( parent, name, true, caption, Ok|Cancel, Ok )
{
TQVBox *page = makeVBoxMainWidget();
- TQGroupBox *group = new TQGroupBox( 3, Qt::Vertical, i18n("Scheduled Alarm"), page );
+ TQGroupBox *group = new TQGroupBox( 3, TQt::Vertical, i18n("Scheduled Alarm"), page );
m_buttons = new TQButtonGroup( page );
m_buttons->hide();
@@ -72,7 +72,7 @@ KNoteAlarmDlg::KNoteAlarmDlg( const TQString& caption, TQWidget *parent, const c
label_in->setEnabled( false ); // TODO
in->hide(); //show it and enable it when feature will implement
- connect( m_buttons, TQT_SIGNAL(clicked( int )), TQT_SLOT(slotButtonChanged( int )) );
+ connect( m_buttons, TQ_SIGNAL(clicked( int )), TQ_SLOT(slotButtonChanged( int )) );
}
diff --git a/knotes/knotealarmdlg.h b/knotes/knotealarmdlg.h
index b018418a..a64f2daa 100644
--- a/knotes/knotealarmdlg.h
+++ b/knotes/knotealarmdlg.h
@@ -45,7 +45,7 @@ namespace KCal {
class KNoteAlarmDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNoteAlarmDlg( const TQString& caption, TQWidget *parent=0, const char *name=0 );
diff --git a/knotes/knotebutton.cpp b/knotes/knotebutton.cpp
index ff89b2de..47d64a3e 100644
--- a/knotes/knotebutton.cpp
+++ b/knotes/knotebutton.cpp
@@ -33,7 +33,7 @@
KNoteButton::KNoteButton( const TQString& icon, TQWidget *parent, const char *name )
: TQPushButton( parent, name )
{
- setFocusPolicy( TQ_NoFocus );
+ setFocusPolicy( TQWidget::NoFocus );
setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ) );
m_flat = true;
@@ -78,7 +78,7 @@ void KNoteButton::drawButton( TQPainter* p )
if ( !m_flat )
flags |= TQStyle::Style_MouseOver;
- style().tqdrawPrimitive( TQStyle::PE_ButtonTool, p, rect(), colorGroup(), flags );
+ style().drawPrimitive( TQStyle::PE_ButtonTool, p, rect(), colorGroup(), flags );
drawButtonLabel( p );
}
diff --git a/knotes/knotebutton.h b/knotes/knotebutton.h
index 5d1739ae..1b5d4960 100644
--- a/knotes/knotebutton.h
+++ b/knotes/knotebutton.h
@@ -30,7 +30,7 @@ class TQResizeEvent;
class KNoteButton: public TQPushButton
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNoteButton( const TQString& icon, TQWidget *parent=0, const char *name=0 );
diff --git a/knotes/knoteconfigdlg.cpp b/knotes/knoteconfigdlg.cpp
index bd388c38..60f7a539 100644
--- a/knotes/knoteconfigdlg.cpp
+++ b/knotes/knoteconfigdlg.cpp
@@ -81,7 +81,7 @@ KNoteConfigDlg::~KNoteConfigDlg()
void KNoteConfigDlg::slotUpdateCaption()
{
- KNote *note = ::tqqt_cast<KNote *>(sender());
+ KNote *note = ::tqt_cast<KNote *>(sender());
if ( note )
setCaption( note->name() );
}
diff --git a/knotes/knoteconfigdlg.h b/knotes/knoteconfigdlg.h
index a72859a1..97c4ae9e 100644
--- a/knotes/knoteconfigdlg.h
+++ b/knotes/knoteconfigdlg.h
@@ -29,7 +29,7 @@ class KNoteConfig;
class KNoteConfigDlg : public TDEConfigDialog
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNoteConfigDlg( KNoteConfig *config, const TQString &title,
diff --git a/knotes/knoteedit.cpp b/knotes/knoteedit.cpp
index 1316bc3a..4ef1274d 100644
--- a/knotes/knoteedit.cpp
+++ b/knotes/knoteedit.cpp
@@ -45,27 +45,27 @@ KNoteEdit::KNoteEdit( TDEActionCollection *actions, TQWidget *parent, const char
setLinkUnderline( true );
setCheckSpellingEnabled(false);
// create the actions for the RMB menu
- undo = KStdAction::undo( TQT_TQOBJECT(this), TQT_SLOT(undo()), actions );
- redo = KStdAction::redo( TQT_TQOBJECT(this), TQT_SLOT(redo()), actions );
+ undo = KStdAction::undo( this, TQ_SLOT(undo()), actions );
+ redo = KStdAction::redo( this, TQ_SLOT(redo()), actions );
undo->setEnabled( isUndoAvailable() );
redo->setEnabled( isRedoAvailable() );
- m_cut = KStdAction::cut( TQT_TQOBJECT(this), TQT_SLOT(cut()), actions );
- m_copy = KStdAction::copy( TQT_TQOBJECT(this), TQT_SLOT(copy()), actions );
- m_paste = KStdAction::paste( TQT_TQOBJECT(this), TQT_SLOT(paste()), actions );
+ m_cut = KStdAction::cut( this, TQ_SLOT(cut()), actions );
+ m_copy = KStdAction::copy( this, TQ_SLOT(copy()), actions );
+ m_paste = KStdAction::paste( this, TQ_SLOT(paste()), actions );
m_cut->setEnabled( false );
m_copy->setEnabled( false );
m_paste->setEnabled( true );
- connect( this, TQT_SIGNAL(undoAvailable(bool)), TQT_TQOBJECT(this), TQT_SLOT(setEnabledUndo(bool)) );
- connect( this, TQT_SIGNAL(redoAvailable(bool)), TQT_TQOBJECT(this), TQT_SLOT(setEnabledRedo(bool)) );
+ connect( this, TQ_SIGNAL(undoAvailable(bool)), this, TQ_SLOT(setEnabledUndo(bool)) );
+ connect( this, TQ_SIGNAL(redoAvailable(bool)), this, TQ_SLOT(setEnabledRedo(bool)) );
- connect( this, TQT_SIGNAL(copyAvailable(bool)), TQT_TQOBJECT(this), TQT_SLOT( slotCutEnabled( bool ) ) );
- connect( this, TQT_SIGNAL(copyAvailable(bool)), m_copy, TQT_SLOT(setEnabled(bool)) );
+ connect( this, TQ_SIGNAL(copyAvailable(bool)), this, TQ_SLOT( slotCutEnabled( bool ) ) );
+ connect( this, TQ_SIGNAL(copyAvailable(bool)), m_copy, TQ_SLOT(setEnabled(bool)) );
- new TDEAction( KStdGuiItem::clear(), 0, TQT_TQOBJECT(this), TQT_SLOT(clear()), actions, "edit_clear" );
- KStdAction::selectAll( TQT_TQOBJECT(this), TQT_SLOT(selectAll()), actions );
+ new TDEAction( KStdGuiItem::clear(), 0, this, TQ_SLOT(clear()), actions, "edit_clear" );
+ KStdAction::selectAll( this, TQ_SLOT(selectAll()), actions );
// create the actions modifying the text format
m_textBold = new TDEToggleAction( i18n("Bold"), "format-text-bold", CTRL + Key_B, 0, 0,
@@ -77,23 +77,23 @@ KNoteEdit::KNoteEdit( TDEActionCollection *actions, TQWidget *parent, const char
m_textStrikeOut = new TDEToggleAction( i18n("Strike Out"), "format-text-strikethrough", CTRL + Key_S, 0, 0,
actions, "format_strikeout" );
- connect( m_textBold, TQT_SIGNAL(toggled(bool)), TQT_SLOT(setBold(bool)) );
- connect( m_textItalic, TQT_SIGNAL(toggled(bool)), TQT_SLOT(setItalic(bool)) );
- connect( m_textUnderline, TQT_SIGNAL(toggled(bool)), TQT_SLOT(setUnderline(bool)) );
- connect( m_textStrikeOut, TQT_SIGNAL(toggled(bool)), TQT_SLOT(textStrikeOut(bool)) );
+ connect( m_textBold, TQ_SIGNAL(toggled(bool)), TQ_SLOT(setBold(bool)) );
+ connect( m_textItalic, TQ_SIGNAL(toggled(bool)), TQ_SLOT(setItalic(bool)) );
+ connect( m_textUnderline, TQ_SIGNAL(toggled(bool)), TQ_SLOT(setUnderline(bool)) );
+ connect( m_textStrikeOut, TQ_SIGNAL(toggled(bool)), TQ_SLOT(textStrikeOut(bool)) );
m_textAlignLeft = new TDEToggleAction( i18n("Align Left"), "format-text-direction-ltr", ALT + Key_L,
- TQT_TQOBJECT(this), TQT_SLOT(textAlignLeft()),
+ this, TQ_SLOT(textAlignLeft()),
actions, "format_alignleft" );
m_textAlignLeft->setChecked( true ); // just a dummy, will be updated later
m_textAlignCenter = new TDEToggleAction( i18n("Align Center"), "text_center", ALT + Key_C,
- TQT_TQOBJECT(this), TQT_SLOT(textAlignCenter()),
+ this, TQ_SLOT(textAlignCenter()),
actions, "format_aligncenter" );
m_textAlignRight = new TDEToggleAction( i18n("Align Right"), "format-text-direction-rtl", ALT + Key_R,
- TQT_TQOBJECT(this), TQT_SLOT(textAlignRight()),
+ this, TQ_SLOT(textAlignRight()),
actions, "format_alignright" );
m_textAlignBlock = new TDEToggleAction( i18n("Align Block"), "text_block", ALT + Key_B,
- TQT_TQOBJECT(this), TQT_SLOT(textAlignBlock()),
+ this, TQ_SLOT(textAlignBlock()),
actions, "format_alignblock" );
m_textAlignLeft->setExclusiveGroup( "align" );
@@ -102,16 +102,16 @@ KNoteEdit::KNoteEdit( TDEActionCollection *actions, TQWidget *parent, const char
m_textAlignBlock->setExclusiveGroup( "align" );
m_textList = new TDEToggleAction( i18n("List"), "enum_list", 0,
- TQT_TQOBJECT(this), TQT_SLOT(textList()),
+ this, TQ_SLOT(textList()),
actions, "format_list" );
m_textList->setExclusiveGroup( "style" );
m_textSuper = new TDEToggleAction( i18n("Superscript"), "text_super", 0,
- TQT_TQOBJECT(this), TQT_SLOT(textSuperScript()),
+ this, TQ_SLOT(textSuperScript()),
actions, "format_super" );
m_textSub = new TDEToggleAction( i18n("Subscript"), "text_sub", 0,
- TQT_TQOBJECT(this), TQT_SLOT(textSubScript()),
+ this, TQ_SLOT(textSubScript()),
actions, "format_sub" );
m_textSuper->setExclusiveGroup( "valign" );
@@ -120,38 +120,38 @@ KNoteEdit::KNoteEdit( TDEActionCollection *actions, TQWidget *parent, const char
// There is no easy possibility to implement text indenting with TQTextEdit
//
// m_textIncreaseIndent = new TDEAction( i18n("Increase Indent"), "format_increaseindent", 0,
-// TQT_TQOBJECT(this), TQT_SLOT(textIncreaseIndent()),
+// this, TQ_SLOT(textIncreaseIndent()),
// actions, "format_increaseindent" );
//
// m_textDecreaseIndent = new TDEAction( i18n("Decrease Indent"), "format_decreaseindent", 0,
-// TQT_TQOBJECT(this), TQT_SLOT(textDecreaseIndent()),
+// this, TQ_SLOT(textDecreaseIndent()),
// actions, "format_decreaseindent" );
TQPixmap pix( ICON_SIZE, ICON_SIZE );
pix.fill( black ); // just a dummy, gets updated before widget is shown
- m_textColor = new TDEAction( i18n("Text Color..."), pix, 0, TQT_TQOBJECT(this),
- TQT_SLOT(textColor()), actions, "format_color" );
+ m_textColor = new TDEAction( i18n("Text Color..."), pix, 0, this,
+ TQ_SLOT(textColor()), actions, "format_color" );
m_textFont = new TDEFontAction( i18n("Text Font"), "text", KKey(),
actions, "format_font" );
- connect( m_textFont, TQT_SIGNAL(activated( const TQString & )),
- TQT_TQOBJECT(this), TQT_SLOT(setFamily( const TQString & )) );
+ connect( m_textFont, TQ_SIGNAL(activated( const TQString & )),
+ this, TQ_SLOT(setFamily( const TQString & )) );
m_textSize = new TDEFontSizeAction( i18n("Text Size"), KKey(),
actions, "format_size" );
- connect( m_textSize, TQT_SIGNAL(fontSizeChanged( int )),
- TQT_TQOBJECT(this), TQT_SLOT(setPointSize( int )) );
+ connect( m_textSize, TQ_SIGNAL(fontSizeChanged( int )),
+ this, TQ_SLOT(setPointSize( int )) );
// TQTextEdit connections
- connect( this, TQT_SIGNAL(returnPressed()), TQT_SLOT(slotReturnPressed()) );
- connect( this, TQT_SIGNAL(currentFontChanged( const TQFont & )),
- TQT_TQOBJECT(this), TQT_SLOT(fontChanged( const TQFont & )) );
- connect( this, TQT_SIGNAL(currentColorChanged( const TQColor & )),
- TQT_TQOBJECT(this), TQT_SLOT(colorChanged( const TQColor & )) );
- connect( this, TQT_SIGNAL(currentAlignmentChanged( int )),
- TQT_TQOBJECT(this), TQT_SLOT(alignmentChanged( int )) );
- connect( this, TQT_SIGNAL(currentVerticalAlignmentChanged( VerticalAlignment )),
- TQT_TQOBJECT(this), TQT_SLOT(verticalAlignmentChanged( VerticalAlignment )) );
+ connect( this, TQ_SIGNAL(returnPressed()), TQ_SLOT(slotReturnPressed()) );
+ connect( this, TQ_SIGNAL(currentFontChanged( const TQFont & )),
+ this, TQ_SLOT(fontChanged( const TQFont & )) );
+ connect( this, TQ_SIGNAL(currentColorChanged( const TQColor & )),
+ this, TQ_SLOT(colorChanged( const TQColor & )) );
+ connect( this, TQ_SIGNAL(currentAlignmentChanged( int )),
+ this, TQ_SLOT(alignmentChanged( int )) );
+ connect( this, TQ_SIGNAL(currentVerticalAlignmentChanged( VerticalAlignment )),
+ this, TQ_SLOT(verticalAlignmentChanged( VerticalAlignment )) );
}
KNoteEdit::~KNoteEdit()
@@ -541,13 +541,13 @@ TQPopupMenu *KNoteEdit::createPopupMenu( const TQPoint &pos )
menu->insertSeparator();
id = menu->insertItem( SmallIconSet( "tools-check-spelling" ), i18n( "Check Spelling..." ),
- TQT_TQOBJECT(this), TQT_SLOT( checkSpelling() ) );
+ this, TQ_SLOT( checkSpelling() ) );
if( text().isEmpty() )
menu->setItemEnabled( id, false );
menu->insertSeparator();
- id=menu->insertItem(i18n("Allow Tabulations"),this,TQT_SLOT(slotAllowTab()));
+ id=menu->insertItem(i18n("Allow Tabulations"),this,TQ_SLOT(slotAllowTab()));
menu->setItemChecked(id, !tabChangesFocus());
}
diff --git a/knotes/knoteedit.h b/knotes/knoteedit.h
index caa2c51a..259cba82 100644
--- a/knotes/knoteedit.h
+++ b/knotes/knoteedit.h
@@ -37,7 +37,7 @@ class TDEFontSizeAction;
class KNoteEdit : public KTextEdit
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNoteEdit( TDEActionCollection *actions, TQWidget *parent=0, const char *name=0 );
diff --git a/knotes/knotehostdlg.cpp b/knotes/knotehostdlg.cpp
index 9d8fff97..15a32c66 100644
--- a/knotes/knotehostdlg.cpp
+++ b/knotes/knotehostdlg.cpp
@@ -60,8 +60,8 @@ KNoteHostDlg::KNoteHostDlg( const TQString &caption, TQWidget *parent, const cha
m_hostCombo->setHistoryItems( KNotesGlobalConfig::knownHosts(), true );
m_hostCombo->setFocus();
//m_hostCombo->completionObject()->setItems( KNotesGlobalConfig::hostCompletions() );
- connect( m_hostCombo->lineEdit(), TQT_SIGNAL( textChanged ( const TQString & ) ),
- this, TQT_SLOT( slotTextChanged( const TQString & ) ) );
+ connect( m_hostCombo->lineEdit(), TQ_SIGNAL( textChanged ( const TQString & ) ),
+ this, TQ_SLOT( slotTextChanged( const TQString & ) ) );
slotTextChanged( m_hostCombo->lineEdit()->text() );
}
diff --git a/knotes/knotehostdlg.h b/knotes/knotehostdlg.h
index 03a83dcb..81afc6c5 100644
--- a/knotes/knotehostdlg.h
+++ b/knotes/knotehostdlg.h
@@ -43,7 +43,7 @@ class KHistoryCombo;
*/
class KNoteHostDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNoteHostDlg( const TQString& caption, TQWidget *parent=0, const char *name=0 );
diff --git a/knotes/knotes.desktop b/knotes/knotes.desktop
index 22787783..b94a1171 100644
--- a/knotes/knotes.desktop
+++ b/knotes/knotes.desktop
@@ -5,86 +5,10 @@ Icon=knotes
Terminal=false
Type=Application
-GenericName=Popup Notes
-GenericName[af]=Opspring Notas
-GenericName[ar]=الملاحظات المنبثقة
-GenericName[bg]=Лепящи се бележки
-GenericName[bs]=Popup bilješke
-GenericName[ca]=Notes emergents
-GenericName[cs]=Vyskakovací poznámky
-GenericName[cy]=Naid-nodiadau
-GenericName[da]=Popop-noter
-GenericName[de]=Haftnotizen
-GenericName[el]=Αναδυόμενες σημειώσεις
-GenericName[eo]=Glunotoj
-GenericName[es]=Notas emergentes
-GenericName[et]=Hüpikmärkmed
-GenericName[eu]=Laster-lehio oharrak
-GenericName[fa]=یادداشتهای بالاپر
-GenericName[fi]=Muistilaput
-GenericName[fr]=Éditeur de petites notes
-GenericName[fy]=Notysjes
-GenericName[gl]=Notas Emerxentes
-GenericName[he]=פתקים מוקפצים
-GenericName[hi]=पॉप-अप टीप
-GenericName[hr]=Skočne bilješke
-GenericName[hu]=Jegyzettömb
-GenericName[is]=Litlir gulir miðar
-GenericName[it]=Note a comparsa
-GenericName[ja]=ポップアップメモ
-GenericName[kk]=Қалқымалы жазбалар
-GenericName[km]=ចំណាំ​លេចឡើង
-GenericName[lt]=Pastabos lapeliuose
-GenericName[lv]=Izlecošās Piezīmes
-GenericName[mk]=Скок-белешки
-GenericName[ms]=Nota Popup
-GenericName[mt]=Noti żgħar
-GenericName[nb]=Sprettopp-notater
-GenericName[nds]=Opduk-Notizen
-GenericName[ne]=पपअप टिपोट
-GenericName[nl]=Notities
-GenericName[nn]=Sprettoppnotat
-GenericName[nso]=Ditshwao tsa Thlarogo
-GenericName[pl]=Żółte karteczki
-GenericName[pt]=Notas
-GenericName[pt_BR]=Notas instantâneas
-GenericName[ro]=Notiţe personale
-GenericName[ru]=Всплывающие заметки
-GenericName[sk]=Vyskakujúce poznámky
-GenericName[sl]=Prilepljajoče se notice
-GenericName[sr]=Искачуће напомене
-GenericName[sr@Latn]=Iskačuće napomene
-GenericName[sv]=Anteckningslappar
-GenericName[ta]=தோன்றும் குறிப்புகள்
-GenericName[tg]=Хабарҳои ошкоршаванда
-GenericName[th]=บันทึกช่วยจำแบบป๊อพอัพ
-GenericName[tr]=Seyyar Notlar
-GenericName[uk]=Вигулькні нотатки
-GenericName[vi]=Ghi chép Popup
-GenericName[xh]=Ivelisa iincwadana
-GenericName[zh_CN]=弹出式记事本
-GenericName[zh_TW]=彈出式筆記本
-GenericName[zu]=Amapheshana Abhaliwe Aziphumelayo
-
-Name=KNotes
-Name[af]=Knotas
-Name[be]=K Нататкі
-Name[cy]=KNodiadau
-Name[eo]=Notoj
-Name[hi]=के-नोट्स
-Name[hr]=Bilješka
-Name[lv]=KPiezīmes
-Name[mk]=КБелешки
-Name[ne]=केडीई टिपोट
-Name[nso]=KDitshwao
-Name[pl]=Notatki
-Name[ro]=Notiţe
-Name[sl]=KNotice
-Name[sv]=Knotes
-Name[ta]=கேகுறிப்புகள்
-Name[th]=บันทึกช่วยจำ
-Name[zh_TW]=KNotes 便利貼
-
X-TDE-StartupNotify=true
X-DCOP-ServiceType=Unique
Categories=Qt;TDE;Utility;X-TDE-Utilities-Desktop;
+
+Name=KNotes
+
+GenericName=Popup Notes
diff --git a/knotes/knotes_manager.desktop b/knotes/knotes_manager.desktop
index bf962a93..c6e80eb4 100644
--- a/knotes/knotes_manager.desktop
+++ b/knotes/knotes_manager.desktop
@@ -1,60 +1,6 @@
[Desktop Entry]
Name=Notes
-Name[af]=Notas
-Name[ar]=الملاحظات
-Name[be]=Нататкі
-Name[bg]=Бележки
-Name[br]=Notennoù
-Name[bs]=Bilješke
-Name[cs]=Poznámky
-Name[cy]=Nodiadau
-Name[da]=Noter
-Name[de]=Notizen
-Name[el]=Σημειώσεις
-Name[eo]=Notoj
-Name[es]=Notas
-Name[et]=Märkmed
-Name[eu]=Oharrak
-Name[fa]=یادداشتها
-Name[fi]=Muistio
-Name[fy]=Notysjes
-Name[ga]=Nótaí
-Name[gl]=Notas
-Name[he]=פתקים
-Name[hi]=टीप
-Name[hu]=Feljegyzések
-Name[is]=Minnismiðar
-Name[it]=Note
-Name[ja]=メモ
-Name[kk]=Жазбалар
-Name[km]=ចំណាំ
-Name[lt]=Užrašai
-Name[mk]=Белешки
-Name[ms]=Nota
-Name[nds]=Notizen
-Name[ne]=टिपोट
-Name[nl]=Notities
-Name[nn]=Notat
-Name[pl]=Notatki
-Name[pt]=Notas
-Name[pt_BR]=Notas
-Name[ro]=Notiţe
-Name[ru]=Заметки
-Name[se]=Nohtat
-Name[sk]=Poznámky
-Name[sl]=Notice
-Name[sr]=Белешке
-Name[sr@Latn]=Beleške
-Name[sv]=Anteckningar
-Name[ta]=குறிப்புகள்
-Name[tg]=Ахборот
-Name[th]=บันทึกช่วยจำ
-Name[tr]=Notlar
-Name[uk]=Примітки
-Name[uz]=Ёзма хотира
-Name[zh_CN]=便笺
-Name[zh_TW]=備忘錄
+
Type=Service
X-TDE-ServiceTypes=TDEResources/Manager
-
X-TDE-ResourceFamily=notes
diff --git a/knotes/knotesalarm.cpp b/knotes/knotesalarm.cpp
index c2d1bd1c..99f05cd9 100644
--- a/knotes/knotesalarm.cpp
+++ b/knotes/knotesalarm.cpp
@@ -49,7 +49,7 @@ KNotesAlarm::KNotesAlarm( KNotesResourceManager *manager, TQObject *parent, cons
{
// TODO: fix timezone stuff?
- connect( &m_checkTimer, TQT_SIGNAL(timeout()), TQT_SLOT(checkAlarms()) );
+ connect( &m_checkTimer, TQ_SIGNAL(timeout()), TQ_SLOT(checkAlarms()) );
m_checkTimer.start( 1000 * KNotesGlobalConfig::self()->checkInterval() ); // interval in seconds
}
diff --git a/knotes/knotesalarm.h b/knotes/knotesalarm.h
index 84bfff50..c173f880 100644
--- a/knotes/knotesalarm.h
+++ b/knotes/knotesalarm.h
@@ -44,7 +44,7 @@ namespace KCal {
class KNotesAlarm : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNotesAlarm( KNotesResourceManager *manager, TQObject *parent = 0, const char *name = 0 );
diff --git a/knotes/knotesapp.cpp b/knotes/knotesapp.cpp
index 2a4e84b1..1f7e9b99 100644
--- a/knotes/knotesapp.cpp
+++ b/knotes/knotesapp.cpp
@@ -65,7 +65,7 @@ public:
{
m_keyChooser = new KKeyChooser( globals, this );
setMainWidget( m_keyChooser );
- connect( this, TQT_SIGNAL(defaultClicked()), m_keyChooser, TQT_SLOT(allDefault()) );
+ connect( this, TQ_SIGNAL(defaultClicked()), m_keyChooser, TQ_SLOT(allDefault()) );
}
void insert( TDEActionCollection *actions )
@@ -96,7 +96,7 @@ KNotesApp::KNotesApp()
: DCOPObject("KNotesIface"), TQLabel( 0, 0, WType_TopLevel ),
m_alarm( 0 ), m_listener( 0 ), m_find( 0 ), m_findPos( 0 )
{
- connect( kapp, TQT_SIGNAL(lastWindowClosed()), kapp, TQT_SLOT(quit()) );
+ connect( kapp, TQ_SIGNAL(lastWindowClosed()), kapp, TQ_SLOT(quit()) );
m_noteList.setAutoDelete( true );
m_noteActions.setAutoDelete( true );
@@ -112,25 +112,25 @@ KNotesApp::KNotesApp()
// create the GUI...
new TDEAction( i18n("New Note"), "document-new", 0,
- TQT_TQOBJECT(this), TQT_SLOT(newNote()), actionCollection(), "new_note" );
+ this, TQ_SLOT(newNote()), actionCollection(), "new_note" );
new TDEAction( i18n("New Note From Clipboard"), "edit-paste", 0,
- TQT_TQOBJECT(this), TQT_SLOT(newNoteFromClipboard()), actionCollection(), "new_note_clipboard" );
+ this, TQ_SLOT(newNoteFromClipboard()), actionCollection(), "new_note_clipboard" );
new TDEAction( i18n("Show All Notes"), "knotes", 0,
- TQT_TQOBJECT(this), TQT_SLOT(showAllNotes()), actionCollection(), "show_all_notes" );
+ this, TQ_SLOT(showAllNotes()), actionCollection(), "show_all_notes" );
new TDEAction( i18n("Hide All Notes"), "window-close", 0,
- TQT_TQOBJECT(this), TQT_SLOT(hideAllNotes()), actionCollection(), "hide_all_notes" );
+ this, TQ_SLOT(hideAllNotes()), actionCollection(), "hide_all_notes" );
new KHelpMenu( this, kapp->aboutData(), false, actionCollection() );
- m_findAction = KStdAction::find( TQT_TQOBJECT(this), TQT_SLOT(slotOpenFindDialog()), actionCollection() );
- KStdAction::preferences( TQT_TQOBJECT(this), TQT_SLOT(slotPreferences()), actionCollection() );
- KStdAction::keyBindings( TQT_TQOBJECT(this), TQT_SLOT(slotConfigureAccels()), actionCollection() );
+ m_findAction = KStdAction::find( this, TQ_SLOT(slotOpenFindDialog()), actionCollection() );
+ KStdAction::preferences( this, TQ_SLOT(slotPreferences()), actionCollection() );
+ KStdAction::keyBindings( this, TQ_SLOT(slotConfigureAccels()), actionCollection() );
//FIXME: no shortcut removing!?
- KStdAction::quit( TQT_TQOBJECT(this), TQT_SLOT(slotQuit()), actionCollection() )->setShortcut( 0 );
+ KStdAction::quit( this, TQ_SLOT(slotQuit()), actionCollection() )->setShortcut( 0 );
setXMLFile( instance()->instanceName() + "appui.rc" );
m_guiBuilder = new KXMLGUIBuilder( this );
- m_guiFactory = new KXMLGUIFactory( m_guiBuilder, TQT_TQOBJECT(this) );
+ m_guiFactory = new KXMLGUIFactory( m_guiBuilder, this );
m_guiFactory->addClient( this );
m_context_menu = static_cast<TDEPopupMenu*>(m_guiFactory->container( "knotes_context", this ));
@@ -147,19 +147,19 @@ KNotesApp::KNotesApp()
m_noteGUI.setContent( doc );
// create accels for global shortcuts
- m_globalAccel = new TDEGlobalAccel( TQT_TQOBJECT(this), "global accel" );
+ m_globalAccel = new TDEGlobalAccel( this, "global accel" );
m_globalAccel->insert( "global_new_note", i18n("New Note"), "",
- ALT+SHIFT+Key_N, ALT+SHIFT+Key_N ,
- TQT_TQOBJECT(this), TQT_SLOT(newNote()), true, true );
+ TDEShortcut(), TDEShortcut(),
+ this, TQ_SLOT(newNote()), true, true );
m_globalAccel->insert( "global_new_note_clipboard", i18n("New Note From Clipboard"), "",
- ALT+SHIFT+Key_C, ALT+SHIFT+Key_C,
- TQT_TQOBJECT(this), TQT_SLOT(newNoteFromClipboard()), true, true );
+ TDEShortcut(), TDEShortcut(),
+ this, TQ_SLOT(newNoteFromClipboard()), true, true );
m_globalAccel->insert( "global_hide_all_notes", i18n("Hide All Notes"), "",
- ALT+SHIFT+Key_H, ALT+SHIFT+Key_H ,
- TQT_TQOBJECT(this), TQT_SLOT(hideAllNotes()), true, true );
+ TDEShortcut(), TDEShortcut(),
+ this, TQ_SLOT(hideAllNotes()), true, true );
m_globalAccel->insert( "global_show_all_notes", i18n("Show All Notes"), "",
- ALT+SHIFT+Key_S, ALT+SHIFT+Key_S,
- TQT_TQOBJECT(this), TQT_SLOT(showAllNotes()), true, true );
+ TDEShortcut(), TDEShortcut(),
+ this, TQ_SLOT(showAllNotes()), true, true );
m_globalAccel->readSettings();
@@ -174,10 +174,10 @@ KNotesApp::KNotesApp()
// create the resource manager
m_manager = new KNotesResourceManager();
- connect( m_manager, TQT_SIGNAL(sigRegisteredNote( KCal::Journal * )),
- this, TQT_SLOT(createNote( KCal::Journal * )) );
- connect( m_manager, TQT_SIGNAL(sigDeregisteredNote( KCal::Journal * )),
- this, TQT_SLOT(killNote( KCal::Journal * )) );
+ connect( m_manager, TQ_SIGNAL(sigRegisteredNote( KCal::Journal * )),
+ this, TQ_SLOT(createNote( KCal::Journal * )) );
+ connect( m_manager, TQ_SIGNAL(sigDeregisteredNote( KCal::Journal * )),
+ this, TQ_SLOT(killNote( KCal::Journal * )) );
// read the notes
m_manager->load();
@@ -196,12 +196,12 @@ KNotesApp::KNotesApp()
// set up the alarm reminder - do it after loading the notes because this
// is used as a check if updateNoteActions has to be called for a new note
- m_alarm = new KNotesAlarm( m_manager, TQT_TQOBJECT(this) );
+ m_alarm = new KNotesAlarm( m_manager, this );
// create the socket and possibly start listening for connections
m_listener = new TDEServerSocket();
m_listener->setResolutionEnabled( true );
- connect( m_listener, TQT_SIGNAL(readyAccept()), TQT_SLOT(acceptConnection()) );
+ connect( m_listener, TQ_SIGNAL(readyAccept()), TQ_SLOT(acceptConnection()) );
updateNetworkListener();
if ( m_noteList.count() == 0 && !kapp->isRestored() )
@@ -486,7 +486,7 @@ void KNotesApp::mousePressEvent( TQMouseEvent* e )
switch ( e->button() )
{
- case Qt::LeftButton:
+ case TQt::LeftButton:
if ( m_noteList.count() == 1 )
{
TQDictIterator<KNote> it( m_noteList );
@@ -495,10 +495,10 @@ void KNotesApp::mousePressEvent( TQMouseEvent* e )
else if ( m_note_menu->count() > 0 )
m_note_menu->popup( e->globalPos() );
break;
- case Qt::MidButton:
+ case TQt::MidButton:
newNote();
break;
- case Qt::RightButton:
+ case TQt::RightButton:
m_context_menu->popup( e->globalPos() );
default: break;
}
@@ -509,7 +509,7 @@ void KNotesApp::mousePressEvent( TQMouseEvent* e )
void KNotesApp::slotShowNote()
{
// tell the WM to give this note focus
- showNote( TQString::fromUtf8( TQT_TQOBJECT(const_cast<TQT_BASE_OBJECT_NAME*>(sender()))->name() ) );
+ showNote( TQString::fromUtf8( sender()->name() ) );
}
void KNotesApp::slotWalkThroughNotes()
@@ -575,8 +575,8 @@ void KNotesApp::slotPreferences()
// create a new preferences dialog...
KNoteConfigDlg *dialog = new KNoteConfigDlg( 0, i18n("Settings"), this,
"KNotes Settings" );
- connect( dialog, TQT_SIGNAL(settingsChanged()), TQT_TQOBJECT(this), TQT_SLOT(updateNetworkListener()) );
- connect( dialog, TQT_SIGNAL(settingsChanged()), TQT_TQOBJECT(this), TQT_SLOT(updateStyle()) );
+ connect( dialog, TQ_SIGNAL(settingsChanged()), this, TQ_SLOT(updateNetworkListener()) );
+ connect( dialog, TQ_SIGNAL(settingsChanged()), this, TQ_SLOT(updateStyle()) );
dialog->show();
}
@@ -657,14 +657,14 @@ void KNotesApp::createNote( KCal::Journal *journal )
KNote *newNote = new KNote( m_noteGUI, journal, 0, journal->uid().utf8() );
m_noteList.insert( newNote->noteId(), newNote );
- connect( newNote, TQT_SIGNAL(sigRequestNewNote()), TQT_SLOT(newNote()) );
- connect( newNote, TQT_SIGNAL(sigShowNextNote()), TQT_SLOT(slotWalkThroughNotes()) );
- connect( newNote, TQT_SIGNAL(sigKillNote( KCal::Journal* )),
- TQT_SLOT(slotNoteKilled( KCal::Journal* )) );
- connect( newNote, TQT_SIGNAL(sigNameChanged()), TQT_SLOT(updateNoteActions()) );
- connect( newNote, TQT_SIGNAL(sigDataChanged(const TQString &)), TQT_SLOT(saveNotes(const TQString &)) );
- connect( newNote, TQT_SIGNAL(sigColorChanged()), TQT_SLOT(updateNoteActions()) );
- connect( newNote, TQT_SIGNAL(sigFindFinished()), TQT_SLOT(slotFindNext()) );
+ connect( newNote, TQ_SIGNAL(sigRequestNewNote()), TQ_SLOT(newNote()) );
+ connect( newNote, TQ_SIGNAL(sigShowNextNote()), TQ_SLOT(slotWalkThroughNotes()) );
+ connect( newNote, TQ_SIGNAL(sigKillNote( KCal::Journal* )),
+ TQ_SLOT(slotNoteKilled( KCal::Journal* )) );
+ connect( newNote, TQ_SIGNAL(sigNameChanged()), TQ_SLOT(updateNoteActions()) );
+ connect( newNote, TQ_SIGNAL(sigDataChanged(const TQString &)), TQ_SLOT(saveNotes(const TQString &)) );
+ connect( newNote, TQ_SIGNAL(sigColorChanged()), TQ_SLOT(updateNoteActions()) );
+ connect( newNote, TQ_SIGNAL(sigFindFinished()), TQ_SLOT(slotFindNext()) );
// don't call this during startup for each and every loaded note
if ( m_alarm )
@@ -693,8 +693,8 @@ void KNotesApp::acceptConnection()
if ( s )
{
KNotesNetworkReceiver *recv = new KNotesNetworkReceiver( s );
- connect( recv, TQT_SIGNAL(sigNoteReceived( const TQString &, const TQString & )),
- TQT_TQOBJECT(this), TQT_SLOT(newNote( const TQString &, const TQString & )) );
+ connect( recv, TQ_SIGNAL(sigNoteReceived( const TQString &, const TQString & )),
+ this, TQ_SLOT(newNote( const TQString &, const TQString & )) );
}
}
@@ -725,7 +725,7 @@ void KNotesApp::updateNoteActions()
for ( TQDictIterator<KNote> it( m_noteList ); it.current(); ++it )
{
TDEAction *action = new TDEAction( it.current()->name().replace("&", "&&"),
- TDEShortcut(), TQT_TQOBJECT(this), TQT_SLOT(slotShowNote()),
+ TDEShortcut(), this, TQ_SLOT(slotShowNote()),
(TQObject *)0,
it.current()->noteId().utf8() );
TDEIconEffect effect;
diff --git a/knotes/knotesapp.h b/knotes/knotesapp.h
index 649b4b0b..a6acb034 100644
--- a/knotes/knotesapp.h
+++ b/knotes/knotesapp.h
@@ -55,7 +55,7 @@ namespace KNetwork {
class KNotesApp : public TQLabel, public KSessionManaged, virtual public KXMLGUIClient,
virtual public KNotesAppIface
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNotesApp();
diff --git a/knotes/knotesnetrecv.cpp b/knotes/knotesnetrecv.cpp
index 48bb791f..d1ae1237 100644
--- a/knotes/knotesnetrecv.cpp
+++ b/knotes/knotesnetrecv.cpp
@@ -70,15 +70,15 @@ KNotesNetworkReceiver::KNotesNetworkReceiver( TDEBufferedSocket *s )
.arg( date );
// Setup the communications
- connect( m_sock, TQT_SIGNAL(readyRead()), TQT_SLOT(slotDataAvailable()) );
- connect( m_sock, TQT_SIGNAL(closed()), TQT_SLOT(slotConnectionClosed()) );
- connect( m_sock, TQT_SIGNAL(gotError( int )), TQT_SLOT(slotError( int )) );
+ connect( m_sock, TQ_SIGNAL(readyRead()), TQ_SLOT(slotDataAvailable()) );
+ connect( m_sock, TQ_SIGNAL(closed()), TQ_SLOT(slotConnectionClosed()) );
+ connect( m_sock, TQ_SIGNAL(gotError( int )), TQ_SLOT(slotError( int )) );
m_sock->enableRead( true );
// Setup the timer
m_timer = new TQTimer( this, "m_timer" );
- connect( m_timer, TQT_SIGNAL(timeout()), TQT_SLOT(slotReceptionTimeout()) );
+ connect( m_timer, TQ_SIGNAL(timeout()), TQ_SLOT(slotReceptionTimeout()) );
m_timer->start( MAXTIME, true );
}
diff --git a/knotes/knotesnetrecv.h b/knotes/knotesnetrecv.h
index 927abac8..85647fe2 100644
--- a/knotes/knotesnetrecv.h
+++ b/knotes/knotesnetrecv.h
@@ -43,7 +43,7 @@ namespace KNetwork {
class KNotesNetworkReceiver : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNotesNetworkReceiver( KNetwork::TDEBufferedSocket * );
diff --git a/knotes/knotesnetsend.cpp b/knotes/knotesnetsend.cpp
index 26d2b8f7..55dc75c3 100644
--- a/knotes/knotesnetsend.cpp
+++ b/knotes/knotesnetsend.cpp
@@ -48,11 +48,11 @@ KNotesNetworkSender::KNotesNetworkSender( const TQString& hostname, int port )
// TQObject:: prefix needed, otherwise the KStreamSocket::connect()
// mehtod is called!!!
- QObject::connect( TQT_TQOBJECT(this), TQT_SIGNAL(connected( const KResolverEntry& )),
- TQT_SLOT(slotConnected( const KResolverEntry& )) );
- QObject::connect( TQT_TQOBJECT(this), TQT_SIGNAL(gotError( int )), TQT_SLOT(slotError( int )) );
- QObject::connect( TQT_TQOBJECT(this), TQT_SIGNAL(closed()), TQT_SLOT(slotClosed()) );
- QObject::connect( TQT_TQOBJECT(this), TQT_SIGNAL(readyWrite()), TQT_SLOT(slotReadyWrite()) );
+ TQObject::connect( this, TQ_SIGNAL(connected( const KResolverEntry& )),
+ TQ_SLOT(slotConnected( const KResolverEntry& )) );
+ TQObject::connect( this, TQ_SIGNAL(gotError( int )), TQ_SLOT(slotError( int )) );
+ TQObject::connect( this, TQ_SIGNAL(closed()), TQ_SLOT(slotClosed()) );
+ TQObject::connect( this, TQ_SIGNAL(readyWrite()), TQ_SLOT(slotReadyWrite()) );
}
void KNotesNetworkSender::setSenderId( const TQString& sender )
diff --git a/knotes/knotesnetsend.h b/knotes/knotesnetsend.h
index ba867911..7d7c6dad 100644
--- a/knotes/knotesnetsend.h
+++ b/knotes/knotesnetsend.h
@@ -42,7 +42,7 @@ using namespace KNetwork;
class KNotesNetworkSender : public KNetwork::TDEBufferedSocket
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNotesNetworkSender( const TQString& host, int port );
diff --git a/knotes/local.desktop b/knotes/local.desktop
index d0512ca0..f3b2743a 100644
--- a/knotes/local.desktop
+++ b/knotes/local.desktop
@@ -1,58 +1,8 @@
[Desktop Entry]
Name=Notes in Local File
-Name[af]=Notas in plaaslike lêer
-Name[ar]=الملاحظات في الملف المحلّي
-Name[be]=Нататкі ў лякальным файле
-Name[bg]=Бележки в локален файл
-Name[br]=Notennoù e rstr lec'hel
-Name[bs]=Bilješke u lokalnoj datoteci
-Name[ca]=Notes en fitxer local
-Name[cs]=Poznámky v lokálním souboru
-Name[da]=Noter i lokal fil
-Name[de]=Notizen in lokaler Datei
-Name[el]=Σημειώσεις σε τοπικό αρχείο
-Name[eo]=Notoj en loka dosiero
-Name[es]=Avisos sobre el archivo local
-Name[et]=Märkmed kohalikus failis
-Name[eu]=Oharrak fitxategi lokalean
-Name[fa]=یادداشتها در پروندۀ محلی
-Name[fi]=Muistiot paikallisessa tiedostossa
-Name[fr]=Notes dans un fichier local
-Name[fy]=Notysjes yn lokale triem
-Name[ga]=Nótaí i gComhad Logánta
-Name[gl]=Notas en Ficheiro Local
-Name[he]=פתקים בקובץ מקומי
-Name[hu]=Helyi fájlban tárolt feljegyzések
-Name[is]=Minnismiðar í staðbundinni skrá
-Name[it]=Note in file locale
-Name[ja]=ローカルファイルのメモ
-Name[kk]=Жергілікті файлдағы жазбалар
-Name[km]=ចំណាំ​ក្នុង​ឯកសារ​មូលដ្ឋាន
-Name[lt]=Užrašai vietinėje byloje
-Name[mk]=Белешки во локална датотека
-Name[ms]=Nota dalam fail setempat
-Name[nb]=Notater i lokal fil
-Name[nds]=Notizen in lokaal Datei
-Name[ne]=स्थानीय फाइलका टिपोट
-Name[nl]=Notities in lokaal bestand
-Name[nn]=Notat i lokal fil
-Name[pl]=Notatki w pliku lokalnym
-Name[pt]=Notas num Ficheiro Local
-Name[pt_BR]=Notas em Arquivo Local
-Name[ru]=Заметки в локальном файле
-Name[sk]=Poznámky v lokálnom súbore
-Name[sl]=Notice v krajevni datoteki
-Name[sr]=Забелешке у локалном фајлу
-Name[sr@Latn]=Zabeleške u lokalnom fajlu
-Name[sv]=Anteckningar i lokal fil
-Name[ta]=உள் கோப்பில் உள்ள குறிப்புகள்
-Name[tg]=Хабарҳо дар файли локалӣ
-Name[tr]=Yerel Dosyadaki Notlar
-Name[uk]=Нотатки у локальному файлі
-Name[zh_CN]=本地文件中的便笺
-Name[zh_TW]=本地檔備忘錄
-X-TDE-Library=knotes_local
+
Type=Service
+X-TDE-Library=knotes_local
X-TDE-ServiceTypes=TDEResources/Plugin
X-TDE-ResourceFamily=notes
X-TDE-ResourceType=file
diff --git a/knotes/main.cpp b/knotes/main.cpp
index e809a8f7..8b85abe3 100644
--- a/knotes/main.cpp
+++ b/knotes/main.cpp
@@ -122,7 +122,7 @@ int main( int argc, char* argv[] )
KUniqueApplication::addCmdLineOptions();
Application app;
- app.connect( &app, TQT_SIGNAL( lastWindowClosed() ), &app, TQT_SLOT( quit() ) );
+ app.connect( &app, TQ_SIGNAL( lastWindowClosed() ), &app, TQ_SLOT( quit() ) );
remove_sm_from_client_leader();
diff --git a/knotes/resourcelocalconfig.h b/knotes/resourcelocalconfig.h
index ab78cd68..680f5146 100644
--- a/knotes/resourcelocalconfig.h
+++ b/knotes/resourcelocalconfig.h
@@ -27,7 +27,7 @@ class KURLRequester;
class ResourceLocalConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceLocalConfig( TQWidget *parent = 0, const char *name = 0 );
diff --git a/knotes/resourcemanager.h b/knotes/resourcemanager.h
index 423ee7a9..fc82b9a0 100644
--- a/knotes/resourcemanager.h
+++ b/knotes/resourcemanager.h
@@ -49,7 +49,7 @@ namespace KCal {
class KNotesResourceManager : public TQObject, public KRES::ManagerObserver<ResourceNotes>
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNotesResourceManager();
diff --git a/knotes/resourcenotes.h b/knotes/resourcenotes.h
index d33b3423..9ea668a0 100644
--- a/knotes/resourcenotes.h
+++ b/knotes/resourcenotes.h
@@ -34,7 +34,7 @@
#define RESOURCENOTES_H
#include <tderesources/resource.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <libkcal/alarm.h>
class TDEConfig;
diff --git a/kode/automakefile.h b/kode/automakefile.h
index 418851ad..1a593732 100644
--- a/kode/automakefile.h
+++ b/kode/automakefile.h
@@ -26,7 +26,7 @@
#include <tqmap.h>
#include <tqstringlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KODE {
diff --git a/kode/class.h b/kode/class.h
index f3f44114..aab15d27 100644
--- a/kode/class.h
+++ b/kode/class.h
@@ -26,7 +26,7 @@
#include "membervariable.h"
#include "typedef.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqvaluelist.h>
#include <tqstring.h>
#include <tqstringlist.h>
diff --git a/kode/code.h b/kode/code.h
index 97a1b8d3..2b1da631 100644
--- a/kode/code.h
+++ b/kode/code.h
@@ -26,7 +26,7 @@
#include <tqvaluelist.h>
#include <tqstring.h>
#include <tqstringlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KODE {
class KDE_EXPORT Code
diff --git a/kode/enum.h b/kode/enum.h
index 56681724..d4566bba 100644
--- a/kode/enum.h
+++ b/kode/enum.h
@@ -22,7 +22,7 @@
#define KODE_ENUM_H
#include <tqstringlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KODE {
diff --git a/kode/file.h b/kode/file.h
index f4fe555e..7a899154 100644
--- a/kode/file.h
+++ b/kode/file.h
@@ -28,7 +28,7 @@
#include <tqstring.h>
#include <tqstringlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KODE {
diff --git a/kode/function.h b/kode/function.h
index 305838eb..6d928f4f 100644
--- a/kode/function.h
+++ b/kode/function.h
@@ -26,7 +26,7 @@
#include <tqvaluelist.h>
#include <tqstring.h>
#include <tqstringlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KODE {
diff --git a/kode/kwsdl/compiler.h b/kode/kwsdl/compiler.h
index f7ab693d..1d1781ab 100644
--- a/kode/kwsdl/compiler.h
+++ b/kode/kwsdl/compiler.h
@@ -31,7 +31,7 @@ namespace KWSDL {
class Compiler : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/converter.cpp b/kode/kwsdl/converter.cpp
index 2117c59c..41e7e0a9 100644
--- a/kode/kwsdl/converter.cpp
+++ b/kode/kwsdl/converter.cpp
@@ -37,7 +37,7 @@ static TQString escapeEnum( const TQString &str )
Converter::Converter()
{
- mTQObject = KODE::Class( TQOBJECT_OBJECT_NAME_STRING );
+ mTQObject = KODE::Class( "TQObject" );
}
void Converter::setWSDL( const WSDL &wsdl )
@@ -249,7 +249,7 @@ void Converter::createSimpleTypeSerializer( const Schema::SimpleType *type )
escapedEnums.append( escapeEnum( enums[ i ] ) );
// marshal value
- KODE::Function marshalValue( "marshalValue", TQSTRING_OBJECT_NAME_STRING );
+ KODE::Function marshalValue( "marshalValue", "TQString" );
marshalValue.setStatic( true );
marshalValue.addArgument( "const " + typeName + "* value" );
code += "switch ( value->type() ) {";
@@ -315,7 +315,7 @@ void Converter::createSimpleTypeSerializer( const Schema::SimpleType *type )
demarshalCode.unindent();
demarshalCode += "}";
- KODE::Function marshalValue( "marshalValue", TQSTRING_OBJECT_NAME_STRING );
+ KODE::Function marshalValue( "marshalValue", "TQString" );
marshalValue.setStatic( true );
marshalValue.addArgument( "const " + typeName + "* value" );
marshalValue.setBody( "return Serializer::marshalValue( value->value() );" );
@@ -689,9 +689,9 @@ void Converter::convertService( const Service &service )
KODE::MemberVariable transport( inputMessage.name() + "Transport", "Transport" );
ctorCode += transport.name() + " = new Transport( \"" + (*it).mLocation + "\" );";
- ctorCode += "connect( " + transport.name() + ", TQT_SIGNAL( result( const TQString& ) ),";
+ ctorCode += "connect( " + transport.name() + ", TQ_SIGNAL( result( const TQString& ) ),";
ctorCode.indent();
- ctorCode += "this, TQT_SLOT( " + outputMessage.name() + "Slot( const TQString& ) ) );";
+ ctorCode += "this, TQ_SLOT( " + outputMessage.name() + "Slot( const TQString& ) ) );";
ctorCode.unindent();
dtorCode += "delete " + transport.name() + ";";
@@ -839,7 +839,7 @@ void Converter::createUtilClasses()
of typing and is easier to maintain at the end ;)
*/
TypeEntry types[] = {
- { TQSTRING_OBJECT_NAME_STRING, "xsd:string", "*value", "str" },
+ { "TQString", "xsd:string", "*value", "str" },
{ "bool", "xsd:boolean", "(*value ? \"true\" : \"false\")", "(str.lower() == \"true\" ? true : false)" },
{ "float", "xsd:TODO", "TQString::number( *value )", "str.toFloat()" },
{ "int", "xsd:int", "TQString::number( *value )", "str.toInt()" },
@@ -848,7 +848,7 @@ void Converter::createUtilClasses()
{ "char", "xsd:byte", "TQString( TQChar( *value ) )", "str[ 0 ].latin1()" },
{ "unsigned char", "xsd:unsignedByte", "TQString( TQChar( *value ) )", "str[ 0 ].latin1()" },
{ "short", "xsd:short", "TQString::number( *value )", "str.toShort()" },
- { TQBYTEARRAY_OBJECT_NAME_STRING, "xsd:base64Binary", "TQString::fromUtf8( KCodecs::base64Encode( *value ) )", "KCodecs::base64Decode( str.utf8() )" },
+ { "TQByteArray", "xsd:base64Binary", "TQString::fromUtf8( KCodecs::base64Encode( *value ) )", "KCodecs::base64Decode( str.utf8() )" },
{ "TQDateTime", "xsd:dateTime", "value->toString( TQt::ISODate )", "TQDateTime::fromString( str, TQt::ISODate )" },
{ "TQDate", "xsd:date", "value->toString( TQt::ISODate )", "TQDate::fromString( str, TQt::ISODate )" }
};
@@ -859,7 +859,7 @@ void Converter::createUtilClasses()
TypeEntry entry = types[ i ];
- marshal = KODE::Function( "marshalValue", TQSTRING_OBJECT_NAME_STRING );
+ marshal = KODE::Function( "marshalValue", "TQString" );
marshal.setStatic( true );
marshal.addArgument( "const " + entry.type + "* value" );
@@ -911,10 +911,10 @@ void Converter::createTransportClass()
transport.addInclude( "kdebug.h" );
- KODE::MemberVariable url( "url", TQSTRING_OBJECT_NAME_STRING );
+ KODE::MemberVariable url( "url", "TQString" );
transport.addMemberVariable( url );
- KODE::MemberVariable slotDataVar( "data", TQBYTEARRAY_OBJECT_NAME_STRING );
+ KODE::MemberVariable slotDataVar( "data", "TQByteArray" );
transport.addMemberVariable( slotDataVar );
// ctor
@@ -946,8 +946,8 @@ void Converter::createTransportClass()
queryCode += "job->addMetaData( \"UserAgent\", \"KWSDL\" );";
queryCode += "job->addMetaData( \"content-type\", \"Content-Type: text/xml; charset=utf-8\" );";
queryCode.newLine();
- queryCode += "connect( job, TQT_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ), this, TQT_SLOT( slotData( TDEIO::Job*, const TQByteArray& ) ) );";
- queryCode += "connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), this, TQT_SLOT( slotResult( TDEIO::Job* ) ) );";
+ queryCode += "connect( job, TQ_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ), this, TQ_SLOT( slotData( TDEIO::Job*, const TQByteArray& ) ) );";
+ queryCode += "connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), this, TQ_SLOT( slotResult( TDEIO::Job* ) ) );";
query.setBody( queryCode );
diff --git a/kode/kwsdl/creator.cpp b/kode/kwsdl/creator.cpp
index e31808ad..4564c365 100644
--- a/kode/kwsdl/creator.cpp
+++ b/kode/kwsdl/creator.cpp
@@ -58,7 +58,7 @@ void Creator::create( const KODE::Class::List &list )
}
KODE::AutoMakefile::Target libTarget( "bin_PROGRAMS", "kwsdl" );
- libTarget.setSources( "main.cc " + cppFiles.join( " " ) );
+ libTarget.setSources( "main.cpp " + cppFiles.join( " " ) );
libTarget.setLdFlags( "$(all_libraries) $(KDE_RPATH)" );
libTarget.setLdAdd( "-ltdecore -ltdeio" );
diff --git a/kode/kwsdl/kung/binaryinputfield.cpp b/kode/kwsdl/kung/binaryinputfield.cpp
index b0fb78b0..9a31b31a 100644
--- a/kode/kwsdl/kung/binaryinputfield.cpp
+++ b/kode/kwsdl/kung/binaryinputfield.cpp
@@ -107,8 +107,8 @@ BinaryWidget::BinaryWidget( TQWidget *parent )
mLayout->addWidget( mLoadButton, 0, 1 );
mLayout->addWidget( mSaveButton, 1, 1 );
- connect( mLoadButton, TQT_SIGNAL( clicked() ), TQT_SLOT( load() ) );
- connect( mSaveButton, TQT_SIGNAL( clicked() ), TQT_SLOT( save() ) );
+ connect( mLoadButton, TQ_SIGNAL( clicked() ), TQ_SLOT( load() ) );
+ connect( mSaveButton, TQ_SIGNAL( clicked() ), TQ_SLOT( save() ) );
}
void BinaryWidget::setData( const TQByteArray &data )
diff --git a/kode/kwsdl/kung/binaryinputfield.h b/kode/kwsdl/kung/binaryinputfield.h
index 3695654c..f5c2c67b 100644
--- a/kode/kwsdl/kung/binaryinputfield.h
+++ b/kode/kwsdl/kung/binaryinputfield.h
@@ -32,7 +32,7 @@ class TQPushButton;
class BinaryInputField : public SimpleInputField
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -58,7 +58,7 @@ class BinaryInputField : public SimpleInputField
class BinaryWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/kung/boolinputfield.cpp b/kode/kwsdl/kung/boolinputfield.cpp
index 88311266..12def657 100644
--- a/kode/kwsdl/kung/boolinputfield.cpp
+++ b/kode/kwsdl/kung/boolinputfield.cpp
@@ -65,8 +65,8 @@ TQWidget *BoolInputField::createWidget( TQWidget *parent )
mInputWidget->setChecked( mValue );
- connect( mInputWidget, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SLOT( inputChanged( bool ) ) );
+ connect( mInputWidget, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SLOT( inputChanged( bool ) ) );
return mInputWidget;
}
diff --git a/kode/kwsdl/kung/boolinputfield.h b/kode/kwsdl/kung/boolinputfield.h
index e99a3d50..0f40c60e 100644
--- a/kode/kwsdl/kung/boolinputfield.h
+++ b/kode/kwsdl/kung/boolinputfield.h
@@ -30,7 +30,7 @@ class TQCheckBox;
class BoolInputField : public SimpleInputField
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/kung/dateinputfield.cpp b/kode/kwsdl/kung/dateinputfield.cpp
index cb24670f..b7d6f8f0 100644
--- a/kode/kwsdl/kung/dateinputfield.cpp
+++ b/kode/kwsdl/kung/dateinputfield.cpp
@@ -65,8 +65,8 @@ TQWidget *DateInputField::createWidget( TQWidget *parent )
mInputWidget->setDate( mValue );
- connect( mInputWidget, TQT_SIGNAL( dateChanged( TQDate ) ),
- this, TQT_SLOT( inputChanged( TQDate ) ) );
+ connect( mInputWidget, TQ_SIGNAL( dateChanged( TQDate ) ),
+ this, TQ_SLOT( inputChanged( TQDate ) ) );
return mInputWidget;
}
diff --git a/kode/kwsdl/kung/dateinputfield.h b/kode/kwsdl/kung/dateinputfield.h
index 6a5d29ae..54cd3deb 100644
--- a/kode/kwsdl/kung/dateinputfield.h
+++ b/kode/kwsdl/kung/dateinputfield.h
@@ -31,7 +31,7 @@ class KDatePicker;
class DateInputField : public SimpleInputField
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/kung/dispatcher.cpp b/kode/kwsdl/kung/dispatcher.cpp
index 5c65d0c4..7b2ad477 100644
--- a/kode/kwsdl/kung/dispatcher.cpp
+++ b/kode/kwsdl/kung/dispatcher.cpp
@@ -57,10 +57,10 @@ void Dispatcher::setWSDL( const KWSDL::WSDL &wsdl )
mConversationManager = new GeneralConversationManager( mWSDL );
mTransport = new Transport( mWSDL.service().ports().first().mLocation );
- connect( mTransport, TQT_SIGNAL( result( const TQString& ) ),
- this, TQT_SLOT( result( const TQString& ) ) );
- connect( mTransport, TQT_SIGNAL( error( const TQString& ) ),
- this, TQT_SLOT( error( const TQString& ) ) );
+ connect( mTransport, TQ_SIGNAL( result( const TQString& ) ),
+ this, TQ_SLOT( result( const TQString& ) ) );
+ connect( mTransport, TQ_SIGNAL( error( const TQString& ) ),
+ this, TQ_SLOT( error( const TQString& ) ) );
}
void Dispatcher::run()
@@ -140,14 +140,14 @@ void Dispatcher::result( const TQString &xml )
mLastMessage = mCurrentMessage;
- TQTimer::singleShot( 0, this, TQT_SLOT( nextMessage() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( nextMessage() ) );
}
void Dispatcher::error( const TQString &errorMsg )
{
KMessageBox::error( 0, errorMsg );
- TQTimer::singleShot( 0, this, TQT_SLOT( nextMessage() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( nextMessage() ) );
}
#include "dispatcher.moc"
diff --git a/kode/kwsdl/kung/dispatcher.h b/kode/kwsdl/kung/dispatcher.h
index c5e0744d..cba421cf 100644
--- a/kode/kwsdl/kung/dispatcher.h
+++ b/kode/kwsdl/kung/dispatcher.h
@@ -31,7 +31,7 @@ class Transport;
class Dispatcher : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/kung/doubleinputfield.cpp b/kode/kwsdl/kung/doubleinputfield.cpp
index 39f22774..1df00f03 100644
--- a/kode/kwsdl/kung/doubleinputfield.cpp
+++ b/kode/kwsdl/kung/doubleinputfield.cpp
@@ -78,8 +78,8 @@ TQWidget *DoubleInputField::createWidget( TQWidget *parent )
mInputWidget->setValue( mValue );
- connect( mInputWidget, TQT_SIGNAL( valueChanged( double ) ),
- this, TQT_SLOT( inputChanged( double ) ) );
+ connect( mInputWidget, TQ_SIGNAL( valueChanged( double ) ),
+ this, TQ_SLOT( inputChanged( double ) ) );
return mInputWidget;
}
diff --git a/kode/kwsdl/kung/doubleinputfield.h b/kode/kwsdl/kung/doubleinputfield.h
index 1368a6cd..df3eaa83 100644
--- a/kode/kwsdl/kung/doubleinputfield.h
+++ b/kode/kwsdl/kung/doubleinputfield.h
@@ -30,7 +30,7 @@ class KDoubleSpinBox;
class DoubleInputField : public SimpleInputField
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/kung/enuminputfield.cpp b/kode/kwsdl/kung/enuminputfield.cpp
index 30c11670..f49ab4be 100644
--- a/kode/kwsdl/kung/enuminputfield.cpp
+++ b/kode/kwsdl/kung/enuminputfield.cpp
@@ -70,8 +70,8 @@ TQWidget *EnumInputField::createWidget( TQWidget *parent )
mInputWidget->insertStringList( mEnums );
mInputWidget->setCurrentItem( mEnums.findIndex( mValue ) );
- connect( mInputWidget, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( inputChanged( int ) ) );
+ connect( mInputWidget, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( inputChanged( int ) ) );
return mInputWidget;
}
diff --git a/kode/kwsdl/kung/enuminputfield.h b/kode/kwsdl/kung/enuminputfield.h
index 13615b1e..bb5b6990 100644
--- a/kode/kwsdl/kung/enuminputfield.h
+++ b/kode/kwsdl/kung/enuminputfield.h
@@ -30,7 +30,7 @@ class KComboBox;
class EnumInputField : public SimpleInputField
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/kung/inputfield.h b/kode/kwsdl/kung/inputfield.h
index 4a68e161..69692c48 100644
--- a/kode/kwsdl/kung/inputfield.h
+++ b/kode/kwsdl/kung/inputfield.h
@@ -39,7 +39,7 @@ class ComplexType;
*/
class InputField : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/kung/integerinputfield.cpp b/kode/kwsdl/kung/integerinputfield.cpp
index 76d48cd5..38c08222 100644
--- a/kode/kwsdl/kung/integerinputfield.cpp
+++ b/kode/kwsdl/kung/integerinputfield.cpp
@@ -116,8 +116,8 @@ TQWidget *IntegerInputField::createWidget( TQWidget *parent )
mInputWidget->setValue( mValue );
- connect( mInputWidget, TQT_SIGNAL( valueChanged( int ) ),
- this, TQT_SLOT( inputChanged( int ) ) );
+ connect( mInputWidget, TQ_SIGNAL( valueChanged( int ) ),
+ this, TQ_SLOT( inputChanged( int ) ) );
return mInputWidget;
}
diff --git a/kode/kwsdl/kung/integerinputfield.h b/kode/kwsdl/kung/integerinputfield.h
index 91294308..dbb8cc27 100644
--- a/kode/kwsdl/kung/integerinputfield.h
+++ b/kode/kwsdl/kung/integerinputfield.h
@@ -30,7 +30,7 @@ class KIntSpinBox;
class IntegerInputField : public SimpleInputField
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/kung/listinputfield.cpp b/kode/kwsdl/kung/listinputfield.cpp
index 539e3de2..147c83fd 100644
--- a/kode/kwsdl/kung/listinputfield.cpp
+++ b/kode/kwsdl/kung/listinputfield.cpp
@@ -105,9 +105,9 @@ ListWidget::ListWidget( InputField *parentField, const TQString &name, const TQS
mRemoveButton = new TQPushButton( i18n( "Remove" ), this );
layout->addWidget( mRemoveButton, 2, 1 );
- connect( mAddButton, TQT_SIGNAL( clicked() ), TQT_SLOT( add() ) );
- connect( mEditButton, TQT_SIGNAL( clicked() ), TQT_SLOT( edit() ) );
- connect( mRemoveButton, TQT_SIGNAL( clicked() ), TQT_SLOT( remove() ) );
+ connect( mAddButton, TQ_SIGNAL( clicked() ), TQ_SLOT( add() ) );
+ connect( mEditButton, TQ_SIGNAL( clicked() ), TQ_SLOT( edit() ) );
+ connect( mRemoveButton, TQ_SIGNAL( clicked() ), TQ_SLOT( remove() ) );
update();
}
diff --git a/kode/kwsdl/kung/listinputfield.h b/kode/kwsdl/kung/listinputfield.h
index c7105bbb..ed49e815 100644
--- a/kode/kwsdl/kung/listinputfield.h
+++ b/kode/kwsdl/kung/listinputfield.h
@@ -32,7 +32,7 @@ class TQPushButton;
class ListInputField : public SimpleInputField
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -53,7 +53,7 @@ class ListInputField : public SimpleInputField
class ListWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/kung/loader.h b/kode/kwsdl/kung/loader.h
index 2839780c..d3ff45d5 100644
--- a/kode/kwsdl/kung/loader.h
+++ b/kode/kwsdl/kung/loader.h
@@ -28,7 +28,7 @@ class Dispatcher;
class Loader : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/kung/main.cpp b/kode/kwsdl/kung/main.cpp
index 2dadbe9d..3036eeae 100644
--- a/kode/kwsdl/kung/main.cpp
+++ b/kode/kwsdl/kung/main.cpp
@@ -58,7 +58,7 @@ int main( int argc, char **argv )
Loader loader;
loader.setWSDLUrl( args->url( 0 ).path() );
- TQTimer::singleShot( 0, &loader, TQT_SLOT( run() ) );
+ TQTimer::singleShot( 0, &loader, TQ_SLOT( run() ) );
return app.exec();
}
diff --git a/kode/kwsdl/kung/pageinputfield.h b/kode/kwsdl/kung/pageinputfield.h
index f70ba98e..f0f9411b 100644
--- a/kode/kwsdl/kung/pageinputfield.h
+++ b/kode/kwsdl/kung/pageinputfield.h
@@ -30,7 +30,7 @@
class PageInputField : public InputField
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/kung/stringinputfield.cpp b/kode/kwsdl/kung/stringinputfield.cpp
index 9ea45029..ee90eeec 100644
--- a/kode/kwsdl/kung/stringinputfield.cpp
+++ b/kode/kwsdl/kung/stringinputfield.cpp
@@ -84,8 +84,8 @@ TQWidget *StringInputField::createWidget( TQWidget *parent )
mInputWidget->setText( mValue );
- connect( mInputWidget, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( inputChanged( const TQString& ) ) );
+ connect( mInputWidget, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( inputChanged( const TQString& ) ) );
return mInputWidget;
}
diff --git a/kode/kwsdl/kung/stringinputfield.h b/kode/kwsdl/kung/stringinputfield.h
index b6c8f172..d237aae5 100644
--- a/kode/kwsdl/kung/stringinputfield.h
+++ b/kode/kwsdl/kung/stringinputfield.h
@@ -30,7 +30,7 @@ class TQLineEdit;
class StringInputField : public SimpleInputField
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/kung/timeinputfield.cpp b/kode/kwsdl/kung/timeinputfield.cpp
index 38e1a264..024e2671 100644
--- a/kode/kwsdl/kung/timeinputfield.cpp
+++ b/kode/kwsdl/kung/timeinputfield.cpp
@@ -65,8 +65,8 @@ TQWidget *TimeInputField::createWidget( TQWidget *parent )
mInputWidget->setTime( mValue );
- connect( mInputWidget, TQT_SIGNAL( valueChanged( const TQTime& ) ),
- this, TQT_SLOT( inputChanged( const TQTime& ) ) );
+ connect( mInputWidget, TQ_SIGNAL( valueChanged( const TQTime& ) ),
+ this, TQ_SLOT( inputChanged( const TQTime& ) ) );
return mInputWidget;
}
diff --git a/kode/kwsdl/kung/timeinputfield.h b/kode/kwsdl/kung/timeinputfield.h
index 2b351652..f586d190 100644
--- a/kode/kwsdl/kung/timeinputfield.h
+++ b/kode/kwsdl/kung/timeinputfield.h
@@ -31,7 +31,7 @@ class KTimeWidget;
class TimeInputField : public SimpleInputField
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/kung/transport.cpp b/kode/kwsdl/kung/transport.cpp
index e9dabf3c..4961ad2f 100644
--- a/kode/kwsdl/kung/transport.cpp
+++ b/kode/kwsdl/kung/transport.cpp
@@ -45,8 +45,8 @@ void Transport::query( const TQString &xml )
job->addMetaData( "UserAgent", "KDE Kung" );
job->addMetaData( "content-type", "Content-Type: text/xml; charset=utf-8" );
- connect( job, TQT_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ), this, TQT_SLOT( slotData( TDEIO::Job*, const TQByteArray& ) ) );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), this, TQT_SLOT( slotResult( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ), this, TQ_SLOT( slotData( TDEIO::Job*, const TQByteArray& ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), this, TQ_SLOT( slotResult( TDEIO::Job* ) ) );
}
void Transport::slotData( TDEIO::Job*, const TQByteArray &data )
diff --git a/kode/kwsdl/kung/transport.h b/kode/kwsdl/kung/transport.h
index 46355525..384d14a9 100644
--- a/kode/kwsdl/kung/transport.h
+++ b/kode/kwsdl/kung/transport.h
@@ -25,7 +25,7 @@
class Transport : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/main.cpp b/kode/kwsdl/main.cpp
index 5ba4f533..900f6ee4 100644
--- a/kode/kwsdl/main.cpp
+++ b/kode/kwsdl/main.cpp
@@ -71,7 +71,7 @@ int main( int argc, char **argv )
if ( args->isSet( "namespace" ) )
compiler.setNameSpace( args->getOption( "namespace" ) );
- TQTimer::singleShot( 0, &compiler, TQT_SLOT( run() ) );
+ TQTimer::singleShot( 0, &compiler, TQ_SLOT( run() ) );
return app.exec();
}
diff --git a/kode/kwsdl/schema/fileprovider.cpp b/kode/kwsdl/schema/fileprovider.cpp
index ed5606fd..8d435274 100644
--- a/kode/kwsdl/schema/fileprovider.cpp
+++ b/kode/kwsdl/schema/fileprovider.cpp
@@ -53,10 +53,10 @@ bool FileProvider::get( const TQString &url, TQString &target )
tqDebug( "Downloading external schema '%s'", url.latin1() );
TDEIO::TransferJob* job = TDEIO::get( KURL( url ), false, false );
- connect( job, TQT_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ),
- this, TQT_SLOT( slotData( TDEIO::Job*, const TQByteArray& ) ) );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ),
- this, TQT_SLOT( slotResult( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ),
+ this, TQ_SLOT( slotData( TDEIO::Job*, const TQByteArray& ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ),
+ this, TQ_SLOT( slotResult( TDEIO::Job* ) ) );
mBlocked = true;
while ( mBlocked ) {
diff --git a/kode/kwsdl/schema/fileprovider.h b/kode/kwsdl/schema/fileprovider.h
index c855416d..817c55ad 100644
--- a/kode/kwsdl/schema/fileprovider.h
+++ b/kode/kwsdl/schema/fileprovider.h
@@ -32,7 +32,7 @@ namespace Schema {
class FileProvider : TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/tests/google/Makefile.am b/kode/kwsdl/tests/google/Makefile.am
index 9dd839c5..66da11c3 100644
--- a/kode/kwsdl/tests/google/Makefile.am
+++ b/kode/kwsdl/tests/google/Makefile.am
@@ -3,7 +3,7 @@ METASOURCES = AUTO
bin_PROGRAMS = googletest
-googletest_SOURCES = main.cc googlesearch.cc transport.cpp resultelementarray.cpp directorycategoryarray.cpp googlesearchresult.cpp directorycategory.cpp resultelement.cpp serializer.cpp googlesearchservice.cpp
+googletest_SOURCES = main.cpp googlesearch.cpp transport.cpp resultelementarray.cpp directorycategoryarray.cpp googlesearchresult.cpp directorycategory.cpp resultelement.cpp serializer.cpp googlesearchservice.cpp
googletest_LDADD = -ltdecore -ltdeio
googletest_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_TQT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_TDEIO) -ltdetexteditor
diff --git a/kode/kwsdl/tests/google/README b/kode/kwsdl/tests/google/README
index cfe83159..46ef2ff0 100644
--- a/kode/kwsdl/tests/google/README
+++ b/kode/kwsdl/tests/google/README
@@ -1,7 +1,7 @@
This application shows how easy it is to use a web service with
code, generated by kwsdl_compiler.
-Only the files main.cc, googlesearch.cc and googlesearch.hh are
+Only the files main.cpp, googlesearch.cpp and googlesearch.h are
written manually, all other files were created by
kwsdl_compiler -d kwsdl/tests/google/ GoogleSearch.wsdl
diff --git a/kode/kwsdl/tests/google/googlesearch.cc b/kode/kwsdl/tests/google/googlesearch.cc
deleted file mode 100644
index 690b9a11..00000000
--- a/kode/kwsdl/tests/google/googlesearch.cc
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- This file is part of KDE.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
- As a special exception, permission is given to link this program
- with any edition of TQt, and distribute the resulting executable,
- without including the source code for TQt in the source distribution.
-*/
-
-#include "googlesearch.hh"
-#include "resultelement.h"
-#include "resultelementarray.h"
-
-GoogleSearch::GoogleSearch()
- : TQObject( 0, "" )
-{
- connect( &mService, TQT_SIGNAL( doGetCachedPageResponse( TQByteArray* ) ),
- this, TQT_SLOT( cachedPageResult( TQByteArray* ) ) );
- connect( &mService, TQT_SIGNAL( doSpellingSuggestionResponse( TQString* ) ),
- this, TQT_SLOT( spellingSuggestionResult( TQString* ) ) );
- connect( &mService, TQT_SIGNAL( doGoogleSearchResponse( GoogleSearchResult* ) ),
- this, TQT_SLOT( googleSearchResult( GoogleSearchResult* ) ) );
-
- mKey = "";
-}
-
-void GoogleSearch::cachedPage( const TQString &url )
-{
- mService.doGetCachedPage( new TQString( mKey ), new TQString( url ) );
-}
-
-void GoogleSearch::spellingSuggestion( const TQString &phrase )
-{
- mService.doSpellingSuggestion( new TQString( mKey ), new TQString( phrase ) );
-}
-
-void GoogleSearch::googleSearch( const TQString &query, int start, int maxResults, bool filter,
- const TQString &restrict, bool safeSearch, const TQString &lr, const TQString &ie,
- const TQString &oe )
-{
- mService.doGoogleSearch( new TQString( mKey ), new TQString( query ), new int( start ), new int( maxResults ),
- new bool( filter ), new TQString( restrict ), new bool( safeSearch ), new TQString( lr ),
- new TQString( ie ), new TQString( oe ) );
-}
-
-void GoogleSearch::cachedPageResult( TQByteArray *array )
-{
- tqDebug( "--------------- Cached Page Results ---------------------" );
- tqDebug( "%s", array->data() );
- tqDebug( "---------------------------------------------------------" );
-
- delete array;
-}
-
-void GoogleSearch::spellingSuggestionResult( TQString *word )
-{
- tqDebug( "--------------- Spelling Suggestion ---------------------" );
- tqDebug( "%s", word->latin1() );
- tqDebug( "---------------------------------------------------------" );
-
- delete word;
-}
-
-void GoogleSearch::googleSearchResult( GoogleSearchResult *result )
-{
- tqDebug( "--------------------- Search Results ---------------------" );
- ResultElementArray *array = result->resultElements();
- TQPtrList<ResultElement> *list = array->items();
- TQPtrListIterator<ResultElement> it( *list );
- while ( it.current() != 0 ) {
- tqDebug( "%s: %s", it.current()->summary()->latin1(), it.current()->uRL()->latin1() );
- ++it;
- }
- tqDebug( "---------------------------------------------------------" );
-
- delete result;
-}
-
-#include "googlesearch.moc"
diff --git a/kode/kwsdl/tests/google/googlesearch.cpp b/kode/kwsdl/tests/google/googlesearch.cpp
new file mode 100644
index 00000000..aa282a06
--- /dev/null
+++ b/kode/kwsdl/tests/google/googlesearch.cpp
@@ -0,0 +1,94 @@
+/*
+ This file is part of KDE.
+
+ Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ As a special exception, permission is given to link this program
+ with any edition of TQt, and distribute the resulting executable,
+ without including the source code for TQt in the source distribution.
+*/
+
+#include "googlesearch.h"
+#include "resultelement.h"
+#include "resultelementarray.h"
+
+GoogleSearch::GoogleSearch()
+ : TQObject( 0, "" )
+{
+ connect( &mService, TQ_SIGNAL( doGetCachedPageResponse( TQByteArray* ) ),
+ this, TQ_SLOT( cachedPageResult( TQByteArray* ) ) );
+ connect( &mService, TQ_SIGNAL( doSpellingSuggestionResponse( TQString* ) ),
+ this, TQ_SLOT( spellingSuggestionResult( TQString* ) ) );
+ connect( &mService, TQ_SIGNAL( doGoogleSearchResponse( GoogleSearchResult* ) ),
+ this, TQ_SLOT( googleSearchResult( GoogleSearchResult* ) ) );
+
+ mKey = "";
+}
+
+void GoogleSearch::cachedPage( const TQString &url )
+{
+ mService.doGetCachedPage( new TQString( mKey ), new TQString( url ) );
+}
+
+void GoogleSearch::spellingSuggestion( const TQString &phrase )
+{
+ mService.doSpellingSuggestion( new TQString( mKey ), new TQString( phrase ) );
+}
+
+void GoogleSearch::googleSearch( const TQString &query, int start, int maxResults, bool filter,
+ const TQString &restrict, bool safeSearch, const TQString &lr, const TQString &ie,
+ const TQString &oe )
+{
+ mService.doGoogleSearch( new TQString( mKey ), new TQString( query ), new int( start ), new int( maxResults ),
+ new bool( filter ), new TQString( restrict ), new bool( safeSearch ), new TQString( lr ),
+ new TQString( ie ), new TQString( oe ) );
+}
+
+void GoogleSearch::cachedPageResult( TQByteArray *array )
+{
+ tqDebug( "--------------- Cached Page Results ---------------------" );
+ tqDebug( "%s", array->data() );
+ tqDebug( "---------------------------------------------------------" );
+
+ delete array;
+}
+
+void GoogleSearch::spellingSuggestionResult( TQString *word )
+{
+ tqDebug( "--------------- Spelling Suggestion ---------------------" );
+ tqDebug( "%s", word->latin1() );
+ tqDebug( "---------------------------------------------------------" );
+
+ delete word;
+}
+
+void GoogleSearch::googleSearchResult( GoogleSearchResult *result )
+{
+ tqDebug( "--------------------- Search Results ---------------------" );
+ ResultElementArray *array = result->resultElements();
+ TQPtrList<ResultElement> *list = array->items();
+ TQPtrListIterator<ResultElement> it( *list );
+ while ( it.current() != 0 ) {
+ tqDebug( "%s: %s", it.current()->summary()->latin1(), it.current()->uRL()->latin1() );
+ ++it;
+ }
+ tqDebug( "---------------------------------------------------------" );
+
+ delete result;
+}
+
+#include "googlesearch.moc"
diff --git a/kode/kwsdl/tests/google/googlesearch.h b/kode/kwsdl/tests/google/googlesearch.h
new file mode 100644
index 00000000..9551fc5d
--- /dev/null
+++ b/kode/kwsdl/tests/google/googlesearch.h
@@ -0,0 +1,60 @@
+/*
+ This file is part of KDE.
+
+ Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ As a special exception, permission is given to link this program
+ with any edition of TQt, and distribute the resulting executable,
+ without including the source code for TQt in the source distribution.
+*/
+
+#ifndef GOOGLESEARCH_H
+#define GOOGLESEARCH_H
+
+#include <tqobject.h>
+#include "googlesearchservice.h"
+
+class GoogleSearch : public TQObject
+{
+ TQ_OBJECT
+
+ public:
+ GoogleSearch();
+
+ void cachedPage( const TQString &url );
+ void spellingSuggestion( const TQString &phrase );
+ void googleSearch( const TQString &query,
+ int start,
+ int maxResults,
+ bool filter,
+ const TQString &restrict,
+ bool safeSearch,
+ const TQString &lr,
+ const TQString &ie,
+ const TQString &oe );
+
+ private slots:
+ void cachedPageResult( TQByteArray* );
+ void spellingSuggestionResult( TQString* );
+ void googleSearchResult( GoogleSearchResult* );
+
+ private:
+ TQString mKey;
+ GoogleSearchService mService;
+};
+
+#endif
diff --git a/kode/kwsdl/tests/google/googlesearch.hh b/kode/kwsdl/tests/google/googlesearch.hh
deleted file mode 100644
index b6400616..00000000
--- a/kode/kwsdl/tests/google/googlesearch.hh
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- This file is part of KDE.
-
- Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
- As a special exception, permission is given to link this program
- with any edition of TQt, and distribute the resulting executable,
- without including the source code for TQt in the source distribution.
-*/
-
-#ifndef GOOGLESEARCH_H
-#define GOOGLESEARCH_H
-
-#include <tqobject.h>
-#include "googlesearchservice.h"
-
-class GoogleSearch : public TQObject
-{
- Q_OBJECT
- TQ_OBJECT
-
- public:
- GoogleSearch();
-
- void cachedPage( const TQString &url );
- void spellingSuggestion( const TQString &phrase );
- void googleSearch( const TQString &query,
- int start,
- int maxResults,
- bool filter,
- const TQString &restrict,
- bool safeSearch,
- const TQString &lr,
- const TQString &ie,
- const TQString &oe );
-
- private slots:
- void cachedPageResult( TQByteArray* );
- void spellingSuggestionResult( TQString* );
- void googleSearchResult( GoogleSearchResult* );
-
- private:
- TQString mKey;
- GoogleSearchService mService;
-};
-
-#endif
diff --git a/kode/kwsdl/tests/google/googlesearchservice.cpp b/kode/kwsdl/tests/google/googlesearchservice.cpp
index d2e7c97e..095fe115 100644
--- a/kode/kwsdl/tests/google/googlesearchservice.cpp
+++ b/kode/kwsdl/tests/google/googlesearchservice.cpp
@@ -183,14 +183,14 @@ void GoogleSearchService::doGoogleSearchResponseSlot( const TQString &xml )
GoogleSearchService::GoogleSearchService()
{
mDoGetCachedPageTransport = new Transport( "http://api.google.com/search/beta2" );
- connect( mDoGetCachedPageTransport, TQT_SIGNAL( result( const TQString& ) ),
- this, TQT_SLOT( doGetCachedPageResponseSlot( const TQString& ) ) );
+ connect( mDoGetCachedPageTransport, TQ_SIGNAL( result( const TQString& ) ),
+ this, TQ_SLOT( doGetCachedPageResponseSlot( const TQString& ) ) );
mDoSpellingSuggestionTransport = new Transport( "http://api.google.com/search/beta2" );
- connect( mDoSpellingSuggestionTransport, TQT_SIGNAL( result( const TQString& ) ),
- this, TQT_SLOT( doSpellingSuggestionResponseSlot( const TQString& ) ) );
+ connect( mDoSpellingSuggestionTransport, TQ_SIGNAL( result( const TQString& ) ),
+ this, TQ_SLOT( doSpellingSuggestionResponseSlot( const TQString& ) ) );
mDoGoogleSearchTransport = new Transport( "http://api.google.com/search/beta2" );
- connect( mDoGoogleSearchTransport, TQT_SIGNAL( result( const TQString& ) ),
- this, TQT_SLOT( doGoogleSearchResponseSlot( const TQString& ) ) );
+ connect( mDoGoogleSearchTransport, TQ_SIGNAL( result( const TQString& ) ),
+ this, TQ_SLOT( doGoogleSearchResponseSlot( const TQString& ) ) );
}
GoogleSearchService::~GoogleSearchService()
diff --git a/kode/kwsdl/tests/google/googlesearchservice.h b/kode/kwsdl/tests/google/googlesearchservice.h
index e61cd446..0d2d8e79 100644
--- a/kode/kwsdl/tests/google/googlesearchservice.h
+++ b/kode/kwsdl/tests/google/googlesearchservice.h
@@ -32,7 +32,7 @@
class GoogleSearchService : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/tests/google/main.cc b/kode/kwsdl/tests/google/main.cc
deleted file mode 100644
index 38c64594..00000000
--- a/kode/kwsdl/tests/google/main.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <tdeaboutdata.h>
-#include <tdeapplication.h>
-#include <tdecmdlineargs.h>
-#include <kmdcodec.h>
-
-#include "googlesearch.hh"
-
-int main( int argc, char **argv )
-{
- TDEAboutData aboutData( "kgooglesearch", "TDE Google Search", "0.1", "", TDEAboutData::License_GPL );
- aboutData.addAuthor( "Tobias Koenig", 0, "tokoe@kde.org" );
-
- TDECmdLineArgs::init( argc, argv, &aboutData );
-
- TDEApplication app( false, false );
-
- GoogleSearch search;
-
- search.googleSearch( "foobar", 0, 10, true, "", false, "", "latin1", "latin1" );
- search.spellingSuggestion( "guugel" );
-
- return app.exec();
-}
diff --git a/kode/kwsdl/tests/google/main.cpp b/kode/kwsdl/tests/google/main.cpp
new file mode 100644
index 00000000..130a9cc6
--- /dev/null
+++ b/kode/kwsdl/tests/google/main.cpp
@@ -0,0 +1,23 @@
+#include <tdeaboutdata.h>
+#include <tdeapplication.h>
+#include <tdecmdlineargs.h>
+#include <kmdcodec.h>
+
+#include "googlesearch.h"
+
+int main( int argc, char **argv )
+{
+ TDEAboutData aboutData( "kgooglesearch", "TDE Google Search", "0.1", "", TDEAboutData::License_GPL );
+ aboutData.addAuthor( "Tobias Koenig", 0, "tokoe@kde.org" );
+
+ TDECmdLineArgs::init( argc, argv, &aboutData );
+
+ TDEApplication app( false, false );
+
+ GoogleSearch search;
+
+ search.googleSearch( "foobar", 0, 10, true, "", false, "", "latin1", "latin1" );
+ search.spellingSuggestion( "guugel" );
+
+ return app.exec();
+}
diff --git a/kode/kwsdl/tests/google/transport.cpp b/kode/kwsdl/tests/google/transport.cpp
index 30b9645e..c7a390e8 100644
--- a/kode/kwsdl/tests/google/transport.cpp
+++ b/kode/kwsdl/tests/google/transport.cpp
@@ -48,8 +48,8 @@ void Transport::query( const TQString &xml )
job->addMetaData( "UserAgent", "KWSDL" );
job->addMetaData( "content-type", "Content-Type: text/xml; charset=utf-8" );
- connect( job, TQT_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ), this, TQT_SLOT( slotData( TDEIO::Job*, const TQByteArray& ) ) );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), this, TQT_SLOT( slotResult( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ), this, TQ_SLOT( slotData( TDEIO::Job*, const TQByteArray& ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), this, TQ_SLOT( slotResult( TDEIO::Job* ) ) );
}
void Transport::slotData( TDEIO::Job*, const TQByteArray &data )
diff --git a/kode/kwsdl/tests/google/transport.h b/kode/kwsdl/tests/google/transport.h
index a0873e26..cfb8a6c1 100644
--- a/kode/kwsdl/tests/google/transport.h
+++ b/kode/kwsdl/tests/google/transport.h
@@ -29,7 +29,7 @@
class Transport : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kode/kwsdl/typemapper.cpp b/kode/kwsdl/typemapper.cpp
index 3ec0a20a..88842ece 100644
--- a/kode/kwsdl/typemapper.cpp
+++ b/kode/kwsdl/typemapper.cpp
@@ -33,21 +33,21 @@ using namespace KWSDL;
TypeMapper::TypeMapper()
{
- mMap.insert( "any", TypeInfo( "any", TQSTRING_OBJECT_NAME_STRING, "tqstring.h" ) );
- mMap.insert( "anyURI", TypeInfo( "anyUri", TQSTRING_OBJECT_NAME_STRING, "tqstring.h" ) );
- mMap.insert( "base64Binary", TypeInfo( "base64Binary", TQBYTEARRAY_OBJECT_NAME_STRING, "tqcstring.h" ) );
- mMap.insert( "binary", TypeInfo( "binary", TQBYTEARRAY_OBJECT_NAME_STRING, "tqcstring.h" ) );
+ mMap.insert( "any", TypeInfo( "any", "TQString", "tqstring.h" ) );
+ mMap.insert( "anyURI", TypeInfo( "anyUri", "TQString", "tqstring.h" ) );
+ mMap.insert( "base64Binary", TypeInfo( "base64Binary", "TQByteArray", "tqcstring.h" ) );
+ mMap.insert( "binary", TypeInfo( "binary", "TQByteArray", "tqcstring.h" ) );
mMap.insert( "boolean", TypeInfo( "boolean", "bool", "" ) );
mMap.insert( "byte", TypeInfo( "byte", "char", "" ) );
mMap.insert( "date", TypeInfo( "date", "TQDate", "tqdatetime.h" ) );
mMap.insert( "dateTime", TypeInfo( "dateTime", "TQDateTime", "tqdatetime.h" ) );
mMap.insert( "decimal", TypeInfo( "decimal", "float", "" ) );
mMap.insert( "double", TypeInfo( "double", "double", "" ) );
- mMap.insert( "duration", TypeInfo( "duration", TQSTRING_OBJECT_NAME_STRING, "tqstring.h" ) ); // TODO: add duration class
+ mMap.insert( "duration", TypeInfo( "duration", "TQString", "tqstring.h" ) ); // TODO: add duration class
mMap.insert( "int", TypeInfo( "int", "int", "" ) );
- mMap.insert( "language", TypeInfo( "language", TQSTRING_OBJECT_NAME_STRING, "tqstring.h" ) );
+ mMap.insert( "language", TypeInfo( "language", "TQString", "tqstring.h" ) );
mMap.insert( "short", TypeInfo( "short", "short", "" ) );
- mMap.insert( "string", TypeInfo( "string", TQSTRING_OBJECT_NAME_STRING, "tqstring.h" ) );
+ mMap.insert( "string", TypeInfo( "string", "TQString", "tqstring.h" ) );
mMap.insert( "unsignedByte", TypeInfo( "unsignedByte", "unsigned char", "" ) );
mMap.insert( "unsignedInt", TypeInfo( "unsignedInt", "unsigned int", "" ) );
}
@@ -170,7 +170,7 @@ TQMap<TQString, TQString> TypeMapper::headerDec( const Schema::Element *element
TQMap<TQString, TypeInfo>::ConstIterator it = mMap.find( typeName );
if ( it != mMap.end() ) {
if ( !it.data().header.isEmpty() ) {
- if ( it.data().type == TQBYTEARRAY_OBJECT_NAME_STRING )
+ if ( it.data().type == "TQByteArray" )
headers.insert( it.data().header, TQString() );
else
headers.insert( it.data().header, it.data().type );
@@ -213,7 +213,7 @@ TQMap<TQString, TQString> TypeMapper::headerDec( const Schema::Attribute *attrib
TQMap<TQString, TypeInfo>::ConstIterator it = mMap.find( typeName );
if ( it != mMap.end() ) {
if ( !it.data().header.isEmpty() ) {
- if ( it.data().type == TQBYTEARRAY_OBJECT_NAME_STRING )
+ if ( it.data().type == "TQByteArray" )
headers.insert( it.data().header, TQString() );
else
headers.insert( it.data().header, it.data().type );
@@ -252,7 +252,7 @@ TQMap<TQString, TQString> TypeMapper::headerDec( const TQString &typeName ) cons
TQMap<TQString, TypeInfo>::ConstIterator it = mMap.find( typeName );
if ( it != mMap.end() ) {
if ( !it.data().header.isEmpty() ) {
- if ( it.data().type == TQBYTEARRAY_OBJECT_NAME_STRING )
+ if ( it.data().type == "TQByteArray" )
headers.insert( it.data().header, TQString() );
else
headers.insert( it.data().header, it.data().type );
diff --git a/kode/kxml_compiler/creator.cpp b/kode/kxml_compiler/creator.cpp
index bc330eaf..26eb2e22 100644
--- a/kode/kxml_compiler/creator.cpp
+++ b/kode/kxml_compiler/creator.cpp
@@ -95,7 +95,7 @@ void Creator::createProperty( KODE::Class &c, const TQString &type,
void Creator::createElementFunctions( KODE::Class &c, Element *e )
{
if ( e->hasText ) {
- createProperty( c, TQSTRING_OBJECT_NAME_STRING, e->name );
+ createProperty( c, "TQString", e->name );
if ( mXmlParserType == XmlParserCustomExternal ) {
createTextElementParserCustom( c, e );
}
@@ -150,7 +150,7 @@ void Creator::createClass( Element *element )
itA != element->attributes.end(); ++itA ) {
Attribute *a = *itA;
- createProperty( c, TQSTRING_OBJECT_NAME_STRING, a->name );
+ createProperty( c, "TQString", a->name );
}
TQValueList<Element *>::ConstIterator itE;
@@ -176,7 +176,7 @@ void Creator::createClass( Element *element )
void Creator::createElementWriter( KODE::Class &c, Element *element )
{
- KODE::Function writer( "writeElement", TQSTRING_OBJECT_NAME_STRING );
+ KODE::Function writer( "writeElement", "TQString" );
KODE::Code code;
@@ -268,7 +268,7 @@ void Creator::createElementParser( KODE::Class &c, Element *e )
void Creator::createTextElementParserCustom( KODE::Class &, Element *e )
{
- KODE::Function parser( "parseElement" + upperFirst( e->name ), TQSTRING_OBJECT_NAME_STRING );
+ KODE::Function parser( "parseElement" + upperFirst( e->name ), "TQString" );
KODE::Code code;
@@ -637,7 +637,7 @@ void Creator::createListTypedefs()
void Creator::createIndenter( KODE::File &file )
{
- KODE::Function indenter( "indent", TQSTRING_OBJECT_NAME_STRING );
+ KODE::Function indenter( "indent", "TQString" );
indenter.addArgument( "int n = 0" );
KODE::Code code;
@@ -724,7 +724,7 @@ void Creator::createFileParserCustom( Element *element )
mParserClass.addInclude( "kdebug.h" );
mParserClass.addMemberVariable( KODE::MemberVariable( "mBuffer",
- TQSTRING_OBJECT_NAME_STRING ) );
+ "TQString" ) );
mParserClass.addMemberVariable( KODE::MemberVariable( "mRunning",
"unsigned int" ) );
diff --git a/kode/license.h b/kode/license.h
index 6474babc..e73be134 100644
--- a/kode/license.h
+++ b/kode/license.h
@@ -22,7 +22,7 @@
#define KODE_LICENSE_H
#include <tqstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KODE {
diff --git a/kode/membervariable.h b/kode/membervariable.h
index fe5e889d..f75ab0f1 100644
--- a/kode/membervariable.h
+++ b/kode/membervariable.h
@@ -25,7 +25,7 @@
#include <tqvaluelist.h>
#include <tqstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KODE {
diff --git a/kode/printer.cpp b/kode/printer.cpp
index 7808f290..7052382f 100644
--- a/kode/printer.cpp
+++ b/kode/printer.cpp
@@ -200,7 +200,7 @@ TQString Printer::classHeader( const Class &c )
code.indent();
if ( c.isTQObject() ) {
- code += "Q_OBJECT";
+ code += "TQ_OBJECT";
code.newLine();
code += "";
code.newLine();
diff --git a/kode/printer.h b/kode/printer.h
index 1d3f103e..ceb0f7a9 100644
--- a/kode/printer.h
+++ b/kode/printer.h
@@ -26,7 +26,7 @@
#include "style.h"
#include "automakefile.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqvaluelist.h>
#include <tqstring.h>
#include <tqstringlist.h>
diff --git a/kode/statemachine.h b/kode/statemachine.h
index 5c977293..a3490592 100644
--- a/kode/statemachine.h
+++ b/kode/statemachine.h
@@ -25,7 +25,7 @@
#include <tqstring.h>
#include <tqmap.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KODE {
diff --git a/kode/style.h b/kode/style.h
index 26921f71..42b5fe18 100644
--- a/kode/style.h
+++ b/kode/style.h
@@ -27,7 +27,7 @@
#include <tqstring.h>
#include <tqstringlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KODE {
diff --git a/kode/typedef.h b/kode/typedef.h
index 9cc69635..a985c5fb 100644
--- a/kode/typedef.h
+++ b/kode/typedef.h
@@ -22,7 +22,7 @@
#define KODE_TYPEDEF_H
#include <tqvaluelist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KODE {
diff --git a/kode/variable.h b/kode/variable.h
index 1eda384f..252d7b40 100644
--- a/kode/variable.h
+++ b/kode/variable.h
@@ -24,7 +24,7 @@
#include <tqvaluelist.h>
#include <tqstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KODE {
diff --git a/konsolekalendar/CMakeL10n.txt b/konsolekalendar/CMakeL10n.txt
index 0edda372..da5b2828 100644
--- a/konsolekalendar/CMakeL10n.txt
+++ b/konsolekalendar/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_create_template( "konsolekalendar" )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/konsolekalendar.desktop/"
+ SOURCES konsolekalendar.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/konsolekalendar/CMakeLists.txt b/konsolekalendar/CMakeLists.txt
index 8738d401..d2952ba1 100644
--- a/konsolekalendar/CMakeLists.txt
+++ b/konsolekalendar/CMakeLists.txt
@@ -32,7 +32,7 @@ link_directories(
##### other data ################################
-install( FILES konsolekalendar.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+tde_create_translated_desktop( konsolekalendar.desktop )
##### helper ####################################
diff --git a/konsolekalendar/konsolekalendar.cpp b/konsolekalendar/konsolekalendar.cpp
index 535478cf..775f7b2d 100644
--- a/konsolekalendar/konsolekalendar.cpp
+++ b/konsolekalendar/konsolekalendar.cpp
@@ -272,11 +272,11 @@ bool KonsoleKalendar::showInstance()
} else {
if ( firstdate == lastdate ) {
title = i18n( "Events: %1" )
- .arg( firstdate.toString( Qt::TextDate ) );
+ .arg( firstdate.toString( TQt::TextDate ) );
} else {
title = i18n( "Events: %1 - %2" )
- .arg( firstdate.toString( Qt::TextDate ) )
- .arg( lastdate.toString( Qt::TextDate ) );
+ .arg( firstdate.toString( TQt::TextDate ) )
+ .arg( lastdate.toString( TQt::TextDate ) );
}
htmlSettings.setEventView( true );
}
@@ -439,11 +439,11 @@ void KonsoleKalendar::printSpecs()
<< endl;
cout << i18n( " Begin: %1" ).
- arg( m_variables->getStartDateTime().toString( Qt::TextDate ) ).local8Bit().data()
+ arg( m_variables->getStartDateTime().toString( TQt::TextDate ) ).local8Bit().data()
<< endl;
cout << i18n( " End: %1" ).
- arg( m_variables->getEndDateTime().toString( Qt::TextDate ) ).local8Bit().data()
+ arg( m_variables->getEndDateTime().toString( TQt::TextDate ) ).local8Bit().data()
<< endl;
if ( m_variables->getFloating() == true ) {
diff --git a/konsolekalendar/konsolekalendar.desktop b/konsolekalendar/konsolekalendar.desktop
index 179fd81b..a13e1ace 100644
--- a/konsolekalendar/konsolekalendar.desktop
+++ b/konsolekalendar/konsolekalendar.desktop
@@ -1,25 +1,6 @@
[Desktop Entry]
Name=KonsoleKalendar
-Name[af]=Konsole Kalender
-Name[cs]=Konzolový kalendář
-Name[de]=Konsolen-Kalender
-Name[eo]=KonzolKalendaro
-Name[fy]=Konsole-aginda
-Name[hi]=कंसोल-कैलेंडर
-Name[hu]=Konsole-naptár
-Name[ja]=コンソールカレンダー
-Name[mk]=КонзоленКалендар
-Name[ms]=Kalendar Konsole
-Name[nb]=KonsoleKalender
-Name[nds]=Konsole-Kalenner
-Name[ne]=कन्सोल क्यालेन्डर
-Name[nl]=Konsole-agenda
-Name[nn]=KonsoleKalender
-Name[ro]=Calendar de consolă
-Name[sr]=Конзолни календар
-Name[sr@Latn]=Konzolni kalendar
-Name[ta]=கான்சோல் நாள்காட்டி
-Name[uk]=Календар для консолі
+
Exec=kdialog --sorry "konsolekalendar is a command-line only program. Please read the handbook at help:/konsolekalendar for more info."
Icon=konsolekalendar
Type=Application
diff --git a/konsolekalendar/konsolekalendaradd.cpp b/konsolekalendar/konsolekalendaradd.cpp
index d7b2774b..75828ed3 100644
--- a/konsolekalendar/konsolekalendaradd.cpp
+++ b/konsolekalendar/konsolekalendaradd.cpp
@@ -146,11 +146,11 @@ void KonsoleKalendarAdd::printSpecs()
<< endl;
cout << i18n( " Begin: %1" ).
- arg( m_variables->getStartDateTime().toString( Qt::TextDate ) ).local8Bit().data()
+ arg( m_variables->getStartDateTime().toString( TQt::TextDate ) ).local8Bit().data()
<< endl;
cout << i18n( " End: %1" ).
- arg( m_variables->getEndDateTime().toString( Qt::TextDate ) ).local8Bit().data()
+ arg( m_variables->getEndDateTime().toString( TQt::TextDate ) ).local8Bit().data()
<< endl;
if ( m_variables->getFloating() == true ) {
diff --git a/konsolekalendar/konsolekalendarchange.cpp b/konsolekalendar/konsolekalendarchange.cpp
index 7c9e3b5e..820f11b4 100644
--- a/konsolekalendar/konsolekalendarchange.cpp
+++ b/konsolekalendar/konsolekalendarchange.cpp
@@ -136,11 +136,11 @@ void KonsoleKalendarChange::printSpecs( Event *event )
<< endl;
cout << i18n( " Begin: %1" ).
- arg( event->dtStart().toString( Qt::TextDate ) ).local8Bit().data()
+ arg( event->dtStart().toString( TQt::TextDate ) ).local8Bit().data()
<< endl;
cout << i18n( " End: %1" ).
- arg( event->dtEnd().toString( Qt::TextDate ) ).local8Bit().data()
+ arg( event->dtEnd().toString( TQt::TextDate ) ).local8Bit().data()
<< endl;
cout << i18n( " Desc: %1" ).
@@ -163,11 +163,11 @@ void KonsoleKalendarChange::printSpecs()
<< endl;
cout << i18n( " Begin: %1" ).
- arg( m_variables->getStartDateTime().toString( Qt::TextDate ) ).local8Bit().data()
+ arg( m_variables->getStartDateTime().toString( TQt::TextDate ) ).local8Bit().data()
<< endl;
cout << i18n( " End: %1" ).
- arg( m_variables->getEndDateTime().toString( Qt::TextDate ) ).local8Bit().data()
+ arg( m_variables->getEndDateTime().toString( TQt::TextDate ) ).local8Bit().data()
<< endl;
cout << i18n( " Desc: %1" ).
diff --git a/konsolekalendar/konsolekalendardelete.cpp b/konsolekalendar/konsolekalendardelete.cpp
index 4da76100..1a274d36 100644
--- a/konsolekalendar/konsolekalendardelete.cpp
+++ b/konsolekalendar/konsolekalendardelete.cpp
@@ -101,11 +101,11 @@ void KonsoleKalendarDelete::printSpecs( Event *event )
<< endl;
cout << i18n( " Begin: %1" ).
- arg( event->dtStart().toString( Qt::TextDate ) ).local8Bit().data()
+ arg( event->dtStart().toString( TQt::TextDate ) ).local8Bit().data()
<< endl;
cout << i18n( " End: %1" ).
- arg( event->dtEnd().toString( Qt::TextDate ) ).local8Bit().data()
+ arg( event->dtEnd().toString( TQt::TextDate ) ).local8Bit().data()
<< endl;
cout << i18n( " Desc: %1" ).
diff --git a/konsolekalendar/konsolekalendarepoch.cpp b/konsolekalendar/konsolekalendarepoch.cpp
index 6aebd9a9..a58ad3a5 100644
--- a/konsolekalendar/konsolekalendarepoch.cpp
+++ b/konsolekalendar/konsolekalendarepoch.cpp
@@ -53,7 +53,7 @@ KonsoleKalendarEpoch::~KonsoleKalendarEpoch()
TQDateTime KonsoleKalendarEpoch::epoch2TQDateTime( uint epoch )
{
TQDateTime dt;
- dt.setTime_t( epoch, Qt::UTC );
+ dt.setTime_t( epoch, TQt::UTC );
return( dt );
}
@@ -64,8 +64,8 @@ uint KonsoleKalendarEpoch::TQDateTime2epoch( TQDateTime dt )
// SORRY QT DOESN'T HANDLE DAYLIGHT SAVINGS TIME.
// Compute #seconds to subtract for local timezone difference from UTC.
- int offset = TQDateTime::currentDateTime( Qt::UTC ).toTime_t()
- - TQDateTime::currentDateTime( Qt::LocalTime ).toTime_t();
+ int offset = TQDateTime::currentDateTime( TQt::UTC ).toTime_t()
+ - TQDateTime::currentDateTime( TQt::LocalTime ).toTime_t();
return( dt.toTime_t() - offset );
}
diff --git a/konsolekalendar/main.cpp b/konsolekalendar/main.cpp
index fc805764..a68af033 100644
--- a/konsolekalendar/main.cpp
+++ b/konsolekalendar/main.cpp
@@ -472,7 +472,7 @@ int main( int argc, char *argv[] )
<< "(" << option << ")"
<< endl;
- startdate = TQDate::fromString( option, Qt::ISODate );
+ startdate = TQDate::fromString( option, TQt::ISODate );
if ( !startdate.isValid() ) {
cout << i18n( "Invalid Start Date Specified: %1" ).
arg( option ).local8Bit().data()
@@ -497,7 +497,7 @@ int main( int argc, char *argv[] )
<< endl;
if ( option.upper() != "FLOAT" ) {
- starttime = TQTime::fromString( option, Qt::ISODate );
+ starttime = TQTime::fromString( option, TQt::ISODate );
if ( !starttime.isValid() ) {
cout << i18n( "Invalid Start Time Specified: %1" ).
arg( option ).local8Bit().data()
@@ -527,7 +527,7 @@ int main( int argc, char *argv[] )
<< "(" << option << ")"
<< endl;
- enddate = TQDate::fromString( option, Qt::ISODate );
+ enddate = TQDate::fromString( option, TQt::ISODate );
if ( !enddate.isValid() ) {
cout << i18n( "Invalid End Date Specified: %1" ).
arg( option ).local8Bit().data()
@@ -579,7 +579,7 @@ int main( int argc, char *argv[] )
<< endl;
if ( option.upper() != "FLOAT" ) {
- endtime = TQTime::fromString( option, Qt::ISODate );
+ endtime = TQTime::fromString( option, TQt::ISODate );
if ( !endtime.isValid() ) {
cout << i18n( "Invalid End Time Specified: %1" ).
arg( option ).local8Bit().data()
@@ -854,10 +854,10 @@ int main( int argc, char *argv[] )
// Some more debug prints
kdDebug() << "main | datetimestamp | StartDate="
- << startdatetime.toString( Qt::TextDate )
+ << startdatetime.toString( TQt::TextDate )
<< endl;
kdDebug() << "main | datetimestamp | EndDate="
- << enddatetime.toString( Qt::TextDate )
+ << enddatetime.toString( TQt::TextDate )
<< endl;
/***************************************************************************
diff --git a/kontact/CMakeL10n.txt b/kontact/CMakeL10n.txt
index bbfad480..1df9203a 100644
--- a/kontact/CMakeL10n.txt
+++ b/kontact/CMakeL10n.txt
@@ -3,3 +3,23 @@
tde_l10n_create_template( "kontact" )
tde_l10n_auto_add_subdirectories( )
+
+file(
+ GLOB_RECURSE _desktops
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/*.desktop
+)
+list( SORT _desktops )
+
+file(
+ GLOB_RECURSE _profiles
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/*profile.cfg
+)
+list( SORT _profiles )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/kontact-desktops/"
+ SOURCES_DESKTOP ${_desktops} ${_profiles} src/kontact.setdlg
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/kontact/DESIGN.dcopinteraction b/kontact/DESIGN.dcopinteraction
index 950b9eea..f0350627 100644
--- a/kontact/DESIGN.dcopinteraction
+++ b/kontact/DESIGN.dcopinteraction
@@ -21,8 +21,8 @@ Here are some code snippets that must go into the part (A) that wants to use "Fo
* Constructor:
m_foo_stub = 0L;
kapp->dcopClient()->setNotifications( true );
- connect( kapp->dcopClient(), SIGNAL( applicationRemoved( const QCString&)),
- this, SLOT( unregisteredFromDCOP( const QCString& )) );
+ connect( kapp->dcopClient(), TQ_SIGNAL( applicationRemoved( const QCString&)),
+ this, TQ_SLOT( unregisteredFromDCOP( const QCString& )) );
* Destructor:
kapp->dcopClient()->setNotifications( false );
@@ -57,7 +57,7 @@ In the kontact plugin
* Don't use dcopClient() until the part is loaded
* After loading the part, you might want to create a DCOP stub to use some
of its methods (do both in a loadPart() method, e.g.).
-* Implement createDCOPInterface( const QString& serviceType ), to
+* Implement createDCOPInterface( const TQString& serviceType ), to
load the part if the serviceType is one provided by it.
See KAddressbookPlugin (plugins/kaddressbook/*) for a working example.
@@ -74,7 +74,7 @@ See e.g. tdepim/kaddressbook/kaddressbook.desktop
Designing DCOP interfaces
=========================
-Porting the kroupware Q_SIGNALS/Q_SLOTS to DCOP requires some changes.
+Porting the kroupware signals/slots to DCOP requires some changes.
For instance any non-const reference (such as those used for returning
values to the caller) has to be changed. If there is more than one
value to be returned, you need to
diff --git a/kontact/Thoughts b/kontact/Thoughts
index c4332425..a7601453 100644
--- a/kontact/Thoughts
+++ b/kontact/Thoughts
@@ -367,7 +367,7 @@ h: there is something else broken IMHO
Summary View
------------
h: How would one best integrate a summary view into kontact?
-h: a) add a virtual QWidget *summary(const QDateTime&, QWidget* parent );
+h: a) add a virtual TQWidget *summary(const QDateTime&, TQWidget* parent );
h: to get a summary widget for a day?
h: b) use some sort of XML to UI to represent the summary informations
h: c) have a stand a lone part which opens the PIM data seperately? ( How
diff --git a/kontact/interfaces/CMakeLists.txt b/kontact/interfaces/CMakeLists.txt
index 94446b1e..f7e630e5 100644
--- a/kontact/interfaces/CMakeLists.txt
+++ b/kontact/interfaces/CMakeLists.txt
@@ -31,9 +31,11 @@ install( FILES
##### other data ################################
-install( FILES
- kontactplugin.desktop
- DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE kontactplugin.desktop
+ DESTINATION ${SERVICETYPES_INSTALL_DIR}
+ PO_DIR kontact-desktops
+)
##### kpinterfaces (shared) #########################
diff --git a/kontact/interfaces/core.cpp b/kontact/interfaces/core.cpp
index edaf86da..859e76fa 100644
--- a/kontact/interfaces/core.cpp
+++ b/kontact/interfaces/core.cpp
@@ -43,7 +43,7 @@ Core::Core( TQWidget *parent, const char *name )
d = new Private;
TQTimer* timer = new TQTimer( this );
mLastDate = TQDate::currentDate();
- connect(timer, TQT_SIGNAL( timeout() ), TQT_SLOT( checkNewDay() ) );
+ connect(timer, TQ_SIGNAL( timeout() ), TQ_SLOT( checkNewDay() ) );
timer->start( 1000*60 );
}
@@ -66,13 +66,13 @@ KParts::ReadOnlyPart *Core::createPart( const char *libname )
KParts::ReadOnlyPart *part =
KParts::ComponentFactory::
createPartInstanceFromLibrary<KParts::ReadOnlyPart>
- ( libname, this, 0, TQT_TQOBJECT(this), "kontact", TQStringList(), &error );
+ ( libname, this, 0, this, "kontact", TQStringList(), &error );
KParts::ReadOnlyPart *pimPart = dynamic_cast<KParts::ReadOnlyPart*>( part );
if ( pimPart ) {
mParts.insert( libname, pimPart );
- QObject::connect( pimPart, TQT_SIGNAL( destroyed( TQObject * ) ),
- TQT_SLOT( slotPartDestroyed( TQObject * ) ) );
+ TQObject::connect( pimPart, TQ_SIGNAL( destroyed( TQObject * ) ),
+ TQ_SLOT( slotPartDestroyed( TQObject * ) ) );
} else {
// TODO move to KParts::ComponentFactory
switch( error ) {
@@ -126,4 +126,3 @@ TQString Core::lastErrorMessage() const
}
#include "core.moc"
-// vim: sw=2 sts=2 et tw=80
diff --git a/kontact/interfaces/core.h b/kontact/interfaces/core.h
index 65e939b9..7317febc 100644
--- a/kontact/interfaces/core.h
+++ b/kontact/interfaces/core.h
@@ -24,7 +24,7 @@
#define KONTACT_CORE_H
#include <tqdatetime.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tdeparts/mainwindow.h>
#include <tdeparts/part.h>
@@ -40,7 +40,7 @@ class Plugin;
*/
class KDE_EXPORT Core : public KParts::MainWindow
{
- Q_OBJECT
+ TQ_OBJECT
public:
virtual ~Core();
@@ -99,5 +99,3 @@ class KDE_EXPORT Core : public KParts::MainWindow
}
#endif
-
-// vim: sw=2 sts=2 et tw=80
diff --git a/kontact/interfaces/kontactplugin.desktop b/kontact/interfaces/kontactplugin.desktop
index fc4f17cb..1ff8657c 100644
--- a/kontact/interfaces/kontactplugin.desktop
+++ b/kontact/interfaces/kontactplugin.desktop
@@ -2,58 +2,6 @@
Type=ServiceType
X-TDE-ServiceType=Kontact/Plugin
Name=Kontact Plugin
-Name[af]=Kontact inprop module
-Name[ar]=قابس Kontact
-Name[be]=Дапаўненне Кантакту
-Name[bg]=Приставка на Kontact
-Name[br]=Lugent Kontact
-Name[bs]=Dodatak za Kontact
-Name[ca]=Endollable Kontact
-Name[cs]=Modul aplikace Kontact
-Name[cy]=Ategyn Kontact
-Name[da]=Kontact-plugin
-Name[de]=Kontact-Modul
-Name[el]=Πρόσθετο Kontact
-Name[es]=Plugin Kontact
-Name[et]=Kontacti plugin
-Name[eu]=Kontact plugin-a
-Name[fa]=وصلۀ Kontact
-Name[fi]=Kontact-liitännäinen
-Name[fr]=Module Kontact
-Name[ga]=Breiseán Kontact
-Name[gl]=Extensión de Kontact
-Name[he]=תוסף Kontact
-Name[hi]=कॉन्टेक्ट प्लगइन
-Name[hu]=Kontact-bővítőmodul
-Name[is]=Kontact íforrit
-Name[it]=Plugin Kontact
-Name[ja]=Kontact プラグイン
-Name[kk]=Kontact модулі
-Name[km]=កម្មវិធី​ជំនួយ Kontact
-Name[lt]=Kontact priedas
-Name[mk]=Приклучок за Контакт
-Name[ms]=Plugin Kontact
-Name[nb]=Kontact-programtillegg
-Name[nds]=Kontact-Moduul
-Name[ne]=सम्पर्क प्लगइन
-Name[nn]=Kontact-programtillegg
-Name[pl]=Wtyczka Kontakt
-Name[pt]='Plugin' do Kontact
-Name[pt_BR]=Plug-in do Kontact
-Name[ro]=Modul Kontact
-Name[ru]=Модуль Kontact
-Name[se]=Kontact-lassemoduvla
-Name[sl]=Vstavek za Kontact
-Name[sr]=Прикључак Kontact-а
-Name[sr@Latn]=Priključak Kontact-a
-Name[sv]=Kontact-insticksprogram
-Name[ta]=சொருகுப்பொருளை தொடர்புக்கொள்
-Name[tg]=Модули Kontact
-Name[tr]=Kontact Eklentisi
-Name[uk]=Втулок Kontact
-Name[uz]=Kontact учун плагин
-Name[zh_CN]=Kontact 插件
-Name[zh_TW]=Kontack 外掛程式
[PropertyDef::X-TDE-KontactPluginVersion]
Type=int
diff --git a/kontact/interfaces/plugin.cpp b/kontact/interfaces/plugin.cpp
index ed81dcb6..71364b6a 100644
--- a/kontact/interfaces/plugin.cpp
+++ b/kontact/interfaces/plugin.cpp
@@ -147,7 +147,7 @@ KParts::ReadOnlyPart *Plugin::part()
if ( !d->part ) {
d->part = createPart();
if ( d->part ) {
- connect( d->part, TQT_SIGNAL( destroyed() ), TQT_SLOT( partDestroyed() ) );
+ connect( d->part, TQ_SIGNAL( destroyed() ), TQ_SLOT( partDestroyed() ) );
core()->partLoaded( this, d->part );
}
}
@@ -255,5 +255,3 @@ void Plugin::virtual_hook( int, void* ) {
}
#include "plugin.moc"
-
-// vim: sw=2 et sts=2 tw=80
diff --git a/kontact/interfaces/plugin.h b/kontact/interfaces/plugin.h
index 3d8c66cf..af7cbfa7 100644
--- a/kontact/interfaces/plugin.h
+++ b/kontact/interfaces/plugin.h
@@ -26,7 +26,7 @@
#include <tqobject.h>
#include <kxmlguiclient.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqptrlist.h>
class TQStringList;
@@ -57,7 +57,7 @@ class Summary;
*/
class KDE_EXPORT Plugin : public TQObject, virtual public KXMLGUIClient
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/kontact/interfaces/summary.cpp b/kontact/interfaces/summary.cpp
index 6192dd4c..c48e7889 100644
--- a/kontact/interfaces/summary.cpp
+++ b/kontact/interfaces/summary.cpp
@@ -82,14 +82,14 @@ void Summary::mousePressEvent( TQMouseEvent *event )
void Summary::mouseMoveEvent( TQMouseEvent *event )
{
- if ( (event->state() & Qt::LeftButton) &&
+ if ( (event->state() & TQt::LeftButton) &&
(event->pos() - mDragStartPoint).manhattanLength() > 4 ) {
TQDragObject *drag = new TQTextDrag( "", this, "SummaryWidgetDrag" );
TQPixmap pm = TQPixmap::grabWidget( this );
if ( pm.width() > 300 )
- pm = pm.convertToImage().smoothScale( 300, 300, TQ_ScaleMin );
+ pm = pm.convertToImage().smoothScale( 300, 300, TQImage::ScaleMin );
TQPainter painter;
painter.begin( &pm );
diff --git a/kontact/interfaces/summary.h b/kontact/interfaces/summary.h
index 961c4b07..945395c8 100644
--- a/kontact/interfaces/summary.h
+++ b/kontact/interfaces/summary.h
@@ -23,7 +23,7 @@
#include <tqwidget.h>
#include <tqpixmap.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KStatusBar;
@@ -35,7 +35,7 @@ namespace Kontact
*/
class KDE_EXPORT Summary : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/interfaces/uniqueapphandler.cpp b/kontact/interfaces/uniqueapphandler.cpp
index 98a5d45b..2ad0f638 100644
--- a/kontact/interfaces/uniqueapphandler.cpp
+++ b/kontact/interfaces/uniqueapphandler.cpp
@@ -156,8 +156,8 @@ UniqueAppWatcher::UniqueAppWatcher( UniqueAppHandlerFactoryBase* factory, Plugin
if ( mRunningStandalone ) {
kapp->dcopClient()->setNotifications( true );
- connect( kapp->dcopClient(), TQT_SIGNAL( applicationRemoved( const TQCString& ) ),
- this, TQT_SLOT( unregisteredFromDCOP( const TQCString& ) ) );
+ connect( kapp->dcopClient(), TQ_SIGNAL( applicationRemoved( const TQCString& ) ),
+ this, TQ_SLOT( unregisteredFromDCOP( const TQCString& ) ) );
} else {
mFactory->createHandler( mPlugin );
}
@@ -174,8 +174,8 @@ UniqueAppWatcher::~UniqueAppWatcher()
void UniqueAppWatcher::unregisteredFromDCOP( const TQCString& appId )
{
if ( appId == mPlugin->name() && mRunningStandalone ) {
- disconnect( kapp->dcopClient(), TQT_SIGNAL( applicationRemoved( const TQCString& ) ),
- this, TQT_SLOT( unregisteredFromDCOP( const TQCString& ) ) );
+ disconnect( kapp->dcopClient(), TQ_SIGNAL( applicationRemoved( const TQCString& ) ),
+ this, TQ_SLOT( unregisteredFromDCOP( const TQCString& ) ) );
kdDebug(5601) << k_funcinfo << appId << endl;
mFactory->createHandler( mPlugin );
kapp->dcopClient()->setNotifications( false );
diff --git a/kontact/interfaces/uniqueapphandler.h b/kontact/interfaces/uniqueapphandler.h
index 6ecc2381..bef34d47 100644
--- a/kontact/interfaces/uniqueapphandler.h
+++ b/kontact/interfaces/uniqueapphandler.h
@@ -24,7 +24,7 @@
#include <dcopobject.h>
#include <plugin.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace Kontact
{
@@ -93,7 +93,7 @@ template <class T> class UniqueAppHandlerFactory : public UniqueAppHandlerFactor
*/
class KDE_EXPORT UniqueAppWatcher : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/akregator/CMakeLists.txt b/kontact/plugins/akregator/CMakeLists.txt
index 06744265..1a9c2b8e 100644
--- a/kontact/plugins/akregator/CMakeLists.txt
+++ b/kontact/plugins/akregator/CMakeLists.txt
@@ -25,9 +25,11 @@ link_directories(
##### other data ################################
-install( FILES
- akregatorplugin.desktop akregatorplugin3.2.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/kontact )
+tde_create_translated_desktop(
+ SOURCE akregatorplugin.desktop akregatorplugin3.2.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/kontact
+ PO_DIR kontact-desktops
+)
##### libkontact_akregator (module) #############
diff --git a/kontact/plugins/akregator/akregator_plugin.cpp b/kontact/plugins/akregator/akregator_plugin.cpp
index a7a7fa7a..17cd5862 100644
--- a/kontact/plugins/akregator/akregator_plugin.cpp
+++ b/kontact/plugins/akregator/akregator_plugin.cpp
@@ -49,11 +49,11 @@ K_EXPORT_COMPONENT_FACTORY( libkontact_akregator,
PluginFactory( "kontact_akregator" ) )
AkregatorPlugin::AkregatorPlugin( Kontact::Core *core, const char *, const TQStringList& )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), "akregator" ), m_stub(0)
+ : Kontact::Plugin( core, core, "akregator" ), m_stub(0)
{
setInstance( PluginFactory::instance() );
- insertNewAction( new TDEAction( i18n( "New Feed..." ), "bookmark_add", CTRL+SHIFT+Key_F, this, TQT_SLOT( addFeed() ), actionCollection(), "feed_new" ) );
+ insertNewAction( new TDEAction( i18n( "New Feed..." ), "bookmark_add", CTRL+SHIFT+Key_F, this, TQ_SLOT( addFeed() ), actionCollection(), "feed_new" ) );
m_uniqueAppWatcher = new Kontact::UniqueAppWatcher(
new Kontact::UniqueAppHandlerFactory<Akregator::UniqueAppHandler>(), this );
@@ -89,7 +89,7 @@ MyBasePart* AkregatorPlugin::createPart()
{
MyBasePart* p = loadPart();
- connect(p, TQT_SIGNAL(showPart()), this, TQT_SLOT(showPart()));
+ connect(p, TQ_SIGNAL(showPart()), this, TQ_SLOT(showPart()));
m_stub = new Akregator::AkregatorPartIface_stub( dcopClient(), "akregator",
"AkregatorIface" );
m_stub->openStandardFeedList();
diff --git a/kontact/plugins/akregator/akregator_plugin.h b/kontact/plugins/akregator/akregator_plugin.h
index 041d7a97..324d8ca8 100644
--- a/kontact/plugins/akregator/akregator_plugin.h
+++ b/kontact/plugins/akregator/akregator_plugin.h
@@ -50,7 +50,7 @@ class UniqueAppHandler : public Kontact::UniqueAppHandler
class AkregatorPlugin : public Kontact::Plugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
AkregatorPlugin( Kontact::Core *core, const char *name,
diff --git a/kontact/plugins/akregator/akregatorplugin.desktop b/kontact/plugins/akregator/akregatorplugin.desktop
index 48a690ac..1f8b91b3 100644
--- a/kontact/plugins/akregator/akregatorplugin.desktop
+++ b/kontact/plugins/akregator/akregatorplugin.desktop
@@ -13,66 +13,6 @@ X-TDE-PluginInfo-Version=1.0b2
X-TDE-PluginInfo-License=GPL
X-TDE-PluginInfo-EnabledByDefault=true
-Comment=Feed Reader Component (Akregator Plugin)
-Comment[bg]=Приставка за Akregator
-Comment[ca]=Component lector d'enllaços (endollable de l'Akregator)
-Comment[da]=Feed-læserkomponent (Akregator-plugin)
-Comment[de]=Feedreader Komponente
-Comment[el]=Συστατικό ανάγνωσης ροών (Πρόσθετο του Akregator)
-Comment[et]=Uudistevoogude plugin (Akregator)
-Comment[it]=Componente lettore fonti (plugin Akregator)
-Comment[ja]=フィードリーダーコンポーネント (Akregator プラグイン)
-Comment[nds]=Stroomleser-Komponent (Akregator-Moduul)
-Comment[nl]=Component om feeds te lezen (Akregator-plugin)
-Comment[pl]=Składnik do czytania niusów (wtyczka Akregator)
-Comment[sr]=Компонента читања довода (прикључак Akregator-а)
-Comment[sr@Latn]=Komponenta čitanja dovoda (priključak Akregator-a)
-Comment[sv]=Komponent för läsning av kanaler (Akregator-insticksprogram)
-Comment[zh_CN]=新闻源阅读器组件(Akregator 插件)
-Comment[zh_TW]=Feed 閱讀器組件(Akregator 外掛程式)
Name=Feeds
-Name[af]=Strome
-Name[bg]=Новини
-Name[ca]=Enllaços
-Name[cs]=Kanály
-Name[da]=Kilder
-Name[de]=Feeds
-Name[el]=Ροές
-Name[eo]=Fluoj
-Name[es]=Orígenes
-Name[et]=Uudisevood
-Name[eu]=Iturriak
-Name[fa]=خوراندنها
-Name[fi]=Syötteet
-Name[fr]=Flux
-Name[fy]=Nijsoanfier
-Name[ga]=Fothaí
-Name[gl]=Fontes
-Name[he]=ערוצים
-Name[hu]=Hírforrások
-Name[is]=Fréttastraumar
-Name[it]=Fonti
-Name[ja]=フィード
-Name[kk]=Ақпарлар
-Name[km]=មតិព័ត៌មាន
-Name[lt]=Kanalai
-Name[ms]=Suapan
-Name[nb]=Kanaler
-Name[nds]=Narichtenströöm
-Name[ne]=फिड
-Name[nn]=Kanalar
-Name[pl]=Kanały
-Name[pt]=Fontes
-Name[pt_BR]=Fontes de Notícias
-Name[ru]=Ленты новостей
-Name[sk]=Kŕmitka
-Name[sl]=Viri
-Name[sr]=Доводи
-Name[sr@Latn]=Dovodi
-Name[sv]=Kanaler
-Name[ta]=உள்ளீடுகள்
-Name[tr]=Haberler
-Name[uk]=Подачі
-Name[uz]=Янгиликлар тасмалари
-Name[zh_CN]=种子
+Comment=Feed Reader Component (Akregator Plugin)
diff --git a/kontact/plugins/akregator/akregatorplugin3.2.desktop b/kontact/plugins/akregator/akregatorplugin3.2.desktop
index 13a49ffa..b983d429 100644
--- a/kontact/plugins/akregator/akregatorplugin3.2.desktop
+++ b/kontact/plugins/akregator/akregatorplugin3.2.desktop
@@ -12,97 +12,6 @@ X-TDE-PluginInfo-Version=1.0b2
X-TDE-PluginInfo-License=GPL
X-TDE-PluginInfo-EnabledByDefault=true
-Comment=Akregator Plugin
-Comment[af]=Akregator inprop module
-Comment[bg]=Приставка за Akregator
-Comment[br]=Lugant Akregator
-Comment[ca]=Endollable Akregator
-Comment[cs]=Modul Akregatoru
-Comment[de]=Akregator-Modul
-Comment[el]=Πρόσθετο του Akregator
-Comment[eo]=Akregator-kromaĵo
-Comment[es]=Extensión de Akregator
-Comment[et]=Akregatori plugin
-Comment[eu]=Akregator plugin-a
-Comment[fa]=وصلۀ Akregator
-Comment[fi]=Akregator-liitännäinen
-Comment[fr]=Module pour Akregator
-Comment[fy]=Akregatorplugin
-Comment[ga]=Breiseán Akregator
-Comment[gl]=Extensión para Akregator
-Comment[he]=תוסף עבור Akregator
-Comment[hu]=Akregator bővítőmodul
-Comment[is]=Akregator íforrit
-Comment[it]=Plugin aKregator
-Comment[ja]=Akregator プラグイン
-Comment[kk]=Akregator модулі
-Comment[km]=កម្មវិធី​ជំនួយ Akregator
-Comment[lt]=Akregator priedas
-Comment[mk]=Приклучок за Akregator
-Comment[ms]=Plugin Akregator
-Comment[nb]=Akgregator-programtillegg
-Comment[nds]=Akregator-Moduul
-Comment[ne]=एक्रिगेटर प्लगइन
-Comment[nl]=Akregatorplugin
-Comment[nn]=Akregator-programtillegg
-Comment[pl]=Wtyczka Akregatora
-Comment[pt]='Plugin' Akregator
-Comment[pt_BR]=Plug-in do Akregator
-Comment[ru]=Модуль Akregator
-Comment[sk]=Modul Akregator
-Comment[sl]=Vstavek Akregator
-Comment[sr]=Прикључак Akregator-а
-Comment[sr@Latn]=Priključak Akregator-a
-Comment[sv]=Akregator-insticksprogram
-Comment[ta]=Akregator சொருகுப்பொருள்
-Comment[tr]=Akregator Eklentisi
-Comment[uk]=Втулок Akregator
-Comment[uz]=Akregator плагини
-Comment[zh_CN]=Akregator 插件
-Comment[zh_TW]=Akregator 外掛程式
Name=Feeds
-Name[af]=Strome
-Name[bg]=Новини
-Name[ca]=Enllaços
-Name[cs]=Kanály
-Name[da]=Kilder
-Name[de]=Nachrichten
-Name[el]=Ροές
-Name[eo]=Fluoj
-Name[es]=Orígenes
-Name[et]=Uudisevood
-Name[eu]=Iturriak
-Name[fa]=خوراندنها
-Name[fi]=Syötteet
-Name[fr]=Flux
-Name[fy]=Nijsoanfier
-Name[ga]=Fothaí
-Name[gl]=Fontes
-Name[he]=ערוצים
-Name[hu]=Hírforrások
-Name[is]=Fréttastraumar
-Name[it]=Fonti
-Name[ja]=フィード
-Name[kk]=Ақпарлар
-Name[km]=មតិព័ត៌មាន
-Name[lt]=Kanalai
-Name[ms]=Suapan
-Name[nb]=Kanaler
-Name[nds]=Narichtenströöm
-Name[ne]=फिड
-Name[nn]=Kanalar
-Name[pl]=Kanały
-Name[pt]=Fontes
-Name[pt_BR]=Fontes de Notícias
-Name[ru]=Ленты новостей
-Name[sk]=Kŕmitka
-Name[sl]=Viri
-Name[sr]=Доводи
-Name[sr@Latn]=Dovodi
-Name[sv]=Kanaler
-Name[ta]=உள்ளீடுகள்
-Name[tr]=Haberler
-Name[uk]=Подачі
-Name[uz]=Янгиликлар тасмалари
-Name[zh_CN]=种子
+Comment=Akregator Plugin
diff --git a/kontact/plugins/kaddressbook/CMakeLists.txt b/kontact/plugins/kaddressbook/CMakeLists.txt
index b0ec6fe2..0b3d603c 100644
--- a/kontact/plugins/kaddressbook/CMakeLists.txt
+++ b/kontact/plugins/kaddressbook/CMakeLists.txt
@@ -25,9 +25,11 @@ link_directories(
##### other data ################################
-install( FILES
- kaddressbookplugin.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/kontact )
+tde_create_translated_desktop(
+ SOURCE kaddressbookplugin.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/kontact
+ PO_DIR kontact-desktops
+)
##### libkontact_kaddressbookplugin (module) ####
diff --git a/kontact/plugins/kaddressbook/kaddressbook_plugin.cpp b/kontact/plugins/kaddressbook/kaddressbook_plugin.cpp
index d4852e80..8cdef758 100644
--- a/kontact/plugins/kaddressbook/kaddressbook_plugin.cpp
+++ b/kontact/plugins/kaddressbook/kaddressbook_plugin.cpp
@@ -52,20 +52,20 @@ K_EXPORT_COMPONENT_FACTORY( libkontact_kaddressbookplugin,
KAddressbookPluginFactory( "kontact_kaddressbookplugin" ) )
KAddressbookPlugin::KAddressbookPlugin( Kontact::Core *core, const char *, const TQStringList& )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), "kaddressbook" ),
+ : Kontact::Plugin( core, core, "kaddressbook" ),
mStub( 0 )
{
setInstance( KAddressbookPluginFactory::instance() );
insertNewAction( new TDEAction( i18n( "New Contact..." ), "identity",
- CTRL+SHIFT+Key_C, this, TQT_SLOT( slotNewContact() ), actionCollection(),
+ CTRL+SHIFT+Key_C, this, TQ_SLOT( slotNewContact() ), actionCollection(),
"new_contact" ) );
insertNewAction( new TDEAction( i18n( "&New Distribution List..." ), "kontact_contacts", 0, this,
- TQT_SLOT( slotNewDistributionList() ), actionCollection(), "new_distributionlist" ) );
+ TQ_SLOT( slotNewDistributionList() ), actionCollection(), "new_distributionlist" ) );
insertSyncAction( new TDEAction( i18n( "Synchronize Contacts" ), "reload",
- 0, this, TQT_SLOT( slotSyncContacts() ), actionCollection(),
+ 0, this, TQ_SLOT( slotSyncContacts() ), actionCollection(),
"kaddressbook_sync" ) );
mUniqueAppWatcher = new Kontact::UniqueAppWatcher(
new Kontact::UniqueAppHandlerFactory<KABUniqueAppHandler>(), this );
@@ -213,5 +213,3 @@ int KABUniqueAppHandler::newInstance()
}
#include "kaddressbook_plugin.moc"
-
-// vim: sw=2 sts=2 tw=80 et
diff --git a/kontact/plugins/kaddressbook/kaddressbook_plugin.h b/kontact/plugins/kaddressbook/kaddressbook_plugin.h
index 3db624ce..6e073b19 100644
--- a/kontact/plugins/kaddressbook/kaddressbook_plugin.h
+++ b/kontact/plugins/kaddressbook/kaddressbook_plugin.h
@@ -44,7 +44,7 @@ public:
class KAddressbookPlugin : public Kontact::Plugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
KAddressbookPlugin( Kontact::Core *core, const char *name, const TQStringList& );
diff --git a/kontact/plugins/kaddressbook/kaddressbookplugin.desktop b/kontact/plugins/kaddressbook/kaddressbookplugin.desktop
index 2f8d7ac2..ac3ea5fa 100644
--- a/kontact/plugins/kaddressbook/kaddressbookplugin.desktop
+++ b/kontact/plugins/kaddressbook/kaddressbookplugin.desktop
@@ -15,78 +15,6 @@ X-TDE-PluginInfo-Version=0.1
X-TDE-PluginInfo-License=GPL
X-TDE-PluginInfo-EnabledByDefault=true
-Comment=Contacts Component (KAdressbook Plugin)
-Comment[bg]=Приставка за адресника
-Comment[ca]=Component de contactes (endollable del KAdressbook)
-Comment[da]=Kontaktkomponent (KAddressbook-plugin)
-Comment[de]=Adressbuch-Komponente (KAddressbook-Modul)
-Comment[el]=Συστατικό επαφών (Πρόσθετο του KAdressbook)
-Comment[et]=Kontaktide plugin (TDE aadressiraamat)
-Comment[it]=Componente contatti (plugin KAddressbook)
-Comment[ja]=アドレス帳コンポーネント (KAddressbook プラグイン)
-Comment[nds]=Kontakten-Komponent (KAddressbook-Moduul)
-Comment[nl]=Adresboekcomponent (KAddressbook-plugin)
-Comment[pl]=Składnik wizytówek (wtyczka KAddressBook)
-Comment[sr]=Компонента контаката (прикључак KAddressBook-а)
-Comment[sr@Latn]=Komponenta kontakata (priključak KAddressBook-a)
-Comment[sv]=Kontaktkomponent (adressboksinsticksprogram)
-Comment[zh_CN]=联系人组件(KAddressbook 插件)
-Comment[zh_TW]=聯絡人組件(KAddressBook 外掛程式)
Name=Contacts
-Name[af]=Kontakte
-Name[ar]=المراسلون
-Name[be]=Кантакты
-Name[bg]=Контакти
-Name[br]=Darempredoù
-Name[bs]=Kontakti
-Name[ca]=Contactes
-Name[cs]=Kontakty
-Name[cy]=Cysylltau
-Name[da]=Kontakter
-Name[de]=Kontakte
-Name[el]=Επαφές
-Name[eo]=Kontaktoj
-Name[es]=Contactos
-Name[et]=Kontaktid
-Name[eu]=Kontaktuak
-Name[fa]=تماسها
-Name[fi]=Yhteystiedot
-Name[fy]=Adressen
-Name[ga]=Teagmhálacha
-Name[gl]=Contactos
-Name[he]=אנשי קשר
-Name[hi]=सम्पर्कों
-Name[hu]=Névjegyek
-Name[is]=Tengiliðir
-Name[it]=Contatti
-Name[ja]=コンタクト
-Name[kk]=Контакттар
-Name[km]=ទំនាក់ទំនង
-Name[lt]=Kontaktai
-Name[mk]=Контакти
-Name[ms]=Orang hubungan
-Name[nds]=Kontakten
-Name[ne]=सम्पर्क
-Name[nl]=Adressen
-Name[nn]=Kontaktar
-Name[pa]=ਸੰਪਰਕ
-Name[pl]=Wizytówki
-Name[pt]=Contactos
-Name[pt_BR]=Contatos
-Name[ro]=Contacte
-Name[ru]=Контакты
-Name[rw]=Amaderesi
-Name[se]=Oktavuođat
-Name[sk]=Kontakty
-Name[sl]=Stiki
-Name[sr]=Контакти
-Name[sr@Latn]=Kontakti
-Name[sv]=Kontakter
-Name[ta]=தொடர்புகள்
-Name[tg]=Алоқот
-Name[th]=ที่อยู่ติดต่อ
-Name[tr]=Bağlantılar
-Name[uk]=Контакти
-Name[uz]=Алоқалар
-Name[zh_CN]=联系人
-Name[zh_TW]=聯絡人
+
+Comment=Contacts Component (KAdressbook Plugin)
diff --git a/kontact/plugins/karm/CMakeLists.txt b/kontact/plugins/karm/CMakeLists.txt
index 03e573b5..598d2e25 100644
--- a/kontact/plugins/karm/CMakeLists.txt
+++ b/kontact/plugins/karm/CMakeLists.txt
@@ -24,7 +24,11 @@ link_directories(
##### other data ################################
-install( FILES karmplugin.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kontact )
+tde_create_translated_desktop(
+ SOURCE karmplugin.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/kontact
+ PO_DIR kontact-desktops
+)
##### libkontact_karm (module) ##################
diff --git a/kontact/plugins/karm/karm_plugin.cpp b/kontact/plugins/karm/karm_plugin.cpp
index 8db54bc9..a84dd63b 100644
--- a/kontact/plugins/karm/karm_plugin.cpp
+++ b/kontact/plugins/karm/karm_plugin.cpp
@@ -37,12 +37,12 @@ K_EXPORT_COMPONENT_FACTORY( libkontact_karm,
KarmPluginFactory( "kontact_karm" ) )
KarmPlugin::KarmPlugin( Kontact::Core *core, const char *, const TQStringList& )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), "KArm" )
+ : Kontact::Plugin( core, core, "KArm" )
{
setInstance( KarmPluginFactory::instance() );
(void)dcopClient();
insertNewAction( new TDEAction( i18n( "New Task" ), "karm",
- CTRL+SHIFT+Key_W, this, TQT_SLOT( newTask() ), actionCollection(),
+ CTRL+SHIFT+Key_W, this, TQ_SLOT( newTask() ), actionCollection(),
"new_task" ) );
}
diff --git a/kontact/plugins/karm/karm_plugin.h b/kontact/plugins/karm/karm_plugin.h
index f2f6259b..adf32b50 100644
--- a/kontact/plugins/karm/karm_plugin.h
+++ b/kontact/plugins/karm/karm_plugin.h
@@ -36,7 +36,7 @@ class TDEAboutData;
class KarmPlugin : public Kontact::Plugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
KarmPlugin( Kontact::Core *core, const char *name,
diff --git a/kontact/plugins/karm/karmplugin.desktop b/kontact/plugins/karm/karmplugin.desktop
index ead8d27d..048db31f 100644
--- a/kontact/plugins/karm/karmplugin.desktop
+++ b/kontact/plugins/karm/karmplugin.desktop
@@ -12,36 +12,6 @@ X-TDE-PluginInfo-Version=0.1
X-TDE-PluginInfo-License=GPL
X-TDE-PluginInfo-EnabledByDefault=false
-Comment=Time Tracker Component (KArm Plugin)
-Comment[bg]=Приставка за KArm
-Comment[ca]=Component de seguiment dels temps (endollable del KArm)
-Comment[da]=Time Tracker-komponent (KArm-plugin)
-Comment[de]=Zeiterfassungskomponente (KArm-Modul)
-Comment[el]=Συστατικό γραμμής χρόνου (Πρόσθετο του KArm)
-Comment[et]=Ajaarvestaja plugin (KArm)
-Comment[it]=Componente segna-tempo (plugin Karm)
-Comment[ja]=タイムトラッカーコンポーネント (KArm プラグイン)
-Comment[nds]=Tietlogbook-Komponent (KArm-Moduul)
-Comment[nl]=Tijdsregistratiecomponent (KArm-plugin)
-Comment[pl]=Składnik śledzenia czasu (wtyczka KArm)
-Comment[sr]=Компонента праћења времена (прикључак KArm-а)
-Comment[sr@Latn]=Komponenta praćenja vremena (priključak KArm-a)
-Comment[sv]=Komponent för tidmätning (Karm-insticksprogram)
-Comment[zh_CN]=时间追踪组件(KArm 插件)
-Comment[zh_TW]=時間追蹤器組件(KArm 外掛程式)
-
Name=Timer
-Name[bg]=Таймер
-Name[ca]=Cronòmetre
-Name[de]=Stoppuhr
-Name[el]=Χρονόμετρο
-Name[et]=Ajaarvestaja
-Name[ja]=タイマー
-Name[nds]=Tietgever
-Name[nl]=Tijdklok
-Name[pl]=Stoper
-Name[sr]=Тајмер
-Name[sr@Latn]=Tajmer
-Name[sv]=Tidmätning
-Name[zh_CN]=计时器
-Name[zh_TW]=計時器
+
+Comment=Time Tracker Component (KArm Plugin)
diff --git a/kontact/plugins/kitchensync/Makefile.am b/kontact/plugins/kitchensync/Makefile.am
deleted file mode 100644
index c6df9113..00000000
--- a/kontact/plugins/kitchensync/Makefile.am
+++ /dev/null
@@ -1,14 +0,0 @@
-INCLUDES = -I$(top_srcdir)/kontact/interfaces $(all_includes)
-
-kde_module_LTLIBRARIES = libkontact_kitchensync.la
-libkontact_kitchensync_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN)
-libkontact_kitchensync_la_LIBADD = $(top_builddir)/kontact/interfaces/libkpinterfaces.la
-
-libkontact_kitchensync_la_SOURCES = kitchensync_plugin.cpp
-
-METASOURCES = AUTO
-
-servicedir = $(kde_servicesdir)/kontact
-service_DATA = kitchensync.desktop
-
-kitchensynciface_DIR = $(top_srcdir)/kitchensync
diff --git a/kontact/plugins/kitchensync/kitchensync.desktop b/kontact/plugins/kitchensync/kitchensync.desktop
deleted file mode 100644
index dddec435..00000000
--- a/kontact/plugins/kitchensync/kitchensync.desktop
+++ /dev/null
@@ -1,41 +0,0 @@
-[Desktop Entry]
-Type=Service
-Icon=kitchensync
-X-TDE-ServiceTypes=Kontact/Plugin,KPluginInfo
-
-X-TDE-Library=libkontact_kitchensync
-X-TDE-KontactPluginVersion=6
-X-TDE-KontactPartLibraryName=libkitchensyncpart
-
-X-TDE-PluginInfo-Name=kontact_kitchensync
-X-TDE-PluginInfo-Version=0.1
-X-TDE-PluginInfo-License=GPL
-X-TDE-PluginInfo-EnabledByDefault=false
-
-Comment=Synchronization Component (Kitchensynk Plugin)
-Comment[bg]=Приставка за синхронизация
-Comment[ca]=Component de sincronització (endollable del KitchenSync)
-Comment[da]=Synkronisergingskomponent (Kitchensync-plugin)
-Comment[de]=Synchronisationskomponente (KitchenSync-Modul)
-Comment[el]=Συστατικό συγχρονισμού (Πρόσθετο του Kitchensynk)
-Comment[et]=Sünkroniseerimise plugin (KitchenSync)
-Comment[it]=Componente di sincronizzazione (plugin KitchenSync)
-Comment[ja]=同期コンポーネント (KitchenSync プラグイン)
-Comment[nds]=Synkroniseer-Komponent (Kitchensynk-Moduul)
-Comment[nl]=Synchronisatiecomponent (Kitchensynk-plugin)
-Comment[pl]=Składnik synchronizacji (wtyczka KitchenSync)
-Comment[sr]=Компонента синхронизације (прикључак KitchenSync-а)
-Comment[sr@Latn]=Komponenta sinhronizacije (priključak KitchenSync-a)
-Comment[sv]=Synkroniseringskomponent (Kitchensynk-insticksprogram)
-Comment[zh_CN]=同步组件(KitchenSync 插件)
-Comment[zh_TW]=同步組件(KitchenSynk 外掛程式)
-Name=Sync
-Name[bg]=Синхронизация
-Name[de]=Abgleich
-Name[el]=Συγχρονισμός
-Name[et]=Sünkroniseerimine
-Name[ja]=同期
-Name[nds]=Synkroniseren
-Name[pl]=Synchronizacja
-Name[sv]=Synkronisering
-Name[zh_TW]=同步
diff --git a/kontact/plugins/kitchensync/kitchensync_plugin.cpp b/kontact/plugins/kitchensync/kitchensync_plugin.cpp
deleted file mode 100644
index 48e33627..00000000
--- a/kontact/plugins/kitchensync/kitchensync_plugin.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- This file is part of Kontact.
-
- Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
- As a special exception, permission is given to link this program
- with any edition of TQt, and distribute the resulting executable,
- without including the source code for TQt in the source distribution.
-*/
-
-#include <tqwidget.h>
-
-#include <tdeaboutdata.h>
-#include <tdeaction.h>
-#include <tdeapplication.h>
-#include <kdebug.h>
-#include <kgenericfactory.h>
-#include <kiconloader.h>
-#include <tdemessagebox.h>
-#include <tdeparts/componentfactory.h>
-
-#include "core.h"
-#include "plugin.h"
-
-#include "kitchensync_plugin.h"
-
-typedef KGenericFactory< KitchenSyncPlugin, Kontact::Core > KitchenSyncPluginFactory;
-K_EXPORT_COMPONENT_FACTORY( libkontact_kitchensync,
- KitchenSyncPluginFactory( "kontact_kitchensync" ) )
-
-KitchenSyncPlugin::KitchenSyncPlugin( Kontact::Core *core, const char *, const TQStringList& )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), "KitchenSync" )
-{
- setInstance( KitchenSyncPluginFactory::instance() );
-}
-
-KitchenSyncPlugin::~KitchenSyncPlugin()
-{
-}
-
-KParts::ReadOnlyPart* KitchenSyncPlugin::createPart()
-{
- return loadPart();
-}
-
-TQStringList KitchenSyncPlugin::configModules() const
-{
- TQStringList modules;
- modules << "PIM/kitchensync.desktop";
- return modules;
-}
-
-#include "kitchensync_plugin.moc"
diff --git a/kontact/plugins/kitchensync/kitchensync_plugin.h b/kontact/plugins/kitchensync/kitchensync_plugin.h
deleted file mode 100644
index b484e32e..00000000
--- a/kontact/plugins/kitchensync/kitchensync_plugin.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- This file is part of Kontact.
-
- Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
- As a special exception, permission is given to link this program
- with any edition of TQt, and distribute the resulting executable,
- without including the source code for TQt in the source distribution.
-*/
-
-#ifndef KITCHENSYNC_PLUGIN_H
-#define KITCHENSYNC_PLUGIN_H
-
-#include <tdelocale.h>
-#include <tdeparts/part.h>
-
-#include "plugin.h"
-
-class TDEAboutData;
-
-class KitchenSyncPlugin : public Kontact::Plugin
-{
- Q_OBJECT
-
- public:
- KitchenSyncPlugin( Kontact::Core *core, const char *name,
- const TQStringList & );
- virtual ~KitchenSyncPlugin();
-
- int weight() const { return 800; }
-
- virtual TQStringList configModules() const;
- protected:
- KParts::ReadOnlyPart *createPart();
-};
-
-#endif
diff --git a/kontact/plugins/kmail/CMakeLists.txt b/kontact/plugins/kmail/CMakeLists.txt
index e65a4d88..7ac2fed5 100644
--- a/kontact/plugins/kmail/CMakeLists.txt
+++ b/kontact/plugins/kmail/CMakeLists.txt
@@ -31,8 +31,17 @@ link_directories(
##### other data ################################
-install( FILES kcmkmailsummary.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
-install( FILES kmailplugin.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kontact )
+tde_create_translated_desktop(
+ SOURCE kcmkmailsummary.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR kontact-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE kmailplugin.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/kontact
+ PO_DIR kontact-desktops
+)
##### libkontact_kmailplugin (module) ###########
diff --git a/kontact/plugins/kmail/kcmkmailsummary.cpp b/kontact/plugins/kmail/kcmkmailsummary.cpp
index 497e2780..690cbc50 100644
--- a/kontact/plugins/kmail/kcmkmailsummary.cpp
+++ b/kontact/plugins/kmail/kcmkmailsummary.cpp
@@ -37,7 +37,7 @@
#include "kcmkmailsummary.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
extern "C"
{
@@ -52,8 +52,8 @@ KCMKMailSummary::KCMKMailSummary( TQWidget *parent, const char *name )
{
initGUI();
- connect( mFolderView, TQT_SIGNAL( clicked( TQListViewItem* ) ), TQT_SLOT( modified() ) );
- connect( mFullPath, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( modified() ) );
+ connect( mFolderView, TQ_SIGNAL( clicked( TQListViewItem* ) ), TQ_SLOT( modified() ) );
+ connect( mFullPath, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( modified() ) );
TDEAcceleratorManager::manage( this );
diff --git a/kontact/plugins/kmail/kcmkmailsummary.desktop b/kontact/plugins/kmail/kcmkmailsummary.desktop
index 36ee5485..2ce5576c 100644
--- a/kontact/plugins/kmail/kcmkmailsummary.desktop
+++ b/kontact/plugins/kmail/kcmkmailsummary.desktop
@@ -11,82 +11,7 @@ X-TDE-ParentComponents=kontact_kmailplugin
X-TDE-CfgDlgHierarchy=KontactSummary
Name=E-Mail Overview
-Name[bg]=Преглед на пощата
-Name[ca]=Resum de correu
-Name[da]=Oversigt over e-mail
-Name[de]=E-Mail-Übersicht
-Name[el]=Επισκόπηση αλληλογραφίας
-Name[et]=E-posti ülevaade
-Name[it]=Panoramica posta elettronica
-Name[ja]=メールの要約
-Name[nds]=Nettpost-Översicht
-Name[nl]=E-mailoverzicht
-Name[pl]=Poczta
-Name[sr]=Преглед е-поште
-Name[sr@Latn]=Pregled e-pošte
-Name[sv]=E-postöversikt
-Name[zh_CN]=邮件概览
-Name[zh_TW]=郵件概要
+
Comment=E-Mail Summary Setup
-Comment[bg]=Настройки на обобщението на писмата
-Comment[ca]=Configuració del resum de correu
-Comment[da]=Opsætning af post-opsummering
-Comment[de]=Einstellungen für E-Mail-Übersicht
-Comment[el]=Ρύθμιση σύνοψης αλληλογραφίας
-Comment[et]=E-posti kokkuvõtte seadistus
-Comment[it]=Impostazioni sommario posta elettronica
-Comment[ja]=メール要約の設定
-Comment[nds]=Instellen för Nettpost-Översicht
-Comment[nl]=Instellingen voor e-mailoverzicht
-Comment[pl]=Ustawienia podsumowania e-maili
-Comment[sr]=Подешавање сажетка е-поште
-Comment[sr@Latn]=Podešavanje sažetka e-pošte
-Comment[sv]=Inställning av e-postöversikt
-Comment[zh_CN]=邮件摘要设置
-Comment[zh_TW]=郵件摘要設定
+
Keywords=email; summary; configure; settings;
-Keywords[af]=email;summary;configure;settings;
-Keywords[bg]=резюме; общо; обобщение; пощенски; клиент; е-поща; email; summary; configure; settings;
-Keywords[bs]=email; summary; configure; settings; sažetak; postavke;
-Keywords[ca]=correu-e; resum; configuració; arranjament;
-Keywords[cs]=email;souhrn;nastavení;nastavit;
-Keywords[da]=e-mail; opsummering; indstil; opsætning;
-Keywords[de]=E-Mail;email;Übersicht;einstellen;Einstellungen;Einrichten;
-Keywords[el]=αλληλογραφία; σύνοψη; ρύθμιση; ρυθμίσεις;
-Keywords[es]=correo; resumen; configurar; opciones;
-Keywords[et]=e-post; meil; seadistamine; seadistused;
-Keywords[eu]=eposta; laburpena; konfiguratu; ezarpenak;
-Keywords[fa]=email، خلاصه، پیکربندی، تنظیمات;
-Keywords[fi]=sähköposti; yhteenveto; asetukset;
-Keywords[fr]=message;messagerie;courrier;résumé;vue;configurer;paramètres;paramètre;
-Keywords[fy]=email;e-mail;e-post;oersicht;gearfetting;ynstellings; konfiguraasje;
-Keywords[ga]=ríomhphost; achoimre; cumraigh; socruithe;
-Keywords[gl]=email; resumo; configurar; opcións;
-Keywords[he]=email; summary; configure; settings; דוא"ל; תקציר; תצורה; הגדרת; דואל; דואר; דואר אלקטרוני;
-Keywords[hu]=e-mail;áttekintés;konfigurálás;beállítások;
-Keywords[is]=tölvupóstur; yfirlit; stillingar; stilla;
-Keywords[it]=posta elettronica; email; sommario; configura; impostazioni;
-Keywords[ja]=メール;要約;設定;設定;
-Keywords[km]=អ៊ីមែល;សង្ខេប;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;
-Keywords[lt]=email; summary; configure; settings; e. paštas; santrauka; konfigūruoti; nustatymai;
-Keywords[mk]=email; summary; configure; settings; е-пошта; преглед; конфигурација; поставувања;
-Keywords[ms]=e-mel; ringkasan; konfigur; seting;
-Keywords[nb]=e-post; sammendrag; oppsett; innstillinger;
-Keywords[nds]=Nettpost;Nettbreef;Översicht;instellen;
-Keywords[ne]=इमेल; सारांश; कन्फिगर; सेटिङ;
-Keywords[nl]=email;e-mail;overzicht;samenvatting;instellingen;configuratie;
-Keywords[nn]=e-post;samandrag;oppsett;innstillingar;
-Keywords[pl]=email;list;podsumowanie;konfiguracja;ustawienia;
-Keywords[pt]=e-mail; sumário; configurar; configuração;
-Keywords[pt_BR]=e-mail; resumo; configurar; configurações;
-Keywords[ru]=email;summary;configure;settings;настройки;дайджест;почта;
-Keywords[sk]=email;súhrn;nastavenie;
-Keywords[sl]=e-pošta;pošta;povzetek;nastavi;nastavitve;
-Keywords[sr]=емаил; сажетак; подеси; поставке;
-Keywords[sr@Latn]=email; sažetak; podesi; postavke;
-Keywords[sv]=e-post; översikt; anpassa; inställningar;
-Keywords[ta]=மின்னஞ்சல்;சுருக்கம்;கட்டமைப்பு;அமைவுகள்;
-Keywords[tg]=email; summary; configure; settings;танзимот; дайджест;почта;
-Keywords[tr]=e-posta; özet; yapılandır; yapılandırma;
-Keywords[uk]=пошта; підсумок; налаштування; параметри;
-Keywords[zh_CN]=email; summary; configure; settings; 电子邮件; 摘要; 配置; 设置;
diff --git a/kontact/plugins/kmail/kcmkmailsummary.h b/kontact/plugins/kmail/kcmkmailsummary.h
index 7cc4763e..e6681153 100644
--- a/kontact/plugins/kmail/kcmkmailsummary.h
+++ b/kontact/plugins/kmail/kcmkmailsummary.h
@@ -35,7 +35,7 @@ class TQCheckListItem;
class KCMKMailSummary : public TDECModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/kmail/kmail_plugin.cpp b/kontact/plugins/kmail/kmail_plugin.cpp
index 09c2fd05..1a818694 100644
--- a/kontact/plugins/kmail/kmail_plugin.cpp
+++ b/kontact/plugins/kmail/kmail_plugin.cpp
@@ -56,17 +56,17 @@ K_EXPORT_COMPONENT_FACTORY( libkontact_kmailplugin,
KMailPluginFactory( "kontact_kmailplugin" ) )
KMailPlugin::KMailPlugin(Kontact::Core *core, const char *, const TQStringList& )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), "kmail" ),
+ : Kontact::Plugin( core, core, "kmail" ),
mStub( 0 )
{
setInstance( KMailPluginFactory::instance() );
insertNewAction( new TDEAction( i18n( "New Message..." ), "mail-message-new",
- CTRL+SHIFT+Key_M, this, TQT_SLOT( slotNewMail() ), actionCollection(),
+ CTRL+SHIFT+Key_M, this, TQ_SLOT( slotNewMail() ), actionCollection(),
"new_mail" ) );
insertSyncAction( new TDEAction( i18n( "Synchronize Mail" ), "reload",
- 0, this, TQT_SLOT( slotSyncFolders() ), actionCollection(),
+ 0, this, TQ_SLOT( slotSyncFolders() ), actionCollection(),
"sync_mail" ) );
mUniqueAppWatcher = new Kontact::UniqueAppWatcher(
diff --git a/kontact/plugins/kmail/kmail_plugin.h b/kontact/plugins/kmail/kmail_plugin.h
index 923fd3a8..ff8c532e 100644
--- a/kontact/plugins/kmail/kmail_plugin.h
+++ b/kontact/plugins/kmail/kmail_plugin.h
@@ -45,7 +45,7 @@ public:
class KMailPlugin : public Kontact::Plugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
KMailPlugin( Kontact::Core *core, const char *name, const TQStringList& );
diff --git a/kontact/plugins/kmail/kmailplugin.desktop b/kontact/plugins/kmail/kmailplugin.desktop
index 748cdc8a..59606585 100644
--- a/kontact/plugins/kmail/kmailplugin.desktop
+++ b/kontact/plugins/kmail/kmailplugin.desktop
@@ -16,37 +16,6 @@ X-TDE-PluginInfo-Version=0.1
X-TDE-PluginInfo-License=GPL
X-TDE-PluginInfo-EnabledByDefault=true
-Comment=E-Mail Component (KMail Plugin)
-Comment[bg]=Модул за е-поща
-Comment[ca]=Component de correu (endollable del KMail)
-Comment[da]=Post-komponent (KMail-plugin)
-Comment[de]=E-Mail-Komponente (KMail-Modul)
-Comment[el]=Συστατικό αλληλογραφίας (Πρόσθετο του KMail)
-Comment[et]=E-posti plugin (KMail)
-Comment[it]=Componente posta elettronica (plugin KMail)
-Comment[ja]=メールコンポーネント (KMail プラグイン)
-Comment[nds]=Nettpost-Komponent (KMail-Moduul)
-Comment[nl]=E-mailcomponent (KMail-plugin)
-Comment[pl]=Składnik poczty (wtyczka KMail)
-Comment[sr]=Компонента е-поште (прикључак KMail-а)
-Comment[sr@Latn]=Komponenta e-pošte (priključak KMail-a)
-Comment[sv]=E-postkomponent (Kmail-insticksprogram)
-Comment[zh_CN]=邮件组件(KMail 插件)
-Comment[zh_TW]=電子郵件組件(KMail 外掛程式)
Name=E-Mail
-Name[bg]=Е-поща
-Name[ca]=Correu
-Name[da]=E-mail
-Name[de]=E-Mail
-Name[el]=Αλληλογραφία
-Name[et]=E-post
-Name[it]=Posta elettronica
-Name[ja]=メール
-Name[nds]=Nettpost
-Name[nl]=E-mail
-Name[pl]=E-mail
-Name[sr]=Е-пошта
-Name[sr@Latn]=E-pošta
-Name[sv]=E-post
-Name[zh_CN]=邮件
-Name[zh_TW]=電子郵件
+
+Comment=E-Mail Component (KMail Plugin)
diff --git a/kontact/plugins/kmail/summarywidget.cpp b/kontact/plugins/kmail/summarywidget.cpp
index 9ac18602..31e22992 100644
--- a/kontact/plugins/kmail/summarywidget.cpp
+++ b/kontact/plugins/kmail/summarywidget.cpp
@@ -1,5 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
-
+/*
This file is part of Kontact.
Copyright (c) 2003 Tobias Koenig <tokoe@kde.org>
@@ -134,8 +133,8 @@ void SummaryWidget::updateFolderList( const TQStringList& folders )
urlLabel->installEventFilter( this );
urlLabel->setAlignment( AlignLeft );
urlLabel->show();
- connect( urlLabel, TQT_SIGNAL( leftClickedURL( const TQString& ) ),
- TQT_SLOT( selectFolder( const TQString& ) ) );
+ connect( urlLabel, TQ_SIGNAL( leftClickedURL( const TQString& ) ),
+ TQ_SLOT( selectFolder( const TQString& ) ) );
mLayout->addWidget( urlLabel, counter, 0 );
mLabels.append( urlLabel );
@@ -164,7 +163,7 @@ void SummaryWidget::updateFolderList( const TQStringList& folders )
bool SummaryWidget::eventFilter( TQObject *obj, TQEvent* e )
{
if ( obj->inherits( "KURLLabel" ) ) {
- KURLLabel* label = static_cast<KURLLabel*>( TQT_TQWIDGET(obj) );
+ KURLLabel* label = static_cast<KURLLabel*>( obj );
if ( e->type() == TQEvent::Enter )
emit message( i18n( "Open Folder: \"%1\"" ).arg( label->text() ) );
if ( e->type() == TQEvent::Leave )
diff --git a/kontact/plugins/kmail/summarywidget.h b/kontact/plugins/kmail/summarywidget.h
index 3813ee03..d5fb299c 100644
--- a/kontact/plugins/kmail/summarywidget.h
+++ b/kontact/plugins/kmail/summarywidget.h
@@ -40,7 +40,7 @@ class TQString;
class SummaryWidget : public Kontact::Summary, public DCOPObject
{
- Q_OBJECT
+ TQ_OBJECT
//
K_DCOP
diff --git a/kontact/plugins/knode/CMakeLists.txt b/kontact/plugins/knode/CMakeLists.txt
index ed5a0608..881a4540 100644
--- a/kontact/plugins/knode/CMakeLists.txt
+++ b/kontact/plugins/knode/CMakeLists.txt
@@ -24,7 +24,11 @@ link_directories(
##### other data ################################
-install( FILES knodeplugin.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kontact )
+tde_create_translated_desktop(
+ SOURCE knodeplugin.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/kontact
+ PO_DIR kontact-desktops
+)
##### libkontact_knodeplugin (module) ###########
diff --git a/kontact/plugins/knode/knode_plugin.cpp b/kontact/plugins/knode/knode_plugin.cpp
index 758572bb..8a6fb54f 100644
--- a/kontact/plugins/knode/knode_plugin.cpp
+++ b/kontact/plugins/knode/knode_plugin.cpp
@@ -45,12 +45,12 @@ K_EXPORT_COMPONENT_FACTORY( libkontact_knodeplugin,
KNodePlugin::KNodePlugin( Kontact::Core *core, const char *, const TQStringList& )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), "knode" ), mStub(0)
+ : Kontact::Plugin( core, core, "knode" ), mStub(0)
{
setInstance( KNodePluginFactory::instance() );
insertNewAction( new TDEAction( i18n( "New Article..." ), "mail-message-new", CTRL+SHIFT+Key_A,
- this, TQT_SLOT( slotPostArticle() ), actionCollection(), "post_article" ) );
+ this, TQ_SLOT( slotPostArticle() ), actionCollection(), "post_article" ) );
mUniqueAppWatcher = new Kontact::UniqueAppWatcher(
new Kontact::UniqueAppHandlerFactory<KNodeUniqueAppHandler>(), this );
diff --git a/kontact/plugins/knode/knode_plugin.h b/kontact/plugins/knode/knode_plugin.h
index 4b1cb21e..c74878c9 100644
--- a/kontact/plugins/knode/knode_plugin.h
+++ b/kontact/plugins/knode/knode_plugin.h
@@ -42,7 +42,7 @@ public:
class KNodePlugin : public Kontact::Plugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNodePlugin( Kontact::Core *core, const char *name, const TQStringList& );
diff --git a/kontact/plugins/knode/knodeplugin.desktop b/kontact/plugins/knode/knodeplugin.desktop
index 2dd4cfb7..09e4c71c 100644
--- a/kontact/plugins/knode/knodeplugin.desktop
+++ b/kontact/plugins/knode/knodeplugin.desktop
@@ -13,78 +13,6 @@ X-TDE-PluginInfo-Version=0.1
X-TDE-PluginInfo-License=GPL
X-TDE-PluginInfo-EnabledByDefault=false
-Comment=Newsreader Component (KNode Plugin)
-Comment[bg]=Приставка за KNode
-Comment[ca]=Component de notícies (endollable del KNode)
-Comment[da]=Nyhedskomponent (KNode-plugin)
-Comment[de]=News-Komponente (KNode-Modul)
-Comment[el]=Συστατικό ανάγνωσης νέων (Πρόσθετο του KNode)
-Comment[et]=Uudistelugeja plugin (KNode)
-Comment[it]=Componente lettore di news (plugin KNode)
-Comment[ja]=ニュースリーダーコンポーネント (KNode プラグイン)
-Comment[nds]=Narichtenkieker-Komponent (KNode-Moduul)
-Comment[nl]=Nieuwscomponent (KNode-plugin)
-Comment[pl]=Składnik wiadomości (wtyczka KNode)
-Comment[sr]=Компонента вести (прикључак KNode-а)
-Comment[sr@Latn]=Komponenta vesti (priključak KNode-a)
-Comment[sv]=Komponent för läsning av diskussionsgrupper (Knode-insticksprogram)
-Comment[zh_CN]=新闻组阅读器组件(KNode 插件)
-Comment[zh_TW]=新聞閱讀器組件(KNode 外掛程式)
Name=News
-Name[af]=Nuus
-Name[ar]=الأخبار
-Name[be]=Навіны
-Name[bg]=Новини
-Name[br]=Keleier
-Name[bs]=Usenet
-Name[ca]=Notícies
-Name[cs]=Novinky
-Name[cy]=Newyddion
-Name[da]=Nyheder
-Name[de]=Usenet
-Name[el]=Νέα
-Name[eo]=Novaĵoj
-Name[es]=Noticias
-Name[et]=Uudisegrupid
-Name[eu]=Berriak
-Name[fa]=اخبار
-Name[fi]=Uutiset
-Name[fr]=Nouvelles
-Name[fy]=Nijs
-Name[ga]=Nuacht
-Name[gl]=Novas
-Name[he]=חדשות
-Name[hi]=समाचार
-Name[hu]=Hírek
-Name[is]=Fréttir
-Name[ja]=ニュース
-Name[kk]=Жаңалықтар
-Name[km]=ព័ត៌មាន
-Name[lt]=Naujienos
-Name[mk]=Вести
-Name[ms]=Berita
-Name[nb]=Njus
-Name[nds]=Narichten
-Name[ne]=समाचार
-Name[nl]=Nieuws
-Name[nn]=Nyheiter
-Name[pa]=ਖ਼ਬਰਾਂ
-Name[pl]=Listy dyskusyjne
-Name[pt]=Notícias
-Name[pt_BR]=Notícias
-Name[ro]=Ştiri
-Name[ru]=Новости
-Name[se]=Ođđasat
-Name[sk]=Diskusné skupiny
-Name[sl]=Novice
-Name[sr]=Вести
-Name[sr@Latn]=Vesti
-Name[sv]=Nyheter
-Name[ta]=செய்திகள்
-Name[tg]=Ахборот
-Name[th]=ข่าว
-Name[tr]=Haberler
-Name[uk]=Новини
-Name[uz]=Янгиликлар
-Name[zh_CN]=新闻
-Name[zh_TW]=新聞
+
+Comment=Newsreader Component (KNode Plugin)
diff --git a/kontact/plugins/knotes/CMakeLists.txt b/kontact/plugins/knotes/CMakeLists.txt
index 39e5e62a..3a213e4e 100644
--- a/kontact/plugins/knotes/CMakeLists.txt
+++ b/kontact/plugins/knotes/CMakeLists.txt
@@ -27,7 +27,12 @@ link_directories(
##### other data ################################
-install( FILES knotesplugin.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kontact )
+tde_create_translated_desktop(
+ SOURCE knotesplugin.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/kontact
+ PO_DIR kontact-desktops
+)
+
install( FILES knotes_part.rc DESTINATION ${DATA_INSTALL_DIR}/knotes )
diff --git a/kontact/plugins/knotes/knotes_part.cpp b/kontact/plugins/knotes/knotes_part.cpp
index 20e8d6c9..7ec3df6c 100644
--- a/kontact/plugins/knotes/knotes_part.cpp
+++ b/kontact/plugins/knotes/knotes_part.cpp
@@ -50,13 +50,13 @@ KNotesPart::KNotesPart( TQObject *parent, const char *name )
setInstance( new TDEInstance( "knotes" ) );
// create the actions
- new TDEAction( i18n( "&New" ), "knotes", CTRL+Key_N, this, TQT_SLOT( newNote() ),
+ new TDEAction( i18n( "&New" ), "knotes", CTRL+Key_N, this, TQ_SLOT( newNote() ),
actionCollection(), "file_new" );
- new TDEAction( i18n( "Rename..." ), "text", this, TQT_SLOT( renameNote() ),
+ new TDEAction( i18n( "Rename..." ), "text", this, TQ_SLOT( renameNote() ),
actionCollection(), "edit_rename" );
- new TDEAction( i18n( "Delete" ), "edit-delete", Key_Delete, this, TQT_SLOT( killSelectedNotes() ),
+ new TDEAction( i18n( "Delete" ), "edit-delete", Key_Delete, this, TQ_SLOT( killSelectedNotes() ),
actionCollection(), "edit_delete" );
- new TDEAction( i18n( "Print Selected Notes..." ), "print", CTRL+Key_P, this, TQT_SLOT( printSelectedNotes() ),
+ new TDEAction( i18n( "Print Selected Notes..." ), "print", CTRL+Key_P, this, TQ_SLOT( printSelectedNotes() ),
actionCollection(), "print_note" );
// TODO icons: s/editdelete/knotes_delete/ or the other way round in knotes
@@ -68,20 +68,20 @@ KNotesPart::KNotesPart( TQObject *parent, const char *name )
mNotesView->setAutoArrange( true );
mNotesView->setSorting( true );
- connect( mNotesView, TQT_SIGNAL( executed( TQIconViewItem* ) ),
- this, TQT_SLOT( editNote( TQIconViewItem* ) ) );
- connect( mNotesView, TQT_SIGNAL( returnPressed( TQIconViewItem* ) ),
- this, TQT_SLOT( editNote( TQIconViewItem* ) ) );
- connect( mNotesView, TQT_SIGNAL( itemRenamed( TQIconViewItem* ) ),
- this, TQT_SLOT( renamedNote( TQIconViewItem* ) ) );
- connect( mNotesView, TQT_SIGNAL( contextMenuRequested( TQIconViewItem*, const TQPoint& ) ),
- this, TQT_SLOT( popupRMB( TQIconViewItem*, const TQPoint& ) ) );
- connect( mNotesView, TQT_SIGNAL( onItem( TQIconViewItem* ) ),
- this, TQT_SLOT( slotOnItem( TQIconViewItem* ) ) );
- connect( mNotesView, TQT_SIGNAL( onViewport() ),
- this, TQT_SLOT( slotOnViewport() ) );
- connect( mNotesView, TQT_SIGNAL( currentChanged( TQIconViewItem* ) ),
- this, TQT_SLOT( slotOnCurrentChanged( TQIconViewItem* ) ) );
+ connect( mNotesView, TQ_SIGNAL( executed( TQIconViewItem* ) ),
+ this, TQ_SLOT( editNote( TQIconViewItem* ) ) );
+ connect( mNotesView, TQ_SIGNAL( returnPressed( TQIconViewItem* ) ),
+ this, TQ_SLOT( editNote( TQIconViewItem* ) ) );
+ connect( mNotesView, TQ_SIGNAL( itemRenamed( TQIconViewItem* ) ),
+ this, TQ_SLOT( renamedNote( TQIconViewItem* ) ) );
+ connect( mNotesView, TQ_SIGNAL( contextMenuRequested( TQIconViewItem*, const TQPoint& ) ),
+ this, TQ_SLOT( popupRMB( TQIconViewItem*, const TQPoint& ) ) );
+ connect( mNotesView, TQ_SIGNAL( onItem( TQIconViewItem* ) ),
+ this, TQ_SLOT( slotOnItem( TQIconViewItem* ) ) );
+ connect( mNotesView, TQ_SIGNAL( onViewport() ),
+ this, TQ_SLOT( slotOnViewport() ) );
+ connect( mNotesView, TQ_SIGNAL( currentChanged( TQIconViewItem* ) ),
+ this, TQ_SLOT( slotOnCurrentChanged( TQIconViewItem* ) ) );
slotOnCurrentChanged( 0 );
@@ -91,10 +91,10 @@ KNotesPart::KNotesPart( TQObject *parent, const char *name )
setXMLFile( "knotes_part.rc" );
// connect the resource manager
- connect( mManager, TQT_SIGNAL( sigRegisteredNote( KCal::Journal* ) ),
- this, TQT_SLOT( createNote( KCal::Journal* ) ) );
- connect( mManager, TQT_SIGNAL( sigDeregisteredNote( KCal::Journal* ) ),
- this, TQT_SLOT( killNote( KCal::Journal* ) ) );
+ connect( mManager, TQ_SIGNAL( sigRegisteredNote( KCal::Journal* ) ),
+ this, TQ_SLOT( createNote( KCal::Journal* ) ) );
+ connect( mManager, TQ_SIGNAL( sigDeregisteredNote( KCal::Journal* ) ),
+ this, TQ_SLOT( killNote( KCal::Journal* ) ) );
// read the notes
mManager->load();
diff --git a/kontact/plugins/knotes/knotes_part.h b/kontact/plugins/knotes/knotes_part.h
index 67808bae..62766b1f 100644
--- a/kontact/plugins/knotes/knotes_part.h
+++ b/kontact/plugins/knotes/knotes_part.h
@@ -46,7 +46,7 @@ class Journal;
class KNotesPart : public KParts::ReadOnlyPart, virtual public KNotesIface
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/knotes/knotes_part_p.h b/kontact/plugins/knotes/knotes_part_p.h
index 9a30d715..735f492e 100644
--- a/kontact/plugins/knotes/knotes_part_p.h
+++ b/kontact/plugins/knotes/knotes_part_p.h
@@ -114,7 +114,7 @@ class KNotesIconView : public TDEIconView
class KNoteEditDlg : public KDialogBase, virtual public KXMLGUIClient
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -144,7 +144,7 @@ class KNoteEditDlg : public KDialogBase, virtual public KXMLGUIClient
mNoteEdit->setFocus();
KXMLGUIBuilder builder( page );
- KXMLGUIFactory factory( &builder, TQT_TQOBJECT(this) );
+ KXMLGUIFactory factory( &builder, this );
factory.addClient( this );
mTool = static_cast<TDEToolBar *>(factory.container( "note_tool", this ));
diff --git a/kontact/plugins/knotes/knotes_plugin.cpp b/kontact/plugins/knotes/knotes_plugin.cpp
index bec6fb5c..1b66eea1 100644
--- a/kontact/plugins/knotes/knotes_plugin.cpp
+++ b/kontact/plugins/knotes/knotes_plugin.cpp
@@ -39,15 +39,15 @@ K_EXPORT_COMPONENT_FACTORY( libkontact_knotesplugin,
KNotesPlugin::KNotesPlugin( Kontact::Core *core, const char *, const TQStringList & )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), "knotes" ),
+ : Kontact::Plugin( core, core, "knotes" ),
mAboutData( 0 )
{
setInstance( KNotesPluginFactory::instance() );
insertNewAction( new TDEAction( i18n( "New Note..." ), "knotes", CTRL+SHIFT+Key_N,
- this, TQT_SLOT( slotNewNote() ), actionCollection(), "new_note" ) );
+ this, TQ_SLOT( slotNewNote() ), actionCollection(), "new_note" ) );
insertSyncAction( new TDEAction( i18n( "Synchronize Notes" ), "reload", 0,
- this, TQT_SLOT( slotSyncNotes() ), actionCollection(), "knotes_sync" ) );
+ this, TQ_SLOT( slotSyncNotes() ), actionCollection(), "knotes_sync" ) );
}
KNotesPlugin::~KNotesPlugin()
diff --git a/kontact/plugins/knotes/knotes_plugin.h b/kontact/plugins/knotes/knotes_plugin.h
index 069f10fb..1bde9e63 100644
--- a/kontact/plugins/knotes/knotes_plugin.h
+++ b/kontact/plugins/knotes/knotes_plugin.h
@@ -31,7 +31,7 @@ class SummaryWidget;
class KNotesPlugin : public Kontact::Plugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNotesPlugin( Kontact::Core *core, const char *name, const TQStringList& );
diff --git a/kontact/plugins/knotes/knotesplugin.desktop b/kontact/plugins/knotes/knotesplugin.desktop
index e1af4cdc..2c8d5045 100644
--- a/kontact/plugins/knotes/knotesplugin.desktop
+++ b/kontact/plugins/knotes/knotesplugin.desktop
@@ -13,75 +13,6 @@ X-TDE-PluginInfo-Version=0.1
X-TDE-PluginInfo-License=LGPL
X-TDE-PluginInfo-EnabledByDefault=true
-Comment=Notes Component (KNotes Plugin)
-Comment[bg]=Приставка за бележки
-Comment[ca]=Component de notes (endollable del KNotes)
-Comment[da]=Notatkomponent (KNotes-plugin)
-Comment[de]=Notizen-Komponente (KNotes-Modul)
-Comment[el]=Συσταικό σημειώσεων (Πρόσθετο του KNotes)
-Comment[et]=Märkmete plugin (KNotes)
-Comment[it]=Componente note (plugin KNotes)
-Comment[ja]=メモコンポーネント (KNotes プラグイン)
-Comment[nds]=Notizen-Komponent (KNotes-Moduul)
-Comment[nl]=Notitiecomponent (KNotes-plugin)
-Comment[pl]=Składnik notatek (wtyczka KNotes)
-Comment[sr]=Компонента белешки (прикључак KNotes-а)
-Comment[sr@Latn]=Komponenta beleški (priključak KNotes-a)
-Comment[sv]=Anteckningskomponent (Knotes-insticksprogram)
-Comment[zh_CN]=便笺组件(KNotes 插件)
-Comment[zh_TW]=便條組件(KNotes 外掛程式)
Name=Notes
-Name[af]=Notas
-Name[ar]=الملاحظات
-Name[be]=Нататкі
-Name[bg]=Бележки
-Name[br]=Notennoù
-Name[bs]=Bilješke
-Name[cs]=Poznámky
-Name[cy]=Nodiadau
-Name[da]=Noter
-Name[de]=Notizen
-Name[el]=Σημειώσεις
-Name[eo]=Notoj
-Name[es]=Notas
-Name[et]=Märkmed
-Name[eu]=Oharrak
-Name[fa]=یادداشتها
-Name[fi]=Muistio
-Name[fy]=Notysjes
-Name[ga]=Nótaí
-Name[gl]=Notas
-Name[he]=פתקים
-Name[hi]=टीप
-Name[hu]=Feljegyzések
-Name[is]=Minnismiðar
-Name[it]=Note
-Name[ja]=メモ
-Name[kk]=Жазбалар
-Name[km]=ចំណាំ
-Name[lt]=Užrašai
-Name[mk]=Белешки
-Name[ms]=Nota
-Name[nds]=Notizen
-Name[ne]=टिपोट
-Name[nl]=Notities
-Name[nn]=Notat
-Name[pl]=Notatki
-Name[pt]=Notas
-Name[pt_BR]=Notas
-Name[ro]=Notiţe
-Name[ru]=Заметки
-Name[se]=Nohtat
-Name[sk]=Poznámky
-Name[sl]=Notice
-Name[sr]=Белешке
-Name[sr@Latn]=Beleške
-Name[sv]=Anteckningar
-Name[ta]=குறிப்புகள்
-Name[tg]=Ахборот
-Name[th]=บันทึกช่วยจำ
-Name[tr]=Notlar
-Name[uk]=Примітки
-Name[uz]=Ёзма хотира
-Name[zh_CN]=便笺
-Name[zh_TW]=備忘錄
+
+Comment=Notes Component (KNotes Plugin)
diff --git a/kontact/plugins/knotes/knotetip.cpp b/kontact/plugins/knotes/knotetip.cpp
index 97bd771f..dfa469bc 100644
--- a/kontact/plugins/knotes/knotetip.cpp
+++ b/kontact/plugins/knotes/knotetip.cpp
@@ -75,7 +75,7 @@ void KNoteTip::setNote( KNotesIconViewItem *item )
mNoteIVI = item;
if ( !mNoteIVI ) {
- TQT_TQOBJECT(this)->killTimers();
+ this->killTimers();
if ( isVisible() ) {
setFilter( false );
hide();
@@ -104,7 +104,7 @@ void KNoteTip::setNote( KNotesIconViewItem *item )
resize( w, TQMIN( h, desk.height() / 2 - 20 ) );
hide();
- TQT_TQOBJECT(this)->killTimers();
+ this->killTimers();
setFilter( true );
startTimer( 600 ); // delay showing the tooltip for 0.7 sec
}
@@ -121,7 +121,7 @@ void KNoteTip::resizeEvent( TQResizeEvent *ev )
void KNoteTip::timerEvent( TQTimerEvent * )
{
- TQT_TQOBJECT(this)->killTimers();
+ this->killTimers();
if ( !isVisible() ) {
startTimer( 15000 ); // show the tooltip for 15 sec
@@ -144,7 +144,7 @@ bool KNoteTip::eventFilter( TQObject *, TQEvent *e )
case TQEvent::FocusIn:
case TQEvent::FocusOut:
case TQEvent::Wheel:
- TQT_TQOBJECT(this)->killTimers();
+ this->killTimers();
setFilter( false );
hide();
default:
diff --git a/kontact/plugins/knotes/summarywidget.cpp b/kontact/plugins/knotes/summarywidget.cpp
index ca0f6ae5..89ae1ec1 100644
--- a/kontact/plugins/knotes/summarywidget.cpp
+++ b/kontact/plugins/knotes/summarywidget.cpp
@@ -61,10 +61,10 @@ KNotesSummaryWidget::KNotesSummaryWidget( Kontact::Plugin *plugin,
mCalendar = new KCal::CalendarLocal( TQString::fromLatin1("UTC") );
KNotesResourceManager *manager = new KNotesResourceManager();
- TQObject::connect( manager, TQT_SIGNAL( sigRegisteredNote( KCal::Journal* ) ),
- this, TQT_SLOT( addNote( KCal::Journal* ) ) );
- TQObject::connect( manager, TQT_SIGNAL( sigDeregisteredNote( KCal::Journal* ) ),
- this, TQT_SLOT( removeNote( KCal::Journal* ) ) );
+ TQObject::connect( manager, TQ_SIGNAL( sigRegisteredNote( KCal::Journal* ) ),
+ this, TQ_SLOT( addNote( KCal::Journal* ) ) );
+ TQObject::connect( manager, TQ_SIGNAL( sigDeregisteredNote( KCal::Journal* ) ),
+ this, TQ_SLOT( removeNote( KCal::Journal* ) ) );
manager->load();
@@ -111,8 +111,8 @@ void KNotesSummaryWidget::updateView()
TQToolTip::add( urlLabel, (*it)->description().left( 80 ) );
}
- connect( urlLabel, TQT_SIGNAL( leftClickedURL( const TQString& ) ),
- this, TQT_SLOT( urlClicked( const TQString& ) ) );
+ connect( urlLabel, TQ_SIGNAL( leftClickedURL( const TQString& ) ),
+ this, TQ_SLOT( urlClicked( const TQString& ) ) );
counter++;
}
@@ -138,7 +138,7 @@ void KNotesSummaryWidget::urlClicked( const TQString &/*uid*/ )
bool KNotesSummaryWidget::eventFilter( TQObject *obj, TQEvent* e )
{
if ( obj->inherits( "KURLLabel" ) ) {
- KURLLabel* label = static_cast<KURLLabel*>( TQT_TQWIDGET(obj) );
+ KURLLabel* label = static_cast<KURLLabel*>( obj );
if ( e->type() == TQEvent::Enter )
emit message( i18n( "Read Note: \"%1\"" ).arg( label->text() ) );
if ( e->type() == TQEvent::Leave )
diff --git a/kontact/plugins/knotes/summarywidget.h b/kontact/plugins/knotes/summarywidget.h
index 305873d7..1ac015f4 100644
--- a/kontact/plugins/knotes/summarywidget.h
+++ b/kontact/plugins/knotes/summarywidget.h
@@ -42,7 +42,7 @@ namespace Kontact {
class KNotesSummaryWidget : public Kontact::Summary
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/korganizer/CMakeLists.txt b/kontact/plugins/korganizer/CMakeLists.txt
index fb270e85..6c0fa7d3 100644
--- a/kontact/plugins/korganizer/CMakeLists.txt
+++ b/kontact/plugins/korganizer/CMakeLists.txt
@@ -30,13 +30,17 @@ link_directories(
##### other data ################################
-install( FILES
- korganizerplugin.desktop todoplugin.desktop journalplugin.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/kontact )
+tde_create_translated_desktop(
+ SOURCE korganizerplugin.desktop todoplugin.desktop journalplugin.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/kontact
+ PO_DIR kontact-desktops
+)
-install( FILES
- kcmkorgsummary.desktop
- DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE kcmkorgsummary.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR kontact-desktops
+)
##### libkontact_korganizerplugin (module) ######
diff --git a/kontact/plugins/korganizer/journalplugin.cpp b/kontact/plugins/korganizer/journalplugin.cpp
index ac3b7735..a028d937 100644
--- a/kontact/plugins/korganizer/journalplugin.cpp
+++ b/kontact/plugins/korganizer/journalplugin.cpp
@@ -43,17 +43,17 @@ K_EXPORT_COMPONENT_FACTORY( libkontact_journalplugin,
JournalPluginFactory( "kontact_journalplugin" ) )
JournalPlugin::JournalPlugin( Kontact::Core *core, const char *, const TQStringList& )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), "korganizer" ),
+ : Kontact::Plugin( core, core, "korganizer" ),
mIface( 0 )
{
setInstance( JournalPluginFactory::instance() );
instance()->iconLoader()->addAppDir("tdepim");
insertNewAction( new TDEAction( i18n( "New Journal..." ), "newjournal",
- CTRL+SHIFT+Key_J, this, TQT_SLOT( slotNewJournal() ), actionCollection(),
+ CTRL+SHIFT+Key_J, this, TQ_SLOT( slotNewJournal() ), actionCollection(),
"new_journal" ) );
insertSyncAction( new TDEAction( i18n( "Synchronize Journal" ), "reload",
- 0, this, TQT_SLOT( slotSyncJournal() ), actionCollection(),
+ 0, this, TQ_SLOT( slotSyncJournal() ), actionCollection(),
"journal_sync" ) );
diff --git a/kontact/plugins/korganizer/journalplugin.desktop b/kontact/plugins/korganizer/journalplugin.desktop
index 2a6bda5b..ae991064 100644
--- a/kontact/plugins/korganizer/journalplugin.desktop
+++ b/kontact/plugins/korganizer/journalplugin.desktop
@@ -15,67 +15,6 @@ X-TDE-PluginInfo-Version=0.1
X-TDE-PluginInfo-License=GPL
X-TDE-PluginInfo-EnabledByDefault=true
-Comment=Journal Component (KOrganizer Plugin)
-Comment[bg]=Приставка за KOrganizer
-Comment[ca]=Component de diari (endollable del KOrganizer)
-Comment[da]=Journalkomponent (KOrganizer-plugin)
-Comment[de]=Journal-Komponente (KOrganizer-Modul)
-Comment[el]=Συστατικό χρονικών (Πρόσθετο του KOrganizer)
-Comment[et]=Päevikuplugin (KOrganizer)
-Comment[it]=Componente diario (plugin KOrganizer)
-Comment[ja]=ジャーナルコンポーネント (KOrganizer プラグイン)
-Comment[nds]=Daagböker-Komponent (KOrganizer-Moduul)
-Comment[nl]=Journaalcomponent (KOrganizer-plugin)
-Comment[pl]=Składnik dziennika (wtyczka Korganizer)
-Comment[sr]=Компонента дневника (прикључак KOrganizer-а)
-Comment[sr@Latn]=Komponenta dnevnika (priključak KOrganizer-a)
-Comment[sv]=Journalkomponent (Korganizer-insticksprogram)
-Comment[zh_CN]=日记组件(KOrganizer 插件)
-Comment[zh_TW]=日誌組件(KOrganizer 外掛程式)
Name=Journal
-Name[af]=Joernaal
-Name[ar]=اليومية
-Name[bg]=Дневник
-Name[br]=Deizlevr
-Name[ca]=Diari
-Name[cs]=Deník
-Name[cy]=Dyddlyfr
-Name[el]=Χρονικό
-Name[eo]=Ĵurnalo
-Name[es]=Diario
-Name[et]=Päevik
-Name[eu]=Egunkaria
-Name[fa]=نشریه
-Name[fi]=Päiväkirja
-Name[fy]=Journaal
-Name[ga]=Iris
-Name[gl]=Xornal
-Name[he]=יומן
-Name[hu]=Napló
-Name[is]=Dagbók
-Name[it]=Diario
-Name[ja]=ジャーナル
-Name[kk]=Күнделік
-Name[km]=ទិនានុប្បវត្តិ
-Name[lt]=Dienynas
-Name[ms]=Jurnal
-Name[nb]=Dagbok
-Name[nds]=Daagbook
-Name[ne]=जर्नल
-Name[nl]=Journaal
-Name[nn]=Dagbok
-Name[pl]=Dziennik
-Name[pt]=Diário
-Name[pt_BR]=Diário
-Name[ru]=Журнал
-Name[sk]=Žurnál
-Name[sl]=Dnevnik
-Name[sr]=Дневник
-Name[sr@Latn]=Dnevnik
-Name[ta]=பத்திரிகை
-Name[th]=วารสาร
-Name[tr]=Günlük
-Name[uk]=Журнал
-Name[uz]=Кундалик
-Name[zh_CN]=日记
-Name[zh_TW]=日誌
+
+Comment=Journal Component (KOrganizer Plugin)
diff --git a/kontact/plugins/korganizer/journalplugin.h b/kontact/plugins/korganizer/journalplugin.h
index f7d0a465..25106164 100644
--- a/kontact/plugins/korganizer/journalplugin.h
+++ b/kontact/plugins/korganizer/journalplugin.h
@@ -33,7 +33,7 @@
class JournalPlugin : public Kontact::Plugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
JournalPlugin( Kontact::Core *core, const char *name, const TQStringList& );
diff --git a/kontact/plugins/korganizer/kcmkorgsummary.cpp b/kontact/plugins/korganizer/kcmkorgsummary.cpp
index 0f17435c..4c0945e7 100644
--- a/kontact/plugins/korganizer/kcmkorgsummary.cpp
+++ b/kontact/plugins/korganizer/kcmkorgsummary.cpp
@@ -37,7 +37,7 @@
#include "kcmkorgsummary.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
extern "C"
{
@@ -54,11 +54,11 @@ KCMKOrgSummary::KCMKOrgSummary( TQWidget *parent, const char *name )
customDaysChanged( 1 );
- connect( mCalendarGroup, TQT_SIGNAL( clicked( int ) ), TQT_SLOT( modified() ) );
- connect( mCalendarGroup, TQT_SIGNAL( clicked( int ) ), TQT_SLOT( buttonClicked( int ) ) );
- connect( mTodoGroup, TQT_SIGNAL( clicked( int ) ), TQT_SLOT( modified() ) );
- connect( mCustomDays, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( modified() ) );
- connect( mCustomDays, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( customDaysChanged( int ) ) );
+ connect( mCalendarGroup, TQ_SIGNAL( clicked( int ) ), TQ_SLOT( modified() ) );
+ connect( mCalendarGroup, TQ_SIGNAL( clicked( int ) ), TQ_SLOT( buttonClicked( int ) ) );
+ connect( mTodoGroup, TQ_SIGNAL( clicked( int ) ), TQ_SLOT( modified() ) );
+ connect( mCustomDays, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( modified() ) );
+ connect( mCustomDays, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( customDaysChanged( int ) ) );
TDEAcceleratorManager::manage( this );
@@ -92,7 +92,7 @@ void KCMKOrgSummary::initGUI()
{
TQVBoxLayout *layout = new TQVBoxLayout( this, 0, KDialog::spacingHint() );
- mCalendarGroup = new TQButtonGroup( 0, Qt::Vertical, i18n( "Appointments" ), this );
+ mCalendarGroup = new TQButtonGroup( 0, TQt::Vertical, i18n( "Appointments" ), this );
TQVBoxLayout *boxLayout = new TQVBoxLayout( mCalendarGroup->layout(),
KDialog::spacingHint() );
@@ -124,7 +124,7 @@ void KCMKOrgSummary::initGUI()
layout->addWidget( mCalendarGroup );
- mTodoGroup = new TQButtonGroup( 2, Qt::Horizontal, i18n( "To-dos" ), this );
+ mTodoGroup = new TQButtonGroup( 2, TQt::Horizontal, i18n( "To-dos" ), this );
new TQRadioButton( i18n( "Show all to-dos" ), mTodoGroup );
new TQRadioButton( i18n( "Show today's to-dos only" ), mTodoGroup );
diff --git a/kontact/plugins/korganizer/kcmkorgsummary.desktop b/kontact/plugins/korganizer/kcmkorgsummary.desktop
index ee425fb7..1092f829 100644
--- a/kontact/plugins/korganizer/kcmkorgsummary.desktop
+++ b/kontact/plugins/korganizer/kcmkorgsummary.desktop
@@ -11,107 +11,7 @@ X-TDE-ParentComponents=kontact_korganizerplugin,kontact_todoplugin
X-TDE-CfgDlgHierarchy=KontactSummary
Name=Appointment and To-do Overview
-Name[bg]=Преглед на срещи и задачи
-Name[ca]=Resum de cites i tasques pendents
-Name[da]=Oversigt over møder og gøremål
-Name[de]=Übersicht über Termine und Aufgaben
-Name[el]=Επισκόπηση ραντεβού και προς υλοποίηση εργασιών
-Name[et]=Kohtumised ja ülesannete ülevaade
-Name[it]=Panoramica appuntamenti e cose da fare
-Name[ja]=約束と To-Do の要約
-Name[nds]=Termin- un Opgaven-Översicht
-Name[nl]=Overzicht van evenementen en taken
-Name[pl]=Spotkania i zadania
-Name[sr]=Преглед састанака и обавеза
-Name[sr@Latn]=Pregled sastanaka i obaveza
-Name[sv]=Översikt av möten och uppgifter
-Name[zh_CN]=约会和待办概览
-Name[zh_TW]=約會與待辦事項概觀
+
Comment=Appointments and To-dos Summary Setup
-Comment[af]=Afsprake en te-doen opsomming opstelling
-Comment[bg]=Приставка за обобщен преглед на срещите и задачите
-Comment[ca]=Configuració del resum de cites i tasques pendents
-Comment[cs]=Nastavení souhrnu schůzek a úkolů
-Comment[da]=Indstilling af oversigt over møder og gøremål
-Comment[de]=Einstellung der Übersicht über Termine und Aufgaben
-Comment[el]=Ρύθμιση ραντεβού και προς υλοποίηση εργασιών
-Comment[es]=Configuración del resumen de citas y de tareas pendientes
-Comment[et]=Kohtumiste ja ülesannete kokkuvõtte seadistus
-Comment[eu]=Hitzordu eta egitekoen laburpenen konfigurazioa
-Comment[fa]=برپایی خلاصۀ قرار ملاقاتها و کارهایی که باید انجام شوند
-Comment[fi]=Tapaamiset ja tehtävät -yhteenvedon asetukset
-Comment[fr]=Configuration du résumé des évènements et des tâches
-Comment[fy]=Oersichtsynstellings foar eveneminten en taken
-Comment[gl]=Configuración de sumarios de tarefas e notas
-Comment[hu]=A találkozók és feladatok áttekintőjének beállítása
-Comment[is]=Uppsetning á yfirliti yfir fundi og verkþætti
-Comment[it]=Impostazioni sommario appuntamenti e cose da fare
-Comment[ja]=約束と To-Do の要約設定
-Comment[kk]=Кездесулер мен Жоспарлар тұжырымының баптау
-Comment[km]=រៀបចំ​សេចក្ដី​សង្ខេប​ការ​ណាត់ និង​ការងារ​ត្រូវ​ធ្វើ
-Comment[lt]=Susitikimų ir užduočių santraukos nustatymai
-Comment[mk]=Поставување на преглед за состаноци и задачи
-Comment[nb]=Oppsett av sammendraget av gjøremål og avtaler
-Comment[nds]=Termin- un Opgaven-Översicht instellen
-Comment[ne]=भेटघाट र गर्नुपर्ने कार्यहरूको सारांश सेटअप
-Comment[nl]=Overzichtsinstellingen voor evenementen en taken
-Comment[nn]=Oppsett av samandrag av avtalar og oppgåver
-Comment[pl]=Ustawienia podsumowania spotkań i zadań
-Comment[pt]=Configuração do Sumário de Compromissos e A-fazeres
-Comment[pt_BR]=Configuração do Resumo de Compromissos e Tarefas
-Comment[ru]=Настройка показа встреч и задач
-Comment[sk]=Nastavenie súhrnu pripomienok a úloh
-Comment[sl]=Nastavitve povzetka sestankov in opravil
-Comment[sr]=Подешавање сажетка састанака и обавеза
-Comment[sr@Latn]=Podešavanje sažetka sastanaka i obaveza
-Comment[sv]=Inställning av översikt av möten och uppgifter
-Comment[tr]=Özel Günler ve Yapılacaklar Listesi Yapılandırması
-Comment[uk]=Налаштування зведення зустрічей і завдань
-Comment[zh_CN]=约会和待办摘要设置
-Comment[zh_TW]=約會與待辦事項摘要設定
+
Keywords=calendar; todos; configure; settings;
-Keywords[af]=calendar;todos;configure;settings;
-Keywords[be]=каляндар; заданні; настроіць; настаўленні; calendar; todos; configure; settings;
-Keywords[bg]=календар; задачи; организатор; calendar; todos; configure; settings;
-Keywords[bs]=calendar; todos; configure; settings; kalendar; zadaci; postavke;
-Keywords[ca]=calendari; pendents; configuració; arranjament;
-Keywords[cs]=kalendář;úkoly;nastavit;nastavení;
-Keywords[da]=kalender; gøremål; indstil; opsætning;
-Keywords[de]=Kalender;Aufgaben;einstellen;Einstellungen;Einrichten;
-Keywords[el]=ημερολόγιο; προς υλοποίηση; ρύθμιση; ρυθμίσεις;
-Keywords[es]=calendario; tareas pendientes; configurar; opciones;
-Keywords[et]=kalender; ülesanded; seadistamine; seadistused;
-Keywords[eu]=egutegia; egitekoak; konfiguratu; ezarpenak;
-Keywords[fa]=تقویم، کارهای انجامی، پیکربندی، تنظیمات;
-Keywords[fi]=kalenteri; tehtävät; muokkaa; asetukset;
-Keywords[fr]=calendrier;agenda;tâches;configurer;paramètres;paramètre;
-Keywords[fy]=kalinder;aginda;taken;todo;ynstellings;konfiguraasje;
-Keywords[ga]=féilire; tascanna; cumraigh; socruithe;
-Keywords[gl]=calendario; pendentes; configurar; opcións;
-Keywords[he]=calendar; todos; configure; settings; יומן; יומנים; משימות; מטלות; הגדרות; תצורה;
-Keywords[hu]=naptár;feladatok;konfigurálás;beállítások;
-Keywords[is]=dagatal; verkþættir; stillingar; stilla;
-Keywords[it]=calendario; cose da fare; configura; impostazioni;
-Keywords[ja]=カレンダー; To-Do; 設定;
-Keywords[km]=ប្រតិទិន;ការងារ​ត្រូវ​ធ្វើ;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;
-Keywords[lt]=calendar; todos; configure; settings; kalendorius; darbai; konfigūruoti; nustatymai;
-Keywords[ms]=kalendar; tugasan; konfigur; seting;
-Keywords[nb]=kalender; gjørelister; oppsett; innstillinger;
-Keywords[nds]=Kalenner;Opgaven;Opgaav;instellen;Mööt;Möten;
-Keywords[ne]=क्यालेन्डर; गर्नुपर्ने कार्यहरू; कन्फिगर; सेटिङ;
-Keywords[nl]=kalender;agenda;taken;todo;instellingen;configuratie;
-Keywords[nn]=kalender;hugselister;oppsett;innstillingar;
-Keywords[pl]=kalendarz;do zrobienia;konfiguracja;ustawienia;
-Keywords[pt]=calendário; a fazer; configurar; configuração;
-Keywords[pt_BR]=calendário; pendências; configurar; configurações;
-Keywords[ru]=calendar;todos;configure;settings;настройка;календарь;задачи;
-Keywords[sk]=kalendár;úlohy;nastavenie;
-Keywords[sl]=koledar;za narediti;nastavitve;nastavi;
-Keywords[sr]=calendar; todos; configure; settings; календар; послови; подеси; поставке;
-Keywords[sr@Latn]=calendar; todos; configure; settings; kalendar; poslovi; podesi; postavke;
-Keywords[sv]=kalender; uppgifter; anpassa; inställningar;
-Keywords[ta]=நாள்காட்டி;செய்யவேண்டியவைகள்;கட்டமைப்பு;அமைவுகள்;
-Keywords[tg]=calendar; todos; configure; settings;танзимот; тақвим;вазифа;
-Keywords[tr]=takvim; yapılacaklar; yapılandır; yapılandırma;
-Keywords[uk]=календар; завдання; налаштування; параметри;
-Keywords[zh_CN]=calendar; todos; configure; settings; 日历; 待办事项; 配置; 设置;
diff --git a/kontact/plugins/korganizer/kcmkorgsummary.h b/kontact/plugins/korganizer/kcmkorgsummary.h
index 18db1df7..ce451f4e 100644
--- a/kontact/plugins/korganizer/kcmkorgsummary.h
+++ b/kontact/plugins/korganizer/kcmkorgsummary.h
@@ -31,7 +31,7 @@ class TQButtonGroup;
class KCMKOrgSummary : public TDECModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/korganizer/korganizerplugin.cpp b/kontact/plugins/korganizer/korganizerplugin.cpp
index b25016aa..475c64a9 100644
--- a/kontact/plugins/korganizer/korganizerplugin.cpp
+++ b/kontact/plugins/korganizer/korganizerplugin.cpp
@@ -57,7 +57,7 @@ K_EXPORT_COMPONENT_FACTORY( libkontact_korganizerplugin,
KOrganizerPluginFactory( "kontact_korganizerplugin" ) )
KOrganizerPlugin::KOrganizerPlugin( Kontact::Core *core, const char *, const TQStringList& )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), "korganizer" ),
+ : Kontact::Plugin( core, core, "korganizer" ),
mIface( 0 )
{
@@ -65,11 +65,11 @@ KOrganizerPlugin::KOrganizerPlugin( Kontact::Core *core, const char *, const TQS
instance()->iconLoader()->addAppDir("tdepim");
insertNewAction( new TDEAction( i18n( "New Event..." ), "newappointment",
- CTRL+SHIFT+Key_E, this, TQT_SLOT( slotNewEvent() ), actionCollection(),
+ CTRL+SHIFT+Key_E, this, TQ_SLOT( slotNewEvent() ), actionCollection(),
"new_event" ) );
insertSyncAction( new TDEAction( i18n( "Synchronize Calendar" ), "reload",
- 0, this, TQT_SLOT( slotSyncEvents() ), actionCollection(),
+ 0, this, TQ_SLOT( slotSyncEvents() ), actionCollection(),
"korganizer_sync" ) );
mUniqueAppWatcher = new Kontact::UniqueAppWatcher(
diff --git a/kontact/plugins/korganizer/korganizerplugin.desktop b/kontact/plugins/korganizer/korganizerplugin.desktop
index 69391f0c..c3d0d9ad 100644
--- a/kontact/plugins/korganizer/korganizerplugin.desktop
+++ b/kontact/plugins/korganizer/korganizerplugin.desktop
@@ -15,78 +15,6 @@ X-TDE-PluginInfo-Version=0.1
X-TDE-PluginInfo-License=GPL
X-TDE-PluginInfo-EnabledByDefault=true
-Comment=Calendar Component (KOrganizer Plugin)
-Comment[bg]=Приставка за KOrganizer
-Comment[ca]=Component de calendari (endollable del KOrganizer)
-Comment[da]=Kalenderkomponent (KOrganizer-plugin)
-Comment[de]=Kalender-Komponente (KOrganizer-Modul)
-Comment[el]=Συστατικό ημερολογίου (Πρόσθετο του KOrganizer)
-Comment[et]=Kalendriplugin (KOrganizer)
-Comment[it]=Componente calendario (plugin KOrganizer)
-Comment[ja]=カレンダーコンポーネント (KOrganizer プラグイン)
-Comment[nds]=Kalenner-Komponent (KOrganizer-Moduul)
-Comment[nl]=Agendacomponent (KOrganizer-plugin)
-Comment[pl]=Składnik kalendarza (wtyczka KOrganizer)
-Comment[sr]=Компонента календара (прикључак KOrganizer-а)
-Comment[sr@Latn]=Komponenta kalendara (priključak KOrganizer-a)
-Comment[sv]=Kalenderkomponent (Korganizer-insticksprogram)
-Comment[zh_CN]=日历组件(KOrganizer 插件)
-Comment[zh_TW]=行事曆組件(KOrganizer 外掛程式)
Name=Calendar
-Name[af]=Kalender
-Name[ar]=التقويم
-Name[be]=Каляндар
-Name[bg]=Календар
-Name[br]=Deiziadur
-Name[bs]=Kalendar
-Name[ca]=Calendari
-Name[cs]=Kalendář
-Name[cy]=Calendr
-Name[da]=Kalender
-Name[de]=Kalender
-Name[el]=Ημερολόγιο
-Name[eo]=Kalendaro
-Name[es]=Calendario
-Name[et]=Kalender
-Name[eu]=Egutegia
-Name[fa]=تقویم
-Name[fi]=Kalenteri
-Name[fr]=Calendrier
-Name[fy]=Aginda
-Name[ga]=Féilire
-Name[gl]=Calendario
-Name[he]=לוח שנה
-Name[hi]=कैलेन्डर
-Name[hu]=Naptár
-Name[is]=Dagatal
-Name[it]=Calendario
-Name[ja]=カレンダー
-Name[kk]=Күнтізбе
-Name[km]=ប្រតិទិន
-Name[lt]=Kalendorius
-Name[mk]=Календар
-Name[ms]=Kalendar
-Name[nb]=Kalender
-Name[nds]=Kalenner
-Name[ne]=क्यालेन्डर
-Name[nl]=Agenda
-Name[nn]=Kalender
-Name[pa]=ਕੈਲੰਡਰ
-Name[pl]=Kalendarz
-Name[pt]=Calendário
-Name[pt_BR]=Calendário
-Name[ru]=Календарь
-Name[se]=Kaleandar
-Name[sk]=Kalendár
-Name[sl]=Koledar
-Name[sr]=Календар
-Name[sr@Latn]=Kalendar
-Name[sv]=Kalender
-Name[ta]=நாள்காட்டி
-Name[tg]=Тақвим
-Name[th]=บันทึกประจำวัน
-Name[tr]=Takvim
-Name[uk]=Календар
-Name[uz]=Календар
-Name[zh_CN]=日历
-Name[zh_TW]=行事曆
+
+Comment=Calendar Component (KOrganizer Plugin)
diff --git a/kontact/plugins/korganizer/korganizerplugin.h b/kontact/plugins/korganizer/korganizerplugin.h
index 3aaa4083..d955b3dc 100644
--- a/kontact/plugins/korganizer/korganizerplugin.h
+++ b/kontact/plugins/korganizer/korganizerplugin.h
@@ -35,7 +35,7 @@
class KOrganizerPlugin : public Kontact::Plugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOrganizerPlugin( Kontact::Core *core, const char *name, const TQStringList& );
diff --git a/kontact/plugins/korganizer/summarywidget.cpp b/kontact/plugins/korganizer/summarywidget.cpp
index 93b2c2dd..6a3c0432 100644
--- a/kontact/plugins/korganizer/summarywidget.cpp
+++ b/kontact/plugins/korganizer/summarywidget.cpp
@@ -66,9 +66,9 @@ SummaryWidget::SummaryWidget( KOrganizerPlugin *plugin, TQWidget *parent,
mCalendar = KOrg::StdCalendar::self();
- connect( mCalendar, TQT_SIGNAL( calendarChanged() ), TQT_SLOT( updateView() ) );
- connect( mPlugin->core(), TQT_SIGNAL( dayChanged( const TQDate& ) ),
- TQT_SLOT( updateView() ) );
+ connect( mCalendar, TQ_SIGNAL( calendarChanged() ), TQ_SLOT( updateView() ) );
+ connect( mPlugin->core(), TQ_SIGNAL( dayChanged( const TQDate& ) ),
+ TQ_SLOT( updateView() ) );
updateView();
}
@@ -202,10 +202,10 @@ void SummaryWidget::updateView()
mLayout->addWidget( urlLabel, counter, 2 );
mLabels.append( urlLabel );
- connect( urlLabel, TQT_SIGNAL( leftClickedURL( const TQString& ) ),
- this, TQT_SLOT( viewEvent( const TQString& ) ) );
- connect( urlLabel, TQT_SIGNAL( rightClickedURL( const TQString& ) ),
- this, TQT_SLOT( popupMenu( const TQString& ) ) );
+ connect( urlLabel, TQ_SIGNAL( leftClickedURL( const TQString& ) ),
+ this, TQ_SLOT( viewEvent( const TQString& ) ) );
+ connect( urlLabel, TQ_SIGNAL( rightClickedURL( const TQString& ) ),
+ this, TQ_SLOT( popupMenu( const TQString& ) ) );
TQString tipText( KCal::IncidenceFormatter::toolTipStr( mCalendar, ev, dt, true ) );
if ( !tipText.isEmpty() ) {
@@ -286,7 +286,7 @@ void SummaryWidget::popupMenu( const TQString &uid )
bool SummaryWidget::eventFilter( TQObject *obj, TQEvent* e )
{
if ( obj->inherits( "KURLLabel" ) ) {
- KURLLabel* label = static_cast<KURLLabel*>( TQT_TQWIDGET(obj) );
+ KURLLabel* label = static_cast<KURLLabel*>( obj );
if ( e->type() == TQEvent::Enter )
emit message( i18n( "Edit Appointment: \"%1\"" ).arg( label->text() ) );
if ( e->type() == TQEvent::Leave )
diff --git a/kontact/plugins/korganizer/summarywidget.h b/kontact/plugins/korganizer/summarywidget.h
index 02fc11c4..d0c9353e 100644
--- a/kontact/plugins/korganizer/summarywidget.h
+++ b/kontact/plugins/korganizer/summarywidget.h
@@ -38,7 +38,7 @@ class KOrganizerPlugin;
class SummaryWidget : public Kontact::Summary
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/korganizer/todoplugin.cpp b/kontact/plugins/korganizer/todoplugin.cpp
index 885c835a..bcb2c566 100644
--- a/kontact/plugins/korganizer/todoplugin.cpp
+++ b/kontact/plugins/korganizer/todoplugin.cpp
@@ -55,18 +55,18 @@ K_EXPORT_COMPONENT_FACTORY( libkontact_todoplugin,
TodoPluginFactory( "kontact_todoplugin" ) )
TodoPlugin::TodoPlugin( Kontact::Core *core, const char *, const TQStringList& )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), "korganizer" ),
+ : Kontact::Plugin( core, core, "korganizer" ),
mIface( 0 )
{
setInstance( TodoPluginFactory::instance() );
instance()->iconLoader()->addAppDir("tdepim");
insertNewAction( new TDEAction( i18n( "New To-do..." ), "newtodo",
- CTRL+SHIFT+Key_T, this, TQT_SLOT( slotNewTodo() ), actionCollection(),
+ CTRL+SHIFT+Key_T, this, TQ_SLOT( slotNewTodo() ), actionCollection(),
"new_todo" ) );
insertSyncAction( new TDEAction( i18n( "Synchronize To-do List" ), "reload",
- 0, this, TQT_SLOT( slotSyncTodos() ), actionCollection(),
+ 0, this, TQ_SLOT( slotSyncTodos() ), actionCollection(),
"todo_sync" ) );
mUniqueAppWatcher = new Kontact::UniqueAppWatcher(
diff --git a/kontact/plugins/korganizer/todoplugin.desktop b/kontact/plugins/korganizer/todoplugin.desktop
index c93e5537..e5085117 100644
--- a/kontact/plugins/korganizer/todoplugin.desktop
+++ b/kontact/plugins/korganizer/todoplugin.desktop
@@ -15,37 +15,6 @@ X-TDE-PluginInfo-Version=0.1
X-TDE-PluginInfo-License=GPL
X-TDE-PluginInfo-EnabledByDefault=true
-Comment=To-do List Component (KOrganizer plugin)
-Comment[bg]=Приставка за KOrganizer
-Comment[ca]=Component de llista de pendents (endollable del KOrganizer)
-Comment[da]=Komponent til gøremålsliste (KOrganizer-plugin)
-Comment[de]=Aufgabenlisten-Komponente (KOrganizer-Modul)
-Comment[el]=Συστατικό λίστα προς υλοποίηση εργασιών (Πρόσθετο του KOrganizer)
-Comment[et]=Ülesannete nimekirja plugin (KOrganizer)
-Comment[it]=Componente elenco delle cose da fare (plugin KOrganizer)
-Comment[ja]=To-Do リストコンポーネント (KOrganizer プラグイン)
-Comment[nds]=Opgavenlist-Komponent (KOrganizer-Moduul)
-Comment[nl]=Takenlijstcomponent (KOrganizer-plugin)
-Comment[pl]=Składnik zadań (wtyczka KOrganizer)
-Comment[sr]=Прикључак листе обавеза (прикључак KOrganizer-а)
-Comment[sr@Latn]=Priključak liste obaveza (priključak KOrganizer-a)
-Comment[sv]=Uppgiftslistkomponent (Korganizer-insticksprogram)
-Comment[zh_CN]=待办清单组件(KOrganizer 插件)
-Comment[zh_TW]=待辦事項清單組件(KOrganizer 外掛程式)
Name=To-do
-Name[bg]=Задачи
-Name[ca]=Pendents
-Name[da]=Gøremål
-Name[de]=Aufgaben
-Name[el]=Προς υλοποίηση εργασίες
-Name[et]=Ülesanded
-Name[it]=Cose da fare
-Name[ja]=To-Do
-Name[nds]=Opgaav
-Name[nl]=Takenlijst
-Name[pl]=Lista zadań
-Name[sr]=Обавезе
-Name[sr@Latn]=Obaveze
-Name[sv]=Uppgift
-Name[zh_CN]=待办清单
-Name[zh_TW]=待辦事項
+
+Comment=To-do List Component (KOrganizer plugin)
diff --git a/kontact/plugins/korganizer/todoplugin.h b/kontact/plugins/korganizer/todoplugin.h
index 4d62a72d..767d0de3 100644
--- a/kontact/plugins/korganizer/todoplugin.h
+++ b/kontact/plugins/korganizer/todoplugin.h
@@ -33,7 +33,7 @@
class TodoPlugin : public Kontact::Plugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
TodoPlugin( Kontact::Core *core, const char *name, const TQStringList& );
diff --git a/kontact/plugins/korganizer/todosummarywidget.cpp b/kontact/plugins/korganizer/todosummarywidget.cpp
index 255ee2ef..bdab72a9 100644
--- a/kontact/plugins/korganizer/todosummarywidget.cpp
+++ b/kontact/plugins/korganizer/todosummarywidget.cpp
@@ -68,9 +68,9 @@ TodoSummaryWidget::TodoSummaryWidget( TodoPlugin *plugin,
mCalendar = KOrg::StdCalendar::self();
- connect( mCalendar, TQT_SIGNAL( calendarChanged() ), TQT_SLOT( updateView() ) );
- connect( mPlugin->core(), TQT_SIGNAL( dayChanged( const TQDate& ) ),
- TQT_SLOT( updateView() ) );
+ connect( mCalendar, TQ_SIGNAL( calendarChanged() ), TQ_SLOT( updateView() ) );
+ connect( mPlugin->core(), TQ_SIGNAL( dayChanged( const TQDate& ) ),
+ TQ_SLOT( updateView() ) );
updateView();
}
@@ -163,10 +163,10 @@ void TodoSummaryWidget::updateView()
mLayout->addWidget( urlLabel, counter, 2 );
mLabels.append( urlLabel );
- connect( urlLabel, TQT_SIGNAL( leftClickedURL( const TQString& ) ),
- this, TQT_SLOT( viewTodo( const TQString& ) ) );
- connect( urlLabel, TQT_SIGNAL( rightClickedURL( const TQString& ) ),
- this, TQT_SLOT( popupMenu( const TQString& ) ) );
+ connect( urlLabel, TQ_SIGNAL( leftClickedURL( const TQString& ) ),
+ this, TQ_SLOT( viewTodo( const TQString& ) ) );
+ connect( urlLabel, TQ_SIGNAL( rightClickedURL( const TQString& ) ),
+ this, TQ_SLOT( popupMenu( const TQString& ) ) );
TQString tipText( KCal::IncidenceFormatter::toolTipStr( mCalendar, todo, currentDate, true ) );
if ( !tipText.isEmpty() ) {
@@ -211,7 +211,7 @@ void TodoSummaryWidget::removeTodo( const TQString &uid )
void TodoSummaryWidget::completeTodo( const TQString &uid )
{
KCal::Todo *todo = mCalendar->todo( uid );
- IncidenceChanger *changer = new IncidenceChanger( mCalendar, TQT_TQOBJECT(this) );
+ IncidenceChanger *changer = new IncidenceChanger( mCalendar, this );
if ( !todo->isReadOnly() && changer->beginChange( todo, 0, TQString() ) ) {
KCal::Todo *oldTodo = todo->clone();
todo->setCompleted( TQDateTime::currentDateTime() );
@@ -251,7 +251,7 @@ void TodoSummaryWidget::popupMenu( const TQString &uid )
bool TodoSummaryWidget::eventFilter( TQObject *obj, TQEvent* e )
{
if ( obj->inherits( "KURLLabel" ) ) {
- KURLLabel* label = static_cast<KURLLabel*>( TQT_TQWIDGET(obj) );
+ KURLLabel* label = static_cast<KURLLabel*>( obj );
if ( e->type() == TQEvent::Enter )
emit message( i18n( "Edit To-do: \"%1\"" ).arg( label->text() ) );
if ( e->type() == TQEvent::Leave )
diff --git a/kontact/plugins/korganizer/todosummarywidget.h b/kontact/plugins/korganizer/todosummarywidget.h
index 292444cd..6aa1bc4d 100644
--- a/kontact/plugins/korganizer/todosummarywidget.h
+++ b/kontact/plugins/korganizer/todosummarywidget.h
@@ -38,7 +38,7 @@ class TodoPlugin;
class TodoSummaryWidget : public Kontact::Summary
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/kpilot/kpilot_plugin.cpp b/kontact/plugins/kpilot/kpilot_plugin.cpp
index 81053917..9239db85 100644
--- a/kontact/plugins/kpilot/kpilot_plugin.cpp
+++ b/kontact/plugins/kpilot/kpilot_plugin.cpp
@@ -35,7 +35,7 @@ K_EXPORT_COMPONENT_FACTORY( libkontact_kpilotplugin,
KPilotPluginFactory( "kontact_kpilotplugin" ) )
KPilotPlugin::KPilotPlugin( Kontact::Core *core, const char *name, const TQStringList& )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), "kpilot" ), mAboutData( 0 )
+ : Kontact::Plugin( core, core, "kpilot" ), mAboutData( 0 )
{
setInstance( KPilotPluginFactory::instance() );
// TODO: Make sure kpilotDaemon is running!
diff --git a/kontact/plugins/kpilot/kpilotplugin.desktop b/kontact/plugins/kpilot/kpilotplugin.desktop
index 20b1d575..370c3833 100644
--- a/kontact/plugins/kpilot/kpilotplugin.desktop
+++ b/kontact/plugins/kpilot/kpilotplugin.desktop
@@ -15,25 +15,6 @@ X-TDE-PluginInfo-Version=0.1
X-TDE-PluginInfo-License=GPL
X-TDE-PluginInfo-EnabledByDefault=true
-Comment=Palm Tools Component (KPilot Plugin)
-Comment[bg]=Приставка за KPilot
-Comment[ca]=Component d'eines de la Palm (endollable del KPilot)
-Comment[da]=Komponent til palm-værktøjer (KPilot-plugin)
-Comment[de]=Palm Werkzeuge (KPilot-Modul)
-Comment[el]=Συστατικό εργαλείων Palm (Πρόσθετο του KPilot)
-Comment[et]=Palmi tööriistade plugin (KPilot)
-Comment[it]=Componente strumenti Palm (plugin KPilot)
-Comment[ja]=Palm ツールコンポーネント (KPilot プラグイン)
-Comment[nds]=Palmreekner-Warktüüchkomponent (KPilot-Moduul)
-Comment[nl]=Component met hulpmiddelen voor PalmOS(tm)-apparaten (KPilot-plugin)
-Comment[pl]=Składnik narzędzi Palma (wtyczka KPilot)
-Comment[sr]=Компонента алата за Palm (прикључак KPilot-а)
-Comment[sr@Latn]=Komponenta alata za Palm (priključak KPilot-a)
-Comment[sv]=Palm Pilot-verktygskomponent (Kpilot-insticksprogram)
-Comment[zh_CN]=Palm 工具组件(KPilot 插件)
-Comment[zh_TW]=Palm 工具組件(KPilot 外掛程式)
Name=Palm
-Name[de]=KPilot-Einrichtung
-Name[nds]=Palmreekner
-Name[nl]=PalmOS(tm)-apparaat
-Name[sv]=Palm Pilot
+
+Comment=Palm Tools Component (KPilot Plugin)
diff --git a/kontact/plugins/kpilot/summarywidget.cpp b/kontact/plugins/kpilot/summarywidget.cpp
index 9ab256d2..cc91632f 100644
--- a/kontact/plugins/kpilot/summarywidget.cpp
+++ b/kontact/plugins/kpilot/summarywidget.cpp
@@ -71,8 +71,8 @@ SummaryWidget::SummaryWidget( TQWidget *parent, const char *name )
mLayout->addWidget( mSyncTimeLabel, row, 1 );
mShowSyncLogLabel = new KURLLabel( "", i18n( "[View Sync Log]" ), this );
mLayout->addWidget( mShowSyncLogLabel, row, 3 );
- connect( mShowSyncLogLabel, TQT_SIGNAL( leftClickedURL( const TQString& ) ),
- this, TQT_SLOT( showSyncLog( const TQString& ) ) );
+ connect( mShowSyncLogLabel, TQ_SIGNAL( leftClickedURL( const TQString& ) ),
+ this, TQ_SLOT( showSyncLog( const TQString& ) ) );
// User
row++;
@@ -110,8 +110,8 @@ SummaryWidget::SummaryWidget( TQWidget *parent, const char *name )
mLayout->addMultiCellWidget( mNoConnectionLabel, row, row, 1, 2 );
mNoConnectionStartLabel = new KURLLabel( "", i18n( "[Start KPilot]" ), this );
mLayout->addWidget( mNoConnectionStartLabel, row, 3 );
- connect( mNoConnectionStartLabel, TQT_SIGNAL( leftClickedURL( const TQString& ) ),
- this, TQT_SLOT( startKPilot() ) );
+ connect( mNoConnectionStartLabel, TQ_SIGNAL( leftClickedURL( const TQString& ) ),
+ this, TQ_SLOT( startKPilot() ) );
if ( !kapp->dcopClient()->isApplicationRegistered( "kpilotDaemon" ) ) {
startKPilot();
@@ -119,7 +119,7 @@ SummaryWidget::SummaryWidget( TQWidget *parent, const char *name )
connectDCOPSignal( 0, 0, "kpilotDaemonStatusDetails(TQDateTime,TQString,TQStringList,TQString,TQString,TQString,bool)",
"receiveDaemonStatusDetails(TQDateTime,TQString,TQStringList,TQString,TQString,TQString,bool)", false );
- connect( kapp->dcopClient(), TQT_SIGNAL( applicationRemoved( const TQCString & ) ), TQT_SLOT( slotAppRemoved( const TQCString& ) ) );
+ connect( kapp->dcopClient(), TQ_SIGNAL( applicationRemoved( const TQCString & ) ), TQ_SLOT( slotAppRemoved( const TQCString& ) ) );
}
SummaryWidget::~SummaryWidget()
diff --git a/kontact/plugins/kpilot/summarywidget.h b/kontact/plugins/kpilot/summarywidget.h
index 209934fd..086fbd64 100644
--- a/kontact/plugins/kpilot/summarywidget.h
+++ b/kontact/plugins/kpilot/summarywidget.h
@@ -44,7 +44,7 @@ class KURLLabel;
class SummaryWidget : public Kontact::Summary, public DCOPObject
{
- Q_OBJECT
+ TQ_OBJECT
K_DCOP
diff --git a/kontact/plugins/newsticker/CMakeLists.txt b/kontact/plugins/newsticker/CMakeLists.txt
index cea04661..849ab442 100644
--- a/kontact/plugins/newsticker/CMakeLists.txt
+++ b/kontact/plugins/newsticker/CMakeLists.txt
@@ -24,8 +24,17 @@ link_directories(
##### other data ################################
-install( FILES kcmkontactknt.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
-install( FILES newstickerplugin.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kontact )
+tde_create_translated_desktop(
+ SOURCE kcmkontactknt.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR kontact-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE newstickerplugin.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/kontact
+ PO_DIR kontact-desktops
+)
##### libkontact_newstickerplugin (module) ######
diff --git a/kontact/plugins/newsticker/kcmkontactknt.cpp b/kontact/plugins/newsticker/kcmkontactknt.cpp
index 577bc992..4a698ff8 100644
--- a/kontact/plugins/newsticker/kcmkontactknt.cpp
+++ b/kontact/plugins/newsticker/kcmkontactknt.cpp
@@ -45,7 +45,7 @@
#include "newsfeeds.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
extern "C"
{
@@ -80,10 +80,10 @@ NewsEditDialog::NewsEditDialog( const TQString& title, const TQString& url, TQWi
mTitle->setText( title );
mURL->setText( url );
mTitle->setFocus();
- connect( mTitle, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( modified() ) );
- connect( mURL, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( modified() ) );
+ connect( mTitle, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( modified() ) );
+ connect( mURL, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( modified() ) );
modified();
}
@@ -133,18 +133,18 @@ KCMKontactKNT::KCMKontactKNT( TQWidget *parent, const char *name )
{
initGUI();
- connect( mAllNews, TQT_SIGNAL( currentChanged( TQListViewItem* ) ),
- this, TQT_SLOT( allCurrentChanged( TQListViewItem* ) ) );
- connect( mSelectedNews, TQT_SIGNAL( selectionChanged( TQListViewItem* ) ),
- this, TQT_SLOT( selectedChanged( TQListViewItem* ) ) );
+ connect( mAllNews, TQ_SIGNAL( currentChanged( TQListViewItem* ) ),
+ this, TQ_SLOT( allCurrentChanged( TQListViewItem* ) ) );
+ connect( mSelectedNews, TQ_SIGNAL( selectionChanged( TQListViewItem* ) ),
+ this, TQ_SLOT( selectedChanged( TQListViewItem* ) ) );
- connect( mUpdateInterval, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( modified() ) );
- connect( mArticleCount, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( modified() ) );
+ connect( mUpdateInterval, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( modified() ) );
+ connect( mArticleCount, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( modified() ) );
- connect( mAddButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( addNews() ) );
- connect( mRemoveButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( removeNews() ) );
- connect( mNewButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( newFeed() ) );
- connect( mDeleteButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( deleteFeed() ) );
+ connect( mAddButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( addNews() ) );
+ connect( mRemoveButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( removeNews() ) );
+ connect( mNewButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( newFeed() ) );
+ connect( mDeleteButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( deleteFeed() ) );
TDEAcceleratorManager::manage( this );
@@ -356,7 +356,7 @@ void KCMKontactKNT::initGUI()
mSelectedNews->setFullWidth( true );
layout->addWidget( mSelectedNews, 0, 2 );
- TQGroupBox *box = new TQGroupBox( 0, Qt::Vertical,
+ TQGroupBox *box = new TQGroupBox( 0, TQt::Vertical,
i18n( "News Feed Settings" ), this );
TQGridLayout *boxLayout = new TQGridLayout( box->layout(), 2, 3,
diff --git a/kontact/plugins/newsticker/kcmkontactknt.desktop b/kontact/plugins/newsticker/kcmkontactknt.desktop
index 0a4473b1..8e4dbf28 100644
--- a/kontact/plugins/newsticker/kcmkontactknt.desktop
+++ b/kontact/plugins/newsticker/kcmkontactknt.desktop
@@ -11,143 +11,7 @@ X-TDE-ParentComponents=kontact_newstickerplugin
X-TDE-CfgDlgHierarchy=KontactSummary
Name=News Ticker
-Name[af]=Nuus tikker
-Name[az]=Xəbər Gözləyici
-Name[br]=Kliker keleier
-Name[ca]=Teletip de notícies
-Name[cy]=Ticer Newyddion
-Name[da]=Nyhedstelegraf
-Name[de]=Newsticker
-Name[el]=Προβολέας ειδήσεων
-Name[eo]=Novaĵprezentilo
-Name[es]=Teletipo de noticias
-Name[et]=Uudistejälgija
-Name[eu]=Berri markatzailea
-Name[fa]=Ticker اخبار
-Name[fi]=Uutisnäytin
-Name[fr]=Téléscripteur de nouvelles
-Name[fy]=Nijs Tikker
-Name[gl]=Colector de Novas
-Name[he]=חדשות רצות
-Name[hi]=न्यूज टिकर
-Name[hr]=Ticker sa novostima
-Name[hu]=RSS hírmegjelenítő
-Name[id]=Ticker Berita
-Name[is]=Fréttastrimill
-Name[it]=Ticker notizie
-Name[ja]=ニュースティッカー
-Name[kk]=Жаңалық таспасы
-Name[km]=កម្មវិធី​ទទួល​ព័ត៌មាន
-Name[lt]=News pranešėjas
-Name[lv]=Ziņu Tikkers
-Name[ms]=Pengetik Berita
-Name[nb]=Nyhetstelegraf
-Name[nds]=Narichten-Ticker
-Name[ne]=न्यूज टिकर
-Name[nn]=Nyheitstelegraf
-Name[pl]=Wiadomości
-Name[pt]=Extractor de Notícias
-Name[pt_BR]=Animação de Notícias
-Name[ro]=Ştiri Internet
-Name[ru]=Новости
-Name[sk]=Sledovanie správ
-Name[sl]=Prikazovalnik novic
-Name[sr]=Откуцавач вести
-Name[sr@Latn]=Otkucavač vesti
-Name[sv]=Nyhetsövervakare
-Name[ta]=செய்திகள் குறிப்பான்
-Name[tg]=Ахборот
-Name[th]=ตั๋วข่าว
-Name[tr]=Haber İzleyici
-Name[uk]=Стрічка новин
-Name[ven]=Musengulusi wa Mafhungo
-Name[vi]=Trình kiểm tra news
-Name[xh]=Umchola-choli weendaba
-Name[zh_CN]=新闻点点通
-Name[zh_TW]=新聞顯示器
-Name[zu]=Umlungiseleli Wezindaba
+
Comment=News Ticker Summary Setup
-Comment[af]=Nuus tikker opsomming opstelling
-Comment[bg]=Настройване обобщението на новините
-Comment[ca]=Configuració del resum del teletip de notícies
-Comment[cs]=Nastavení souhrnu newstickeru
-Comment[da]=Nyhedstelegrafs opsætning af opsummering
-Comment[de]=Einstellung der News-übersicht
-Comment[el]=Περίληψη ρύθμισης προβολέα ρυθμίσεων
-Comment[es]=Configuración del resumen del teletipo de noticias
-Comment[et]=Uudistejälgija kokkuvõtte seadistus
-Comment[eu]=Berri markatzailearen laburpenaren konfigurazioa
-Comment[fa]=برپایی خلاصۀTicker اخبار
-Comment[fi]=Uutisnäyttimen yhteenvedon asetukset
-Comment[fr]=Configuration du résumé du téléscripteur de nouvelles
-Comment[fy]=Oersichtsynstellings nijstikker
-Comment[gl]=Configuración do Resumo de Fontes de Novas
-Comment[he]=הגדרות תקציר חדשות רצות
-Comment[hu]=A hírmegjelenítő áttekintőjének beállításai
-Comment[is]=Uppsetning á yfirliti yfir fréttastrimla
-Comment[it]=Impostazioni sommario ticker notizie
-Comment[ja]=ニュースティッカーの設定
-Comment[kk]=Жаңалық таспасының тұжырымынын баптау
-Comment[km]=រៀបចំ​សេចក្ដី​សង្ខេប​កម្មវិធី​ទទួល​ព័ត៌មាន
-Comment[lt]=News Ticker santraukos nustatymai
-Comment[nb]=Oppsett av sammendraget til nyhetstelegrafen
-Comment[nds]=Narichten-Översicht instellen
-Comment[ne]=न्यूज टिकर सारांश सेटअप
-Comment[nl]=Overzichtsinstellingen nieuwsticker
-Comment[nn]=Oppsett av nyhendetelegrafsamandrag
-Comment[pl]=Ustawienia podsumowania wiadomości
-Comment[pt]=Configuração do Sumário do Extractor de Notícias
-Comment[pt_BR]=Configuração de Resumo de Notícias
-Comment[ru]=Настройка дайджеста новостей
-Comment[sk]=Nastavenie súhrnu správ
-Comment[sl]=Nastavitve povzetka novic
-Comment[sr]=Подешавање сажетка приказивања вести
-Comment[sr@Latn]=Podešavanje sažetka prikazivanja vesti
-Comment[sv]=Inställning av nyhetsövervakningsöversikt
-Comment[tr]=Haber Yakalayıcı Özet Ayarları
-Comment[uk]=Налаштування зведення стрічки новин
-Comment[zh_CN]=新闻点点通摘要设置
-Comment[zh_TW]=新聞顯示器摘要設定
+
Keywords=news ticker; configure; settings;
-Keywords[bg]=новини; източник; настройки; news ticker; configure; settings;
-Keywords[bs]=news ticker; configure; settings; vijesti; newsticker; podešavanje;
-Keywords[ca]=teletip; configura; opcions;
-Keywords[cs]=novinky;nastavení;
-Keywords[da]=nyhedstelegraf; indstil; opsætning;
-Keywords[de]=Newsticker;Einrichten;Einstellungen;
-Keywords[el]=προβολέας ειδήσεων; ρύθμιση; ρυθμίσεις;
-Keywords[es]=teletipo de noticias; configurar; opciones;
-Keywords[et]=uudistejälgija; seadistamine; seadistused;
-Keywords[eu]=berri markatzaileak; konfiguratu; ezarpenak;
-Keywords[fa]=ticker اخبار، پیکربندی، تنظیمات;
-Keywords[fi]=uutiset; asetukset; muokkaa;
-Keywords[fr]=configurer;paramètre;news ticker; téléscripteur;
-Keywords[fy]=newsticker;instellingen;ynstellings;configuratie;nieuws;nijs;
-Keywords[gl]=capturador de novas; configurar; opcións;
-Keywords[he]=news ticker; configure; settings; חדשות; תצורה; הגדרות;
-Keywords[hu]=hírmegjelenítő;konfigurálás;beállítások;
-Keywords[is]=fréttastrimill; stillingar; stilla;
-Keywords[it]=ticker notizie; configura; impostazioni;
-Keywords[ja]=ニュースティッカー;設定;設定;
-Keywords[km]=កម្មវិធី​ទទួល​ព័ត៌មាន;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;
-Keywords[lt]=news ticker; configure; settings; konfigūravimas; nustatymai; naujienų pranešėjas;
-Keywords[ms]=Pengetik berita; konfigur; seting;
-Keywords[nb]=nyhetstelegraf; oppsett; innstillinger;
-Keywords[nds]=Narichten-Ticker; instellen;
-Keywords[ne]=न्यूज टिकर; कन्फिगर; सेटिङ;
-Keywords[nl]=newsticker;instellingen;configuratie;nieuws;
-Keywords[nn]=nyhendetelegraf;oppsett;innstillingar;
-Keywords[pl]=news ticker;wiadomości;nagłówki;konfiguracja;ustawienia;
-Keywords[pt]=notícias; configurar; configuração;
-Keywords[pt_BR]=mostrador de notícias;configurar; preferências;
-Keywords[ru]=news ticker; configure; settings; настройка; новости;
-Keywords[sk]=zdroje správ;nastavenie;
-Keywords[sl]=prikazovalnik novic; nastavi; nastavitve;
-Keywords[sr]=news ticker; подеси; поставке;
-Keywords[sr@Latn]=news ticker; podesi; postavke;
-Keywords[sv]=nyhetsövervakare; anpassa; inställningar;
-Keywords[ta]=கேமுகவரிப்புத்தகம்;கட்டமைப்பு;அமைவுகள்;
-Keywords[tg]=news ticker; configure; settings; танзимот;
-Keywords[tr]=haber izleyici; yapılandırma; yapılandır;
-Keywords[uk]=новини; налаштування; параметри;
-Keywords[zh_CN]=news ticker; configure; settings; 新闻点点通; 配置; 设置;
diff --git a/kontact/plugins/newsticker/kcmkontactknt.h b/kontact/plugins/newsticker/kcmkontactknt.h
index a44cae7f..9227cb54 100644
--- a/kontact/plugins/newsticker/kcmkontactknt.h
+++ b/kontact/plugins/newsticker/kcmkontactknt.h
@@ -37,7 +37,7 @@ class NewsItem;
class KCMKontactKNT : public TDECModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -85,7 +85,7 @@ class KCMKontactKNT : public TDECModule
class NewsEditDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/newsticker/newsticker_plugin.cpp b/kontact/plugins/newsticker/newsticker_plugin.cpp
index 04d46883..62d27fc8 100644
--- a/kontact/plugins/newsticker/newsticker_plugin.cpp
+++ b/kontact/plugins/newsticker/newsticker_plugin.cpp
@@ -32,7 +32,7 @@ K_EXPORT_COMPONENT_FACTORY( libkontact_newstickerplugin,
NewsTickerPluginFactory( "kontact_newstickerplugin" ) )
NewsTickerPlugin::NewsTickerPlugin( Kontact::Core *core, const char *name, const TQStringList& )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), name )
+ : Kontact::Plugin( core, core, name )
{
setInstance( NewsTickerPluginFactory::instance() );
}
diff --git a/kontact/plugins/newsticker/newstickerplugin.desktop b/kontact/plugins/newsticker/newstickerplugin.desktop
index e2fbab6a..72dd8205 100644
--- a/kontact/plugins/newsticker/newstickerplugin.desktop
+++ b/kontact/plugins/newsticker/newstickerplugin.desktop
@@ -14,78 +14,6 @@ X-TDE-PluginInfo-Version=0.1
X-TDE-PluginInfo-License=LGPL
X-TDE-PluginInfo-EnabledByDefault=true
-Comment=Newsticker Component
-Comment[bg]=Компонент за новини
-Comment[ca]=Component de teletip de notícies
-Comment[da]=Nyhedstelegraf-komponent
-Comment[de]=Newsticker-Komponente
-Comment[el]=Συστατικό προβολέα ειδήσεων
-Comment[et]=Uudistejälgija plugin
-Comment[it]=Componente ticker notizie
-Comment[ja]=ニュースティッカーコンポーネント
-Comment[nds]=Narichtentelegraaf-Komponent
-Comment[nl]=Nieuwstickercomponent
-Comment[pl]=Składnik paska wiadomości
-Comment[sr]=Компонента откуцавача вести
-Comment[sr@Latn]=Komponenta otkucavača vesti
-Comment[sv]=Nyhetsövervakningskomponent
-Comment[zh_CN]=新闻点点通组件
-Comment[zh_TW]=新聞顯示組件
Name=News
-Name[af]=Nuus
-Name[ar]=الأخبار
-Name[be]=Навіны
-Name[bg]=Новини
-Name[br]=Keleier
-Name[bs]=Usenet
-Name[ca]=Notícies
-Name[cs]=Novinky
-Name[cy]=Newyddion
-Name[da]=Nyheder
-Name[de]=Newsticker
-Name[el]=Νέα
-Name[eo]=Novaĵoj
-Name[es]=Noticias
-Name[et]=Uudisegrupid
-Name[eu]=Berriak
-Name[fa]=اخبار
-Name[fi]=Uutiset
-Name[fr]=Nouvelles
-Name[fy]=Nijs
-Name[ga]=Nuacht
-Name[gl]=Novas
-Name[he]=חדשות
-Name[hi]=समाचार
-Name[hu]=Hírek
-Name[is]=Fréttir
-Name[ja]=ニュース
-Name[kk]=Жаңалықтар
-Name[km]=ព័ត៌មាន
-Name[lt]=Naujienos
-Name[mk]=Вести
-Name[ms]=Berita
-Name[nb]=Njus
-Name[nds]=Narichten
-Name[ne]=समाचार
-Name[nl]=Nieuws
-Name[nn]=Nyheiter
-Name[pa]=ਖ਼ਬਰਾਂ
-Name[pl]=Listy dyskusyjne
-Name[pt]=Notícias
-Name[pt_BR]=Notícias
-Name[ro]=Ştiri
-Name[ru]=Новости
-Name[se]=Ođđasat
-Name[sk]=Diskusné skupiny
-Name[sl]=Novice
-Name[sr]=Вести
-Name[sr@Latn]=Vesti
-Name[sv]=Nyheter
-Name[ta]=செய்திகள்
-Name[tg]=Ахборот
-Name[th]=ข่าว
-Name[tr]=Haberler
-Name[uk]=Новини
-Name[uz]=Янгиликлар
-Name[zh_CN]=新闻
-Name[zh_TW]=新聞
+
+Comment=Newsticker Component
diff --git a/kontact/plugins/newsticker/summarywidget.cpp b/kontact/plugins/newsticker/summarywidget.cpp
index f385b269..b7b3f866 100644
--- a/kontact/plugins/newsticker/summarywidget.cpp
+++ b/kontact/plugins/newsticker/summarywidget.cpp
@@ -68,7 +68,7 @@ SummaryWidget::SummaryWidget( TQWidget *parent, const char *name )
mBaseWidget = new TQWidget( this, "baseWidget" );
vlay->addWidget( mBaseWidget );
- connect( &mTimer, TQT_SIGNAL( timeout() ), this, TQT_SLOT( updateDocuments() ) );
+ connect( &mTimer, TQ_SIGNAL( timeout() ), this, TQ_SLOT( updateDocuments() ) );
readConfig();
@@ -223,10 +223,10 @@ void SummaryWidget::updateView()
urlLabel->setMaximumSize( urlLabel->minimumSizeHint() );
mLabels.append( urlLabel );
- connect( urlLabel, TQT_SIGNAL( leftClickedURL( const TQString& ) ),
- kapp, TQT_SLOT( invokeBrowser( const TQString& ) ) );
- connect( urlLabel, TQT_SIGNAL( rightClickedURL( const TQString& ) ),
- this, TQT_SLOT( rmbMenu( const TQString& ) ) );
+ connect( urlLabel, TQ_SIGNAL( leftClickedURL( const TQString& ) ),
+ kapp, TQ_SLOT( invokeBrowser( const TQString& ) ) );
+ connect( urlLabel, TQ_SIGNAL( rightClickedURL( const TQString& ) ),
+ this, TQ_SLOT( rmbMenu( const TQString& ) ) );
// header
TQLabel *label = new TQLabel( hbox );
@@ -252,10 +252,10 @@ void SummaryWidget::updateView()
mLabels.append( urlLabel );
mLayout->addWidget( urlLabel );
- connect( urlLabel, TQT_SIGNAL( leftClickedURL( const TQString& ) ),
- kapp, TQT_SLOT( invokeBrowser( const TQString& ) ) );
- connect( urlLabel, TQT_SIGNAL( rightClickedURL( const TQString& ) ),
- this, TQT_SLOT( rmbMenu( const TQString& ) ) );
+ connect( urlLabel, TQ_SIGNAL( leftClickedURL( const TQString& ) ),
+ kapp, TQ_SLOT( invokeBrowser( const TQString& ) ) );
+ connect( urlLabel, TQ_SIGNAL( rightClickedURL( const TQString& ) ),
+ this, TQ_SLOT( rmbMenu( const TQString& ) ) );
numArticles++;
@@ -306,7 +306,7 @@ void SummaryWidget::rmbMenu( const TQString& url )
bool SummaryWidget::eventFilter( TQObject *obj, TQEvent* e )
{
if ( obj->inherits( "KURLLabel" ) ) {
- KURLLabel* label = static_cast<KURLLabel*>( TQT_TQWIDGET(obj) );
+ KURLLabel* label = static_cast<KURLLabel*>( obj );
if ( e->type() == TQEvent::Enter )
emit message( label->url() );
if ( e->type() == TQEvent::Leave )
diff --git a/kontact/plugins/newsticker/summarywidget.h b/kontact/plugins/newsticker/summarywidget.h
index c5122fb8..2363dcc4 100644
--- a/kontact/plugins/newsticker/summarywidget.h
+++ b/kontact/plugins/newsticker/summarywidget.h
@@ -55,7 +55,7 @@ typedef TQValueList<Feed> FeedList;
class SummaryWidget : public Kontact::Summary, public DCOPObject
{
- Q_OBJECT
+ TQ_OBJECT
//
K_DCOP
diff --git a/kontact/plugins/specialdates/CMakeLists.txt b/kontact/plugins/specialdates/CMakeLists.txt
index d760fd12..f52bb51f 100644
--- a/kontact/plugins/specialdates/CMakeLists.txt
+++ b/kontact/plugins/specialdates/CMakeLists.txt
@@ -28,8 +28,17 @@ link_directories(
##### other data ################################
-install( FILES specialdatesplugin.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kontact )
-install( FILES kcmsdsummary.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE specialdatesplugin.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/kontact
+ PO_DIR kontact-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE kcmsdsummary.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR kontact-desktops
+)
##### libkontact_specialdatesplugin (module) ####
diff --git a/kontact/plugins/specialdates/kcmsdsummary.cpp b/kontact/plugins/specialdates/kcmsdsummary.cpp
index 93c7bd8b..f35cc2b4 100644
--- a/kontact/plugins/specialdates/kcmsdsummary.cpp
+++ b/kontact/plugins/specialdates/kcmsdsummary.cpp
@@ -39,7 +39,7 @@
#include "kcmsdsummary.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
extern "C"
{
@@ -56,12 +56,12 @@ KCMSDSummary::KCMSDSummary( TQWidget *parent, const char *name )
customDaysChanged( 1 );
- connect( mDaysGroup, TQT_SIGNAL( clicked( int ) ), TQT_SLOT( modified() ) );
- connect( mDaysGroup, TQT_SIGNAL( clicked( int ) ), TQT_SLOT( buttonClicked( int ) ) );
- connect( mCalendarGroup, TQT_SIGNAL( clicked( int ) ), TQT_SLOT( modified() ) );
- connect( mContactGroup, TQT_SIGNAL( clicked( int ) ), TQT_SLOT( modified() ) );
- connect( mCustomDays, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( modified() ) );
- connect( mCustomDays, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( customDaysChanged( int ) ) );
+ connect( mDaysGroup, TQ_SIGNAL( clicked( int ) ), TQ_SLOT( modified() ) );
+ connect( mDaysGroup, TQ_SIGNAL( clicked( int ) ), TQ_SLOT( buttonClicked( int ) ) );
+ connect( mCalendarGroup, TQ_SIGNAL( clicked( int ) ), TQ_SLOT( modified() ) );
+ connect( mContactGroup, TQ_SIGNAL( clicked( int ) ), TQ_SLOT( modified() ) );
+ connect( mCustomDays, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( modified() ) );
+ connect( mCustomDays, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( customDaysChanged( int ) ) );
TDEAcceleratorManager::manage( this );
@@ -87,7 +87,7 @@ void KCMSDSummary::initGUI()
{
TQGridLayout *layout = new TQGridLayout( this, 3, 2, KDialog::spacingHint() );
- mDaysGroup = new TQButtonGroup( 0, Qt::Vertical, i18n( "Special Dates Summary" ), this );
+ mDaysGroup = new TQButtonGroup( 0, TQt::Vertical, i18n( "Special Dates Summary" ), this );
TQVBoxLayout *boxLayout = new TQVBoxLayout( mDaysGroup->layout(),
KDialog::spacingHint() );
@@ -119,7 +119,7 @@ void KCMSDSummary::initGUI()
layout->addMultiCellWidget( mDaysGroup, 0, 0, 0, 1 );
- mCalendarGroup = new TQButtonGroup( 1, Qt::Horizontal, i18n( "Special Dates From Calendar" ), this );
+ mCalendarGroup = new TQButtonGroup( 1, TQt::Horizontal, i18n( "Special Dates From Calendar" ), this );
mShowBirthdaysFromCal = new TQCheckBox( i18n( "Show birthdays" ), mCalendarGroup );
mShowAnniversariesFromCal = new TQCheckBox( i18n( "Show anniversaries" ), mCalendarGroup );
@@ -127,7 +127,7 @@ void KCMSDSummary::initGUI()
mShowSpecialsFromCal = new TQCheckBox( i18n( "Show special occasions" ), mCalendarGroup );
- mContactGroup = new TQButtonGroup( 1, Qt::Horizontal, i18n( "Special Dates From Contact List" ), this );
+ mContactGroup = new TQButtonGroup( 1, TQt::Horizontal, i18n( "Special Dates From Contact List" ), this );
mShowBirthdaysFromKAB = new TQCheckBox( i18n( "Show birthdays" ), mContactGroup );
mShowAnniversariesFromKAB = new TQCheckBox( i18n( "Show anniversaries" ), mContactGroup );
diff --git a/kontact/plugins/specialdates/kcmsdsummary.desktop b/kontact/plugins/specialdates/kcmsdsummary.desktop
index 1afc1a9d..fd75d3db 100644
--- a/kontact/plugins/specialdates/kcmsdsummary.desktop
+++ b/kontact/plugins/specialdates/kcmsdsummary.desktop
@@ -11,107 +11,7 @@ X-TDE-ParentComponents=kontact_specialdatesplugin
X-TDE-CfgDlgHierarchy=KontactSummary
Name=Special Dates Overview
-Name[bg]=Преглед на специални случаи
-Name[ca]=Resum de dates especials
-Name[da]=Oversigt over særlige datoer
-Name[de]=Übersicht über besondere Termine
-Name[el]=Επισκόπηση σημαντικών ημερομηνιών
-Name[et]=Tähtpäevade ülevaade
-Name[it]=Panoramica delle date speciali
-Name[ja]=特別な日の要約
-Name[nds]=Översicht besünner Daten
-Name[nl]=Overzicht van speciale data
-Name[pl]=Daty specjalne
-Name[sr]=Преглед посебних датума
-Name[sr@Latn]=Pregled posebnih datuma
-Name[sv]=Översikt av speciella datum
-Name[zh_CN]=特殊日期概览
-Name[zh_TW]=特殊日期概觀
+
Comment=Special Dates Summary Setup
-Comment[af]=Spesiale datums opsomming opstelling
-Comment[bg]=Настройки на специалните случаи
-Comment[ca]=Configuració del resum de les dates especials
-Comment[cs]=Nastavení souhrnu speciálních datumů
-Comment[da]=Opsummering af opsætning af særlige datoer
-Comment[de]=Einstellung der Übersicht über besondere Termine
-Comment[el]=Ρύθμιση σύνοψης σημαντικών ημερομηνιών
-Comment[es]=Configuración del resumen de las fechas especiales
-Comment[et]=Tähtpäevade kokkuvõtte seadistus
-Comment[eu]=Data berezien laburpenen konfigurazioa
-Comment[fa]=برپایی خلاصۀ تاریخهای ویژه
-Comment[fi]=Erikoispäivien yhteenvedon asetukset
-Comment[fr]=Configuration du résumé des dates particulières
-Comment[fy]=Spesjale datums oersichts opset
-Comment[gl]=Configuración do Resumo de Datas Especiais
-Comment[he]=תצורת תאריכים מיוחדים
-Comment[hu]=A fontos dátumok áttekintőjének beállításai
-Comment[is]=Yfirlitsuppsetning sérstakra daga
-Comment[it]=Impostazioni per le date speciali
-Comment[ja]=特別な日の要約設定
-Comment[kk]=Ерекше күндер тұжырымының баптауы
-Comment[km]=រៀបចំ​សេចក្ដី​សង្ខេប​ថ្ងៃ​ពិសេស
-Comment[lt]=Ypatingų datų santraukos sąranka
-Comment[mk]=Поставувања за прегледот на специјални датуми
-Comment[ms]=Setup Ringkasan Tarikh Khusus
-Comment[nb]=Sammendragsoppsett for spesielle datoer
-Comment[nds]=Översicht över besünner Daag instellen
-Comment[ne]=विशेष मिति सारांश सेटअप
-Comment[nl]=Instellingen voor speciale data in overzicht
-Comment[nn]=Oppsett av samandrag for spesielle datoar
-Comment[pl]=Ustawienia podsumowania dat specjalnych
-Comment[pt]=Configuração do Sumário de Datas Especiais
-Comment[pt_BR]=Configuração do Resumo de Datas Especiais
-Comment[ru]=Настройка особых дат
-Comment[sk]=Nastavenie súhrnu špeciálnych dátumov
-Comment[sl]=Nastavitve povzetka posebnih datumov
-Comment[sr]=Подешавање сажетка посебних датума
-Comment[sr@Latn]=Podešavanje sažetka posebnih datuma
-Comment[sv]=Inställning av översikt av speciella datum
-Comment[ta]=விசேஷ தேதிகள் சுருக்க அமைப்பு
-Comment[th]=ต้้งค่าส่วนสรุปวันพิเศษ
-Comment[tr]=Özel Tarih Özeti Yapılandırması
-Comment[uk]=Налаштування підсумку особливих дат
-Comment[zh_CN]=特殊日期摘要设置
-Comment[zh_TW]=特殊日期摘要設定
+
Keywords=birthday; anniversary; holiday; configure; settings;
-Keywords[af]=birtday;anniversary; holiday; conifugre; settings; verjaarsdag; herdenking; vakansie;
-Keywords[bg]=рождени; рожден; дни; ден; годишнина; годишнини; обобщение; birthday; anniversary; configure; settings;
-Keywords[ca]=data de naixement; aniversari; vacances; configuració; arranjament;
-Keywords[cs]=narozeniny;výročí;nastavení;nastavit;svátek;
-Keywords[da]=fødselsdag; årsdag; helligdage; indstil; opsætning;
-Keywords[de]=Geburtstag;Jahrestag;Feiertag;einstellen;Einstellungen;Einrichten;
-Keywords[el]=γενέθλια; επέτειος; εορτή; ρύθμιση; ρυθμίσεις;
-Keywords[es]=cumpleaños; aniversario; vacaciones; configurar; preferencias;
-Keywords[et]=sünnipäev; tähtpäev; pidupäev; seadistamine; seadistused;
-Keywords[eu]=urtebetezea; urteurrena; jaia; konfiguratu; ezarpenak;
-Keywords[fa]=تولد، جشن سالانه، تعطیلات، پیکربندی، تنظیمات;
-Keywords[fi]=syntymäpäivä; juhlapäivä; loma; aseta; asetukset;
-Keywords[fr]=anniversaire;date de naissance;vacances;configurer;paramètres;préférences;
-Keywords[fy]=verjaardag;jubileum;vakantie;instellingen;configuratie;feestdag; jierdei; fakânsje; ynstellings; feestdei;
-Keywords[gl]=cumpreanos; aniversario; vacacións; configurar; opcións;
-Keywords[he]=birthday; anniversary; holiday; configure; settings; יום הולדת; הולדת; שנה; יום שנה; חג; חגים; תצורה; הגדרות;
-Keywords[hu]=születésnap;évforduló;szabadság;konfigurálás;beállítások;
-Keywords[is]=afmæli; frídagar; stillingar; stilla;
-Keywords[it]=compleanno; anniversario; vacanze; configura; impostazioni;
-Keywords[ja]=誕生日;記念日;休日;設定;設定;
-Keywords[km]=ថ្ងៃ​ខួប​កំណើត;បុណ្យ​ខួប;វិស្សមកាល;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;
-Keywords[lt]=birthday; anniversary; holiday; configure; settings; konfigūruoti; nustatymai; gimtadieniai; išeiginės;sukaktys;
-Keywords[mk]=birthday; anniversary; holiday; configure; settings; роденден; годишнина; конфигурирање; конфигурација; поставувања;
-Keywords[ms]=tarikh lahir; ulang tahun; cuti; konfigur; seting;
-Keywords[nb]=fødselsdag; jubileum; ferie; sette opp; innstillinger;
-Keywords[nds]=Geboortsdag;Johrdag;Fierdag;instellen;
-Keywords[ne]=जन्मदिन; वार्षिकोत्सव; बिदा; कन्फिगर; सेटिङ;
-Keywords[nl]=verjaardag;jubileum;vakantie;instellingen;configuratie;feestdag;
-Keywords[nn]=fødselsdag;bursdag;gebursdag;jubileum;ferie;helgedag;merkedag;oppsett;innstillingar;
-Keywords[pl]=urodziny;rocznica;rocznice;wakacje;urlop;konfiguracja;ustawienia;
-Keywords[pt]=data de nascimento; aniversário; feriado; configurar; configuração;
-Keywords[pt_BR]=aniversário;aniversário de casamento; feriados;configurar;configurações;
-Keywords[ru]=birthday;anniversary;configure;settings;дни рождения;настройки;праздники;годовщины;
-Keywords[sl]=rojstni dan; obletnica; praznik; nastavi; nastavitve;
-Keywords[sr]=birthday; anniversary; holiday; configure; settings; рођендан; годишњица; подеси; поставке; подешавања;
-Keywords[sr@Latn]=birthday; anniversary; holiday; configure; settings; rođendan; godišnjica; podesi; postavke; podešavanja;
-Keywords[sv]=födelsedag;årsdag;helgdag;anpassa;inställningar;
-Keywords[ta]=பிறந்தநாள்; ஆண்டுவிழா; விடுமுறை; வடிவமைப்பு; அமைப்புகள்;
-Keywords[tr]=doğumgünü; evlilik yıldönümü; tatil; yapılandır; ypılandırma;
-Keywords[uk]=birthday; anniversary; holiday; configure; settings; день народження; ювілей; свято; налаштування; параметри;
-Keywords[zh_CN]=birthday; anniversary; holiday; configure; settings; 周年纪念; 配置; 设置; 假日;
diff --git a/kontact/plugins/specialdates/kcmsdsummary.h b/kontact/plugins/specialdates/kcmsdsummary.h
index c0095dfa..e3189656 100644
--- a/kontact/plugins/specialdates/kcmsdsummary.h
+++ b/kontact/plugins/specialdates/kcmsdsummary.h
@@ -35,7 +35,7 @@ class TDEAboutData;
class KCMSDSummary : public TDECModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/specialdates/sdsummarywidget.cpp b/kontact/plugins/specialdates/sdsummarywidget.cpp
index 376389f9..fb9167c6 100644
--- a/kontact/plugins/specialdates/sdsummarywidget.cpp
+++ b/kontact/plugins/specialdates/sdsummarywidget.cpp
@@ -95,10 +95,10 @@ SDSummaryWidget::SDSummaryWidget( Kontact::Plugin *plugin, TQWidget *parent,
// Setup the Addressbook
TDEABC::StdAddressBook *ab = TDEABC::StdAddressBook::self( true );
- connect( ab, TQT_SIGNAL( addressBookChanged( AddressBook* ) ),
- this, TQT_SLOT( updateView() ) );
- connect( mPlugin->core(), TQT_SIGNAL( dayChanged( const TQDate& ) ),
- this, TQT_SLOT( updateView() ) );
+ connect( ab, TQ_SIGNAL( addressBookChanged( AddressBook* ) ),
+ this, TQ_SLOT( updateView() ) );
+ connect( mPlugin->core(), TQ_SIGNAL( dayChanged( const TQDate& ) ),
+ this, TQ_SLOT( updateView() ) );
// Setup the Calendar
mCalendar = new KCal::CalendarResources( KPimPrefs::timezone() );
@@ -128,10 +128,10 @@ SDSummaryWidget::SDSummaryWidget( Kontact::Plugin *plugin, TQWidget *parent,
}
mCalendar = KOrg::StdCalendar::self();
- connect( mCalendar, TQT_SIGNAL( calendarChanged() ),
- this, TQT_SLOT( updateView() ) );
- connect( mPlugin->core(), TQT_SIGNAL( dayChanged( const TQDate& ) ),
- this, TQT_SLOT( updateView() ) );
+ connect( mCalendar, TQ_SIGNAL( calendarChanged() ),
+ this, TQ_SLOT( updateView() ) );
+ connect( mPlugin->core(), TQ_SIGNAL( dayChanged( const TQDate& ) ),
+ this, TQ_SLOT( updateView() ) );
// Update Configuration
configUpdated();
@@ -250,7 +250,7 @@ void SDSummaryWidget::updateView()
TQString anniversaryAsString =
(*it).custom( "KADDRESSBOOK" , "X-Anniversary" );
if ( !anniversaryAsString.isEmpty() ) {
- TQDate anniversary = TQDate::fromString( anniversaryAsString, Qt::ISODate );
+ TQDate anniversary = TQDate::fromString( anniversaryAsString, TQt::ISODate );
if ( anniversary.isValid() && mShowAnniversariesFromKAB ) {
SDEntry entry;
entry.type = IncidenceTypeContact;
@@ -506,10 +506,10 @@ void SDSummaryWidget::updateView()
mLayout->addWidget( urlLabel, counter, 4 );
mLabels.append( urlLabel );
- connect( urlLabel, TQT_SIGNAL( leftClickedURL( const TQString& ) ),
- this, TQT_SLOT( mailContact( const TQString& ) ) );
- connect( urlLabel, TQT_SIGNAL( rightClickedURL( const TQString& ) ),
- this, TQT_SLOT( popupMenu( const TQString& ) ) );
+ connect( urlLabel, TQ_SIGNAL( leftClickedURL( const TQString& ) ),
+ this, TQ_SLOT( mailContact( const TQString& ) ) );
+ connect( urlLabel, TQ_SIGNAL( rightClickedURL( const TQString& ) ),
+ this, TQ_SLOT( popupMenu( const TQString& ) ) );
} else {
label = new TQLabel( this );
label->setText( (*addrIt).summary );
@@ -593,7 +593,7 @@ void SDSummaryWidget::popupMenu( const TQString &uid )
bool SDSummaryWidget::eventFilter( TQObject *obj, TQEvent* e )
{
if ( obj->inherits( "KURLLabel" ) ) {
- KURLLabel* label = static_cast<KURLLabel*>( TQT_TQWIDGET(obj) );
+ KURLLabel* label = static_cast<KURLLabel*>( obj );
if ( e->type() == TQEvent::Enter )
emit message( i18n( "Mail to:\"%1\"" ).arg( label->text() ) );
if ( e->type() == TQEvent::Leave )
diff --git a/kontact/plugins/specialdates/sdsummarywidget.h b/kontact/plugins/specialdates/sdsummarywidget.h
index ff9fb70a..2c63b259 100644
--- a/kontact/plugins/specialdates/sdsummarywidget.h
+++ b/kontact/plugins/specialdates/sdsummarywidget.h
@@ -42,7 +42,7 @@ class TQLabel;
class SDSummaryWidget : public Kontact::Summary
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/specialdates/specialdates_plugin.cpp b/kontact/plugins/specialdates/specialdates_plugin.cpp
index 58c830c8..a1893aef 100644
--- a/kontact/plugins/specialdates/specialdates_plugin.cpp
+++ b/kontact/plugins/specialdates/specialdates_plugin.cpp
@@ -38,7 +38,7 @@ K_EXPORT_COMPONENT_FACTORY( libkontact_specialdatesplugin,
SpecialdatesPluginFactory( "kontact_specialdatesplugin" ) )
SpecialdatesPlugin::SpecialdatesPlugin( Kontact::Core *core, const char *name, const TQStringList& )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), name ),
+ : Kontact::Plugin( core, core, name ),
mAboutData( 0 )
{
setInstance( SpecialdatesPluginFactory::instance() );
diff --git a/kontact/plugins/specialdates/specialdatesplugin.desktop b/kontact/plugins/specialdates/specialdatesplugin.desktop
index f71ccbd4..32c830d2 100644
--- a/kontact/plugins/specialdates/specialdatesplugin.desktop
+++ b/kontact/plugins/specialdates/specialdatesplugin.desktop
@@ -14,70 +14,5 @@ X-TDE-PluginInfo-License=GPL
X-TDE-PluginInfo-EnabledByDefault=true
Name=Special Dates
-Name[af]=Spesiale datums
-Name[ar]=التواريخ المرقومة
-Name[bg]=Специални случаи
-Name[br]=Deiziadoù dibar
-Name[ca]=Dates especials
-Name[cs]=Speciální data
-Name[da]=Særlige datoer
-Name[de]=Besondere Termine
-Name[el]=Σημαντικές ημερομηνίες
-Name[eo]=Specialaj Datoj
-Name[es]=Fechas especiales
-Name[et]=Tähtpäevad
-Name[eu]=Data bereziak
-Name[fa]=تاریخهای ویژه
-Name[fi]=Erikoispäivät
-Name[fr]=Dates particulières
-Name[fy]=Spesjale datums
-Name[ga]=Dátaí Speisialta
-Name[gl]=Datas Especiais
-Name[he]=תאריכים מיוחדים
-Name[hu]=Fontos dátumok
-Name[is]=Sérstakir dagar
-Name[it]=Date speciali
-Name[ja]=特別な日
-Name[kk]=Ерекше күндер
-Name[km]=ថ្ងៃ​ពិសេស
-Name[lt]=Ypatingos datos
-Name[mk]=Специјални датуми
-Name[ms]=Tarikh Khusus
-Name[nb]=Spesielle datoer
-Name[nds]=Besünner Daag
-Name[ne]=विशेष मिति
-Name[nl]=Speciale data
-Name[nn]=Spesielle datoar
-Name[pl]=Daty specjalne
-Name[pt]=Datas Especiais
-Name[pt_BR]=Datas Especiais
-Name[ru]=Особые даты
-Name[sk]=Špeciálne dátumy
-Name[sl]=Posebni datumi
-Name[sr]=Посебни датуми
-Name[sr@Latn]=Posebni datumi
-Name[sv]=Speciella datum
-Name[ta]=விசேஷ தேதிகள்
-Name[th]=วันพิเศษ
-Name[tr]=Özel Tarihler
-Name[uk]=Особливі дати
-Name[uz]=Махсус кунлар
-Name[zh_CN]=特殊日期
-Name[zh_TW]=特殊日期
+
Comment=Special Dates Component
-Comment[bg]=Обобщение на специалните случаи
-Comment[ca]=Component de dates especials
-Comment[da]=Komponent til særlige datoer
-Comment[de]=Komponente für Übersicht über besondere Termine
-Comment[el]=Συστατικό σημαντικών ημερομηνιών
-Comment[et]=Tähtpäevade plugin
-Comment[it]=Componente per le date speciali
-Comment[ja]=特別な日コンポーネント
-Comment[nds]=Komponent för besünner Daten
-Comment[nl]=Component voor overzicht van speciale data
-Comment[pl]=Składnik dat specjalnych
-Comment[sr]=Компонента посебних датума
-Comment[sr@Latn]=Komponenta posebnih datuma
-Comment[sv]=Speciella datumkomponent
-Comment[zh_CN]=特殊日期组件
-Comment[zh_TW]=特殊日期組件
diff --git a/kontact/plugins/summary/CMakeLists.txt b/kontact/plugins/summary/CMakeLists.txt
index d7fad7af..801667e1 100644
--- a/kontact/plugins/summary/CMakeLists.txt
+++ b/kontact/plugins/summary/CMakeLists.txt
@@ -26,8 +26,18 @@ link_directories(
##### other data ################################
-install( FILES kcmkontactsummary.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
-install( FILES summaryplugin.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kontact )
+tde_create_translated_desktop(
+ SOURCE kcmkontactsummary.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR kontact-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE summaryplugin.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/kontact
+ PO_DIR kontact-desktops
+)
+
install( FILES kontactsummary_part.rc DESTINATION ${DATA_INSTALL_DIR}/kontactsummary )
diff --git a/kontact/plugins/summary/dropwidget.h b/kontact/plugins/summary/dropwidget.h
index d406f441..fe92825a 100644
--- a/kontact/plugins/summary/dropwidget.h
+++ b/kontact/plugins/summary/dropwidget.h
@@ -26,7 +26,7 @@
class DropWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/summary/kcmkontactsummary.cpp b/kontact/plugins/summary/kcmkontactsummary.cpp
index 3877827d..591cb033 100644
--- a/kontact/plugins/summary/kcmkontactsummary.cpp
+++ b/kontact/plugins/summary/kcmkontactsummary.cpp
@@ -39,7 +39,7 @@
#include "kcmkontactsummary.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
extern "C"
{
@@ -103,8 +103,8 @@ KCMKontactSummary::KCMKontactSummary( TQWidget *parent, const char *name )
layout->setStretchFactor( mPluginView, 1 );
- connect( mPluginView, TQT_SIGNAL( clicked( TQListViewItem* ) ),
- this, TQT_SLOT( itemClicked( TQListViewItem* ) ) );
+ connect( mPluginView, TQ_SIGNAL( clicked( TQListViewItem* ) ),
+ this, TQ_SLOT( itemClicked( TQListViewItem* ) ) );
load();
TDEAboutData *about = new TDEAboutData( I18N_NOOP( "kontactsummary" ),
diff --git a/kontact/plugins/summary/kcmkontactsummary.desktop b/kontact/plugins/summary/kcmkontactsummary.desktop
index 0e957ebe..c6f4e500 100644
--- a/kontact/plugins/summary/kcmkontactsummary.desktop
+++ b/kontact/plugins/summary/kcmkontactsummary.desktop
@@ -11,62 +11,5 @@ X-TDE-ParentComponents=kontact_summaryplugin
X-TDE-CfgDlgHierarchy=KontactSummary
Name=Summary View Items
-Name[bg]=Обобщение
-Name[ca]=Vista resum d'elements
-Name[de]=Übersichtseinträge
-Name[el]=Αντικείμενα προβολής σύνοψης
-Name[et]=Kokkuvõttevaate elemendid
-Name[it]=Elementi vista sommario
-Name[ja]=要約ビューの項目
-Name[nds]=Översicht-Indrääg
-Name[nl]=Overzichtsweergave-items
-Name[sr]=Ставке приказа сажетка
-Name[sr@Latn]=Stavke prikaza sažetka
-Name[sv]=Objekt i översiktsvy
-Name[zh_CN]=摘要视图项目
+
Comment=General Configuration of Kontact's Summary View
-Comment[af]=Algemene opstelling van Kontact se opsomming aansig
-Comment[bg]=Настройка на обобщението
-Comment[bs]=Opšte podešavanje Kontactovog prozora Sažetak
-Comment[ca]=Configuració general de la vista de resum del Kontact
-Comment[cs]=Obecné nastavení souhrnného pohledu pro Kontact
-Comment[da]=Generel indstilling af Kontact's sammendragsvisning
-Comment[de]=Allgemeine Einstellungen für die Übersichtsansicht von Kontact
-Comment[el]=Γενικές ρυθμίσεις της Προβολής Σύνοψης του Kontact
-Comment[es]=Configuración general de la vista del resumen de Kontact
-Comment[et]=Kontacti kokkuvõttevaate üldised seadistused
-Comment[eu]=Kontact-en laburpen ikuspegiaren konfigurazio orokorra
-Comment[fa]=پیکربندی عمومی نمای خلاصۀ Kontact
-Comment[fi]=Kontactin yhteenvetonäkymän yleiset asetukset
-Comment[fr]=Configuration générale de la vue résumée de Kontact
-Comment[fy]=Algemiene ynstellings fan Kontact's oersichtswerjefte
-Comment[gl]=Configuración xeral para a vista de resumo de Kontact
-Comment[hu]=A Kontact áttekintő nézetének beállításai
-Comment[is]=Almennar stillingar fyrir Kontact yfirlitssýn
-Comment[it]=Configurazione generale della vista sommario di Kontact
-Comment[ja]=Kontact の要約表示の一般的な設定
-Comment[kk]=Тұжырымдаманың жалпы параметрлері
-Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​ទូទៅ​នៃ​ទិដ្ឋភាព​សង្ខេប​របស់ Kontact
-Comment[lt]=Kontact Santraukos vaizdo bendrasis konfigūravimas
-Comment[mk]=Општа конфигурација на прегледот на Контакт
-Comment[ms]=Konfigurasi Am Paparan Ringkasan Kontact
-Comment[nb]=Generelt oppsett av Kontact's sammendragsoversikt
-Comment[nds]=Allgemeen Instellen för de Översichtansicht von Kontact
-Comment[ne]=सम्पर्कको सारांश दृश्यको साधारण कन्फिगरेसन
-Comment[nl]=Algemene instellingen van Kontact's overzichtsweergave
-Comment[nn]=Generelt oppsett av samandragsvisinga i Kontact
-Comment[pl]=Ogólna konfiguracja widoku podsumowania w Kontact
-Comment[pt]=Configuração Geral da Vista Sumária do Kontact
-Comment[pt_BR]=Configuração Geral da Visão de Resumo do Kontact
-Comment[ru]=Общие настройки дайджеста Kontact
-Comment[sk]=Všeobecné nastavenie súhrnu Kontact
-Comment[sl]=Splošne nastavitve za prikaz povzetka v Kontract
-Comment[sr]=Опште подешавање Kontact-овог приказа сажетка
-Comment[sr@Latn]=Opšte podešavanje Kontact-ovog prikaza sažetka
-Comment[sv]=Allmän inställning av Kontacts översiktsvy
-Comment[ta]=கான்டாக்கின் சுருக்க காட்சியின் பொது கட்டமைப்பு
-Comment[tg]=Танзимотҳои умумии дайджести Kontact
-Comment[tr]=Kontact'ın Özet Görünümü için Genel Yapılandırma
-Comment[uk]=Загальні параметри підсумків Kontact
-Comment[zh_CN]=Kontact 概览视图的常规配置
-Comment[zh_TW]=Kontacts 摘要檢視的一般設定
diff --git a/kontact/plugins/summary/kcmkontactsummary.h b/kontact/plugins/summary/kcmkontactsummary.h
index 3f1cdd69..bfc72d40 100644
--- a/kontact/plugins/summary/kcmkontactsummary.h
+++ b/kontact/plugins/summary/kcmkontactsummary.h
@@ -32,7 +32,7 @@ class KPluginInfo;
class PluginView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -42,7 +42,7 @@ class PluginView : public TDEListView
class KCMKontactSummary : public TDECModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/summary/summaryplugin.desktop b/kontact/plugins/summary/summaryplugin.desktop
index 59a7d31e..d74c34fa 100644
--- a/kontact/plugins/summary/summaryplugin.desktop
+++ b/kontact/plugins/summary/summaryplugin.desktop
@@ -11,79 +11,9 @@ X-TDE-PluginInfo-Version=0.1
X-TDE-PluginInfo-License=LGPL
X-TDE-PluginInfo-EnabledByDefault=true
-Comment=Summary View Component
-Comment[bg]=Обобщение
-Comment[ca]=Component de vista resum
-Comment[da]=Komponent for opsummeringsvisning
-Comment[de]=Übersichtskomponente
-Comment[el]=Συστατικό προβολής σύνοψης
-Comment[et]=Kokkuvõttevaate plugin
-Comment[it]=Componente vista sommario
-Comment[ja]=要約ビューコンポーネント
-Comment[nds]=Översicht-Komponent
-Comment[nl]=Overzichtsweergaveitem
-Comment[pl]=Składnik podsumowania
-Comment[sr]=Компонента приказа сажетка
-Comment[sr@Latn]=Komponenta prikaza sažetka
-Comment[sv]=Översiktsvykomponent
-Comment[zh_CN]=摘要视图组件
-Comment[zh_TW]=摘要檢視組件
Name=Summary
-Name[af]=Opsomming
-Name[ar]=الموجز
-Name[bg]=Обобщение
-Name[br]=Diverrañ
-Name[bs]=Sažetak
-Name[ca]=Resum
-Name[cs]=Souhrn
-Name[cy]=Crynodeb
-Name[da]=Opsummering
-Name[de]=Übersicht
-Name[el]=Σύνοψη
-Name[eo]=Resumo
-Name[es]=Resumen
-Name[et]=Kokkuvõte
-Name[eu]=Laburpena
-Name[fa]=خلاصه
-Name[fi]=Yhteenveto
-Name[fr]=Résumé
-Name[fy]=Oersicht
-Name[ga]=Achoimre
-Name[gl]=Resumo
-Name[he]=תקציר
-Name[hi]=सारांश
-Name[hu]=Áttekintő
-Name[is]=Yfirlit
-Name[it]=Sommario
-Name[ja]=要約
-Name[kk]=Тұжырым
-Name[km]=សង្ខេប
-Name[lt]=Santrauka
-Name[mk]=Преглед
-Name[ms]=Ringkasan
-Name[nb]=Sammendrag
-Name[nds]=Översicht
-Name[ne]=सारांश
-Name[nl]=Overzicht
-Name[nn]=Samandrag
-Name[pl]=Podsumowanie
-Name[pt]=Resumo
-Name[pt_BR]=Resumo
-Name[ro]=Sumar
-Name[ru]=Дайджест
-Name[se]=Čoahkkáigeassu
-Name[sk]=Súhrn
-Name[sl]=Povzetek
-Name[sr]=Сажетак
-Name[sr@Latn]=Sažetak
-Name[sv]=Översikt
-Name[ta]=சுருக்கம்
-Name[tg]=Дайджест
-Name[th]=หน้าสรุป
-Name[tr]=Özet
-Name[uk]=Зведення
-Name[uz]=Ҳисобот
-Name[zh_CN]=概览
-Name[zh_TW]=摘要
+
+Comment=Summary View Component
+
#Always last
X-TDE-InitialPreference=0
diff --git a/kontact/plugins/summary/summaryview_part.cpp b/kontact/plugins/summary/summaryview_part.cpp
index 94474c55..5c64d934 100644
--- a/kontact/plugins/summary/summaryview_part.cpp
+++ b/kontact/plugins/summary/summaryview_part.cpp
@@ -77,25 +77,25 @@ SummaryViewPart::SummaryViewPart( Kontact::Core *core, const char*,
initGUI( core );
- connect( kapp, TQT_SIGNAL( tdedisplayPaletteChanged() ), TQT_SLOT( slotAdjustPalette() ) );
+ connect( kapp, TQ_SIGNAL( tdedisplayPaletteChanged() ), TQ_SLOT( slotAdjustPalette() ) );
slotAdjustPalette();
setDate( TQDate::currentDate() );
- connect( mCore, TQT_SIGNAL( dayChanged( const TQDate& ) ),
- TQT_SLOT( setDate( const TQDate& ) ) );
+ connect( mCore, TQ_SIGNAL( dayChanged( const TQDate& ) ),
+ TQ_SLOT( setDate( const TQDate& ) ) );
KParts::InfoExtension *info = new KParts::InfoExtension( this, "Summary" );
- connect( this, TQT_SIGNAL( textChanged( const TQString& ) ),
- info, TQT_SIGNAL( textChanged( const TQString& ) ) );
+ connect( this, TQ_SIGNAL( textChanged( const TQString& ) ),
+ info, TQ_SIGNAL( textChanged( const TQString& ) ) );
mConfigAction = new TDEAction( i18n( "&Configure Summary View..." ),
"configure", 0, this,
- TQT_SLOT( slotConfigure() ), actionCollection(),
+ TQ_SLOT( slotConfigure() ), actionCollection(),
"summaryview_configure" );
setXMLFile( "kontactsummary_part.rc" );
- TQTimer::singleShot( 0, this, TQT_SLOT( slotTextChanged() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotTextChanged() ) );
}
SummaryViewPart::~SummaryViewPart()
@@ -142,8 +142,8 @@ void SummaryViewPart::updateWidgets()
mSummaries.clear();
mFrame = new DropWidget( mMainWidget );
- connect( mFrame, TQT_SIGNAL( summaryWidgetDropped( TQWidget*, TQWidget*, int ) ),
- this, TQT_SLOT( summaryWidgetMoved( TQWidget*, TQWidget*, int ) ) );
+ connect( mFrame, TQ_SIGNAL( summaryWidgetDropped( TQWidget*, TQWidget*, int ) ),
+ this, TQ_SLOT( summaryWidgetMoved( TQWidget*, TQWidget*, int ) ) );
mMainLayout->insertWidget( 2, mFrame );
@@ -176,10 +176,10 @@ void SummaryViewPart::updateWidgets()
if ( summary->summaryHeight() > 0 ) {
mSummaries.insert( plugin->identifier(), summary );
- connect( summary, TQT_SIGNAL( message( const TQString& ) ),
- BroadcastStatus::instance(), TQT_SLOT( setStatusMsg( const TQString& ) ) );
- connect( summary, TQT_SIGNAL( summaryWidgetDropped( TQWidget*, TQWidget*, int ) ),
- this, TQT_SLOT( summaryWidgetMoved( TQWidget*, TQWidget*, int ) ) );
+ connect( summary, TQ_SIGNAL( message( const TQString& ) ),
+ BroadcastStatus::instance(), TQ_SLOT( setStatusMsg( const TQString& ) ) );
+ connect( summary, TQ_SIGNAL( summaryWidgetDropped( TQWidget*, TQWidget*, int ) ),
+ this, TQ_SLOT( summaryWidgetMoved( TQWidget*, TQWidget*, int ) ) );
if ( !mLeftColumnSummaries.contains( plugin->identifier() ) &&
!mRightColumnSummaries.contains( plugin->identifier() ) ) {
@@ -327,8 +327,8 @@ void SummaryViewPart::slotConfigure()
TQStringList modules = configModules();
modules.prepend( "kcmkontactsummary.desktop" );
- connect( &dlg, TQT_SIGNAL( configCommitted() ),
- this, TQT_SLOT( updateWidgets() ) );
+ connect( &dlg, TQ_SIGNAL( configCommitted() ),
+ this, TQ_SLOT( updateWidgets() ) );
TQStringList::ConstIterator strIt;
for ( strIt = modules.begin(); strIt != modules.end(); ++strIt )
@@ -364,7 +364,7 @@ void SummaryViewPart::initGUI( Kontact::Core *core )
mMainWidget = new TQFrame( sv->viewport() );
sv->addChild( mMainWidget );
mMainWidget->setFrameStyle( TQFrame::Panel | TQFrame::Sunken );
- sv->setFocusPolicy( TQ_StrongFocus );
+ sv->setFocusPolicy( TQWidget::StrongFocus );
setWidget( sv );
mMainLayout = new TQVBoxLayout( mMainWidget,KDialog::marginHint(),
@@ -384,8 +384,8 @@ void SummaryViewPart::initGUI( Kontact::Core *core )
mFrame = new DropWidget( mMainWidget );
mMainLayout->insertWidget( 2, mFrame );
- connect( mFrame, TQT_SIGNAL( summaryWidgetDropped( TQWidget*, TQWidget*, int ) ),
- this, TQT_SLOT( summaryWidgetMoved( TQWidget*, TQWidget*, int ) ) );
+ connect( mFrame, TQ_SIGNAL( summaryWidgetDropped( TQWidget*, TQWidget*, int ) ),
+ this, TQ_SLOT( summaryWidgetMoved( TQWidget*, TQWidget*, int ) ) );
updateWidgets();
}
diff --git a/kontact/plugins/summary/summaryview_part.h b/kontact/plugins/summary/summaryview_part.h
index 4b6b3126..c7c55e14 100644
--- a/kontact/plugins/summary/summaryview_part.h
+++ b/kontact/plugins/summary/summaryview_part.h
@@ -51,7 +51,7 @@ class KCMultiDialog;
class SummaryViewPart : public KParts::ReadOnlyPart
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/summary/summaryview_plugin.cpp b/kontact/plugins/summary/summaryview_plugin.cpp
index 81e46a8e..711c2b39 100644
--- a/kontact/plugins/summary/summaryview_plugin.cpp
+++ b/kontact/plugins/summary/summaryview_plugin.cpp
@@ -34,7 +34,7 @@ K_EXPORT_COMPONENT_FACTORY( libkontact_summaryplugin,
SummaryViewFactory( "kontact_summaryplugin" ) )
SummaryView::SummaryView( Kontact::Core *core, const char *name, const TQStringList& )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), name),
+ : Kontact::Plugin( core, core, name),
mAboutData( 0 ), mPart( 0 )
{
setInstance( SummaryViewFactory::instance() );
@@ -42,8 +42,8 @@ SummaryView::SummaryView( Kontact::Core *core, const char *name, const TQStringL
mSyncAction = new TDESelectAction( i18n( "Synchronize All" ), "reload", 0, 0,
0, actionCollection(),
"kontact_summary_sync" );
- connect( mSyncAction, TQT_SIGNAL( activated( const TQString& ) ), this, TQT_SLOT( syncAccount( const TQString& ) ) );
- connect( mSyncAction->popupMenu(), TQT_SIGNAL( aboutToShow() ), this, TQT_SLOT( fillSyncActionSubEntries() ) );
+ connect( mSyncAction, TQ_SIGNAL( activated( const TQString& ) ), this, TQ_SLOT( syncAccount( const TQString& ) ) );
+ connect( mSyncAction->popupMenu(), TQ_SIGNAL( aboutToShow() ), this, TQ_SLOT( fillSyncActionSubEntries() ) );
insertSyncAction( mSyncAction );
fillSyncActionSubEntries();
diff --git a/kontact/plugins/summary/summaryview_plugin.h b/kontact/plugins/summary/summaryview_plugin.h
index 5ea25786..cef65f5d 100644
--- a/kontact/plugins/summary/summaryview_plugin.h
+++ b/kontact/plugins/summary/summaryview_plugin.h
@@ -34,7 +34,7 @@ class SummaryViewPart;
class SummaryView : public Kontact::Plugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/test/kptestplugin.desktop b/kontact/plugins/test/kptestplugin.desktop
index a41e1fc1..63aa2114 100644
--- a/kontact/plugins/test/kptestplugin.desktop
+++ b/kontact/plugins/test/kptestplugin.desktop
@@ -10,101 +10,6 @@ X-TDE-PluginInfo-Name=kptestplugin
X-TDE-PluginInfo-Version=0.1
X-TDE-PluginInfo-EnabledByDefault=false
-Comment=Kontact Test Plugin
-Comment[af]=Kontact toets inprop module
-Comment[be]=Тэставае дапаўненне Кантакту
-Comment[bg]=Приставка за проба
-Comment[bs]=Kontact testni dodatak
-Comment[ca]=Endollable de prova per a Kontact
-Comment[cy]=Ategyn Prawf Kontact
-Comment[da]=Kontact Test-plugin
-Comment[de]=Test-Modul für Kontact
-Comment[el]=Δοκιμαστικό πρόσθετο του Kontact
-Comment[eo]=Kontact-Testkromaĵo
-Comment[es]=Plugin de prueba para Kontact
-Comment[et]=Kontacti testplugin
-Comment[eu]=Kontact-en proba plugin-a
-Comment[fa]=وصلۀ آزمون Kontact
-Comment[fi]=Kontactin testiliitännäinen
-Comment[fr]=Module de test pour Kontact
-Comment[fy]=Kontact Test-plugin
-Comment[gl]=Extensión de Proba para Kontact
-Comment[he]=תוסף ניסיון עבור Kontact
-Comment[hi]=कॉन्टेक्ट जांच प्लगइन
-Comment[hu]=Kontact tesztmodul
-Comment[is]=Kontact prufu íforrit
-Comment[it]=Plugin test Kontact
-Comment[ja]=Kontact テストプラグイン
-Comment[kk]=Сынақ модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ការ​សាកល្បង​ក្នុង Kontact
-Comment[lt]=Kontact bandymo priedas
-Comment[mk]=Приклучок за тест на Контакт
-Comment[ms]=Plugin Ujian Kontact
-Comment[nb]=Kontact test-programtillegg
-Comment[nds]=Test-Moduul för Kontact
-Comment[ne]=परीक्षण प्लगइनमा सम्पर्क गर्नुहोस्
-Comment[nl]=Kontact Test-plugin
-Comment[nn]=Kontact, test-programtillegg
-Comment[pl]=Wtyczka Kontact do testowania
-Comment[pt]='Plugin' de Teste do Kontact
-Comment[pt_BR]=Plug-in para Teste do Kontact
-Comment[ro]=Modul de test Kontact
-Comment[ru]=Проверочный модуль Kontact
-Comment[se]=Kontact, geahččalanlassemoduvla
-Comment[sl]=Preizkusni vstavek za Kontact
-Comment[sr]=Пробни прикључак Kontact-а
-Comment[sr@Latn]=Probni priključak Kontact-a
-Comment[sv]=Kontact-testinsticksprogram
-Comment[ta]=பரிசோதனை சொருகுப்பொருளை தொடர்பு கொள்
-Comment[tg]=Модули матнии Kontact
-Comment[tr]=Kontact Test Eklentisi
-Comment[uk]=Тестовий втулок Kontact
-Comment[uz]=Kontact учун синаш плагини
-Comment[zh_CN]=Kontact Test 插件
-Comment[zh_TW]=Kontact 測試外掛程式
Name=TestPlugin
-Name[af]=Toets inprop module
-Name[be]=Тэставае дапаўненне
-Name[bg]=Приставка за тестване
-Name[ca]=Endollable de prova
-Name[cy]=AtegynPrawf
-Name[de]=TestModul
-Name[el]=Πρόσθετο ελέγχου
-Name[eo]=Testo-kromaĵo
-Name[fa]=وصلۀ آزمون
-Name[fr]=Module de test
-Name[fy]=Test-plugin
-Name[he]=תוסף ניסיון
-Name[hi]=टेस्ट-प्लगइन
-Name[hr]=Probni dodatak
-Name[hu]=Tesztmodul
-Name[is]=Prufu íforrit
-Name[it]=Plugin Test
-Name[ja]=テストプラグイン
-Name[kk]=Сынақ модулі
-Name[km]=កម្មវិធី​ជំនួយ​ការ​សាកល្បង
-Name[mk]=Приклучок за тест
-Name[ms]=Plugin Ujian
-Name[nb]=Test-programtillegg
-Name[nds]=Testmoduul
-Name[ne]=परीक्षण प्लगइन
-Name[nl]=Test-plugin
-Name[nn]=Test-programtillegg
-Name[nso]=Plugin ya Teko
-Name[pl]=Wtyczka testowa
-Name[pt_BR]=Plug-in de Teste
-Name[ro]=Modul de test
-Name[ru]=Проверочный модуль
-Name[se]=Geahččalan-lassemoduvla
-Name[sk]=TestModul
-Name[sl]=Preizkusni vstavek
-Name[sr]=Пробни прикључак
-Name[sr@Latn]=Probni priključak
-Name[sv]=Testinsticksprogram
-Name[ta]=சோதனை சொருகுப்பொருள்
-Name[tg]=Модули матнӣ
-Name[tr]=Test Eklentisi
-Name[uk]=Тестовий втулок
-Name[ven]=Lingani Plugin
-Name[zh_CN]=Test 插件
-Name[zh_TW]=測試外掛程式
+
+Comment=Kontact Test Plugin
diff --git a/kontact/plugins/test/test_part.cpp b/kontact/plugins/test/test_part.cpp
index 2e712ae8..12a7b483 100644
--- a/kontact/plugins/test/test_part.cpp
+++ b/kontact/plugins/test/test_part.cpp
@@ -48,14 +48,14 @@ TestPart::TestPart(TQObject *parent, const char *name) // ## parentWidget
m_edit = new TQTextEdit;
setWidget(m_edit);
setXMLFile("testpartui.rc");
- new TDEAction( "new contact (test)", 0, this, TQT_SLOT( newContact() ), actionCollection(), "test_deleteevent" );
+ new TDEAction( "new contact (test)", 0, this, TQ_SLOT( newContact() ), actionCollection(), "test_deleteevent" );
m_kab_stub = 0L;
new KParts::SideBarExtension(new TQComboBox(this), this, "sbe");
kapp->dcopClient()->setNotifications( true );
- connect( kapp->dcopClient(), TQT_SIGNAL( applicationRemoved( const TQCString&)),
- this, TQT_SLOT( unregisteredFromDCOP( const TQCString& )) );
+ connect( kapp->dcopClient(), TQ_SIGNAL( applicationRemoved( const TQCString&)),
+ this, TQ_SLOT( unregisteredFromDCOP( const TQCString& )) );
}
TestPart::~TestPart()
diff --git a/kontact/plugins/test/test_part.h b/kontact/plugins/test/test_part.h
index af7da8f8..10f9ced9 100644
--- a/kontact/plugins/test/test_part.h
+++ b/kontact/plugins/test/test_part.h
@@ -33,7 +33,7 @@ class KAddressBookIface_stub;
class TestPart : public KParts::ReadOnlyPart
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/test/test_plugin.cpp b/kontact/plugins/test/test_plugin.cpp
index 631d91cb..e98cd4f2 100644
--- a/kontact/plugins/test/test_plugin.cpp
+++ b/kontact/plugins/test/test_plugin.cpp
@@ -35,11 +35,11 @@ typedef KGenericFactory< TestPlugin, Kontact::Core > TestPluginFactory;
K_EXPORT_COMPONENT_FACTORY( libkptestplugin, TestPluginFactory( "kptestplugin" ) )
TestPlugin::TestPlugin(Kontact::Core *_core, const char *name, const TQStringList &)
- : Kontact::Plugin(_core, TQT_TQOBJECT(_core), name)
+ : Kontact::Plugin(_core, _core, name)
{
setInstance(TestPluginFactory::instance());
- insertNewAction(new TDEAction("Test", 0, this, TQT_SLOT(slotTestMenu()), actionCollection(), "edit_test"));
+ insertNewAction(new TDEAction("Test", 0, this, TQ_SLOT(slotTestMenu()), actionCollection(), "edit_test"));
setXMLFile("kptestplugin.rc");
}
diff --git a/kontact/plugins/test/test_plugin.h b/kontact/plugins/test/test_plugin.h
index 2a541c84..ad9f081d 100644
--- a/kontact/plugins/test/test_plugin.h
+++ b/kontact/plugins/test/test_plugin.h
@@ -33,7 +33,7 @@ class TestPart;
class TestPlugin : public Kontact::Plugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/plugins/weather/CMakeLists.txt b/kontact/plugins/weather/CMakeLists.txt
index 3c3928cb..0882e2d4 100644
--- a/kontact/plugins/weather/CMakeLists.txt
+++ b/kontact/plugins/weather/CMakeLists.txt
@@ -24,9 +24,11 @@ link_directories(
##### other data ################################
-install( FILES
- weatherplugin.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/kontact )
+tde_create_translated_desktop(
+ SOURCE weatherplugin.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/kontact
+ PO_DIR kontact-desktops
+)
##### libkontact_weatherplugin (module) #########
diff --git a/kontact/plugins/weather/summarywidget.cpp b/kontact/plugins/weather/summarywidget.cpp
index 37fbe74d..323ad8de 100644
--- a/kontact/plugins/weather/summarywidget.cpp
+++ b/kontact/plugins/weather/summarywidget.cpp
@@ -69,7 +69,7 @@ SummaryWidget::SummaryWidget( TQWidget *parent, const char *name )
if ( reply.isValid() ) {
mStations = reply;
- connect( &mTimer, TQT_SIGNAL( timeout() ), this, TQT_SLOT( timeout() ) );
+ connect( &mTimer, TQ_SIGNAL( timeout() ), this, TQ_SLOT( timeout() ) );
mTimer.start( 0 );
} else {
kdDebug(5602) << "ERROR: dcop reply not valid..." << endl;
@@ -117,8 +117,8 @@ void SummaryWidget::updateView()
urlLabel->setAlignment( AlignTop );
layout->addMultiCellWidget( urlLabel, 0, 1, 0, 0 );
mLabels.append( urlLabel );
- connect ( urlLabel, TQT_SIGNAL( leftClickedURL( const TQString& ) ),
- this, TQT_SLOT( showReport( const TQString& ) ) );
+ connect ( urlLabel, TQ_SIGNAL( leftClickedURL( const TQString& ) ),
+ this, TQ_SLOT( showReport( const TQString& ) ) );
TQLabel* label = new TQLabel( this );
label->setText( TQString( "%1 (%2)" ).arg( (*it).name() ).arg( (*it).temperature() ) );
@@ -210,8 +210,8 @@ void SummaryWidget::updateSummary( bool )
void SummaryWidget::showReport( const TQString &stationID )
{
mProc = new TDEProcess;
- TQApplication::connect( mProc, TQT_SIGNAL( processExited( TDEProcess* ) ),
- this, TQT_SLOT( reportFinished( TDEProcess* ) ) );
+ TQApplication::connect( mProc, TQ_SIGNAL( processExited( TDEProcess* ) ),
+ this, TQ_SLOT( reportFinished( TDEProcess* ) ) );
*mProc << "kweatherreport";
*mProc << stationID;
diff --git a/kontact/plugins/weather/summarywidget.h b/kontact/plugins/weather/summarywidget.h
index 96361526..196269fd 100644
--- a/kontact/plugins/weather/summarywidget.h
+++ b/kontact/plugins/weather/summarywidget.h
@@ -86,7 +86,7 @@ class WeatherData
class SummaryWidget : public Kontact::Summary, public DCOPObject
{
- Q_OBJECT
+ TQ_OBJECT
//
K_DCOP
public:
diff --git a/kontact/plugins/weather/weather_plugin.cpp b/kontact/plugins/weather/weather_plugin.cpp
index 93a97bfc..506b16fd 100644
--- a/kontact/plugins/weather/weather_plugin.cpp
+++ b/kontact/plugins/weather/weather_plugin.cpp
@@ -32,7 +32,7 @@ K_EXPORT_COMPONENT_FACTORY( libkontact_weatherplugin,
WeatherPluginFactory( "kontact_weatherplugin" ) )
WeatherPlugin::WeatherPlugin( Kontact::Core *core, const char *name, const TQStringList& )
- : Kontact::Plugin( core, TQT_TQOBJECT(core), name ), mAboutData( 0 )
+ : Kontact::Plugin( core, core, name ), mAboutData( 0 )
{
setInstance( WeatherPluginFactory::instance() );
}
diff --git a/kontact/plugins/weather/weatherplugin.desktop b/kontact/plugins/weather/weatherplugin.desktop
index 04ae285a..1a5ab9a4 100644
--- a/kontact/plugins/weather/weatherplugin.desktop
+++ b/kontact/plugins/weather/weatherplugin.desktop
@@ -15,70 +15,6 @@ X-TDE-PluginInfo-Version=0.1
X-TDE-PluginInfo-License=LGPL
X-TDE-PluginInfo-EnabledByDefault=true
-Comment=Kontact Weather Component
-Comment[bg]=Приставка за метеорологичното време
-Comment[ca]=Component del temps del Kontact
-Comment[da]=Vejrkomponent til Kontact
-Comment[de]=Wetter-Komponente für Kontact
-Comment[el]=Συστατικό καιρού του Kontact
-Comment[et]=Kontacti ilmaplugin
-Comment[it]=Componente meteorologico di Kontact
-Comment[ja]=Kontact 気象情報コンポーネント
-Comment[nds]=Kontact-Wederkomponent
-Comment[nl]=Kontact Weercomponent
-Comment[pl]=Składnik Kontaktu wiadomości o pogodzie
-Comment[sr]=Компонента времена за Kontact
-Comment[sr@Latn]=Komponenta vremena za Kontact
-Comment[sv]=Kontacts väderkomponent
-Comment[zh_CN]=Kontact 天气插件
-Comment[zh_TW]=Kontact 天氣組件
Name=Weather Service
-Name[af]=Weer diens
-Name[ar]=خدمة الطقس
-Name[bg]=Информация за времето
-Name[br]=Servij an amzer
-Name[ca]=Servei meteorològic
-Name[cs]=Služba počasí
-Name[cy]=GwasanaethTywydd
-Name[da]=Vejrtjeneste
-Name[de]=Wetterdienst
-Name[el]=Υπηρεσία πρόβλεψης Καιρού
-Name[eo]=Veterservo
-Name[es]=Servicio meteorológico
-Name[et]=Ilmateade
-Name[eu]=Eguraldiaren zerbitzua
-Name[fa]=خدمت آب و هوا
-Name[fi]=Sääpalvelu
-Name[fr]=KWeatherService
-Name[fy]=Waarberjocht
-Name[ga]=Seirbhís Aimsire
-Name[gl]=Servicio do Tempo
-Name[he]=שירות מזג אוויר
-Name[hu]=Időjárás
-Name[is]=Veðurþjónusta
-Name[it]=Servizio meteorologico
-Name[ja]=気象サービス
-Name[kk]=Ауа райы қызметі
-Name[km]=សេវា​អាកាសធាតុ
-Name[lt]=Orų tarnyba
-Name[mk]=Временска прогноза
-Name[nb]=Værtjeneste
-Name[nds]=Wederdeenst
-Name[ne]=मौसम कार्य
-Name[nl]=Weerbericht
-Name[nn]=Vêrmelding
-Name[pl]=Pogoda
-Name[pt]=Serviço Meteorológico
-Name[pt_BR]=Serviço de Previsão do Tempo
-Name[ru]=Погода
-Name[sk]=Služba počasie
-Name[sl]=Vremenska storitev
-Name[sr]=Време
-Name[sr@Latn]=Vreme
-Name[sv]=Väderleksprognos
-Name[th]=รายงานอากาศ
-Name[tr]=Hava Durumu Servisi
-Name[uk]=Служба погоди
-Name[uz]=Об-ҳаво хизмати
-Name[zh_CN]=天气服务
-Name[zh_TW]=天氣服務
+
+Comment=Kontact Weather Component
diff --git a/kontact/profiles/KontactDefaults/CMakeLists.txt b/kontact/profiles/KontactDefaults/CMakeLists.txt
index 4d313d0e..424cad13 100644
--- a/kontact/profiles/KontactDefaults/CMakeLists.txt
+++ b/kontact/profiles/KontactDefaults/CMakeLists.txt
@@ -9,6 +9,13 @@
#
#################################################
-install( FILES
- profile.cfg kontactrc korganizerrc
- DESTINATION ${DATA_INSTALL_DIR}/kontact/profiles/KontactDefaults )
+tde_create_translated_desktop(
+ SOURCE profile.cfg
+ DESTINATION ${DATA_INSTALL_DIR}/kontact/profiles/KontactDefaults
+ PO_DIR kontact-desktops
+)
+
+install(
+ FILES kontactrc korganizerrc
+ DESTINATION ${DATA_INSTALL_DIR}/kontact/profiles/KontactDefaults
+)
diff --git a/kontact/profiles/OutlookDefaults/CMakeLists.txt b/kontact/profiles/OutlookDefaults/CMakeLists.txt
index ff3986bb..3ae1fb92 100644
--- a/kontact/profiles/OutlookDefaults/CMakeLists.txt
+++ b/kontact/profiles/OutlookDefaults/CMakeLists.txt
@@ -9,6 +9,13 @@
#
#################################################
-install( FILES
- profile.cfg kontactrc korganizerrc
- DESTINATION ${DATA_INSTALL_DIR}/kontact/profiles/OutlookDefaults )
+tde_create_translated_desktop(
+ SOURCE profile.cfg
+ DESTINATION ${DATA_INSTALL_DIR}/kontact/profiles/OutlookDefaults
+ PO_DIR kontact-desktops
+)
+
+install(
+ FILES kontactrc korganizerrc
+ DESTINATION ${DATA_INSTALL_DIR}/kontact/profiles/OutlookDefaults
+)
diff --git a/kontact/src/CMakeLists.txt b/kontact/src/CMakeLists.txt
index 39ea8df9..e15e5c66 100644
--- a/kontact/src/CMakeLists.txt
+++ b/kontact/src/CMakeLists.txt
@@ -28,10 +28,27 @@ link_directories(
##### other data ################################
tde_install_icons( )
-install( FILES Kontact.desktop kontactdcop.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+
+tde_create_translated_desktop(
+ SOURCE Kontact.desktop kontactdcop.desktop
+ PO_DIR kontact-desktops
+)
+
install( FILES kontact.kcfg DESTINATION ${KCFG_INSTALL_DIR} )
-install( FILES kontactconfig.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
-install( FILES kontactui.rc kontact.setdlg DESTINATION ${DATA_INSTALL_DIR}/kontact )
+
+tde_create_translated_desktop(
+ SOURCE kontactconfig.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR kontact-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE kontact.setdlg
+ DESTINATION ${DATA_INSTALL_DIR}/kontact
+ PO_DIR kontact-desktops
+)
+
+install( FILES kontactui.rc DESTINATION ${DATA_INSTALL_DIR}/kontact )
##### kcm_kontact (module) ######################
diff --git a/kontact/src/Kontact.desktop b/kontact/src/Kontact.desktop
index 020bac0b..c25cbff1 100644
--- a/kontact/src/Kontact.desktop
+++ b/kontact/src/Kontact.desktop
@@ -1,68 +1,12 @@
[Desktop Entry]
-Name=Kontact
-Name[be]=Кантакт
-Name[hi]=कॉन्टेक्ट
-Name[mk]=Контакт
-Name[ne]=सम्पर्क गर्नुहोस्
-Name[sv]=Kontakt
-Name[ta]=தொடர்பு கொள்
-Name[zh_TW]=Kontact 個人資訊管理
Exec=kontact
Type=Application
Icon=kontact
+
+Name=Kontact
+
GenericName=Personal Information Manager
-GenericName[af]=Personlike informasie bestuurder
-GenericName[ar]=منظم المعلومات الشخصي
-GenericName[be]=Кіраванне пэрсанальнай інфармацыяй
-GenericName[bg]=Лична информация
-GenericName[bs]=Upravitelj ličnim informacijama
-GenericName[ca]=Gestor d'informació personal
-GenericName[cs]=Správce osobních informací
-GenericName[cy]=Rheolydd Gwybodaeth Personol
-GenericName[da]=Personlig informationshåndtering
-GenericName[de]=Persönlicher Informationsmanager
-GenericName[el]=Προσωπικός διαχειριστής πληροφοριών
-GenericName[eo]=Persona Inform-Mastrumilo
-GenericName[es]=Gestor de información personal
-GenericName[et]=Personaalse info haldur
-GenericName[eu]=Informazio pertsonalaren kudeatzailea
-GenericName[fa]=مدیر اطلاعات شخصی
-GenericName[fi]=Henkilötietojen hallinta
-GenericName[fr]=Gestionnaire d'informations personnelles
-GenericName[gl]=Xestor de Información Persoal
-GenericName[he]=מנהל מידע אישי
-GenericName[hi]=निजी जानकारी प्रबंधक
-GenericName[hu]=Információkezelő
-GenericName[is]=Persónulegur upplýsingastjórnandi
-GenericName[it]=Gestione informazioni personali
-GenericName[ja]=個人情報マネージャ
-GenericName[kk]=Дербес Ақпарат Менеджері
-GenericName[km]=កម្មវិធី​គ្រប់គ្រង​ព័ត៌មាន​ផ្ទាល់​ខ្លួន
-GenericName[lt]=Asmeninės informacijos tvarkyklė
-GenericName[mk]=Менаџер на лични информации
-GenericName[ms]=Pengurus Makumat Peribadi
-GenericName[nb]=Personlig informasjonsbehandler
-GenericName[nds]=Pleger för persöönliche Informatschonen
-GenericName[ne]=व्यक्तिगत सूचना प्रबन्धक
-GenericName[nn]=Personleg informasjonshandtering
-GenericName[pl]=Program do zarządzania informacjami osobistymi
-GenericName[pt]=Gestor Pessoal de Informações
-GenericName[pt_BR]=Gerenciador de Informações Pessoais
-GenericName[ro]=Manager de informaţii personale
-GenericName[ru]=Персональный информационный менеджер
-GenericName[se]=Persuvnnalaš diehtogieđaheapmi
-GenericName[sk]=Osobný manažér informácii
-GenericName[sl]=Osebni upravitelj informacij
-GenericName[sr]=Менаџер личних информација
-GenericName[sr@Latn]=Menadžer ličnih informacija
-GenericName[sv]=Personlig informationshantering
-GenericName[ta]=அந்தரங்க தகவல் மேலாளர்
-GenericName[tg]=Мудири маълумоти шахсӣ
-GenericName[tr]=Kişisel Bilgi Yöneticisi
-GenericName[uk]=Менеджер особистої інформації
-GenericName[uz]=Шахсий маълумот бошқарувчиси
-GenericName[zh_CN]=个人信息管理器
-GenericName[zh_TW]=個人資訊管理者
+
Terminal=false
X-TDE-StartupNotify=true
Categories=Qt;TDE;Office;Email;X-TDE-Office-PIM;
diff --git a/kontact/src/about/kontact.css b/kontact/src/about/kontact.css
index 47188fe5..d599a630 100644
--- a/kontact/src/about/kontact.css
+++ b/kontact/src/about/kontact.css
@@ -23,6 +23,3 @@
#subtext {
font-style: italic;
}
-
-/* vim:set sw=2 et nocindent smartindent: */
-
diff --git a/kontact/src/about/main.html b/kontact/src/about/main.html
index c2e10ec2..8460249c 100644
--- a/kontact/src/about/main.html
+++ b/kontact/src/about/main.html
@@ -64,4 +64,3 @@
<div id="footer"><div id="footerL"/><div id="footerR"/></div>
</body>
</html>
-<!-- vim:set sw=2 et nocindent smartindent: -->
diff --git a/kontact/src/aboutdialog.h b/kontact/src/aboutdialog.h
index f407f46a..de20c1ee 100644
--- a/kontact/src/aboutdialog.h
+++ b/kontact/src/aboutdialog.h
@@ -33,7 +33,7 @@ class Plugin;
class AboutDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/src/iconsidepane.cpp b/kontact/src/iconsidepane.cpp
index 39deb330..f9a261a9 100644
--- a/kontact/src/iconsidepane.cpp
+++ b/kontact/src/iconsidepane.cpp
@@ -265,18 +265,18 @@ Navigator::Navigator( IconSidePane *parent, const char *name )
setHScrollBarMode( TQScrollView::AlwaysOff );
setAcceptDrops( true );
- setFocusPolicy( TQ_NoFocus );
+ setFocusPolicy( TQWidget::NoFocus );
- connect( this, TQT_SIGNAL( selectionChanged( TQListBoxItem* ) ),
- TQT_SLOT( slotExecuted( TQListBoxItem* ) ) );
- connect( this, TQT_SIGNAL( rightButtonPressed( TQListBoxItem*, const TQPoint& ) ),
- TQT_SLOT( slotShowRMBMenu( TQListBoxItem*, const TQPoint& ) ) );
- connect( this, TQT_SIGNAL( onItem( TQListBoxItem * ) ),
- TQT_SLOT( slotMouseOn( TQListBoxItem * ) ) );
- connect( this, TQT_SIGNAL( onViewport() ), TQT_SLOT( slotMouseOff() ) );
+ connect( this, TQ_SIGNAL( selectionChanged( TQListBoxItem* ) ),
+ TQ_SLOT( slotExecuted( TQListBoxItem* ) ) );
+ connect( this, TQ_SIGNAL( rightButtonPressed( TQListBoxItem*, const TQPoint& ) ),
+ TQ_SLOT( slotShowRMBMenu( TQListBoxItem*, const TQPoint& ) ) );
+ connect( this, TQ_SIGNAL( onItem( TQListBoxItem * ) ),
+ TQ_SLOT( slotMouseOn( TQListBoxItem * ) ) );
+ connect( this, TQ_SIGNAL( onViewport() ), TQ_SLOT( slotMouseOff() ) );
- mMapper = new TQSignalMapper( TQT_TQOBJECT(this) );
- connect( mMapper, TQT_SIGNAL( mapped( int ) ), TQT_SLOT( shortCutSelected( int ) ) );
+ mMapper = new TQSignalMapper( this );
+ connect( mMapper, TQ_SIGNAL( mapped( int ) ), TQ_SLOT( shortCutSelected( int ) ) );
TQToolTip::remove( this );
if ( !mShowText )
@@ -295,7 +295,7 @@ void Navigator::highlightItem( EntryItem * item )
setPaintActiveItem( mHighlightItem, true );
- TQTimer::singleShot( 2000, this, TQT_SLOT( slotStopHighlight() ) );
+ TQTimer::singleShot( 2000, this, TQ_SLOT( slotStopHighlight() ) );
}
void Navigator::slotStopHighlight()
@@ -539,8 +539,8 @@ IconSidePane::IconSidePane( Core *core, TQWidget *parent, const char *name )
: SidePaneBase( core, parent, name )
{
mNavigator = new Navigator( this );
- connect( mNavigator, TQT_SIGNAL( pluginActivated( Kontact::Plugin* ) ),
- TQT_SIGNAL( pluginSelected( Kontact::Plugin* ) ) );
+ connect( mNavigator, TQ_SIGNAL( pluginActivated( Kontact::Plugin* ) ),
+ TQ_SIGNAL( pluginSelected( Kontact::Plugin* ) ) );
setAcceptDrops( true );
}
@@ -599,5 +599,3 @@ void IconSidePane::indicateForegrunding( Kontact::Plugin *plugin )
}
#include "iconsidepane.moc"
-
-// vim: sw=2 sts=2 et tw=80
diff --git a/kontact/src/iconsidepane.h b/kontact/src/iconsidepane.h
index 4cfbd555..bb91997b 100644
--- a/kontact/src/iconsidepane.h
+++ b/kontact/src/iconsidepane.h
@@ -117,7 +117,7 @@ class EntryItemToolTip : public TQToolTip
*/
class Navigator : public TDEListBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
Navigator( IconSidePane *parent = 0, const char *name = 0 );
@@ -173,7 +173,7 @@ class Navigator : public TDEListBox
class IconSidePane : public SidePaneBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
IconSidePane( Core *core, TQWidget *parent, const char *name = 0 );
diff --git a/kontact/src/kcmkontact.cpp b/kontact/src/kcmkontact.cpp
index 622d597b..b1d0b039 100644
--- a/kontact/src/kcmkontact.cpp
+++ b/kontact/src/kcmkontact.cpp
@@ -38,7 +38,7 @@
#include <tqlabel.h>
#include <tqlayout.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
extern "C"
{
@@ -81,8 +81,8 @@ KcmKontact::KcmKontact( TQWidget *parent, const char *name )
pluginStartupLayout->addWidget( selection->comboBox() );
selection->comboBox()->setEnabled( false );
- connect( forceStartupPlugin->checkBox(), TQT_SIGNAL( toggled( bool ) ),
- selection->comboBox(), TQT_SLOT( setEnabled( bool ) ) );
+ connect( forceStartupPlugin->checkBox(), TQ_SIGNAL( toggled( bool ) ),
+ selection->comboBox(), TQ_SLOT( setEnabled( bool ) ) );
load();
}
@@ -104,7 +104,7 @@ PluginSelection::PluginSelection( TDEConfigSkeleton::ItemString *item, TQWidget
{
mItem = item;
mPluginCombo = new TQComboBox( parent );
- connect( mPluginCombo, TQT_SIGNAL( activated( int ) ), TQT_SIGNAL( changed() ) );
+ connect( mPluginCombo, TQ_SIGNAL( activated( int ) ), TQ_SIGNAL( changed() ) );
}
PluginSelection::~PluginSelection()
diff --git a/kontact/src/kcmkontact.h b/kontact/src/kcmkontact.h
index f19980e2..5dcb714c 100644
--- a/kontact/src/kcmkontact.h
+++ b/kontact/src/kcmkontact.h
@@ -38,7 +38,7 @@ class TDEListView;
class KcmKontact : public KPrefsModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -49,7 +49,7 @@ class KcmKontact : public KPrefsModule
class PluginSelection : public KPrefsWid
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/kontact/src/kontact.setdlg b/kontact/src/kontact.setdlg
index 872457ad..5c26608d 100644
--- a/kontact/src/kontact.setdlg
+++ b/kontact/src/kontact.setdlg
@@ -1,589 +1,47 @@
[KontactSummary]
Name=Summary View
-Name[bg]=Обобщение
-Name[ca]=Vista de resum
-Name[da]=Opsummeringsvisning
-Name[de]=Übersicht
-Name[el]=Προβολή σύνοψης
-Name[et]=Kokkuvõttevaade
-Name[it]=Vista sommario
-Name[ja]=要約ビュー
-Name[nds]=Översicht
-Name[nl]=Overzichtsweergave
-Name[pl]=Podsumowanie
-Name[sr]=Приказ сажетка
-Name[sr@Latn]=Prikaz sažetka
-Name[sv]=Översiktsvy
-Name[zh_CN]=摘要视图
-Name[zh_TW]=摘要檢視
Comment=Configuration of Kontact's <b>Summary View</b>. Some plugins provide <i>Summary View</i> items, choose the ones you would like to list.
-Comment[bg]=Настройване на <b>Обобщение</b> на Kontact. Някои приставки предлагат <i>обобщение</i>, изберете тези, които искате да използвате.
-Comment[ca]=Configuració de la <b>vista de resum</b> del Kontact. Alguns endollables proporcionen elements de <i>vista de resum</i>, trieu-ne els que voldríeu llistar.
-Comment[da]=Konfiguration af Kontacts <b>Opsummeringsvisning</b>. Nogle plugins giver <i>Opsummeringsvisning</i>-elementer, vælg dem du ønsker på listen.
-Comment[de]=Einrichtung der <b>Zusammenfassungsansicht</b> von Kontact. Einige Kontact-Module stellen Elemente für die <i>Zusammenfassungsansicht</i> zur Verfügung. Wählen Sie hier, welche Elemente angezeigt werden sollen.
-Comment[el]=Ρύθμιση της <b>Προβολής σύνοψης</b> του Kontact. Κάποια πρόσθετα παρέχουν αντικείμενα <i>Προβολή σύνοψης</i>· επιλέξτε αυτά που θέλετε να εμφανίζονται.
-Comment[et]=Kontacti <b>kokkuvõttevaate</b> seadistamine. Mõned pluginad pakuvad <i>kokkuvõttevaate</i> elemente. Vali nimekirjas need, mida soovid näha.
-Comment[it]=Configurazione della <b>vista sommario</b> di Kontact. Alcuni plugin forniscono elementi di <i>vista sommario</i>, scegli quelli che desideri vedere nell'elenco.
-Comment[ja]=Kontact の要約ビューの設定。要約ビューの項目を提供するプラグインがいくつかあります。要約ビューに表示させる項目を選択してください。
-Comment[nds]=Kontact sien <b>Översicht</b> instellen. En Reeg Modulen stellt Indrääg för de <i>Översicht</i> praat. Hier kannst Du de utsöken, de Du hebben wullt.
-Comment[nl]=Configuratie van Kontacts <b>Overzichtsweergave</b>. Sommige plugins bieden ook items aan voor de <i>Overzichtweergave</i>, kies welke u wilt zien.
-Comment[pl]=Konfiguracja <b>Podsumowania</b> Kontaktu. Niektóre wtyczki zapewniają elementy <i>Widok podsumowania</i>, wybierz te które chcesz zobaczyć.
-Comment[sr]=Подешавање Kontact-овог <b>приказа сажетка</b>. Неки прикључци дају ставке <i>приказа сажетка</i>, изаберите оне које желите.
-Comment[sr@Latn]=Podešavanje Kontact-ovog <b>prikaza sažetka</b>. Neki priključci daju stavke <i>prikaza sažetka</i>, izaberite one koje želite.
-Comment[sv]=Inställning av Kontacts <b>översiktsvy</b>. Vissa insticksprogram tillhandahåller objekt för <i>översiktsvyn</i>. Välj de du skulle vilja visa.
-Comment[zh_CN]=Kontact <b>摘要视图</b>配置。有些插件提供了<i>摘要视图</i>项目,请选择您希望出现在列表中的项目。
-Comment[zh_TW]=設定 Kontact 的摘要檢視。有些外掛程式會提供「摘要檢視」的項目,您可以選取您要列出的項目。
Weight=100
Icon=kontact_summary
[KMail]
Name=E-Mail
-Name[bg]=Е-поща
-Name[ca]=Correu
-Name[da]=E-mail
-Name[de]=E-Mail
-Name[el]=Αλληλογραφία
-Name[et]=E-post
-Name[it]=Posta elettronica
-Name[ja]=メール
-Name[nds]=Nettpost
-Name[nl]=E-mail
-Name[pl]=E-mail
-Name[sr]=Е-пошта
-Name[sr@Latn]=E-pošta
-Name[sv]=E-post
-Name[zh_CN]=邮件
-Name[zh_TW]=電子郵件
Comment=Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary View Item</i> and represents a <i>Kontact Component</i>.
-Comment[bg]=Настройване на приставката за <b>KMail</b> в Kontact, включително обобщението и компонента.
-Comment[ca]=Configuració de l'endollable de correu <b>KMail</b> del Kontact, inclou un <i>element de vista de resum</i> i representa un <i>component del Kontact</i>.
-Comment[da]=Konfiguration af Kontacts e-mail-plugin <b>KMail</b>, inkluderer et <i>Opsummeringsvisnings-element</i> og repræsenterer en <i>Kontact-komponent</i>.
-Comment[de]=Einrichtung des E-Mail-Moduls <b>KMail</b> für Kontact. Die E-Mail-Komponente kann als <i>Kontact-Komponente<i> in die <i>Zusammenfassungsansicht</i> integriert werden.
-Comment[el]=Η ρύθμιση του προσθέτου αλληλογραφίας <b>KMail</b> του Kontact, περιέχει ένα <i>Αντικείμενο προβολής σύνοψης</i> και αντιπροσωπεύει ένα <i>Συστατικό του Kontact</i>.
-Comment[et]=Kontacti e-posti plugina <b>KMaili</b> seadistamine, mis sisaldab <i>kokkuvõttevaate elementi</i>.
-Comment[it]=Configurazione del plugin di posta elettronica <b>KMail</b> di Kontact, include una <i>vista sommario</i> e rappresenta un <i>componente Kontact</i>.
-Comment[nds]=Kontact sien Nettpost-Moduul <b>KMail</b> instellen. Stellt en <i>Översicht-Indrag</i> praat un is en <i>Kontact-Komponent</i>.
-Comment[nl]=Instellingen voor Kontacts e-mailplugin <b>KMail</b>. Bevat een <i>Overzichtsweergaveplugin</i> en een <i>Kontact-component</i>.
-Comment[pl]=Konfiguracja wtyczki poczty Kontaktu <b>KMail</b>, zawiera <i>element Podsumowanie</i> i jest <i>Składnikiem Kontaktu</i>.
-Comment[sr]=Подешавање Kontact-овог прикључка за е-пошту преко <b>KMail-</b>, укључујући <i>приказ сажетка</i>, и дат као <i>компонента Kontact-а</i>.
-Comment[sr@Latn]=Podešavanje Kontact-ovog priključka za e-poštu preko <b>KMail-</b>, uključujući <i>prikaz sažetka</i>, i dat kao <i>komponenta Kontact-a</i>.
-Comment[sv]=Inställning av Kontacts e-postinsticksprogram <b>Kmail</b>, omfattar ett objekt för <i>översiktsvyn</i> och representerar en <i>Kontactkomponent</i>.
-Comment[zh_CN]=Kontact <b>KMail</b> 电子邮件插件配置,其中包含一个<i>摘要视图项目,以 <i>Kontact 组件</i>形式呈现。
-Comment[zh_TW]=設定 Kontact 的電子郵件組件。
Weight=200
Icon=kontact_mail
[KAB]
Name=Contacts
-Name[af]=Kontakte
-Name[ar]=المراسلون
-Name[be]=Кантакты
-Name[bg]=Контакти
-Name[br]=Darempredoù
-Name[bs]=Kontakti
-Name[ca]=Contactes
-Name[cs]=Kontakty
-Name[cy]=Cysylltau
-Name[da]=Kontakter
-Name[de]=Kontakte
-Name[el]=Επαφές
-Name[eo]=Kontaktoj
-Name[es]=Contactos
-Name[et]=Kontaktid
-Name[eu]=Kontaktuak
-Name[fa]=تماسها
-Name[fi]=Yhteystiedot
-Name[fy]=Adressen
-Name[ga]=Teagmhálacha
-Name[gl]=Contactos
-Name[he]=אנשי קשר
-Name[hi]=सम्पर्कों
-Name[hu]=Névjegyek
-Name[is]=Tengiliðir
-Name[it]=Contatti
-Name[ja]=コンタクト
-Name[kk]=Контакттар
-Name[km]=ទំនាក់ទំនង
-Name[lt]=Kontaktai
-Name[mk]=Контакти
-Name[ms]=Orang hubungan
-Name[nds]=Kontakten
-Name[ne]=सम्पर्क
-Name[nl]=Adressen
-Name[nn]=Kontaktar
-Name[pa]=ਸੰਪਰਕ
-Name[pl]=Wizytówki
-Name[pt]=Contactos
-Name[pt_BR]=Contatos
-Name[ro]=Contacte
-Name[ru]=Контакты
-Name[rw]=Amaderesi
-Name[se]=Oktavuođat
-Name[sk]=Kontakty
-Name[sl]=Stiki
-Name[sr]=Контакти
-Name[sr@Latn]=Kontakti
-Name[sv]=Kontakter
-Name[ta]=தொடர்புகள்
-Name[tg]=Алоқот
-Name[th]=ที่อยู่ติดต่อ
-Name[tr]=Bağlantılar
-Name[uk]=Контакти
-Name[uz]=Алоқалар
-Name[zh_CN]=联系人
-Name[zh_TW]=聯絡人
Comment=Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which represents a <i>Kontact Component</i>.
-Comment[bg]=Настройване на приставката за <b>KAdressbook</b> в Kontact, включително компонента.
-Comment[ca]=Configuració de l'endollable de la llibreta d'adreces <b>KAdressbook</b> del Kontact, que representa un <i>component del Kontact</i>.
-Comment[da]=Konfiguration af Kontacts adressebog-plugin <b>KAdressbook</b> som repræsenterer en <i>Kontact-komponent</i>.
-Comment[de]=Einrichtung des Adressbuch-Moduls für Kontact, welches eine <i>Kontact-Komponente</i> repräsentiert.
-Comment[el]=Ρύθμιση του πρόσθετου βιβλίου διευθύνσεων <b>KAdressbook</b> του Kontact που αντιπροσωπεύει ένα <i>Συστατικό του Kontact</i>.
-Comment[et]=Kontacti aadressiraamatu plugina <b>KAdressbook</b> seaditamine.
-Comment[it]=Configurazione del plugin rubrica di <b>KAddressbook</b> che rappresenta un <i>componente Kontact</i>.
-Comment[nds]=Kontact sien Adressbook-Moduul <b>KAddressbook</b> instellende, dat en <i>Kontact-Komponent</i> is.
-Comment[nl]=Instellingen voor Kontacts adresboekplugin <b>KMail</b>. Bevat een <i>Kontact-component</i>.
-Comment[pl]=Konfiguracja wtyczki książki adresowej Kontaktu <b>KAddressBook</b>, która jest <i>Składnikiem Kontaktu</i>.
-Comment[sr]=Подешавање Kontact-овог прикључка за адресар преко <b>KAdressbook</b> у облику <i>компоненте Kontact-а</i>.
-Comment[sr@Latn]=Podešavanje Kontact-ovog priključka za adresar preko <b>KAdressbook</b> u obliku <i>komponente Kontact-a</i>.
-Comment[sv]=Inställning av Kontacts adressboksinsticksprogram <b>Kaddressbook</b>, som representerar en <i>Kontactkomponent</i>.
-Comment[zh_CN]=Kontact <b>KAdressbook</b> 地址簿插件配置,KAdressbook 以一个<i>Kontact 组件</i>形式呈现。
-Comment[zh_TW]=設定 Kontact 的通訊錄組件。
Weight=300
Icon=kontact_contacts
[Special Dates]
Name=Special Dates Summary
-Name[af]=Spesiale datums opsomming
-Name[ar]=موجز عن التواريخ المرموقة
-Name[bg]=Обобщение на специални случаи
-Name[ca]=Resum de dates especials
-Name[cs]=Souhrn speciálních datumů
-Name[da]=Opsummering af særlige datoer
-Name[de]=Übersicht über besondere Termine
-Name[el]=Σύνοψη σημαντικών ημερομηνιών
-Name[eo]=Resumo pri Specialaj Datoj
-Name[es]=Resumen de fechas especiales
-Name[et]=Tähtpäevade kokkuvõte
-Name[eu]=Data berezien laburpena
-Name[fa]=خلاصۀ تاریخهای ویژه
-Name[fi]=Erikoispäivien yhteenveto
-Name[fr]=Résumé des dates particulières
-Name[fy]=Oersicht foar spesjale datums
-Name[gl]=Resumo de Datas Especiais
-Name[he]=תקציר תאריכים מיוחדים
-Name[hu]=A fontos dátumok áttekintője
-Name[is]=Yfirlit sérstakra daga
-Name[it]=Sommario date speciali
-Name[ja]=特別な日の要約
-Name[kk]=Ерекше күндер тұжырымы
-Name[km]=សង្ខេប​ថ្ងៃ​ពិសេស
-Name[lt]=Ypatingų dienų santrauka
-Name[mk]=Преглед на специјални датуми
-Name[ms]=Ringkasan Tarikh Khusus
-Name[nb]=Sammendrag av spesielle datoer
-Name[nds]=Översicht över besünner Daag
-Name[ne]=विशेष मिति सारांश
-Name[nl]=Overzicht voor speciale data
-Name[nn]=Samandrag for spesielle datoar
-Name[pl]=Podsumowanie dat specjalnych
-Name[pt]=Sumário de Datas Especiais
-Name[pt_BR]=Resumo de Datas Especiais
-Name[ru]=Дайджест особых дат
-Name[sk]=Súhrn špeciálnych dátumov
-Name[sl]=Povzetek posebnih datumov
-Name[sr]=Сажетак посебних датума
-Name[sr@Latn]=Sažetak posebnih datuma
-Name[sv]=Översikt av speciella datum
-Name[ta]=விசேஷ செய்திகளின் சுருக்கம்
-Name[th]=สรุปวันพิเศษ
-Name[tr]=Özel Tarihler Özeti
-Name[uk]=Короткий підсумок особливих дат
-Name[zh_CN]=特殊日期摘要
-Name[zh_TW]=特殊日期摘要
Comment=Special Dates Summary Component
-Comment[af]=Spesiale datums opsomming komponent
-Comment[bg]=Модул за обобщение на специалните случаи
-Comment[ca]=Component pel resum de dates especials
-Comment[cs]=Komponenta souhrnu speciálních příležitostí
-Comment[da]=Opsummeringskomponent for særlige datoer
-Comment[de]=Komponente für Übersicht über besondere Termine
-Comment[el]=Στοιχείο σύνοψης Σημαντικών Ημερομηνιών
-Comment[eo]=Specialdatresuma Komponanto
-Comment[es]=Componente de resumen de fechas especiales
-Comment[et]=Tähtpäevade kokkuvõtte komponent
-Comment[eu]=Data berezien laburpenaren osagaia
-Comment[fa]=مؤلفۀ خلاصۀ تاریخهای ویژه
-Comment[fi]=Erikoispäivien yhteenvedon komponentti
-Comment[fr]=Composant de résumé des dates particulières
-Comment[fy]=Komponint foar oersicht fan spesjale datums
-Comment[gl]=Compoñente de Resumo de Datas Especiais
-Comment[he]=רכיב תאריכים חשובים
-Comment[hu]=A fontos dátumok áttekintő komponense
-Comment[is]=Yfirlitshluti sérstakra daga
-Comment[it]=Componente sommario per le date speciali
-Comment[ja]=特別な日の要約コンポーネント
-Comment[kk]=Ерекше күндер тұжырымының компоненті
-Comment[km]=សមាសភាគ​សង្ខេប​នៃ​ថ្ងៃ​ពិសេស
-Comment[lt]=Ypatingų dienų santraukos komponentas
-Comment[mk]=Компонента за преглед на специјални датуми
-Comment[ms]=Komponen Ringkasan Tarikh Khusus
-Comment[nb]=Komponent for sammendrag av spesielle datoer
-Comment[nds]=Översichtkomponent för besünner Daag
-Comment[ne]=विशेष मिति सारांश अवयव
-Comment[nl]=Component voor overzicht van speciale data
-Comment[nn]=Komponent for samandrag for spesielle datoar
-Comment[pl]=Składnik podsumowania dat specjalnych
-Comment[pt]=Componente de Sumário de Datas Especiais
-Comment[pt_BR]=Componente de Datas Especiais
-Comment[ru]=Компонент дайджеста особых дат
-Comment[sk]=Komponent súhrnu špeciálnych dátumov
-Comment[sl]=Komponenta za povzetke posebnih datumov
-Comment[sr]=Компонента сажетка посебних датума
-Comment[sr@Latn]=Komponenta sažetka posebnih datuma
-Comment[sv]=Komponent för översikt av speciella datum
-Comment[ta]=விசேஷ தேதிகள் சுருக்கப் பகுதி
-Comment[tr]=Özel Tarihler Özeti Bileşeni
-Comment[uk]=Компонент короткого підсумку особливих дат
-Comment[zh_CN]=特殊日期摘要组件
-Comment[zh_TW]=特殊日期摘要元件
Weight=310
Icon=cookie
[KOrganizer]
Name=Calendar
-Name[af]=Kalender
-Name[ar]=التقويم
-Name[be]=Каляндар
-Name[bg]=Календар
-Name[br]=Deiziadur
-Name[bs]=Kalendar
-Name[ca]=Calendari
-Name[cs]=Kalendář
-Name[cy]=Calendr
-Name[da]=Kalender
-Name[de]=Kalender
-Name[el]=Ημερολόγιο
-Name[eo]=Kalendaro
-Name[es]=Calendario
-Name[et]=Kalender
-Name[eu]=Egutegia
-Name[fa]=تقویم
-Name[fi]=Kalenteri
-Name[fr]=Calendrier
-Name[fy]=Aginda
-Name[ga]=Féilire
-Name[gl]=Calendario
-Name[he]=לוח שנה
-Name[hi]=कैलेन्डर
-Name[hu]=Naptár
-Name[is]=Dagatal
-Name[it]=Calendario
-Name[ja]=カレンダー
-Name[kk]=Күнтізбе
-Name[km]=ប្រតិទិន
-Name[lt]=Kalendorius
-Name[mk]=Календар
-Name[ms]=Kalendar
-Name[nb]=Kalender
-Name[nds]=Kalenner
-Name[ne]=क्यालेन्डर
-Name[nl]=Agenda
-Name[nn]=Kalender
-Name[pa]=ਕੈਲੰਡਰ
-Name[pl]=Kalendarz
-Name[pt]=Calendário
-Name[pt_BR]=Calendário
-Name[ru]=Календарь
-Name[se]=Kaleandar
-Name[sk]=Kalendár
-Name[sl]=Koledar
-Name[sr]=Календар
-Name[sr@Latn]=Kalendar
-Name[sv]=Kalender
-Name[ta]=நாள்காட்டி
-Name[tg]=Тақвим
-Name[th]=บันทึกประจำวัน
-Name[tr]=Takvim
-Name[uk]=Календар
-Name[uz]=Календар
-Name[zh_CN]=日历
-Name[zh_TW]=行事曆
Comment=Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a <i>Summary View Item</i> and represents a <i>Kontact Component</i>.
-Comment[bg]=Настройване на приставката за <b>KOrganizer</b> в Kontact, включително <i>обобщението</i> и <i>компонента</i>.
-Comment[ca]=Configuració de l'endollable de calendari <b>KOrganizer</b> del Kontact, inclou un <i>element de vista de resum</i> i representa un <i>component del Kontact</i>.
-Comment[da]=Konfiguration af Kontacts kalender-plugin <b>KOrganizer</b>, inkluderer et <i>Opsummeringsvisningselement</i> og repræsenterer en <i>Kontact-komponent</i>.
-Comment[de]=Einrichtung des Kalender-Moduls <b>KOrganizer</b> für Kontact, einschließlich der <i>Zusammenfassungsansicht</i>; repräsentiert eine <i>Kontact-Komponente</i>
-Comment[el]=Η ρύθμιση του προσθέτου ημερολογίου του <b>KOrganizer</b> του Kontact, περιέχει ένα <i>Αντικείμενο προβολής σύνοψης</i> και αντιπροσωπεύει ένα <i>Συστατικό του Kontact</i>.
-Comment[et]=Kontacti kalendriplugina <b>KOrganizeri</b> seadistamine, mis sisaldab <i>kokkuvõttevaate elementi</i>.
-Comment[it]=Configurazione del plugin calendario <b>KOrganizer</b> di Kontact, include una <i>vista sommario</i> e rappresenta un <i>componente Kontact</i>.
-Comment[nds]=Kontact sien Kalenner-Moduul <b>KOrganizer</b> instellen. Stellt en <i>Översicht-Indrag</i> praat un is en <i>Kontact-Komponent</i>.
-Comment[nl]=Instellingen voor Kontacts agendaplugin <b>KOrganizer</b>. Bevat een <i>Overzichtsweergaveplugin</i> en een <i>Kontact-component</i>.
-Comment[pl]=Konfiguracja wtyczki kalendarza Kontaktu <b>KOrganizer</b>, zawiera <i>element Podsumowanie</i> i jest <i>Składnikiem Kontaktu</i>.
-Comment[sr]=Подешавање Kontact-овог прикључка за календар преко <b>KOrganizer-а</b>, укључујући <i>приказ сажетка</i>, и дат као <i>компонента Kontact-а</i>.
-Comment[sr@Latn]=Podešavanje Kontact-ovog priključka za kalendar preko <b>KOrganizer-a</b>, uključujući <i>prikaz sažetka</i>, i dat kao <i>komponenta Kontact-a</i>.
-Comment[sv]=Inställning av Kontacts kalenderinsticksprogram <b>Korganizer</b>, omfattar ett objekt för <i>översiktsvyn</i> och representerar en <i>Kontactkomponent</i>.
-Comment[zh_CN]=Kontact 日历插件配置,<b>KOrganizer</b> 包含一个<i>摘要视图项目</i>,以 <i>Kontact 组件</i>形式呈现。
-Comment[zh_TW]=設定 Kontact 的行事曆組件。
Weight=400
Icon=kontact_date
[KNode]
Name=News
-Name[af]=Nuus
-Name[ar]=الأخبار
-Name[be]=Навіны
-Name[bg]=Новини
-Name[br]=Keleier
-Name[bs]=Usenet
-Name[ca]=Notícies
-Name[cs]=Novinky
-Name[cy]=Newyddion
-Name[da]=Nyheder
-Name[de]=Usenet
-Name[el]=Νέα
-Name[eo]=Novaĵoj
-Name[es]=Noticias
-Name[et]=Uudisegrupid
-Name[eu]=Berriak
-Name[fa]=اخبار
-Name[fi]=Uutiset
-Name[fr]=Nouvelles
-Name[fy]=Nijs
-Name[ga]=Nuacht
-Name[gl]=Novas
-Name[he]=חדשות
-Name[hi]=समाचार
-Name[hu]=Hírek
-Name[is]=Fréttir
-Name[ja]=ニュース
-Name[kk]=Жаңалықтар
-Name[km]=ព័ត៌មាន
-Name[lt]=Naujienos
-Name[mk]=Вести
-Name[ms]=Berita
-Name[nb]=Njus
-Name[nds]=Narichten
-Name[ne]=समाचार
-Name[nl]=Nieuws
-Name[nn]=Nyheiter
-Name[pa]=ਖ਼ਬਰਾਂ
-Name[pl]=Listy dyskusyjne
-Name[pt]=Notícias
-Name[pt_BR]=Notícias
-Name[ro]=Ştiri
-Name[ru]=Новости
-Name[se]=Ođđasat
-Name[sk]=Diskusné skupiny
-Name[sl]=Novice
-Name[sr]=Вести
-Name[sr@Latn]=Vesti
-Name[sv]=Nyheter
-Name[ta]=செய்திகள்
-Name[tg]=Ахборот
-Name[th]=ข่าว
-Name[tr]=Haberler
-Name[uk]=Новини
-Name[uz]=Янгиликлар
-Name[zh_CN]=新闻
-Name[zh_TW]=新聞
Comment=Configuration of Kontact's News Plugin <b>KNode</b> which represents a <i>Kontact Component</i>.
-Comment[bg]=Настройване на приставката за <b>KNode</b> в Kontact, включително компонента.
-Comment[ca]=Configuració de l'endollable de notícies <b>KNode</b> del Kontact, que representa un <i>component del Kontact</i>.
-Comment[da]=Konfiguration af Kontacts nyheds-plugin <b>KNode</b> som repræsenterer en <i>Kontact-komponent</i>.
-Comment[de]=Einrichtung des News-Moduls <b>KNode</b> für Kontact; repräsentiert eine <i>Kontact-Komponente</i>
-Comment[el]=Ρύθμιση του πρόσθετου νέων <b>KNode</b> του Kontact που αντιπροσωπεύει ένα <i>Συστατικό του Kontact</i>.
-Comment[et]=Kontacti uudisteplugina <b>KNode</b> seadistamine.
-Comment[it]=Configurazione del plugin notizie <b>KNode</b> di Kontact, che rappresenta un <i>componente Kontact</i>.
-Comment[nds]=Kontact sien Narichten-Moduul <b>KNode</b> instellen, dat en <i>Kontact-Komponent</i> is.
-Comment[nl]=Instellingen voor Kontacts nieuwsplugin <b>KNode</b>. Bevat een <i>Kontact-component</i>.
-Comment[pl]=Konfiguracja wtyczki niusów Kontaktu <b>KNode</b>, która jest <i>Składnikiem Kontaktu</i>.
-Comment[sr]=Подешавање Kontact-овог прикључка за вести преко <b>KNode-а</b> у облику <i>компненте Kontact-а</i>.
-Comment[sr@Latn]=Podešavanje Kontact-ovog priključka za vesti preko <b>KNode-a</b> u obliku <i>kompnente Kontact-a</i>.
-Comment[sv]=Inställning av Kontacts nyhetsinsticksprogram <b>Knode</b>, som representerar en <i>Kontactkomponent</i>.
-Comment[zh_CN]=Kontact 新闻组插件配置,<b>KNode</b> 以一个 <i>Kontact 组件</i>形式呈现。
-Comment[zh_TW]=設定 Kontact 的新聞組件。
Weight=500
Icon=kontact_news
[KWeather]
Name=Weather
-Name[af]=Weer
-Name[ar]=الطقس
-Name[be]=Надвор'е
-Name[bg]=Време
-Name[br]=Amzer
-Name[bs]=Vrijeme
-Name[ca]=Temps
-Name[cs]=Počasí
-Name[cy]=Tywydd
-Name[da]=Vejr
-Name[de]=Wetter
-Name[el]=Καιρός
-Name[eo]=Vetero
-Name[es]=Meteorología
-Name[et]=Ilm
-Name[eu]=Eguraldia
-Name[fa]=آب و هوا
-Name[fi]=Sää
-Name[fr]=Météo
-Name[fy]=It waar
-Name[ga]=Aimsir
-Name[gl]=O Tempo
-Name[he]=מזג אוויר
-Name[hi]=वेदर
-Name[hu]=Időjárás
-Name[is]=Veður
-Name[it]=Tempo meteorologico
-Name[ja]=気象情報
-Name[kk]=Ауа райы
-Name[km]=អាកាសធាតុ
-Name[lt]=Orų pranešėjas
-Name[mk]=Време
-Name[ms]=Cuaca
-Name[nb]=Været
-Name[nds]=Weder
-Name[ne]=मौसम
-Name[nl]=Het weer
-Name[nn]=Vêrmelding
-Name[pl]=Pogoda
-Name[pt]=Meteorologia
-Name[pt_BR]=Tempo
-Name[ro]=Vreme
-Name[ru]=Погода
-Name[se]=Dáldedieđáhus
-Name[sk]=Počasie
-Name[sl]=Vreme
-Name[sr]=Време
-Name[sr@Latn]=Vreme
-Name[sv]=Väder
-Name[ta]=வானிலை
-Name[tg]=Пешгӯии ҳаво
-Name[th]=รายงานอากาศ
-Name[tr]=Hava Durumu
-Name[uk]=Погода
-Name[uz]=Об-ҳаво
-Name[zh_CN]=天气
-Name[zh_TW]=天氣
Comment=Weather Information Component
-Comment[bg]=Информация за времето
-Comment[ca]=Component d'informació del temps
-Comment[da]=Komponent til vejrinformation
-Comment[de]=Komponente für Wetterinformationen
-Comment[el]=Συστατικό πληροφοριών καιρού
-Comment[et]=Ilmateate komponent
-Comment[it]=Informazioni meteorologiche
-Comment[ja]=気象情報コンポーネント
-Comment[nds]=Wederinformatschonen-Komponent
-Comment[nl]=Weerinformatiecomponent
-Comment[pl]=Składnik informacji o pogodzie
-Comment[sr]=Компонента информација о времену
-Comment[sr@Latn]=Komponenta informacija o vremenu
-Comment[sv]=Komponent med väderrapport
-Comment[zh_CN]=天气信息组件
-Comment[zh_TW]=天氣資訊組件
Weight=1000
Icon=kweather
[NewsTicker]
Name=News Ticker
-Name[af]=Nuus tikker
-Name[az]=Xəbər Gözləyici
-Name[br]=Kliker keleier
-Name[ca]=Teletip de notícies
-Name[cy]=Ticer Newyddion
-Name[da]=Nyhedstelegraf
-Name[de]=Newsticker
-Name[el]=Προβολέας ειδήσεων
-Name[eo]=Novaĵprezentilo
-Name[es]=Teletipo de noticias
-Name[et]=Uudistejälgija
-Name[eu]=Berri markatzailea
-Name[fa]=Ticker اخبار
-Name[fi]=Uutisnäytin
-Name[fr]=Téléscripteur de nouvelles
-Name[fy]=Nijs Tikker
-Name[gl]=Colector de Novas
-Name[he]=חדשות רצות
-Name[hi]=न्यूज टिकर
-Name[hr]=Ticker sa novostima
-Name[hu]=RSS hírmegjelenítő
-Name[id]=Ticker Berita
-Name[is]=Fréttastrimill
-Name[it]=Ticker notizie
-Name[ja]=ニュースティッカー
-Name[kk]=Жаңалық таспасы
-Name[km]=កម្មវិធី​ទទួល​ព័ត៌មាន
-Name[lt]=News pranešėjas
-Name[lv]=Ziņu Tikkers
-Name[ms]=Pengetik Berita
-Name[nb]=Nyhetstelegraf
-Name[nds]=Narichten-Ticker
-Name[ne]=न्यूज टिकर
-Name[nn]=Nyheitstelegraf
-Name[pl]=Wiadomości
-Name[pt]=Extractor de Notícias
-Name[pt_BR]=Animação de Notícias
-Name[ro]=Ştiri Internet
-Name[ru]=Новости
-Name[sk]=Sledovanie správ
-Name[sl]=Prikazovalnik novic
-Name[sr]=Откуцавач вести
-Name[sr@Latn]=Otkucavač vesti
-Name[sv]=Nyhetsövervakare
-Name[ta]=செய்திகள் குறிப்பான்
-Name[tg]=Ахборот
-Name[th]=ตั๋วข่าว
-Name[tr]=Haber İzleyici
-Name[uk]=Стрічка новин
-Name[ven]=Musengulusi wa Mafhungo
-Name[vi]=Trình kiểm tra news
-Name[xh]=Umchola-choli weendaba
-Name[zh_CN]=新闻点点通
-Name[zh_TW]=新聞顯示器
-Name[zu]=Umlungiseleli Wezindaba
Comment=News Ticker Component
-Comment[af]=Nuus tikker komponent
-Comment[bg]=Компонент за новини
-Comment[ca]=Component de teletip de notícies
-Comment[cs]=Komponenta zdrojů novinek
-Comment[da]=Nyhedstelegraf-komponent
-Comment[de]=Newsticker-Komponente
-Comment[el]=Συστατικό προβολέα ειδήσεων
-Comment[eo]=Novaĵprezentila Komponanto
-Comment[es]=Componente de teletipo de noticias
-Comment[et]=Uudistejälgija komponent
-Comment[eu]=Berri markatzaile osagaia
-Comment[fa]=مؤلفۀ Ticker اخبار
-Comment[fi]=Uutiskomponentti
-Comment[fr]=Composant d'affichage de nouvelles
-Comment[fy]=Nijstikkerkomponint
-Comment[gl]=Compoñente de Fonte de Novas
-Comment[hu]=Hírmegjelenítő komponens
-Comment[is]=Fréttastrimilshluti
-Comment[it]=Ticker notizie
-Comment[ja]=ニュースティッカーコンポーネント
-Comment[kk]=Жаңалық таспасының компоненті
-Comment[km]=សមាសភាគ​កម្មវិធី​ទទួល​ព័ត៌មាន
-Comment[lt]=Naujienų pranešėjo komponentas
-Comment[ms]=Komponen Pengetik Berita
-Comment[nb]=Komponent for Nyhetstelegraf
-Comment[nds]=Narichtentelegraaf-Komponent
-Comment[ne]=समाचार टिकर अवयव
-Comment[nl]=Newstickercomponent
-Comment[nn]=Nyhendetelegrafkomponent
-Comment[pl]=Składnik paska wiadomości
-Comment[pt]=Componente de Fontes de Notícias
-Comment[pt_BR]=Componente Mostrador de Notícias
-Comment[ru]=Компонент ленты новостей
-Comment[sk]=Komponent zdrojov správ
-Comment[sl]=Komponenta prikazovalnika novic
-Comment[sr]=Компонента откуцавача вести
-Comment[sr@Latn]=Komponenta otkucavača vesti
-Comment[sv]=Nyhetskomponent
-Comment[ta]=செய்தி எடுக்கும் பகுதி
-Comment[tr]=Haber İzleyici Bileşeni
-Comment[uk]=Компонент смужки новин
-Comment[zh_CN]=新闻点点通组件
-Comment[zh_TW]=新聞顯示元件
Weight=1100
Icon=knode
diff --git a/kontact/src/kontactconfig.desktop b/kontact/src/kontactconfig.desktop
index e5ae1c1e..ee99ef81 100644
--- a/kontact/src/kontactconfig.desktop
+++ b/kontact/src/kontactconfig.desktop
@@ -13,41 +13,7 @@ X-TDE-ParentComponents=kontact
X-TDE-Weight=0
Name=Kontact
-Name[be]=Кантакт
-Name[hi]=कॉन्टेक्ट
-Name[mk]=Контакт
-Name[ne]=सम्पर्क गर्नुहोस्
-Name[sv]=Kontakt
-Name[ta]=தொடர்பு கொள்
-Name[zh_TW]=Kontact 個人資訊管理
+
Comment=TDE Kontact
-Comment[bg]=Управление на личната информация
-Comment[ca]=Kontact de TDE
-Comment[cy]=Kontact TDE
-Comment[de]=Kontact
-Comment[fi]=Kontact
-Comment[hi]=केडीई कॉन्टेक्ट
-Comment[mk]=TDE Контакт
-Comment[ms]=Kontact TDE
-Comment[nds]=TDE-Kontact
-Comment[ne]=केडीई सम्पर्क
-Comment[pl]=Kontact dla TDE
-Comment[pt]=Kontact do TDE
-Comment[pt_BR]=Kontact do TDE
-Comment[ro]=Contact TDE
-Comment[ta]=கேடிஇ தொடர்புகொள்
+
Keywords=kontact;
-Keywords[be]=кантакт;kontact;
-Keywords[bg]=контакти; връзка; информация; личен; поща; бизнес; планиране; kontact;
-Keywords[de]=Kontact;
-Keywords[hi]=कॉन्टेक्ट;
-Keywords[hu]=kapcsolat;
-Keywords[mk]=kontact;контакт;
-Keywords[nb]=kontact; kontakt;
-Keywords[nds]=Kontact;
-Keywords[ne]=सम्पर्क;
-Keywords[sr]=kontact; контакт;
-Keywords[sr@Latn]=kontact; kontakt;
-Keywords[sv]=kontakt;
-Keywords[ta]=தொடர்புகொள்;
-Keywords[tr]=bağlantı;
diff --git a/kontact/src/kontactdcop.desktop b/kontact/src/kontactdcop.desktop
index 63a9cee7..ac0176f2 100644
--- a/kontact/src/kontactdcop.desktop
+++ b/kontact/src/kontactdcop.desktop
@@ -1,12 +1,6 @@
[Desktop Entry]
Name=Kontact
-Name[be]=Кантакт
-Name[hi]=कॉन्टेक्ट
-Name[mk]=Контакт
-Name[ne]=सम्पर्क गर्नुहोस्
-Name[sv]=Kontakt
-Name[ta]=தொடர்பு கொள்
-Name[zh_TW]=Kontact 個人資訊管理
+
Exec=kontact --iconify
Type=Application
Icon=kontact
diff --git a/kontact/src/mainwindow.cpp b/kontact/src/mainwindow.cpp
index 1fd7ab88..a354fa41 100644
--- a/kontact/src/mainwindow.cpp
+++ b/kontact/src/mainwindow.cpp
@@ -96,7 +96,7 @@ class SettingsDialogWrapper : public KSettings::Dialog
void fixButtonLabel( TQWidget *widget )
{
TQObject *object = widget->child( "KJanusWidget::buttonBelowList" );
- TQPushButton *button = static_cast<TQPushButton*>( TQT_TQWIDGET(object) );
+ TQPushButton *button = static_cast<TQPushButton*>( object );
if ( button )
button->setText( i18n( "Select Components ..." ) );
}
@@ -120,8 +120,8 @@ void MainWindow::initGUI()
setupActions();
setHelpMenuEnabled( false );
KHelpMenu *helpMenu = new KHelpMenu( this, 0, true, actionCollection() );
- connect( helpMenu, TQT_SIGNAL( showAboutApplication() ),
- TQT_SLOT( showAboutDialog() ) );
+ connect( helpMenu, TQ_SIGNAL( showAboutApplication() ),
+ TQ_SLOT( showAboutDialog() ) );
TDETrader::OfferList offers = TDETrader::self()->query(
TQString::fromLatin1( "Kontact/Plugin" ),
@@ -133,7 +133,7 @@ void MainWindow::initGUI()
(*it)->load();
TDEAction *action = new TDEAction( (*it)->name(), (*it)->icon(), TDEShortcut(),
- TQT_TQOBJECT(this), TQT_SLOT(slotActionTriggered()),
+ this, TQ_SLOT(slotActionTriggered()),
actionCollection(), (*it)->pluginName().latin1() );
action->setName( (*it)->pluginName().latin1() );
action->setWhatsThis( i18n( "Switch to plugin %1" ).arg( (*it)->name() ) );
@@ -144,8 +144,8 @@ void MainWindow::initGUI()
}
}
- KStdAction::keyBindings( TQT_TQOBJECT(this), TQT_SLOT( configureShortcuts() ), actionCollection() );
- KStdAction::configureToolbars( TQT_TQOBJECT(this), TQT_SLOT( configureToolbars() ), actionCollection() );
+ KStdAction::keyBindings( this, TQ_SLOT( configureShortcuts() ), actionCollection() );
+ KStdAction::configureToolbars( this, TQ_SLOT( configureToolbars() ), actionCollection() );
setXMLFile( "kontactui.rc" );
setStandardToolBarMenuEnabled( true );
@@ -157,10 +157,10 @@ void MainWindow::initGUI()
resize( 700, 520 ); // initial size to prevent a scrollbar in sidepane
setAutoSaveSettings();
- connect( Kontact::ProfileManager::self(), TQT_SIGNAL( profileLoaded( const TQString& ) ),
- this, TQT_SLOT( slotLoadProfile( const TQString& ) ) );
- connect( Kontact::ProfileManager::self(), TQT_SIGNAL( saveToProfileRequested( const TQString& ) ),
- this, TQT_SLOT( slotSaveToProfile( const TQString& ) ) );
+ connect( Kontact::ProfileManager::self(), TQ_SIGNAL( profileLoaded( const TQString& ) ),
+ this, TQ_SLOT( slotLoadProfile( const TQString& ) ) );
+ connect( Kontact::ProfileManager::self(), TQ_SIGNAL( saveToProfileRequested( const TQString& ) ),
+ this, TQ_SLOT( slotSaveToProfile( const TQString& ) ) );
}
@@ -168,15 +168,15 @@ void MainWindow::initObject()
{
// prepare the part manager
mPartManager = new KParts::PartManager( this );
- connect( mPartManager, TQT_SIGNAL( activePartChanged( KParts::Part* ) ),
- this, TQT_SLOT( slotActivePartChanged( KParts::Part* ) ) );
+ connect( mPartManager, TQ_SIGNAL( activePartChanged( KParts::Part* ) ),
+ this, TQ_SLOT( slotActivePartChanged( KParts::Part* ) ) );
if ( mSidePane ) {
mSidePane->updatePlugins();
}
- KSettings::Dispatcher::self()->registerInstance( instance(), TQT_TQOBJECT(this),
- TQT_SLOT( updateConfig() ) );
+ KSettings::Dispatcher::self()->registerInstance( instance(), this,
+ TQ_SLOT( updateConfig() ) );
loadSettings();
@@ -187,8 +187,8 @@ void MainWindow::initObject()
// done initializing
slotShowStatusMsg( TQString() );
- connect( KPIM::BroadcastStatus::instance(), TQT_SIGNAL( statusMsg( const TQString& ) ),
- this, TQT_SLOT( slotShowStatusMsg( const TQString& ) ) );
+ connect( KPIM::BroadcastStatus::instance(), TQ_SIGNAL( statusMsg( const TQString& ) ),
+ this, TQ_SLOT( slotShowStatusMsg( const TQString& ) ) );
// launch commandline specified module if any
activatePluginModule();
@@ -251,8 +251,8 @@ void MainWindow::initWidgets()
sizes << 0;
mSplitter->setSizes(sizes);
- connect( mSidePane, TQT_SIGNAL( pluginSelected( Kontact::Plugin * ) ),
- TQT_SLOT( selectPlugin( Kontact::Plugin * ) ) );
+ connect( mSidePane, TQ_SIGNAL( pluginSelected( Kontact::Plugin * ) ),
+ TQ_SLOT( selectPlugin( Kontact::Plugin * ) ) );
TQVBox *vBox;
if ( mSplitter ) {
@@ -313,7 +313,7 @@ void MainWindow::initAboutScreen()
mPartsStack->addWidget( introbox );
mPartsStack->raiseWidget( introbox );
mIntroPart = new TDEHTMLPart( introbox );
- mIntroPart->widget()->setFocusPolicy( TQ_WheelFocus );
+ mIntroPart->widget()->setFocusPolicy( TQWidget::WheelFocus );
// Let's better be paranoid and disable plugins (it defaults to enabled):
mIntroPart->setPluginsEnabled( false );
mIntroPart->setJScriptEnabled( false ); // just make this explicit
@@ -323,19 +323,19 @@ void MainWindow::initAboutScreen()
mIntroPart->view()->setLineWidth( 0 );
connect( mIntroPart->browserExtension(),
- TQT_SIGNAL( openURLRequest( const KURL&, const KParts::URLArgs& ) ),
- TQT_SLOT( slotOpenUrl( const KURL& ) ) );
+ TQ_SIGNAL( openURLRequest( const KURL&, const KParts::URLArgs& ) ),
+ TQ_SLOT( slotOpenUrl( const KURL& ) ) );
connect( mIntroPart->browserExtension(),
- TQT_SIGNAL( createNewWindow( const KURL&, const KParts::URLArgs& ) ),
- TQT_SLOT( slotOpenUrl( const KURL& ) ) );
+ TQ_SIGNAL( createNewWindow( const KURL&, const KParts::URLArgs& ) ),
+ TQ_SLOT( slotOpenUrl( const KURL& ) ) );
}
void MainWindow::setupActions()
{
- KStdAction::quit( TQT_TQOBJECT(this), TQT_SLOT( slotQuit() ), actionCollection() );
+ KStdAction::quit( this, TQ_SLOT( slotQuit() ), actionCollection() );
mNewActions = new TDEToolBarPopupAction( KGuiItem( i18n( "New" ), "" ),
- TDEStdAccel::shortcut(TDEStdAccel::New), TQT_TQOBJECT(this), TQT_SLOT( slotNewClicked() ),
+ TDEStdAccel::shortcut(TDEStdAccel::New), this, TQ_SLOT( slotNewClicked() ),
actionCollection(), "action_new" );
TDEConfig* const cfg = Prefs::self()->config();
@@ -343,19 +343,19 @@ void MainWindow::setupActions()
mSyncActionsEnabled = cfg->readBoolEntry( "GroupwareMailFoldersEnabled", true );
if ( mSyncActionsEnabled ) {
- mSyncActions = new TDEToolBarPopupAction( KGuiItem( i18n( "Synchronize" ), "kitchensync" ),
- TDEStdAccel::shortcut(TDEStdAccel::Reload), TQT_TQOBJECT(this), TQT_SLOT( slotSyncClicked() ),
+ mSyncActions = new TDEToolBarPopupAction( KGuiItem( i18n( "Synchronize" ) ),
+ TDEStdAccel::shortcut(TDEStdAccel::Reload), this, TQ_SLOT( slotSyncClicked() ),
actionCollection(), "action_sync" );
}
- new TDEAction( i18n( "Configure Kontact..." ), "configure", 0, TQT_TQOBJECT(this), TQT_SLOT( slotPreferences() ),
+ new TDEAction( i18n( "Configure Kontact..." ), "configure", 0, this, TQ_SLOT( slotPreferences() ),
actionCollection(), "settings_configure_kontact" );
- new TDEAction( i18n( "Configure &Profiles..." ), 0, TQT_TQOBJECT(this), TQT_SLOT( slotConfigureProfiles() ),
+ new TDEAction( i18n( "Configure &Profiles..." ), 0, this, TQ_SLOT( slotConfigureProfiles() ),
actionCollection(), "settings_configure_kontact_profiles" );
- new TDEAction( i18n( "&Kontact Introduction" ), 0, TQT_TQOBJECT(this), TQT_SLOT( slotShowIntroduction() ),
+ new TDEAction( i18n( "&Kontact Introduction" ), 0, this, TQ_SLOT( slotShowIntroduction() ),
actionCollection(), "help_introduction" );
- new TDEAction( i18n( "&Tip of the Day" ), 0, TQT_TQOBJECT(this), TQT_SLOT( slotShowTip() ),
+ new TDEAction( i18n( "&Tip of the Day" ), 0, this, TQ_SLOT( slotShowTip() ),
actionCollection(), "help_tipofday" );
KWidgetAction* spacerAction = new KWidgetAction( new TQWidget( this ), "SpacerAction", "", 0, 0, actionCollection(), "navigator_spacer_item" );
@@ -543,7 +543,7 @@ void MainWindow::loadPlugins()
kdDebug(5600) << "Loading Plugin: " << (*it)->name() << endl;
Kontact::Plugin *plugin =
KParts::ComponentFactory::createInstanceFromService<Kontact::Plugin>(
- (*it)->service(), TQT_TQOBJECT(this) );
+ (*it)->service(), this );
if ( !plugin )
continue;
@@ -763,7 +763,7 @@ void MainWindow::slotSyncClicked()
TDEToolBar* Kontact::MainWindow::findToolBar(const char* name)
{
// like TDEMainWindow::toolBar, but which doesn't create the toolbar if not found
- return static_cast<TDEToolBar *>(TQT_TQWIDGET(child(name, "TDEToolBar")));
+ return static_cast<TDEToolBar *>(child(name, "TDEToolBar"));
}
void MainWindow::slotActionTriggered()
@@ -977,8 +977,8 @@ void MainWindow::slotPreferences()
}
dlg = new SettingsDialogWrapper( KSettings::Dialog::Configurable, this );
dlg->addPluginInfos( filteredPlugins );
- connect( dlg, TQT_SIGNAL( pluginSelectionChanged() ),
- TQT_SLOT( pluginsChanged() ) );
+ connect( dlg, TQ_SIGNAL( pluginSelectionChanged() ),
+ TQ_SLOT( pluginsChanged() ) );
}
dlg->show();
@@ -1053,8 +1053,8 @@ void MainWindow::configureToolbars()
saveMainWindowSettings( TDEGlobal::config(), "MainWindow" );
KEditToolbar edit( factory() );
- connect( &edit, TQT_SIGNAL( newToolbarConfig() ),
- this, TQT_SLOT( slotNewToolbarConfig() ) );
+ connect( &edit, TQ_SIGNAL( newToolbarConfig() ),
+ this, TQ_SLOT( slotNewToolbarConfig() ) );
edit.exec();
}
diff --git a/kontact/src/mainwindow.h b/kontact/src/mainwindow.h
index 57df05c0..da7e23ca 100644
--- a/kontact/src/mainwindow.h
+++ b/kontact/src/mainwindow.h
@@ -66,7 +66,7 @@ typedef TQPtrList<TDEAction> ActionPluginList;
class MainWindow : public Kontact::Core, public KDCOPServiceStarter, public KontactIface
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -174,4 +174,3 @@ class MainWindow : public Kontact::Core, public KDCOPServiceStarter, public Kont
}
#endif
-// vim: sw=2 sts=2 et
diff --git a/kontact/src/profiledialog.cpp b/kontact/src/profiledialog.cpp
index e85d90c5..0c9c2a49 100644
--- a/kontact/src/profiledialog.cpp
+++ b/kontact/src/profiledialog.cpp
@@ -53,10 +53,10 @@ Kontact::ProfileDialog::ProfileDialog( TQWidget* parent, WFlags flags ) : KDialo
m_list->setRenameable( NameColumn, true );
m_list->setRenameable( DescriptionColumn, true );
- connect( m_list, TQT_SIGNAL( selectionChanged() ),
- this, TQT_SLOT( listSelectionChanged() ) );
- connect( m_list, TQT_SIGNAL( itemRenamed( TQListViewItem*, const TQString&, int ) ),
- this, TQT_SLOT( listItemRenamed( TQListViewItem*, const TQString&, int ) ) );
+ connect( m_list, TQ_SIGNAL( selectionChanged() ),
+ this, TQ_SLOT( listSelectionChanged() ) );
+ connect( m_list, TQ_SIGNAL( itemRenamed( TQListViewItem*, const TQString&, int ) ),
+ this, TQ_SLOT( listItemRenamed( TQListViewItem*, const TQString&, int ) ) );
horizontalLayout->addWidget( m_list );
TQVBoxLayout* buttonLayout = new TQVBoxLayout( horizontalLayout );
@@ -64,49 +64,49 @@ Kontact::ProfileDialog::ProfileDialog( TQWidget* parent, WFlags flags ) : KDialo
m_newProfileButton = new TQPushButton( mainWidget );
m_newProfileButton->setText( i18n("New Profile") );
- connect( m_newProfileButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( addNewProfile() ) );
+ connect( m_newProfileButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( addNewProfile() ) );
buttonLayout->addWidget( m_newProfileButton );
m_deleteProfileButton = new TQPushButton( mainWidget );
m_deleteProfileButton->setText( i18n("Delete Profile") );
m_deleteProfileButton->setEnabled( false );
- connect( m_deleteProfileButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( deleteSelectedProfile() ) );
+ connect( m_deleteProfileButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( deleteSelectedProfile() ) );
buttonLayout->addWidget( m_deleteProfileButton );
m_saveProfileButton = new TQPushButton( mainWidget );
m_saveProfileButton->setText( i18n("Save Profile") );
m_saveProfileButton->setEnabled( false );
- connect( m_saveProfileButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( saveToSelectedProfile() ) );
+ connect( m_saveProfileButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( saveToSelectedProfile() ) );
buttonLayout->addWidget( m_saveProfileButton );
buttonLayout->addStretch();
m_importProfileButton = new TQPushButton( mainWidget );
m_importProfileButton->setText( i18n("Import Profile") );
- connect( m_importProfileButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( importProfile() ) );
+ connect( m_importProfileButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( importProfile() ) );
buttonLayout->addWidget( m_importProfileButton );
m_exportProfileButton = new TQPushButton( mainWidget );
m_exportProfileButton->setText( i18n("Export Profile") );
m_exportProfileButton->setEnabled( false );
- connect( m_exportProfileButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( exportSelectedProfile() ) );
+ connect( m_exportProfileButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( exportSelectedProfile() ) );
buttonLayout->addWidget( m_exportProfileButton );
setMainWidget( mainWidget );
- connect( Kontact::ProfileManager::self(), TQT_SIGNAL( profileAdded( const TQString& ) ),
- this, TQT_SLOT( profileAdded( const TQString& ) ) );
- connect( Kontact::ProfileManager::self(), TQT_SIGNAL( profileRemoved( const TQString& ) ),
- this, TQT_SLOT( profileRemoved( const TQString& ) ) );
- connect( Kontact::ProfileManager::self(), TQT_SIGNAL( profileLoaded( const TQString& ) ),
- this, TQT_SLOT( profileLoaded( const TQString& ) ) );
- connect( Kontact::ProfileManager::self(), TQT_SIGNAL( profileUpdated( const TQString& ) ),
- this, TQT_SLOT( profileUpdated( const TQString& ) ) );
+ connect( Kontact::ProfileManager::self(), TQ_SIGNAL( profileAdded( const TQString& ) ),
+ this, TQ_SLOT( profileAdded( const TQString& ) ) );
+ connect( Kontact::ProfileManager::self(), TQ_SIGNAL( profileRemoved( const TQString& ) ),
+ this, TQ_SLOT( profileRemoved( const TQString& ) ) );
+ connect( Kontact::ProfileManager::self(), TQ_SIGNAL( profileLoaded( const TQString& ) ),
+ this, TQ_SLOT( profileLoaded( const TQString& ) ) );
+ connect( Kontact::ProfileManager::self(), TQ_SIGNAL( profileUpdated( const TQString& ) ),
+ this, TQ_SLOT( profileUpdated( const TQString& ) ) );
const TQValueList<Kontact::Profile> profiles = Kontact::ProfileManager::self()->profiles();
for ( TQValueList<Kontact::Profile>::ConstIterator it = profiles.begin(), end = profiles.end(); it != end; ++it )
diff --git a/kontact/src/profiledialog.h b/kontact/src/profiledialog.h
index 73a44ae5..7661cb5b 100644
--- a/kontact/src/profiledialog.h
+++ b/kontact/src/profiledialog.h
@@ -39,7 +39,7 @@ namespace Kontact {
class ProfileDialog : public KDialogBase
{
-Q_OBJECT
+TQ_OBJECT
public:
diff --git a/kontact/src/profilemanager.h b/kontact/src/profilemanager.h
index b72511f5..bd05d49d 100644
--- a/kontact/src/profilemanager.h
+++ b/kontact/src/profilemanager.h
@@ -88,7 +88,7 @@ private:
class ProfileManager : public TQObject
{
-Q_OBJECT
+TQ_OBJECT
public:
enum ImportError {
diff --git a/kontact/src/sidepanebase.h b/kontact/src/sidepanebase.h
index c8e83442..5a92a0a1 100644
--- a/kontact/src/sidepanebase.h
+++ b/kontact/src/sidepanebase.h
@@ -33,7 +33,7 @@ class Plugin;
class SidePaneBase : public TQVBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
SidePaneBase( Core *core, TQWidget *parent, const char *name = 0 );
diff --git a/korganizer/CMakeL10n.txt b/korganizer/CMakeL10n.txt
index a4933b27..eaff8124 100644
--- a/korganizer/CMakeL10n.txt
+++ b/korganizer/CMakeL10n.txt
@@ -4,3 +4,9 @@ tde_l10n_create_template(
CATALOG "korganizer"
SOURCES "." "tips"
)
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/korganizer-desktops/"
+ SOURCES *.desktop *.protocol
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/korganizer/CMakeLists.txt b/korganizer/CMakeLists.txt
index a5e8aff1..00bc3577 100644
--- a/korganizer/CMakeLists.txt
+++ b/korganizer/CMakeLists.txt
@@ -53,21 +53,27 @@ link_directories(
tde_install_icons( )
-install( FILES
- korganizer.desktop
- DESTINATION ${XDG_APPS_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE korganizer.desktop
+ PO_DIR korganizer-desktops
+)
-install( FILES
- dcopcalendar.desktop
- DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE dcopcalendar.desktop
+ DESTINATION ${SERVICETYPES_INSTALL_DIR}
+ PO_DIR korganizer-desktops
+)
-install( FILES
+tde_create_translated_desktop(
+ SOURCE
korganizer_configmain.desktop korganizer_configtime.desktop
korganizer_configviews.desktop korganizer_configcolors.desktop
korganizer_configfonts.desktop korganizer_configplugins.desktop
korganizer_configgroupscheduling.desktop korganizer_configfreebusy.desktop
korganizer_configdesignerfields.desktop webcal.protocol
- DESTINATION ${SERVICES_INSTALL_DIR} )
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR korganizer-desktops
+)
install( FILES
uninstall.desktop
diff --git a/korganizer/aboutdata.h b/korganizer/aboutdata.h
index 0edf9811..9edf278a 100644
--- a/korganizer/aboutdata.h
+++ b/korganizer/aboutdata.h
@@ -25,7 +25,7 @@
#define KORG_ABOUTDATA_H
#include <tdeaboutdata.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KOrg {
diff --git a/korganizer/actionmanager.cpp b/korganizer/actionmanager.cpp
index f8a4e4ad..abde9092 100644
--- a/korganizer/actionmanager.cpp
+++ b/korganizer/actionmanager.cpp
@@ -127,7 +127,7 @@ void ActionManager::init()
mWindowList = new KOWindowList;
// Show tip of the day, when the first calendar is shown.
if ( !mIsPart )
- TQTimer::singleShot( 0, TQT_TQOBJECT(this), TQT_SLOT( showTipOnStart() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( showTipOnStart() ) );
}
// Note: We need this ActionManager to be fully constructed, and
// parent() to have a valid reference to it before the following
@@ -138,27 +138,27 @@ void ActionManager::init()
// set up autoSaving stuff
mAutoSaveTimer = new TQTimer( this );
- connect( mAutoSaveTimer,TQT_SIGNAL( timeout() ), TQT_SLOT( checkAutoSave() ) );
+ connect( mAutoSaveTimer,TQ_SIGNAL( timeout() ), TQ_SLOT( checkAutoSave() ) );
if ( KOPrefs::instance()->mAutoSave &&
KOPrefs::instance()->mAutoSaveInterval > 0 ) {
mAutoSaveTimer->start( 1000 * 60 * KOPrefs::instance()->mAutoSaveInterval );
}
mAutoArchiveTimer = new TQTimer( this );
- connect( mAutoArchiveTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotAutoArchive() ) );
+ connect( mAutoArchiveTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( slotAutoArchive() ) );
// First auto-archive should be in 5 minutes (like in kmail).
if ( KOPrefs::instance()->mAutoArchive )
mAutoArchiveTimer->start( 5 * 60 * 1000, true ); // singleshot
setTitle();
- connect( mCalendarView, TQT_SIGNAL( modifiedChanged( bool ) ), TQT_SLOT( setTitle() ) );
- connect( mCalendarView, TQT_SIGNAL( configChanged() ), TQT_SLOT( updateConfig() ) );
+ connect( mCalendarView, TQ_SIGNAL( modifiedChanged( bool ) ), TQ_SLOT( setTitle() ) );
+ connect( mCalendarView, TQ_SIGNAL( configChanged() ), TQ_SLOT( updateConfig() ) );
- connect( mCalendarView, TQT_SIGNAL( incidenceSelected( Incidence *,const TQDate & ) ),
- TQT_TQOBJECT(this), TQT_SLOT( processIncidenceSelection( Incidence *,const TQDate & ) ) );
- connect( mCalendarView, TQT_SIGNAL( exportHTML( HTMLExportSettings * ) ),
- TQT_TQOBJECT(this), TQT_SLOT( exportHTML( HTMLExportSettings * ) ) );
+ connect( mCalendarView, TQ_SIGNAL( incidenceSelected( Incidence *,const TQDate & ) ),
+ this, TQ_SLOT( processIncidenceSelection( Incidence *,const TQDate & ) ) );
+ connect( mCalendarView, TQ_SIGNAL( exportHTML( HTMLExportSettings * ) ),
+ this, TQ_SLOT( exportHTML( HTMLExportSettings * ) ) );
processIncidenceSelection( 0, TQDate() );
@@ -198,13 +198,13 @@ void ActionManager::createCalendarResources()
mCalendarView->addExtension( &factory );
mResourceView = factory.resourceView();
- connect( mCalendarResources, TQT_SIGNAL( calendarChanged() ),
- mCalendarView, TQT_SLOT( resourcesChanged() ) );
- connect( mCalendarResources, TQT_SIGNAL( signalErrorMessage( const TQString & ) ),
- mCalendarView, TQT_SLOT( showErrorMessage( const TQString & ) ) );
+ connect( mCalendarResources, TQ_SIGNAL( calendarChanged() ),
+ mCalendarView, TQ_SLOT( resourcesChanged() ) );
+ connect( mCalendarResources, TQ_SIGNAL( signalErrorMessage( const TQString & ) ),
+ mCalendarView, TQ_SLOT( showErrorMessage( const TQString & ) ) );
- connect( mCalendarView, TQT_SIGNAL( configChanged() ),
- TQT_SLOT( updateConfig() ) );
+ connect( mCalendarView, TQ_SIGNAL( configChanged() ),
+ TQ_SLOT( updateConfig() ) );
initCalendar( mCalendarResources );
}
@@ -227,58 +227,58 @@ void ActionManager::initActions()
//~~~~~~~~~~~~~~~~~~~~~~~ LOADING / SAVING ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if ( mIsPart ) {
if ( mMainWindow->hasDocument() ) {
- KStdAction::openNew( TQT_TQOBJECT(this), TQT_SLOT(file_new()), mACollection, "korganizer_openNew" );
- KStdAction::open( TQT_TQOBJECT(this), TQT_SLOT( file_open() ), mACollection, "korganizer_open" );
- mRecent = KStdAction::openRecent( TQT_TQOBJECT(this), TQT_SLOT( file_open( const KURL& ) ),
+ KStdAction::openNew( this, TQ_SLOT(file_new()), mACollection, "korganizer_openNew" );
+ KStdAction::open( this, TQ_SLOT( file_open() ), mACollection, "korganizer_open" );
+ mRecent = KStdAction::openRecent( this, TQ_SLOT( file_open( const KURL& ) ),
mACollection, "korganizer_openRecent" );
- KStdAction::revert( this,TQT_SLOT( file_revert() ), mACollection, "korganizer_revert" );
- KStdAction::saveAs( TQT_TQOBJECT(this), TQT_SLOT( file_saveas() ), mACollection,
+ KStdAction::revert( this,TQ_SLOT( file_revert() ), mACollection, "korganizer_revert" );
+ KStdAction::saveAs( this, TQ_SLOT( file_saveas() ), mACollection,
"korganizer_saveAs" );
- KStdAction::save( TQT_TQOBJECT(this), TQT_SLOT( file_save() ), mACollection, "korganizer_save" );
+ KStdAction::save( this, TQ_SLOT( file_save() ), mACollection, "korganizer_save" );
}
- KStdAction::print( TQT_TQOBJECT(mCalendarView), TQT_SLOT( print() ), mACollection, "korganizer_print" );
+ KStdAction::print( mCalendarView, TQ_SLOT( print() ), mACollection, "korganizer_print" );
} else {
- KStdAction::openNew( TQT_TQOBJECT(this), TQT_SLOT( file_new() ), mACollection );
- KStdAction::open( TQT_TQOBJECT(this), TQT_SLOT( file_open() ), mACollection );
- mRecent = KStdAction::openRecent( TQT_TQOBJECT(this), TQT_SLOT( file_open( const KURL& ) ),
+ KStdAction::openNew( this, TQ_SLOT( file_new() ), mACollection );
+ KStdAction::open( this, TQ_SLOT( file_open() ), mACollection );
+ mRecent = KStdAction::openRecent( this, TQ_SLOT( file_open( const KURL& ) ),
mACollection );
if ( mMainWindow->hasDocument() ) {
- KStdAction::revert( this,TQT_SLOT( file_revert() ), mACollection );
- KStdAction::save( TQT_TQOBJECT(this), TQT_SLOT( file_save() ), mACollection );
- KStdAction::saveAs( TQT_TQOBJECT(this), TQT_SLOT( file_saveas() ), mACollection );
+ KStdAction::revert( this,TQ_SLOT( file_revert() ), mACollection );
+ KStdAction::save( this, TQ_SLOT( file_save() ), mACollection );
+ KStdAction::saveAs( this, TQ_SLOT( file_saveas() ), mACollection );
}
- KStdAction::print( TQT_TQOBJECT(mCalendarView), TQT_SLOT( print() ), mACollection );
+ KStdAction::print( mCalendarView, TQ_SLOT( print() ), mACollection );
}
//~~~~~~~~~~~~~~~~~~~~~~~~ IMPORT / EXPORT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- new TDEAction( i18n("Import &Event/Calendar (ICS-/VCS-File)..."), 0, TQT_TQOBJECT(this), TQT_SLOT( file_merge() ),
+ new TDEAction( i18n("Import &Event/Calendar (ICS-/VCS-File)..."), 0, this, TQ_SLOT( file_merge() ),
mACollection, "import_icalendar" );
- new TDEAction( i18n("&Import From UNIX Ical tool (.calendar-File)"), 0, TQT_TQOBJECT(this), TQT_SLOT( file_icalimport() ),
+ new TDEAction( i18n("&Import From UNIX Ical tool (.calendar-File)"), 0, this, TQ_SLOT( file_icalimport() ),
mACollection, "import_ical" );
new TDEAction( i18n("Get &Hot New Stuff..."), 0, this,
- TQT_SLOT( downloadNewStuff() ), mACollection,
+ TQ_SLOT( downloadNewStuff() ), mACollection,
"downloadnewstuff" );
new TDEAction( i18n("Export &Web Page..."), "webexport", 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT( exportWeb() ),
+ mCalendarView, TQ_SLOT( exportWeb() ),
mACollection, "export_web" );
new TDEAction( i18n("&iCalendar..."), 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT( exportICalendar() ),
+ mCalendarView, TQ_SLOT( exportICalendar() ),
mACollection, "export_icalendar" );
new TDEAction( i18n("&vCalendar..."), 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT( exportVCalendar() ),
+ mCalendarView, TQ_SLOT( exportVCalendar() ),
mACollection, "export_vcalendar" );
- new TDEAction( i18n("Upload &Hot New Stuff..."), 0, TQT_TQOBJECT(this),
- TQT_SLOT( uploadNewStuff() ), mACollection,
+ new TDEAction( i18n("Upload &Hot New Stuff..."), 0, this,
+ TQ_SLOT( uploadNewStuff() ), mACollection,
"uploadnewstuff" );
- new TDEAction( i18n("Archive O&ld Entries..."), 0, TQT_TQOBJECT(this), TQT_SLOT( file_archive() ),
+ new TDEAction( i18n("Archive O&ld Entries..."), 0, this, TQ_SLOT( file_archive() ),
mACollection, "file_archive" );
new TDEAction( i18n("delete completed to-dos", "Pur&ge Completed To-dos"), 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT( purgeCompleted() ), mACollection,
+ mCalendarView, TQ_SLOT( purgeCompleted() ), mACollection,
"purge_completed" );
@@ -289,45 +289,45 @@ void ActionManager::initActions()
KOrg::History *h = mCalendarView->history();
if ( mIsPart ) {
// edit menu
- mCutAction = KStdAction::cut( TQT_TQOBJECT(mCalendarView), TQT_SLOT( edit_cut() ),
+ mCutAction = KStdAction::cut( mCalendarView, TQ_SLOT( edit_cut() ),
mACollection, "korganizer_cut" );
- mCopyAction = KStdAction::copy( TQT_TQOBJECT(mCalendarView), TQT_SLOT( edit_copy() ),
+ mCopyAction = KStdAction::copy( mCalendarView, TQ_SLOT( edit_copy() ),
mACollection, "korganizer_copy" );
- pasteAction = KStdAction::paste( TQT_TQOBJECT(mCalendarView), TQT_SLOT( edit_paste() ),
+ pasteAction = KStdAction::paste( mCalendarView, TQ_SLOT( edit_paste() ),
mACollection, "korganizer_paste" );
- mUndoAction = KStdAction::undo( h, TQT_SLOT( undo() ),
+ mUndoAction = KStdAction::undo( h, TQ_SLOT( undo() ),
mACollection, "korganizer_undo" );
- mRedoAction = KStdAction::redo( h, TQT_SLOT( redo() ),
+ mRedoAction = KStdAction::redo( h, TQ_SLOT( redo() ),
mACollection, "korganizer_redo" );
} else {
- mCutAction = KStdAction::cut( TQT_TQOBJECT(mCalendarView),TQT_SLOT( edit_cut() ),
+ mCutAction = KStdAction::cut( mCalendarView,TQ_SLOT( edit_cut() ),
mACollection );
- mCopyAction = KStdAction::copy( TQT_TQOBJECT(mCalendarView),TQT_SLOT( edit_copy() ),
+ mCopyAction = KStdAction::copy( mCalendarView,TQ_SLOT( edit_copy() ),
mACollection );
- pasteAction = KStdAction::paste( TQT_TQOBJECT(mCalendarView),TQT_SLOT( edit_paste() ),
+ pasteAction = KStdAction::paste( mCalendarView,TQ_SLOT( edit_paste() ),
mACollection );
- mUndoAction = KStdAction::undo( TQT_TQOBJECT(h), TQT_SLOT( undo() ), mACollection );
- mRedoAction = KStdAction::redo( TQT_TQOBJECT(h), TQT_SLOT( redo() ), mACollection );
+ mUndoAction = KStdAction::undo( h, TQ_SLOT( undo() ), mACollection );
+ mRedoAction = KStdAction::redo( h, TQ_SLOT( redo() ), mACollection );
}
mDeleteAction = new TDEAction( i18n("&Delete"), "edit-delete", 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT( appointment_delete() ),
+ mCalendarView, TQ_SLOT( appointment_delete() ),
mACollection, "edit_delete" );
if ( mIsPart ) {
- KStdAction::find( mCalendarView->dialogManager(), TQT_SLOT( showSearchDialog() ),
+ KStdAction::find( mCalendarView->dialogManager(), TQ_SLOT( showSearchDialog() ),
mACollection, "korganizer_find" );
} else {
- KStdAction::find( mCalendarView->dialogManager(), TQT_SLOT( showSearchDialog() ),
+ KStdAction::find( mCalendarView->dialogManager(), TQ_SLOT( showSearchDialog() ),
mACollection );
}
pasteAction->setEnabled( false );
mUndoAction->setEnabled( false );
mRedoAction->setEnabled( false );
- connect( mCalendarView, TQT_SIGNAL( pasteEnabled( bool ) ),
- pasteAction, TQT_SLOT( setEnabled( bool ) ) );
- connect( h, TQT_SIGNAL( undoAvailable( const TQString & ) ),
- TQT_SLOT( updateUndoAction( const TQString & ) ) );
- connect( h, TQT_SIGNAL( redoAvailable( const TQString & ) ),
- TQT_SLOT( updateRedoAction( const TQString & ) ) );
+ connect( mCalendarView, TQ_SIGNAL( pasteEnabled( bool ) ),
+ pasteAction, TQ_SLOT( setEnabled( bool ) ) );
+ connect( h, TQ_SIGNAL( undoAvailable( const TQString & ) ),
+ TQ_SLOT( updateUndoAction( const TQString & ) ) );
+ connect( h, TQ_SIGNAL( redoAvailable( const TQString & ) ),
+ TQ_SLOT( updateRedoAction( const TQString & ) ) );
@@ -337,83 +337,83 @@ void ActionManager::initActions()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VIEWS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
new TDEAction( i18n("What's &Next"),
KOGlobals::self()->smallIcon( "whatsnext" ), 0,
- mCalendarView->viewManager(), TQT_SLOT( showWhatsNextView() ),
+ mCalendarView->viewManager(), TQ_SLOT( showWhatsNextView() ),
mACollection, "view_whatsnext" );
new TDEAction( i18n("&Day"),
KOGlobals::self()->smallIcon( "1day" ), 0,
- mCalendarView->viewManager(), TQT_SLOT( showDayView() ),
+ mCalendarView->viewManager(), TQ_SLOT( showDayView() ),
mACollection, "view_day" );
mNextXDays = new TDEAction( "",
KOGlobals::self()->smallIcon( "xdays" ), 0,
mCalendarView->viewManager(),
- TQT_SLOT( showNextXView() ),
+ TQ_SLOT( showNextXView() ),
mACollection, "view_nextx" );
mNextXDays->setText( i18n( "&Next Day", "Ne&xt %n Days",
KOPrefs::instance()->mNextXDays ) );
new TDEAction( i18n("W&ork Week"),
KOGlobals::self()->smallIcon( "5days" ), 0,
- mCalendarView->viewManager(), TQT_SLOT( showWorkWeekView() ),
+ mCalendarView->viewManager(), TQ_SLOT( showWorkWeekView() ),
mACollection, "view_workweek" );
new TDEAction( i18n("&Week"),
KOGlobals::self()->smallIcon( "7days" ), 0,
- mCalendarView->viewManager(), TQT_SLOT( showWeekView() ),
+ mCalendarView->viewManager(), TQ_SLOT( showWeekView() ),
mACollection, "view_week" );
new TDEAction( i18n("&Month"),
KOGlobals::self()->smallIcon( "month" ), 0,
- mCalendarView->viewManager(), TQT_SLOT( showMonthView() ),
+ mCalendarView->viewManager(), TQ_SLOT( showMonthView() ),
mACollection, "view_month" );
new TDEAction( i18n("&List"),
KOGlobals::self()->smallIcon( "list" ), 0,
- mCalendarView->viewManager(), TQT_SLOT( showListView() ),
+ mCalendarView->viewManager(), TQ_SLOT( showListView() ),
mACollection, "view_list" );
new TDEAction( i18n("&To-do List"),
KOGlobals::self()->smallIcon( "todo" ), 0,
- mCalendarView->viewManager(), TQT_SLOT( showTodoView() ),
+ mCalendarView->viewManager(), TQ_SLOT( showTodoView() ),
mACollection, "view_todo" );
new TDEAction( i18n("&Journal"),
KOGlobals::self()->smallIcon( "journal" ), 0,
- mCalendarView->viewManager(), TQT_SLOT( showJournalView() ),
+ mCalendarView->viewManager(), TQ_SLOT( showJournalView() ),
mACollection, "view_journal" );
new TDEAction( i18n("&Timeline View"),
KOGlobals::self()->smallIcon( "timeline" ), 0,
- mCalendarView->viewManager(), TQT_SLOT( showTimelineView() ),
+ mCalendarView->viewManager(), TQ_SLOT( showTimelineView() ),
mACollection, "view_timeline" );
//~~~~~~~~~~~~~~~~~~~~~~~~~~~ FILTERS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
new TDEAction( i18n("&Refresh"), 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT( updateView() ),
+ mCalendarView, TQ_SLOT( updateView() ),
mACollection, "update" );
// TODO:
// new TDEAction( i18n("Hide &Completed To-dos"), 0,
-// mCalendarView, TQT_SLOT( toggleHideCompleted() ),
+// mCalendarView, TQ_SLOT( toggleHideCompleted() ),
// mACollection, "hide_completed_todos" );
mFilterAction = new TDESelectAction( i18n("F&ilter"), 0,
mACollection, "filter_select" );
mFilterAction->setEditable( false );
- connect( mFilterAction, TQT_SIGNAL( activated(int) ),
- mCalendarView, TQT_SLOT( filterActivated( int ) ) );
- connect( mCalendarView, TQT_SIGNAL( newFilterListSignal( const TQStringList & ) ),
- mFilterAction, TQT_SLOT( setItems( const TQStringList & ) ) );
- connect( mCalendarView, TQT_SIGNAL( selectFilterSignal( int ) ),
- mFilterAction, TQT_SLOT( setCurrentItem( int ) ) );
- connect( mCalendarView, TQT_SIGNAL( filterChanged() ),
- TQT_TQOBJECT(this), TQT_SLOT( setTitle() ) );
+ connect( mFilterAction, TQ_SIGNAL( activated(int) ),
+ mCalendarView, TQ_SLOT( filterActivated( int ) ) );
+ connect( mCalendarView, TQ_SIGNAL( newFilterListSignal( const TQStringList & ) ),
+ mFilterAction, TQ_SLOT( setItems( const TQStringList & ) ) );
+ connect( mCalendarView, TQ_SIGNAL( selectFilterSignal( int ) ),
+ mFilterAction, TQ_SLOT( setCurrentItem( int ) ) );
+ connect( mCalendarView, TQ_SIGNAL( filterChanged() ),
+ this, TQ_SLOT( setTitle() ) );
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ZOOM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// TODO: try to find / create better icons for the following 4 actions
new TDEAction( i18n( "Zoom In Horizontally" ), "zoom-in", 0,
- mCalendarView->viewManager(), TQT_SLOT( zoomInHorizontally() ),
+ mCalendarView->viewManager(), TQ_SLOT( zoomInHorizontally() ),
mACollection, "zoom_in_horizontally" );
new TDEAction( i18n( "Zoom Out Horizontally" ), "zoom-out", 0,
- mCalendarView->viewManager(), TQT_SLOT( zoomOutHorizontally() ),
+ mCalendarView->viewManager(), TQ_SLOT( zoomOutHorizontally() ),
mACollection, "zoom_out_horizontally" );
new TDEAction( i18n( "Zoom In Vertically" ), "zoom-in", 0,
- mCalendarView->viewManager(), TQT_SLOT( zoomInVertically() ),
+ mCalendarView->viewManager(), TQ_SLOT( zoomInVertically() ),
mACollection, "zoom_in_vertically" );
new TDEAction( i18n( "Zoom Out Vertically" ), "zoom-out", 0,
- mCalendarView->viewManager(), TQT_SLOT( zoomOutVertically() ),
+ mCalendarView->viewManager(), TQ_SLOT( zoomOutVertically() ),
mACollection, "zoom_out_vertically" );
@@ -422,73 +422,73 @@ void ActionManager::initActions()
//************************** Actions MENU *********************************
new TDEAction( i18n("Go to &Today"), "today", 0,
- TQT_TQOBJECT(mCalendarView),TQT_SLOT( goToday() ),
+ mCalendarView,TQ_SLOT( goToday() ),
mACollection, "go_today" );
bool isRTL = TQApplication::reverseLayout();
action = new TDEAction( i18n("Go &Backward"), isRTL ? "forward" : "back", 0,
- TQT_TQOBJECT(mCalendarView),TQT_SLOT( goPrevious() ),
+ mCalendarView,TQ_SLOT( goPrevious() ),
mACollection, "go_previous" );
// Changing the action text by setText makes the toolbar button disappear.
// This has to be fixed first, before the connects below can be reenabled.
/*
- connect( mCalendarView, TQT_SIGNAL( changeNavStringPrev( const TQString & ) ),
- action, TQT_SLOT( setText( const TQString & ) ) );
- connect( mCalendarView, TQT_SIGNAL( changeNavStringPrev( const TQString & ) ),
- TQT_TQOBJECT(this), TQT_SLOT( dumpText( const TQString & ) ) );*/
+ connect( mCalendarView, TQ_SIGNAL( changeNavStringPrev( const TQString & ) ),
+ action, TQ_SLOT( setText( const TQString & ) ) );
+ connect( mCalendarView, TQ_SIGNAL( changeNavStringPrev( const TQString & ) ),
+ this, TQ_SLOT( dumpText( const TQString & ) ) );*/
action = new TDEAction( i18n("Go &Forward"), isRTL ? "back" : "forward", 0,
- TQT_TQOBJECT(mCalendarView),TQT_SLOT( goNext() ),
+ mCalendarView,TQ_SLOT( goNext() ),
mACollection, "go_next" );
/*
- connect( mCalendarView,TQT_SIGNAL( changeNavStringNext( const TQString & ) ),
- action,TQT_SLOT( setText( const TQString & ) ) );
+ connect( mCalendarView,TQ_SIGNAL( changeNavStringNext( const TQString & ) ),
+ action,TQ_SLOT( setText( const TQString & ) ) );
*/
//************************** Actions MENU *********************************
new TDEAction( i18n("New E&vent..."),
KOGlobals::self()->smallIcon( "newappointment" ), 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT(newEvent()),
+ mCalendarView, TQ_SLOT(newEvent()),
mACollection, "new_event" );
new TDEAction( i18n("New &To-do..."),
KOGlobals::self()->smallIcon( "newtodo" ), 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT(newTodo()),
+ mCalendarView, TQ_SLOT(newTodo()),
mACollection, "new_todo" );
action = new TDEAction( i18n("New Su&b-to-do..."), 0,
- TQT_TQOBJECT(mCalendarView),TQT_SLOT( newSubTodo() ),
+ mCalendarView,TQ_SLOT( newSubTodo() ),
mACollection, "new_subtodo" );
action->setEnabled( false );
- connect( mCalendarView,TQT_SIGNAL( todoSelected( bool ) ),
- action,TQT_SLOT( setEnabled( bool ) ) );
+ connect( mCalendarView,TQ_SIGNAL( todoSelected( bool ) ),
+ action,TQ_SLOT( setEnabled( bool ) ) );
new TDEAction( i18n("New &Journal..."),
KOGlobals::self()->smallIcon( "newjournal" ), 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT(newJournal()),
+ mCalendarView, TQ_SLOT(newJournal()),
mACollection, "new_journal" );
mShowIncidenceAction = new TDEAction( i18n("&Show"), 0,
- TQT_TQOBJECT(mCalendarView),TQT_SLOT( showIncidence() ),
+ mCalendarView,TQ_SLOT( showIncidence() ),
mACollection, "show_incidence" );
mEditIncidenceAction = new TDEAction( i18n("&Edit..."), 0,
- TQT_TQOBJECT(mCalendarView),TQT_SLOT( editIncidence() ),
+ mCalendarView,TQ_SLOT( editIncidence() ),
mACollection, "edit_incidence" );
mDeleteIncidenceAction = new TDEAction( i18n("&Delete"), Key_Delete,
- TQT_TQOBJECT(mCalendarView),TQT_SLOT( deleteIncidence()),
+ mCalendarView,TQ_SLOT( deleteIncidence()),
mACollection, "delete_incidence" );
action = new TDEAction( i18n("&Make Sub-to-do Independent"), 0,
- TQT_TQOBJECT(mCalendarView),TQT_SLOT( todo_unsub() ),
+ mCalendarView,TQ_SLOT( todo_unsub() ),
mACollection, "unsub_todo" );
action->setEnabled( false );
- connect( mCalendarView,TQT_SIGNAL( subtodoSelected( bool ) ),
- action,TQT_SLOT( setEnabled( bool ) ) );
+ connect( mCalendarView,TQ_SIGNAL( subtodoSelected( bool ) ),
+ action,TQ_SLOT( setEnabled( bool ) ) );
// TODO: Add item to move the incidence to different resource
// mAssignResourceAction = new TDEAction( i18n("Assign &Resource..."), 0,
-// mCalendarView, TQT_SLOT( assignResource()),
+// mCalendarView, TQ_SLOT( assignResource()),
// mACollection, "assign_resource" );
// TODO: Add item to quickly toggle the reminder of a given incidence
// mToggleAlarmAction = new TDEToggleAction( i18n("&Activate Reminder"), 0,
-// mCalendarView, TQT_SLOT( toggleAlarm()),
+// mCalendarView, TQ_SLOT( toggleAlarm()),
// mACollection, "activate_alarm" );
@@ -496,65 +496,65 @@ void ActionManager::initActions()
//************************** SCHEDULE MENU ********************************
mPublishEvent = new TDEAction( i18n("&Publish Item Information..."), "mail-send", 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT( schedule_publish() ),
+ mCalendarView, TQ_SLOT( schedule_publish() ),
mACollection, "schedule_publish" );
mPublishEvent->setEnabled( false );
mSendInvitation = new TDEAction( i18n( "Send &Invitation to Attendees" ),
"mail_generic", 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT(schedule_request()),
+ mCalendarView, TQ_SLOT(schedule_request()),
mACollection, "schedule_request" );
mSendInvitation->setEnabled( false );
- connect( mCalendarView, TQT_SIGNAL(organizerEventsSelected(bool)),
- mSendInvitation, TQT_SLOT(setEnabled(bool)) );
+ connect( mCalendarView, TQ_SIGNAL(organizerEventsSelected(bool)),
+ mSendInvitation, TQ_SLOT(setEnabled(bool)) );
mRequestUpdate = new TDEAction( i18n( "Re&quest Update" ), 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT(schedule_refresh()),
+ mCalendarView, TQ_SLOT(schedule_refresh()),
mACollection, "schedule_refresh" );
mRequestUpdate->setEnabled( false );
- connect( mCalendarView, TQT_SIGNAL(groupEventsSelected(bool)),
- mRequestUpdate, TQT_SLOT(setEnabled(bool)) );
+ connect( mCalendarView, TQ_SIGNAL(groupEventsSelected(bool)),
+ mRequestUpdate, TQ_SLOT(setEnabled(bool)) );
mSendCancel = new TDEAction( i18n( "Send &Cancelation to Attendees" ), 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT(schedule_cancel()),
+ mCalendarView, TQ_SLOT(schedule_cancel()),
mACollection, "schedule_cancel" );
mSendCancel->setEnabled( false );
- connect( mCalendarView, TQT_SIGNAL(organizerEventsSelected(bool)),
- mSendCancel, TQT_SLOT(setEnabled(bool)) );
+ connect( mCalendarView, TQ_SIGNAL(organizerEventsSelected(bool)),
+ mSendCancel, TQ_SLOT(setEnabled(bool)) );
mSendStatusUpdate = new TDEAction( i18n( "Send Status &Update" ),
"mail-reply-sender", 0,
- TQT_TQOBJECT(mCalendarView),TQT_SLOT(schedule_reply()),
+ mCalendarView,TQ_SLOT(schedule_reply()),
mACollection, "schedule_reply" );
mSendStatusUpdate->setEnabled( false );
- connect( mCalendarView, TQT_SIGNAL(groupEventsSelected(bool)),
- mSendStatusUpdate, TQT_SLOT(setEnabled(bool)) );
+ connect( mCalendarView, TQ_SIGNAL(groupEventsSelected(bool)),
+ mSendStatusUpdate, TQ_SLOT(setEnabled(bool)) );
mRequestChange = new TDEAction( i18n( "counter proposal", "Request Chan&ge" ), 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT(schedule_counter()),
+ mCalendarView, TQ_SLOT(schedule_counter()),
mACollection, "schedule_counter" );
mRequestChange->setEnabled( false );
- connect( mCalendarView, TQT_SIGNAL(groupEventsSelected(bool)),
- mRequestChange, TQT_SLOT(setEnabled(bool)) );
+ connect( mCalendarView, TQ_SIGNAL(groupEventsSelected(bool)),
+ mRequestChange, TQ_SLOT(setEnabled(bool)) );
mForwardEvent = new TDEAction( i18n("&Send as iCalendar..."), "mail-forward", 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT(schedule_forward()),
+ mCalendarView, TQ_SLOT(schedule_forward()),
mACollection, "schedule_forward" );
mForwardEvent->setEnabled( false );
action = new TDEAction( i18n("&Mail Free Busy Information..."), 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT( mailFreeBusy() ),
+ mCalendarView, TQ_SLOT( mailFreeBusy() ),
mACollection, "mail_freebusy" );
action->setEnabled( true );
action = new TDEAction( i18n("&Upload Free Busy Information"), 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT( uploadFreeBusy() ),
+ mCalendarView, TQ_SLOT( uploadFreeBusy() ),
mACollection, "upload_freebusy" );
action->setEnabled( true );
if ( !mIsPart ) {
action = new TDEAction( i18n("&Addressbook"),"contents",0,
- TQT_TQOBJECT(mCalendarView),TQT_SLOT( openAddressbook() ),
+ mCalendarView,TQ_SLOT( openAddressbook() ),
mACollection,"addressbook" );
}
@@ -565,13 +565,13 @@ void ActionManager::initActions()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SIDEBAR ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mDateNavigatorShowAction = new TDEToggleAction( i18n("Show Date Navigator"), 0,
- TQT_TQOBJECT(this), TQT_SLOT( toggleDateNavigator() ),
+ this, TQ_SLOT( toggleDateNavigator() ),
mACollection, "show_datenavigator" );
mTodoViewShowAction = new TDEToggleAction ( i18n("Show To-do View"), 0,
- TQT_TQOBJECT(this), TQT_SLOT( toggleTodoView() ),
+ this, TQ_SLOT( toggleTodoView() ),
mACollection, "show_todoview" );
mEventViewerShowAction = new TDEToggleAction ( i18n("Show Item Viewer"), 0,
- TQT_TQOBJECT(this), TQT_SLOT( toggleEventViewer() ),
+ this, TQ_SLOT( toggleEventViewer() ),
mACollection, "show_eventviewer" );
TDEConfig *config = KOGlobals::self()->config();
config->setGroup( "Settings" );
@@ -590,10 +590,10 @@ void ActionManager::initActions()
if ( !mMainWindow->hasDocument() ) {
mResourceViewShowAction = new TDEToggleAction ( i18n("Show Resource View"), 0,
- TQT_TQOBJECT(this), TQT_SLOT( toggleResourceView() ),
+ this, TQ_SLOT( toggleResourceView() ),
mACollection, "show_resourceview" );
mResourceButtonsAction = new TDEToggleAction( i18n("Show &Resource Buttons"), 0,
- TQT_TQOBJECT(this), TQT_SLOT( toggleResourceButtons() ),
+ this, TQ_SLOT( toggleResourceButtons() ),
mACollection, "show_resourcebuttons" );
mResourceViewShowAction->setChecked(
config->readBoolEntry( "ResourceViewVisible", true ) );
@@ -608,38 +608,38 @@ void ActionManager::initActions()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SIDEBAR ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
new TDEAction( i18n("Configure &Date && Time..."), 0,
- TQT_TQOBJECT(this), TQT_SLOT( configureDateTime() ),
+ this, TQ_SLOT( configureDateTime() ),
mACollection, "conf_datetime" );
// TODO: Add an item to show the resource management dlg
// new TDEAction( i18n("Manage &Resources..."), 0,
-// TQT_TQOBJECT(this), TQT_SLOT( manageResources() ),
+// this, TQ_SLOT( manageResources() ),
// mACollection, "conf_resources" );
new TDEAction( i18n("Manage View &Filters..."), "configure", 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT( editFilters() ),
+ mCalendarView, TQ_SLOT( editFilters() ),
mACollection, "edit_filters" );
new TDEAction( i18n("Manage C&ategories..."), 0,
- TQT_TQOBJECT(mCalendarView->dialogManager()), TQT_SLOT( showCategoryEditDialog() ),
+ mCalendarView->dialogManager(), TQ_SLOT( showCategoryEditDialog() ),
mACollection, "edit_categories" );
if ( mIsPart ) {
new TDEAction( i18n("&Configure Calendar..."), "configure", 0,
- TQT_TQOBJECT(mCalendarView), TQT_SLOT( edit_options() ),
+ mCalendarView, TQ_SLOT( edit_options() ),
mACollection, "korganizer_configure" );
- KStdAction::keyBindings( TQT_TQOBJECT(this), TQT_SLOT( keyBindings() ),
+ KStdAction::keyBindings( this, TQ_SLOT( keyBindings() ),
mACollection, "korganizer_configure_shortcuts" );
} else {
- KStdAction::preferences( TQT_TQOBJECT(mCalendarView), TQT_SLOT( edit_options() ),
+ KStdAction::preferences( mCalendarView, TQ_SLOT( edit_options() ),
mACollection );
- KStdAction::keyBindings( TQT_TQOBJECT(this), TQT_SLOT( keyBindings() ), mACollection );
+ KStdAction::keyBindings( this, TQ_SLOT( keyBindings() ), mACollection );
}
//**************************** HELP MENU **********************************
- KStdAction::tipOfDay( TQT_TQOBJECT(this), TQT_SLOT( showTip() ), mACollection,
+ KStdAction::tipOfDay( this, TQ_SLOT( showTip() ), mACollection,
"help_tipofday" );
// new TDEAction( i18n("Show Intro Page"), 0,
-// mCalendarView,TQT_SLOT( showIntro() ),
+// mCalendarView,TQ_SLOT( showIntro() ),
// mACollection,"show_intro" );
@@ -1293,8 +1293,8 @@ void ActionManager::configureDateTime()
TDEProcess *proc = new TDEProcess;
*proc << "tdecmshell" << "language";
- connect( proc,TQT_SIGNAL( processExited( TDEProcess * ) ),
- TQT_SLOT( configureDateTimeFinished( TDEProcess * ) ) );
+ connect( proc,TQ_SIGNAL( processExited( TDEProcess * ) ),
+ TQ_SLOT( configureDateTimeFinished( TDEProcess * ) ) );
if ( !proc->start() ) {
KMessageBox::sorry( dialogParent(),
@@ -1558,7 +1558,7 @@ TQPair<ResourceCalendar *, TQString> ActionManager::viewSubResourceCalendar()
cV = mCalendarView->viewManager()->multiAgendaView()->selectedAgendaView();
}
if ( cV ) {
- p = tqMakePair( cV->resourceCalendar(), cV->subResourceCalendar() );
+ p = qMakePair( cV->resourceCalendar(), cV->subResourceCalendar() );
}
return p;
}
@@ -1935,8 +1935,8 @@ bool ActionManager::queryClose()
// FIXME: Put main window into a state indicating final saving.
mIsClosing = true;
// FIXME: Close main window when save is finished
-// connect( mCalendarResources, TQT_SIGNAL( calendarSaved() ),
-// mMainWindow, TQT_SLOT( close() ) );
+// connect( mCalendarResources, TQ_SIGNAL( calendarSaved() ),
+// mMainWindow, TQ_SLOT( close() ) );
}
if ( mCalendarResources->isSaving() ) {
kdDebug(5850) << "ActionManager::queryClose(): isSaving" << endl;
@@ -2012,12 +2012,12 @@ void ActionManager::importCalendar( const KURL &url )
PreviewDialog *dialog;
dialog = new PreviewDialog( url, mMainWindow->topLevelWidget() );
- connect( dialog, TQT_SIGNAL( dialogFinished( PreviewDialog * ) ),
- TQT_SLOT( slotPreviewDialogFinished( PreviewDialog * ) ) );
- connect( dialog, TQT_SIGNAL( openURL( const KURL &, bool ) ),
- TQT_SLOT( openURL( const KURL &, bool ) ) );
- connect( dialog, TQT_SIGNAL( addResource( const KURL & ) ),
- TQT_SLOT( addResource( const KURL & ) ) );
+ connect( dialog, TQ_SIGNAL( dialogFinished( PreviewDialog * ) ),
+ TQ_SLOT( slotPreviewDialogFinished( PreviewDialog * ) ) );
+ connect( dialog, TQ_SIGNAL( openURL( const KURL &, bool ) ),
+ TQ_SLOT( openURL( const KURL &, bool ) ) );
+ connect( dialog, TQ_SIGNAL( addResource( const KURL & ) ),
+ TQ_SLOT( addResource( const KURL & ) ) );
if ( dialog->loadCalendar() ) {
dialog->show();
@@ -2046,7 +2046,7 @@ void ActionManager::slotAutoArchive()
return;
mAutoArchiveTimer->stop();
EventArchiver archiver;
- connect( &archiver, TQT_SIGNAL( eventsDeleted() ), mCalendarView, TQT_SLOT( updateView() ) );
+ connect( &archiver, TQ_SIGNAL( eventsDeleted() ), mCalendarView, TQ_SLOT( updateView() ) );
archiver.runAuto( mCalendarView->calendar(), mCalendarView, false /*no gui*/ );
// restart timer with the correct delay ( especially useful for the first time )
slotAutoArchivingSettingsModified();
diff --git a/korganizer/actionmanager.h b/korganizer/actionmanager.h
index 3494ecff..d7b8c417 100644
--- a/korganizer/actionmanager.h
+++ b/korganizer/actionmanager.h
@@ -30,7 +30,7 @@
#include <tqobject.h>
#include <kurl.h>
#include <korganizer/part.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "kcalendariface.h"
@@ -72,7 +72,7 @@ using namespace KCal;
*/
class KDE_EXPORT ActionManager : public TQObject, public KCalendarIface
{
- Q_OBJECT
+ TQ_OBJECT
public:
ActionManager( KXMLGUIClient *client, CalendarView *widget,
diff --git a/korganizer/agendaview.cpp b/korganizer/agendaview.cpp
index df141789..e0519ba4 100644
--- a/korganizer/agendaview.cpp
+++ b/korganizer/agendaview.cpp
@@ -27,9 +27,9 @@ AgendaView::AgendaView(Calendar * cal, TQWidget * parent, const char * name) :
{
KCal::CalendarResources *calres = dynamic_cast<KCal::CalendarResources*>( cal );
if ( calres ) {
- connect( calres, TQT_SIGNAL(signalResourceAdded(ResourceCalendar *)), TQT_SLOT(resourcesChanged()) );
- connect( calres, TQT_SIGNAL(signalResourceModified( ResourceCalendar *)), TQT_SLOT(resourcesChanged()) );
- connect( calres, TQT_SIGNAL(signalResourceDeleted(ResourceCalendar *)), TQT_SLOT(resourcesChanged()) );
+ connect( calres, TQ_SIGNAL(signalResourceAdded(ResourceCalendar *)), TQ_SLOT(resourcesChanged()) );
+ connect( calres, TQ_SIGNAL(signalResourceModified( ResourceCalendar *)), TQ_SLOT(resourcesChanged()) );
+ connect( calres, TQ_SIGNAL(signalResourceDeleted(ResourceCalendar *)), TQ_SLOT(resourcesChanged()) );
}
}
diff --git a/korganizer/agendaview.h b/korganizer/agendaview.h
index 32b58d3c..6e48f699 100644
--- a/korganizer/agendaview.h
+++ b/korganizer/agendaview.h
@@ -26,7 +26,7 @@ namespace KOrg {
/** Base class for single/multi agenda views. */
class AgendaView : public KOEventView
{
- Q_OBJECT
+ TQ_OBJECT
public:
AgendaView( Calendar *cal,TQWidget *parent=0,const char *name=0 );
diff --git a/korganizer/archivedialog.cpp b/korganizer/archivedialog.cpp
index 989be261..7b8eae46 100644
--- a/korganizer/archivedialog.cpp
+++ b/korganizer/archivedialog.cpp
@@ -76,7 +76,7 @@ ArchiveDialog::ArchiveDialog(Calendar *cal,TQWidget *parent, const char *name)
TQButtonGroup* radioBG = new TQButtonGroup( this );
radioBG->hide(); // just for the exclusive behavior
- connect( radioBG, TQT_SIGNAL( clicked( int ) ), TQT_SLOT( slotActionChanged() ) );
+ connect( radioBG, TQ_SIGNAL( clicked( int ) ), TQ_SLOT( slotActionChanged() ) );
TQHBoxLayout *dateLayout = new TQHBoxLayout(0);
mArchiveOnceRB = new TQRadioButton(i18n("Archive now items older than:"),topFrame);
@@ -147,10 +147,10 @@ ArchiveDialog::ArchiveDialog(Calendar *cal,TQWidget *parent, const char *name)
i18n("Select this option to delete old events and to-dos without saving them. "
"It is not possible to recover the events later."));
topLayout->addWidget(mDeleteCb);
- connect(mDeleteCb, TQT_SIGNAL(toggled(bool)), mArchiveFile, TQT_SLOT(setDisabled(bool)));
- connect(mDeleteCb, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotEnableUser1()));
- connect(mArchiveFile->lineEdit(),TQT_SIGNAL(textChanged ( const TQString & )),
- this,TQT_SLOT(slotEnableUser1()));
+ connect(mDeleteCb, TQ_SIGNAL(toggled(bool)), mArchiveFile, TQ_SLOT(setDisabled(bool)));
+ connect(mDeleteCb, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(slotEnableUser1()));
+ connect(mArchiveFile->lineEdit(),TQ_SIGNAL(textChanged ( const TQString & )),
+ this,TQ_SLOT(slotEnableUser1()));
// Load settings from KOPrefs
mExpiryTimeNumInput->setValue( KOPrefs::instance()->mExpiryTime );
@@ -194,7 +194,7 @@ void ArchiveDialog::slotActionChanged()
void ArchiveDialog::slotUser1()
{
EventArchiver archiver;
- connect( &archiver, TQT_SIGNAL( eventsDeleted() ), this, TQT_SLOT( slotEventsDeleted() ) );
+ connect( &archiver, TQ_SIGNAL( eventsDeleted() ), this, TQ_SLOT( slotEventsDeleted() ) );
KOPrefs::instance()->mAutoArchive = mAutoArchiveRB->isChecked();
KOPrefs::instance()->mExpiryTime = mExpiryTimeNumInput->value();
diff --git a/korganizer/archivedialog.h b/korganizer/archivedialog.h
index 4d43f5da..2b22fe4f 100644
--- a/korganizer/archivedialog.h
+++ b/korganizer/archivedialog.h
@@ -40,7 +40,7 @@ using namespace KCal;
class ArchiveDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
ArchiveDialog(Calendar *calendar,TQWidget *parent=0, const char *name=0);
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 907603a9..dbee755f 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -131,18 +131,18 @@ CalendarView::CalendarView( TQWidget *parent, const char *name )
mExtensions.setAutoDelete( true );
- mDateNavigator = new DateNavigator( TQT_TQOBJECT(this) );
- mDateChecker = new DateChecker( TQT_TQOBJECT(this) );
+ mDateNavigator = new DateNavigator( this );
+ mDateChecker = new DateChecker( this );
TQBoxLayout *topLayout = new TQVBoxLayout( this );
#ifndef KORG_NOSPLITTER
// create the main layout frames.
- mPanner = new TQSplitter( Qt::Horizontal, this,
+ mPanner = new TQSplitter( TQt::Horizontal, this,
"CalendarView::Panner" );
topLayout->addWidget( mPanner );
- mLeftSplitter = new TQSplitter( Qt::Vertical, mPanner,
+ mLeftSplitter = new TQSplitter( TQt::Vertical, mPanner,
"CalendarView::LeftFrame" );
// mPanner->setResizeMode( mLeftSplitter, TQSplitter::Stretch );
@@ -200,64 +200,64 @@ CalendarView::CalendarView( TQWidget *parent, const char *name )
#endif
// Signals emited by mDateNavigator
- connect( mDateNavigator, TQT_SIGNAL( datesSelected( const KCal::DateList &, const TQDate & ) ),
- TQT_SLOT( showDates( const KCal::DateList &, const TQDate & ) ) );
+ connect( mDateNavigator, TQ_SIGNAL( datesSelected( const KCal::DateList &, const TQDate & ) ),
+ TQ_SLOT( showDates( const KCal::DateList &, const TQDate & ) ) );
// Signals emited by mNavigatorBar
- connect( mNavigatorBar, TQT_SIGNAL( prevYearClicked() ),
- mDateNavigator, TQT_SLOT( selectPreviousYear() ) );
- connect( mNavigatorBar, TQT_SIGNAL( nextYearClicked() ),
- mDateNavigator, TQT_SLOT( selectNextYear() ) );
- connect( mNavigatorBar, TQT_SIGNAL( prevMonthClicked() ),
- mDateNavigator, TQT_SLOT( selectPreviousMonth() ) );
- connect( mNavigatorBar, TQT_SIGNAL( nextMonthClicked() ),
- mDateNavigator, TQT_SLOT( selectNextMonth() ) );
- connect( mNavigatorBar, TQT_SIGNAL( monthSelected(int) ),
- mDateNavigator, TQT_SLOT( selectMonth(int) ) );
- connect( mNavigatorBar, TQT_SIGNAL( yearSelected(int)),
- mDateNavigator, TQT_SLOT(selectYear(int)) );
+ connect( mNavigatorBar, TQ_SIGNAL( prevYearClicked() ),
+ mDateNavigator, TQ_SLOT( selectPreviousYear() ) );
+ connect( mNavigatorBar, TQ_SIGNAL( nextYearClicked() ),
+ mDateNavigator, TQ_SLOT( selectNextYear() ) );
+ connect( mNavigatorBar, TQ_SIGNAL( prevMonthClicked() ),
+ mDateNavigator, TQ_SLOT( selectPreviousMonth() ) );
+ connect( mNavigatorBar, TQ_SIGNAL( nextMonthClicked() ),
+ mDateNavigator, TQ_SLOT( selectNextMonth() ) );
+ connect( mNavigatorBar, TQ_SIGNAL( monthSelected(int) ),
+ mDateNavigator, TQ_SLOT( selectMonth(int) ) );
+ connect( mNavigatorBar, TQ_SIGNAL( yearSelected(int)),
+ mDateNavigator, TQ_SLOT(selectYear(int)) );
// Signals emited by mDateNavigatorContainer
- connect( mDateNavigatorContainer, TQT_SIGNAL( weekClicked( const TQDate & ) ),
- this, TQT_SLOT( selectWeek( const TQDate & ) ) );
- connect( mDateNavigatorContainer, TQT_SIGNAL( prevMonthClicked(const TQDate &, const TQDate &, const TQDate &) ),
- mDateNavigator, TQT_SLOT( selectPreviousMonth(const TQDate &, const TQDate &, const TQDate &) ) );
- connect( mDateNavigatorContainer, TQT_SIGNAL( nextMonthClicked(const TQDate &, const TQDate &, const TQDate &) ),
- mDateNavigator, TQT_SLOT( selectNextMonth(const TQDate &, const TQDate &, const TQDate &) ) );
- connect( mDateNavigatorContainer, TQT_SIGNAL( prevYearClicked() ),
- mDateNavigator, TQT_SLOT( selectPreviousYear() ) );
- connect( mDateNavigatorContainer, TQT_SIGNAL( nextYearClicked() ),
- mDateNavigator, TQT_SLOT( selectNextYear() ) );
- connect( mDateNavigatorContainer, TQT_SIGNAL( monthSelected(int) ),
- mDateNavigator, TQT_SLOT( selectMonth(int) ) );
- connect( mDateNavigatorContainer, TQT_SIGNAL(yearSelected(int)),
- mDateNavigator, TQT_SLOT(selectYear(int)) );
- connect( mDateNavigatorContainer, TQT_SIGNAL( goPrevious() ),
- mDateNavigator, TQT_SLOT( selectPrevious() ) );
- connect( mDateNavigatorContainer, TQT_SIGNAL( goNext() ),
- mDateNavigator, TQT_SLOT( selectNext() ) );
-
- connect( mDateNavigatorContainer, TQT_SIGNAL( datesSelected( const KCal::DateList & ) ),
- mDateNavigator, TQT_SLOT( selectDates( const KCal::DateList & ) ) );
-
- connect( mDateNavigatorContainer, TQT_SIGNAL(incidenceDropped(Incidence*, const TQDate&)),
- TQT_SLOT( addIncidenceOn( Incidence *, const TQDate & ) ) );
- connect( mDateNavigatorContainer, TQT_SIGNAL(incidenceDroppedMove(Incidence*,const TQDate&)),
- TQT_SLOT( moveIncidenceTo( Incidence *, const TQDate & ) ) );
-
- connect( mDateChecker, TQT_SIGNAL( dayPassed( const TQDate & ) ),
- mTodoList, TQT_SLOT( dayPassed( const TQDate & ) ) );
- connect( mDateChecker, TQT_SIGNAL( dayPassed( const TQDate & ) ),
- TQT_SIGNAL( dayPassed( const TQDate & ) ) );
- connect( mDateChecker, TQT_SIGNAL( dayPassed( const TQDate & ) ),
- mDateNavigatorContainer, TQT_SLOT( updateToday() ) );
-
- connect( this, TQT_SIGNAL( configChanged() ),
- mDateNavigatorContainer, TQT_SLOT( updateConfig() ) );
-
- connect( this, TQT_SIGNAL( incidenceSelected(Incidence *, const TQDate &) ),
- mEventViewer, TQT_SLOT ( setIncidence (Incidence *, const TQDate &) ) );
+ connect( mDateNavigatorContainer, TQ_SIGNAL( weekClicked( const TQDate & ) ),
+ this, TQ_SLOT( selectWeek( const TQDate & ) ) );
+ connect( mDateNavigatorContainer, TQ_SIGNAL( prevMonthClicked(const TQDate &, const TQDate &, const TQDate &) ),
+ mDateNavigator, TQ_SLOT( selectPreviousMonth(const TQDate &, const TQDate &, const TQDate &) ) );
+ connect( mDateNavigatorContainer, TQ_SIGNAL( nextMonthClicked(const TQDate &, const TQDate &, const TQDate &) ),
+ mDateNavigator, TQ_SLOT( selectNextMonth(const TQDate &, const TQDate &, const TQDate &) ) );
+ connect( mDateNavigatorContainer, TQ_SIGNAL( prevYearClicked() ),
+ mDateNavigator, TQ_SLOT( selectPreviousYear() ) );
+ connect( mDateNavigatorContainer, TQ_SIGNAL( nextYearClicked() ),
+ mDateNavigator, TQ_SLOT( selectNextYear() ) );
+ connect( mDateNavigatorContainer, TQ_SIGNAL( monthSelected(int) ),
+ mDateNavigator, TQ_SLOT( selectMonth(int) ) );
+ connect( mDateNavigatorContainer, TQ_SIGNAL(yearSelected(int)),
+ mDateNavigator, TQ_SLOT(selectYear(int)) );
+ connect( mDateNavigatorContainer, TQ_SIGNAL( goPrevious() ),
+ mDateNavigator, TQ_SLOT( selectPrevious() ) );
+ connect( mDateNavigatorContainer, TQ_SIGNAL( goNext() ),
+ mDateNavigator, TQ_SLOT( selectNext() ) );
+
+ connect( mDateNavigatorContainer, TQ_SIGNAL( datesSelected( const KCal::DateList & ) ),
+ mDateNavigator, TQ_SLOT( selectDates( const KCal::DateList & ) ) );
+
+ connect( mDateNavigatorContainer, TQ_SIGNAL(incidenceDropped(Incidence*, const TQDate&)),
+ TQ_SLOT( addIncidenceOn( Incidence *, const TQDate & ) ) );
+ connect( mDateNavigatorContainer, TQ_SIGNAL(incidenceDroppedMove(Incidence*,const TQDate&)),
+ TQ_SLOT( moveIncidenceTo( Incidence *, const TQDate & ) ) );
+
+ connect( mDateChecker, TQ_SIGNAL( dayPassed( const TQDate & ) ),
+ mTodoList, TQ_SLOT( dayPassed( const TQDate & ) ) );
+ connect( mDateChecker, TQ_SIGNAL( dayPassed( const TQDate & ) ),
+ TQ_SIGNAL( dayPassed( const TQDate & ) ) );
+ connect( mDateChecker, TQ_SIGNAL( dayPassed( const TQDate & ) ),
+ mDateNavigatorContainer, TQ_SLOT( updateToday() ) );
+
+ connect( this, TQ_SIGNAL( configChanged() ),
+ mDateNavigatorContainer, TQ_SLOT( updateConfig() ) );
+
+ connect( this, TQ_SIGNAL( incidenceSelected(Incidence *, const TQDate &) ),
+ mEventViewer, TQ_SLOT ( setIncidence (Incidence *, const TQDate &) ) );
//TODO: do a pretty Summary,
TQString s;
@@ -277,13 +277,13 @@ CalendarView::CalendarView( TQWidget *parent, const char *name )
KOGlobals::self()->
setHolidays( new KHolidays( KOPrefs::instance()->mHolidays ) );
- connect( TQApplication::clipboard(), TQT_SIGNAL( dataChanged() ),
- TQT_SLOT( checkClipboard() ) );
+ connect( TQApplication::clipboard(), TQ_SIGNAL( dataChanged() ),
+ TQ_SLOT( checkClipboard() ) );
- connect( mTodoList, TQT_SIGNAL( incidenceSelected( Incidence *,const TQDate & ) ),
- TQT_SLOT( processTodoListSelection( Incidence *,const TQDate & ) ) );
- disconnect( mTodoList, TQT_SIGNAL( incidenceSelected( Incidence *,const TQDate & ) ),
- this, TQT_SLOT( processMainViewSelection( Incidence *,const TQDate & ) ) );
+ connect( mTodoList, TQ_SIGNAL( incidenceSelected( Incidence *,const TQDate & ) ),
+ TQ_SLOT( processTodoListSelection( Incidence *,const TQDate & ) ) );
+ disconnect( mTodoList, TQ_SIGNAL( incidenceSelected( Incidence *,const TQDate & ) ),
+ this, TQ_SLOT( processMainViewSelection( Incidence *,const TQDate & ) ) );
kdDebug(5850) << "CalendarView::CalendarView() done" << endl;
}
@@ -307,11 +307,11 @@ void CalendarView::setCalendar( Calendar *cal )
delete mHistory;
mHistory = new History( mCalendar );
- connect( mHistory, TQT_SIGNAL( undone() ), TQT_SLOT( updateView() ) );
- connect( mHistory, TQT_SIGNAL( redone() ), TQT_SLOT( updateView() ) );
+ connect( mHistory, TQ_SIGNAL( undone() ), TQ_SLOT( updateView() ) );
+ connect( mHistory, TQ_SIGNAL( redone() ), TQ_SLOT( updateView() ) );
if ( mChanger ) delete mChanger;
- setIncidenceChanger( new IncidenceChanger( mCalendar, TQT_TQOBJECT(this) ) );
+ setIncidenceChanger( new IncidenceChanger( mCalendar, this ) );
mCalendar->registerObserver( this );
@@ -326,21 +326,21 @@ void CalendarView::setIncidenceChanger( IncidenceChangerBase *changer )
{
mChanger = changer;
emit newIncidenceChanger( mChanger );
- connect( mChanger, TQT_SIGNAL( incidenceAdded( Incidence* ) ),
- this, TQT_SLOT( incidenceAdded( Incidence* ) ) );
- connect( mChanger, TQT_SIGNAL( incidenceChanged( Incidence*, Incidence*, KOGlobals::WhatChanged ) ),
- this, TQT_SLOT( incidenceChanged( Incidence*, Incidence*, KOGlobals::WhatChanged ) ) );
- connect( mChanger, TQT_SIGNAL( incidenceToBeDeleted( Incidence * ) ),
- this, TQT_SLOT( incidenceToBeDeleted( Incidence * ) ) );
- connect( mChanger, TQT_SIGNAL( incidenceDeleted( Incidence * ) ),
- this, TQT_SLOT( incidenceDeleted( Incidence * ) ) );
+ connect( mChanger, TQ_SIGNAL( incidenceAdded( Incidence* ) ),
+ this, TQ_SLOT( incidenceAdded( Incidence* ) ) );
+ connect( mChanger, TQ_SIGNAL( incidenceChanged( Incidence*, Incidence*, KOGlobals::WhatChanged ) ),
+ this, TQ_SLOT( incidenceChanged( Incidence*, Incidence*, KOGlobals::WhatChanged ) ) );
+ connect( mChanger, TQ_SIGNAL( incidenceToBeDeleted( Incidence * ) ),
+ this, TQ_SLOT( incidenceToBeDeleted( Incidence * ) ) );
+ connect( mChanger, TQ_SIGNAL( incidenceDeleted( Incidence * ) ),
+ this, TQ_SLOT( incidenceDeleted( Incidence * ) ) );
- connect( mChanger, TQT_SIGNAL( schedule( Scheduler::Method, Incidence*) ),
- this, TQT_SLOT( schedule( Scheduler::Method, Incidence*) ) );
+ connect( mChanger, TQ_SIGNAL( schedule( Scheduler::Method, Incidence*) ),
+ this, TQ_SLOT( schedule( Scheduler::Method, Incidence*) ) );
- connect( this, TQT_SIGNAL( cancelAttendees( Incidence * ) ),
- mChanger, TQT_SLOT( cancelAttendees( Incidence * ) ) );
+ connect( this, TQ_SIGNAL( cancelAttendees( Incidence * ) ),
+ mChanger, TQ_SLOT( cancelAttendees( Incidence * ) ) );
}
Calendar *CalendarView::calendar()
@@ -357,7 +357,7 @@ TQPair<ResourceCalendar *, TQString> CalendarView::viewSubResourceCalendar()
cV = mViewManager->multiAgendaView()->selectedAgendaView();
}
if ( cV ) {
- p = tqMakePair( cV->resourceCalendar(), cV->subResourceCalendar() );
+ p = qMakePair( cV->resourceCalendar(), cV->subResourceCalendar() );
}
return p;
}
@@ -1776,7 +1776,7 @@ void CalendarView::print()
#ifndef KORG_NOPRINTER
KOCoreHelper helper;
CalPrinter printer( this, mCalendar, &helper );
- connect( this, TQT_SIGNAL(configChanged()), &printer, TQT_SLOT(updateConfig()) );
+ connect( this, TQ_SIGNAL(configChanged()), &printer, TQ_SLOT(updateConfig()) );
KOrg::BaseView *currentView = mViewManager->currentView();
@@ -1802,8 +1802,8 @@ void CalendarView::exportWeb()
// seem to load the config theirselves
if ( settings ) settings->readConfig();
ExportWebDialog *dlg = new ExportWebDialog( settings, this );
- connect( dlg, TQT_SIGNAL( exportHTML( HTMLExportSettings* ) ),
- this, TQT_SIGNAL( exportHTML( HTMLExportSettings* ) ) );
+ connect( dlg, TQ_SIGNAL( exportHTML( HTMLExportSettings* ) ),
+ this, TQ_SIGNAL( exportHTML( HTMLExportSettings* ) ) );
dlg->show();
}
@@ -2472,8 +2472,8 @@ void CalendarView::deleteIncidence(Incidence *incidence, bool force)
void CalendarView::connectIncidenceEditor( KOIncidenceEditor *editor )
{
- connect( this, TQT_SIGNAL( newIncidenceChanger( IncidenceChangerBase* ) ),
- editor, TQT_SLOT( setIncidenceChanger( IncidenceChangerBase* ) ) );
+ connect( this, TQ_SIGNAL( newIncidenceChanger( IncidenceChangerBase* ) ),
+ editor, TQ_SLOT( setIncidenceChanger( IncidenceChangerBase* ) ) );
editor->setIncidenceChanger( mChanger );
}
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index 469eddaf..3d1d7623 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -31,7 +31,7 @@
#include <tdefile.h>
#include <korganizer/koeventviewer.h>
#include <libkcal/scheduler.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "koglobals.h"
#include "interfaces/korganizer/calendarviewbase.h"
@@ -80,7 +80,7 @@ class CalendarViewExtension : public TQWidget
*/
class KDE_EXPORT CalendarView : public KOrg::CalendarViewBase, public Calendar::Observer
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/korganizer/datechecker.cpp b/korganizer/datechecker.cpp
index 2be3d060..ebe73465 100644
--- a/korganizer/datechecker.cpp
+++ b/korganizer/datechecker.cpp
@@ -55,8 +55,8 @@ void DateChecker::enableRollover( RolloverType r )
case FollowMonth:
if ( !mUpdateTimer ) {
mUpdateTimer = new TQTimer( this, "mUpdateTimer" );
- connect( mUpdateTimer, TQT_SIGNAL( timeout() ),
- TQT_SLOT( possiblyPastMidnight() ) );
+ connect( mUpdateTimer, TQ_SIGNAL( timeout() ),
+ TQ_SLOT( possiblyPastMidnight() ) );
}
mUpdateTimer->start( 0, true );
mLastDayChecked = TQDate::currentDate();
diff --git a/korganizer/datechecker.h b/korganizer/datechecker.h
index a2d191a3..5665f26d 100644
--- a/korganizer/datechecker.h
+++ b/korganizer/datechecker.h
@@ -36,7 +36,7 @@ class NavigatorBar;
class DateChecker: public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
DateChecker( TQObject *parent = 0, const char *name = 0 );
diff --git a/korganizer/datenavigator.h b/korganizer/datenavigator.h
index 4418745d..f34c1b28 100644
--- a/korganizer/datenavigator.h
+++ b/korganizer/datenavigator.h
@@ -35,7 +35,7 @@
*/
class DateNavigator : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
DateNavigator( TQObject *parent = 0, const char *name = 0 );
diff --git a/korganizer/datenavigatorcontainer.cpp b/korganizer/datenavigatorcontainer.cpp
index bb965ba2..3ff76fec 100644
--- a/korganizer/datenavigatorcontainer.cpp
+++ b/korganizer/datenavigatorcontainer.cpp
@@ -68,26 +68,26 @@ DateNavigatorContainer::~DateNavigatorContainer()
void DateNavigatorContainer::connectNavigatorView( KDateNavigator *v )
{
- connect( v, TQT_SIGNAL( datesSelected( const KCal::DateList & ) ),
- TQT_SIGNAL( datesSelected( const KCal::DateList & ) ) );
- connect( v, TQT_SIGNAL( incidenceDropped( Incidence *, const TQDate & ) ),
- TQT_SIGNAL( incidenceDropped( Incidence *, const TQDate & ) ) );
- connect( v, TQT_SIGNAL( incidenceDroppedMove( Incidence *, const TQDate & ) ),
- TQT_SIGNAL( incidenceDroppedMove( Incidence *, const TQDate & ) ) );
- connect( v, TQT_SIGNAL( weekClicked( const TQDate & ) ),
- TQT_SIGNAL( weekClicked( const TQDate & ) ) );
-
- connect( v, TQT_SIGNAL( goPrevious() ), TQT_SIGNAL( goPrevious() ) );
- connect( v, TQT_SIGNAL( goNext() ), TQT_SIGNAL( goNext() ) );
-
- connect( v, TQT_SIGNAL( nextYearClicked() ), TQT_SIGNAL( nextYearClicked() ) );
- connect( v, TQT_SIGNAL( prevYearClicked() ), TQT_SIGNAL( prevYearClicked() ) );
-
- connect( v, TQT_SIGNAL( prevMonthClicked() ), this, TQT_SLOT( goPrevMonth() ) );
- connect( v, TQT_SIGNAL( nextMonthClicked() ), this, TQT_SLOT( goNextMonth() ) );
-
- connect( v, TQT_SIGNAL( monthSelected( int ) ), TQT_SIGNAL( monthSelected( int ) ) );
- connect( v, TQT_SIGNAL( yearSelected( int ) ), TQT_SIGNAL( yearSelected( int ) ) );
+ connect( v, TQ_SIGNAL( datesSelected( const KCal::DateList & ) ),
+ TQ_SIGNAL( datesSelected( const KCal::DateList & ) ) );
+ connect( v, TQ_SIGNAL( incidenceDropped( Incidence *, const TQDate & ) ),
+ TQ_SIGNAL( incidenceDropped( Incidence *, const TQDate & ) ) );
+ connect( v, TQ_SIGNAL( incidenceDroppedMove( Incidence *, const TQDate & ) ),
+ TQ_SIGNAL( incidenceDroppedMove( Incidence *, const TQDate & ) ) );
+ connect( v, TQ_SIGNAL( weekClicked( const TQDate & ) ),
+ TQ_SIGNAL( weekClicked( const TQDate & ) ) );
+
+ connect( v, TQ_SIGNAL( goPrevious() ), TQ_SIGNAL( goPrevious() ) );
+ connect( v, TQ_SIGNAL( goNext() ), TQ_SIGNAL( goNext() ) );
+
+ connect( v, TQ_SIGNAL( nextYearClicked() ), TQ_SIGNAL( nextYearClicked() ) );
+ connect( v, TQ_SIGNAL( prevYearClicked() ), TQ_SIGNAL( prevYearClicked() ) );
+
+ connect( v, TQ_SIGNAL( prevMonthClicked() ), this, TQ_SLOT( goPrevMonth() ) );
+ connect( v, TQ_SIGNAL( nextMonthClicked() ), this, TQ_SLOT( goNextMonth() ) );
+
+ connect( v, TQ_SIGNAL( monthSelected( int ) ), TQ_SIGNAL( monthSelected( int ) ) );
+ connect( v, TQ_SIGNAL( yearSelected( int ) ), TQ_SIGNAL( yearSelected( int ) ) );
}
void DateNavigatorContainer::setCalendar( Calendar *cal )
@@ -211,7 +211,7 @@ void DateNavigatorContainer::resizeEvent( TQResizeEvent * )
kdDebug(5850) << " SIZEHINT: " << sizeHint() << endl;
kdDebug(5850) << " MINIMUM SIZE: " << minimumSize() << endl;
#endif
- TQTimer::singleShot( 0, this, TQT_SLOT( resizeAllContents() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( resizeAllContents() ) );
}
void DateNavigatorContainer::resizeAllContents()
@@ -332,7 +332,7 @@ TQPair<TQDate,TQDate> DateNavigatorContainer::dateLimits( int offset )
TQPair<TQDate,TQDate> firstMonthBoundary = KODayMatrix::matrixLimits( firstMonth );
TQPair<TQDate,TQDate> lastMonthBoundary = KODayMatrix::matrixLimits( lastMonth );
- return tqMakePair( firstMonthBoundary.first, lastMonthBoundary.second );
+ return qMakePair( firstMonthBoundary.first, lastMonthBoundary.second );
}
#include "datenavigatorcontainer.moc"
diff --git a/korganizer/datenavigatorcontainer.h b/korganizer/datenavigatorcontainer.h
index 17c983e7..6a4d97ec 100644
--- a/korganizer/datenavigatorcontainer.h
+++ b/korganizer/datenavigatorcontainer.h
@@ -31,7 +31,7 @@ class KDateNavigator;
class DateNavigatorContainer: public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
public:
DateNavigatorContainer( TQWidget *parent = 0, const char *name = 0 );
diff --git a/korganizer/dcopcalendar.desktop b/korganizer/dcopcalendar.desktop
index dad55950..68fb454d 100644
--- a/korganizer/dcopcalendar.desktop
+++ b/korganizer/dcopcalendar.desktop
@@ -1,57 +1,5 @@
[Desktop Entry]
Type=ServiceType
X-TDE-ServiceType=DCOP/Organizer
+
Comment=Organizer with a DCOP interface
-Comment[af]=Organiseerder met 'n DCOP koppelvlak
-Comment[be]=Арганізатар з DCOP інтэрфэйсам
-Comment[bg]=Организатор с поддръжка на интерфейс DCOP
-Comment[br]=Deiziater gant un etrefas DCOP
-Comment[bs]=Organizer sa DCOP interfejsom
-Comment[ca]=Organitzador amb una interfície DCOP
-Comment[cs]=Organizátor s DCOP rozhraním
-Comment[cy]=Trefnydd gyda rhyngwyneb DCOP
-Comment[da]=Organisator med en DCOP-grænseflade
-Comment[de]=Organizer mit DCOP-Schnittstelle
-Comment[el]=Organizer με περιβάλλον χρήσης DCOP
-Comment[en_GB]=Organiser with a DCOP interface
-Comment[eo]=Organizilo kun DCOP-interfaco
-Comment[es]=Organizador con un interfaz DCOP
-Comment[et]=KOrganizer DCOP-liidesega
-Comment[eu]=DCOP interfazedun antolatzailea
-Comment[fa]=سازمان‌دهنده با یک واسط DCOP
-Comment[fi]=Kalenteri DCOP-rajapinnalla
-Comment[fr]=Organiseur avec une interface DCOP
-Comment[fy]=Organizer mei in DCOP-ynterface
-Comment[gl]=Organizador con interface DCOP
-Comment[he]=ארגונים עם ממשק DCOP
-Comment[hi]=डीकॉप इंटरफेस सहित आर्गेनाइज़र
-Comment[hu]=Határidőnapló DCOP-felülettel
-Comment[is]=Skipuleggjari með DCOP viðmóti
-Comment[it]=Organizer con un'interfaccia DCOP
-Comment[ja]=DCOP インターフェースを持つオーガナイザ
-Comment[kk]=DCOP интерфейсті Ұйымдастырғыш
-Comment[km]=កម្មវិធី​រៀបចំ​ដែល​មាន​ចំណុច​ប្រទាក់ DCOP
-Comment[lt]=Tvarkyklė su DCOP sąsaja
-Comment[mk]=Организатор со DCOP-интерфејс
-Comment[ms]=Penyusun dengan antara muka DCOP
-Comment[nb]=Organizer med DCOP-grensesnitt
-Comment[nds]=Mötenkalenner mit DCOP-Koppelsteed
-Comment[ne]=DCOP इन्टरफेसको आयोजक
-Comment[nl]=Organizer met een DCOP-interface
-Comment[nn]=Organisator med eit DCOP-grensesnitt
-Comment[pl]=Organizator z interfejsem DCOP
-Comment[pt]=Organizador com uma interface de DCOP
-Comment[pt_BR]=Organizador com uma interface DCOP
-Comment[ro]=Organizator cu interfaţă DCOP
-Comment[ru]=Органайзер с интерфейсом DCOP
-Comment[sk]=Organizér s DCOP rozhraním
-Comment[sl]=Oragnizator z vmesnikom DCOP
-Comment[sr]=Организатор са DCOP интерфејсом
-Comment[sr@Latn]=Organizator sa DCOP interfejsom
-Comment[sv]=Filofax med DCOP-gränssnitt
-Comment[ta]=DCOP முகப்பு அமைப்பாளர்
-Comment[tg]=Органайзер бо интерфейси DCOP
-Comment[tr]=DCOP arayüzü ile Organizer
-Comment[uk]=Тижневик з інтерфейсом DCOP
-Comment[zh_CN]=具有 DCOP 接口的 PDA
-Comment[zh_TW]=有 DCOP 介面的 Organizer
diff --git a/korganizer/eventarchiver.h b/korganizer/eventarchiver.h
index 8fb99ab9..f6b02477 100644
--- a/korganizer/eventarchiver.h
+++ b/korganizer/eventarchiver.h
@@ -46,7 +46,7 @@ using namespace KCal;
*/
class EventArchiver : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/korganizer/exportwebdialog.cpp b/korganizer/exportwebdialog.cpp
index 156ed702..a6b09b78 100644
--- a/korganizer/exportwebdialog.cpp
+++ b/korganizer/exportwebdialog.cpp
@@ -81,8 +81,8 @@ ExportWebDialog::ExportWebDialog( HTMLExportSettings *settings, TQWidget *parent
// setupFreeBusyPage();
// setupAdvancedPage();
- connect( this, TQT_SIGNAL( user1Clicked() ), TQT_SLOT( slotOk() ) );
- connect( this, TQT_SIGNAL( cancelClicked() ), TQT_SLOT( reject() ) );
+ connect( this, TQ_SIGNAL( user1Clicked() ), TQ_SLOT( slotOk() ) );
+ connect( this, TQ_SIGNAL( cancelClicked() ), TQ_SLOT( reject() ) );
readConfig();
updateState();
@@ -149,9 +149,9 @@ void ExportWebDialog::setupGeneralPage()
topLayout->addWidget( typeGroup );
// addWidBool( mSettings->weekViewItem(), typeGroup );
mMonthViewCheckBox = addWidBool( mSettings->monthViewItem(), typeGroup )->checkBox();
- connect( mMonthViewCheckBox, TQT_SIGNAL(toggled(bool)), TQT_SLOT(updateState()) );
+ connect( mMonthViewCheckBox, TQ_SIGNAL(toggled(bool)), TQ_SLOT(updateState()) );
mEventListCheckBox = addWidBool( mSettings->eventViewItem(), typeGroup )->checkBox();
- connect( mEventListCheckBox, TQT_SIGNAL(toggled(bool)), TQT_SLOT(updateState()) );
+ connect( mEventListCheckBox, TQ_SIGNAL(toggled(bool)), TQ_SLOT(updateState()) );
addWidBool( mSettings->todoViewItem(), typeGroup );
// addWidBool( mSettings->journalViewItem(), typeGroup );
// addWidBool( mSettings->freeBusyViewItem(), typeGroup );
@@ -162,8 +162,8 @@ void ExportWebDialog::setupGeneralPage()
topLayout->addWidget(destGroup);
KPrefsWidPath *pathWid = addWidPath( mSettings->outputFileItem(),
destGroup, "text/html", KFile::File );
- connect( pathWid->urlRequester(), TQT_SIGNAL( textChanged( const TQString & ) ),
- TQT_SLOT( slotTextChanged( const TQString & ) ) );
+ connect( pathWid->urlRequester(), TQ_SIGNAL( textChanged( const TQString & ) ),
+ TQ_SLOT( slotTextChanged( const TQString & ) ) );
topLayout->addStretch( 1 );
}
diff --git a/korganizer/exportwebdialog.h b/korganizer/exportwebdialog.h
index d3f77ff8..79ca87c1 100644
--- a/korganizer/exportwebdialog.h
+++ b/korganizer/exportwebdialog.h
@@ -37,7 +37,7 @@ using namespace KCal;
*/
class ExportWebDialog : public KDialogBase, public KPrefsWidManager
{
- Q_OBJECT
+ TQ_OBJECT
public:
ExportWebDialog( HTMLExportSettings *settings, TQWidget *parent = 0,
diff --git a/korganizer/filteredit_base.ui b/korganizer/filteredit_base.ui
index d0f43c94..131b6536 100644
--- a/korganizer/filteredit_base.ui
+++ b/korganizer/filteredit_base.ui
@@ -234,9 +234,6 @@
<property name="text">
<string>Show all except selected</string>
</property>
- <property name="accel">
- <string></string>
- </property>
<property name="buttonGroupId">
<number>1</number>
</property>
@@ -251,9 +248,6 @@
<property name="text">
<string>Show only selected</string>
</property>
- <property name="accel">
- <string></string>
- </property>
<property name="buttonGroupId">
<number>0</number>
</property>
@@ -268,9 +262,6 @@
<property name="text">
<string>Change...</string>
</property>
- <property name="accel">
- <string></string>
- </property>
</widget>
</grid>
</widget>
@@ -281,9 +272,6 @@
<property name="text">
<string>Hide to-dos not assigned to me</string>
</property>
- <property name="accel">
- <string></string>
- </property>
<property name="whatsThis" stdset="0">
<string>This option hides all to-dos from your list which are assigned to someone else.&lt;br&gt;
Only to-dos which have least one attendee will be checked. If you are not in the list of attendees the to-do will be hidden.</string>
@@ -309,9 +297,9 @@ Only to-dos which have least one attendee will be checked. If you are not in th
<slot>setEnabled(bool)</slot>
</connection>
</connections>
-<Q_SLOTS>
+<slots>
<slot>updateFilter()</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
<includes>
<include location="global" impldecl="in implementation">knuminput.h</include>
diff --git a/korganizer/filtereditdialog.cpp b/korganizer/filtereditdialog.cpp
index 74f5a48c..6a2ef703 100644
--- a/korganizer/filtereditdialog.cpp
+++ b/korganizer/filtereditdialog.cpp
@@ -53,11 +53,11 @@ FilterEditDialog::FilterEditDialog( TQPtrList<CalFilter> *filters,
{
setMainWidget( mFilterEdit = new FilterEdit(filters, this));
- connect(mFilterEdit, TQT_SIGNAL(dataConsistent(bool)),
- TQT_SLOT(setDialogConsistent(bool)));
+ connect(mFilterEdit, TQ_SIGNAL(dataConsistent(bool)),
+ TQ_SLOT(setDialogConsistent(bool)));
updateFilterList();
- connect( mFilterEdit, TQT_SIGNAL( editCategories() ), TQT_SIGNAL( editCategories() ) );
- connect( mFilterEdit, TQT_SIGNAL( filterChanged() ), TQT_SIGNAL( filterChanged() ) );
+ connect( mFilterEdit, TQ_SIGNAL( editCategories() ), TQ_SIGNAL( editCategories() ) );
+ connect( mFilterEdit, TQ_SIGNAL( filterChanged() ), TQ_SIGNAL( filterChanged() ) );
}
FilterEditDialog::~FilterEditDialog()
@@ -99,11 +99,11 @@ FilterEdit::FilterEdit(TQPtrList<CalFilter> *filters, TQWidget *parent)
TQWhatsThis::add( mNewButton, i18n( "Press this button to define a new filter." ) );
TQWhatsThis::add( mDeleteButton, i18n( "Press this button to remove the currently active filter." ) );
- connect( mRulesList, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(filterSelected()) );
- connect( mNewButton, TQT_SIGNAL( clicked() ), TQT_SLOT( bNewPressed() ) );
- connect( mDeleteButton, TQT_SIGNAL( clicked() ), TQT_SLOT( bDeletePressed() ) );
- connect( mNameLineEdit, TQT_SIGNAL( textChanged(const TQString &) ), TQT_SLOT( updateSelectedName(const TQString &) ) );
- connect( mCatEditButton, TQT_SIGNAL( clicked() ), TQT_SLOT( editCategorySelection() ) );
+ connect( mRulesList, TQ_SIGNAL(selectionChanged()), this, TQ_SLOT(filterSelected()) );
+ connect( mNewButton, TQ_SIGNAL( clicked() ), TQ_SLOT( bNewPressed() ) );
+ connect( mDeleteButton, TQ_SIGNAL( clicked() ), TQ_SLOT( bDeletePressed() ) );
+ connect( mNameLineEdit, TQ_SIGNAL( textChanged(const TQString &) ), TQ_SLOT( updateSelectedName(const TQString &) ) );
+ connect( mCatEditButton, TQ_SIGNAL( clicked() ), TQ_SLOT( editCategorySelection() ) );
}
FilterEdit::~FilterEdit() {
@@ -231,10 +231,10 @@ void FilterEdit::editCategorySelection()
if ( !mCategorySelectDialog ) {
mCategorySelectDialog = new KPIM::CategorySelectDialog( KOPrefs::instance(), this, "filterCatSelect" );
connect( mCategorySelectDialog,
- TQT_SIGNAL( categoriesSelected( const TQStringList & ) ),
- TQT_SLOT( updateCategorySelection( const TQStringList & ) ) );
- connect( mCategorySelectDialog, TQT_SIGNAL( editCategories() ),
- TQT_SIGNAL( editCategories() ) );
+ TQ_SIGNAL( categoriesSelected( const TQStringList & ) ),
+ TQ_SLOT( updateCategorySelection( const TQStringList & ) ) );
+ connect( mCategorySelectDialog, TQ_SIGNAL( editCategories() ),
+ TQ_SIGNAL( editCategories() ) );
}
mCategorySelectDialog->setSelected( current->categoryList() );
diff --git a/korganizer/filtereditdialog.h b/korganizer/filtereditdialog.h
index 73a0df8e..3c19d613 100644
--- a/korganizer/filtereditdialog.h
+++ b/korganizer/filtereditdialog.h
@@ -44,7 +44,7 @@ using namespace KCal;
*/
class FilterEditDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
FilterEditDialog(TQPtrList<CalFilter> *,TQWidget *parent=0, const char *name=0);
@@ -69,7 +69,7 @@ class FilterEditDialog : public KDialogBase
class FilterEdit : public FilterEdit_base
{
- Q_OBJECT
+ TQ_OBJECT
public:
FilterEdit(TQPtrList<CalFilter> *filters, TQWidget *parent);
diff --git a/korganizer/freebusymanager.cpp b/korganizer/freebusymanager.cpp
index 9aa7ed82..8f41a837 100644
--- a/korganizer/freebusymanager.cpp
+++ b/korganizer/freebusymanager.cpp
@@ -82,10 +82,10 @@ FreeBusyDownloadJob::FreeBusyDownloadJob( const TQString &email, const KURL &url
KOrg::MainWindow *korg = ActionManager::findInstance( KURL() );
job->setWindow( korg->topLevelWidget() );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotResult( TDEIO::Job * ) ) );
- connect( job, TQT_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
- TQT_SLOT( slotData( TDEIO::Job *, const TQByteArray & ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
+ TQ_SLOT( slotData( TDEIO::Job *, const TQByteArray & ) ) );
TDEIO::Scheduler::scheduleJob( job );
}
@@ -339,8 +339,8 @@ void FreeBusyManager::publishFreeBusy()
KOrg::MainWindow *korg = ActionManager::findInstance( KURL() );
job->setWindow( korg->topLevelWidget() );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotUploadFreeBusyResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotUploadFreeBusyResult( TDEIO::Job * ) ) );
}
}
@@ -406,15 +406,15 @@ bool FreeBusyManager::processRetrieveQueue()
FreeBusyDownloadJob *job = new FreeBusyDownloadJob( email, sourceURL, this,
"freebusy_download_job" );
- connect( job, TQT_SIGNAL( freeBusyDownloaded( KCal::FreeBusy *,
+ connect( job, TQ_SIGNAL( freeBusyDownloaded( KCal::FreeBusy *,
const TQString & ) ),
- TQT_SIGNAL( freeBusyRetrieved( KCal::FreeBusy *, const TQString & ) ) );
- connect( job, TQT_SIGNAL( freeBusyDownloaded( KCal::FreeBusy *,
+ TQ_SIGNAL( freeBusyRetrieved( KCal::FreeBusy *, const TQString & ) ) );
+ connect( job, TQ_SIGNAL( freeBusyDownloaded( KCal::FreeBusy *,
const TQString & ) ),
- TQT_SLOT( processRetrieveQueue() ) );
+ TQ_SLOT( processRetrieveQueue() ) );
- connect( job, TQT_SIGNAL( freeBusyDownloadError( const TQString& ) ),
- this, TQT_SLOT( slotFreeBusyDownloadError( const TQString& ) ) );
+ connect( job, TQ_SIGNAL( freeBusyDownloadError( const TQString& ) ),
+ this, TQ_SLOT( slotFreeBusyDownloadError( const TQString& ) ) );
return true;
}
diff --git a/korganizer/freebusymanager.h b/korganizer/freebusymanager.h
index 124dbdb3..6650dc4d 100644
--- a/korganizer/freebusymanager.h
+++ b/korganizer/freebusymanager.h
@@ -54,7 +54,7 @@ class FreeBusyManager;
*/
class FreeBusyDownloadJob : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
FreeBusyDownloadJob( const TQString &email, const KURL &url,
@@ -79,7 +79,7 @@ class FreeBusyDownloadJob : public TQObject
class FreeBusyManager : public TQObject, public KCal::FreeBusyCache
{
- Q_OBJECT
+ TQ_OBJECT
public:
FreeBusyManager( TQObject *parent, const char *name );
diff --git a/korganizer/freebusyurldialog.h b/korganizer/freebusyurldialog.h
index 9447a7f1..a0363ce8 100644
--- a/korganizer/freebusyurldialog.h
+++ b/korganizer/freebusyurldialog.h
@@ -35,7 +35,7 @@ class Attendee;
class FreeBusyUrlDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
FreeBusyUrlDialog( KCal::Attendee *, TQWidget *parent = 0,
@@ -50,7 +50,7 @@ class FreeBusyUrlDialog : public KDialogBase
class FreeBusyUrlWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
FreeBusyUrlWidget( KCal::Attendee *, TQWidget *parent = 0,
diff --git a/korganizer/history.h b/korganizer/history.h
index d0b7e575..db6c5f21 100644
--- a/korganizer/history.h
+++ b/korganizer/history.h
@@ -38,7 +38,7 @@ namespace KOrg {
class History : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
History( KCal::Calendar * );
diff --git a/korganizer/importdialog.cpp b/korganizer/importdialog.cpp
index 4272f5da..6edc9f71 100644
--- a/korganizer/importdialog.cpp
+++ b/korganizer/importdialog.cpp
@@ -50,7 +50,7 @@ ImportDialog::ImportDialog( const KURL &url, TQWidget *parent, bool isPart )
topLayout->addWidget( new TQLabel( txt, topFrame ) );
- TQButtonGroup *radioBox = new TQButtonGroup( 1, Qt::Horizontal, topFrame );
+ TQButtonGroup *radioBox = new TQButtonGroup( 1, TQt::Horizontal, topFrame );
radioBox->setFlat( true );
topLayout->addWidget( radioBox );
diff --git a/korganizer/importdialog.h b/korganizer/importdialog.h
index f6161ea5..c70633b8 100644
--- a/korganizer/importdialog.h
+++ b/korganizer/importdialog.h
@@ -34,7 +34,7 @@ class TQRadioButton;
class ImportDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
ImportDialog( const KURL &url, TQWidget *parent, bool isPart );
diff --git a/korganizer/incidencechanger.h b/korganizer/incidencechanger.h
index ee684e7c..2a5235bf 100644
--- a/korganizer/incidencechanger.h
+++ b/korganizer/incidencechanger.h
@@ -32,7 +32,7 @@ namespace KCal {
class IncidenceChanger : public KOrg::IncidenceChangerBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
IncidenceChanger( Calendar *cal, TQObject *parent )
diff --git a/korganizer/interfaces/calendar/CMakeLists.txt b/korganizer/interfaces/calendar/CMakeLists.txt
index fe5296fe..1e994d72 100644
--- a/korganizer/interfaces/calendar/CMakeLists.txt
+++ b/korganizer/interfaces/calendar/CMakeLists.txt
@@ -13,6 +13,8 @@ install( FILES
plugin.h calendardecoration.h
DESTINATION ${INCLUDE_INSTALL_DIR}/calendar )
-install( FILES
- calendarplugin.desktop calendardecoration.desktop
- DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE calendarplugin.desktop calendardecoration.desktop
+ DESTINATION ${SERVICETYPES_INSTALL_DIR}
+ PO_DIR korganizer-desktops
+)
diff --git a/korganizer/interfaces/calendar/calendardecoration.desktop b/korganizer/interfaces/calendar/calendardecoration.desktop
index 95d49836..8390a6b0 100644
--- a/korganizer/interfaces/calendar/calendardecoration.desktop
+++ b/korganizer/interfaces/calendar/calendardecoration.desktop
@@ -1,65 +1,5 @@
[Desktop Entry]
Type=ServiceType
X-TDE-ServiceType=Calendar/Decoration
+
Comment=Calendar Decoration Plugin
-Comment[af]=Kalender Versiering Inplak
-Comment[bg]=Приставка за декорация на календара
-Comment[br]=Lugent kinkladur an deiziadur
-Comment[bs]=Dodatak za ukrašavanje kalendara
-Comment[ca]=Endollable de decoració del calendari
-Comment[cs]=Modul dekorace kalendáře
-Comment[cy]=Ategyn Addurniad Calendr
-Comment[da]=Calendar-dekorations-plugin
-Comment[de]=Dekoration für den Kalender
-Comment[el]=Πρόσθετο διακόσμησης ημερολογίου
-Comment[eo]=Kalendarornama kromaĵo
-Comment[es]=Plugin de decoración de calendario
-Comment[et]=Kalendri dekoratsiooni plugin
-Comment[eu]=Egutegi apainketa plugin-a
-Comment[fa]=وصلۀ تزئین تقویم
-Comment[fi]=Kalenteritekstin koristeluliitännäinen
-Comment[fr]=Module de décoration d'agenda
-Comment[fy]=Agindadekoraasjeplugin
-Comment[gl]=Extensión para a Decoración do Calendario
-Comment[he]=תוסף קישוטי לוח שנה
-Comment[hi]=कैलेन्डर सजावट प्लगइन
-Comment[hr]=Dodatak za dekoraciju kalendara
-Comment[hu]=Naptármegjelenési bővítőmodul
-Comment[is]=Íforrit til að skreyta texta dagatals
-Comment[it]=Plugin di decorazione del calendario
-Comment[ja]=カレンダー装飾プラグイン
-Comment[kk]=Күнтізбені безендіру модулі
-Comment[km]=កម្មវិធី​ជំនួយ​សម្រាប់​តុបតែង​ប្រតិទិន
-Comment[lt]=vCalendar dekoracijų priedas
-Comment[lv]=Kalendāra Dekorāciju Iespraudnis
-Comment[mk]=Приклучок за декорација на календар
-Comment[ms]=Plugin Hiasan Kalendar
-Comment[mt]=Plagin ta' dekorazzjoni tal-kalendarju
-Comment[nb]=Calendar dekorasjonsprogramtillegg
-Comment[nds]=Dekoratschoon för den Kalenner
-Comment[ne]=क्यालेन्डर सजावट प्लगइन
-Comment[nl]=Agendadecoratieplugin
-Comment[nn]=Tilleggsmodul for kalenderpynt
-Comment[nso]=Plugin ya Kgabiso ya Tshupamabaka
-Comment[pl]=Wtyczka do dekoracji kalendarza
-Comment[pt]='Plugin' de Decoração do Calendário
-Comment[pt_BR]=Plug-in para Decoração do Calendário
-Comment[ro]=Modul decorare calendar
-Comment[ru]=Оформление календаря
-Comment[se]=Kaleandarčiŋaid lassemoduvla
-Comment[sk]=Modul pre skrášlenie kalendára
-Comment[sl]=Vstavek besedilnega okrasa za Koledar
-Comment[sr]=Прикључак за декорацију календара
-Comment[sr@Latn]=Priključak za dekoraciju kalendara
-Comment[sv]=Insticksprogram för kalenderdekoration
-Comment[ta]=நாள்காட்டி அலங்கார சொருகுப்பொருள்
-Comment[tg]=Модул барои ороиш додани тақвимот
-Comment[th]=โปรแกรมเสริมตกแต่งบันทึกประจำวัน
-Comment[tr]=Takvim Dekorasyon Eklentisi
-Comment[uk]=Втулок прикрас календаря
-Comment[ven]=Pulagini yo khavhisiwaho ya khalenda
-Comment[vi]=Plugin phối trí lịch
-Comment[xh]=Ikhalenda Yohombiso lwe Plugin
-Comment[zh_CN]=日历装饰插件
-Comment[zh_TW]=行事曆文字裝飾外掛程式
-Comment[zu]=Ikhalenda Yeplagi Yokuhlobisa
diff --git a/korganizer/interfaces/calendar/calendarplugin.desktop b/korganizer/interfaces/calendar/calendarplugin.desktop
index 21055f7a..25224bba 100644
--- a/korganizer/interfaces/calendar/calendarplugin.desktop
+++ b/korganizer/interfaces/calendar/calendarplugin.desktop
@@ -1,72 +1,8 @@
[Desktop Entry]
Type=ServiceType
X-TDE-ServiceType=Calendar/Plugin
+
Comment=Calendar Plugin
-Comment[af]=Kalender Inplak
-Comment[az]=Təqvim Əlavəsi
-Comment[be]=Дапаўненне "Календар"
-Comment[bg]=Приставка за календар
-Comment[br]=Lugent an deiziadur
-Comment[bs]=Dodatak za kalendar
-Comment[ca]=Endollable calendari
-Comment[cs]=Kalendářový modul
-Comment[cy]=Ategyn Calendr
-Comment[da]=Calendar-plugin
-Comment[de]=Kalender-Modul
-Comment[el]=Πρόσθετο ημερολογίου
-Comment[eo]=Kalendaro-kromaĵo
-Comment[es]=Plugin de calendario
-Comment[et]=Kalendriplugin
-Comment[eu]=Egutegi plugin-a
-Comment[fa]=وصلۀ تقویم
-Comment[fi]=Kalenteriliitännäinen
-Comment[fr]=Module d'agenda
-Comment[fy]=Agindaplugin
-Comment[gl]=Extensión de Calendario
-Comment[he]=תוסף לוח שנה
-Comment[hi]=कैलेन्डर प्लगइन
-Comment[hr]=Kalendar dodatak
-Comment[hu]=Naptárkezelő bővítőmodul
-Comment[is]=Dagatals íforrit
-Comment[it]=Plugin calendario
-Comment[ja]=カレンダープラグイン
-Comment[kk]=Күнтізбе модулі
-Comment[km]=កម្មវិធី​ជំនួយ​ប្រតិទិន
-Comment[ko]=달력 플러그인
-Comment[lt]=iCalendar priedas
-Comment[lv]=Kalendāra Iespraudnis
-Comment[mk]=Приклучок за календар
-Comment[ms]=Plugin Kalendar
-Comment[mt]=Plagin tal-kalendarju
-Comment[nb]=Calendar-programtillegg
-Comment[nds]=Kalenner-Moduul
-Comment[ne]=क्यालेन्डर प्लगइन
-Comment[nl]=Agendaplugin
-Comment[nn]=Kalendermodul
-Comment[nso]=Plugin ya Tshupamabaka
-Comment[pl]=Wtyczka do kalendarza
-Comment[pt]='Plugin' de Calendário
-Comment[pt_BR]=Plug-in de Calendário
-Comment[ro]=Modul calendar
-Comment[ru]=Модуль календаря
-Comment[se]=Kaleandarlassemoduvla
-Comment[sk]=Modul Calendar
-Comment[sl]=Vstavek za Koledar
-Comment[sr]=Прикључак за календар
-Comment[sr@Latn]=Priključak za kalendar
-Comment[sv]=Insticksprogram för kalender
-Comment[ta]=நாள்காட்டி சொருகுப்பொருள்
-Comment[tg]=Модул барои тақвимот
-Comment[th]=โปรแกรมเสริมบันทึกประจำวัน
-Comment[tr]=Takvim Eklentisi
-Comment[uk]=Втулок календаря
-Comment[uz]=Календар плагини
-Comment[ven]=U pulaga ha khalenda
-Comment[vi]=Plugin lịch
-Comment[xh]=Ikhalenda ye Plugin
-Comment[zh_CN]=日历插件
-Comment[zh_TW]=行事曆外掛程式
-Comment[zu]=Iplagi Yekhalanda
[PropertyDef::X-TDE-KOrganizer-HasSettings]
Type=bool
diff --git a/korganizer/interfaces/korganizer/CMakeLists.txt b/korganizer/interfaces/korganizer/CMakeLists.txt
index 6b5a45f2..1909d0a1 100644
--- a/korganizer/interfaces/korganizer/CMakeLists.txt
+++ b/korganizer/interfaces/korganizer/CMakeLists.txt
@@ -13,6 +13,8 @@ install( FILES
part.h baseview.h calendarviewbase.h mainwindow.h corehelper.h printplugin.h
DESTINATION ${INCLUDE_INSTALL_DIR}/korganizer )
-install( FILES
- korganizerpart.desktop korgprintplugin.desktop
- DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE korganizerpart.desktop korgprintplugin.desktop
+ DESTINATION ${SERVICETYPES_INSTALL_DIR}
+ PO_DIR korganizer-desktops
+)
diff --git a/korganizer/interfaces/korganizer/baseview.h b/korganizer/interfaces/korganizer/baseview.h
index a8ca0c58..ce3e2145 100644
--- a/korganizer/interfaces/korganizer/baseview.h
+++ b/korganizer/interfaces/korganizer/baseview.h
@@ -29,7 +29,7 @@
#include <tdelocale.h>
#include <kdebug.h>
#include <tdemessagebox.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "korganizer/incidencechangerbase.h"
#include "printplugin.h"
@@ -58,7 +58,7 @@ namespace KOrg {
*/
class KDE_EXPORT BaseView : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/korganizer/interfaces/korganizer/incidencechangerbase.h b/korganizer/interfaces/korganizer/incidencechangerbase.h
index ba26ce02..730e2936 100644
--- a/korganizer/interfaces/korganizer/incidencechangerbase.h
+++ b/korganizer/interfaces/korganizer/incidencechangerbase.h
@@ -38,7 +38,7 @@ namespace KOrg {
class IncidenceChangerBase : public TQObject
{
-Q_OBJECT
+TQ_OBJECT
public:
IncidenceChangerBase( Calendar*cal, TQObject *parent = 0 ) :
diff --git a/korganizer/interfaces/korganizer/korganizerpart.desktop b/korganizer/interfaces/korganizer/korganizerpart.desktop
index dda4476b..c840eb56 100644
--- a/korganizer/interfaces/korganizer/korganizerpart.desktop
+++ b/korganizer/interfaces/korganizer/korganizerpart.desktop
@@ -1,62 +1,8 @@
[Desktop Entry]
Type=ServiceType
X-TDE-ServiceType=KOrganizer/Part
+
Comment=KOrganizer Part
-Comment[af]=Korganizer Deel
-Comment[be]=Частка "K Арганізатар"
-Comment[bg]=Модул KOrganizer
-Comment[br]=Perzh KOrganizer
-Comment[bs]=KOrganizer dio
-Comment[ca]=Part de KOrganizer
-Comment[cy]=KTrefnydd Part
-Comment[da]=KOrganizer-del
-Comment[de]=KOrganizer-Komponente
-Comment[eo]=Organizilo-parto
-Comment[es]=Parte de KOrganizer
-Comment[et]=KOrganizeri komponent
-Comment[eu]=KOrganizer zatia
-Comment[fa]=بخش KOrganizer
-Comment[fr]=Composant KOrganizer
-Comment[gl]=Parte de KOrganizer
-Comment[he]=רכיב KOrganizer
-Comment[hi]=के-आर्गेनाइज़र हिस्सा
-Comment[hr]=KOrganizer komponenta
-Comment[hu]=KOrganizer objektum
-Comment[is]=KOrganizer hluti
-Comment[it]=Parte di KOrganizer
-Comment[ja]=KOrganizer パート
-Comment[kk]=KOrganizer бөлшегі
-Comment[km]=ផ្នែក​របស់ KOrganizer
-Comment[lt]=KOrganizer dalis
-Comment[lv]=KOrganizer Daļa
-Comment[mk]=Дел од КОрганизатор
-Comment[ms]=Bahagian KOrganizer
-Comment[mt]=Parti ta' KOrganizer
-Comment[nb]=KOrganizerdel
-Comment[nds]=KOrganizer-Komponent
-Comment[ne]=केडीई आयोजक भाग
-Comment[nn]=KOrganizer-del
-Comment[nso]=Seripa sa KMokopanyi
-Comment[pl]=Moduł KOrganizera
-Comment[pt]=Componente do KOrganizer
-Comment[pt_BR]=Componente do KOrganizer
-Comment[ro]=Componentă KOrganizer
-Comment[ru]=Компонент органайзера
-Comment[se]=KOrganizer-oassi
-Comment[sk]=Part KOrganizer
-Comment[sl]=Del KOrganizerja
-Comment[sr]=Део KOrganizer-а
-Comment[sr@Latn]=Deo KOrganizer-a
-Comment[sv]=Korganizer-del
-Comment[ta]=கேஅமைப்பாளர் பகுதி
-Comment[tg]=Қисмати органайзер
-Comment[tr]=KOrganizer Parçası
-Comment[uk]=Складова KOrganizer
-Comment[ven]=Tshipida tsha mudzudzanyi wa K
-Comment[xh]=Indawana yeKOrganizer
-Comment[zh_CN]=KOrganizer 部件
-Comment[zh_TW]=KOrganizer 組件
-Comment[zu]=KUmgqugquzeleli Wengxenye
[PropertyDef::X-TDE-KOrganizer-HasSettings]
Type=bool
diff --git a/korganizer/interfaces/korganizer/korgprintplugin.desktop b/korganizer/interfaces/korganizer/korgprintplugin.desktop
index 80a2a8a9..8004253c 100644
--- a/korganizer/interfaces/korganizer/korgprintplugin.desktop
+++ b/korganizer/interfaces/korganizer/korgprintplugin.desktop
@@ -1,62 +1,8 @@
[Desktop Entry]
Type=ServiceType
X-TDE-ServiceType=KOrganizer/PrintPlugin
+
Comment=KOrganizer Part
-Comment[af]=Korganizer Deel
-Comment[be]=Частка "K Арганізатар"
-Comment[bg]=Модул KOrganizer
-Comment[br]=Perzh KOrganizer
-Comment[bs]=KOrganizer dio
-Comment[ca]=Part de KOrganizer
-Comment[cy]=KTrefnydd Part
-Comment[da]=KOrganizer-del
-Comment[de]=KOrganizer-Komponente
-Comment[eo]=Organizilo-parto
-Comment[es]=Parte de KOrganizer
-Comment[et]=KOrganizeri komponent
-Comment[eu]=KOrganizer zatia
-Comment[fa]=بخش KOrganizer
-Comment[fr]=Composant KOrganizer
-Comment[gl]=Parte de KOrganizer
-Comment[he]=רכיב KOrganizer
-Comment[hi]=के-आर्गेनाइज़र हिस्सा
-Comment[hr]=KOrganizer komponenta
-Comment[hu]=KOrganizer objektum
-Comment[is]=KOrganizer hluti
-Comment[it]=Parte di KOrganizer
-Comment[ja]=KOrganizer パート
-Comment[kk]=KOrganizer бөлшегі
-Comment[km]=ផ្នែក​របស់ KOrganizer
-Comment[lt]=KOrganizer dalis
-Comment[lv]=KOrganizer Daļa
-Comment[mk]=Дел од КОрганизатор
-Comment[ms]=Bahagian KOrganizer
-Comment[mt]=Parti ta' KOrganizer
-Comment[nb]=KOrganizerdel
-Comment[nds]=KOrganizer-Komponent
-Comment[ne]=केडीई आयोजक भाग
-Comment[nn]=KOrganizer-del
-Comment[nso]=Seripa sa KMokopanyi
-Comment[pl]=Moduł KOrganizera
-Comment[pt]=Componente do KOrganizer
-Comment[pt_BR]=Componente do KOrganizer
-Comment[ro]=Componentă KOrganizer
-Comment[ru]=Компонент органайзера
-Comment[se]=KOrganizer-oassi
-Comment[sk]=Part KOrganizer
-Comment[sl]=Del KOrganizerja
-Comment[sr]=Део KOrganizer-а
-Comment[sr@Latn]=Deo KOrganizer-a
-Comment[sv]=Korganizer-del
-Comment[ta]=கேஅமைப்பாளர் பகுதி
-Comment[tg]=Қисмати органайзер
-Comment[tr]=KOrganizer Parçası
-Comment[uk]=Складова KOrganizer
-Comment[ven]=Tshipida tsha mudzudzanyi wa K
-Comment[xh]=Indawana yeKOrganizer
-Comment[zh_CN]=KOrganizer 部件
-Comment[zh_TW]=KOrganizer 組件
-Comment[zu]=KUmgqugquzeleli Wengxenye
[PropertyDef::X-TDE-KOrganizer-HasSettings]
Type=bool
diff --git a/korganizer/interfaces/korganizer/part.h b/korganizer/interfaces/korganizer/part.h
index 0e723048..cb0b6884 100644
--- a/korganizer/interfaces/korganizer/part.h
+++ b/korganizer/interfaces/korganizer/part.h
@@ -39,7 +39,7 @@ class Part : public KParts::Part
typedef TQPtrList<Part> List;
Part( MainWindow *parent, const char *name )
- : KParts::Part( parent?(TQT_TQOBJECT(parent->topLevelWidget())):0, name ), mMainWindow( parent ) {}
+ : KParts::Part( parent?(parent->topLevelWidget()):0, name ), mMainWindow( parent ) {}
virtual ~Part() {}
diff --git a/korganizer/journalentry.cpp b/korganizer/journalentry.cpp
index 0ceec954..08d57be5 100644
--- a/korganizer/journalentry.cpp
+++ b/korganizer/journalentry.cpp
@@ -75,8 +75,8 @@ JournalDateEntry::JournalDateEntry( Calendar *calendar, TQWidget *parent ) :
mTitle = new JournalTitleLable( this );
mTitle->setMargin(2);
mTitle->setSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Fixed );
- connect( mTitle, TQT_SIGNAL( linkClicked( const TQString & ) ),
- this, TQT_SLOT( emitNewJournal() ) );
+ connect( mTitle, TQ_SIGNAL( linkClicked( const TQString & ) ),
+ this, TQ_SLOT( emitNewJournal() ) );
}
JournalDateEntry::~JournalDateEntry()
@@ -120,16 +120,16 @@ void JournalDateEntry::addJournal( Journal *j )
entry->setIncidenceChanger( mChanger );
mEntries.insert( j, entry );
- connect( this, TQT_SIGNAL( setIncidenceChangerSignal( IncidenceChangerBase * ) ),
- entry, TQT_SLOT( setIncidenceChanger( IncidenceChangerBase * ) ) );
- connect( this, TQT_SIGNAL( setDateSignal( const TQDate & ) ),
- entry, TQT_SLOT( setDate( const TQDate & ) ) );
- connect( this, TQT_SIGNAL( flushEntries() ),
- entry, TQT_SLOT( flushEntry() ) );
- connect( entry, TQT_SIGNAL( deleteIncidence( Incidence* ) ),
- this, TQT_SIGNAL( deleteIncidence( Incidence* ) ) );
- connect( entry, TQT_SIGNAL( editIncidence( Incidence*, const TQDate& ) ),
- this, TQT_SIGNAL( editIncidence( Incidence*, const TQDate& ) ) );
+ connect( this, TQ_SIGNAL( setIncidenceChangerSignal( IncidenceChangerBase * ) ),
+ entry, TQ_SLOT( setIncidenceChanger( IncidenceChangerBase * ) ) );
+ connect( this, TQ_SIGNAL( setDateSignal( const TQDate & ) ),
+ entry, TQ_SLOT( setDate( const TQDate & ) ) );
+ connect( this, TQ_SIGNAL( flushEntries() ),
+ entry, TQ_SLOT( flushEntry() ) );
+ connect( entry, TQ_SIGNAL( deleteIncidence( Incidence* ) ),
+ this, TQ_SIGNAL( deleteIncidence( Incidence* ) ) );
+ connect( entry, TQ_SIGNAL( editIncidence( Incidence*, const TQDate& ) ),
+ this, TQ_SIGNAL( editIncidence( Incidence*, const TQDate& ) ) );
}
Journal::List JournalDateEntry::journals() const
@@ -203,8 +203,8 @@ JournalEntry::JournalEntry( Journal* j, TQWidget *parent ) :
mLayout->addWidget( mTimeCheck, 0, 2 );
mTimeEdit = new KTimeEdit( this );
mLayout->addWidget( mTimeEdit, 0, 3 );
- connect( mTimeCheck, TQT_SIGNAL(toggled(bool)),
- this, TQT_SLOT(timeCheckBoxToggled(bool)) );
+ connect( mTimeCheck, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(timeCheckBoxToggled(bool)) );
TQWhatsThis::add( mTimeCheck, i18n("Determines whether this journal entry has "
"a time associated with it") );
TQWhatsThis::add( mTimeEdit, i18n( "Sets the time associated with this journal "
@@ -217,7 +217,7 @@ JournalEntry::JournalEntry( Journal* j, TQWidget *parent ) :
TQToolTip::add( mDeleteButton, i18n("Delete this journal entry") );
TQWhatsThis::add( mDeleteButton, i18n("Delete this journal entry") );
mLayout->addWidget( mDeleteButton, 0, 4 );
- connect( mDeleteButton, TQT_SIGNAL(pressed()), this, TQT_SLOT(deleteItem()) );
+ connect( mDeleteButton, TQ_SIGNAL(pressed()), this, TQ_SLOT(deleteItem()) );
mEditButton = new TQToolButton( this, "editButton" );
mEditButton->setPixmap( KOGlobals::self()->smallIcon( "edit" ) );
@@ -225,7 +225,7 @@ JournalEntry::JournalEntry( Journal* j, TQWidget *parent ) :
TQToolTip::add( mEditButton, i18n("Edit this journal entry") );
TQWhatsThis::add( mEditButton, i18n("Opens an editor dialog for this journal entry") );
mLayout->addWidget( mEditButton, 0, 5 );
- connect( mEditButton, TQT_SIGNAL(clicked()), this, TQT_SLOT( editItem() ) );
+ connect( mEditButton, TQ_SIGNAL(clicked()), this, TQ_SLOT( editItem() ) );
#ifndef KORG_NOPRINTER
mPrintButton = new TQToolButton( this, "printButton" );
@@ -234,15 +234,15 @@ JournalEntry::JournalEntry( Journal* j, TQWidget *parent ) :
TQToolTip::add( mPrintButton, i18n("Print this journal entry") );
TQWhatsThis::add( mPrintButton, i18n("Opens the print dialog for this journal entry") );
mLayout->addWidget( mPrintButton, 0, 6 );
- connect( mPrintButton, TQT_SIGNAL(clicked()), this, TQT_SLOT( printItem() ) );
+ connect( mPrintButton, TQ_SIGNAL(clicked()), this, TQ_SLOT( printItem() ) );
#endif
mEditor = new KTextEdit(this);
mLayout->addMultiCellWidget( mEditor, 1, 2, 0, 6 );
- connect( mTitleEdit, TQT_SIGNAL(textChanged( const TQString& )), TQT_SLOT(setDirty()) );
- connect( mTimeCheck, TQT_SIGNAL(toggled(bool)), TQT_SLOT(setDirty()) );
- connect( mTimeEdit, TQT_SIGNAL(timeChanged(TQTime)), TQT_SLOT(setDirty()) );
- connect( mEditor, TQT_SIGNAL(textChanged()), TQT_SLOT(setDirty()) );
+ connect( mTitleEdit, TQ_SIGNAL(textChanged( const TQString& )), TQ_SLOT(setDirty()) );
+ connect( mTimeCheck, TQ_SIGNAL(toggled(bool)), TQ_SLOT(setDirty()) );
+ connect( mTimeEdit, TQ_SIGNAL(timeChanged(TQTime)), TQ_SLOT(setDirty()) );
+ connect( mEditor, TQ_SIGNAL(textChanged()), TQ_SLOT(setDirty()) );
mEditor->installEventFilter(this);
@@ -283,7 +283,7 @@ void JournalEntry::printItem()
if ( mJournal ) {
KOCoreHelper helper;
CalPrinter printer( this, 0, &helper );
- connect( this, TQT_SIGNAL(configChanged()), &printer, TQT_SLOT(updateConfig()) );
+ connect( this, TQ_SIGNAL(configChanged()), &printer, TQ_SLOT(updateConfig()) );
Incidence::List selectedIncidences;
selectedIncidences.append( mJournal );
diff --git a/korganizer/journalentry.h b/korganizer/journalentry.h
index f74ab848..9988dbaf 100644
--- a/korganizer/journalentry.h
+++ b/korganizer/journalentry.h
@@ -48,7 +48,7 @@ namespace KCal {
using namespace KCal;
class JournalEntry : public TQWidget {
- Q_OBJECT
+ TQ_OBJECT
public:
typedef ListBase<JournalEntry> List;
@@ -113,7 +113,7 @@ class JournalEntry : public TQWidget {
class JournalDateEntry : public TQVBox {
- Q_OBJECT
+ TQ_OBJECT
public:
typedef ListBase<JournalDateEntry> List;
diff --git a/korganizer/kdatenavigator.cpp b/korganizer/kdatenavigator.cpp
index 230c992d..94f74a66 100644
--- a/korganizer/kdatenavigator.cpp
+++ b/korganizer/kdatenavigator.cpp
@@ -53,12 +53,12 @@ KDateNavigator::KDateNavigator( TQWidget *parent, const char *name )
mNavigatorBar = new NavigatorBar( this );
topLayout->addMultiCellWidget( mNavigatorBar, 0, 0, 0, 7 );
- connect( mNavigatorBar, TQT_SIGNAL( prevYearClicked() ), TQT_SIGNAL( prevYearClicked() ) );
- connect( mNavigatorBar, TQT_SIGNAL( prevMonthClicked() ), TQT_SIGNAL( prevMonthClicked() ) );
- connect( mNavigatorBar, TQT_SIGNAL( nextMonthClicked() ), TQT_SIGNAL( nextMonthClicked() ) );
- connect( mNavigatorBar, TQT_SIGNAL( nextYearClicked() ), TQT_SIGNAL( nextYearClicked() ) );
- connect( mNavigatorBar, TQT_SIGNAL( monthSelected( int ) ), TQT_SIGNAL( monthSelected( int ) ) );
- connect( mNavigatorBar, TQT_SIGNAL( yearSelected( int ) ), TQT_SIGNAL( yearSelected( int ) ) );
+ connect( mNavigatorBar, TQ_SIGNAL( prevYearClicked() ), TQ_SIGNAL( prevYearClicked() ) );
+ connect( mNavigatorBar, TQ_SIGNAL( prevMonthClicked() ), TQ_SIGNAL( prevMonthClicked() ) );
+ connect( mNavigatorBar, TQ_SIGNAL( nextMonthClicked() ), TQ_SIGNAL( nextMonthClicked() ) );
+ connect( mNavigatorBar, TQ_SIGNAL( nextYearClicked() ), TQ_SIGNAL( nextYearClicked() ) );
+ connect( mNavigatorBar, TQ_SIGNAL( monthSelected( int ) ), TQ_SIGNAL( monthSelected( int ) ) );
+ connect( mNavigatorBar, TQ_SIGNAL( yearSelected( int ) ), TQ_SIGNAL( yearSelected( int ) ) );
int i;
TQString generalFont = TDEGlobalSettings::generalFont().family();
@@ -84,13 +84,13 @@ KDateNavigator::KDateNavigator( TQWidget *parent, const char *name )
mDayMatrix = new KODayMatrix( this, "KDateNavigator::dayMatrix" );
- connect( mDayMatrix, TQT_SIGNAL( selected( const KCal::DateList & ) ),
- TQT_SIGNAL( datesSelected( const KCal::DateList & ) ) );
+ connect( mDayMatrix, TQ_SIGNAL( selected( const KCal::DateList & ) ),
+ TQ_SIGNAL( datesSelected( const KCal::DateList & ) ) );
- connect( mDayMatrix, TQT_SIGNAL( incidenceDropped( Incidence *, const TQDate & ) ),
- TQT_SIGNAL( incidenceDropped( Incidence *, const TQDate & ) ) );
- connect( mDayMatrix, TQT_SIGNAL( incidenceDroppedMove( Incidence * , const TQDate & ) ),
- TQT_SIGNAL( incidenceDroppedMove( Incidence *, const TQDate & ) ) );
+ connect( mDayMatrix, TQ_SIGNAL( incidenceDropped( Incidence *, const TQDate & ) ),
+ TQ_SIGNAL( incidenceDropped( Incidence *, const TQDate & ) ) );
+ connect( mDayMatrix, TQ_SIGNAL( incidenceDroppedMove( Incidence * , const TQDate & ) ),
+ TQ_SIGNAL( incidenceDroppedMove( Incidence *, const TQDate & ) ) );
topLayout->addMultiCellWidget( mDayMatrix, 2, 7, 1, 7 );
@@ -288,7 +288,7 @@ bool KDateNavigator::eventFilter( TQObject *o, TQEvent *e )
if ( e->type() == TQEvent::MouseButtonPress ) {
int i;
for( i = 0; i < 6; ++i ) {
- if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(mWeeknos[ i ]) ) {
+ if ( o == mWeeknos[ i ] ) {
TQDate weekstart = mDayMatrix->getDate( i * 7 );
emit weekClicked( weekstart );
break;
diff --git a/korganizer/kdatenavigator.h b/korganizer/kdatenavigator.h
index 11395138..8da31b02 100644
--- a/korganizer/kdatenavigator.h
+++ b/korganizer/kdatenavigator.h
@@ -44,7 +44,7 @@ class KODayMatrix;
class KDateNavigator: public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
public:
KDateNavigator( TQWidget *parent = 0, const char *name = 0 );
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp
index b242c306..b7a0e1de 100644
--- a/korganizer/koagenda.cpp
+++ b/korganizer/koagenda.cpp
@@ -69,7 +69,7 @@ MarcusBains::MarcusBains(KOAgenda *_agenda,const char *name )
setMargin(0);
setBackgroundColor(TQt::red);
minutes = new TQTimer(this);
- connect(minutes, TQT_SIGNAL(timeout()), this, TQT_SLOT(updateLocation()));
+ connect(minutes, TQ_SIGNAL(timeout()), this, TQ_SLOT(updateLocation()));
minutes->start(0, true);
mTimeBox = new TQLabel(this);
@@ -255,10 +255,10 @@ void KOAgenda::init()
// Grab key strokes for keyboard navigation of agenda. Seems to have no
// effect. Has to be fixed.
- setFocusPolicy( TQ_WheelFocus );
+ setFocusPolicy( TQWidget::WheelFocus );
- connect( &mScrollUpTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( scrollUp() ) );
- connect( &mScrollDownTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( scrollDown() ) );
+ connect( &mScrollUpTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( scrollUp() ) );
+ connect( &mScrollDownTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( scrollDown() ) );
mStartCell = TQPoint( 0, 0 );
mEndCell = TQPoint( 0, 0 );
@@ -274,7 +274,7 @@ void KOAgenda::init()
mClickedItem = 0;
mActionItem = 0;
- mResPair = tqMakePair( static_cast<ResourceCalendar *>( 0 ), TQString() );
+ mResPair = qMakePair( static_cast<ResourceCalendar *>( 0 ), TQString() );
mActionType = NOP;
mItemMoved = false;
@@ -291,7 +291,7 @@ void KOAgenda::init()
viewport()->update();
viewport()->setBackgroundMode( NoBackground );
- viewport()->setFocusPolicy( TQ_WheelFocus );
+ viewport()->setFocusPolicy( TQWidget::WheelFocus );
setMinimumSize( 30, int( mGridSpacingY + 1 ) );
// setMaximumHeight(mGridSpacingY * mRows + 5);
@@ -305,8 +305,8 @@ void KOAgenda::init()
calculateWorkingHours();
- connect( verticalScrollBar(), TQT_SIGNAL( valueChanged( int ) ),
- TQT_SLOT( checkScrollBoundaries( int ) ) );
+ connect( verticalScrollBar(), TQ_SIGNAL( valueChanged( int ) ),
+ TQ_SLOT( checkScrollBoundaries( int ) ) );
// Create the Marcus Bains line.
if( mAllDayMode ) {
@@ -384,19 +384,19 @@ bool KOAgenda::eventFilter ( TQObject *object, TQEvent *event )
case TQEvent::MouseButtonDblClick:
case TQEvent::MouseButtonRelease:
case TQEvent::MouseMove:
- return eventFilter_mouse( object, TQT_TQMOUSEEVENT( event ) );
+ return eventFilter_mouse( object, static_cast<TQMouseEvent*>( event ) );
#ifndef TQT_NO_WHEELEVENT
case TQEvent::Wheel:
- return eventFilter_wheel( object, TQT_TQWHEELEVENT( event ) );
+ return eventFilter_wheel( object, static_cast<TQWheelEvent*>( event ) );
#endif
case TQEvent::KeyPress:
case TQEvent::KeyRelease:
- return eventFilter_key( object, TQT_TQKEYEVENT( event ) );
+ return eventFilter_key( object, static_cast<TQKeyEvent*>( event ) );
case ( TQEvent::Leave ):
if ( !mActionItem )
setCursor( arrowCursor );
- if ( TQT_BASE_OBJECT(object) == TQT_BASE_OBJECT(viewport()) )
+ if ( object == viewport() )
emit leaveAgenda();
return true;
@@ -422,8 +422,8 @@ bool KOAgenda::eventFilter_drag( TQObject *object, TQDropEvent *de )
{
#ifndef KORG_NODND
TQPoint viewportPos;
- if ( TQT_BASE_OBJECT(object) != TQT_BASE_OBJECT(viewport()) && TQT_BASE_OBJECT(object) != TQT_BASE_OBJECT(this) ) {
- viewportPos = TQT_TQWIDGET( object )->mapToParent( de->pos() );
+ if ( object != viewport() && object != this ) {
+ viewportPos = static_cast<TQWidget*>( object )->mapToParent( de->pos() );
} else {
viewportPos = de->pos();
}
@@ -462,7 +462,7 @@ bool KOAgenda::eventFilter_drag( TQObject *object, TQDropEvent *de )
// FIXME: This is a bad hack, as the viewportToContents seems to be off by
// 2000 (which is the left upper corner of the viewport). It works correctly
// for agendaItems.
- if ( TQT_BASE_OBJECT(object) == TQT_BASE_OBJECT(this) ) {
+ if ( object == this ) {
pos = viewportPos + TQPoint( contentsX(), contentsY() );
} else {
pos = viewportToContents( viewportPos );
@@ -526,10 +526,10 @@ bool KOAgenda::eventFilter_key( TQObject *, TQKeyEvent *ke )
case Key_Alt:
break;
default:
- mTypeAheadEvents.append( TQT_TQEVENT( new TQKeyEvent( ke->type(), ke->key(),
+ mTypeAheadEvents.append( new TQKeyEvent( ke->type(), ke->key(),
ke->ascii(), ke->state(),
ke->text(), ke->isAutoRepeat(),
- ke->count() ) ) );
+ ke->count() ) );
if ( !mTypeAhead ) {
mTypeAhead = true;
emitNewEventForSelection();
@@ -565,7 +565,7 @@ bool KOAgenda::eventFilter_wheel ( TQObject *object, TQWheelEvent *e )
TQPoint viewportPos;
bool accepted=false;
if ( ( e->state() & ShiftButton) == ShiftButton ) {
- if ( TQT_BASE_OBJECT(object) != TQT_BASE_OBJECT(viewport()) ) {
+ if ( object != viewport() ) {
viewportPos = ( (TQWidget *) object )->mapToParent( e->pos() );
} else {
viewportPos = e->pos();
@@ -574,19 +574,19 @@ bool KOAgenda::eventFilter_wheel ( TQObject *object, TQWheelEvent *e )
// e->type()<<" delta: "<< e->delta()<< endl;
emit zoomView( -e->delta() ,
contentsToGrid( viewportToContents( viewportPos ) ),
- Qt::Horizontal );
+ TQt::Horizontal );
accepted=true;
}
if ( ( e->state() & ControlButton ) == ControlButton ){
- if ( TQT_BASE_OBJECT(object) != TQT_BASE_OBJECT(viewport()) ) {
+ if ( object != viewport() ) {
viewportPos = ( (TQWidget *)object )->mapToParent( e->pos() );
} else {
viewportPos = e->pos();
}
emit zoomView( -e->delta() ,
contentsToGrid( viewportToContents( viewportPos ) ),
- Qt::Vertical );
+ TQt::Vertical );
emit mousePosSignal(gridToContents(contentsToGrid(viewportToContents( viewportPos ))));
accepted=true;
}
@@ -597,7 +597,7 @@ bool KOAgenda::eventFilter_wheel ( TQObject *object, TQWheelEvent *e )
bool KOAgenda::eventFilter_mouse(TQObject *object, TQMouseEvent *me)
{
TQPoint viewportPos;
- if (TQT_BASE_OBJECT(object) != TQT_BASE_OBJECT(viewport())) {
+ if (object != viewport()) {
viewportPos = ((TQWidget *)object)->mapToParent(me->pos());
} else {
viewportPos = me->pos();
@@ -606,8 +606,8 @@ bool KOAgenda::eventFilter_mouse(TQObject *object, TQMouseEvent *me)
switch (me->type()) {
case TQEvent::MouseButtonPress:
// kdDebug(5850) << "koagenda: filtered button press" << endl;
- if (TQT_BASE_OBJECT(object) != TQT_BASE_OBJECT(viewport())) {
- if (me->button() == Qt::RightButton) {
+ if (object != viewport()) {
+ if (me->button() == TQt::RightButton) {
mClickedItem = dynamic_cast<KOAgendaItem *>(object);
if (mClickedItem) {
selectItem(mClickedItem);
@@ -615,7 +615,7 @@ bool KOAgenda::eventFilter_mouse(TQObject *object, TQMouseEvent *me)
mClickedItem->incidence(),
mClickedItem->itemDate() );
} else {
- return TQScrollView::eventFilter( TQT_TQOBJECT(object), TQT_TQEVENT(me) ); // pass through for use by multiagenda
+ return TQScrollView::eventFilter( object, me ); // pass through for use by multiagenda
}
} else {
KOAgendaItem* item = dynamic_cast<KOAgendaItem *>(object);
@@ -623,7 +623,7 @@ bool KOAgenda::eventFilter_mouse(TQObject *object, TQMouseEvent *me)
Incidence *incidence = item->incidence();
if ( incidence->isReadOnly() ) {
mActionItem = 0;
- mResPair = tqMakePair( static_cast<ResourceCalendar *>( 0 ), TQString() );
+ mResPair = qMakePair( static_cast<ResourceCalendar *>( 0 ), TQString() );
} else {
mActionItem = item;
mResPair = CalHelper::incSubResourceCalendar( mCalendar, incidence );
@@ -635,11 +635,11 @@ bool KOAgenda::eventFilter_mouse(TQObject *object, TQMouseEvent *me)
// null.
selectItem( item );
} else {
- return TQScrollView::eventFilter( TQT_TQOBJECT(object), TQT_TQEVENT(me) ); // pass through for use by multiagenda
+ return TQScrollView::eventFilter( object, me ); // pass through for use by multiagenda
}
}
} else {
- if ( me->button() == Qt::RightButton ) {
+ if ( me->button() == TQt::RightButton ) {
// if mouse pointer is not in selection, select the cell below the cursor
TQPoint gpos = contentsToGrid( viewportToContents( viewportPos ) );
if ( !ptInSelection( gpos ) ) {
@@ -657,12 +657,12 @@ bool KOAgenda::eventFilter_mouse(TQObject *object, TQMouseEvent *me)
if ( !ptInSelection( gpos ) ) {
selectItem(0);
mActionItem = 0;
- mResPair = tqMakePair( static_cast<ResourceCalendar *>( 0 ), TQString() );
+ mResPair = qMakePair( static_cast<ResourceCalendar *>( 0 ), TQString() );
setCursor(arrowCursor);
startSelectAction(viewportPos);
}
}
- return TQScrollView::eventFilter( TQT_TQOBJECT(object), TQT_TQEVENT(me) ); // pass through for use by multiagenda
+ return TQScrollView::eventFilter( object, me ); // pass through for use by multiagenda
}
break;
@@ -683,7 +683,7 @@ bool KOAgenda::eventFilter_mouse(TQObject *object, TQMouseEvent *me)
// avoid an offset of a few pixels. Don't ask me why...
TQPoint indicatorPos = gridToContents(contentsToGrid(
viewportToContents( viewportPos )));
- if (TQT_BASE_OBJECT(object) != TQT_BASE_OBJECT(viewport())) {
+ if (object != viewport()) {
KOAgendaItem *moveItem = dynamic_cast<KOAgendaItem *>(object);
if (moveItem && !moveItem->incidence()->isReadOnly() ) {
if (!mActionItem)
@@ -722,7 +722,7 @@ bool KOAgenda::eventFilter_mouse(TQObject *object, TQMouseEvent *me)
break; }
case TQEvent::MouseButtonDblClick:
- if (TQT_BASE_OBJECT(object) == TQT_BASE_OBJECT(viewport())) {
+ if (object == viewport()) {
selectItem(0);
TQPair<ResourceCalendar *, TQString>p = mCalendarView->viewSubResourceCalendar();
emit newEventSignal( p.first, p.second );
@@ -918,7 +918,7 @@ void KOAgenda::performItemAction(const TQPoint& viewportPos)
emit startDragSignal( mActionItem->incidence() );
setCursor( arrowCursor );
mActionItem = 0;
- mResPair = tqMakePair( static_cast<ResourceCalendar *>( 0 ), TQString() );
+ mResPair = qMakePair( static_cast<ResourceCalendar *>( 0 ), TQString() );
mActionType = NOP;
mItemMoved = false;
return;
@@ -952,7 +952,7 @@ void KOAgenda::performItemAction(const TQPoint& viewportPos)
placeSubCells( mActionItem );
setCursor( arrowCursor );
mActionItem = 0;
- mResPair = tqMakePair( static_cast<ResourceCalendar *>( 0 ), TQString() );
+ mResPair = qMakePair( static_cast<ResourceCalendar *>( 0 ), TQString() );
mActionType = NOP;
mItemMoved = false;
return;
@@ -1192,7 +1192,7 @@ void KOAgenda::endItemAction()
}
mActionItem = 0;
- mResPair = tqMakePair( static_cast<ResourceCalendar *>( 0 ), TQString() );
+ mResPair = qMakePair( static_cast<ResourceCalendar *>( 0 ), TQString() );
mItemMoved = false;
if ( multiModify ) {
@@ -1604,10 +1604,10 @@ KOAgendaItem *KOAgenda::insertItem( Incidence *incidence, const TQDate &qd, int
mActionType = NOP;
KOAgendaItem *agendaItem = new KOAgendaItem( mCalendar, incidence, qd, viewport(), itemPos, itemCount );
- connect( agendaItem, TQT_SIGNAL( removeAgendaItem( KOAgendaItem * ) ),
- TQT_SLOT( removeAgendaItem( KOAgendaItem * ) ) );
- connect( agendaItem, TQT_SIGNAL( showAgendaItem( KOAgendaItem * ) ),
- TQT_SLOT( showAgendaItem( KOAgendaItem * ) ) );
+ connect( agendaItem, TQ_SIGNAL( removeAgendaItem( KOAgendaItem * ) ),
+ TQ_SLOT( removeAgendaItem( KOAgendaItem * ) ) );
+ connect( agendaItem, TQ_SIGNAL( showAgendaItem( KOAgendaItem * ) ),
+ TQ_SLOT( showAgendaItem( KOAgendaItem * ) ) );
if ( YBottom <= YTop ) {
kdDebug(5850) << "KOAgenda::insertItem(): Text: " << agendaItem->text() << " YSize<0" << endl;
@@ -1649,10 +1649,10 @@ KOAgendaItem *KOAgenda::insertAllDayItem( Incidence *event, const TQDate &qd,
mActionType = NOP;
KOAgendaItem *agendaItem = new KOAgendaItem( mCalendar, event, qd, viewport(), 1, 1 );
- connect( agendaItem, TQT_SIGNAL( removeAgendaItem( KOAgendaItem* ) ),
- TQT_SLOT( removeAgendaItem( KOAgendaItem* ) ) );
- connect( agendaItem, TQT_SIGNAL( showAgendaItem( KOAgendaItem* ) ),
- TQT_SLOT( showAgendaItem( KOAgendaItem* ) ) );
+ connect( agendaItem, TQ_SIGNAL( removeAgendaItem( KOAgendaItem* ) ),
+ TQ_SLOT( removeAgendaItem( KOAgendaItem* ) ) );
+ connect( agendaItem, TQ_SIGNAL( showAgendaItem( KOAgendaItem* ) ),
+ TQ_SLOT( showAgendaItem( KOAgendaItem* ) ) );
agendaItem->setCellXY( XBegin, 0, 0 );
agendaItem->setCellXRight( XEnd );
@@ -1799,7 +1799,7 @@ bool KOAgenda::removeAgendaItem( KOAgendaItem *item )
}
mItemsToDelete.append( thisItem );
- TQTimer::singleShot( 0, this, TQT_SLOT( deleteItemsToDelete() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( deleteItemsToDelete() ) );
return taken;
}
@@ -1843,7 +1843,7 @@ void KOAgenda::resizeEvent ( TQResizeEvent *ev )
mGridSpacingY = mDesiredGridSpacingY;
}
calculateWorkingHours();
- TQTimer::singleShot( 0, this, TQT_SLOT( resizeAllContents() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( resizeAllContents() ) );
emit gridSpacingYChanged( mGridSpacingY * 4 );
TQScrollView::resizeEvent(ev);
}
diff --git a/korganizer/koagenda.h b/korganizer/koagenda.h
index 05a0af9d..d123f463 100644
--- a/korganizer/koagenda.h
+++ b/korganizer/koagenda.h
@@ -52,7 +52,7 @@ using namespace KCal;
class MarcusBains : public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
public:
MarcusBains( KOAgenda *agenda = 0, const char *name = 0 );
@@ -73,7 +73,7 @@ class MarcusBains : public TQFrame
class KOAgenda : public TQScrollView
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOAgenda ( int columns, int rows, int columnSize, CalendarView *calendarView,
@@ -198,7 +198,7 @@ class KOAgenda : public TQScrollView
void droppedToDo( Todo*todo, const TQPoint &gpos, bool allDay );
void enableAgendaUpdate( bool enable );
- void zoomView( const int delta, const TQPoint &pos, const Qt::Orientation );
+ void zoomView( const int delta, const TQPoint &pos, const TQt::Orientation );
void mousePosSignal(const TQPoint &pos);
void enterAgenda();
diff --git a/korganizer/koagendaitem.h b/korganizer/koagendaitem.h
index 9ab341ed..eea5f68f 100644
--- a/korganizer/koagendaitem.h
+++ b/korganizer/koagendaitem.h
@@ -74,7 +74,7 @@ struct MultiItemInfo
*/
class KOAgendaItem : public TQWidget, public KOrg::CellItem
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOAgendaItem( Calendar *calendar, Incidence *incidence, const TQDate &qd,
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index 7e68deeb..1bde3dbe 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -284,7 +284,7 @@ KOAgendaView::KOAgendaView( Calendar *cal,
// Create agenda splitter
#ifndef KORG_NOSPLITTER
- mSplitterAgenda = new TQSplitter(Qt::Vertical,this);
+ mSplitterAgenda = new TQSplitter(TQt::Vertical,this);
topLayout->addWidget(mSplitterAgenda);
#if KDE_IS_VERSION( 3, 1, 93 )
@@ -315,7 +315,7 @@ KOAgendaView::KOAgendaView( Calendar *cal,
mExpandButton->setPixmap( mNotExpandedPixmap );
mExpandButton->setSizePolicy( TQSizePolicy( TQSizePolicy::Fixed,
TQSizePolicy::Fixed ) );
- connect( mExpandButton, TQT_SIGNAL( clicked() ), TQT_SIGNAL( toggleExpand() ) );
+ connect( mExpandButton, TQ_SIGNAL( clicked() ), TQ_SIGNAL( toggleExpand() ) );
} else {
TQLabel *label = new TQLabel( i18n("All Day"), mDummyAllDayLeft );
label->setAlignment( TQt::AlignRight | TQt::AlignVCenter | TQt::WordBreak );
@@ -373,27 +373,27 @@ KOAgendaView::KOAgendaView( Calendar *cal,
updateTimeBarWidth();
// Scrolling
- connect(mAgenda->verticalScrollBar(),TQT_SIGNAL(valueChanged(int)),
- mTimeLabels, TQT_SLOT(positionChanged()));
+ connect(mAgenda->verticalScrollBar(),TQ_SIGNAL(valueChanged(int)),
+ mTimeLabels, TQ_SLOT(positionChanged()));
connect( mAgenda,
- TQT_SIGNAL( zoomView( const int, const TQPoint & ,const Qt::Orientation ) ),
- TQT_SLOT( zoomView( const int, const TQPoint &, const Qt::Orientation ) ) );
+ TQ_SIGNAL( zoomView( const int, const TQPoint & ,const TQt::Orientation ) ),
+ TQ_SLOT( zoomView( const int, const TQPoint &, const TQt::Orientation ) ) );
- connect(mTimeLabels->verticalScrollBar(),TQT_SIGNAL(valueChanged(int)),
- TQT_SLOT(setContentsPos(int)));
+ connect(mTimeLabels->verticalScrollBar(),TQ_SIGNAL(valueChanged(int)),
+ TQ_SLOT(setContentsPos(int)));
// Create Events, depends on type of agenda
- connect( mAgenda, TQT_SIGNAL(newTimeSpanSignal(const TQPoint &, const TQPoint &)),
- TQT_SLOT(newTimeSpanSelected(const TQPoint &, const TQPoint &)));
- connect( mAllDayAgenda, TQT_SIGNAL(newTimeSpanSignal(const TQPoint &, const TQPoint &)),
- TQT_SLOT(newTimeSpanSelectedAllDay(const TQPoint &, const TQPoint &)));
+ connect( mAgenda, TQ_SIGNAL(newTimeSpanSignal(const TQPoint &, const TQPoint &)),
+ TQ_SLOT(newTimeSpanSelected(const TQPoint &, const TQPoint &)));
+ connect( mAllDayAgenda, TQ_SIGNAL(newTimeSpanSignal(const TQPoint &, const TQPoint &)),
+ TQ_SLOT(newTimeSpanSelectedAllDay(const TQPoint &, const TQPoint &)));
// event indicator update
- connect( mAgenda, TQT_SIGNAL(lowerYChanged(int)),
- TQT_SLOT(updateEventIndicatorTop(int)));
- connect( mAgenda, TQT_SIGNAL(upperYChanged(int)),
- TQT_SLOT(updateEventIndicatorBottom(int)));
+ connect( mAgenda, TQ_SIGNAL(lowerYChanged(int)),
+ TQ_SLOT(updateEventIndicatorTop(int)));
+ connect( mAgenda, TQ_SIGNAL(upperYChanged(int)),
+ TQ_SLOT(updateEventIndicatorBottom(int)));
if ( !readOnly() ) {
connectAgenda( mAgenda, mAgendaPopup, mAllDayAgenda );
@@ -417,53 +417,53 @@ KOAgendaView::~KOAgendaView()
void KOAgendaView::connectAgenda( KOAgenda *agenda, TQPopupMenu *popup,
KOAgenda *otherAgenda )
{
- connect( agenda, TQT_SIGNAL(showIncidencePopupSignal(Calendar *,Incidence *,const TQDate &)),
- popup, TQT_SLOT(showIncidencePopup(Calendar *,Incidence *,const TQDate &)) );
+ connect( agenda, TQ_SIGNAL(showIncidencePopupSignal(Calendar *,Incidence *,const TQDate &)),
+ popup, TQ_SLOT(showIncidencePopup(Calendar *,Incidence *,const TQDate &)) );
- connect( agenda, TQT_SIGNAL(showNewEventPopupSignal()),
- TQT_SLOT(showNewEventPopup()) );
+ connect( agenda, TQ_SIGNAL(showNewEventPopupSignal()),
+ TQ_SLOT(showNewEventPopup()) );
// Create/Show/Edit/Delete Event
- connect( agenda, TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &)),
- TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &)) );
+ connect( agenda, TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &)),
+ TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &)) );
- connect( agenda, TQT_SIGNAL(newStartSelectSignal()),
- otherAgenda, TQT_SLOT(clearSelection()) );
- connect( agenda, TQT_SIGNAL(newStartSelectSignal()),
- TQT_SIGNAL(timeSpanSelectionChanged()) );
+ connect( agenda, TQ_SIGNAL(newStartSelectSignal()),
+ otherAgenda, TQ_SLOT(clearSelection()) );
+ connect( agenda, TQ_SIGNAL(newStartSelectSignal()),
+ TQ_SIGNAL(timeSpanSelectionChanged()) );
- connect( agenda, TQT_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)),
- TQT_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)) );
- connect( agenda, TQT_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)),
- TQT_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)) );
- connect( agenda, TQT_SIGNAL(deleteIncidenceSignal(Incidence *)),
- TQT_SIGNAL(deleteIncidenceSignal(Incidence *)) );
+ connect( agenda, TQ_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)),
+ TQ_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)) );
+ connect( agenda, TQ_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)),
+ TQ_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)) );
+ connect( agenda, TQ_SIGNAL(deleteIncidenceSignal(Incidence *)),
+ TQ_SIGNAL(deleteIncidenceSignal(Incidence *)) );
- connect( agenda, TQT_SIGNAL(startMultiModify(const TQString &)),
- TQT_SIGNAL(startMultiModify(const TQString &)) );
- connect( agenda, TQT_SIGNAL(endMultiModify()),
- TQT_SIGNAL(endMultiModify()) );
+ connect( agenda, TQ_SIGNAL(startMultiModify(const TQString &)),
+ TQ_SIGNAL(startMultiModify(const TQString &)) );
+ connect( agenda, TQ_SIGNAL(endMultiModify()),
+ TQ_SIGNAL(endMultiModify()) );
- connect( agenda, TQT_SIGNAL(itemModified(KOAgendaItem *)),
- TQT_SLOT(updateEventDates(KOAgendaItem *)) );
+ connect( agenda, TQ_SIGNAL(itemModified(KOAgendaItem *)),
+ TQ_SLOT(updateEventDates(KOAgendaItem *)) );
- connect( agenda, TQT_SIGNAL(enableAgendaUpdate(bool)),
- TQT_SLOT(enableAgendaUpdate(bool)) );
+ connect( agenda, TQ_SIGNAL(enableAgendaUpdate(bool)),
+ TQ_SLOT(enableAgendaUpdate(bool)) );
// drag signals
- connect( agenda, TQT_SIGNAL(startDragSignal(Incidence *)),
- TQT_SLOT(startDrag(Incidence *)) );
+ connect( agenda, TQ_SIGNAL(startDragSignal(Incidence *)),
+ TQ_SLOT(startDrag(Incidence *)) );
// synchronize selections
- connect( agenda, TQT_SIGNAL(incidenceSelected(Incidence *,const TQDate &)),
- otherAgenda, TQT_SLOT(deselectItem()) );
- connect( agenda, TQT_SIGNAL(incidenceSelected(Incidence *,const TQDate &)),
- TQT_SIGNAL(incidenceSelected(Incidence *,const TQDate &)) );
+ connect( agenda, TQ_SIGNAL(incidenceSelected(Incidence *,const TQDate &)),
+ otherAgenda, TQ_SLOT(deselectItem()) );
+ connect( agenda, TQ_SIGNAL(incidenceSelected(Incidence *,const TQDate &)),
+ TQ_SIGNAL(incidenceSelected(Incidence *,const TQDate &)) );
// rescheduling of todos by d'n'd
- connect( agenda, TQT_SIGNAL(droppedToDo(Todo *,const TQPoint &,bool)),
- TQT_SLOT(slotTodoDropped(Todo *,const TQPoint &,bool)) );
+ connect( agenda, TQ_SIGNAL(droppedToDo(Todo *,const TQPoint &,bool)),
+ TQ_SLOT(slotTodoDropped(Todo *,const TQPoint &,bool)) );
}
@@ -561,7 +561,7 @@ void KOAgendaView::zoomOutHorizontally( const TQDate &date )
}
void KOAgendaView::zoomView( const int delta, const TQPoint &pos,
- const Qt::Orientation orient )
+ const TQt::Orientation orient )
{
static TQDate zoomDate;
static TQTimer *t = new TQTimer( this );
@@ -569,7 +569,7 @@ void KOAgendaView::zoomView( const int delta, const TQPoint &pos,
//Zoom to the selected incidence, on the other way
// zoom to the date on screen after the first mousewheel move.
- if ( orient == Qt::Horizontal ) {
+ if ( orient == TQt::Horizontal ) {
TQDate date=mAgenda->selectedIncidenceDate();
if ( date.isValid() )
zoomDate=date;
@@ -584,7 +584,7 @@ void KOAgendaView::zoomView( const int delta, const TQPoint &pos,
else
zoomInHorizontally( zoomDate );
} else {
- // Qt::Vertical zoom
+ // Vertical zoom
TQPoint posConstentsOld = mAgenda->gridToContents(pos);
if ( delta > 0 ) {
zoomOutVertically();
@@ -682,7 +682,7 @@ void KOAgendaView::createDayLabels( bool force )
if ( !mIsSideBySide )
mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width());
mDayLabels->show();
- TQTimer::singleShot( 0, this, TQT_SLOT( updateDayLabelSizes() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( updateDayLabelSizes() ) );
}
void KOAgendaView::enableAgendaUpdate( bool enable )
@@ -1117,7 +1117,7 @@ void KOAgendaView::updateEventDates( KOAgendaItem *item )
if ( !result ) {
mPendingChanges = true;
- TQTimer::singleShot( 0, this, TQT_SLOT(updateView()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(updateView()) );
return;
}
@@ -1131,7 +1131,7 @@ void KOAgendaView::updateEventDates( KOAgendaItem *item )
// recreated. All others have to!!!
if ( incidence->doesRecur() ) {
mUpdateItem = incidence;
- TQTimer::singleShot( 0, this, TQT_SLOT( doUpdateItem() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( doUpdateItem() ) );
}
enableAgendaUpdate( true );
diff --git a/korganizer/koagendaview.h b/korganizer/koagendaview.h
index 887cc957..bbc9c235 100644
--- a/korganizer/koagendaview.h
+++ b/korganizer/koagendaview.h
@@ -50,7 +50,7 @@ namespace KOrg {
class EventIndicator : public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
public:
enum Location { Top, Bottom };
@@ -74,7 +74,7 @@ class EventIndicator : public TQFrame
class KOAlternateLabel : public TQLabel
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOAlternateLabel( const TQString &shortlabel, const TQString &longlabel,
@@ -107,7 +107,7 @@ class KOAlternateLabel : public TQLabel
*/
class KOAgendaView : public KOrg::AgendaView, public KCal::Calendar::Observer
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOAgendaView( Calendar *cal,
@@ -197,7 +197,7 @@ class KOAgendaView : public KOrg::AgendaView, public KCal::Calendar::Observer
void zoomView( const int delta, const TQPoint &pos,
- const Qt::Orientation orient=Qt::Horizontal );
+ const TQt::Orientation orient=TQt::Horizontal );
void clearTimeSpanSelection();
diff --git a/korganizer/koapp.h b/korganizer/koapp.h
index 782e6994..59ead1a0 100644
--- a/korganizer/koapp.h
+++ b/korganizer/koapp.h
@@ -29,7 +29,7 @@
class KOrganizerApp : public KUniqueApplication
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOrganizerApp();
diff --git a/korganizer/koattendeeeditor.cpp b/korganizer/koattendeeeditor.cpp
index d95618c8..5c8ddc39 100644
--- a/korganizer/koattendeeeditor.cpp
+++ b/korganizer/koattendeeeditor.cpp
@@ -109,9 +109,9 @@ void KOAttendeeEditor::initEditWidgets(TQWidget * parent, TQBoxLayout * layout)
mNameEdit->setClickMessage( i18n("Click to add a new attendee") );
attendeeLabel->setBuddy( mNameEdit );
mNameEdit->installEventFilter( this );
- connect( mNameEdit, TQT_SIGNAL( textChanged( const TQString & ) ),
- TQT_SLOT( updateAttendee() ) );
- connect( mNameEdit, TQT_SIGNAL(returnPressed()), TQT_SLOT(expandAttendee()) );
+ connect( mNameEdit, TQ_SIGNAL( textChanged( const TQString & ) ),
+ TQ_SLOT( updateAttendee() ) );
+ connect( mNameEdit, TQ_SIGNAL(returnPressed()), TQ_SLOT(expandAttendee()) );
topLayout->addMultiCellWidget( mNameEdit, 0, 0, 1, 2 );
whatsThis = i18n("Edits the role of the attendee selected "
@@ -125,8 +125,8 @@ void KOAttendeeEditor::initEditWidgets(TQWidget * parent, TQBoxLayout * layout)
TQWhatsThis::add( mRoleCombo, whatsThis );
mRoleCombo->insertStringList( Attendee::roleList() );
attendeeRoleLabel->setBuddy( mRoleCombo );
- connect( mRoleCombo, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( updateAttendee() ) );
+ connect( mRoleCombo, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( updateAttendee() ) );
topLayout->addWidget( mRoleCombo, 1, 1 );
mDelegateLabel = new TQLabel( parent );
@@ -151,8 +151,8 @@ void KOAttendeeEditor::initEditWidgets(TQWidget * parent, TQBoxLayout * layout)
mStatusCombo->insertItem( KOGlobals::self()->smallIcon( "help" ), Attendee::statusName( Attendee::InProcess ) );
statusLabel->setBuddy( mStatusCombo );
- connect( mStatusCombo, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( updateAttendee() ) );
+ connect( mStatusCombo, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( updateAttendee() ) );
topLayout->addWidget( mStatusCombo, 2, 1 );
topLayout->setColStretch( 2, 1 );
@@ -163,7 +163,7 @@ void KOAttendeeEditor::initEditWidgets(TQWidget * parent, TQBoxLayout * layout)
"selected in the list above to request "
"a response concerning attendance.") );
mRsvpButton->setText( i18n("Re&quest response") );
- connect( mRsvpButton, TQT_SIGNAL( clicked() ), TQT_SLOT( updateAttendee() ) );
+ connect( mRsvpButton, TQ_SIGNAL( clicked() ), TQ_SLOT( updateAttendee() ) );
topLayout->addWidget( mRsvpButton, 2, 2 );
TQWidget *buttonBox = new TQWidget( parent );
@@ -179,7 +179,7 @@ void KOAttendeeEditor::initEditWidgets(TQWidget * parent, TQBoxLayout * layout)
"from your addressbook, click the 'Select Addressee' "
"button instead.") );
buttonLayout->addWidget( mAddButton );
- connect( mAddButton, TQT_SIGNAL( clicked() ), TQT_SLOT( addNewAttendee() ) );
+ connect( mAddButton, TQ_SIGNAL( clicked() ), TQ_SLOT( addNewAttendee() ) );
mRemoveButton = new TQPushButton( i18n("&Remove"), buttonBox );
TQWhatsThis::add( mRemoveButton,
@@ -193,7 +193,7 @@ void KOAttendeeEditor::initEditWidgets(TQWidget * parent, TQBoxLayout * layout)
i18n("Opens your address book, allowing you to select "
"new attendees from it.") );
buttonLayout->addWidget( mAddressBookButton );
- connect( mAddressBookButton, TQT_SIGNAL( clicked() ), TQT_SLOT( openAddressBook() ) );
+ connect( mAddressBookButton, TQ_SIGNAL( clicked() ), TQ_SLOT( openAddressBook() ) );
topLayout->addMultiCellWidget( buttonBox, 0, 3, 3, 3 );
@@ -277,7 +277,7 @@ void KOAttendeeEditor::addNewAttendee()
// We don't want the hint again
mNameEdit->setClickMessage( "" );
mNameEdit->setFocus();
- TQTimer::singleShot( 0, mNameEdit, TQT_SLOT( selectAll() ) );
+ TQTimer::singleShot( 0, mNameEdit, TQ_SLOT( selectAll() ) );
}
void KOAttendeeEditor::readEvent(KCal::Incidence * incidence)
@@ -537,7 +537,7 @@ void KOAttendeeEditor::declineForMe()
bool KOAttendeeEditor::eventFilter(TQObject *watched, TQEvent *ev)
{
- if ( watched && TQT_BASE_OBJECT(watched) == TQT_BASE_OBJECT(mNameEdit) && ev->type() == TQEvent::FocusIn &&
+ if ( watched && watched == mNameEdit && ev->type() == TQEvent::FocusIn &&
currentAttendee() == 0 ) {
addNewAttendee();
}
diff --git a/korganizer/koattendeeeditor.h b/korganizer/koattendeeeditor.h
index 3454f81d..042419fd 100644
--- a/korganizer/koattendeeeditor.h
+++ b/korganizer/koattendeeeditor.h
@@ -46,7 +46,7 @@ namespace KCal {
*/
class KOAttendeeEditor : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOAttendeeEditor( TQWidget *parent, const char *name = 0 );
diff --git a/korganizer/kocore.h b/korganizer/kocore.h
index d160f68d..f5dd7c97 100644
--- a/korganizer/kocore.h
+++ b/korganizer/kocore.h
@@ -29,7 +29,7 @@
#include <korganizer/part.h>
#include <korganizer/printplugin.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <ktrader.h>
namespace KPIM { class IdentityManager; }
diff --git a/korganizer/kocounterdialog.cpp b/korganizer/kocounterdialog.cpp
index 5341e1d0..dc6a76ea 100644
--- a/korganizer/kocounterdialog.cpp
+++ b/korganizer/kocounterdialog.cpp
@@ -39,8 +39,8 @@ KOCounterDialog::KOCounterDialog( Calendar *calendar, TQWidget *parent, const ch
mEventViewer = new KOEventViewer( calendar, this );
setMainWidget( mEventViewer );
- connect( this, TQT_SIGNAL( user1Clicked() ), TQT_SLOT( slotCancel() ) );
- connect( this, TQT_SIGNAL( user2Clicked() ), TQT_SLOT( slotOk( ) ) );
+ connect( this, TQ_SIGNAL( user1Clicked() ), TQ_SLOT( slotCancel() ) );
+ connect( this, TQ_SIGNAL( user2Clicked() ), TQ_SLOT( slotOk( ) ) );
// FIXME: Set a sensible size (based on the content?).
setMinimumSize( 300, 200 );
diff --git a/korganizer/kocounterdialog.h b/korganizer/kocounterdialog.h
index 1af7c47c..5be67874 100644
--- a/korganizer/kocounterdialog.h
+++ b/korganizer/kocounterdialog.h
@@ -38,7 +38,7 @@ class KOEventViewer;
*/
class KOCounterDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOCounterDialog(Calendar *calendar, TQWidget *parent = 0, const char *name = 0 );
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index 5d95b81e..0a575a77 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -125,9 +125,9 @@ void KODayMatrix::setCalendar( Calendar *cal )
mCalendar->registerObserver( this );
CalendarResources *calres = dynamic_cast<CalendarResources*>( cal );
if ( calres ) {
- connect( calres, TQT_SIGNAL(signalResourceAdded(ResourceCalendar *)), TQT_SLOT(resourcesChanged()) );
- connect( calres, TQT_SIGNAL(signalResourceModified( ResourceCalendar *)), TQT_SLOT(resourcesChanged()) );
- connect( calres, TQT_SIGNAL(signalResourceDeleted(ResourceCalendar *)), TQT_SLOT(resourcesChanged()) );
+ connect( calres, TQ_SIGNAL(signalResourceAdded(ResourceCalendar *)), TQ_SLOT(resourcesChanged()) );
+ connect( calres, TQ_SIGNAL(signalResourceModified( ResourceCalendar *)), TQ_SLOT(resourcesChanged()) );
+ connect( calres, TQ_SIGNAL(signalResourceDeleted(ResourceCalendar *)), TQ_SLOT(resourcesChanged()) );
}
setAcceptDrops( mCalendar );
@@ -725,5 +725,5 @@ TQPair<TQDate,TQDate> KODayMatrix::matrixLimits( const TQDate &month )
d = d.addDays( -7 ); // Start on the second line
}
- return tqMakePair( d, d.addDays( NUMDAYS-1 ) );
+ return qMakePair( d, d.addDays( NUMDAYS-1 ) );
}
diff --git a/korganizer/kodaymatrix.h b/korganizer/kodaymatrix.h
index 79231b46..9b3db818 100644
--- a/korganizer/kodaymatrix.h
+++ b/korganizer/kodaymatrix.h
@@ -104,7 +104,7 @@ class DynamicTip : public TQToolTip
*/
class KODayMatrix: public TQFrame, public KCal::Calendar::Observer
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** constructor to create a day matrix widget.
diff --git a/korganizer/kodialogmanager.cpp b/korganizer/kodialogmanager.cpp
index 20ed0259..17bb056c 100644
--- a/korganizer/kodialogmanager.cpp
+++ b/korganizer/kodialogmanager.cpp
@@ -93,8 +93,8 @@ KODialogManager::KODialogManager( CalendarView *mainView ) :
// don't set any specific parent for the dialog, as its kept around and reused
// in different cases where it should have different parents
KWin::setMainWindow( mCategoryEditDialog, 0 );
- connect( mainView, TQT_SIGNAL( categoriesChanged() ),
- mCategoryEditDialog, TQT_SLOT( reload() ) );
+ connect( mainView, TQ_SIGNAL( categoriesChanged() ),
+ mCategoryEditDialog, TQ_SLOT( reload() ) );
KOGlobals::fitDialogToScreen( mCategoryEditDialog );
}
@@ -123,20 +123,20 @@ void KODialogManager::showOptionsDialog()
// mOptionsDialog = new TDEConfigureDialog( TDEConfigureDialog::Configurable );
// mOptionsDialog = new TDEConfigureDialog( mMainView );
connect( mOptionsDialog->dialog(),
- TQT_SIGNAL( configCommitted( const TQCString & ) ),
- mMainView, TQT_SLOT( updateConfig() ) );
+ TQ_SIGNAL( configCommitted( const TQCString & ) ),
+ mMainView, TQ_SLOT( updateConfig() ) );
#else
mOptionsDialog = new KCMultiDialog( mMainView, "KorganizerPreferences" );
- connect( mOptionsDialog, TQT_SIGNAL( configCommitted( const TQCString & ) ),
- mMainView, TQT_SLOT( updateConfig( const TQCString& ) ) );
+ connect( mOptionsDialog, TQ_SIGNAL( configCommitted( const TQCString & ) ),
+ mMainView, TQ_SLOT( updateConfig( const TQCString& ) ) );
#if 0
- connect( mOptionsDialog, TQT_SIGNAL( applyClicked() ),
- mMainView, TQT_SLOT( updateConfig() ) );
- connect( mOptionsDialog, TQT_SIGNAL( okClicked() ),
- mMainView, TQT_SLOT( updateConfig() ) );
+ connect( mOptionsDialog, TQ_SIGNAL( applyClicked() ),
+ mMainView, TQ_SLOT( updateConfig() ) );
+ connect( mOptionsDialog, TQ_SIGNAL( okClicked() ),
+ mMainView, TQ_SLOT( updateConfig() ) );
// @TODO Find a way to do this with KCMultiDialog
- connect(mCategoryEditDialog,TQT_SIGNAL(categoryConfigChanged()),
- mOptionsDialog,TQT_SLOT(updateCategories()));
+ connect(mCategoryEditDialog,TQ_SIGNAL(categoryConfigChanged()),
+ mOptionsDialog,TQ_SLOT(updateCategories()));
#endif
TQStringList modules;
@@ -172,13 +172,13 @@ void KODialogManager::showSearchDialog()
{
if ( !mSearchDialog ) {
mSearchDialog = new SearchDialog( mMainView->calendar(), mMainView );
- connect( mSearchDialog, TQT_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)),
- mMainView, TQT_SLOT(showIncidence(Incidence *,const TQDate &)) );
- connect( mSearchDialog, TQT_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)),
- mMainView, TQT_SLOT(editIncidence(Incidence *,const TQDate &)) );
- connect( mSearchDialog, TQT_SIGNAL(deleteIncidenceSignal(Incidence *)),
- mMainView, TQT_SLOT(deleteIncidence(Incidence *)) );
- connect( mMainView, TQT_SIGNAL(closingDown()),mSearchDialog,TQT_SLOT(reject()) );
+ connect( mSearchDialog, TQ_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)),
+ mMainView, TQ_SLOT(showIncidence(Incidence *,const TQDate &)) );
+ connect( mSearchDialog, TQ_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)),
+ mMainView, TQ_SLOT(editIncidence(Incidence *,const TQDate &)) );
+ connect( mSearchDialog, TQ_SIGNAL(deleteIncidenceSignal(Incidence *)),
+ mMainView, TQ_SLOT(deleteIncidence(Incidence *)) );
+ connect( mMainView, TQ_SIGNAL(closingDown()),mSearchDialog,TQ_SLOT(reject()) );
}
// make sure the widget is on top again
mSearchDialog->show();
@@ -190,10 +190,10 @@ void KODialogManager::showArchiveDialog()
#ifndef KORG_NOARCHIVE
if (!mArchiveDialog) {
mArchiveDialog = new ArchiveDialog(mMainView->calendar(),mMainView);
- connect(mArchiveDialog,TQT_SIGNAL(eventsDeleted()),
- mMainView,TQT_SLOT(updateView()));
- connect(mArchiveDialog,TQT_SIGNAL(autoArchivingSettingsModified()),
- mMainView,TQT_SLOT(slotAutoArchivingSettingsModified()));
+ connect(mArchiveDialog,TQ_SIGNAL(eventsDeleted()),
+ mMainView,TQ_SLOT(updateView()));
+ connect(mArchiveDialog,TQ_SIGNAL(autoArchivingSettingsModified()),
+ mMainView,TQ_SLOT(slotAutoArchivingSettingsModified()));
}
mArchiveDialog->show();
mArchiveDialog->raise();
@@ -207,12 +207,12 @@ void KODialogManager::showFilterEditDialog( TQPtrList<CalFilter> *filters )
{
if ( !mFilterEditDialog ) {
mFilterEditDialog = new FilterEditDialog( filters, mMainView );
- connect( mFilterEditDialog, TQT_SIGNAL( filterChanged() ),
- mMainView, TQT_SLOT( updateFilter() ) );
- connect( mFilterEditDialog, TQT_SIGNAL( editCategories() ),
- mCategoryEditDialog, TQT_SLOT( show() ) );
- connect( mCategoryEditDialog, TQT_SIGNAL( categoryConfigChanged() ),
- mFilterEditDialog, TQT_SLOT( updateCategoryConfig() ) );
+ connect( mFilterEditDialog, TQ_SIGNAL( filterChanged() ),
+ mMainView, TQ_SLOT( updateFilter() ) );
+ connect( mFilterEditDialog, TQ_SIGNAL( editCategories() ),
+ mCategoryEditDialog, TQ_SLOT( show() ) );
+ connect( mCategoryEditDialog, TQ_SIGNAL( categoryConfigChanged() ),
+ mFilterEditDialog, TQ_SLOT( updateCategoryConfig() ) );
}
mFilterEditDialog->show();
mFilterEditDialog->raise();
@@ -241,29 +241,29 @@ void KODialogManager::connectTypeAhead( KOEventEditor *editor,
{
if ( editor && agenda ) {
agenda->setTypeAheadReceiver( editor->typeAheadReceiver() );
- connect( editor, TQT_SIGNAL( focusReceivedSignal() ),
- agenda, TQT_SLOT( finishTypeAhead() ) );
+ connect( editor, TQ_SIGNAL( focusReceivedSignal() ),
+ agenda, TQ_SLOT( finishTypeAhead() ) );
}
}
void KODialogManager::connectEditor( KOIncidenceEditor*editor )
{
- connect( editor, TQT_SIGNAL( deleteIncidenceSignal( Incidence * ) ),
- mMainView, TQT_SLOT( deleteIncidence( Incidence * ) ) );
-
- connect( mCategoryEditDialog, TQT_SIGNAL( categoryConfigChanged() ),
- editor, TQT_SIGNAL( updateCategoryConfig() ) );
- connect( editor, TQT_SIGNAL( editCategories() ),
- mCategoryEditDialog, TQT_SLOT( show() ) );
-
- connect( editor, TQT_SIGNAL( dialogClose( Incidence * ) ),
- mMainView, TQT_SLOT( dialogClosing( Incidence * ) ) );
- connect( editor, TQT_SIGNAL( editCanceled( Incidence * ) ),
- mMainView, TQT_SLOT( editCanceled( Incidence * ) ) );
- connect( mMainView, TQT_SIGNAL( closingDown() ), editor, TQT_SLOT( reject() ) );
-
- connect( editor, TQT_SIGNAL( deleteAttendee( Incidence * ) ),
- mMainView, TQT_SIGNAL( cancelAttendees( Incidence * ) ) );
+ connect( editor, TQ_SIGNAL( deleteIncidenceSignal( Incidence * ) ),
+ mMainView, TQ_SLOT( deleteIncidence( Incidence * ) ) );
+
+ connect( mCategoryEditDialog, TQ_SIGNAL( categoryConfigChanged() ),
+ editor, TQ_SIGNAL( updateCategoryConfig() ) );
+ connect( editor, TQ_SIGNAL( editCategories() ),
+ mCategoryEditDialog, TQ_SLOT( show() ) );
+
+ connect( editor, TQ_SIGNAL( dialogClose( Incidence * ) ),
+ mMainView, TQ_SLOT( dialogClosing( Incidence * ) ) );
+ connect( editor, TQ_SIGNAL( editCanceled( Incidence * ) ),
+ mMainView, TQ_SLOT( editCanceled( Incidence * ) ) );
+ connect( mMainView, TQ_SIGNAL( closingDown() ), editor, TQ_SLOT( reject() ) );
+
+ connect( editor, TQ_SIGNAL( deleteAttendee( Incidence * ) ),
+ mMainView, TQ_SIGNAL( cancelAttendees( Incidence * ) ) );
}
KOTodoEditor *KODialogManager::getTodoEditor()
diff --git a/korganizer/kodialogmanager.h b/korganizer/kodialogmanager.h
index 4fbb7056..64f1b405 100644
--- a/korganizer/kodialogmanager.h
+++ b/korganizer/kodialogmanager.h
@@ -50,7 +50,7 @@ using namespace KCal;
*/
class KODialogManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
KODialogManager( CalendarView * );
diff --git a/korganizer/koeditoralarms.cpp b/korganizer/koeditoralarms.cpp
index 1415eef5..e7d1beb9 100644
--- a/korganizer/koeditoralarms.cpp
+++ b/korganizer/koeditoralarms.cpp
@@ -206,25 +206,25 @@ KOEditorAlarms::KOEditorAlarms( const TQCString &type,
mWidget->mAlarmList->setResizeMode( TQListView::LastColumn );
mWidget->mAlarmList->setColumnWidthMode( 0, TQListView::Maximum );
mWidget->mAlarmList->setColumnWidthMode( 1, TQListView::Maximum );
- connect( mWidget->mAlarmList, TQT_SIGNAL( selectionChanged( TQListViewItem * ) ),
- TQT_SLOT( selectionChanged( TQListViewItem * ) ) );
- connect( mWidget->mAddButton, TQT_SIGNAL( clicked() ), TQT_SLOT( slotAdd() ) );
- connect( mWidget->mRemoveButton, TQT_SIGNAL( clicked() ), TQT_SLOT( slotRemove() ) );
- connect( mWidget->mDuplicateButton, TQT_SIGNAL( clicked() ), TQT_SLOT( slotDuplicate() ) );
-
- connect( mWidget->mAlarmOffset, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( changed() ) );
- connect( mWidget->mOffsetUnit, TQT_SIGNAL( activated( int ) ), TQT_SLOT( changed() ) );
- connect( mWidget->mBeforeAfter, TQT_SIGNAL( activated( int ) ), TQT_SLOT( changed() ) );
- connect( mWidget->mRepeats, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( changed() ) );
- connect( mWidget->mRepeatCount, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( changed() ) );
- connect( mWidget->mRepeatInterval, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( changed() ) );
- connect( mWidget->mAlarmType, TQT_SIGNAL(clicked(int)), TQT_SLOT( changed() ) );
- connect( mWidget->mDisplayText, TQT_SIGNAL( textChanged() ), TQT_SLOT( changed() ) );
- connect( mWidget->mSoundFile, TQT_SIGNAL( textChanged( const TQString & ) ), TQT_SLOT( changed() ) );
- connect( mWidget->mApplication, TQT_SIGNAL( textChanged( const TQString & ) ), TQT_SLOT( changed() ) );
- connect( mWidget->mAppArguments, TQT_SIGNAL( textChanged( const TQString & ) ), TQT_SLOT( changed() ) );
- connect( mWidget->mEmailAddress, TQT_SIGNAL( textChanged( const TQString & ) ), TQT_SLOT( changed() ) );
- connect( mWidget->mEmailText, TQT_SIGNAL( textChanged() ), TQT_SLOT( changed() ) );
+ connect( mWidget->mAlarmList, TQ_SIGNAL( selectionChanged( TQListViewItem * ) ),
+ TQ_SLOT( selectionChanged( TQListViewItem * ) ) );
+ connect( mWidget->mAddButton, TQ_SIGNAL( clicked() ), TQ_SLOT( slotAdd() ) );
+ connect( mWidget->mRemoveButton, TQ_SIGNAL( clicked() ), TQ_SLOT( slotRemove() ) );
+ connect( mWidget->mDuplicateButton, TQ_SIGNAL( clicked() ), TQ_SLOT( slotDuplicate() ) );
+
+ connect( mWidget->mAlarmOffset, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( changed() ) );
+ connect( mWidget->mOffsetUnit, TQ_SIGNAL( activated( int ) ), TQ_SLOT( changed() ) );
+ connect( mWidget->mBeforeAfter, TQ_SIGNAL( activated( int ) ), TQ_SLOT( changed() ) );
+ connect( mWidget->mRepeats, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( changed() ) );
+ connect( mWidget->mRepeatCount, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( changed() ) );
+ connect( mWidget->mRepeatInterval, TQ_SIGNAL( valueChanged( int ) ), TQ_SLOT( changed() ) );
+ connect( mWidget->mAlarmType, TQ_SIGNAL(clicked(int)), TQ_SLOT( changed() ) );
+ connect( mWidget->mDisplayText, TQ_SIGNAL( textChanged() ), TQ_SLOT( changed() ) );
+ connect( mWidget->mSoundFile, TQ_SIGNAL( textChanged( const TQString & ) ), TQ_SLOT( changed() ) );
+ connect( mWidget->mApplication, TQ_SIGNAL( textChanged( const TQString & ) ), TQ_SLOT( changed() ) );
+ connect( mWidget->mAppArguments, TQ_SIGNAL( textChanged( const TQString & ) ), TQ_SLOT( changed() ) );
+ connect( mWidget->mEmailAddress, TQ_SIGNAL( textChanged( const TQString & ) ), TQ_SLOT( changed() ) );
+ connect( mWidget->mEmailText, TQ_SIGNAL( textChanged() ), TQ_SLOT( changed() ) );
init();
diff --git a/korganizer/koeditoralarms.h b/korganizer/koeditoralarms.h
index f713fcf9..18855733 100644
--- a/korganizer/koeditoralarms.h
+++ b/korganizer/koeditoralarms.h
@@ -33,7 +33,7 @@ class AlarmListViewItem;
class KOEditorAlarms : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOEditorAlarms( const TQCString &type,
diff --git a/korganizer/koeditoralarms_base.ui b/korganizer/koeditoralarms_base.ui
index a5f89cc1..b7a61b60 100644
--- a/korganizer/koeditoralarms_base.ui
+++ b/korganizer/koeditoralarms_base.ui
@@ -662,11 +662,9 @@
<includes>
<include location="global" impldecl="in declaration">addresseelineedit.h</include>
<include location="global" impldecl="in declaration">kurlrequester.h</include>
+ <include location="global" impldecl="in implementation">klineedit.h</include>
+ <include location="global" impldecl="in implementation">kpushbutton.h</include>
+ <include location="global" impldecl="in implementation">libtdepim/addresseelineedit.h</include>
</includes>
<layoutdefaults spacing="6" margin="11"/>
-<includehints>
- <includehint>klineedit.h</includehint>
- <includehint>kpushbutton.h</includehint>
- <includehint>libtdepim/addresseelineedit.h</includehint>
-</includehints>
</UI>
diff --git a/korganizer/koeditorattachments.cpp b/korganizer/koeditorattachments.cpp
index 48b9acdd..669fd636 100644
--- a/korganizer/koeditorattachments.cpp
+++ b/korganizer/koeditorattachments.cpp
@@ -189,7 +189,7 @@ AttachmentEditDialog::AttachmentEditDialog( AttachmentListItem *item,
i18n( "Type any string you desire here for the name of the attachment" ) );
grid->addMultiCellWidget( mLabelEdit, 0, 0, 1, 2 );
- KSeparator *sep = new KSeparator( Qt::Horizontal, topFrame );
+ KSeparator *sep = new KSeparator( TQt::Horizontal, topFrame );
grid->addMultiCellWidget( sep, 1, 1, 0, 2 );
TQLabel *label = new TQLabel( i18n( "Type:" ), topFrame );
@@ -224,10 +224,10 @@ AttachmentEditDialog::AttachmentEditDialog( AttachmentListItem *item,
i18n( "Enter the path to the attachment file or use the "
"file browser by pressing the adjacent button" ) );
grid->addMultiCellWidget( mURLRequester, 4, 4, 1, 2 );
- connect( mURLRequester, TQT_SIGNAL(urlSelected(const TQString &)),
- TQT_SLOT(urlSelected(const TQString &)) );
- connect( mURLRequester, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( urlChanged( const TQString& ) ) );
+ connect( mURLRequester, TQ_SIGNAL(urlSelected(const TQString &)),
+ TQ_SLOT(urlSelected(const TQString &)) );
+ connect( mURLRequester, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( urlChanged( const TQString& ) ) );
urlChanged( item->uri() );
} else {
uint size = item->attachment()->size();
@@ -324,8 +324,8 @@ AttachmentIconView::AttachmentIconView( KOEditorAttachments* parent )
setMaxItemWidth( TQMAX(maxItemWidth(), 250) );
setMinimumHeight( TQMAX(fontMetrics().height(), 16) + 12 );
- connect( this, TQT_SIGNAL( dropped ( TQDropEvent *, const TQValueList<TQIconDragItem> & ) ),
- this, TQT_SLOT( handleDrop( TQDropEvent *, const TQValueList<TQIconDragItem> & ) ) );
+ connect( this, TQ_SIGNAL( dropped ( TQDropEvent *, const TQValueList<TQIconDragItem> & ) ),
+ this, TQ_SLOT( handleDrop( TQDropEvent *, const TQValueList<TQIconDragItem> & ) ) );
}
KURL AttachmentIconView::tempFileForAttachment( KCal::Attachment *attachment )
@@ -462,12 +462,12 @@ KOEditorAttachments::KOEditorAttachments( int spacing, TQWidget *parent,
i18n("Displays a list of current items (files, mail, etc.) "
"that have been associated with this event or to-do. ") );
topLayout->addWidget( mAttachments );
- connect( mAttachments, TQT_SIGNAL( doubleClicked( TQIconViewItem * ) ),
- TQT_SLOT( showAttachment( TQIconViewItem * ) ) );
- connect( mAttachments, TQT_SIGNAL(selectionChanged()),
- TQT_SLOT(selectionChanged()) );
- connect( mAttachments, TQT_SIGNAL(contextMenuRequested(TQIconViewItem*,const TQPoint&)),
- TQT_SLOT(contextMenu(TQIconViewItem*,const TQPoint&)) );
+ connect( mAttachments, TQ_SIGNAL( doubleClicked( TQIconViewItem * ) ),
+ TQ_SLOT( showAttachment( TQIconViewItem * ) ) );
+ connect( mAttachments, TQ_SIGNAL(selectionChanged()),
+ TQ_SLOT(selectionChanged()) );
+ connect( mAttachments, TQ_SIGNAL(contextMenuRequested(TQIconViewItem*,const TQPoint&)),
+ TQ_SLOT(contextMenu(TQIconViewItem*,const TQPoint&)) );
TQPushButton *addButton = new TQPushButton( this );
addButton->setIconSet( SmallIconSet( "add" ) );
@@ -477,7 +477,7 @@ KOEditorAttachments::KOEditorAttachments( int spacing, TQWidget *parent,
"to add to this event or to-do as link or as "
"inline data." ) );
topLayout->addWidget( addButton );
- connect( addButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotAdd()) );
+ connect( addButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotAdd()) );
mRemoveBtn = new TQPushButton( this );
mRemoveBtn->setIconSet( SmallIconSet( "remove" ) );
@@ -486,33 +486,33 @@ KOEditorAttachments::KOEditorAttachments( int spacing, TQWidget *parent,
i18n("Removes the attachment selected in the list above "
"from this event or to-do.") );
topLayout->addWidget( mRemoveBtn );
- connect( mRemoveBtn, TQT_SIGNAL(clicked()), TQT_SLOT(slotRemove()) );
+ connect( mRemoveBtn, TQ_SIGNAL(clicked()), TQ_SLOT(slotRemove()) );
mContextMenu = new TDEPopupMenu( this );
- TDEActionCollection* ac = new TDEActionCollection( TQT_TQWIDGET(this), TQT_TQOBJECT(this) );
+ TDEActionCollection* ac = new TDEActionCollection( this, this );
- mOpenAction = new TDEAction( i18n("Open"), 0, TQT_TQOBJECT(this), TQT_SLOT(slotShow()), ac );
+ mOpenAction = new TDEAction( i18n("Open"), 0, this, TQ_SLOT(slotShow()), ac );
mOpenAction->plug( mContextMenu );
- mSaveAsAction = new TDEAction( i18n( "Save As..." ), 0, TQT_TQOBJECT(this), TQT_SLOT(slotSaveAs()), ac );
+ mSaveAsAction = new TDEAction( i18n( "Save As..." ), 0, this, TQ_SLOT(slotSaveAs()), ac );
mSaveAsAction->plug( mContextMenu );
mContextMenu->insertSeparator();
- mCopyAction = KStdAction::copy(TQT_TQOBJECT(this), TQT_SLOT(slotCopy()), ac );
+ mCopyAction = KStdAction::copy(this, TQ_SLOT(slotCopy()), ac );
mCopyAction->plug( mContextMenu );
- mCutAction = KStdAction::cut(TQT_TQOBJECT(this), TQT_SLOT(slotCut()), ac );
+ mCutAction = KStdAction::cut(this, TQ_SLOT(slotCut()), ac );
mCutAction->plug( mContextMenu );
- TDEAction *action = KStdAction::paste(TQT_TQOBJECT(this), TQT_SLOT(slotPaste()), ac );
+ TDEAction *action = KStdAction::paste(this, TQ_SLOT(slotPaste()), ac );
action->plug( mContextMenu );
mContextMenu->insertSeparator();
- mDeleteAction = new TDEAction( i18n( "&Remove" ), 0, TQT_TQOBJECT(this), TQT_SLOT(slotRemove()), ac );
+ mDeleteAction = new TDEAction( i18n( "&Remove" ), 0, this, TQ_SLOT(slotRemove()), ac );
mDeleteAction->plug( mContextMenu );
mDeleteAction->setShortcut( Key_Delete );
mContextMenu->insertSeparator();
- mEditAction = new TDEAction( i18n( "&Properties..." ), 0, TQT_TQOBJECT(this), TQT_SLOT(slotEdit()), ac );
+ mEditAction = new TDEAction( i18n( "&Properties..." ), 0, this, TQ_SLOT(slotEdit()), ac );
mEditAction->plug( mContextMenu );
selectionChanged();
@@ -691,7 +691,7 @@ void KOEditorAttachments::slotEdit()
AttachmentEditDialog *dialog = new AttachmentEditDialog( attitem, mAttachments );
dialog->mInline->setEnabled( false );
dialog->setModal( false );
- connect( dialog, TQT_SIGNAL(hidden()), dialog, TQT_SLOT(delayedDestruct()) );
+ connect( dialog, TQ_SIGNAL(hidden()), dialog, TQ_SLOT(delayedDestruct()) );
dialog->show();
}
}
@@ -854,7 +854,7 @@ void KOEditorAttachments::readIncidence( KCal::Incidence *i )
addAttachment( (*it) );
}
if ( mAttachments->count() > 0 ) {
- TQTimer::singleShot( 0, mAttachments, TQT_SLOT(arrangeItemsInGrid()) );
+ TQTimer::singleShot( 0, mAttachments, TQ_SLOT(arrangeItemsInGrid()) );
}
}
diff --git a/korganizer/koeditorattachments.h b/korganizer/koeditorattachments.h
index b89dd0b3..adeded3a 100644
--- a/korganizer/koeditorattachments.h
+++ b/korganizer/koeditorattachments.h
@@ -56,7 +56,7 @@ class KTempDir;
class AttachmentEditDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
AttachmentEditDialog( AttachmentListItem *item, TQWidget *parent=0 );
@@ -80,7 +80,7 @@ class AttachmentEditDialog : public KDialogBase
class KOEditorAttachments : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOEditorAttachments( int spacing = 8, TQWidget *parent = 0,
@@ -151,7 +151,7 @@ class KOEditorAttachments : public TQWidget
class AttachmentIconView : public TDEIconView
{
- Q_OBJECT
+ TQ_OBJECT
friend class KOEditorAttachments;
diff --git a/korganizer/koeditordetails.cpp b/korganizer/koeditordetails.cpp
index 95d21176..9d570f16 100644
--- a/korganizer/koeditordetails.cpp
+++ b/korganizer/koeditordetails.cpp
@@ -208,17 +208,17 @@ KOEditorDetails::KOEditorDetails( int spacing, TQWidget *parent,
mListView->setFixedHeight( 78 );
}
- connect( mListView, TQT_SIGNAL( selectionChanged( TQListViewItem * ) ),
- TQT_SLOT( updateAttendeeInput() ) );
+ connect( mListView, TQ_SIGNAL( selectionChanged( TQListViewItem * ) ),
+ TQ_SLOT( updateAttendeeInput() ) );
#ifndef KORG_NODND
- connect( mListView, TQT_SIGNAL( dropped( Attendee * ) ),
- TQT_SLOT( slotInsertAttendee( Attendee * ) ) );
+ connect( mListView, TQ_SIGNAL( dropped( Attendee * ) ),
+ TQ_SLOT( slotInsertAttendee( Attendee * ) ) );
#endif
topLayout->addWidget( mListView );
initEditWidgets( this, topLayout );
- connect( mRemoveButton, TQT_SIGNAL(clicked()), TQT_SLOT(removeAttendee()) );
+ connect( mRemoveButton, TQ_SIGNAL(clicked()), TQ_SLOT(removeAttendee()) );
updateAttendeeInput();
}
diff --git a/korganizer/koeditordetails.h b/korganizer/koeditordetails.h
index 97fac51c..418c8edb 100644
--- a/korganizer/koeditordetails.h
+++ b/korganizer/koeditordetails.h
@@ -59,7 +59,7 @@ typedef CustomListViewItem<KCal::Attendee *> AttendeeListItem;
*/
class KOAttendeeListView : public TDEListView
{
-Q_OBJECT
+TQ_OBJECT
public:
KOAttendeeListView (TQWidget *parent=0, const char *name=0);
@@ -78,7 +78,7 @@ signals:
class KOEditorDetails : public KOAttendeeEditor
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOEditorDetails (int spacing = 8,TQWidget* parent = 0, const char* name = 0);
diff --git a/korganizer/koeditorfreebusy.cpp b/korganizer/koeditorfreebusy.cpp
index 88c5414b..05db9b5d 100644
--- a/korganizer/koeditorfreebusy.cpp
+++ b/korganizer/koeditorfreebusy.cpp
@@ -263,15 +263,15 @@ KOEditorFreeBusy::KOEditorFreeBusy( int spacing, TQWidget *parent,
scaleCombo->insertItem( i18n( "Month" ) );
scaleCombo->insertItem( i18n( "Automatic" ) );
scaleCombo->setCurrentItem( 0 ); // start with "hour"
- connect( scaleCombo, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( slotScaleChanged( int ) ) );
+ connect( scaleCombo, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( slotScaleChanged( int ) ) );
controlLayout->addWidget( scaleCombo );
TQPushButton *button = new TQPushButton( i18n( "Center on Start" ), this );
TQWhatsThis::add( button,
i18n("Centers the Gantt chart on the start time "
"and day of this event.") );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( slotCenterOnStart() ) );
+ connect( button, TQ_SIGNAL( clicked() ), TQ_SLOT( slotCenterOnStart() ) );
controlLayout->addWidget( button );
controlLayout->addStretch( 1 );
@@ -280,7 +280,7 @@ KOEditorFreeBusy::KOEditorFreeBusy( int spacing, TQWidget *parent,
TQWhatsThis::add( button,
i18n("Moves the event to a date and time when all the "
"attendees are free.") );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( slotPickDate() ) );
+ connect( button, TQ_SIGNAL( clicked() ), TQ_SLOT( slotPickDate() ) );
controlLayout->addWidget( button );
controlLayout->addStretch( 1 );
@@ -290,7 +290,7 @@ KOEditorFreeBusy::KOEditorFreeBusy( int spacing, TQWidget *parent,
i18n("Reloads Free/Busy data for all attendees from "
"the corresponding servers.") );
controlLayout->addWidget( button );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( manualReload() ) );
+ connect( button, TQ_SIGNAL( clicked() ), TQ_SLOT( manualReload() ) );
mGanttView = new KDGanttView( this, "mGanttView" );
TQWhatsThis::add( mGanttView,
@@ -330,37 +330,37 @@ KOEditorFreeBusy::KOEditorFreeBusy( int spacing, TQWidget *parent,
mEventRectangle->setColor( TQt::magenta );
mGanttView->addIntervalBackgroundColor( mEventRectangle );
- connect( mGanttView, TQT_SIGNAL ( timeIntervalSelected( const TQDateTime &,
+ connect( mGanttView, TQ_SIGNAL ( timeIntervalSelected( const TQDateTime &,
const TQDateTime & ) ),
- mGanttView, TQT_SLOT( zoomToSelection( const TQDateTime &,
+ mGanttView, TQ_SLOT( zoomToSelection( const TQDateTime &,
const TQDateTime & ) ) );
- connect( mGanttView, TQT_SIGNAL( lvItemDoubleClicked( KDGanttViewItem * ) ),
- TQT_SLOT( editFreeBusyUrl( KDGanttViewItem * ) ) );
- connect( mGanttView, TQT_SIGNAL( intervalColorRectangleMoved( const TQDateTime&, const TQDateTime& ) ),
- this, TQT_SLOT( slotIntervalColorRectangleMoved( const TQDateTime&, const TQDateTime& ) ) );
-
- connect( mGanttView, TQT_SIGNAL(lvSelectionChanged(KDGanttViewItem*)),
- this, TQT_SLOT(updateAttendeeInput()) );
- connect( mGanttView, TQT_SIGNAL(lvItemLeftClicked(KDGanttViewItem*)),
- this, TQT_SLOT(showAttendeeStatusMenu()) );
- connect( mGanttView, TQT_SIGNAL(lvItemRightClicked(KDGanttViewItem*)),
- this, TQT_SLOT(showAttendeeStatusMenu()) );
- connect( mGanttView, TQT_SIGNAL(lvMouseButtonClicked(int, KDGanttViewItem*, const TQPoint&, int)),
- this, TQT_SLOT(listViewClicked(int, KDGanttViewItem*)) );
+ connect( mGanttView, TQ_SIGNAL( lvItemDoubleClicked( KDGanttViewItem * ) ),
+ TQ_SLOT( editFreeBusyUrl( KDGanttViewItem * ) ) );
+ connect( mGanttView, TQ_SIGNAL( intervalColorRectangleMoved( const TQDateTime&, const TQDateTime& ) ),
+ this, TQ_SLOT( slotIntervalColorRectangleMoved( const TQDateTime&, const TQDateTime& ) ) );
+
+ connect( mGanttView, TQ_SIGNAL(lvSelectionChanged(KDGanttViewItem*)),
+ this, TQ_SLOT(updateAttendeeInput()) );
+ connect( mGanttView, TQ_SIGNAL(lvItemLeftClicked(KDGanttViewItem*)),
+ this, TQ_SLOT(showAttendeeStatusMenu()) );
+ connect( mGanttView, TQ_SIGNAL(lvItemRightClicked(KDGanttViewItem*)),
+ this, TQ_SLOT(showAttendeeStatusMenu()) );
+ connect( mGanttView, TQ_SIGNAL(lvMouseButtonClicked(int, KDGanttViewItem*, const TQPoint&, int)),
+ this, TQ_SLOT(listViewClicked(int, KDGanttViewItem*)) );
FreeBusyManager *m = KOGroupware::instance()->freeBusyManager();
- connect( m, TQT_SIGNAL( freeBusyRetrieved( KCal::FreeBusy *, const TQString & ) ),
- TQT_SLOT( slotInsertFreeBusy( KCal::FreeBusy *, const TQString & ) ) );
+ connect( m, TQ_SIGNAL( freeBusyRetrieved( KCal::FreeBusy *, const TQString & ) ),
+ TQ_SLOT( slotInsertFreeBusy( KCal::FreeBusy *, const TQString & ) ) );
- connect( &mReloadTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( autoReload() ) );
+ connect( &mReloadTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( autoReload() ) );
initEditWidgets( this, topLayout );
- connect( mRemoveButton, TQT_SIGNAL(clicked()),
- TQT_SLOT(removeAttendee()) );
+ connect( mRemoveButton, TQ_SIGNAL(clicked()),
+ TQ_SLOT(removeAttendee()) );
slotOrganizerChanged( mOrganizerCombo->currentText() );
- connect( mOrganizerCombo, TQT_SIGNAL( activated(const TQString&) ),
- this, TQT_SLOT( slotOrganizerChanged(const TQString&) ) );
+ connect( mOrganizerCombo, TQ_SIGNAL( activated(const TQString&) ),
+ this, TQ_SLOT( slotOrganizerChanged(const TQString&) ) );
//suppress the buggy consequences of clicks on the time header widget
mGanttView->timeHeaderWidget()->installEventFilter( this );
@@ -923,7 +923,7 @@ void KOEditorFreeBusy::showAttendeeStatusMenu()
void KOEditorFreeBusy::listViewClicked(int button, KDGanttViewItem * item)
{
- if ( button == Qt::LeftButton && item == 0 )
+ if ( button == TQt::LeftButton && item == 0 )
addNewAttendee();
}
@@ -983,7 +983,7 @@ void KOEditorFreeBusy::slotOrganizerChanged(const TQString & newOrganizer)
bool KOEditorFreeBusy::eventFilter( TQObject *watched, TQEvent *event )
{
- if ( TQT_BASE_OBJECT(watched) == TQT_BASE_OBJECT(mGanttView->timeHeaderWidget()) &&
+ if ( watched == mGanttView->timeHeaderWidget() &&
event->type() >= TQEvent::MouseButtonPress && event->type() <= TQEvent::MouseMove ) {
return true;
} else {
diff --git a/korganizer/koeditorfreebusy.h b/korganizer/koeditorfreebusy.h
index c5201fc2..2af15f44 100644
--- a/korganizer/koeditorfreebusy.h
+++ b/korganizer/koeditorfreebusy.h
@@ -44,7 +44,7 @@ namespace KCal {
class KOEditorFreeBusy : public KOAttendeeEditor
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOEditorFreeBusy( int spacing = 8, TQWidget *parent = 0,
diff --git a/korganizer/koeditorgeneral.cpp b/korganizer/koeditorgeneral.cpp
index 304fea93..c8c70277 100644
--- a/korganizer/koeditorgeneral.cpp
+++ b/korganizer/koeditorgeneral.cpp
@@ -114,8 +114,8 @@ void KOEditorGeneral::initHeader( TQWidget *parent,TQBoxLayout *topLayout)
mSummaryEdit = new FocusLineEdit( parent );
TQWhatsThis::add( mSummaryEdit, whatsThis );
- connect( mSummaryEdit, TQT_SIGNAL( focusReceivedSignal() ),
- TQT_SIGNAL( focusReceivedSignal() ) );
+ connect( mSummaryEdit, TQ_SIGNAL( focusReceivedSignal() ),
+ TQ_SIGNAL( focusReceivedSignal() ) );
headerLayout->addWidget(mSummaryEdit,1,1);
summaryLabel->setBuddy( mSummaryEdit );
@@ -152,7 +152,7 @@ void KOEditorGeneral::initHeader( TQWidget *parent,TQBoxLayout *topLayout)
mCategoriesButton = new TQPushButton( parent );
mCategoriesButton->setText(i18n("Select..."));
TQWhatsThis::add( mCategoriesButton, whatsThis );
- connect(mCategoriesButton,TQT_SIGNAL(clicked()),TQT_SLOT(selectCategories()));
+ connect(mCategoriesButton,TQ_SIGNAL(clicked()),TQ_SLOT(selectCategories()));
thirdLineLayout->addWidget( mCategoriesButton );
}
@@ -209,7 +209,7 @@ void KOEditorGeneral::initAlarm( TQWidget *parent, TQBoxLayout *topLayout )
i18n( "Push this button to create an advanced set of reminders "
"for this event or to-do." ) );
TQToolTip::add( mAlarmAdvancedButton, i18n( "Set an advanced reminder" ) );
- connect( mAlarmAdvancedButton, TQT_SIGNAL(clicked()), TQT_SLOT(editAlarms()) );
+ connect( mAlarmAdvancedButton, TQ_SIGNAL(clicked()), TQ_SLOT(editAlarms()) );
alarmLayout->addWidget( mAlarmAdvancedButton );
mSimpleAlarmBox = new TQHBox( parent );
@@ -247,17 +247,17 @@ void KOEditorGeneral::initAlarm( TQWidget *parent, TQBoxLayout *topLayout )
mAlarmTimeEdit->setEnabled( false );
mAlarmIncrCombo->setEnabled( false );
mAlarmInfoLabel->setEnabled( false );
- connect( mAlarmButton, TQT_SIGNAL(toggled(bool)), mAlarmAdvancedButton, TQT_SLOT(setEnabled(bool)) );
- connect( mAlarmButton, TQT_SIGNAL(toggled(bool)), mAlarmTimeEdit, TQT_SLOT(setEnabled(bool)) );
- connect( mAlarmButton, TQT_SIGNAL(toggled(bool)), mAlarmIncrCombo, TQT_SLOT(setEnabled(bool)) );
- connect( mAlarmButton, TQT_SIGNAL(toggled(bool)), mAlarmInfoLabel, TQT_SLOT(setEnabled(bool)) );
+ connect( mAlarmButton, TQ_SIGNAL(toggled(bool)), mAlarmAdvancedButton, TQ_SLOT(setEnabled(bool)) );
+ connect( mAlarmButton, TQ_SIGNAL(toggled(bool)), mAlarmTimeEdit, TQ_SLOT(setEnabled(bool)) );
+ connect( mAlarmButton, TQ_SIGNAL(toggled(bool)), mAlarmIncrCombo, TQ_SLOT(setEnabled(bool)) );
+ connect( mAlarmButton, TQ_SIGNAL(toggled(bool)), mAlarmInfoLabel, TQ_SLOT(setEnabled(bool)) );
}
void KOEditorGeneral::initAttachments(TQWidget *parent,TQBoxLayout *topLayout)
{
mAttachments = new KOEditorAttachments( KDialog::spacingHint(), parent );
- connect( mAttachments, TQT_SIGNAL( openURL( const KURL & ) ) ,
- this, TQT_SIGNAL( openURL( const KURL & ) ) );
+ connect( mAttachments, TQ_SIGNAL( openURL( const KURL & ) ) ,
+ this, TQ_SIGNAL( openURL( const KURL & ) ) );
topLayout->addWidget( mAttachments, 1 );
}
@@ -290,8 +290,8 @@ void KOEditorGeneral::selectCategories()
KOGlobals::fitDialogToScreen( categoryDialog );
categoryDialog->setSelected( mCategories );
- connect(categoryDialog, TQT_SIGNAL(editCategories()), this, TQT_SIGNAL(openCategoryDialog()));
- connect(this, TQT_SIGNAL(updateCategoryConfig()), categoryDialog, TQT_SLOT(updateCategoryConfig()));
+ connect(categoryDialog, TQ_SIGNAL(editCategories()), this, TQ_SIGNAL(openCategoryDialog()));
+ connect(this, TQ_SIGNAL(updateCategoryConfig()), categoryDialog, TQ_SLOT(updateCategoryConfig()));
if ( categoryDialog->exec() ) {
setCategories( categoryDialog->selectedCategories() );
@@ -573,7 +573,7 @@ void KOEditorGeneral::setDescription( const TQString &text )
TQObject *KOEditorGeneral::typeAheadReceiver() const
{
- return TQT_TQOBJECT(mSummaryEdit);
+ return mSummaryEdit;
}
void KOEditorGeneral::updateAttendeeSummary(int count)
diff --git a/korganizer/koeditorgeneral.h b/korganizer/koeditorgeneral.h
index c387792a..b005d608 100644
--- a/korganizer/koeditorgeneral.h
+++ b/korganizer/koeditorgeneral.h
@@ -48,7 +48,7 @@ using namespace KCal;
class FocusLineEdit : public TQLineEdit
{
- Q_OBJECT
+ TQ_OBJECT
public:
FocusLineEdit( TQWidget *parent );
@@ -65,7 +65,7 @@ class FocusLineEdit : public TQLineEdit
class KOEditorGeneral : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOEditorGeneral (TQObject* parent=0,const char* name=0);
diff --git a/korganizer/koeditorgeneralevent.cpp b/korganizer/koeditorgeneralevent.cpp
index 49b4d969..2772fbee 100644
--- a/korganizer/koeditorgeneralevent.cpp
+++ b/korganizer/koeditorgeneralevent.cpp
@@ -60,10 +60,10 @@ KOEditorGeneralEvent::KOEditorGeneralEvent(TQObject* parent,
const char* name) :
KOEditorGeneral( parent, name)
{
- connect( this, TQT_SIGNAL( dateTimesChanged( const TQDateTime &, const TQDateTime & )),
- TQT_SLOT( setDuration() ) );
- connect( this, TQT_SIGNAL( dateTimesChanged( const TQDateTime &, const TQDateTime & )),
- TQT_SLOT( emitDateTimeStr() ));
+ connect( this, TQ_SIGNAL( dateTimesChanged( const TQDateTime &, const TQDateTime & )),
+ TQ_SLOT( setDuration() ) );
+ connect( this, TQ_SIGNAL( dateTimesChanged( const TQDateTime &, const TQDateTime & )),
+ TQ_SLOT( emitDateTimeStr() ));
}
KOEditorGeneralEvent::~KOEditorGeneralEvent()
@@ -95,7 +95,7 @@ void KOEditorGeneralEvent::initTime(TQWidget *parent,TQBoxLayout *topLayout)
{
TQBoxLayout *timeLayout = new TQVBoxLayout(topLayout);
- TQGroupBox *timeGroupBox = new TQGroupBox(1,Qt::Horizontal,
+ TQGroupBox *timeGroupBox = new TQGroupBox(1,TQt::Horizontal,
i18n("Date && Time"),parent);
TQWhatsThis::add( timeGroupBox,
i18n("Sets options related to the date and time of the "
@@ -130,22 +130,22 @@ void KOEditorGeneralEvent::initTime(TQWidget *parent,TQBoxLayout *topLayout)
mAlldayEventCheckbox = new TQCheckBox(i18n("All-&day"),timeBoxFrame);
layoutTimeBox->addWidget( mAlldayEventCheckbox, 0, 3 );
- connect(mAlldayEventCheckbox, TQT_SIGNAL(toggled(bool)),TQT_SLOT(associateTime(bool)));
+ connect(mAlldayEventCheckbox, TQ_SIGNAL(toggled(bool)),TQ_SLOT(associateTime(bool)));
mDurationLabel = new TQLabel( timeBoxFrame );
layoutTimeBox->addWidget( mDurationLabel, 1, 3 );
// time widgets are checked if they contain a valid time
- connect(mStartTimeEdit, TQT_SIGNAL(timeChanged(TQTime)),
- this, TQT_SLOT(startTimeChanged(TQTime)));
- connect(mEndTimeEdit, TQT_SIGNAL(timeChanged(TQTime)),
- this, TQT_SLOT(endTimeChanged(TQTime)));
+ connect(mStartTimeEdit, TQ_SIGNAL(timeChanged(TQTime)),
+ this, TQ_SLOT(startTimeChanged(TQTime)));
+ connect(mEndTimeEdit, TQ_SIGNAL(timeChanged(TQTime)),
+ this, TQ_SLOT(endTimeChanged(TQTime)));
// date widgets are checked if they contain a valid date
- connect(mStartDateEdit, TQT_SIGNAL(dateChanged(const TQDate&)),
- this, TQT_SLOT(startDateChanged(const TQDate&)));
- connect(mEndDateEdit, TQT_SIGNAL(dateChanged(const TQDate&)),
- this, TQT_SLOT(endDateChanged(const TQDate&)));
+ connect(mStartDateEdit, TQ_SIGNAL(dateChanged(const TQDate&)),
+ this, TQ_SLOT(startDateChanged(const TQDate&)));
+ connect(mEndDateEdit, TQ_SIGNAL(dateChanged(const TQDate&)),
+ this, TQ_SLOT(endDateChanged(const TQDate&)));
TQLabel *label = new TQLabel( i18n( "Recurrence:" ), timeBoxFrame );
layoutTimeBox->addWidget( label, 2, 0 );
@@ -154,7 +154,7 @@ void KOEditorGeneralEvent::initTime(TQWidget *parent,TQBoxLayout *topLayout)
mRecEditButton = new TQPushButton( timeBoxFrame );
mRecEditButton->setIconSet( KOGlobals::self()->smallIconSet( "recur", 16 ) );
recLayout->addWidget( mRecEditButton );
- connect( mRecEditButton, TQT_SIGNAL(clicked()), TQT_SIGNAL(editRecurrence()) );
+ connect( mRecEditButton, TQ_SIGNAL(clicked()), TQ_SIGNAL(editRecurrence()) );
mRecEditLabel = new TQLabel( TQString(), timeBoxFrame );
recLayout->addWidget( mRecEditLabel );
recLayout->addStretch( 1 );
@@ -206,12 +206,12 @@ void KOEditorGeneralEvent::initInvitationBar(TQWidget * parent, TQBoxLayout * la
barLayout->addWidget( label );
barLayout->addStretch( 1 );
TQPushButton *button = new TQPushButton( i18n("Accept"), mInvitationBar );
- connect( button, TQT_SIGNAL(clicked()), TQT_SIGNAL(acceptInvitation()) );
- connect( button, TQT_SIGNAL(clicked()), mInvitationBar, TQT_SLOT(hide()) );
+ connect( button, TQ_SIGNAL(clicked()), TQ_SIGNAL(acceptInvitation()) );
+ connect( button, TQ_SIGNAL(clicked()), mInvitationBar, TQ_SLOT(hide()) );
barLayout->addWidget( button );
button = new TQPushButton( i18n("Decline"), mInvitationBar );
- connect( button, TQT_SIGNAL(clicked()), TQT_SIGNAL(declineInvitation()) );
- connect( button, TQT_SIGNAL(clicked()), mInvitationBar, TQT_SLOT(hide()) );
+ connect( button, TQ_SIGNAL(clicked()), TQ_SIGNAL(declineInvitation()) );
+ connect( button, TQ_SIGNAL(clicked()), mInvitationBar, TQ_SLOT(hide()) );
barLayout->addWidget( button );
mInvitationBar->hide();
diff --git a/korganizer/koeditorgeneralevent.h b/korganizer/koeditorgeneralevent.h
index c6ace2b1..0483d400 100644
--- a/korganizer/koeditorgeneralevent.h
+++ b/korganizer/koeditorgeneralevent.h
@@ -41,7 +41,7 @@ using namespace KCal;
class KOEditorGeneralEvent : public KOEditorGeneral
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOEditorGeneralEvent (TQObject* parent=0,const char* name=0);
diff --git a/korganizer/koeditorgeneraljournal.cpp b/korganizer/koeditorgeneraljournal.cpp
index 9b27c063..34191bed 100644
--- a/korganizer/koeditorgeneraljournal.cpp
+++ b/korganizer/koeditorgeneraljournal.cpp
@@ -47,7 +47,7 @@
KOEditorGeneralJournal::KOEditorGeneralJournal( TQWidget *parent,
const char *name )
- : KOEditorGeneral( TQT_TQOBJECT(parent), name )
+ : KOEditorGeneral( parent, name )
{
setType( "Journal" );
}
@@ -94,8 +94,8 @@ void KOEditorGeneralJournal::initDate( TQWidget *parent, TQBoxLayout *topLayout
mTimeEdit = new KTimeEdit( parent );
dateLayout->addWidget( mTimeEdit );
- connect( mTimeCheckBox, TQT_SIGNAL(toggled(bool)),
- mTimeEdit, TQT_SLOT(setEnabled(bool)) );
+ connect( mTimeCheckBox, TQ_SIGNAL(toggled(bool)),
+ mTimeEdit, TQ_SLOT(setEnabled(bool)) );
dateLayout->addStretch();
setTime( TQTime( -1, -1, -1 ) );
diff --git a/korganizer/koeditorgeneraljournal.h b/korganizer/koeditorgeneraljournal.h
index 0a2eef18..0de0be42 100644
--- a/korganizer/koeditorgeneraljournal.h
+++ b/korganizer/koeditorgeneraljournal.h
@@ -47,7 +47,7 @@ using namespace KCal;
class KOEditorGeneralJournal : public KOEditorGeneral
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOEditorGeneralJournal ( TQWidget *parent=0, const char* name=0 );
diff --git a/korganizer/koeditorgeneraltodo.cpp b/korganizer/koeditorgeneraltodo.cpp
index 5af7fd60..b871575b 100644
--- a/korganizer/koeditorgeneraltodo.cpp
+++ b/korganizer/koeditorgeneraltodo.cpp
@@ -96,7 +96,7 @@ void KOEditorGeneralTodo::initTime(TQWidget *parent,TQBoxLayout *topLayout)
kdDebug(5850) << k_funcinfo << endl;
TQBoxLayout *timeLayout = new TQVBoxLayout(topLayout);
- TQGroupBox *timeGroupBox = new TQGroupBox(1,Qt::Horizontal,
+ TQGroupBox *timeGroupBox = new TQGroupBox(1,TQt::Horizontal,
i18n("Date && Time"),parent);
timeLayout->addWidget(timeGroupBox);
@@ -113,46 +113,46 @@ void KOEditorGeneralTodo::initTime(TQWidget *parent,TQBoxLayout *topLayout)
mStartCheck = new TQCheckBox(i18n("Sta&rt:"),timeBoxFrame);
TQWhatsThis::add( mStartCheck, whatsThis );
layoutTimeBox->addWidget(mStartCheck,0,0);
- connect(mStartCheck,TQT_SIGNAL(toggled(bool)),TQT_SLOT(enableStartEdit(bool)));
- connect(mStartCheck,TQT_SIGNAL(toggled(bool)),TQT_SLOT(startDateModified()));
+ connect(mStartCheck,TQ_SIGNAL(toggled(bool)),TQ_SLOT(enableStartEdit(bool)));
+ connect(mStartCheck,TQ_SIGNAL(toggled(bool)),TQ_SLOT(startDateModified()));
mStartDateEdit = new KDateEdit(timeBoxFrame);
TQWhatsThis::add( mStartDateEdit, whatsThis );
layoutTimeBox->addWidget(mStartDateEdit,0,1);
- connect(mStartDateEdit,TQT_SIGNAL(dateChanged(const TQDate&)),TQT_SLOT(startDateModified()));
+ connect(mStartDateEdit,TQ_SIGNAL(dateChanged(const TQDate&)),TQ_SLOT(startDateModified()));
mStartTimeEdit = new KTimeEdit(timeBoxFrame);
TQWhatsThis::add( mStartTimeEdit,
i18n("Sets the start time for this to-do.") );
layoutTimeBox->addWidget(mStartTimeEdit,0,2);
- connect(mStartTimeEdit,TQT_SIGNAL(timeChanged(TQTime)),TQT_SLOT(startDateModified()));
+ connect(mStartTimeEdit,TQ_SIGNAL(timeChanged(TQTime)),TQ_SLOT(startDateModified()));
whatsThis = i18n("Sets the due date for this to-do.");
mDueCheck = new TQCheckBox(i18n("&Due:"),timeBoxFrame);
TQWhatsThis::add( mDueCheck, whatsThis );
layoutTimeBox->addWidget(mDueCheck,1,0);
- connect(mDueCheck,TQT_SIGNAL(toggled(bool)),TQT_SLOT(enableDueEdit(bool)));
- connect(mDueCheck,TQT_SIGNAL(toggled(bool)),TQT_SIGNAL(dueDateEditToggle(bool)));
- connect(mDueCheck,TQT_SIGNAL(toggled(bool)),TQT_SLOT(dateChanged()));
+ connect(mDueCheck,TQ_SIGNAL(toggled(bool)),TQ_SLOT(enableDueEdit(bool)));
+ connect(mDueCheck,TQ_SIGNAL(toggled(bool)),TQ_SIGNAL(dueDateEditToggle(bool)));
+ connect(mDueCheck,TQ_SIGNAL(toggled(bool)),TQ_SLOT(dateChanged()));
mDueDateEdit = new KDateEdit(timeBoxFrame);
TQWhatsThis::add( mDueDateEdit, whatsThis );
layoutTimeBox->addWidget(mDueDateEdit,1,1);
- connect(mDueDateEdit,TQT_SIGNAL(dateChanged(const TQDate&)),TQT_SLOT(dateChanged()));
+ connect(mDueDateEdit,TQ_SIGNAL(dateChanged(const TQDate&)),TQ_SLOT(dateChanged()));
mDueTimeEdit = new KTimeEdit(timeBoxFrame);
TQWhatsThis::add( mDueTimeEdit,
i18n("Sets the due time for this to-do.") );
layoutTimeBox->addWidget(mDueTimeEdit,1,2);
- connect(mDueTimeEdit,TQT_SIGNAL(timeChanged( TQTime )),TQT_SLOT(dateChanged()));
+ connect(mDueTimeEdit,TQ_SIGNAL(timeChanged( TQTime )),TQ_SLOT(dateChanged()));
mTimeButton = new TQCheckBox(i18n("Ti&me associated"),timeBoxFrame);
TQWhatsThis::add( mTimeButton,
i18n("Sets whether or not this to-do's start and due dates "
"have times associated with them.") );
layoutTimeBox->addWidget( mTimeButton, 0, 3 );
- connect(mTimeButton,TQT_SIGNAL(toggled(bool)),TQT_SLOT(enableTimeEdits(bool)));
- connect(mTimeButton,TQT_SIGNAL(toggled(bool)),TQT_SLOT(dateChanged()));
+ connect(mTimeButton,TQ_SIGNAL(toggled(bool)),TQ_SLOT(enableTimeEdits(bool)));
+ connect(mTimeButton,TQ_SIGNAL(toggled(bool)),TQ_SLOT(dateChanged()));
TQLabel *label = new TQLabel( i18n( "Recurrence:" ), timeBoxFrame );
layoutTimeBox->addWidget( label, 3, 0 );
@@ -161,7 +161,7 @@ void KOEditorGeneralTodo::initTime(TQWidget *parent,TQBoxLayout *topLayout)
mRecEditButton = new TQPushButton( timeBoxFrame );
mRecEditButton->setIconSet( KOGlobals::self()->smallIconSet( "recur", 16 ) );
recLayout->addWidget( mRecEditButton );
- connect( mRecEditButton, TQT_SIGNAL(clicked()), TQT_SIGNAL(editRecurrence()) );
+ connect( mRecEditButton, TQ_SIGNAL(clicked()), TQ_SIGNAL(editRecurrence()) );
mRecEditLabel = new TQLabel( TQString(), timeBoxFrame );
recLayout->addWidget( mRecEditLabel );
recLayout->addStretch( 1 );
@@ -195,7 +195,7 @@ void KOEditorGeneralTodo::initCompletion( TQWidget *parent, TQBoxLayout *topLayo
TQWhatsThis::add( mCompletedToggle,
i18n( "Click this checkbox to toggle the completed percentage of the to-do "
"between 0% or 100%" ) );
- connect( mCompletedToggle, TQT_SIGNAL(clicked()), TQT_SLOT(completedChanged()) );
+ connect( mCompletedToggle, TQ_SIGNAL(clicked()), TQ_SLOT(completedChanged()) );
completionLayout->addWidget( mCompletedToggle );
label->setBuddy( mCompletedToggle );
@@ -209,7 +209,7 @@ void KOEditorGeneralTodo::initCompletion( TQWidget *parent, TQBoxLayout *topLayo
TQString label = i18n( "Percent complete", "%1 %" ).arg( i );
mCompletedCombo->insertItem( label );
}
- connect( mCompletedCombo, TQT_SIGNAL(activated(int)), TQT_SLOT(completedChanged(int)) );
+ connect( mCompletedCombo, TQ_SIGNAL(activated(int)), TQ_SLOT(completedChanged(int)) );
completionLayout->addWidget( mCompletedCombo );
mCompletedLabel = new TQLabel( i18n( "completed on", "on" ), parent );
diff --git a/korganizer/koeditorgeneraltodo.h b/korganizer/koeditorgeneraltodo.h
index 3ccf9c81..07395f1e 100644
--- a/korganizer/koeditorgeneraltodo.h
+++ b/korganizer/koeditorgeneraltodo.h
@@ -41,7 +41,7 @@ using namespace KCal;
class KOEditorGeneralTodo : public KOEditorGeneral
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOEditorGeneralTodo (TQObject* parent=0,const char* name=0);
diff --git a/korganizer/koeditorrecurrence.cpp b/korganizer/koeditorrecurrence.cpp
index ac372db7..5a5beae6 100644
--- a/korganizer/koeditorrecurrence.cpp
+++ b/korganizer/koeditorrecurrence.cpp
@@ -578,7 +578,7 @@ ExceptionsWidget::ExceptionsWidget( TQWidget *parent, const char *name ) :
{
TQBoxLayout *topLayout = new TQVBoxLayout( this );
- TQGroupBox *groupBox = new TQGroupBox( 1, Qt::Horizontal, i18n("E&xceptions"),
+ TQGroupBox *groupBox = new TQGroupBox( 1, TQt::Horizontal, i18n("E&xceptions"),
this );
topLayout->addWidget( groupBox );
@@ -620,12 +620,12 @@ ExceptionsWidget::ExceptionsWidget( TQWidget *parent, const char *name ) :
boxLayout->setRowStretch( 4, 1 );
boxLayout->setColStretch( 1, 3 );
- connect( addExceptionButton, TQT_SIGNAL( clicked() ),
- TQT_SLOT( addException() ) );
- connect( changeExceptionButton, TQT_SIGNAL( clicked() ),
- TQT_SLOT( changeException() ) );
- connect( deleteExceptionButton, TQT_SIGNAL( clicked() ),
- TQT_SLOT( deleteException() ) );
+ connect( addExceptionButton, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( addException() ) );
+ connect( changeExceptionButton, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( changeException() ) );
+ connect( deleteExceptionButton, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( deleteException() ) );
}
void ExceptionsWidget::addException()
@@ -700,7 +700,7 @@ RecurrenceRangeWidget::RecurrenceRangeWidget( TQWidget *parent,
{
TQBoxLayout *topLayout = new TQVBoxLayout( this );
- mRangeGroupBox = new TQGroupBox( 1, Qt::Horizontal, i18n("Recurrence Range"),
+ mRangeGroupBox = new TQGroupBox( 1, TQt::Horizontal, i18n("Recurrence Range"),
this );
TQWhatsThis::add( mRangeGroupBox,
i18n("Sets a range for which these recurrence rules will "
@@ -765,12 +765,12 @@ RecurrenceRangeWidget::RecurrenceRangeWidget( TQWidget *parent,
endDateLayout->addStretch( 1 );
- connect( mNoEndDateButton, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( showCurrentRange() ) );
- connect( mEndDurationButton, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( showCurrentRange() ) );
- connect( mEndDateButton, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( showCurrentRange() ) );
+ connect( mNoEndDateButton, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( showCurrentRange() ) );
+ connect( mEndDurationButton, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( showCurrentRange() ) );
+ connect( mEndDateButton, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( showCurrentRange() ) );
}
void RecurrenceRangeWidget::setDefaults( const TQDateTime &from )
@@ -887,11 +887,11 @@ RecurrenceChooser::RecurrenceChooser( TQWidget *parent, const char *name ) :
topLayout->addWidget( mTypeCombo );
- connect( mTypeCombo, TQT_SIGNAL( activated( int ) ), TQT_SLOT( emitChoice() ) );
+ connect( mTypeCombo, TQ_SIGNAL( activated( int ) ), TQ_SLOT( emitChoice() ) );
} else {
mTypeCombo = 0;
- TQButtonGroup *ruleButtonGroup = new TQButtonGroup( 1, Qt::Horizontal, this );
+ TQButtonGroup *ruleButtonGroup = new TQButtonGroup( 1, TQt::Horizontal, this );
ruleButtonGroup->setFrameStyle( TQFrame::NoFrame );
topLayout->addWidget( ruleButtonGroup );
@@ -912,14 +912,14 @@ RecurrenceChooser::RecurrenceChooser( TQWidget *parent, const char *name ) :
i18n("Sets the event or to-do to recur yearly according "
"to the specified rules.") );
- connect( mDailyButton, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( emitChoice() ) );
- connect( mWeeklyButton, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( emitChoice() ) );
- connect( mMonthlyButton, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( emitChoice() ) );
- connect( mYearlyButton, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( emitChoice() ) );
+ connect( mDailyButton, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( emitChoice() ) );
+ connect( mWeeklyButton, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( emitChoice() ) );
+ connect( mMonthlyButton, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( emitChoice() ) );
+ connect( mYearlyButton, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( emitChoice() ) );
}
}
@@ -975,12 +975,12 @@ KOEditorRecurrence::KOEditorRecurrence( TQWidget* parent, const char *name ) :
TQWhatsThis::add( mEnabledCheck,
i18n("Enables recurrence for this event or to-do according "
"to the specified rules.") );
- connect( mEnabledCheck, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( setRecurrenceEnabled( bool ) ) );
+ connect( mEnabledCheck, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( setRecurrenceEnabled( bool ) ) );
topLayout->addMultiCellWidget( mEnabledCheck, 0, 0, 0, 1 );
- mTimeGroupBox = new TQGroupBox( 1, Qt::Horizontal, i18n("Appointment Time "),
+ mTimeGroupBox = new TQGroupBox( 1, TQt::Horizontal, i18n("Appointment Time "),
this );
TQWhatsThis::add( mTimeGroupBox,
i18n("Displays appointment time information.") );
@@ -998,9 +998,9 @@ KOEditorRecurrence::KOEditorRecurrence( TQWidget* parent, const char *name ) :
// mDateTimeLabel = new TQLabel( timeFrame );
// layoutTimeFrame->addWidget( mDateTimeLabel );
- Qt::Orientation orientation;
- if ( KOPrefs::instance()->mCompactDialogs ) orientation = Qt::Horizontal;
- else orientation = Qt::Vertical;
+ TQt::Orientation orientation;
+ if ( KOPrefs::instance()->mCompactDialogs ) orientation = TQt::Horizontal;
+ else orientation = TQt::Vertical;
mRuleBox = new TQGroupBox( 1, orientation, i18n("Recurrence Rule"), this );
TQWhatsThis::add( mRuleBox,
@@ -1013,8 +1013,8 @@ KOEditorRecurrence::KOEditorRecurrence( TQWidget* parent, const char *name ) :
}
mRecurrenceChooser = new RecurrenceChooser( mRuleBox );
- connect( mRecurrenceChooser, TQT_SIGNAL( chosen( int ) ),
- TQT_SLOT( showCurrentRule( int ) ) );
+ connect( mRecurrenceChooser, TQ_SIGNAL( chosen( int ) ),
+ TQ_SLOT( showCurrentRule( int ) ) );
if ( !KOPrefs::instance()->mCompactDialogs ) {
TQFrame *ruleSepFrame = new TQFrame( mRuleBox );
@@ -1047,16 +1047,16 @@ KOEditorRecurrence::KOEditorRecurrence( TQWidget* parent, const char *name ) :
i18n("Options concerning the time range during which "
"this event or to-do should recur.") );
topLayout->addWidget( mRecurrenceRangeButton, 3, 0 );
- connect( mRecurrenceRangeButton, TQT_SIGNAL( clicked() ),
- TQT_SLOT( showRecurrenceRangeDialog() ) );
+ connect( mRecurrenceRangeButton, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( showRecurrenceRangeDialog() ) );
mExceptionsWidget = 0;
mExceptionsDialog = new ExceptionsDialog( this );
mExceptions = mExceptionsDialog;
mExceptionsButton = new TQPushButton( i18n("Exceptions..."), this );
topLayout->addWidget( mExceptionsButton, 4, 0 );
- connect( mExceptionsButton, TQT_SIGNAL( clicked() ),
- TQT_SLOT( showExceptionsDialog() ) );
+ connect( mExceptionsButton, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( showExceptionsDialog() ) );
} else {
mRecurrenceRangeWidget = new RecurrenceRangeWidget( this );
diff --git a/korganizer/koeditorrecurrence.h b/korganizer/koeditorrecurrence.h
index 00224b0c..04f979c9 100644
--- a/korganizer/koeditorrecurrence.h
+++ b/korganizer/koeditorrecurrence.h
@@ -148,7 +148,7 @@ class RecurYearly : public RecurBase
class RecurrenceChooser : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
RecurrenceChooser( TQWidget *parent = 0, const char *name = 0 );
@@ -182,7 +182,7 @@ class ExceptionsBase
class ExceptionsWidget : public TQWidget, public ExceptionsBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
ExceptionsWidget( TQWidget *parent = 0, const char *name = 0 );
@@ -230,7 +230,7 @@ class RecurrenceRangeBase
class RecurrenceRangeWidget : public TQWidget, public RecurrenceRangeBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
RecurrenceRangeWidget( TQWidget *parent = 0, const char *name = 0 );
@@ -281,7 +281,7 @@ class RecurrenceRangeDialog : public KDialogBase, public RecurrenceRangeBase
class KOEditorRecurrence : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOEditorRecurrence ( TQWidget *parent = 0, const char *name = 0 );
@@ -348,7 +348,7 @@ class KOEditorRecurrence : public TQWidget
class KOEditorRecurrenceDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOEditorRecurrenceDialog( TQWidget *parent );
diff --git a/korganizer/koeventeditor.cpp b/korganizer/koeventeditor.cpp
index ef2dc5df..6bc3c0be 100644
--- a/korganizer/koeventeditor.cpp
+++ b/korganizer/koeventeditor.cpp
@@ -70,39 +70,39 @@ void KOEventEditor::init()
setupDesignerTabs( "event" );
// Propagate date time settings to recurrence tab
- connect( mGeneral, TQT_SIGNAL( dateTimesChanged( const TQDateTime &, const TQDateTime & ) ),
- mRecurrence, TQT_SLOT( setDateTimes( const TQDateTime &, const TQDateTime &) ) );
- connect( mGeneral, TQT_SIGNAL( dateTimeStrChanged( const TQString & ) ),
- mRecurrence, TQT_SLOT( setDateTimeStr( const TQString & ) ) );
- connect( mFreeBusy, TQT_SIGNAL( dateTimesChanged( const TQDateTime &, const TQDateTime & ) ),
- mRecurrence, TQT_SLOT( setDateTimes( const TQDateTime &, const TQDateTime & ) ) );
+ connect( mGeneral, TQ_SIGNAL( dateTimesChanged( const TQDateTime &, const TQDateTime & ) ),
+ mRecurrence, TQ_SLOT( setDateTimes( const TQDateTime &, const TQDateTime &) ) );
+ connect( mGeneral, TQ_SIGNAL( dateTimeStrChanged( const TQString & ) ),
+ mRecurrence, TQ_SLOT( setDateTimeStr( const TQString & ) ) );
+ connect( mFreeBusy, TQ_SIGNAL( dateTimesChanged( const TQDateTime &, const TQDateTime & ) ),
+ mRecurrence, TQ_SLOT( setDateTimes( const TQDateTime &, const TQDateTime & ) ) );
// Propagate date time settings to gantt tab and back
- connect( mGeneral, TQT_SIGNAL( dateTimesChanged( const TQDateTime &, const TQDateTime & ) ),
- mFreeBusy, TQT_SLOT( slotUpdateGanttView( const TQDateTime &, const TQDateTime & ) ) );
- connect( mFreeBusy, TQT_SIGNAL( dateTimesChanged( const TQDateTime &, const TQDateTime & ) ),
- mGeneral, TQT_SLOT( setDateTimes( const TQDateTime &, const TQDateTime & ) ) );
-
- connect( mGeneral, TQT_SIGNAL( focusReceivedSignal() ),
- TQT_SIGNAL( focusReceivedSignal() ) );
-
- connect( mGeneral, TQT_SIGNAL( openCategoryDialog() ),
- TQT_SIGNAL( editCategories() ) );
- connect( this, TQT_SIGNAL( updateCategoryConfig() ),
- mGeneral, TQT_SIGNAL( updateCategoryConfig() ) );
-
- connect( mFreeBusy, TQT_SIGNAL(updateAttendeeSummary(int)),
- mGeneral, TQT_SLOT(updateAttendeeSummary(int)) );
-
- connect( mGeneral, TQT_SIGNAL(editRecurrence()),
- mRecurrenceDialog, TQT_SLOT(show()) );
- connect( mRecurrenceDialog, TQT_SIGNAL(okClicked()),
- TQT_SLOT(updateRecurrenceSummary()) );
-
- connect( mGeneral, TQT_SIGNAL(acceptInvitation()),
- mFreeBusy, TQT_SLOT(acceptForMe()) );
- connect( mGeneral, TQT_SIGNAL(declineInvitation()),
- mFreeBusy, TQT_SLOT(declineForMe()) );
+ connect( mGeneral, TQ_SIGNAL( dateTimesChanged( const TQDateTime &, const TQDateTime & ) ),
+ mFreeBusy, TQ_SLOT( slotUpdateGanttView( const TQDateTime &, const TQDateTime & ) ) );
+ connect( mFreeBusy, TQ_SIGNAL( dateTimesChanged( const TQDateTime &, const TQDateTime & ) ),
+ mGeneral, TQ_SLOT( setDateTimes( const TQDateTime &, const TQDateTime & ) ) );
+
+ connect( mGeneral, TQ_SIGNAL( focusReceivedSignal() ),
+ TQ_SIGNAL( focusReceivedSignal() ) );
+
+ connect( mGeneral, TQ_SIGNAL( openCategoryDialog() ),
+ TQ_SIGNAL( editCategories() ) );
+ connect( this, TQ_SIGNAL( updateCategoryConfig() ),
+ mGeneral, TQ_SIGNAL( updateCategoryConfig() ) );
+
+ connect( mFreeBusy, TQ_SIGNAL(updateAttendeeSummary(int)),
+ mGeneral, TQ_SLOT(updateAttendeeSummary(int)) );
+
+ connect( mGeneral, TQ_SIGNAL(editRecurrence()),
+ mRecurrenceDialog, TQ_SLOT(show()) );
+ connect( mRecurrenceDialog, TQ_SIGNAL(okClicked()),
+ TQ_SLOT(updateRecurrenceSummary()) );
+
+ connect( mGeneral, TQ_SIGNAL(acceptInvitation()),
+ mFreeBusy, TQ_SLOT(acceptForMe()) );
+ connect( mGeneral, TQ_SIGNAL(declineInvitation()),
+ mFreeBusy, TQ_SLOT(declineForMe()) );
}
void KOEventEditor::reload()
@@ -116,7 +116,7 @@ void KOEventEditor::reload()
void KOEventEditor::setupGeneral()
{
- mGeneral = new KOEditorGeneralEvent( TQT_TQOBJECT(this) );
+ mGeneral = new KOEditorGeneralEvent( this );
if( KOPrefs::instance()->mCompactDialogs ) {
TQFrame *topFrame = addPage(i18n("General"));
@@ -154,10 +154,10 @@ void KOEventEditor::setupGeneral()
mGeneral->initTime(topFrame,topLayout);
mGeneral->initDescription(topFrame,topLayout);
mGeneral->initAttachments(topFrame,topLayout);
- connect( mGeneral, TQT_SIGNAL( openURL( const KURL& ) ),
- this, TQT_SLOT( openURL( const KURL& ) ) );
- connect( this, TQT_SIGNAL( signalAddAttachments( const TQStringList&, const TQStringList&, bool ) ),
- mGeneral, TQT_SLOT( addAttachments( const TQStringList&, const TQStringList&, bool ) ) );
+ connect( mGeneral, TQ_SIGNAL( openURL( const KURL& ) ),
+ this, TQ_SLOT( openURL( const KURL& ) ) );
+ connect( this, TQ_SIGNAL( signalAddAttachments( const TQStringList&, const TQStringList&, bool ) ),
+ mGeneral, TQ_SLOT( addAttachments( const TQStringList&, const TQStringList&, bool ) ) );
}
mGeneral->finishSetup();
diff --git a/korganizer/koeventeditor.h b/korganizer/koeventeditor.h
index bb2405eb..4b3c99ea 100644
--- a/korganizer/koeventeditor.h
+++ b/korganizer/koeventeditor.h
@@ -47,7 +47,7 @@ using namespace KCal;
*/
class KOEventEditor : public KOIncidenceEditor
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/korganizer/koeventpopupmenu.cpp b/korganizer/koeventpopupmenu.cpp
index 73a0942e..1ab4b89e 100644
--- a/korganizer/koeventpopupmenu.cpp
+++ b/korganizer/koeventpopupmenu.cpp
@@ -50,44 +50,44 @@ KOEventPopupMenu::KOEventPopupMenu()
mCurrentDate = TQDate();
mHasAdditionalItems = false;
- insertItem( i18n("&Show"), this, TQT_SLOT( popupShow() ) );
+ insertItem( i18n("&Show"), this, TQ_SLOT( popupShow() ) );
mEditOnlyItems.append(
- insertItem(i18n("&Edit..."), this, TQT_SLOT( popupEdit() ) ) );
+ insertItem(i18n("&Edit..."), this, TQ_SLOT( popupEdit() ) ) );
#ifndef KORG_NOPRINTER
insertItem( KOGlobals::self()->smallIcon("printer"), i18n("&Print..."),
- this, TQT_SLOT( print() ) );
+ this, TQ_SLOT( print() ) );
#endif
//------------------------------------------------------------------------
mEditOnlyItems.append( insertSeparator() );
mEditOnlyItems.append(
insertItem( KOGlobals::self()->smallIcon("edit-cut"), i18n("&Cut"),
- this, TQT_SLOT( popupCut() ) ) );
+ this, TQ_SLOT( popupCut() ) ) );
mEditOnlyItems.append(
insertItem( KOGlobals::self()->smallIcon("edit-copy"), i18n("&Copy"),
- this, TQT_SLOT( popupCopy() ) ) );
+ this, TQ_SLOT( popupCopy() ) ) );
// paste is always possible
insertItem( KOGlobals::self()->smallIcon("edit-paste"), i18n("&Paste"),
- this, TQT_SLOT( popupPaste() ) );
+ this, TQ_SLOT( popupPaste() ) );
mEditOnlyItems.append(
insertItem( KOGlobals::self()->smallIcon("edit-delete"), i18n("&Delete"),
- this, TQT_SLOT( popupDelete() ) ) );
+ this, TQ_SLOT( popupDelete() ) ) );
//------------------------------------------------------------------------
mEditOnlyItems.append( insertSeparator() );
mEditOnlyItems.append(
insertItem( KOGlobals::self()->smallIcon("bell"), i18n("&Toggle Reminder"),
- this, TQT_SLOT( popupAlarm() ) ) );
+ this, TQ_SLOT( popupAlarm() ) ) );
//------------------------------------------------------------------------
mRecurrenceItems.append( insertSeparator() );
mRecurrenceItems.append(
insertItem( i18n("&Dissociate This Occurrence"),
- this, TQT_SLOT( dissociateOccurrence() ) ) );
+ this, TQ_SLOT( dissociateOccurrence() ) ) );
mRecurrenceItems.append(
insertItem( i18n("&Dissociate Future Occurrences"),
- this, TQT_SLOT( dissociateFutureOccurrence() ) ) );
+ this, TQ_SLOT( dissociateFutureOccurrence() ) ) );
insertSeparator();
insertItem( KOGlobals::self()->smallIcon("mail-forward"), i18n( "Send as iCalendar..."),
- this, TQT_SLOT(forward()) );
+ this, TQ_SLOT(forward()) );
}
void KOEventPopupMenu::showIncidencePopup( Calendar *cal, Incidence *incidence, const TQDate &qd )
@@ -142,7 +142,7 @@ void KOEventPopupMenu::print()
#ifndef KORG_NOPRINTER
KOCoreHelper helper;
CalPrinter printer( this, mCalendar, &helper );
- connect( this, TQT_SIGNAL(configChanged()), &printer, TQT_SLOT(updateConfig()) );
+ connect( this, TQ_SIGNAL(configChanged()), &printer, TQ_SLOT(updateConfig()) );
Incidence::List selectedIncidences;
selectedIncidences.append( mCurrentIncidence );
diff --git a/korganizer/koeventpopupmenu.h b/korganizer/koeventpopupmenu.h
index cc846885..21c7b6aa 100644
--- a/korganizer/koeventpopupmenu.h
+++ b/korganizer/koeventpopupmenu.h
@@ -37,7 +37,7 @@ class Incidence;
using namespace KCal;
class KOEventPopupMenu : public TQPopupMenu {
- Q_OBJECT
+ TQ_OBJECT
public:
KOEventPopupMenu();
diff --git a/korganizer/koeventview.cpp b/korganizer/koeventview.cpp
index 9bd038d2..7ac37573 100644
--- a/korganizer/koeventview.cpp
+++ b/korganizer/koeventview.cpp
@@ -61,24 +61,24 @@ KOEventPopupMenu *KOEventView::eventPopup()
{
KOEventPopupMenu *eventPopup = new KOEventPopupMenu;
- connect( eventPopup, TQT_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)),
- TQT_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)) );
- connect( eventPopup, TQT_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)),
- TQT_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)) );
- connect( eventPopup, TQT_SIGNAL(deleteIncidenceSignal(Incidence *)),
- TQT_SIGNAL(deleteIncidenceSignal(Incidence *)) );
- connect( eventPopup, TQT_SIGNAL(cutIncidenceSignal(Incidence *)),
- TQT_SIGNAL(cutIncidenceSignal(Incidence *)) );
- connect( eventPopup, TQT_SIGNAL(copyIncidenceSignal(Incidence *)),
- TQT_SIGNAL(copyIncidenceSignal(Incidence *)) );
- connect( eventPopup, TQT_SIGNAL(pasteIncidenceSignal()),
- TQT_SIGNAL(pasteIncidenceSignal()) );
- connect( eventPopup, TQT_SIGNAL(toggleAlarmSignal(Incidence *)),
- TQT_SIGNAL(toggleAlarmSignal(Incidence*)) );
- connect( eventPopup, TQT_SIGNAL(dissociateOccurrenceSignal(Incidence *,const TQDate &)),
- TQT_SIGNAL(dissociateOccurrenceSignal(Incidence *,const TQDate &)) );
- connect( eventPopup, TQT_SIGNAL(dissociateFutureOccurrenceSignal(Incidence *,const TQDate &)),
- TQT_SIGNAL(dissociateFutureOccurrenceSignal(Incidence *,const TQDate &)) );
+ connect( eventPopup, TQ_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)),
+ TQ_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)) );
+ connect( eventPopup, TQ_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)),
+ TQ_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)) );
+ connect( eventPopup, TQ_SIGNAL(deleteIncidenceSignal(Incidence *)),
+ TQ_SIGNAL(deleteIncidenceSignal(Incidence *)) );
+ connect( eventPopup, TQ_SIGNAL(cutIncidenceSignal(Incidence *)),
+ TQ_SIGNAL(cutIncidenceSignal(Incidence *)) );
+ connect( eventPopup, TQ_SIGNAL(copyIncidenceSignal(Incidence *)),
+ TQ_SIGNAL(copyIncidenceSignal(Incidence *)) );
+ connect( eventPopup, TQ_SIGNAL(pasteIncidenceSignal()),
+ TQ_SIGNAL(pasteIncidenceSignal()) );
+ connect( eventPopup, TQ_SIGNAL(toggleAlarmSignal(Incidence *)),
+ TQ_SIGNAL(toggleAlarmSignal(Incidence*)) );
+ connect( eventPopup, TQ_SIGNAL(dissociateOccurrenceSignal(Incidence *,const TQDate &)),
+ TQ_SIGNAL(dissociateOccurrenceSignal(Incidence *,const TQDate &)) );
+ connect( eventPopup, TQ_SIGNAL(dissociateFutureOccurrenceSignal(Incidence *,const TQDate &)),
+ TQ_SIGNAL(dissociateFutureOccurrenceSignal(Incidence *,const TQDate &)) );
return eventPopup;
}
diff --git a/korganizer/koeventview.h b/korganizer/koeventview.h
index a5441a83..d8b2a67a 100644
--- a/korganizer/koeventview.h
+++ b/korganizer/koeventview.h
@@ -54,7 +54,7 @@ class TQPopupMenu;
*/
class KOEventView : public KOrg::BaseView
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/korganizer/koeventviewer.cpp b/korganizer/koeventviewer.cpp
index ddd4fcde..7d36b4aa 100644
--- a/korganizer/koeventviewer.cpp
+++ b/korganizer/koeventviewer.cpp
@@ -43,7 +43,7 @@ KOEventViewer::KOEventViewer( Calendar *calendar, TQWidget *parent, const char *
: TQTextBrowser( parent, name ), mCalendar( calendar ), mDefaultText("")
{
mIncidence = 0;
- connect( this, TQT_SIGNAL(highlighted(const TQString &)), TQT_SLOT(message(const TQString &)) );
+ connect( this, TQ_SIGNAL(highlighted(const TQString &)), TQ_SLOT(message(const TQString &)) );
}
KOEventViewer::~KOEventViewer()
diff --git a/korganizer/koeventviewer.h b/korganizer/koeventviewer.h
index 91fb0d4d..7758cfdc 100644
--- a/korganizer/koeventviewer.h
+++ b/korganizer/koeventviewer.h
@@ -24,7 +24,7 @@
#ifndef KOEVENTVIEWER_H
#define KOEVENTVIEWER_H
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tdeconfig.h>
#include <tqtextbrowser.h>
@@ -39,7 +39,7 @@ using namespace KCal;
*/
class KDE_EXPORT KOEventViewer : public TQTextBrowser
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit KOEventViewer( Calendar *calendar, TQWidget *parent = 0, const char *name = 0 );
diff --git a/korganizer/koeventviewerdialog.cpp b/korganizer/koeventviewerdialog.cpp
index 7e783695..12a2f79d 100644
--- a/korganizer/koeventviewerdialog.cpp
+++ b/korganizer/koeventviewerdialog.cpp
@@ -43,7 +43,7 @@ KOEventViewerDialog::KOEventViewerDialog( Calendar *calendar, TQWidget *parent,
setMinimumSize( 500, 500 );
resize( 520, 500 );
}
- connect( this, TQT_SIGNAL(finished()), this, TQT_SLOT(delayedDestruct()) );
+ connect( this, TQ_SIGNAL(finished()), this, TQ_SLOT(delayedDestruct()) );
}
KOEventViewerDialog::~KOEventViewerDialog()
diff --git a/korganizer/koeventviewerdialog.h b/korganizer/koeventviewerdialog.h
index f66ecafd..48c02c8a 100644
--- a/korganizer/koeventviewerdialog.h
+++ b/korganizer/koeventviewerdialog.h
@@ -25,7 +25,7 @@
#define KOEVENTVIEWERDIALOG_H
#include <kdialogbase.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "koeventviewer.h"
namespace KCal {
@@ -40,7 +40,7 @@ class KOEventViewer;
*/
class KDE_EXPORT KOEventViewerDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit KOEventViewerDialog( Calendar *calendar, TQWidget *parent = 0,
diff --git a/korganizer/koglobals.h b/korganizer/koglobals.h
index 678426fd..b6f48cf7 100644
--- a/korganizer/koglobals.h
+++ b/korganizer/koglobals.h
@@ -23,7 +23,7 @@
#ifndef KORG_GLOBALS_H
#define KORG_GLOBALS_H
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqwidget.h>
class TQDate;
diff --git a/korganizer/kogroupware.cpp b/korganizer/kogroupware.cpp
index 6e86c857..5c8342ac 100644
--- a/korganizer/kogroupware.cpp
+++ b/korganizer/kogroupware.cpp
@@ -84,10 +84,10 @@ KOGroupware::KOGroupware( CalendarView* view, KCal::CalendarResources* cal )
watcher->addDir( locateLocal( "data", "korganizer/income.cancel/" ) );
watcher->addDir( locateLocal( "data", "korganizer/income.reply/" ) );
watcher->addDir( locateLocal( "data", "korganizer/income.delegated/" ) );
- connect( watcher, TQT_SIGNAL( dirty( const TQString& ) ),
- this, TQT_SLOT( incomingDirChanged( const TQString& ) ) );
+ connect( watcher, TQ_SIGNAL( dirty( const TQString& ) ),
+ this, TQ_SLOT( incomingDirChanged( const TQString& ) ) );
// Now set the ball rolling
- TQTimer::singleShot( 0, this, TQT_SLOT(initialCheckForChanges()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(initialCheckForChanges()) );
}
void KOGroupware::initialCheckForChanges()
@@ -103,12 +103,12 @@ void KOGroupware::initialCheckForChanges()
void KOGroupware::slotViewNewIncidenceChanger( IncidenceChangerBase* changer )
{
// Call slot perhapsUploadFB if an incidence was added, changed or removed
- connect( changer, TQT_SIGNAL( incidenceAdded( Incidence* ) ),
- mFreeBusyManager, TQT_SLOT( slotPerhapsUploadFB() ) );
- connect( changer, TQT_SIGNAL( incidenceChanged( Incidence*, Incidence*, KOGlobals::WhatChanged ) ),
- mFreeBusyManager, TQT_SLOT( slotPerhapsUploadFB() ) );
- connect( changer, TQT_SIGNAL( incidenceDeleted( Incidence * ) ),
- mFreeBusyManager, TQT_SLOT( slotPerhapsUploadFB() ) );
+ connect( changer, TQ_SIGNAL( incidenceAdded( Incidence* ) ),
+ mFreeBusyManager, TQ_SLOT( slotPerhapsUploadFB() ) );
+ connect( changer, TQ_SIGNAL( incidenceChanged( Incidence*, Incidence*, KOGlobals::WhatChanged ) ),
+ mFreeBusyManager, TQ_SLOT( slotPerhapsUploadFB() ) );
+ connect( changer, TQ_SIGNAL( incidenceDeleted( Incidence * ) ),
+ mFreeBusyManager, TQ_SLOT( slotPerhapsUploadFB() ) );
}
FreeBusyManager *KOGroupware::freeBusyManager()
@@ -116,10 +116,10 @@ FreeBusyManager *KOGroupware::freeBusyManager()
if ( !mFreeBusyManager ) {
mFreeBusyManager = new FreeBusyManager( this, "freebusymanager" );
mFreeBusyManager->setCalendar( mCalendar );
- connect( mCalendar, TQT_SIGNAL( calendarChanged() ),
- mFreeBusyManager, TQT_SLOT( slotPerhapsUploadFB() ) );
- connect( mView, TQT_SIGNAL( newIncidenceChanger( IncidenceChangerBase* ) ),
- this, TQT_SLOT( slotViewNewIncidenceChanger( IncidenceChangerBase* ) ) );
+ connect( mCalendar, TQ_SIGNAL( calendarChanged() ),
+ mFreeBusyManager, TQ_SLOT( slotPerhapsUploadFB() ) );
+ connect( mView, TQ_SIGNAL( newIncidenceChanger( IncidenceChangerBase* ) ),
+ this, TQ_SLOT( slotViewNewIncidenceChanger( IncidenceChangerBase* ) ) );
slotViewNewIncidenceChanger( mView->incidenceChanger() );
}
diff --git a/korganizer/kogroupware.h b/korganizer/kogroupware.h
index ce253dfc..c4205637 100644
--- a/korganizer/kogroupware.h
+++ b/korganizer/kogroupware.h
@@ -64,7 +64,7 @@ using namespace KOrg;
class KOGroupware : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
static KOGroupware* create( CalendarView*, KCal::CalendarResources* );
diff --git a/korganizer/kogroupwareprefspage.ui b/korganizer/kogroupwareprefspage.ui
index 6adb3cbc..13626feb 100644
--- a/korganizer/kogroupwareprefspage.ui
+++ b/korganizer/kogroupwareprefspage.ui
@@ -617,15 +617,15 @@ For security reasons, it is not recommended to store your password in the config
<tabstop>retrieveSavePassword</tabstop>
</tabstops>
<includes>
- <include location="global" impldecl="in declaration">tdepimmacros.h</include>
+ <include location="global" impldecl="in declaration">kdemacros.h</include>
<include location="local" impldecl="in implementation">kogroupwareprefspage.ui.h</include>
</includes>
-<Q_SIGNALS>
+<signals>
<signal>changed()</signal>
-</Q_SIGNALS>
-<Q_SLOTS>
+</signals>
+<slots>
<slot>slotChanged()</slot>
-</Q_SLOTS>
+</slots>
<exportmacro>KDE_EXPORT</exportmacro>
<layoutdefaults spacing="6" margin="11"/>
</UI>
diff --git a/korganizer/kohelper.h b/korganizer/kohelper.h
index 329de2a6..e7348421 100644
--- a/korganizer/kohelper.h
+++ b/korganizer/kohelper.h
@@ -25,7 +25,7 @@
#ifndef KOHELPER_H
#define KOHELPER_H
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KCal {
class Calendar;
diff --git a/korganizer/koincidenceeditor.cpp b/korganizer/koincidenceeditor.cpp
index 40851e99..499a4580 100644
--- a/korganizer/koincidenceeditor.cpp
+++ b/korganizer/koincidenceeditor.cpp
@@ -75,8 +75,8 @@ KOIncidenceEditor::KOIncidenceEditor( const TQString &caption,
setButtonText( Default, i18n("&Templates...") );
}
- connect( this, TQT_SIGNAL( defaultClicked() ), TQT_SLOT( slotManageTemplates() ) );
- connect( this, TQT_SIGNAL( finished() ), TQT_SLOT( delayedDestruct() ) );
+ connect( this, TQ_SIGNAL( defaultClicked() ), TQ_SLOT( slotManageTemplates() ) );
+ connect( this, TQ_SIGNAL( finished() ), TQ_SLOT( delayedDestruct() ) );
}
KOIncidenceEditor::~KOIncidenceEditor()
@@ -139,12 +139,12 @@ void KOIncidenceEditor::slotManageTemplates()
kdDebug(5850) << "KOIncidenceEditor::manageTemplates()" << endl;
TemplateManagementDialog * const d = new TemplateManagementDialog( this, templates() );
- connect( d, TQT_SIGNAL( loadTemplate( const TQString& ) ),
- this, TQT_SLOT( slotLoadTemplate( const TQString& ) ) );
- connect( d, TQT_SIGNAL( templatesChanged( const TQStringList& ) ),
- this, TQT_SLOT( slotTemplatesChanged( const TQStringList& ) ) );
- connect( d, TQT_SIGNAL( saveTemplate( const TQString& ) ),
- this, TQT_SLOT( slotSaveTemplate( const TQString& ) ) );
+ connect( d, TQ_SIGNAL( loadTemplate( const TQString& ) ),
+ this, TQ_SLOT( slotLoadTemplate( const TQString& ) ) );
+ connect( d, TQ_SIGNAL( templatesChanged( const TQStringList& ) ),
+ this, TQ_SLOT( slotTemplatesChanged( const TQStringList& ) ) );
+ connect( d, TQ_SIGNAL( saveTemplate( const TQString& ) ),
+ this, TQ_SLOT( slotSaveTemplate( const TQString& ) ) );
d->exec();
return;
}
@@ -296,8 +296,8 @@ void KOIncidenceEditor::setupEmbeddedURLPage( const TQString &label,
topFrame );
topLayout->addWidget( wid );
mEmbeddedURLPages.append( topFrame );
- connect( wid, TQT_SIGNAL( openURL( const KURL & ) ) ,
- this, TQT_SLOT( openURL( const KURL & ) ) );
+ connect( wid, TQ_SIGNAL( openURL( const KURL & ) ) ,
+ this, TQ_SLOT( openURL( const KURL & ) ) );
// TODO: Call this method only when the tab is actually activated!
wid->loadContents();
}
diff --git a/korganizer/koincidenceeditor.h b/korganizer/koincidenceeditor.h
index 8c397d7c..99104929 100644
--- a/korganizer/koincidenceeditor.h
+++ b/korganizer/koincidenceeditor.h
@@ -56,7 +56,7 @@ using namespace KOrg;
*/
class KOIncidenceEditor : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/korganizer/kojournaleditor.h b/korganizer/kojournaleditor.h
index 14433c21..2dd2ae3a 100644
--- a/korganizer/kojournaleditor.h
+++ b/korganizer/kojournaleditor.h
@@ -45,7 +45,7 @@ class KOEditorGeneralJournal;
*/
class KOJournalEditor : public KOIncidenceEditor
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/korganizer/kojournalview.cpp b/korganizer/kojournalview.cpp
index 3bc78156..252bbc53 100644
--- a/korganizer/kojournalview.cpp
+++ b/korganizer/kojournalview.cpp
@@ -71,24 +71,24 @@ void KOJournalView::appendJournal( Journal*journal, const TQDate &dt)
entry->setDate( dt );
entry->setIncidenceChanger( mChanger );
entry->show();
- connect( this, TQT_SIGNAL(flushEntries()),
- entry, TQT_SIGNAL(flushEntries()) );
+ connect( this, TQ_SIGNAL(flushEntries()),
+ entry, TQ_SIGNAL(flushEntries()) );
- connect( this, TQT_SIGNAL(setIncidenceChangerSignal(IncidenceChangerBase *)),
- entry, TQT_SLOT(setIncidenceChanger( IncidenceChangerBase *)) );
+ connect( this, TQ_SIGNAL(setIncidenceChangerSignal(IncidenceChangerBase *)),
+ entry, TQ_SLOT(setIncidenceChanger( IncidenceChangerBase *)) );
- connect( this, TQT_SIGNAL(journalEdited(Journal *)),
- entry, TQT_SLOT(journalEdited(Journal *)) );
- connect( this, TQT_SIGNAL(journalDeleted(Journal *)),
- entry, TQT_SLOT(journalDeleted(Journal *)) );
+ connect( this, TQ_SIGNAL(journalEdited(Journal *)),
+ entry, TQ_SLOT(journalEdited(Journal *)) );
+ connect( this, TQ_SIGNAL(journalDeleted(Journal *)),
+ entry, TQ_SLOT(journalDeleted(Journal *)) );
- connect( entry, TQT_SIGNAL(editIncidence(Incidence *,const TQDate &)),
- this, TQT_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)) );
- connect( entry, TQT_SIGNAL(deleteIncidence(Incidence *)),
- this, TQT_SIGNAL(deleteIncidenceSignal(Incidence *)) );
+ connect( entry, TQ_SIGNAL(editIncidence(Incidence *,const TQDate &)),
+ this, TQ_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)) );
+ connect( entry, TQ_SIGNAL(deleteIncidence(Incidence *)),
+ this, TQ_SIGNAL(deleteIncidenceSignal(Incidence *)) );
- connect( entry, TQT_SIGNAL(newJournal(ResourceCalendar *,const TQString &,const TQDate &)),
- this, TQT_SIGNAL(newJournalSignal(ResourceCalendar *,const TQString &,const TQDate &)) );
+ connect( entry, TQ_SIGNAL(newJournal(ResourceCalendar *,const TQString &,const TQDate &)),
+ this, TQ_SIGNAL(newJournalSignal(ResourceCalendar *,const TQString &,const TQDate &)) );
mEntries.insert( dt, entry );
}
diff --git a/korganizer/kojournalview.h b/korganizer/kojournalview.h
index e229a99f..f2ff84a2 100644
--- a/korganizer/kojournalview.h
+++ b/korganizer/kojournalview.h
@@ -40,7 +40,7 @@ class TQVBox;
*/
class KOJournalView : public KOrg::BaseView
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOJournalView( Calendar *calendar, TQWidget *parent = 0,
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp
index aa97348c..df52e88a 100644
--- a/korganizer/kolistview.cpp
+++ b/korganizer/kolistview.cpp
@@ -135,9 +135,9 @@ bool KOListView::ListItemVisitor::visit( Event *e )
TQString endDateTime;
mItem->setText( StartDateTime_Column, IncidenceFormatter::dateTimeToString( e->dtStart(), e->doesFloat() ) );
- mItem->setSortKey( StartDateTime_Column, e->dtStart().toString( Qt::ISODate ) );
+ mItem->setSortKey( StartDateTime_Column, e->dtStart().toString( TQt::ISODate ) );
mItem->setText( EndDateTime_Column, IncidenceFormatter::dateTimeToString( e->dtEnd(), e->doesFloat() ) );
- mItem->setSortKey( EndDateTime_Column, e->dtEnd().toString( Qt::ISODate ) );
+ mItem->setSortKey( EndDateTime_Column, e->dtEnd().toString( TQt::ISODate ) );
mItem->setText( Categories_Column, e->categoriesStr() );
return true;
@@ -167,14 +167,14 @@ bool KOListView::ListItemVisitor::visit( Todo *t )
if ( t->hasStartDate() ) {
mItem->setText( StartDateTime_Column, IncidenceFormatter::dateTimeToString( t->dtStart(), t->doesFloat() ) );
- mItem->setSortKey( StartDateTime_Column, t->dtStart().toString( Qt::ISODate ) );
+ mItem->setSortKey( StartDateTime_Column, t->dtStart().toString( TQt::ISODate ) );
} else {
mItem->setText( StartDateTime_Column, "---" );
}
if ( t->hasDueDate() ) {
mItem->setText( EndDateTime_Column, IncidenceFormatter::dateTimeToString( t->dtDue(), t->doesFloat() ) );
- mItem->setSortKey( EndDateTime_Column, t->dtDue().toString( Qt::ISODate ) );
+ mItem->setSortKey( EndDateTime_Column, t->dtDue().toString( TQt::ISODate ) );
} else {
mItem->setText( EndDateTime_Column, "---" );
}
@@ -190,7 +190,7 @@ bool KOListView::ListItemVisitor::visit( Journal *j )
// Just use the first line
mItem->setText( Summary_Column, j->description().section( "\n", 0, 0 ) );
mItem->setText( StartDateTime_Column, IncidenceFormatter::dateTimeToString( j->dtStart(), j->doesFloat() ) );
- mItem->setSortKey( StartDateTime_Column, j->dtStart().toString( Qt::ISODate ) );
+ mItem->setSortKey( StartDateTime_Column, j->dtStart().toString( TQt::ISODate ) );
return true;
}
@@ -227,21 +227,21 @@ KOListView::KOListView( Calendar *calendar,
/*
mPopupMenu->insertSeparator();
mPopupMenu->insertItem(i18n("Show Dates"), this,
- TQT_SLOT(showDates()));
+ TQ_SLOT(showDates()));
mPopupMenu->insertItem(i18n("Hide Dates"), this,
- TQT_SLOT(hideDates()));
+ TQ_SLOT(hideDates()));
*/
- connect( mListView, TQT_SIGNAL( doubleClicked( TQListViewItem * ) ),
- TQT_SLOT( defaultItemAction( TQListViewItem * ) ) );
- connect( mListView, TQT_SIGNAL( returnPressed( TQListViewItem * ) ),
- TQT_SLOT( defaultItemAction( TQListViewItem * ) ) );
- connect( mListView, TQT_SIGNAL( rightButtonClicked ( TQListViewItem *,
+ connect( mListView, TQ_SIGNAL( doubleClicked( TQListViewItem * ) ),
+ TQ_SLOT( defaultItemAction( TQListViewItem * ) ) );
+ connect( mListView, TQ_SIGNAL( returnPressed( TQListViewItem * ) ),
+ TQ_SLOT( defaultItemAction( TQListViewItem * ) ) );
+ connect( mListView, TQ_SIGNAL( rightButtonClicked ( TQListViewItem *,
const TQPoint &,
int ) ),
- TQT_SLOT( popupMenu( TQListViewItem *, const TQPoint &, int ) ) );
- connect( mListView, TQT_SIGNAL( selectionChanged() ),
- TQT_SLOT( processSelectionChange() ) );
+ TQ_SLOT( popupMenu( TQListViewItem *, const TQPoint &, int ) ) );
+ connect( mListView, TQ_SIGNAL( selectionChanged() ),
+ TQ_SLOT( processSelectionChange() ) );
// setMinimumSize(100,100);
mListView->restoreLayout( KOGlobals::self()->config(), "KOListView Layout" );
diff --git a/korganizer/kolistview.h b/korganizer/kolistview.h
index 70ba080c..71f304af 100644
--- a/korganizer/kolistview.h
+++ b/korganizer/kolistview.h
@@ -67,7 +67,7 @@ class KOListViewToolTip : public TQToolTip
*/
class KOListView : public KOEventView
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit KOListView( Calendar *calendar,
diff --git a/korganizer/komessagebox.cpp b/korganizer/komessagebox.cpp
index 9c843b59..641d5106 100644
--- a/korganizer/komessagebox.cpp
+++ b/korganizer/komessagebox.cpp
@@ -41,9 +41,9 @@ int KOMessageBox::fourBtnMsgBox( TQWidget *parent, TQMessageBox::Icon type,
dialog->setButtonOK( button3 );
dialog->setButtonText( KDialogBase::Yes, button1.text() );
dialog->setButtonText( KDialogBase::No, button2.text() );
- TQObject::connect( dialog->actionButton( KDialogBase::Yes ), TQT_SIGNAL( clicked() ), dialog, TQT_SLOT(slotYes()));
- TQObject::connect( dialog->actionButton( KDialogBase::No ), TQT_SIGNAL( clicked() ), dialog, TQT_SLOT(slotNo()));
-// TQObject::connect( dialog, TQT_SIGNAL( noClicked() ), dialog, TQT_SLOT(slotNo()));
+ TQObject::connect( dialog->actionButton( KDialogBase::Yes ), TQ_SIGNAL( clicked() ), dialog, TQ_SLOT(slotYes()));
+ TQObject::connect( dialog->actionButton( KDialogBase::No ), TQ_SIGNAL( clicked() ), dialog, TQ_SLOT(slotNo()));
+// TQObject::connect( dialog, TQ_SIGNAL( noClicked() ), dialog, TQ_SLOT(slotNo()));
bool checkboxResult = false;
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index ab61181c..23b477e1 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -168,7 +168,7 @@ void KNoScrollListBox::mousePressEvent( TQMouseEvent *e )
{
TQListBox::mousePressEvent( e );
- if ( e->button() == Qt::RightButton ) {
+ if ( e->button() == TQt::RightButton ) {
emit rightClick();
}
}
@@ -259,7 +259,7 @@ void MonthViewItem::paint( TQPainter *p )
}
if ( !bgColor.isValid() ) {
- bgColor = palette().color( TQPalette::Normal,
+ bgColor = palette().color( TQPalette::Active,
sel ? TQColorGroup::Highlight :
TQColorGroup::Background );
}
@@ -286,7 +286,7 @@ void MonthViewItem::paint( TQPainter *p )
}
if ( !frameColor.isValid() ) {
- frameColor = palette().color( TQPalette::Normal,
+ frameColor = palette().color( TQPalette::Active,
sel ? TQColorGroup::Highlight :
TQColorGroup::Foreground );
} else {
@@ -405,13 +405,13 @@ MonthViewCell::MonthViewCell( KOMonthView *parent)
updateConfig();
- connect( mItemList, TQT_SIGNAL( doubleClicked( TQListBoxItem *) ),
- TQT_SLOT( defaultAction( TQListBoxItem * ) ) );
- connect( mItemList, TQT_SIGNAL( rightButtonPressed( TQListBoxItem *,
+ connect( mItemList, TQ_SIGNAL( doubleClicked( TQListBoxItem *) ),
+ TQ_SLOT( defaultAction( TQListBoxItem * ) ) );
+ connect( mItemList, TQ_SIGNAL( rightButtonPressed( TQListBoxItem *,
const TQPoint &) ),
- TQT_SLOT( contextMenu( TQListBoxItem * ) ) );
- connect( mItemList, TQT_SIGNAL( clicked( TQListBoxItem * ) ),
- TQT_SLOT( select() ) );
+ TQ_SLOT( contextMenu( TQListBoxItem * ) ) );
+ connect( mItemList, TQ_SIGNAL( clicked( TQListBoxItem * ) ),
+ TQ_SLOT( select() ) );
}
void MonthViewCell::setDate( const TQDate &date )
@@ -861,10 +861,10 @@ KOMonthView::KOMonthView( Calendar *calendar, TQWidget *parent, const char *name
mCells.insert( row * mDaysPerWeek + col, cell );
dayLayout->addWidget( cell, row + 2, col );
- connect( cell, TQT_SIGNAL(defaultAction(Incidence *)),
- TQT_SLOT(defaultAction(Incidence *)) );
- connect( cell, TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDate &)),
- TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDate &)) );
+ connect( cell, TQ_SIGNAL(defaultAction(Incidence *)),
+ TQ_SLOT(defaultAction(Incidence *)) );
+ connect( cell, TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDate &)),
+ TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDate &)) );
}
dayLayout->setRowStretch( row + 2, 1 );
}
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h
index d9b63bd9..706a2e9f 100644
--- a/korganizer/komonthview.h
+++ b/korganizer/komonthview.h
@@ -50,7 +50,7 @@ class KOMonthCellToolTip : public TQToolTip
class KNoScrollListBox: public TQListBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
KNoScrollListBox(TQWidget *parent=0, const char *name=0);
@@ -134,7 +134,7 @@ class KOMonthView;
*/
class MonthViewCell : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
class CreateItemVisitor;
@@ -244,7 +244,7 @@ class MonthViewCell : public TQWidget
*/
class KOMonthView: public KOEventView
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOMonthView(Calendar *cal, TQWidget *parent = 0, const char *name = 0 );
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 0fa1eb21..3e57a77c 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -26,7 +26,7 @@
#include <tqdict.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "koprefs_base.h"
diff --git a/korganizer/koprefsdialog.cpp b/korganizer/koprefsdialog.cpp
index 08763b63..60fd3e45 100644
--- a/korganizer/koprefsdialog.cpp
+++ b/korganizer/koprefsdialog.cpp
@@ -77,7 +77,7 @@
#include "ktimeedit.h"
#include "koglobals.h"
#include "stdcalendar.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
KOPrefsDialogMain::KOPrefsDialogMain( TQWidget *parent, const char *name )
@@ -92,15 +92,15 @@ KOPrefsDialogMain::KOPrefsDialogMain( TQWidget *parent, const char *name )
KPrefsWidBool *emailControlCenter =
addWidBool( KOPrefs::instance()->emailControlCenterItem(), topFrame );
- connect(emailControlCenter->checkBox(),TQT_SIGNAL(toggled(bool)),
- TQT_SLOT(toggleEmailSettings(bool)));
+ connect(emailControlCenter->checkBox(),TQ_SIGNAL(toggled(bool)),
+ TQ_SLOT(toggleEmailSettings(bool)));
mUserEmailSettings = new TQGrid( 2, topFrame );
addWidString( KOPrefs::instance()->userNameItem(), mUserEmailSettings );
addWidString( KOPrefs::instance()->userEmailItem(), mUserEmailSettings );
- TQGroupBox *saveGroup = new TQGroupBox(1,Qt::Horizontal,i18n("Saving Calendar"),
+ TQGroupBox *saveGroup = new TQGroupBox(1,TQt::Horizontal,i18n("Saving Calendar"),
topFrame);
addWidBool( KOPrefs::instance()->htmlWithSaveItem(), saveGroup );
@@ -109,8 +109,8 @@ KOPrefsDialogMain::KOPrefsDialogMain( TQWidget *parent, const char *name )
TQHBox *intervalBox = new TQHBox( saveGroup );
addWidInt( KOPrefs::instance()->autoSaveIntervalItem(), intervalBox );
- connect( autoSave->checkBox(), TQT_SIGNAL( toggled( bool ) ),
- intervalBox, TQT_SLOT( setEnabled( bool ) ) );
+ connect( autoSave->checkBox(), TQ_SIGNAL( toggled( bool ) ),
+ intervalBox, TQ_SLOT( setEnabled( bool ) ) );
intervalBox->setSpacing( KDialog::spacingHint() );
new TQWidget( intervalBox );
@@ -171,8 +171,8 @@ class KOPrefsDialogTime : public KPrefsModule
TQWhatsThis::add( timeZoneLabel, whatsThis );
mTimeZoneCombo = new TQComboBox( timeZoneBox );
- connect( mTimeZoneCombo, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( slotWidChanged() ) );
+ connect( mTimeZoneCombo, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( slotWidChanged() ) );
FILE *f;
char tempstring[101] = "Unknown";
@@ -264,8 +264,8 @@ class KOPrefsDialogTime : public KPrefsModule
TQWhatsThis::add( holidayLabel, whatsThis );
mHolidayCombo = new TQComboBox( holidayRegBox );
- connect( mHolidayCombo, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( slotWidChanged() ) );
+ connect( mHolidayCombo, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( slotWidChanged() ) );
TQWhatsThis::add( mHolidayCombo, whatsThis );
@@ -319,7 +319,7 @@ class KOPrefsDialogTime : public KPrefsModule
topLayout->addWidget( defaultDuration->label(), 4, 0 );
topLayout->addWidget( defaultDuration->timeEdit(), 4, 1 );
- TQGroupBox *remindersGroupBox = new TQGroupBox( 1, Qt::Horizontal,
+ TQGroupBox *remindersGroupBox = new TQGroupBox( 1, TQt::Horizontal,
i18n( "Reminders" ),
topFrame );
topLayout->addMultiCellWidget( remindersGroupBox, 5, 5, 0, 1 );
@@ -328,10 +328,10 @@ class KOPrefsDialogTime : public KPrefsModule
new TQLabel( i18n( "Default reminder time:" ), remindersBox );
mReminderTimeSpin = new KIntSpinBox( remindersBox );
- connect( mReminderTimeSpin, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotWidChanged()) );
+ connect( mReminderTimeSpin, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(slotWidChanged()) );
mReminderUnitsCombo = new KComboBox( remindersBox );
- connect( mReminderUnitsCombo, TQT_SIGNAL(activated(int)), TQT_SLOT(slotWidChanged()) );
+ connect( mReminderUnitsCombo, TQ_SIGNAL(activated(int)), TQ_SLOT(slotWidChanged()) );
mReminderUnitsCombo->insertItem( i18n( "minute(s)" ) );
mReminderUnitsCombo->insertItem( i18n( "hour(s)" ) );
mReminderUnitsCombo->insertItem( i18n( "day(s)" ) );
@@ -351,8 +351,8 @@ class KOPrefsDialogTime : public KPrefsModule
KURLRequester *rq = addWidPath( KOPrefs::instance()->audioFilePathItem(),
audioFileRemindersBox, filter )->urlRequester();
rq->setEnabled( cb->isChecked() );
- connect( cb, TQT_SIGNAL(toggled(bool)),
- rq, TQT_SLOT(setEnabled( bool)) );
+ connect( cb, TQ_SIGNAL(toggled(bool)),
+ rq, TQ_SLOT(setEnabled( bool)) );
TQHBox *eventRemindersBox = new TQHBox( remindersGroupBox );
addWidBool( KOPrefs::instance()->defaultEventRemindersItem(), eventRemindersBox )->checkBox();
@@ -364,10 +364,10 @@ class KOPrefsDialogTime : public KPrefsModule
topLayout->addWidget( alarmDefaultLabel, 6, 0 );
mAlarmTimeDefaultCheckBox = new TQCheckBox( topFrame );
topLayout->addWidget( mAlarmTimeDefaultCheckBox, 6, 1 );
- connect( mAlarmTimeDefaultCheckBox, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( slotWidChanged() ) );
+ connect( mAlarmTimeDefaultCheckBox, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( slotWidChanged() ) );
- TQGroupBox *workingHoursGroup = new TQGroupBox(1,Qt::Horizontal,
+ TQGroupBox *workingHoursGroup = new TQGroupBox(1,TQt::Horizontal,
i18n("Working Hours"),
topFrame);
topLayout->addMultiCellWidget( workingHoursGroup, 7, 7, 0, 1 );
@@ -390,8 +390,8 @@ class KOPrefsDialogTime : public KPrefsModule
"this box, or the working hours will not be "
"marked with color." ) );
- connect( mWorkDays[ index ], TQT_SIGNAL( stateChanged( int ) ),
- TQT_SLOT( slotWidChanged() ) );
+ connect( mWorkDays[ index ], TQ_SIGNAL( stateChanged( int ) ),
+ TQ_SLOT( slotWidChanged() ) );
}
TQHBox *workStartBox = new TQHBox(workingHoursGroup);
@@ -510,7 +510,7 @@ class KOPrefsDialogViews : public KPrefsModule
topLayout->addWidget( showTodosAgenda->checkBox() );
/*** Date Navigator Group ***/
- TQGroupBox *dateNavGroup = new TQGroupBox( 1, Qt::Horizontal,
+ TQGroupBox *dateNavGroup = new TQGroupBox( 1, TQt::Horizontal,
i18n("Date Navigator"),
topFrame );
addWidBool( KOPrefs::instance()->dailyRecurItem(), dateNavGroup );
@@ -520,7 +520,7 @@ class KOPrefsDialogViews : public KPrefsModule
/*** Agenda View Group ***/
- TQGroupBox *agendaGroup = new TQGroupBox( 1, Qt::Horizontal,
+ TQGroupBox *agendaGroup = new TQGroupBox( 1, TQt::Horizontal,
i18n("Agenda View"),
topFrame );
@@ -542,8 +542,8 @@ class KOPrefsDialogViews : public KPrefsModule
KPrefsWidBool *marcusBainsShowSeconds =
addWidBool( KOPrefs::instance()->marcusBainsShowSecondsItem(), agendaGroup );
- connect( marcusBainsEnabled->checkBox(), TQT_SIGNAL( toggled( bool ) ),
- marcusBainsShowSeconds->checkBox(), TQT_SLOT( setEnabled( bool ) ) );
+ connect( marcusBainsEnabled->checkBox(), TQ_SIGNAL( toggled( bool ) ),
+ marcusBainsShowSeconds->checkBox(), TQ_SLOT( setEnabled( bool ) ) );
addWidBool( KOPrefs::instance()->selectionStartsEditorItem(), agendaGroup );
@@ -554,7 +554,7 @@ class KOPrefsDialogViews : public KPrefsModule
topLayout->addWidget( agendaGroup );
/*** Month View Group ***/
- TQGroupBox *monthGroup = new TQGroupBox( 1, Qt::Horizontal,
+ TQGroupBox *monthGroup = new TQGroupBox( 1, TQt::Horizontal,
i18n("Month View"),
topFrame );
addWidBool( KOPrefs::instance()->enableMonthScrollItem(), monthGroup );
@@ -564,7 +564,7 @@ class KOPrefsDialogViews : public KPrefsModule
/*** Todo View Group ***/
- TQGroupBox *todoGroup = new TQGroupBox( 1, Qt::Horizontal,
+ TQGroupBox *todoGroup = new TQGroupBox( 1, TQt::Horizontal,
i18n("To-do View"),
topFrame );
addWidBool( KOPrefs::instance()->fullViewTodoItem(), todoGroup );
@@ -700,7 +700,7 @@ KOPrefsDialogColors::KOPrefsDialogColors( TQWidget *parent, const char *name )
topLayout->addWidget( unsetCategoryColor->button(), 6, 1 );
// categories colors
- TQGroupBox *categoryGroup = new TQGroupBox(1,Qt::Horizontal,i18n("Categories"),
+ TQGroupBox *categoryGroup = new TQGroupBox(1,TQt::Horizontal,i18n("Categories"),
topFrame);
topLayout->addMultiCellWidget(categoryGroup,7,7,0,1);
@@ -711,17 +711,17 @@ KOPrefsDialogColors::KOPrefsDialogColors( TQWidget *parent, const char *name )
i18n( "Select here the event category you want to modify. "
"You can change the selected category color using "
"the button below." ) );
- connect(mCategoryCombo,TQT_SIGNAL(activated(int)),TQT_SLOT(updateCategoryColor()));
+ connect(mCategoryCombo,TQ_SIGNAL(activated(int)),TQ_SLOT(updateCategoryColor()));
mCategoryButton = new KColorButton(categoryGroup);
TQWhatsThis::add( mCategoryButton,
i18n( "Choose here the color of the event category selected "
"using the combo box above." ) );
- connect(mCategoryButton,TQT_SIGNAL(changed(const TQColor &)),TQT_SLOT(setCategoryColor()));
+ connect(mCategoryButton,TQ_SIGNAL(changed(const TQColor &)),TQ_SLOT(setCategoryColor()));
updateCategoryColor();
// resources colors
- TQGroupBox *resourceGroup = new TQGroupBox(1,Qt::Horizontal,i18n("Resources"),
+ TQGroupBox *resourceGroup = new TQGroupBox(1,TQt::Horizontal,i18n("Resources"),
topFrame);
topLayout->addMultiCellWidget(resourceGroup,8,8,0,1);
@@ -730,13 +730,13 @@ KOPrefsDialogColors::KOPrefsDialogColors( TQWidget *parent, const char *name )
i18n( "Select here resource you want to modify. "
"You can change the selected resource color using "
"the button below." ) );
- connect(mResourceCombo,TQT_SIGNAL(activated(int)),TQT_SLOT(updateResourceColor()));
+ connect(mResourceCombo,TQ_SIGNAL(activated(int)),TQ_SLOT(updateResourceColor()));
mResourceButton = new KColorButton(resourceGroup);
TQWhatsThis::add( mResourceButton,
i18n( "Choose here the color of the resource selected "
"using the combo box above." ) );
- connect(mResourceButton,TQT_SIGNAL(changed(const TQColor &)),TQT_SLOT(setResourceColor()));
+ connect(mResourceButton,TQ_SIGNAL(changed(const TQColor &)),TQ_SLOT(setResourceColor()));
updateResources();
topLayout->setRowStretch(9,1);
@@ -865,8 +865,8 @@ KOPrefsDialogGroupScheduling::KOPrefsDialogGroupScheduling( TQWidget *parent, co
topFrame );
topLayout->addMultiCellWidget(useGroupwareBool->checkBox(),0,0,0,1);
// FIXME: This radio button should only be available when KMail is chosen
-// connect(thekmailradiobuttonupthere,TQT_SIGNAL(toggled(bool)),
-// useGroupwareBool->checkBox(), TQT_SLOT(enabled(bool)));
+// connect(thekmailradiobuttonupthere,TQ_SIGNAL(toggled(bool)),
+// useGroupwareBool->checkBox(), TQ_SLOT(enabled(bool)));
KPrefsWidBool *bcc =
addWidBool( KOPrefs::instance()->bccItem(), topFrame );
@@ -927,10 +927,10 @@ KOPrefsDialogGroupScheduling::KOPrefsDialogGroupScheduling( TQWidget *parent, co
topLayout->addWidget(del,6,1);
//topLayout->setRowStretch(2,1);
- connect(add, TQT_SIGNAL( clicked() ), this, TQT_SLOT(addItem()) );
- connect(del, TQT_SIGNAL( clicked() ), this, TQT_SLOT(removeItem()) );
- connect(aEmailsEdit,TQT_SIGNAL( textChanged(const TQString&) ), this,TQT_SLOT(updateItem()));
- connect(mAMails,TQT_SIGNAL(selectionChanged(TQListViewItem *)),TQT_SLOT(updateInput()));
+ connect(add, TQ_SIGNAL( clicked() ), this, TQ_SLOT(addItem()) );
+ connect(del, TQ_SIGNAL( clicked() ), this, TQ_SLOT(removeItem()) );
+ connect(aEmailsEdit,TQ_SIGNAL( textChanged(const TQString&) ), this,TQ_SLOT(updateItem()));
+ connect(mAMails,TQ_SIGNAL(selectionChanged(TQListViewItem *)),TQ_SLOT(updateInput()));
load();
}
@@ -1018,7 +1018,7 @@ KOPrefsDialogGroupwareScheduling::KOPrefsDialogGroupwareScheduling( TQWidget *pa
: KPrefsModule( KOPrefs::instance(), parent, name )
{
mGroupwarePage = new KOGroupwarePrefsPage( this );
- connect( mGroupwarePage, TQT_SIGNAL( changed() ), TQT_SLOT( slotWidChanged() ) );
+ connect( mGroupwarePage, TQ_SIGNAL( changed() ), TQ_SLOT( slotWidChanged() ) );
( new TQVBoxLayout( this ) )->addWidget( mGroupwarePage );
load();
@@ -1127,12 +1127,12 @@ KOPrefsDialogPlugins::KOPrefsDialogPlugins( TQWidget *parent, const char* name )
buttonRowLayout->addWidget( mConfigureButton );
buttonRowLayout->addItem( new TQSpacerItem(1, 1, TQSizePolicy::Expanding) );
topLayout->addWidget( buttonRow );
- connect( mConfigureButton, TQT_SIGNAL( clicked() ), TQT_SLOT( configure() ) );
+ connect( mConfigureButton, TQ_SIGNAL( clicked() ), TQ_SLOT( configure() ) );
- connect( mListView, TQT_SIGNAL( selectionChanged( TQListViewItem* ) ),
- TQT_SLOT( selectionChanged( TQListViewItem* ) ) );
- connect( mListView, TQT_SIGNAL( clicked( TQListViewItem* ) ),
- TQT_SLOT( slotWidChanged() ) );
+ connect( mListView, TQ_SIGNAL( selectionChanged( TQListViewItem* ) ),
+ TQ_SLOT( selectionChanged( TQListViewItem* ) ) );
+ connect( mListView, TQ_SIGNAL( clicked( TQListViewItem* ) ),
+ TQ_SLOT( slotWidChanged() ) );
load();
// usrReadConfig();
diff --git a/korganizer/koprefsdialog.h b/korganizer/koprefsdialog.h
index 28fc3ba7..e6fec99c 100644
--- a/korganizer/koprefsdialog.h
+++ b/korganizer/koprefsdialog.h
@@ -40,7 +40,7 @@ class TQListView;
class KDE_EXPORT KOPrefsDialogMain : public KPrefsModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOPrefsDialogMain( TQWidget *parent, const char *name );
@@ -53,7 +53,7 @@ class KDE_EXPORT KOPrefsDialogMain : public KPrefsModule
class KDE_EXPORT KOPrefsDialogColors : public KPrefsModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOPrefsDialogColors( TQWidget *parent, const char *name );
@@ -84,7 +84,7 @@ class KDE_EXPORT KOPrefsDialogColors : public KPrefsModule
class KDE_EXPORT KOPrefsDialogGroupScheduling : public KPrefsModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOPrefsDialogGroupScheduling( TQWidget *parent, const char *name );
@@ -108,7 +108,7 @@ class KOGroupwarePrefsPage;
class KDE_EXPORT KOPrefsDialogGroupwareScheduling : public KPrefsModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOPrefsDialogGroupwareScheduling( TQWidget *parent, const char *name );
@@ -123,7 +123,7 @@ class KDE_EXPORT KOPrefsDialogGroupwareScheduling : public KPrefsModule
class KDE_EXPORT KOPrefsDialogPlugins : public KPrefsModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOPrefsDialogPlugins( TQWidget *parent, const char *name );
diff --git a/korganizer/korgac/CMakeLists.txt b/korganizer/korgac/CMakeLists.txt
index c870221b..f3055729 100644
--- a/korganizer/korgac/CMakeLists.txt
+++ b/korganizer/korgac/CMakeLists.txt
@@ -27,7 +27,11 @@ link_directories(
##### other data ################################
-install( FILES korgac.desktop DESTINATION ${AUTOSTART_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE korgac.desktop
+ DESTINATION ${AUTOSTART_INSTALL_DIR}
+ PO_DIR korganizer-desktops
+)
##### korgac (executable) #######################
diff --git a/korganizer/korgac/alarmdialog.cpp b/korganizer/korgac/alarmdialog.cpp
index cc0bb283..80610483 100644
--- a/korganizer/korgac/alarmdialog.cpp
+++ b/korganizer/korgac/alarmdialog.cpp
@@ -109,8 +109,8 @@ AlarmDialog::AlarmDialog( KCal::CalendarResources *calendar, TQWidget *parent, c
// User3 => Dismiss Selected
// Ok => Suspend
- connect( calendar, TQT_SIGNAL(calendarChanged()),
- this, TQT_SLOT(slotCalendarChanged()) );
+ connect( calendar, TQ_SIGNAL(calendarChanged()),
+ this, TQ_SLOT(slotCalendarChanged()) );
TDEGlobal::iconLoader()->addAppDir( "tdepim" );
setButtonOK( i18n( "Suspend" ) );
@@ -122,7 +122,7 @@ AlarmDialog::AlarmDialog( KCal::CalendarResources *calendar, TQWidget *parent, c
TQLabel *label = new TQLabel( i18n("The following items triggered reminders:"), topBox );
topLayout->addWidget( label );
- mSplitter = new TQSplitter( Qt::Vertical, topBox );
+ mSplitter = new TQSplitter( TQt::Vertical, topBox );
mSplitter->setOpaqueResize( TDEGlobalSettings::opaqueResize() );
topLayout->addWidget( mSplitter );
@@ -135,10 +135,10 @@ AlarmDialog::AlarmDialog( KCal::CalendarResources *calendar, TQWidget *parent, c
mIncidenceListView->setShowSortIndicator( true );
mIncidenceListView->setAllColumnsShowFocus( true );
mIncidenceListView->setSelectionMode( TQListView::Extended );
- connect( mIncidenceListView, TQT_SIGNAL(selectionChanged()), TQT_SLOT(updateButtons()) );
- connect( mIncidenceListView, TQT_SIGNAL(doubleClicked(TQListViewItem*)), TQT_SLOT(edit()) );
- connect( mIncidenceListView, TQT_SIGNAL(currentChanged(TQListViewItem*)), TQT_SLOT(showDetails()) );
- connect( mIncidenceListView, TQT_SIGNAL(selectionChanged()), TQT_SLOT(showDetails()) );
+ connect( mIncidenceListView, TQ_SIGNAL(selectionChanged()), TQ_SLOT(updateButtons()) );
+ connect( mIncidenceListView, TQ_SIGNAL(doubleClicked(TQListViewItem*)), TQ_SLOT(edit()) );
+ connect( mIncidenceListView, TQ_SIGNAL(currentChanged(TQListViewItem*)), TQ_SLOT(showDetails()) );
+ connect( mIncidenceListView, TQ_SIGNAL(selectionChanged()), TQ_SLOT(showDetails()) );
mDetailView = new KOEventViewer( mCalendar, mSplitter );
mDetailView->setFocus(); // set focus here to start with to make it harder
@@ -160,7 +160,7 @@ AlarmDialog::AlarmDialog( KCal::CalendarResources *calendar, TQWidget *parent, c
mSuspendUnit->insertItem( i18n("week(s)") );
mSuspendUnit->setCurrentItem( defSuspendUnit );
- connect( &mSuspendTimer, TQT_SIGNAL(timeout()), TQT_SLOT(wakeUp()) );
+ connect( &mSuspendTimer, TQ_SIGNAL(timeout()), TQ_SLOT(wakeUp()) );
setMainWidget( mIncidenceListView );
mIncidenceListView->setMinimumSize( 500, 50 );
@@ -544,7 +544,21 @@ void AlarmDialog::wakeUp()
}
if ( activeReminders )
+ {
+ DCOPRef screensaver("kdesktop", "KScreensaverIface");
+ DCOPReply reply = screensaver.call("isBlanked");
+ bool res = true;
+ if (reply.isValid()) {
+ reply.get(res);
+ }
show();
+ if (res)
+ {
+ // Lower the dialog if the screensaver is active or its status unknown.
+ // This prevents reminders to show on a locked screen.
+ lower();
+ }
+ }
setTimer();
showDetails();
emit reminderCount( activeCount() );
diff --git a/korganizer/korgac/alarmdialog.h b/korganizer/korgac/alarmdialog.h
index 949c17f7..d11dc591 100644
--- a/korganizer/korgac/alarmdialog.h
+++ b/korganizer/korgac/alarmdialog.h
@@ -43,7 +43,7 @@ class TQSpinBox;
class TQSplitter;
class AlarmDialog : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
explicit AlarmDialog( CalendarResources *calendar, TQWidget *parent = 0, const char *name = 0 );
diff --git a/korganizer/korgac/alarmdockwindow.cpp b/korganizer/korgac/alarmdockwindow.cpp
index 081d91ca..a5cb277e 100644
--- a/korganizer/korgac/alarmdockwindow.cpp
+++ b/korganizer/korgac/alarmdockwindow.cpp
@@ -64,16 +64,16 @@ AlarmDockWindow::AlarmDockWindow( const char *name )
setPixmap( alarmsEnabled ? mPixmapEnabled : mPixmapDisabled );
// Set up the context menu
- mSuspendAll = contextMenu()->insertItem( i18n("Suspend All"), this, TQT_SLOT( slotSuspendAll() ) );
- mDismissAll = contextMenu()->insertItem( i18n("Dismiss All"), this, TQT_SLOT( slotDismissAll() ) );
+ mSuspendAll = contextMenu()->insertItem( i18n("Suspend All"), this, TQ_SLOT( slotSuspendAll() ) );
+ mDismissAll = contextMenu()->insertItem( i18n("Dismiss All"), this, TQ_SLOT( slotDismissAll() ) );
contextMenu()->setItemEnabled( mSuspendAll, false );
contextMenu()->setItemEnabled( mDismissAll, false );
contextMenu()->insertSeparator();
mAlarmsEnabledId = contextMenu()->insertItem( i18n("Reminders Enabled"), this,
- TQT_SLOT( toggleAlarmsEnabled() ) );
+ TQ_SLOT( toggleAlarmsEnabled() ) );
mAutostartId = contextMenu()->insertItem( i18n("Start Reminder Daemon at Login"), this,
- TQT_SLOT( toggleAutostart() ) );
+ TQ_SLOT( toggleAutostart() ) );
contextMenu()->setItemChecked( mAutostartId, autostart );
contextMenu()->setItemChecked( mAlarmsEnabledId, alarmsEnabled );
@@ -86,15 +86,15 @@ AlarmDockWindow::AlarmDockWindow( const char *name )
kdDebug(5890) << "No Quit standard action." << endl;
} else {
#if KDE_IS_VERSION(3,3,90)
- quit->disconnect( TQT_SIGNAL( activated() ), this,
- TQT_SLOT( maybeQuit() ) );
- connect( quit, TQT_SIGNAL( activated() ), TQT_SLOT( slotQuit() ) );
+ quit->disconnect( TQ_SIGNAL( activated() ), this,
+ TQ_SLOT( maybeQuit() ) );
+ connect( quit, TQ_SIGNAL( activated() ), TQ_SLOT( slotQuit() ) );
}
#else //FIXME: remove for KDE 4.0
- quit->disconnect( TQT_SIGNAL( activated() ), tqApp,
- TQT_SLOT( closeAllWindows() ) );
+ quit->disconnect( TQ_SIGNAL( activated() ), tqApp,
+ TQ_SLOT( closeAllWindows() ) );
}
- connect( this, TQT_SIGNAL( quitSelected() ), TQT_SLOT( slotQuit() ) );
+ connect( this, TQ_SIGNAL( quitSelected() ), TQ_SLOT( slotQuit() ) );
#endif
TQToolTip::add(this, mName );
@@ -188,7 +188,7 @@ void AlarmDockWindow::enableAutostart( bool enable )
void AlarmDockWindow::mousePressEvent( TQMouseEvent *e )
{
- if ( e->button() == Qt::LeftButton ) {
+ if ( e->button() == TQt::LeftButton ) {
kapp->startServiceByDesktopName( "korganizer", TQString() );
} else {
KSystemTray::mousePressEvent( e );
diff --git a/korganizer/korgac/alarmdockwindow.h b/korganizer/korgac/alarmdockwindow.h
index 6f6cd7bd..81c00a8c 100644
--- a/korganizer/korgac/alarmdockwindow.h
+++ b/korganizer/korgac/alarmdockwindow.h
@@ -30,7 +30,7 @@
class AlarmDockWindow : public KSystemTray
{
- Q_OBJECT
+ TQ_OBJECT
public:
AlarmDockWindow( const char *name = 0 );
diff --git a/korganizer/korgac/koalarmclient.cpp b/korganizer/korgac/koalarmclient.cpp
index 2a87c7fd..37478ca0 100644
--- a/korganizer/korgac/koalarmclient.cpp
+++ b/korganizer/korgac/koalarmclient.cpp
@@ -46,8 +46,8 @@ KOAlarmClient::KOAlarmClient( TQObject *parent, const char *name )
mDocker = new AlarmDockWindow;
mDocker->show();
- connect( this, TQT_SIGNAL( reminderCount( int ) ), mDocker, TQT_SLOT( slotUpdate( int ) ) );
- connect( mDocker, TQT_SIGNAL( quitSignal() ), TQT_SLOT( slotQuit() ) );
+ connect( this, TQ_SIGNAL( reminderCount( int ) ), mDocker, TQ_SLOT( slotUpdate( int ) ) );
+ connect( mDocker, TQ_SIGNAL( quitSignal() ), TQ_SLOT( slotQuit() ) );
TDEConfig c( locate( "config", "korganizerrc" ) );
c.setGroup( "Time & Date" );
@@ -58,7 +58,7 @@ KOAlarmClient::KOAlarmClient( TQObject *parent, const char *name )
mCalendar->readConfig();
mCalendar->load();
- connect( &mCheckTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( checkAlarms() ) );
+ connect( &mCheckTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( checkAlarms() ) );
TDEConfig *config = kapp->config();
config->setGroup( "Alarms" );
@@ -132,10 +132,10 @@ void KOAlarmClient::createReminder( KCal::CalendarResources *calendar,
if ( !mDialog ) {
mDialog = new AlarmDialog( calendar );
- connect( mDialog, TQT_SIGNAL(reminderCount(int)), mDocker, TQT_SLOT(slotUpdate(int)) );
- connect( mDocker, TQT_SIGNAL(suspendAllSignal()), mDialog, TQT_SLOT(suspendAll()) );
- connect( mDocker, TQT_SIGNAL(dismissAllSignal()), mDialog, TQT_SLOT(dismissAll()) );
- connect( this, TQT_SIGNAL( saveAllSignal() ), mDialog, TQT_SLOT( slotSave() ) );
+ connect( mDialog, TQ_SIGNAL(reminderCount(int)), mDocker, TQ_SLOT(slotUpdate(int)) );
+ connect( mDocker, TQ_SIGNAL(suspendAllSignal()), mDialog, TQ_SLOT(suspendAll()) );
+ connect( mDocker, TQ_SIGNAL(dismissAllSignal()), mDialog, TQ_SLOT(dismissAll()) );
+ connect( this, TQ_SIGNAL( saveAllSignal() ), mDialog, TQ_SLOT( slotSave() ) );
}
mDialog->addIncidence( incidence, dt, displayText );
diff --git a/korganizer/korgac/koalarmclient.h b/korganizer/korgac/koalarmclient.h
index a8628848..ef6e5d27 100644
--- a/korganizer/korgac/koalarmclient.h
+++ b/korganizer/korgac/koalarmclient.h
@@ -43,7 +43,7 @@ class Incidence;
class KOAlarmClient : public TQObject, virtual public AlarmClientIface, public KSessionManaged
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOAlarmClient( TQObject *parent = 0, const char *name = 0 );
diff --git a/korganizer/korgac/korgac.desktop b/korganizer/korgac/korgac.desktop
index c20f2f5f..2ae6af98 100644
--- a/korganizer/korgac/korgac.desktop
+++ b/korganizer/korgac/korgac.desktop
@@ -1,93 +1,11 @@
[Desktop Entry]
Name=KOrganizer Reminder Client
-Name[af]=KOrganizer herhinner kliënt
-Name[ar]=زبون المنبه لِــ KOrganizer
-Name[bg]=Аларма на KOrganizer
-Name[ca]=Client de l'alarma de KOrganizer
-Name[cs]=Klient upomínek KOrganizeru
-Name[da]=KOrganizer-påmindelsesklient
-Name[de]=KOrganizer Erinnerungsfunktion
-Name[el]=Πελάτης υπενθύμισης του KOrganizer
-Name[eo]=Alarmilo por Organizilo
-Name[es]=Cliente de recordatorio para KOrganizer
-Name[et]=KOrganizeri meeldetuletuse klientprogramm
-Name[eu]=KOrganizer-en oroigarrien bezeroa
-Name[fa]=کارخواه یادآوری‌کنندۀ KOrganizer
-Name[fi]=KOrganizer-hälytysasiakas
-Name[fr]=Client d'alarme de KOrganizer
-Name[fy]=KOrganizer omtinkerdaemon
-Name[gl]=Cliente de Lembranzas de KOrganizer
-Name[hu]=KOrganizer-emlékeztető kliens
-Name[is]=Áminningarforrit fyrir KOrganizer
-Name[it]=Client degli avvisi di KOrganizer
-Name[ja]=KOrganizer リマインダクライアント
-Name[kk]=KOrganizer-дің еске салу клиенті
-Name[km]=កម្មវិធី​រំលឹក​របស់ KOrganizer
-Name[lt]=KOrganizer priminimų klientas
-Name[mk]=Клиент за потсетување во КОрганизатор
-Name[nb]=KOrganizer klient for påminning
-Name[nds]=KOrganizer-Anstöötgever
-Name[ne]=केडीई आयोजक रिमाइन्डर क्लाइन्ट
-Name[nl]=KOrganizer herinneringsdaemon
-Name[nn]=Alarmklient for KOrganizer
-Name[pl]=Klient przypominania KOrganizera
-Name[pt]=Cliente de Avisos do KOrganizer
-Name[pt_BR]=Cliente do Alarme do KOrganizer
-Name[ru]=Уведомления KOrganizer
-Name[sk]=Klient pripomienok pre KOrganizer
-Name[sl]=Odjemalec za opomnik KOrganizerja
-Name[sr]=Клијент подсетника KOrganizer-а
-Name[sr@Latn]=Klijent podsetnika KOrganizer-a
-Name[sv]=Korganizer-påminnelseklient
-Name[tr]=KOrganizer Hatırlatma İstemcisi
-Name[uk]=Клієнт нагадувань KOrganizer
-Name[zh_CN]=KOrganizer 定时器客户端程序
-Name[zh_TW]=KOrganizer 提醒客戶端程式
+
+GenericName=KOrganizer Reminder Daemon Client
+
Exec=korgac --miniicon korganizer
Icon=korganizer
Type=Application
-GenericName=KOrganizer Reminder Daemon Client
-GenericName[af]=Korganizer herhinner bediener kliënt
-GenericName[bg]=Демон за алармата на KOrganizer
-GenericName[ca]=Client del dimoni d'alarma de KOrganizer
-GenericName[cs]=Klient démona přípomínek KOrganizeru
-GenericName[da]=KOrganizer-påmindelsesklient
-GenericName[de]=Hintergrund-Erinnerungsfunktion für KOrganizer
-GenericName[el]=Δαίμονας πελάτη υπενθύμισης του KOrganizer
-GenericName[eo]=Kliento por la alarmo-demono de Organizilo
-GenericName[es]=Cliente del daemon de recordatorio para KOrganizer
-GenericName[et]=KOrganizeri meeldetuletusdeemoni klientprogramm
-GenericName[eu]=KOrganizer-en oroigarrien deabruaren bezeroa
-GenericName[fa]=کارخواه شبح یادآوری KOrganizer
-GenericName[fi]=KOrganizer hälytyspalvelimen asiakas
-GenericName[fr]=Client pour le démon d'alarme de KOrganizer
-GenericName[fy]=KOrganizer omtinkerdaemon
-GenericName[gl]=Daemon do Cliente de Lembranzas de KOrganizer
-GenericName[hu]=KOrganizer emlékeztető szolgáltatás kliense
-GenericName[is]=Áminningarpúki fyrir KOrganizer
-GenericName[it]=Client del demone degli avvisi di KOrganizer
-GenericName[ja]=KOrganizer リマインダデーモンクライアント
-GenericName[kk]=Organizer-дің еске салу қызметінің клиенті
-GenericName[km]=កម្មវិធី​ដេមិន​អ្នក​រំលឹក​របស់ KOrganizer
-GenericName[lt]=KOrganizer priminimų tarnybos klientas
-GenericName[nb]=KOrganizer klient for påminningstjenesten
-GenericName[nds]=Client för den Anstötendämoon vun KOrganizer
-GenericName[ne]=केडीई आयोजक रिमाइन्डर डेइमन क्लाइन्ट
-GenericName[nl]=KOrganizer herinneringsdaemon
-GenericName[nn]=Alarmnisseklient for KOrganizer
-GenericName[pl]=Klient demona przypominania KOrganizera
-GenericName[pt]=Cliente do Servidor de Avisos do KOrganizer
-GenericName[pt_BR]=Cliente do Servidor de Alarme do KOrganizer
-GenericName[ru]=Клиент службы уведомлений KOrganizer
-GenericName[sk]=Klient KOrganizer pre démona pripomienok
-GenericName[sl]=Pritajeni odjemalec za opomnik KOrganizerja
-GenericName[sr]=Клијент демона подсетника KOrganizer-а
-GenericName[sr@Latn]=Klijent demona podsetnika KOrganizer-a
-GenericName[sv]=Korganizer-alarmdemonklient
-GenericName[tr]=KOrganizer Hatırlatma Servisi İstemcisi
-GenericName[uk]=Демон клієнта нагадування для KOrganizer
-GenericName[zh_CN]=KOrganizer 定时守护进程的客户端程序
-GenericName[zh_TW]=KOrganizr 提醒守護程式客戶端
Terminal=false
X-TDE-autostart-after=panel
X-TDE-autostart-condition=korgacrc:General:Autostart:true
diff --git a/korganizer/korganizer.cpp b/korganizer/korganizer.cpp
index 5646d709..16bf76bc 100644
--- a/korganizer/korganizer.cpp
+++ b/korganizer/korganizer.cpp
@@ -101,8 +101,8 @@ KOrganizer::KOrganizer( const char *name )
mCalendarView = new CalendarView( this, "KOrganizer::CalendarView" );
setCentralWidget(mCalendarView);
- mActionManager = new ActionManager( this, mCalendarView, TQT_TQOBJECT(this), this, false );
- (void)new KOrganizerIfaceImpl( mActionManager, TQT_TQOBJECT(this), "IfaceImpl" );
+ mActionManager = new ActionManager( this, mCalendarView, this, this, false );
+ (void)new KOrganizerIfaceImpl( mActionManager, this, "IfaceImpl" );
}
KOrganizer::~KOrganizer()
@@ -128,8 +128,8 @@ void KOrganizer::init( bool document )
}
mActionManager->init();
- connect( mActionManager, TQT_SIGNAL( actionNew( const KURL & ) ),
- TQT_SLOT( newMainWindow( const KURL & ) ) );
+ connect( mActionManager, TQ_SIGNAL( actionNew( const KURL & ) ),
+ TQ_SLOT( newMainWindow( const KURL & ) ) );
mActionManager->loadParts();
@@ -139,7 +139,7 @@ void KOrganizer::init( bool document )
KStatusBar *bar = statusBar();
bar->insertItem( "", ID_GENERAL, 10 );
- connect( bar, TQT_SIGNAL( pressed( int ) ), TQT_SLOT( statusBarPressed( int ) ) );
+ connect( bar, TQ_SIGNAL( pressed( int ) ), TQ_SLOT( statusBarPressed( int ) ) );
KPIM::ProgressDialog *progressDialog = new KPIM::ProgressDialog( bar, this );
progressDialog->hide();
@@ -150,8 +150,8 @@ void KOrganizer::init( bool document )
bar->addWidget( progressWidget, 0, true );
- connect( mActionManager->view(), TQT_SIGNAL( statusMessage( const TQString & ) ),
- TQT_SLOT( showStatusMessage( const TQString & ) ) );
+ connect( mActionManager->view(), TQ_SIGNAL( statusMessage( const TQString & ) ),
+ TQ_SLOT( showStatusMessage( const TQString & ) ) );
setStandardToolBarMenuEnabled( true );
setTitle();
@@ -208,9 +208,9 @@ void KOrganizer::initActions()
setStandardToolBarMenuEnabled( true );
createStandardStatusBarAction();
- KStdAction::keyBindings(guiFactory(), TQT_SLOT(configureShortcuts()), actionCollection());
- KStdAction::configureToolbars(TQT_TQOBJECT(this), TQT_SLOT(configureToolbars() ), actionCollection());
- KStdAction::quit( TQT_TQOBJECT(this), TQT_SLOT( close() ), actionCollection() );
+ KStdAction::keyBindings(guiFactory(), TQ_SLOT(configureShortcuts()), actionCollection());
+ KStdAction::configureToolbars(this, TQ_SLOT(configureToolbars() ), actionCollection());
+ KStdAction::quit( this, TQ_SLOT( close() ), actionCollection() );
setAutoSaveSettings();
createGUI( 0 );
diff --git a/korganizer/korganizer.desktop b/korganizer/korganizer.desktop
index ec1046d1..cdc11758 100644
--- a/korganizer/korganizer.desktop
+++ b/korganizer/korganizer.desktop
@@ -1,143 +1,18 @@
[Desktop Entry]
MimeType=text/calendar;text/x-vcalendar;
+
+Name=KOrganizer
+
+GenericName=Personal Organizer
+
Comment=Calendar and Scheduling Program
-Comment[af]=Kalender en Skedulering Program
-Comment[ar]=برنامج الجدولة والتقويم
-Comment[bg]=Програма за календар и разписание
-Comment[bs]=Kalendar i rokovnik
-Comment[ca]=Un programa de calendari i planificació
-Comment[cs]=Kalendářový a plánovací program
-Comment[cy]=Rhaglen Galendr a Drefnlennu
-Comment[da]=Kalender- og planlægningsprogram
-Comment[de]=Ein Kalender und Zeitplaner
-Comment[el]=Πρόγραμμα ημερολογίου και προγραμματισμού
-Comment[eo]=Kalendara kaj plana programo
-Comment[es]=Calendario y planificador
-Comment[et]=Kalendri ja ajakava haldamise rakendus
-Comment[eu]=Egutegi eta antolaketa progrmaa
-Comment[fa]=تقویم و برنامۀ زمان‌بندی
-Comment[fi]=Kalenteri ja ajanhallintaohjelma
-Comment[fr]=Calendrier et agenda personnel
-Comment[fy]=Aginda- en ôfsprakenprogramma
-Comment[gl]=Programa de Calendario e Axenda
-Comment[he]=תוכניות לוח שנה ותזמון משימות
-Comment[hi]=कैलेन्डर तथा समय-सारणी प्रोग्राम
-Comment[hr]=Kalendar i rokovnik
-Comment[hu]=Határidőnapló és eseményszervező
-Comment[is]=Dagbók og skipulag
-Comment[it]=Programma di calendario e di agenda
-Comment[ja]=カレンダーとスケジュール管理プログラム
-Comment[kk]=Күнтізбе және Жоспарлау бағдарламасы
-Comment[km]=កម្មវិធី​ប្រតិទិន និង​កាលវិភាគ
-Comment[lt]=Kalendoriaus ir planavimo programa
-Comment[lv]=Kalendāra un Plānošanas Programma
-Comment[mk]=Програма за календари и закажувања
-Comment[ms]=Kalendar dan Program Penjadualan
-Comment[mt]=Programm b' kalendarju w skeda
-Comment[nb]=Et kalender- og tidsplanleggingsprogram
-Comment[nds]=Kalenner un Tietplaner
-Comment[ne]=क्यालेन्डर र कार्यतालिका कार्यक्रम
-Comment[nl]=Agenda- en afsprakenprogramma
-Comment[nn]=Kalender- og planleggingsprogram
-Comment[nso]=Lenaneo la Peakanyo ya Tshupamabaka
-Comment[pl]=Kalendarz i terminarz
-Comment[pt]=Calendário e Programa de Escalonamento
-Comment[pt_BR]=Programa de Calendário e Agenda
-Comment[ro]=Program de planificare şi calendar
-Comment[ru]=Календарь и личное расписание
-Comment[se]=Kaleandar- ja plánenprográmma
-Comment[sk]=Kalendár a plánovací program
-Comment[sl]=Program za koledar in razporejanje
-Comment[sr]=Календарски и планерски програм
-Comment[sr@Latn]=Kalendarski i planerski program
-Comment[sv]=Kalender- och schemaläggningsprogram
-Comment[ta]=நாள்காட்டி மற்றும் திட்ட நிரல்
-Comment[tg]=Тақвимот ва ҷадвали шахсӣ
-Comment[th]=โปรแกรมจัดการบันทึกประจำวันและตารางการนัดหมาย
-Comment[tr]=Takvim ve Zamanlama Programı
-Comment[uk]=Програма календаря та розкладу
-Comment[uz]=Календар ва режалаштириш дастури
-Comment[ven]=Khalenda na mbekanyamushumo ya u shedula
-Comment[vi]=Chương trình lịch và kế hoạch
-Comment[xh]=Ikhalenda no Dweliso lwenkqubo Yokucwangcisa
-Comment[zh_CN]=日历和日程安排程序
-Comment[zh_TW]=行事曆與排程軟體
-Comment[zu]=Ikhalenda kanye Neprogramu Yokugcina isikhathi
+
Exec=korganizer %U
Icon=korganizer
Path=
X-DocPath=korganizer/index.html
Type=Application
Terminal=false
-Name=KOrganizer
-Name[af]=Korganizer
-Name[cy]=KTrefnydd
-Name[eo]=KOrganizilo
-Name[hi]=के-आर्गेनाइज़र
-Name[lv]=KOrganaizers
-Name[mk]=КОрганизатор
-Name[ne]=केडीई आयोजक
-Name[nso]=KMokopanyi
-Name[pl]=Organizator
-Name[sv]=Korganizer
-Name[ta]=கேஅமைப்பாளர்
-Name[ven]=Mulugisi wa K
-Name[zh_TW]=KOrganizer 行事曆
-GenericName=Personal Organizer
-GenericName[af]=Persoonlike Organiseerder
-GenericName[ar]=المنظم الشخصي
-GenericName[be]=Пэрсанальны арганізатар
-GenericName[bg]=Организатор
-GenericName[bs]=Lični organizer
-GenericName[ca]=Organitzador personal
-GenericName[cs]=Osobní organizér
-GenericName[cy]=Trefnydd Personol
-GenericName[da]=Personlig organisering
-GenericName[de]=Persönliche Daten organisieren
-GenericName[el]=Προσωπικός οργανωτής
-GenericName[en_GB]=Personal Organiser
-GenericName[eo]=Persona Organizilo
-GenericName[es]=Organizador personal
-GenericName[et]=Personaalne ajaarvestus
-GenericName[eu]=Antolatzaile pertsonala
-GenericName[fa]=سازمان‌دهندۀ شخصی
-GenericName[fi]=Henkilökohtainen ajanhallintaohjelma
-GenericName[fr]=Organiseur personnel
-GenericName[fy]=Persoanlike organizer
-GenericName[gl]=Organizador Persoal
-GenericName[he]=מנהל זמן אישי
-GenericName[hi]=निजी प्रबंधक
-GenericName[hu]=Határidőnapló
-GenericName[is]=Persónuleg skipulagsbók
-GenericName[it]=Organizzatore personale
-GenericName[ja]=個人向けスケジュール管理
-GenericName[kk]=Дербес ұйымдастырғышы
-GenericName[km]=កម្មវិធី​រៀបចំ​ផ្ទាល់​ខ្លួន
-GenericName[lt]=Asmeninės informacijos tvarkyklė
-GenericName[mk]=Личен организатор
-GenericName[ms]=Penyusun Peribadi
-GenericName[nb]=Personlig planlegger
-GenericName[nds]=Persöönlich Mötenkalenner
-GenericName[ne]=व्यक्तिगत आयोजक
-GenericName[nl]=Persoonlijke organizer
-GenericName[nn]=Personleg organiserar
-GenericName[pl]=Osobisty organizator
-GenericName[pt]=Organizador Pessoal
-GenericName[pt_BR]=Organizador Pessoal
-GenericName[ro]=Organizator personal
-GenericName[ru]=Персональный органайзер
-GenericName[sk]=Osobný plánovač
-GenericName[sl]=Osebni organizator
-GenericName[sr]=Лични планер
-GenericName[sr@Latn]=Lični planer
-GenericName[sv]=Filofax
-GenericName[ta]=தனிப்பயன் அமைப்பாளர்
-GenericName[tg]=Органайзери инфиродӣ
-GenericName[tr]=Kişisel Bilgi Yöneticisi
-GenericName[uk]=Персональний тижневик
-GenericName[uz]=Шахсий органайзер
-GenericName[zh_CN]=个人日程安排
-GenericName[zh_TW]=個人行程組織軟體
X-TDE-ServiceTypes=Browser/View,DCOP/Organizer
X-TDE-Library=libkorganizerpart
X-TDE-StartupNotify=true
diff --git a/korganizer/korganizer.h b/korganizer/korganizer.h
index 76505f7f..56614604 100644
--- a/korganizer/korganizer.h
+++ b/korganizer/korganizer.h
@@ -64,7 +64,7 @@ typedef KParts::MainWindow KPartsMainWindow;
*/
class KOrganizer : public KPartsMainWindow, public KOrgMainWindow
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/korganizer/korganizer_configcolors.desktop b/korganizer/korganizer_configcolors.desktop
index f19f4a1d..a654cd1a 100644
--- a/korganizer/korganizer_configcolors.desktop
+++ b/korganizer/korganizer_configcolors.desktop
@@ -12,177 +12,7 @@ X-TDE-ParentComponents=korganizer,kontact_korganizerplugin
X-TDE-CfgDlgHierarchy=KOrganizer
Name=Colors
-Name[af]=Kleure
-Name[ar]=الألوان
-Name[az]=Rənglər
-Name[be]=Колеры
-Name[bg]=Цветове
-Name[br]=Livioù
-Name[bs]=Boje
-Name[cs]=Barvy
-Name[cy]=Lliwiau
-Name[da]=Farver
-Name[de]=Farben
-Name[el]=Χρώματα
-Name[en_GB]=Colours
-Name[eo]=Koloroj
-Name[es]=Colores
-Name[et]=Värvid
-Name[eu]=Koloreak
-Name[fa]=رنگها
-Name[fi]=Värit
-Name[fr]=Couleurs
-Name[fy]=Kleuren
-Name[ga]=Dathanna
-Name[gl]=Cores
-Name[he]=צבעים
-Name[hi]=रंग
-Name[hr]=Boje
-Name[hu]=Színek
-Name[id]=Warna
-Name[is]=Litir
-Name[it]=Colori
-Name[ja]=色
-Name[kk]=Түстері
-Name[km]=ពណ៌
-Name[lt]=Spalvos
-Name[lv]=Krāsas
-Name[mk]=Бои
-Name[ms]=Warna
-Name[mt]=Kuluri
-Name[nb]=Farger
-Name[nds]=Klören
-Name[ne]=रङ
-Name[nl]=Kleuren
-Name[nn]=Fargar
-Name[pl]=Kolory
-Name[pt]=Cores
-Name[pt_BR]=Cores
-Name[ro]=Culori
-Name[ru]=Цвета
-Name[rw]=Amabara
-Name[se]=Ivnnit
-Name[sk]=Farby
-Name[sl]=Barve
-Name[sr]=Боје
-Name[sr@Latn]=Boje
-Name[sv]=Färger
-Name[ta]=வண்ணங்கள்
-Name[tg]=Рангҳо
-Name[th]=สี
-Name[tr]=Renkler
-Name[uk]=Кольори
-Name[uz]=Ранглар
-Name[ven]=Mivhala
-Name[vi]=Màu
-Name[xh]=Imibala
-Name[zh_CN]=颜色
-Name[zh_TW]=顏色
-Name[zu]=Imibala
+
Comment=KOrganizer Colors Configuration
-Comment[af]=KOrganizer kleure opstelling
-Comment[ar]=إعداد ألوان KOrganizer
-Comment[be]=Канфігурацыя колераў KOrganizer
-Comment[bg]=Настройки на цветовете за KOrganizer
-Comment[bs]=KOrganizer podešavanje boja
-Comment[ca]=Configuració de colors a KOrganizer
-Comment[cs]=Nastavení barev KOrganizeru
-Comment[cy]=Ffurfweddiad Lliwiau KTrefnydd
-Comment[da]=KOrganizer farveindstilling
-Comment[de]=Farbenfestlegung für KOrganizer
-Comment[el]=Ρύθμιση χρωμάτων του KOrganizer
-Comment[en_GB]=KOrganizer Colours Configuration
-Comment[eo]=KOrganizilo Kolor-agordo
-Comment[es]=Configuración de los colores de KOrganizer
-Comment[et]=KOrganizeri värvide seadistamine
-Comment[eu]=KOrganizer-en koloreen konfigurazioa
-Comment[fa]=پیکربندی رنگهای KOrganizer
-Comment[fi]=KOrganizer värien asetukset
-Comment[fr]=Configuration des couleurs de KOrganizer
-Comment[fy]=KOrganizer kleuren ynstelle
-Comment[gl]=Configuración de Cores de KOrganizer
-Comment[he]=הגדרות צבעים של הארגונית
-Comment[hi]=के-आर्गेनाइज़र रंग कॉन्फ़िगरेशन
-Comment[hu]=KOrganizer színbeállítások
-Comment[is]=KOrganizer litastillingar
-Comment[it]=Configurazione dei colori di Korganizer
-Comment[ja]=KOrganizer 色設定
-Comment[kk]=KOrganizer-дің түстер параметрлері
-Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​ពណ៌ KOrganizer
-Comment[lt]=KOrganizer spalvų konfigūravimas
-Comment[mk]=Конфигурација на боите
-Comment[ms]=KOnfigurasi Warna KOrganizer
-Comment[nb]=KOrganizer fargeoppsett
-Comment[nds]=Klören för KOrganizer instellen
-Comment[ne]=केडीई आयोजक रङ कन्फिगरेसन
-Comment[nl]=KOrganizer kleuren instellen
-Comment[nn]=KOrganizer, fargeinnstillingar
-Comment[pl]=Konfiguracja kolorów KOrganizera
-Comment[pt]=Configuração de Cores do KOrganizer
-Comment[pt_BR]=Configuração de Cores do KOrganizer
-Comment[ro]=Configurare culori KOrganizer
-Comment[ru]=Настройка цветов органайзера TDE
-Comment[se]=KOrganizer, ivdneheivehusat
-Comment[sk]=Nastavenie farieb pre KOrganizer
-Comment[sl]=Nastavitve barv v KOrganizerju
-Comment[sr]=Подешавање боја у KOrganizer-у
-Comment[sr@Latn]=Podešavanje boja u KOrganizer-u
-Comment[sv]=Inställning av Korganizers färger
-Comment[ta]=கேஅமைப்பவர் வண்ணங்களின் கட்டமைப்பு
-Comment[tg]=Танзимотҳои ранги органайзери TDE
-Comment[tr]=KOrganizer Renk Yapılandırması
-Comment[uk]=Налаштування кольорів у KOrganizer
-Comment[zh_CN]=KOrganizer 颜色配置
-Comment[zh_TW]=KOrganizer 顏色設定
+
Keywords=korganizer;colors;
-Keywords[be]=K Арганізатар;колеры;korganizer;colors;
-Keywords[bg]=организатор; цветове; настройки; korganizer; colors;
-Keywords[br]=korganizer;livioù;
-Keywords[bs]=korganizer;colors;boje;boja;
-Keywords[cs]=korganizer;barvy;
-Keywords[cy]=korganizer;ktrefnydd;lliwiau;
-Keywords[da]=korganizer;farver;
-Keywords[de]=KOrganizer;Farben;
-Keywords[el]=korganizer;χρώματα;
-Keywords[en_GB]=korganizer;colours;
-Keywords[eo]=korganizilo; koloroj;
-Keywords[es]=korganizer;colores;
-Keywords[et]=korganizer;värvid;
-Keywords[eu]=korganizer;koloreak;
-Keywords[fa]=korganizer،رنگها;
-Keywords[fi]=korganizer;värit;
-Keywords[fr]=KOrganizer;couleurs;
-Keywords[fy]=korganizer;colors;kleuren;
-Keywords[ga]=korganizer;dathanna;
-Keywords[gl]=korganizer;cores;
-Keywords[he]=korganizer;colors; ארגונית; צבעים;
-Keywords[hi]=के-आर्गेनाइज़र;रंग;
-Keywords[hu]=korganizer;színek;
-Keywords[is]=korganizer;litir;
-Keywords[it]=korganizer;colori;
-Keywords[ja]=korganizer;色;
-Keywords[km]=korganizer;ពណ៌;
-Keywords[lt]=korganizer;colors; spalvos;
-Keywords[mk]=korganizer;colors;корганизатор;бои;
-Keywords[ms]=korganizer;warna;
-Keywords[nb]=korganizer;farger;
-Keywords[nds]=KOrganizer;Klören;
-Keywords[ne]=केडीई आयोजक; रङ;
-Keywords[nl]=korganizer;colors;kleuren;
-Keywords[nn]=korganizer;fargar;
-Keywords[pl]=korganizer;kolory;kolor;
-Keywords[pt]=korganizer;cores;
-Keywords[pt_BR]=korganizer;cores;
-Keywords[ro]=korganizer;culori;
-Keywords[ru]=korganizer;colors;органайзер;цвета;
-Keywords[sk]=korganizer;farby;
-Keywords[sl]=korganizer;barve;
-Keywords[sr]=korganizer;colors;планер;боје;
-Keywords[sr@Latn]=korganizer;colors;planer;boje;
-Keywords[sv]=korganizer;färger;
-Keywords[ta]=கேஅமைப்பாளர்; வண்ணங்கள்;
-Keywords[tg]=korganizer;colors;органайзер;рангҳо;
-Keywords[tr]=korganizer;renkler;
-Keywords[uk]=korganizer;кольори;
-Keywords[uz]=korganizer;органайзер;ранглар;
-Keywords[zh_CN]=korganizer;colors;颜色;
diff --git a/korganizer/korganizer_configdesignerfields.desktop b/korganizer/korganizer_configdesignerfields.desktop
index 274c809c..bbdbf04d 100644
--- a/korganizer/korganizer_configdesignerfields.desktop
+++ b/korganizer/korganizer_configdesignerfields.desktop
@@ -12,147 +12,7 @@ X-TDE-ParentComponents=korganizer,kontact_korganizerplugin
X-TDE-CfgDlgHierarchy=KOrganizer
Name=Custom Pages
-Name[af]=Pasmaak Blaaie
-Name[ar]=الصفحات المعتادة
-Name[bg]=Потребителски полета
-Name[br]=Pajennoù dre ziouer
-Name[bs]=Vlastite stranice
-Name[ca]=Pàgines a mida
-Name[cs]=Vlastní stránky
-Name[da]=Brugervalgte sider
-Name[de]=Benutzerdefinierte Seiten
-Name[el]=Προσαρμοσμένες σελίδες
-Name[eo]=Propraj Paĝoj
-Name[es]=Páginas personalizadas
-Name[et]=Omaloodud leheküljed
-Name[eu]=Orri pertsonalizatuak
-Name[fa]=صفحات سفارشی
-Name[fi]=Omat sivut
-Name[fr]=Pages personnalisées
-Name[fy]=Oanpaste siden
-Name[ga]=Leathanaigh Shaincheaptha
-Name[gl]=Páxinas Personalizadas
-Name[he]=דפים מותאמים אישית
-Name[hu]=Egyéni lapok
-Name[is]=Sérsniðnar síður
-Name[it]=Pagine personalizzate
-Name[ja]=カスタムページ
-Name[kk]=Қосымша парақтар
-Name[km]=ទំព័រ​ផ្ទាល់​ខ្លួន
-Name[lt]=Pasirinkti puslapiai
-Name[mk]=Сопствени страници
-Name[ms]=Halaman Kebiasaan
-Name[nb]=Tilpassede sider
-Name[nds]=Egen Sieden
-Name[ne]=अनुकूल पृष्ठ
-Name[nl]=Aangepaste pagina's
-Name[nn]=Tilpassa sider
-Name[pl]=Własne strony
-Name[pt]=Páginas Personalizadas
-Name[pt_BR]=Páginas personalizadas
-Name[ru]=Дополнительные поля
-Name[se]=Iežat siiddut
-Name[sk]=Vlastné stránky
-Name[sl]=Prilagojene strani
-Name[sr]=Посебне странице
-Name[sr@Latn]=Posebne stranice
-Name[sv]=Egna sidor
-Name[ta]=தனிபயன் பக்கங்கள்
-Name[tg]=Варақаҳои замимавии истифодашаванда
-Name[tr]=Özel Sayfa
-Name[uk]=Нетипові сторінки
-Name[zh_CN]=定制页
+
Comment=Configure the Custom Pages
-Comment[af]=Stel die pasmaak blaaie op
-Comment[ar]=إعداد الصفحات المعتادة
-Comment[bg]=Настройки на потребителските полета
-Comment[br]=Kefluniañ ar pajennoù diouzhoc'h
-Comment[bs]=Podesite vlastite stranice
-Comment[ca]=Configura les pàgines a mida
-Comment[cs]=Nastavení vlastních stránek
-Comment[da]=Indstil de selvvalgte sider
-Comment[de]=Einstellungen für benutzerdefinierte Seiten
-Comment[el]=Ρύθμιση των προσαρμοσμένων σελίδων
-Comment[eo]=Agordi la proprajn paĝojn
-Comment[es]=Configura las páginas personalizadas
-Comment[et]=Omaloodud lehekülgede seadistamine
-Comment[eu]=Konfiguratu orri pertsonalizatuak
-Comment[fa]=پیکربندی صفحات سفارشی
-Comment[fi]=Muokkaa omia sivuja
-Comment[fr]=Configurer les pages personnalisées
-Comment[fy]=Hjir kinne jo de oanpaste siden ynstelle
-Comment[ga]=Cumraigh na Leathanaigh Shaincheaptha
-Comment[gl]=Configurar as Páxinas Personalizadas
-Comment[he]=הגדר את הדפים המותאמים אישית
-Comment[hu]=Az egyéni lapok beállítása
-Comment[is]=Stilla sérsniðnu síðurnar
-Comment[it]=Configura le pagine personalizzate
-Comment[ja]=カスタムページの設定
-Comment[kk]=Қосымша парақтарды баптау
-Comment[km]=កំណត់​រចនាសម្ព័ន្ធ​ទំព័រ​ផ្ទាល់​ខ្លួន
-Comment[lt]=Konfigūruoti darbastalių skaičių ir pavadinimus
-Comment[mk]=Конфигурирајте ги сопствените страници
-Comment[ms]=Konfigurkan Halaman Langganan
-Comment[nb]=Stille inn de tilpassede sidene
-Comment[nds]=Egen Sieden instellen
-Comment[ne]=अनुकूल पृष्ठ कन्फिगर गर्नुहोस्
-Comment[nl]=Hier kunt u de aangepaste pagina's instellen
-Comment[nn]=Set opp dei tilpassa sidene
-Comment[pl]=Konfiguracja własnych stron
-Comment[pt]=Configurar as Páginas Personalizadas
-Comment[pt_BR]=Configurar Páginas personalizadas
-Comment[ru]=Настройка пользовательских вкладок
-Comment[se]=Heivet iežat siidduid
-Comment[sk]=Nastavenie vlastných stránok
-Comment[sl]=Nastavi prilagojene strani
-Comment[sr]=Подешавање посебних страница
-Comment[sr@Latn]=Podešavanje posebnih stranica
-Comment[sv]=Anpassa egna sidor
-Comment[ta]=தனிபயன் பக்கங்களை கட்டமை
-Comment[tg]=Танзимоти варақаҳои замимавии истифодашаванда
-Comment[tr]=Özel Sayfaları Yapılandır
-Comment[uk]=Налаштування нетипових сторінок
-Comment[zh_CN]=配置定制页
-Comment[zh_TW]=設定 Custom Pages
+
Keywords=korganizer; configure; settings; custom fields;
-Keywords[bg]=организатор; настройки; korganizer; configure; settings; custom fields;
-Keywords[ca]=korganizer; configura; opcions; camps a mida;
-Keywords[cs]=korganizer;nastavení;vlastní pole;
-Keywords[da]=korganizer; indstil; opsætning; brugervalgte felter;
-Keywords[de]=KOrganizer;konfigurieren;Einstellungen;benutzerdefinierte Felder;
-Keywords[el]=korganizer; ρύθμιση; ρυθμίσεις; προσαρμοσμένα πεδία;
-Keywords[es]=korganizer; configurar; opciones; campos personalizados;
-Keywords[et]=korganizer; seadistamine; seadistused; omaloodud väljad;
-Keywords[eu]=korganizer; konfiguratu; ezarpenak; eremu pertsonalizatuak;
-Keywords[fa]=korganizer، پیکربندی، تنظیمات، حوزه‌های سفارشی;
-Keywords[fi]=kaddressbook; aseta; asetukset;omat kentät;
-Keywords[fr]=KOrganizer; configuration; configurer; champs personnalisés;
-Keywords[fy]=korganizer; configuratie; instellingen; ynstellings; oanpaste fjilden; aangepaste velden;
-Keywords[ga]=korganizer; cumraigh; socruithe; réimsí saincheaptha;
-Keywords[gl]=korganizer; configurar; opcións; campos personalizados;
-Keywords[he]=korganizer; configure; settings; custom fields; הגדרות; תצורה; שדות; מותאמים אישית;
-Keywords[hu]=korganizer;beállítás;beállítások;egyéni mezők;
-Keywords[is]=korganizer; stillingar; stilla; sérsniðnir reitir;
-Keywords[it]=korganizer; configura; impostazioni; campi personalizzati;
-Keywords[ja]=korganizer、設定、設定;カスタムフィールド;
-Keywords[km]=korganizer;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;វាល​ផ្ទាល់​ខ្លួន;
-Keywords[lt]=korganizer; configure; settings; custom fields; konfigūruoti; nustatymai; pasirinkti laukai;
-Keywords[mk]=korganizer; configure; settings; custom fields; корганизатор; конфигурација; конфигурирање; поставувања; сопствени полиња;
-Keywords[ms]=korganizer; konfigur; seting; medan kebiasaan;
-Keywords[nb]=kaddressbook; sette opp; innstillinger; tilpassede felter;
-Keywords[nds]=KOrganizer;Instellen;egen Feller;
-Keywords[ne]=केडीई आयोजक; कन्फिगर; सेटिङ; अनुकूल फिल्ड;
-Keywords[nl]=korganizer; configuratie; instellingen; aangepaste velden;
-Keywords[nn]=korganizer; oppsett; innstillingar; tilpassa felt;
-Keywords[pl]=korganizer;konfiguracja;ustawienia;własne pola;
-Keywords[pt]=korganizer; configurar; configuração; campos personalizados;
-Keywords[pt_BR]=korganizer;configurar;configurações; campos personalizados;
-Keywords[ru]=korganizer; configure; settings; custom fields; настройка; органайзер;
-Keywords[sl]=korganizer; nastavi; nastavitve; prilagojena polja;
-Keywords[sr]=korganizer; configure; settings; custom fields; подешавање; посебна поља;
-Keywords[sr@Latn]=korganizer; configure; settings; custom fields; podešavanje; posebna polja;
-Keywords[sv]=korganizer;anpassa;inställningar;egna fält;
-Keywords[ta]=கேஅமைப்பாளர்; வடிவமைப்பு; அமைப்புகள்; தனிபயன் புலங்கள்;
-Keywords[tr]=korganizer; yapılandır; yapılandırma; özel alanlar;
-Keywords[uk]=korganizer; configure; settings; custom fields; налаштування; параметри; нетипові поля;
-Keywords[zh_CN]=korganizer; configure; settings; custom fields; 配置; 设置; 定制项;
diff --git a/korganizer/korganizer_configfonts.desktop b/korganizer/korganizer_configfonts.desktop
index 3c61556d..eaad9f5e 100644
--- a/korganizer/korganizer_configfonts.desktop
+++ b/korganizer/korganizer_configfonts.desktop
@@ -12,174 +12,7 @@ X-TDE-ParentComponents=korganizer,kontact_korganizerplugin
X-TDE-CfgDlgHierarchy=KOrganizer
Name=Fonts
-Name[af]=Skrif tipes
-Name[ar]=المحارف
-Name[az]=Yazı növləri
-Name[be]=Шрыфты
-Name[bg]=Шрифтове
-Name[br]=Fontoù
-Name[bs]=Fontovi
-Name[ca]=Tipus de lletres
-Name[cs]=Písma
-Name[cy]=Wynebfathau
-Name[da]=Skrifttyper
-Name[de]=Schriften
-Name[el]=Γραμματοσειρές
-Name[eo]=Tiparoj
-Name[es]=Tipografías
-Name[et]=Fondid
-Name[eu]=Letra-tipoak
-Name[fa]=قلمها
-Name[fi]=Kirjasimet
-Name[fr]=Polices
-Name[fy]=Lettertypen
-Name[ga]=Clónna
-Name[gl]=Fontes
-Name[he]=גופנים
-Name[hi]=फ़ॉन्ट्स
-Name[hr]=Pisma
-Name[hu]=Betűtípusok
-Name[is]=Letur
-Name[it]=Tipi di carattere
-Name[ja]=フォント
-Name[kk]=Қаріптері
-Name[km]=ពុម្ពអក្សរ
-Name[lt]=Šriftai
-Name[lv]=Fonti
-Name[mk]=Фонтови
-Name[ms]=Fon
-Name[nb]=Skrifter
-Name[nds]=Schriftoorden
-Name[ne]=फन्ट
-Name[nl]=Lettertypen
-Name[nn]=Skrifttypar
-Name[pl]=Czcionki
-Name[pt]=Tipos de Letra
-Name[pt_BR]=Fontes
-Name[ro]=Fonturi
-Name[ru]=Шрифты
-Name[rw]=Imyandikire
-Name[se]=Fonttat
-Name[sk]=Písma
-Name[sl]=Pisave
-Name[sr]=Фонтови
-Name[sr@Latn]=Fontovi
-Name[sv]=Teckensnitt
-Name[ta]=எழுத்துருக்கள்
-Name[tg]=Ҳарфҳо
-Name[th]=รูปแบบตัวอักษร
-Name[tr]=Yazı tipleri
-Name[uk]=Шрифти
-Name[uz]=Шрифтлар
-Name[ven]=Fontu
-Name[vi]=Phông
-Name[xh]=Ubungakanani bamagama
-Name[zh_CN]=字体
-Name[zh_TW]=字型
+
Comment=KOrganizer Fonts Configuration
-Comment[af]=KOrganizer skrif tipe opstelling
-Comment[ar]=إعداد المحارف لِــ KOrganizer
-Comment[be]=Канфігурацыя шрыфтоў "K Арганізатара"
-Comment[bg]=Настройки на шрифтовете за KOrganizer
-Comment[bs]=KOrganizer podešavanje fontova
-Comment[ca]=Configuració de lletres al KOrganizer
-Comment[cs]=Nastavení písem KOrganizeru
-Comment[cy]=ffurfweddiad Wynebfathau KTrefnydd
-Comment[da]=KOrganizer skrifttypeindstilling
-Comment[de]=Schriftenfestlegung für KOrganizer
-Comment[el]=Ρύθμιση γραμματοσειρών του KOrganizer
-Comment[eo]=KOrganizilo Tipar-agordo
-Comment[es]=Configuración de las tipografías de KOrganizer
-Comment[et]=KOrganizeri fontide seadistamine
-Comment[eu]=KOrganizer-en letra-tipoen konfigurazioa
-Comment[fa]=پیکربندی قلمهای KOrganizer
-Comment[fi]=Korganizer kirjasinten asetukset
-Comment[fr]=Configuration des polices de KOrganizer
-Comment[fy]=KOrganizer lettertypen ynstelle
-Comment[gl]=Configuración de Fontes de KOrganizer
-Comment[he]=הגדרות גופנים של הארגונים
-Comment[hi]=के-आर्गेनाइज़र फ़ॉन्ट्स कॉन्फ़िगरेशन
-Comment[hu]=KOrganizer betűtípus-beállítások
-Comment[is]=KOrganizer leturstillingar
-Comment[it]=Configurazione font di KOrganizer
-Comment[ja]=KOrganizer フォント設定
-Comment[kk]=KOrganizer-дің қаріптер параметрлері
-Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​ពុម្ពអក្សរ KOrganizer
-Comment[lt]=KOrganizer šriftų konfigūravimas
-Comment[mk]=Конфигурација на фонтовите
-Comment[ms]=Konfigurasi Fon KOrganizer
-Comment[nb]=KOrganizer skriftoppsett
-Comment[nds]=Schriftoorden för KOrganizer instellen
-Comment[ne]=केडीई आयोजक फन्ट कन्फिगरेसन
-Comment[nl]=KOrganizer lettertypen instellen
-Comment[nn]=KOrganizer, skriftinnstillingar
-Comment[pl]=Konfiguracja czcionek KOrganizera
-Comment[pt]=Configuração dos Tipos de Letra do KOrganizer
-Comment[pt_BR]=Configuração de Fontes do KOrganizer
-Comment[ro]=Configurare fonturi KOrganizer
-Comment[ru]=Настройка шрифтов органайзера TDE
-Comment[se]=KOrganizer, fontaheivehusat
-Comment[sk]=Nastavenie písiem pre KOrganizer
-Comment[sl]=Nastavitev pisav v KOrganizerju
-Comment[sr]=Подешавање фонтова у KOrganizer-у
-Comment[sr@Latn]=Podešavanje fontova u KOrganizer-u
-Comment[sv]=Inställning av Korganizers teckensnitt
-Comment[ta]=கேஅமைப்பாளர் எழுத்துருக்கள் கட்டமைப்பு
-Comment[tg]=Танзимотҳои ҳуруфҳои органайзери TDE
-Comment[tr]=KOrganizer Yazıtipi Yapılandırması
-Comment[uk]=Налаштування шрифтів у KOrganizer
-Comment[zh_CN]=KOrganizer 字体配置
-Comment[zh_TW]=KOrganizer 字型設定
+
Keywords=korganizer;fonts;
-Keywords[af]=korganizer; fonts;
-Keywords[be]=K Арганізатар;шрыфты;korganizer;fonts;
-Keywords[bg]=организатор; шрифтове; настройки; korganizer; fonts;
-Keywords[br]=korganizer;nodrezhoù;
-Keywords[bs]=korganizer;fonts;fontovi;
-Keywords[ca]=korganizer;lletres;
-Keywords[cs]=korganizer;písma;
-Keywords[cy]=korganizer;ktrefnydd;wynebfathau;
-Keywords[da]=korganizer;skrifttyper;
-Keywords[de]=KOrganizer;Schriften;
-Keywords[el]=korganizer;γραμματοσειρές;
-Keywords[eo]=korganizilo; tiparoj;
-Keywords[es]=korganizer;tipografías;
-Keywords[et]=korganizer;fondid;
-Keywords[eu]=korganizer;letra-tipoak;
-Keywords[fa]=korganizer،قلمها;
-Keywords[fi]=korganizer;kirjasimet;
-Keywords[fr]=KOrganizer;polices;
-Keywords[fy]=korganizer;fonts;lettertypen;
-Keywords[ga]=korganizer;clónna;clófhoirne;
-Keywords[gl]=korganizer;fontes;
-Keywords[he]=korganizer;fonts;ארגונית;גופנים;גופן;פונט;פונטים;
-Keywords[hi]=के-आर्गेनाइज़र;फ़ॉन्ट्स;
-Keywords[hu]=korganizer;betűtípusok;
-Keywords[is]=korganizer;letur;
-Keywords[it]=korganizer;font;
-Keywords[ja]=korganizer;フォント;
-Keywords[km]=korganizer;ពុម្ពអក្សរ;
-Keywords[lt]=korganizer;fonts; šriftai;
-Keywords[mk]=korganizer;fonts;корганизатор;фонтови;
-Keywords[ms]=korganizer;fon;
-Keywords[nb]=korganizer;skrifter; skrifttyper;
-Keywords[nds]=KOrganizer;Schriftoorden;
-Keywords[ne]=केडीई आयोजक; फन्ट;
-Keywords[nl]=korganizer;fonts;lettertypen;
-Keywords[nn]=korganizer;skrift;
-Keywords[pl]=korganizer;czcionki;
-Keywords[pt]=korganizer;tipos de letra;
-Keywords[pt_BR]=korganizer;fontes;
-Keywords[ro]=korganizer;fonturi;
-Keywords[ru]=korganizer;fonts;органайзер;шрифты;
-Keywords[sk]=korganizer;písma;
-Keywords[sl]=korganizer;pisave;
-Keywords[sr]=korganizer;fonts;планер;фонтови;фонт;текст;
-Keywords[sr@Latn]=korganizer;fonts;planer;fontovi;font;tekst;
-Keywords[sv]=korganizer;teckensnitt;
-Keywords[ta]=கேஅமைப்பாளர்;எழுத்துரு;
-Keywords[tg]=korganizer;fonts;органайзер;ҳуруфҳо;
-Keywords[tr]=korganizer;yazıtipleri;
-Keywords[uk]=korganizer;шрифти;
-Keywords[uz]=korganizer;органайзер;шрифтлар;
-Keywords[zh_CN]=korganizer;fonts;字体;
diff --git a/korganizer/korganizer_configfreebusy.desktop b/korganizer/korganizer_configfreebusy.desktop
index 9e55a567..12ef8c11 100644
--- a/korganizer/korganizer_configfreebusy.desktop
+++ b/korganizer/korganizer_configfreebusy.desktop
@@ -12,146 +12,7 @@ X-TDE-ParentComponents=korganizer,kontact_korganizerplugin
X-TDE-CfgDlgHierarchy=KOrganizer
Name=Free/Busy
-Name[af]=Beskikbaar/Besig
-Name[ar]=متوفّر/مشغول
-Name[bg]=Свободен/зает
-Name[bs]=Slobodan/Zauzet
-Name[ca]=Lliure/ocupat
-Name[cs]=Aktivita
-Name[cy]=Rhydd/Prysur
-Name[da]=Fri/Optaget
-Name[de]=Frei/Beschäftigt
-Name[eo]=Libera/Okupita
-Name[es]=Libre/Ocupado
-Name[et]=Vaba/hõivatud
-Name[eu]=Libre/Lanpetuta
-Name[fa]=آزاد/اشغال
-Name[fi]=Vapaa/Varattu
-Name[fr]=Disponibilité
-Name[fy]=Frij/beset
-Name[gl]=Ceibe/Ocupado
-Name[hi]=फ्री/बिज़ी
-Name[hu]=Foglaltság
-Name[is]=Tímaráðstöfun
-Name[it]=Libero/Occupato
-Name[ja]=動静情報
-Name[kk]=Бос/Істе
-Name[km]=ទំនេរ/រវល់
-Name[lt]=Užimtumas
-Name[mk]=Слободен/зафатен
-Name[ms]=Lapang/Sibuk
-Name[nb]=Ledig/Opptatt
-Name[nds]=Free/Bunnen
-Name[ne]=स्वतन्त्र/व्यस्त
-Name[nl]=Vrij/bezet
-Name[nn]=Ledig/opptatt
-Name[pl]=Wolny/zajęty
-Name[pt]=Livre/Ocupado
-Name[pt_BR]=Livre/Ocupado
-Name[ru]=Занятое время
-Name[sk]=Voľný čas
-Name[sl]=Prost/zaseden
-Name[sr]=Слободан/заузет
-Name[sr@Latn]=Slobodan/zauzet
-Name[sv]=Ledig/upptagen
-Name[ta]=சுதந்திரமான/வேலையில் இருக்கும்
-Name[tg]=Озод/машғул аст
-Name[tr]=Boş/Meşgul
-Name[uk]=Вільний/зайнятий час
-Name[uz]=Бўш/Банд
-Name[zh_CN]=忙/闲
-Name[zh_TW]=行程資訊
+
Comment=KOrganizer Free/Busy Configuration
-Comment[af]=KOrganizer Beskikbaar/Besig opstelling
-Comment[bg]=Настройки на свободно/заето за KOrganizer
-Comment[bs]=KOrganizer podešavanje za Slobodan/Zauzet
-Comment[ca]=Configuració de Lliure/ocupat per a KOrganizer
-Comment[cs]=Nastavení aktivity pro KOrganizer
-Comment[cy]=Ffurfweddiad Rhydd/Prysur KTrefnydd
-Comment[da]=KOrganizer Fri/Optaget-indstilling
-Comment[de]=Frei/Beschäftigt-Festlegung für KOrganizer
-Comment[el]=Ρυθμίσεις KOrganizer Free/Busy
-Comment[eo]=KOrganizilo Agordo pri libero/okupito
-Comment[es]=Configuración de libre/ocupado de KOrganizer
-Comment[et]=KOrganizeri vaba/hõivatuse seadistused
-Comment[eu]=KOrganizer-en Libre/Lanpetuta konfigurazioa
-Comment[fa]=پیکربندی آزاد/اشغال KOrganizer
-Comment[fi]=KOrganizer vapaa/varattu asetukset
-Comment[fr]=Configuration de la disponibilité pour KOrganizer
-Comment[fy]=KOrganizer frij/beset ynstelle
-Comment[gl]=Configuración de Dispoñibilidade de Korganizer
-Comment[hi]=के-आर्गेनाइज़र फ्री/बिज़ी कॉन्फ़िगरेशन
-Comment[hu]=KOrganizer foglaltsági beállítások
-Comment[is]=KOrganizer stillingar fyrir tímaráðstöfun
-Comment[it]=Configurazione Libero/Occupato di KOrganizer
-Comment[ja]=KOrganizer 動静情報の設定
-Comment[kk]=KOrganizer--дің Бос/Істе мәлімет параметрлері
-Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​ទំនេរ/រវល់ របស់ KOrganizer
-Comment[lt]=KOrganizer užimtumo konfigūravimas
-Comment[mk]=Конфигурација на слободни/зафатени термини
-Comment[ms]=Konfigurasi Lapang/Sibuk KOrganizer
-Comment[nb]=KOrganizer oppsett for ledig/opptatt tid
-Comment[nds]=Free/Bunnen-Instellen för KOrganizer
-Comment[ne]=केडीई आयोजक स्वतन्त्र/व्यस्त कन्फिगरेसन
-Comment[nl]=KOrganizer vrij/bezet instellen
-Comment[nn]=KOrganizer, ledig/opptatt-innstillingar
-Comment[pl]=Konfiguracja czasu wolnego/zajętego dla KOrganizera
-Comment[pt]=Configuração de Livre/Ocupado do KOrganizer
-Comment[pt_BR]=Configuração Livre/Ocupado do KOrganizer
-Comment[ru]=Настройка свободного и занятого времени органайзера TDE
-Comment[sk]=Nastavenie voľného času pre KOrganizer
-Comment[sl]=Nastavitev prost/zaseden za KOrganizer
-Comment[sr]=Подешавање слободног/заузетог у KOrganizer-у
-Comment[sr@Latn]=Podešavanje slobodnog/zauzetog u KOrganizer-u
-Comment[sv]=Inställning av ledig/upptagen i Korganizer
-Comment[ta]=கேஅமைப்பாளர்,சுதந்திரமான/செயலிலுள்ள கட்டமைப்பு
-Comment[tg]=Танзимоти вақти озоди органайзери TDE
-Comment[tr]=KOrganizer Boş/Meşgul Yapılandırması
-Comment[uk]=Налаштування вільного/зайнятого часу в KOrganizer
-Comment[zh_CN]=KOrganizer 空闲/忙碌配置
-Comment[zh_TW]=KOrganizer 行程資訊設定
+
Keywords=korganizer;freebusy;scheduling;
-Keywords[af]=korganizer; freebusy; scheduling;
-Keywords[bg]=организатор; свободно; заето; настройки; korganizer; freebusy; scheduling;
-Keywords[bs]=korganizer;freebusy;scheduling;raspored;
-Keywords[ca]=korganizer;lliure ocupat;planificació;
-Keywords[cs]=korganizer;volný;zaneprázdněn;plánování;
-Keywords[cy]=korganizer;ktrefnydd;rhydd;prysur;trefnlennu;
-Keywords[da]=korganizer;fri/optaget;skemalægning;
-Keywords[de]=KOrganizer;Frei/Beschäftigt;Ablaufplanung;
-Keywords[el]=korganizer;freebusy;προγραμματισμός;
-Keywords[es]=korganizer;libreocupado;planificación;
-Keywords[et]=korganizer;vaba;hõivatud;ajakava;
-Keywords[eu]=korganizer;libre; lanpetuta;antolaketa;
-Keywords[fa]=korganizer،آزاد اشغال، زمان‌بندی;
-Keywords[fi]=korganizer;vapaa;varattu;ajastus;
-Keywords[fr]=KOrganizer;disponibilité; planification;
-Keywords[fy]=korganizer;freebusy;scheduling;plannen;frij;beset;roaster;
-Keywords[gl]=korganizer;dispoñibilidade;axenda;
-Keywords[hi]=के-आर्गेनाइज़र;फ्री-बिज़ी;समय-सारणी;
-Keywords[hu]=korganizer;foglaltság;szervezés;
-Keywords[is]=korganizer;tímaráðstöfun;áætlun;
-Keywords[it]=korganizer;libero/occupato;pianificazione;
-Keywords[ja]=korganizer;動静;スケジューラ;
-Keywords[km]=korganizer;ទំនេរ;រវល់;កាលវិភាគ;
-Keywords[mk]=korganizer;freebusy;scheduling;корганизатор;слободно;зафатено;закажување;
-Keywords[ms]=korganizer;lapang sibuk;penjadualan;
-Keywords[nb]=korganizer;ledigopptatt;planlegger;
-Keywords[nds]=KOrganizer;Free/Bunnen;Free;Bunnen;Planen;Plaan;
-Keywords[ne]=केडीई आयोजक; स्वतन्त्र व्यस्त; कार्यतालिका;
-Keywords[nl]=korganizer;freebusy;scheduling;plannen;vrij;bezet;rooster;
-Keywords[nn]=korganizer;ledigopptatt;planlegging;
-Keywords[pl]=korganizer;wolny/zajęty;planowanie;
-Keywords[pt]=korganizer;livre;ocupado;escalonamento;
-Keywords[pt_BR]=korganizer;livreocupado;agendamento;
-Keywords[ru]=korganizer;freebusy;scheduling;органайзер;занятое время;календарь;
-Keywords[sk]=korganizer;voľný čas;plánovanie;
-Keywords[sl]=korganizer;freebusy;razporejanje;
-Keywords[sr]=korganizer;freebusy;scheduling;слободан;заузет;планирање;
-Keywords[sr@Latn]=korganizer;freebusy;scheduling;slobodan;zauzet;planiranje;
-Keywords[sv]=korganizer;ledig/upptagen;schemaläggning;
-Keywords[ta]=கேஅமைப்பாளர்;சுதந்திரமான/திட்டம் அமைத்தல்;
-Keywords[tg]=korganizer;freebusy;scheduling;органайзер; вақти холӣ;ҷадвал;
-Keywords[tr]=korganizer;boş/meşgul;zamanlama;
-Keywords[uk]=korganizer;вільно;зайнято;час;розклад;
-Keywords[zh_CN]=korganizer;freebusy;scheduling;空闲;忙碌;日程安排;
diff --git a/korganizer/korganizer_configgroupautomation.desktop b/korganizer/korganizer_configgroupautomation.desktop
index 95438a5e..4ccf4b82 100644
--- a/korganizer/korganizer_configgroupautomation.desktop
+++ b/korganizer/korganizer_configgroupautomation.desktop
@@ -12,150 +12,7 @@ X-TDE-ParentComponents=korganizer,kontact_korganizerplugin
X-TDE-CfgDlgHierarchy=KOrganizer
Name=Group Automation
-Name[af]=Groep outomatisasie
-Name[bg]=Организация
-Name[bs]=Automatizacija grupe
-Name[ca]=Automatització de grups
-Name[cs]=Řízení skupiny
-Name[cy]=Ymysgogi Grŵp
-Name[da]=Gruppeautomation
-Name[de]=Gruppen-Automation
-Name[el]=Αυτοματισμός ομάδας
-Name[eo]=Grup-aŭtomatigo
-Name[es]=Automatización del grupo
-Name[et]=Grupitöö
-Name[eu]=Talde automatizazioa
-Name[fa]=خودکارسازی گروه
-Name[fi]=Ryhmän automatisointi
-Name[fr]=Automatisation des groupes
-Name[fy]=Groepautomatisearring
-Name[gl]=Automatización de Grupo
-Name[hi]=समूह स्वचालन
-Name[hu]=Csoportmunka
-Name[is]=Hópsjálfvirkni
-Name[it]=Automazione gruppi
-Name[ja]=グループ自動化
-Name[kk]=Топтың біріккен жұмысы
-Name[km]=ស្វ័យប្រតិកម្ម​ក្រុម
-Name[lt]=Grupių automatizavimas
-Name[mk]=Автоматизација на групи
-Name[ms]=Automasi Kumpulan
-Name[nb]=Gruppeautomat
-Name[nds]=Koppel-Akschonen
-Name[ne]=समूह स्वचालिकरण
-Name[nl]=Groepautomatisering
-Name[nn]=Gruppeautomatisering
-Name[pl]=Automatyzacja pracy grupowej
-Name[pt]=Automação do Grupo
-Name[pt_BR]=Automação de Grupo
-Name[ru]=Совместная работа
-Name[se]=Joavkoautomatiseren
-Name[sk]=Skupinová automatizácia
-Name[sl]=Avtomatizacija skupin
-Name[sr]=Аутоматизација група
-Name[sr@Latn]=Automatizacija grupa
-Name[sv]=Gruppautomation
-Name[ta]= குழு தானியங்கி
-Name[tg]=Кори гурӯҳӣ
-Name[tr]=Grup Otomasyonu
-Name[uk]=Автоматизація груп
-Name[zh_CN]=组自动化
-Name[zh_TW]=群組自動化
+
Comment=KOrganizer Group Automation Configuration
-Comment[af]=KOrganizer groep outomatisasie opstelling
-Comment[bg]=Настройки на организация за KOrganizer
-Comment[bs]=KOrganizer podešavanje automatizacije grupe
-Comment[ca]=Configuració de l'automatització de grups a KOrganizer
-Comment[cs]=Nastavení skupinového řízení KOrganizeru
-Comment[cy]=Ffurfweddiad Ymysgogi Grŵp KTrefnydd
-Comment[da]=KOrganizer gruppeautomation indstilling
-Comment[de]=Einrichtung von Gruppen-Automatismen für KOrganizer
-Comment[el]=Ρύθμιση αυτοματισμού ομάδας του KOrganizer
-Comment[eo]=KOrganizilo Grup-aŭtomatiga Agordo
-Comment[es]=Configuración del automatización del grupo de KOrganizer
-Comment[et]=KOrganizeri grupitöö seadistamine
-Comment[eu]=KOrganizer-en talde automatizazioaren konfigurazioa
-Comment[fa]=پیکربندی خودکارسازی گروه KOrganizer
-Comment[fi]=Korganizer ryhmän automatisoinnin asetukset
-Comment[fr]=Configuration de l'automatisation des groupes de KOrganizer
-Comment[fy]=KOrganizer groepautomatisearring ynstelle
-Comment[gl]=Configuración da Automatización de Grupo de KOrganizer
-Comment[hi]=के-आर्गेनाइज़र फ़ॉन्ट्स कॉन्फ़िगरेशन
-Comment[hu]=KOrganizer csoportmunka-beállítások
-Comment[is]=Stillingar KOrganizer hópsjálfvirkni
-Comment[it]=Configurazione automazione gruppi di KOrganizer
-Comment[ja]=KOrganizer グループ自動化設定
-Comment[kk]=KOrganizer топтық жұмысының параметрлері
-Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​ស្វ័យប្រតិកម្ម​ក្រុម​របស់ KOrganizer
-Comment[lt]=KOrganizer grupių automatizavimo konfigūravimas
-Comment[mk]=Конфигурација на автоматизација на групи
-Comment[ms]=Konfigurasi Automasi Kumpulan KOrganizer
-Comment[nb]=KOrganizer oppsett for gruppeautomat
-Comment[nds]=Automaatsche Koppel-Akschonen för KOrganizer instellen
-Comment[ne]=केडीई आयोजक समूह स्वचालिकरण कन्फिगरेसन
-Comment[nl]=KOrganizer groepautomatisering instellen
-Comment[nn]=KOrganizer, innstillingar for gruppeautomatisering
-Comment[pl]=Konfiguracja automatyzacji pracy grupowej dla KOrganizera
-Comment[pt]=Configuração da Automação do Grupo do KOrganizer
-Comment[pt_BR]=Configuração de Automação de Grupo do KOrganizer
-Comment[ru]=Настройка совместной работы в органайзере TDE
-Comment[se]=KOrganizer, joavkoautomatiserema heivehusat
-Comment[sk]=Nastavenie skupinovej automatizácie pre KOrganizer
-Comment[sl]=Nastavitev avtomatizacije v KOrganizerju
-Comment[sr]=Подешавање аутоматизације група у KOrganizer-у
-Comment[sr@Latn]=Podešavanje automatizacije grupa u KOrganizer-u
-Comment[sv]=Inställning av Korganizers gruppautomation
-Comment[ta]=கேஅமைப்பாளர் குழு தானியங்கி கட்டமைப்பு
-Comment[tg]=Танзимоти кори гурӯҳӣ дар органайзер-TDE
-Comment[tr]=KOrganizer Grup Otomasyon Yapılandırması
-Comment[uk]=Налаштування автоматизації груп у KOrganizer
-Comment[zh_CN]=KOrganizer 组自动化配置
-Comment[zh_TW]=KOrganizer 群組自動化設定
+
Keywords=korganizer;group;automation;
-Keywords[af]=korganizer; group; automation;
-Keywords[bg]=организатор; организация; настройки; korganizer; group; automation;
-Keywords[bs]=korganizer;group;automation;automatizacija;grupa;grupe;
-Keywords[ca]=korganizer;grup;automatització;
-Keywords[cs]=korganizer;skupina;řízení;
-Keywords[cy]=korganizer;ktrefnydd;grŵp;ymysgogi;
-Keywords[da]=korganizer;gruppe;automation;
-Keywords[de]=KOrganizer;Gruppe;Automatisierung;
-Keywords[el]=korganizer;ομάδα;αυτοματοποίηση;
-Keywords[eo]=korganizilo;grupo;aŭtomatigo;
-Keywords[es]=korganizer;grupo;automatización;
-Keywords[et]=korganizer;grupid;grupitöö;
-Keywords[eu]=korganizer;taldea;automatizazioa;
-Keywords[fa]=korganizer،گروه، خودکارسازی;
-Keywords[fi]=korganizer;ryhmä;automaatio;
-Keywords[fr]=KOrganizer;groupes;automatisation;
-Keywords[fy]=korganizer;groep;automatisearring;
-Keywords[gl]=korganizer;grupo;automatización;
-Keywords[hi]=के-आर्गेनाइज़र;समूह;स्वचालन;
-Keywords[hu]=korganizer;csoport;csoportmunka;
-Keywords[is]=korganizer;hópar;sjálfvirkni;
-Keywords[it]=korganizer;gruppi;automazione;
-Keywords[ja]=korganizer;グループ;自動化;
-Keywords[km]=korganizer;ក្រុម;ស្វ័យប្រតិកម្ម;
-Keywords[lt]=korganizer;group;automation; grupės;automatizavimas;
-Keywords[mk]=korganizer;group;automation;корганизатор;група;групи;автоматизација;
-Keywords[ms]=korganizer;kumpulan;automasi;
-Keywords[nb]=korganizer;gruppe;automat;automatisering;
-Keywords[nds]=KOrganizer;Koppel;automaatsch;Akschoon;
-Keywords[ne]=केडीई आयोजक; समूह; स्वचालिकरण;
-Keywords[nl]=korganizer;groep;automatisering;
-Keywords[nn]=korganizer;gruppe;automatisering;
-Keywords[pl]=korganizer;grupy;praca grupowa;automatyzacja;
-Keywords[pt]=korganizer;grupo;automação;
-Keywords[pt_BR]=korganizer;grupo;automação;
-Keywords[ro]=korganizer;grup;automatizare;
-Keywords[ru]=korganizer;group;automation;совместная работа;органайзер;
-Keywords[sk]=korganizer;skupina;automatizácia;
-Keywords[sl]=korganizer;skupina;samodejnost;
-Keywords[sr]=korganizer;group;automation;група;аутоматизација;планер;
-Keywords[sr@Latn]=korganizer;group;automation;grupa;automatizacija;planer;
-Keywords[sv]=korganizer;grupp;automation;
-Keywords[ta]=கேஅமைப்பாளர்; குழு; தானியக்கம்;
-Keywords[tg]=korganizer;group;automation;кори гурӯҳӣ; органайзер;
-Keywords[tr]=korganizer;grup;otomasyon;
-Keywords[uk]=korganizer;група;автоматизація;
-Keywords[zh_CN]=korganizer;group;automation;组;自动化;
diff --git a/korganizer/korganizer_configgroupscheduling.desktop b/korganizer/korganizer_configgroupscheduling.desktop
index 3a04de2e..c405d0b3 100644
--- a/korganizer/korganizer_configgroupscheduling.desktop
+++ b/korganizer/korganizer_configgroupscheduling.desktop
@@ -12,148 +12,7 @@ X-TDE-ParentComponents=korganizer,kontact_korganizerplugin
X-TDE-CfgDlgHierarchy=KOrganizer
Name=Group Scheduling
-Name[af]=Groep Skedulering
-Name[ar]=جدولة المجموعة
-Name[bg]=Разписание
-Name[bs]=Raspoređivanje grupe
-Name[ca]=Planificació de grups
-Name[cs]=Skupinové plánování
-Name[cy]=Trefnlennu Grŵp
-Name[da]=Gruppeskemalægning
-Name[de]=Gruppenplanung
-Name[el]=Προγραμματισμός ομάδας
-Name[es]=Planificación de grupo
-Name[et]=Grupitöö ajakavad
-Name[eu]=Talde antolaketa
-Name[fa]=زمان‌بندی گروه
-Name[fi]=Ryhmän ajastus
-Name[fr]=Planification des tâches
-Name[fy]=Groepsplanning
-Name[gl]=Organización de Grupo
-Name[hi]=समूह समय-सारणी
-Name[hu]=Szervezés
-Name[is]=Hópáætlun
-Name[it]=Programmazione gruppi
-Name[ja]=グループスケジューリング
-Name[kk]=Топтың жұмысын жоспарлау
-Name[km]=រៀបចំ​កាលវិភាគ​ក្រុម
-Name[lt]=Grupių tvarkaraščių tvarkymas
-Name[mk]=Закажување групи
-Name[ms]=Penjadualan Kumpulan
-Name[nb]=Gruppeplanlegging
-Name[nds]=Koppelplanen
-Name[ne]=समूह कार्यतालिका
-Name[nl]=Groepsplanning
-Name[nn]=Gruppeplanlegging
-Name[pl]=Planowanie grupowe
-Name[pt]=Escalonamento do Grupo
-Name[pt_BR]=Agendamento de Grupo
-Name[ro]=Planificare grup
-Name[ru]=Календарь группы
-Name[se]=Joavkoplánen
-Name[sk]=Skupinové plánovanie
-Name[sl]=Razporejanje skupin
-Name[sr]=Распоређивање група
-Name[sr@Latn]=Raspoređivanje grupa
-Name[sv]=Gruppschemaläggning
-Name[ta]=குழு திட்ட வரையறை
-Name[tg]=Ҷадвали гурӯҳҳо
-Name[tr]=Group Zamanlama
-Name[uk]=Розклад груп
-Name[zh_CN]=组日程安排
-Name[zh_TW]=群組排程
+
Comment=KOrganizer Group Scheduling Configuration
-Comment[af]=KOrganizer groep skedulering opstelling
-Comment[ar]=إعداد جدولة مجموعة KOrganizer
-Comment[bg]=Настройки на разписание за KOrganizer
-Comment[bs]=KOrganizer podešavanje raspoređivanja grupe
-Comment[ca]=Configuració de la planificació de grups a KOrganizer
-Comment[cs]=Nastavení skupinového plánování KOrganizeru
-Comment[cy]=Ffurfweddiad Trefnlennu Grŵp KTrefnydd
-Comment[da]=KOrganizer gruppeskemalægning indstilling
-Comment[de]=Einrichtung von Gruppen-Planungen für KOrganizer
-Comment[el]=Ρύθμιση προγραμματισμού ομάδας του KOrganizer
-Comment[es]=Configuración de la planificación de grupos de KOrganizer
-Comment[et]=Korganizeri grupitöö ajakavade seadistamine
-Comment[eu]=KOrganizer-en talde antolaketaren konfigurazioa
-Comment[fa]=پیکربندی زمان‌بندی گروه KOrganizer
-Comment[fi]=KOrganizer ryhmäajastuksen asetukset
-Comment[fr]=Configuration de la planification des groupes de KOrganizer
-Comment[fy]=KOrganizer groepsplanning ynstelle
-Comment[gl]=Configuración da Axenda de Grupo de KOrganizer
-Comment[hi]=के-आर्गेनाइज़र समूह समय-सारणी कॉन्फ़िगरेशन
-Comment[hu]=KOrganizer szervezési beállítások
-Comment[is]=Stillingar fyrir KOrganizer hópáætlun
-Comment[it]=Configurazione del programmatore gruppi di KOrganizer
-Comment[ja]=KOrganizer グループスケジューリング設定
-Comment[kk]=KOrganizer топтық жұмысты жоспрлаудың параметрлері
-Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​ការ​រៀបចំ​កាលវិភាគ​ក្រុម​របស់ KOrganizer
-Comment[lt]=KOrganizer grupių tvarkaraščių tvarkymo konfigūravimas
-Comment[mk]=Конфигурација на закажување групи
-Comment[ms]=Konfigurasi Penjadualan Kumpulan KOrganizer
-Comment[nb]=Gruppeplanleggingsoppsett for KOrganizer
-Comment[nds]=Koppelplanen för KOrganizer instellen
-Comment[ne]=केडीई आयोजक समूह कार्यतालिका कन्फिगरेसन
-Comment[nl]=KOrganizer groepsplanning instellen
-Comment[nn]=KOrganizer, innstillingar for gruppeplanlegging
-Comment[pl]=Konfiguracja planowania grupowego dla KOrganizera
-Comment[pt]=Configuração do Escalonamento do Grupo do KOrganizer
-Comment[pt_BR]=Configuração de Agendamento de Grupo do KOrganizer
-Comment[ru]=Настройка календаря группы органайзера TDE
-Comment[se]=KOrganizer, joavkoplánema heivehusat
-Comment[sk]=Nastavenie skupinového plánovania pre KOrganizer
-Comment[sl]=Nastavitev razporejanja skupin v KOrganizerju
-Comment[sr]=Подешавање распоређивања група у KOrganizer-у
-Comment[sr@Latn]=Podešavanje raspoređivanja grupa u KOrganizer-u
-Comment[sv]=Inställning av Korganizers gruppschemaläggning
-Comment[ta]=கேஅமைப்பாளர் குழு நேர அமைப்புக்கான கட்டமைப்பு
-Comment[tg]=Танзимоти ҷадвали гурӯҳҳои органайзер-TDE
-Comment[tr]=KOrganizer Grup Zamanlama Yapılandırması
-Comment[uk]=Налаштування групового розкладу в KOrganizer
-Comment[zh_CN]=Korganizer 组日程安排配置
-Comment[zh_TW]=KOrganizer 群組排程設定
+
Keywords=korganizer;group;scheduling;
-Keywords[bg]=организатор; разписание; настройки; korganizer; group; scheduling;
-Keywords[bs]=korganizer;group;scheduling;raspoređivanje;grupa;grupe;
-Keywords[ca]=korganizer;grup;planificació;
-Keywords[cs]=korganizer;skupina;plánování;
-Keywords[cy]=korganizer;ktrefnydd;grŵp;trefnlenni;
-Keywords[da]=korganizer;gruppe;skemalægning;
-Keywords[de]=KOrganizer;Gruppe;Planung;
-Keywords[el]=korganizer;ομάδα;προγραμματισμός;
-Keywords[es]=korganizer;grupo;planificación;
-Keywords[et]=korganizer;grupid;grupitöö;ajakavad;
-Keywords[eu]=korganizer;taldea;antolaketa;
-Keywords[fa]=korganizer،گروه، زمان‌بندی;
-Keywords[fi]=korganizer;ryhmä;ajastus;
-Keywords[fr]=KOrganizer;groupes;planification;
-Keywords[fy]=korganizer;group;scheduling;plannen;groep;
-Keywords[gl]=korganizer;grupo;programar;
-Keywords[hu]=korganizer;csoport;szervezés;
-Keywords[is]=korganizer;hóp;áætlun;
-Keywords[it]=korganizer;gruppo;programmazione;
-Keywords[ja]=korganizer;グループ;スケジューリング;
-Keywords[km]=korganizer;ក្រុម;កាលវិភាគ;
-Keywords[lt]=korganizer;group;scheduling;tvarkaraštis; grupė;
-Keywords[mk]=korganizer;group;scheduling;корганизатор;група;групи;закажување;
-Keywords[ms]=korganizer;kumpulan;penjadualan;
-Keywords[nb]=korganizer;gruppe;planlegging;
-Keywords[nds]=KOrganizer;Koppel;Plaan;planen;
-Keywords[ne]=केडीई आयोजक; समूह; कार्यतालिका;
-Keywords[nl]=korganizer;group;scheduling;plannen;groep;
-Keywords[nn]=korganizer;gruppe;planlegging;
-Keywords[pl]=korganizer;grupa;planowanie;
-Keywords[pt]=korganizer;grupo;escalonamento;
-Keywords[pt_BR]=korganizer;grupo;agendamento;
-Keywords[ro]=korganizer;grup;planificare;
-Keywords[ru]=korganizer;group;scheduling;календарь группы;органайзер;
-Keywords[sk]=korganizer;skupina;plánovanie;
-Keywords[sl]=korganizer;skupina;razporejanje;
-Keywords[sr]=korganizer;group;scheduling;планер;група;распоред;распоређивање;
-Keywords[sr@Latn]=korganizer;group;scheduling;planer;grupa;raspored;raspoređivanje;
-Keywords[sv]=korganizer;grupp;schemaläggning;
-Keywords[ta]=கேஅமைப்பாளர்;குழு; திட்டம் அமைத்தல்;
-Keywords[tg]=korganizer;group;scheduling;ҷадвалигурӯҳҳо;органайзер;
-Keywords[tr]=korganizer;grup;zamanlama;
-Keywords[uk]=korganizer;груп;розклад;
-Keywords[zh_CN]=korganizer;group;scheduling;组;日程安排;
diff --git a/korganizer/korganizer_configmain.desktop b/korganizer/korganizer_configmain.desktop
index dcbe82f3..46f547b2 100644
--- a/korganizer/korganizer_configmain.desktop
+++ b/korganizer/korganizer_configmain.desktop
@@ -12,157 +12,7 @@ X-TDE-ParentComponents=korganizer,kontact_korganizerplugin
X-TDE-CfgDlgHierarchy=KOrganizer
Name=Personal
-Name[af]=Persoonlik
-Name[ar]=الشخصي
-Name[be]=Пэрсанальныя
-Name[bg]=Персоналност
-Name[br]=Diouzhoc'h
-Name[bs]=Lično
-Name[cs]=Osobní
-Name[cy]=Personol
-Name[da]=Personlig
-Name[de]=Persönliches
-Name[el]=Προσωπικό
-Name[eo]=Personaĵoj
-Name[et]=Isiklik
-Name[eu]=Pertsonala
-Name[fa]=شخصی
-Name[fi]=Henkilökohtainen
-Name[fr]=Personnel
-Name[fy]=Persoanlik
-Name[ga]=Pearsanta
-Name[gl]=Persoal
-Name[he]=אישי
-Name[hi]=निजी
-Name[hu]=Alapbeállítások
-Name[is]=Persónulegt
-Name[it]=Personale
-Name[ja]=個人設定
-Name[kk]=Дербес
-Name[km]=ផ្ទាល់​ខ្លួន
-Name[lt]=Suasmeninimas
-Name[mk]=Лично
-Name[ms]=Peribadi
-Name[nb]=Personlig
-Name[nds]=Persöönlich
-Name[ne]=व्यक्तिगत
-Name[nl]=Persoonlijk
-Name[nn]=Personleg
-Name[pl]=Osobiste
-Name[pt]=Pessoal
-Name[pt_BR]=Pessoal
-Name[ru]=Общие
-Name[se]=Peršuvnnalaš
-Name[sk]=Osobné
-Name[sl]=Osebno
-Name[sr]=Лично
-Name[sr@Latn]=Lično
-Name[sv]=Personlig inställning
-Name[ta]=அந்தரங்கமான
-Name[tg]=Танзимотҳои шахсӣ
-Name[tr]=Kişisel
-Name[uk]=Особисті
-Name[uz]=Шахсий
-Name[zh_CN]=个人
-Name[zh_TW]=個人
+
Comment=KOrganizer Main Configuration
-Comment[af]=KOrganizer hoof opstelling
-Comment[bg]=Главни настройки за KOrganizer
-Comment[br]=Kefluniadur kentañ KOrganizer
-Comment[bs]=KOrganizer glavno podešavanje
-Comment[ca]=Configuració principal a KOrganizer
-Comment[cs]=Hlavní nastavení KOrganizeru
-Comment[cy]=Prif Ffurfweddiad KTrefnydd
-Comment[da]=KOrganizer hovedindstilling
-Comment[de]=Grundeinrichtung für KOrganizer
-Comment[el]=Κύρια ρύθμιση του KOrganizer
-Comment[eo]=KOrganizilo-Ĉefagordo
-Comment[es]=Configuración principal de KOrganizer
-Comment[et]=KOrganizeri põhiseadistused
-Comment[eu]=KOrganizer-en konfigurazio nagusia
-Comment[fa]=پیکربندی اصلی KOrganizer
-Comment[fi]=KOrganizerin pääasetukset
-Comment[fr]=Configuration principale de KOrganizer
-Comment[fy]=KOrganizer algemiene ynstellings
-Comment[ga]=Príomhchumraíocht KOrganizer
-Comment[gl]=Configuración Principal de KOrganizer
-Comment[he]=תצורה ראשית של הארגונית
-Comment[hi]=के-आर्गेनाइज़र मुख्य कॉन्फ़िगरेशन
-Comment[hu]=A KOrganizer alapbeállításai
-Comment[is]=Aðalstillingar KOrganizer
-Comment[it]=Configurazione principale di KOrganizer
-Comment[ja]=KOrganizer 主要設定
-Comment[kk]=KOrganizer-дің негізгі параметрлері
-Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​សំខាន់ៗ​របស់ KOrganizer
-Comment[lt]=KOrganizer bendroji konfigūravimas
-Comment[mk]=Главна конфигурација на КОрганизатор
-Comment[ms]=Konfigurasi Utama KOrganizer
-Comment[nb]=KOrganizer hovedoppsett
-Comment[nds]=Hööftinstellen för KOrganizer
-Comment[ne]=केडीई आयोजक मुख्य कन्फिगरेसन
-Comment[nl]=KOrganizer algemene instellingen
-Comment[nn]=KOrganizer, hovudinnstillingar
-Comment[pl]=Główna konfiguracja KOrganizera
-Comment[pt]=Configuração Principal do KOrganizer
-Comment[pt_BR]=Configuração Principal do KOrganizer
-Comment[ru]=Общие настройки органайзера TDE
-Comment[se]=Korganizer, váldoheivehusat
-Comment[sk]=Hlavné nastavenie KOrganizer
-Comment[sl]=Glavne nastavitve KOrganizerja
-Comment[sr]=Главна подешавања у KOrganizer-у
-Comment[sr@Latn]=Glavna podešavanja u KOrganizer-u
-Comment[sv]=Korganizers huvudinställning
-Comment[ta]=கேஅமைப்பாளர் முக்கிய கட்டமைப்பு
-Comment[tg]=Танзимотҳои умумии органайзер-TDE
-Comment[tr]=KOrganizer Temel Yapılandırması
-Comment[uk]=Налаштування особистих даних у KOrganizer
-Comment[zh_CN]=KOrganizer 主要配置
-Comment[zh_TW]=KOrganizer 主設定
+
Keywords=korganizer;main;personal;
-Keywords[bg]=организатор; главни; персонални; настройки; korganizer; main; personal;
-Keywords[bs]=korganizer;main;personal;lično;
-Keywords[ca]=korganizer;principal;personal;
-Keywords[cs]=korganizer;hlavní;osobní;
-Keywords[cy]=korganizer;ktrefnydd;prif;personol;
-Keywords[da]=korganizer;hoved;personlig;
-Keywords[de]=KOrganizer;Persönliches;
-Keywords[el]=korganizer;κύρια;προσωπικό;
-Keywords[es]=korganizer;principal;personal;
-Keywords[et]=korganizer;peamine;isiklik;
-Keywords[eu]=korganizer;nagusia;pertsonala;
-Keywords[fa]=korganizer،اصلی، شخصی;
-Keywords[fi]=korganizer;pää;henkilökohtainen;
-Keywords[fr]=KOrganizer;principal;personnel;
-Keywords[fy]=korganizer;algemien; persoanlik;
-Keywords[gl]=korganizer;principal;persoal;
-Keywords[he]=korganizer;main;personal;ארגונית;תצורה;הגדרה;הגדרות;
-Keywords[hi]=के-आर्गेनाइज़र;मुख्य;निजी;
-Keywords[hu]=korganizer;alapbeállítások;személyes;
-Keywords[is]=korganizer;aðal;persónulegt;
-Keywords[it]=korganizer;principale;personale;
-Keywords[ja]=korganizer;メイン;個人;
-Keywords[km]=korganizer;សំខាន់;ផ្ទាល់​ខ្លួន;
-Keywords[lt]=korganizer;main;personal;pagrindinis;asmeninis;bendroji;
-Keywords[mk]=korganizer;main;personal;корганизатор;главно;лично;
-Keywords[ms]=korganizer;utama;peribadi;
-Keywords[nb]=korganizer;hoved;personlig;
-Keywords[nds]=KOrganizer;hööft;persöönlich;instellen;hööftinstellen;
-Keywords[ne]=केडीई आयोजक; मुख्य; व्यक्तिगत;
-Keywords[nl]=korganizer;algemeen;persoonlijk;
-Keywords[nn]=korganizer;hovud;personleg;
-Keywords[pl]=korganizer;główny;główna;osobisty;osobista;osobiste;
-Keywords[pt]=korganizer;principal;pessoal;
-Keywords[pt_BR]=korganizer;principal;pessoal;
-Keywords[ro]=korganizer;principal;personal;
-Keywords[ru]=korganizer;main;personal;почта;персональные настройки;органайзер;
-Keywords[sk]=korganizer;hlavné;osobné;
-Keywords[sl]=korganizer;glavne;osebne;
-Keywords[sr]=korganizer;main;personal;планер;главни;лични;лично;
-Keywords[sr@Latn]=korganizer;main;personal;planer;glavni;lični;lično;
-Keywords[sv]=korganizer;huvudinställning;personlig inställning;
-Keywords[ta]=கேஅமைப்பாளர்;முக்கிய; தனிப்பட்ட;
-Keywords[tg]=korganizer;main;personal;почта;танзимотҳои шахсӣ;органайзер;
-Keywords[tr]=korganizer;temel;kişisel;
-Keywords[uk]=korganizer;особистий;Персональний;
-Keywords[uz]=korganizer;органайзер;асосий;шахсий;
-Keywords[zh_CN]=korganizer;main;personal;主要;个人;
diff --git a/korganizer/korganizer_configplugins.desktop b/korganizer/korganizer_configplugins.desktop
index 563f3b72..3a3d23f7 100644
--- a/korganizer/korganizer_configplugins.desktop
+++ b/korganizer/korganizer_configplugins.desktop
@@ -12,141 +12,7 @@ X-TDE-ParentComponents=korganizer,kontact_korganizerplugin
X-TDE-CfgDlgHierarchy=KOrganizer
Name=Plugins
-Name[af]=Inprop modules
-Name[ar]=القوابس
-Name[be]=Дапаўненні
-Name[bg]=Приставки
-Name[br]=Lugantoù
-Name[ca]=Endollables
-Name[cs]=Moduly
-Name[cy]=Ategion
-Name[da]=Plugin
-Name[de]=Module
-Name[el]=Πρόσθετα
-Name[eo]=Kromaĵoj
-Name[es]=Extensiones
-Name[et]=Pluginad
-Name[eu]=Plugin-ak
-Name[fa]=وصله‌ها
-Name[fi]=Liitännäiset
-Name[fr]=Modules externes
-Name[ga]=Breiseáin
-Name[gl]=Extensións
-Name[he]=תוספים
-Name[hu]=Bővítőmodulok
-Name[is]=Íforrit
-Name[it]=Plugin
-Name[ja]=プラグイン
-Name[kk]=Плагин модульдері
-Name[km]=កម្មវិធី​ជំនួយ
-Name[lt]=Priedai
-Name[mk]=Приклучоци
-Name[ms]=Plugin
-Name[nb]=Programtillegg
-Name[nds]=Modulen
-Name[ne]=प्लगइन
-Name[nn]=Programtillegg
-Name[pl]=Wtyczki
-Name[pt]='Plugins'
-Name[ru]=Модули
-Name[rw]=Amacomeka
-Name[sk]=Moduly
-Name[sl]=Vstavki
-Name[sr]=Прикључци
-Name[sr@Latn]=Priključci
-Name[sv]=Insticksprogram
-Name[ta]=சொருகுப்பொருள்கள்
-Name[tr]=Eklentiler
-Name[uk]=Втулки
-Name[uz]=Плагинлар
-Name[zh_CN]=插件
-Name[zh_TW]=外掛程式
+
Comment=KOrganizer Plugin Configuration
-Comment[af]=Korganizer inprop module opstelling
-Comment[be]=Канфігурацыя дапаўненняў "K Арганізатара"
-Comment[bg]=Настройки на приставките за KOrganizer
-Comment[br]=Kefluniadur al lugent KOrganizer
-Comment[ca]=Configuració de l'endollable de KOrganizer
-Comment[cs]=Nastavení modulů KOrganizeru
-Comment[da]=KOrganizer plugin-indstilling
-Comment[de]=Modul-Einrichtung für KOrganizer
-Comment[el]=Ρύθμιση προσθέτων του KOrganizer
-Comment[eo]=KOrganizilo-Kromaĵagordo
-Comment[es]=Configuración de las extensiones de KOrganizer
-Comment[et]=KOrganizeri pluginate seadistused
-Comment[eu]=KOrganizer-en plugin konfigurazioa
-Comment[fa]=پیکربندی وصلۀ KOrganizer
-Comment[fi]=KOrganizerin liitännäisen asetukset
-Comment[fr]=Configuration du module KOrganizer
-Comment[fy]=KOrganizer pluginynstellings
-Comment[gl]=Configuración de Extensións de KOrganizer
-Comment[he]=הגדרות תוסף הארגונית
-Comment[hu]=A KOrganizer bővítőmodul beállításai
-Comment[is]=Stillingar KOrganizer íforrita
-Comment[it]=Configurazione plugin KOrganizer
-Comment[ja]=KOrganizer プラグイン設定
-Comment[kk]=KOrganizer-дің плагин модульдерінің параметрлері
-Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​កម្មវិធី​ជំនួយ KOrganizer
-Comment[lt]=KOrganizer priedų konfigūravimas
-Comment[mk]=Конфигурација на приклучоци
-Comment[ms]=Konfigurasi Plugin KOrganizer
-Comment[nb]=KOrganizer oppsett for programtillegg
-Comment[nds]=Modulen för KOrganizer instellen
-Comment[ne]=केडीई आयोजक प्लगइन कन्फिगरेसन
-Comment[nl]=KOrganizer plugininstellingen
-Comment[nn]=Oppsett av KOrganizer-programtillegg
-Comment[pl]=Konfiguracja wtyczek KOrganizera
-Comment[pt]=Configuração de 'Plugins' do KOrganizer
-Comment[pt_BR]=Configuração dos Plug-ins do KOrganizer
-Comment[ru]=Настройки модуля KOrganizer
-Comment[sk]=Nastavenie modulu KOrganizer
-Comment[sl]=Nastavitve vstavka KOrganizerja
-Comment[sr]=Подешавање прикључака KOrganizer-а
-Comment[sr@Latn]=Podešavanje priključaka KOrganizer-a
-Comment[sv]=Korganizers inställning av insticksprogram
-Comment[ta]=கேஅமைப்பாளர் சொருகுப்பொருள் வடிவமைப்பு
-Comment[tr]=KOrganizer Eklenti Yapılandırması
-Comment[uk]=Втулок налаштування KOrganizer
-Comment[zh_CN]=KOrganizer 插件配置
-Comment[zh_TW]=KOrganizer外掛程式設定
+
Keywords=korganizer;plugin;module;
-Keywords[be]=K Арганізатар;дапаўненне;модуль;korganizer;plugin;module;
-Keywords[bg]=организатор; модул; приставка; korganizer; plugin; module;
-Keywords[ca]=korganizer;endollable;mòdul;
-Keywords[cs]=korganizer;modul;
-Keywords[da]=korganizer;plugin;modul;
-Keywords[de]=KOrganizer;Modul;Plugin;
-Keywords[el]=korganizer;πρόσθετο;άρθρωμα;
-Keywords[es]=korganizer;extensión;plugin;módulo;
-Keywords[et]=korganizer;plugin;moodul;
-Keywords[eu]=korganizer;plugin-a;modulua;
-Keywords[fa]=korganizer،وصله، پیمانه;
-Keywords[fi]=korganizer;liitännäinen;moduuli;
-Keywords[fr]=KOrganizer;module;
-Keywords[ga]=korganizer;breiseán;modúl;
-Keywords[gl]=korganizer;extensión;módulo;
-Keywords[he]=korganizer;plugin;module;מודול;תוסף;ארגונית;
-Keywords[hu]=korganizer;bővítőmodul;modul;
-Keywords[is]=korganizer;íforrit;eining;
-Keywords[it]=korganizer;plugin;modulo;
-Keywords[ja]=korganizer;プラグイン;モジュール;
-Keywords[km]=korganizer;កម្មវិធី​ជំនួយ;ម៉ូឌុល;
-Keywords[lt]=korganizer;plugin;module;modulis;priedas;
-Keywords[mk]=korganizer;plugin;module;корганизатор;приклучок;приклучоци;модул.модули;
-Keywords[ms]=korganizer;plugin;modul;
-Keywords[nb]=korganizer;programtillegg;modul;
-Keywords[nds]=KOrganizer;Moduul;Modulen;Plugins;
-Keywords[ne]=केडीई आयोजक; प्लगइन; मोड्युल;
-Keywords[nn]=korganizer;programtillegg;modul;
-Keywords[pl]=korganizer;wtyczka;moduł;
-Keywords[pt]=korganizer;'plugin';módulo;
-Keywords[pt_BR]=korganizer;plugin;módulo;
-Keywords[ru]=korganizer;plugin;module;органайзер;модуль;
-Keywords[sl]=korganizer;vstavek;modul;
-Keywords[sr]=korganizer;plugin;module;прикључак;модул;
-Keywords[sr@Latn]=korganizer;plugin;module;priključak;modul;
-Keywords[sv]=korganizer;insticksprogram;modul;
-Keywords[ta]=கேஅமைப்பாளர்;சொருகுப்பொருள்;பகுதி;
-Keywords[tr]=korganizer;eklenti;modül;
-Keywords[uk]=korganizer;plugin;module;втулок;модуль;
-Keywords[zh_CN]=korganizer;plugin;module;插件;模块;
diff --git a/korganizer/korganizer_configtime.desktop b/korganizer/korganizer_configtime.desktop
index 8aadcc77..80af8142 100644
--- a/korganizer/korganizer_configtime.desktop
+++ b/korganizer/korganizer_configtime.desktop
@@ -12,164 +12,7 @@ X-TDE-ParentComponents=korganizer,kontact_korganizerplugin
X-TDE-CfgDlgHierarchy=KOrganizer
Name=Time & Date
-Name[af]=Datum & Tyd
-Name[ar]=الوقت و التاريخ
-Name[be]=Час і дата
-Name[bg]=Дата и час
-Name[br]=Deiziad hag eur
-Name[bs]=Vrijeme i datum
-Name[ca]=Hora i data
-Name[cs]=Datum a čas
-Name[cy]=Amser & Dyddiad
-Name[da]=Tid & Dato
-Name[de]=Zeit & Datum
-Name[el]=Ώρα & Ημερομηνία
-Name[eo]=Tempo & Dato
-Name[es]=Fecha y hora
-Name[et]=Aeg
-Name[eu]=Ordua eta data
-Name[fa]=زمان و تاریخ
-Name[fi]=Aika ja päiväys
-Name[fr]=Date et heure
-Name[fy]=Datum & tiid
-Name[ga]=Am & Dáta
-Name[gl]=Hora e Data
-Name[he]=תאריך ושעה
-Name[hi]=तारीख़ व समय
-Name[hu]=Dátum és idő
-Name[is]=Tími og dagsetning
-Name[it]=Data e ora
-Name[ja]=日付と時間
-Name[kk]=Уақыт пен Күн
-Name[km]=កាលបរិច្ឆេទ & ពេលវេលា
-Name[lt]=Laikas ir data
-Name[mk]=Датуми и времиња
-Name[ms]=Waktu & Tarikh
-Name[nb]=Dato og klokkeslett
-Name[nds]=Tiet & Datum
-Name[ne]=मिति र समय
-Name[nl]=Datum & tijd
-Name[nn]=Tidsinnstillingar
-Name[pl]=Czas i data
-Name[pt]=Data e Hora
-Name[pt_BR]=Data & Hora
-Name[ro]=Timp şi dată
-Name[ru]=Дата и время
-Name[se]=Áigi ja beaivvit
-Name[sk]=Dátum a čas
-Name[sl]=Čas in datum
-Name[sr]=Време и датум
-Name[sr@Latn]=Vreme i datum
-Name[sv]=Tid och datum
-Name[ta]=நேரம் & தேதி
-Name[tg]=Сана ва вақт
-Name[tr]=Saat & Tarih
-Name[uk]=Час та дата
-Name[uz]=Сана ва вақт
-Name[zh_CN]=时间和日期
-Name[zh_TW]=時間與日期
+
Comment=KOrganizer Time Configuration
-Comment[af]=KOrganizer tyd opstelling
-Comment[ar]=إعداد الوقت لِــ KOrganizer
-Comment[be]=Канфігурацыя часу "K Арганізатара"
-Comment[bg]=Настройки на дата и час за KOrganizer
-Comment[bs]=KOrganizer podešavanje vremena
-Comment[ca]=Configuració del temps a KOrganizer
-Comment[cs]=Nastavení času v KOrganizeru
-Comment[cy]=Ffurfweddiad Amser KTrefnydd
-Comment[da]=KOrganizer tidsindstilling
-Comment[de]=Zeitliche Vorgaben für KOrganizer
-Comment[el]=Ρύθμιση ώρας του KOrganizer
-Comment[eo]=KOrganizilo-tempagordo
-Comment[es]=Configuración de la hora de KOrganizer
-Comment[et]=KOrganizeri ajaseadistused
-Comment[eu]=KOrganizer-en ordu/data konfigurazioa
-Comment[fa]=پیکربندی زمان KOrganizer
-Comment[fi]=KOrganizerin aika-asetukset
-Comment[fr]=Configuration de l'heure de KOrganizer
-Comment[fy]=KOrganizer datum en tiid ynstelle
-Comment[gl]=Configuración de Hora de KOrganizer
-Comment[he]=הגדרות שעה בארגונית
-Comment[hi]=के-आर्गेनाइज़र समय कॉन्फ़िगरेशन
-Comment[hu]=KOrganizer dátum- és időbeállítások
-Comment[is]=KOrganizer tímastillingar
-Comment[it]=Configurazione data di KOrganizer
-Comment[ja]=KOrganizer 時間設定
-Comment[kk]=KOrganizer-дің уақыт параметрлері
-Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​ពេលវេលា​របស់ KOrganizer
-Comment[lt]=KOrganizer laiko konfigūravimas
-Comment[mk]=Конфигурација на датуми и времиња
-Comment[ms]=Konfigurasi Waktu KOrganizer
-Comment[nb]=KOrganizer tidsoppsett
-Comment[nds]=Tietinstellen för KOrganizer
-Comment[ne]=केडीई आयोजक समय कन्फिगरेसन
-Comment[nl]=KOrganizer datum en tijd instellen
-Comment[nn]=KOrganizer, tidsinnstillingar
-Comment[pl]=Konfiguracja czasu dla KOrganizera
-Comment[pt]=Configuração da Hora no KOrganizer
-Comment[pt_BR]=Configuração de Tempo do KOrganizer
-Comment[ro]=Configurare timp KOrganizer
-Comment[ru]=Настройка времени органайзера TDE
-Comment[sk]=Nastavenie času pre KOrganizer
-Comment[sl]=Nastavitev časa v KOrganizerju
-Comment[sr]=Подешавање времена у KOrganizer-у
-Comment[sr@Latn]=Podešavanje vremena u KOrganizer-u
-Comment[sv]=Inställning av Korganizers tid
-Comment[ta]=கேஅமைப்பாளர் நேர கட்டமைப்பு
-Comment[tg]=Танзимоти вақти органайзери TDE
-Comment[tr]=KOrganizer Zaman Yapılandırması
-Comment[uk]=Налаштування часу та дати в KOrganizer
-Comment[zh_CN]=KOrganizer 时间配置
-Comment[zh_TW]=KOrganizer 時間設定
+
Keywords=korganizer;time;
-Keywords[be]=K Арганізатар;час;korganizer;time;
-Keywords[bg]=организатор; дата; час; настройки; korganizer; time;
-Keywords[br]=korganizer;amzer;
-Keywords[bs]=korganizer;time;vrijeme;
-Keywords[ca]=korganizer;temps;
-Keywords[cs]=korganizer;čas;
-Keywords[cy]=korganizer;ktrefnydd;amser;
-Keywords[da]=korganizer;tid;
-Keywords[de]=KOrganizer;Zeit;
-Keywords[el]=korganizer;ώρα;
-Keywords[eo]=korganizilo;tempo;
-Keywords[es]=korganizer;hora;
-Keywords[et]=korganizer;aeg;
-Keywords[eu]=korganizer;ordua;data;
-Keywords[fa]=korganizer،زمان;
-Keywords[fi]=korganizer;aika;
-Keywords[fr]=KOrganizer;date;
-Keywords[fy]=datum;tijd;tiid;korganizer;
-Keywords[ga]=korganizer;am;
-Keywords[gl]=korganizer;hora;
-Keywords[he]=korganizer;time;ארגונית;שעה;
-Keywords[hi]=के-आर्गेनाइज़र;समय;
-Keywords[hu]=korganizer;idő;
-Keywords[is]=korganizer;tími;
-Keywords[it]=korganizer;data;ora;
-Keywords[ja]=korganizer;時間;
-Keywords[km]=korganizer;ពេលវេលា;
-Keywords[lt]=korganizer;time;laikas;
-Keywords[mk]=korganizer;time;корганизатор;датум;време;
-Keywords[ms]=korganizer;waktu;
-Keywords[nb]=korganizer;tid;
-Keywords[nds]=KOrganizer;Tiet;
-Keywords[ne]=केडीई आयोजक; समय;
-Keywords[nl]=datum;tijd;korganizer;
-Keywords[nn]=korganizer;tid;
-Keywords[pl]=korganizer;czas;data;daty;
-Keywords[pt]=korganizer;hora;
-Keywords[pt_BR]=korganizer;tempo;
-Keywords[ro]=korganizer;timp;
-Keywords[ru]=korganizer;time;органайзер;время;
-Keywords[sk]=korganizer;čas;
-Keywords[sl]=korganizer;čas;
-Keywords[sr]=korganizer;time;време;планер;
-Keywords[sr@Latn]=korganizer;time;vreme;planer;
-Keywords[sv]=korganizer;tid;
-Keywords[ta]=கேஅமைப்பாளர்;நேரம்;
-Keywords[tg]=korganizer;time;органайзер;вақт;
-Keywords[tr]=korganizer;zaman;
-Keywords[uk]=korganizer;час;дата;
-Keywords[uz]=korganizer;органайзер;сана;вақт;
-Keywords[zh_CN]=korganizer;time;时间;
diff --git a/korganizer/korganizer_configviews.desktop b/korganizer/korganizer_configviews.desktop
index bbef1c1f..05c073e3 100644
--- a/korganizer/korganizer_configviews.desktop
+++ b/korganizer/korganizer_configviews.desktop
@@ -12,159 +12,7 @@ X-TDE-ParentComponents=korganizer,kontact_korganizerplugin
X-TDE-CfgDlgHierarchy=KOrganizer
Name=Views
-Name[af]=Aansigte
-Name[ar]=العروض
-Name[be]=Выгляды
-Name[bg]=Изгледи
-Name[br]=Gweloù
-Name[bs]=Pogledi
-Name[ca]=Vistes
-Name[cs]=Pohledy
-Name[cy]=Golygon
-Name[da]=Visninger
-Name[de]=Ansichten
-Name[el]=Προβολές
-Name[eo]=Rigardoj
-Name[es]=Vistas
-Name[et]=Vaated
-Name[eu]=Ikuspegiak
-Name[fa]=نماها
-Name[fi]=Näkymät
-Name[fr]=Vues
-Name[fy]=Werjeften
-Name[ga]=Amhairc
-Name[gl]=Vistas
-Name[he]=תצוגות
-Name[hi]=दृश्य
-Name[hu]=Nézetek
-Name[is]=Sýn
-Name[it]=Viste
-Name[ja]=ビューア
-Name[kk]=Көріністері
-Name[km]=ទិដ្ឋភាព
-Name[lt]=Žiūrikliai
-Name[mk]=Приказ
-Name[ms]=Paparan
-Name[nb]=Visninger
-Name[nds]=Ansichten
-Name[ne]=दृश्य
-Name[nl]=Weergaven
-Name[nn]=Visingar
-Name[pl]=Widoki
-Name[pt]=Janelas
-Name[pt_BR]=Visões
-Name[ro]=Vizualizări
-Name[ru]=Вид
-Name[se]=Čájeheamit
-Name[sk]=Pohľady
-Name[sl]=Prikazi
-Name[sr]=Прикази
-Name[sr@Latn]=Prikazi
-Name[sv]=Vyer
-Name[ta]=காட்சிகள்
-Name[tg]=Намудҳо
-Name[tr]=Görünümler
-Name[uk]=Перегляди
-Name[uz]=Кўринишлар
-Name[zh_CN]=视图
-Name[zh_TW]=檢視
+
Comment=KOrganizer View Configuration
-Comment[af]=KOrganizer aansig opstelling
-Comment[be]=Канфігурацыя выгляду "K Арганізатара"
-Comment[bg]=Настройки на изгледи за KOrganizer
-Comment[bs]=KOrganizer podešavanje pogleda
-Comment[ca]=Configuració de la vista a KOrganizer
-Comment[cs]=Nastavení pohledů KOrganizeru
-Comment[cy]=Ffurfweddiad Golygon KTrefnydd
-Comment[da]=KOrganizer visningsindstilling
-Comment[de]=Ansichts-Einstellungen für KOrganizer
-Comment[el]=Ρύθμιση προβολής του KOrganizer
-Comment[eo]=KOrganizilo-Rigardagordo
-Comment[es]=Configuración de la vista de KOrganizer
-Comment[et]=KOrganizeri vaateseadistused
-Comment[eu]=KOrganizer-en ikuspegi konfigurazioa
-Comment[fa]=پیکربندی نمای KOrganizer
-Comment[fi]=KOrganizerin näkymäasetukset
-Comment[fr]=Configuration des vues de KOrganizer
-Comment[fy]=KOrganizer werjefte ynstelle
-Comment[gl]=Configuración de Vista de KOrganizer
-Comment[hi]=के-आर्गेनाइज़र दृश्य कॉन्फ़िगरेशन
-Comment[hu]=KOrganizer nézeti beállítások
-Comment[is]=Stillingar KOrganizer sýna
-Comment[it]=Configurazione viste di KOrganizer
-Comment[ja]=KOrganizer ビューア設定
-Comment[kk]=KOrganizer-дің көрінісінің параметрлері
-Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ​ទិដ្ឋភាព​របស់ KOrganizer
-Comment[lt]=KOrganizer žiūriklių konfigūravimas
-Comment[mk]=Конфигурација на приказот
-Comment[ms]=Konfigurasi Paparan KOrganizer
-Comment[nb]=KOrganizer visningsoppsett
-Comment[nds]=Ansichteninstellen för KOrganizer
-Comment[ne]=केडीई आयोजक दृश्य कन्फिगरेसन
-Comment[nl]=KOrganizer weergave instellen
-Comment[nn]=KOrganizer, visingsinnstillingar
-Comment[pl]=Konfiguracja widoków KOrganizera
-Comment[pt]=Configuração da Janela do KOrganizer
-Comment[pt_BR]=Configuração de Visões do KOrganizer
-Comment[ru]=Настройка видов органайзера TDE
-Comment[sk]=Nastavenie pohľadov pre KOrganizer
-Comment[sl]=Nastavitev prikaza KOrganizerja
-Comment[sr]=Подешавање приказа у KOrganizer-у
-Comment[sr@Latn]=Podešavanje prikaza u KOrganizer-u
-Comment[sv]=Inställning av Korganizers vyer
-Comment[ta]=கேஅமைப்பாளர் காட்சி கட்டமைப்பு
-Comment[tg]=Танзимоти намудҳои органайзери TDE
-Comment[tr]=KOrganizer Görünüm Yapılandırması
-Comment[uk]=Налаштування переглядів у KOrganizer
-Comment[zh_CN]=KOrganizer 视图配置
-Comment[zh_TW]=KOrganizer 檢視設定
+
Keywords=korganizer;view;
-Keywords[be]=K Арганізатар;выгляд;korganizer;view;
-Keywords[bg]=организатор; изглед; изгледи; настройки; korganizer; view;
-Keywords[br]=korganizer;gwell;
-Keywords[bs]=korganizer;view;pogled;
-Keywords[ca]=korganizer;vista;
-Keywords[cs]=korganizer;pohled;
-Keywords[cy]=korganizer;ktrefnydd;golwg;
-Keywords[da]=korganizer;visning;
-Keywords[de]=KOrganizer;Ansicht;
-Keywords[el]=korganizer;προβολή;
-Keywords[eo]=korganizilo;rigardo;
-Keywords[es]=korganizer;vista;
-Keywords[et]=korganizer;vaade;
-Keywords[eu]=korganizer;ikuspegia;
-Keywords[fa]=korganizer،نما;
-Keywords[fi]=korganizer;näkymä;
-Keywords[fr]=KOrganizer;vues;
-Keywords[fy]=korganizer;weergave; werjefte;
-Keywords[ga]=korganizer;amharc;
-Keywords[gl]=korganizer;vista;
-Keywords[hi]=के-आर्गेनाइज़र;दृश्य;
-Keywords[hu]=korganizer;nézet;
-Keywords[is]=korganizer;sýn;
-Keywords[it]=korganizer;viste;
-Keywords[km]=korganizer;ទិដ្ឋភាព;
-Keywords[lt]=korganizer;view;žiūrikliai;
-Keywords[mk]=korganizer;view;корганизатор;приказ;
-Keywords[ms]=korganizer;paparan;
-Keywords[nb]=korganizer;visning;
-Keywords[nds]=KOrganizer;Ansichten;
-Keywords[ne]=केडीई आयोजक; दृश्य;
-Keywords[nl]=korganizer;weergave;
-Keywords[nn]=korganizer;vising;
-Keywords[pl]=korganizer;widok;
-Keywords[pt]=korganizer;janela;
-Keywords[pt_BR]=korganizer;visão;
-Keywords[ro]=korganizer;vizualizare;
-Keywords[ru]=korganizer;view;органайзер;виды;
-Keywords[sk]=korganizer;pohľad;zobrazenie;
-Keywords[sl]=korganizer;prikaz;
-Keywords[sr]=korganizer;view;планер;приказ;
-Keywords[sr@Latn]=korganizer;view;planer;prikaz;
-Keywords[sv]=korganizer;vy;
-Keywords[ta]=கேஅமைப்பாளர்;காட்சி;
-Keywords[tg]=korganizer;view;органайзер;намудҳо;
-Keywords[tr]=korganizer;görünüm;
-Keywords[uk]=korganizer;перегляд;
-Keywords[uz]=korganizer;органайзер;кўриниш;
-Keywords[zh_CN]=korganizer;view;视图;
diff --git a/korganizer/korganizer_part.cpp b/korganizer/korganizer_part.cpp
index 1b607169..ab1b3c12 100644
--- a/korganizer/korganizer_part.cpp
+++ b/korganizer/korganizer_part.cpp
@@ -81,7 +81,7 @@ KOrganizerPart::KOrganizerPart( TQWidget *parentWidget, const char *widgetName,
// create a canvas to insert our widget
TQWidget *canvas = new TQWidget( parentWidget, widgetName );
- canvas->setFocusPolicy( TQ_ClickFocus );
+ canvas->setFocusPolicy( TQWidget::ClickFocus );
setWidget( canvas );
mView = new CalendarView( canvas );
@@ -109,10 +109,10 @@ KOrganizerPart::KOrganizerPart( TQWidget *parentWidget, const char *widgetName,
KParts::InfoExtension *ie = new KParts::InfoExtension( this,
"KOrganizerInfo" );
- connect( mView, TQT_SIGNAL( incidenceSelected( Incidence *,const TQDate & ) ),
- TQT_SLOT( slotChangeInfo( Incidence *,const TQDate & ) ) );
- connect( this, TQT_SIGNAL( textChanged( const TQString & ) ),
- ie, TQT_SIGNAL( textChanged( const TQString & ) ) );
+ connect( mView, TQ_SIGNAL( incidenceSelected( Incidence *,const TQDate & ) ),
+ TQ_SLOT( slotChangeInfo( Incidence *,const TQDate & ) ) );
+ connect( this, TQ_SIGNAL( textChanged( const TQString & ) ),
+ ie, TQ_SIGNAL( textChanged( const TQString & ) ) );
mActionManager->init();
mActionManager->readSettings();
diff --git a/korganizer/korganizer_part.h b/korganizer/korganizer_part.h
index 21e96462..e4d33902 100644
--- a/korganizer/korganizer_part.h
+++ b/korganizer/korganizer_part.h
@@ -56,7 +56,7 @@ class TQDate;
class KOrganizerPart: public KParts::ReadOnlyPart,
public KOrg::MainWindow
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOrganizerPart( TQWidget *parentWidget, const char *widgetName,
diff --git a/korganizer/korganizerifaceimpl.h b/korganizer/korganizerifaceimpl.h
index 4873ef63..c91a715e 100644
--- a/korganizer/korganizerifaceimpl.h
+++ b/korganizer/korganizerifaceimpl.h
@@ -34,7 +34,7 @@
#include "korganizeriface.h"
#include <tqobject.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class ActionManager;
diff --git a/korganizer/kotimelineview.cpp b/korganizer/kotimelineview.cpp
index a93c6d68..fc2bf0cf 100644
--- a/korganizer/kotimelineview.cpp
+++ b/korganizer/kotimelineview.cpp
@@ -62,18 +62,18 @@ KOTimelineView::KOTimelineView(Calendar *calendar, TQWidget *parent,
vbox->addWidget( mGantt );
- connect( mGantt, TQT_SIGNAL(gvCurrentChanged(KDGanttViewItem*)),
- TQT_SLOT(itemSelected(KDGanttViewItem*)) );
- connect( mGantt, TQT_SIGNAL(itemDoubleClicked(KDGanttViewItem*)),
- TQT_SLOT(itemDoubleClicked(KDGanttViewItem*)) );
- connect( mGantt, TQT_SIGNAL(itemRightClicked(KDGanttViewItem*)),
- TQT_SLOT(itemRightClicked(KDGanttViewItem*)) );
- connect( mGantt, TQT_SIGNAL(gvItemMoved(KDGanttViewItem*)),
- TQT_SLOT(itemMoved(KDGanttViewItem*)) );
- connect( mGantt, TQT_SIGNAL(rescaling(KDGanttView::Scale)),
- TQT_SLOT(overscale(KDGanttView::Scale)) );
- connect( mGantt, TQT_SIGNAL( dateTimeDoubleClicked( const TQDateTime& ) ),
- TQT_SLOT( newEventWithHint( const TQDateTime& ) ) );
+ connect( mGantt, TQ_SIGNAL(gvCurrentChanged(KDGanttViewItem*)),
+ TQ_SLOT(itemSelected(KDGanttViewItem*)) );
+ connect( mGantt, TQ_SIGNAL(itemDoubleClicked(KDGanttViewItem*)),
+ TQ_SLOT(itemDoubleClicked(KDGanttViewItem*)) );
+ connect( mGantt, TQ_SIGNAL(itemRightClicked(KDGanttViewItem*)),
+ TQ_SLOT(itemRightClicked(KDGanttViewItem*)) );
+ connect( mGantt, TQ_SIGNAL(gvItemMoved(KDGanttViewItem*)),
+ TQ_SLOT(itemMoved(KDGanttViewItem*)) );
+ connect( mGantt, TQ_SIGNAL(rescaling(KDGanttView::Scale)),
+ TQ_SLOT(overscale(KDGanttView::Scale)) );
+ connect( mGantt, TQ_SIGNAL( dateTimeDoubleClicked( const TQDateTime& ) ),
+ TQ_SLOT( newEventWithHint( const TQDateTime& ) ) );
}
KOTimelineView::~KOTimelineView()
diff --git a/korganizer/kotimelineview.h b/korganizer/kotimelineview.h
index 2d0e7c0d..0e131897 100644
--- a/korganizer/kotimelineview.h
+++ b/korganizer/kotimelineview.h
@@ -43,7 +43,7 @@ namespace KOrg {
*/
class KOTimelineView : public KOEventView
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOTimelineView(Calendar *calendar, TQWidget *parent = 0,
diff --git a/korganizer/kotodoeditor.cpp b/korganizer/kotodoeditor.cpp
index 9da33659..3a41d1ff 100644
--- a/korganizer/kotodoeditor.cpp
+++ b/korganizer/kotodoeditor.cpp
@@ -68,21 +68,21 @@ void KOTodoEditor::init()
setupRecurrence();
setupAttendeesTab();
- connect( mGeneral, TQT_SIGNAL( dateTimeStrChanged( const TQString & ) ),
- mRecurrence, TQT_SLOT( setDateTimeStr( const TQString & ) ) );
- connect( mGeneral, TQT_SIGNAL( signalDateTimeChanged( const TQDateTime &, const TQDateTime & ) ),
- mRecurrence, TQT_SLOT( setDateTimes( const TQDateTime &, const TQDateTime & ) ) );
+ connect( mGeneral, TQ_SIGNAL( dateTimeStrChanged( const TQString & ) ),
+ mRecurrence, TQ_SLOT( setDateTimeStr( const TQString & ) ) );
+ connect( mGeneral, TQ_SIGNAL( signalDateTimeChanged( const TQDateTime &, const TQDateTime & ) ),
+ mRecurrence, TQ_SLOT( setDateTimes( const TQDateTime &, const TQDateTime & ) ) );
- connect( mGeneral, TQT_SIGNAL( openCategoryDialog() ),
- TQT_SIGNAL( editCategories() ) );
+ connect( mGeneral, TQ_SIGNAL( openCategoryDialog() ),
+ TQ_SIGNAL( editCategories() ) );
- connect( mDetails, TQT_SIGNAL(updateAttendeeSummary(int)),
- mGeneral, TQT_SLOT(updateAttendeeSummary(int)) );
+ connect( mDetails, TQ_SIGNAL(updateAttendeeSummary(int)),
+ mGeneral, TQ_SLOT(updateAttendeeSummary(int)) );
- connect( mGeneral, TQT_SIGNAL(editRecurrence()),
- mRecurrenceDialog, TQT_SLOT(show()) );
- connect( mRecurrenceDialog, TQT_SIGNAL(okClicked()),
- TQT_SLOT(updateRecurrenceSummary()) );
+ connect( mGeneral, TQ_SIGNAL(editRecurrence()),
+ mRecurrenceDialog, TQ_SLOT(show()) );
+ connect( mRecurrenceDialog, TQ_SIGNAL(okClicked()),
+ TQ_SLOT(updateRecurrenceSummary()) );
}
void KOTodoEditor::reload()
@@ -94,7 +94,7 @@ void KOTodoEditor::reload()
void KOTodoEditor::setupGeneral()
{
- mGeneral = new KOEditorGeneralTodo(TQT_TQOBJECT(this));
+ mGeneral = new KOEditorGeneralTodo(this);
if (KOPrefs::instance()->mCompactDialogs) {
TQFrame *topFrame = addPage(i18n("General"));
@@ -131,10 +131,10 @@ void KOTodoEditor::setupGeneral()
mGeneral->iniStatus(topFrame,topLayout);
mGeneral->initDescription(topFrame,topLayout);
mGeneral->initAttachments(topFrame,topLayout);
- connect( mGeneral, TQT_SIGNAL( openURL( const KURL& ) ),
- this, TQT_SLOT( openURL( const KURL& ) ) );
- connect( this, TQT_SIGNAL( signalAddAttachments( const TQStringList&, const TQStringList&, bool ) ),
- mGeneral, TQT_SLOT( addAttachments( const TQStringList&, const TQStringList&, bool ) ) );
+ connect( mGeneral, TQ_SIGNAL( openURL( const KURL& ) ),
+ this, TQ_SLOT( openURL( const KURL& ) ) );
+ connect( this, TQ_SIGNAL( signalAddAttachments( const TQStringList&, const TQStringList&, bool ) ),
+ mGeneral, TQ_SLOT( addAttachments( const TQStringList&, const TQStringList&, bool ) ) );
}
mGeneral->finishSetup();
}
diff --git a/korganizer/kotodoeditor.h b/korganizer/kotodoeditor.h
index a571d88b..ebccd4d2 100644
--- a/korganizer/kotodoeditor.h
+++ b/korganizer/kotodoeditor.h
@@ -36,7 +36,7 @@ class KOEditorRecurrence;
*/
class KOTodoEditor : public KOIncidenceEditor
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index 8ae2703f..bbbb71db 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -299,7 +299,7 @@ void KOTodoListView::contentsMousePressEvent(TQMouseEvent* e)
treeStepSize() * (i->depth() + (rootIsDecorated() ? 1 : 0)) +
itemMargin() ||
p.x() < header()->sectionPos(header()->mapToIndex(0))) {
- if (e->button()==Qt::LeftButton) {
+ if (e->button()==TQt::LeftButton) {
mPressPos = e->pos();
mMousePressed = true;
}
@@ -424,16 +424,16 @@ KOTodoView::KOTodoView( Calendar *calendar, TQWidget *parent, const char* name)
mPriority[ mPriorityPopupMenu->insertItem( i18n( "7" ) ) ] = 7;
mPriority[ mPriorityPopupMenu->insertItem( i18n( "8" ) ) ] = 8;
mPriority[ mPriorityPopupMenu->insertItem( i18n( "9 (lowest)" ) ) ] = 9;
- connect( mPriorityPopupMenu, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( setNewPriority( int ) ));
+ connect( mPriorityPopupMenu, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( setNewPriority( int ) ));
mPercentageCompletedPopupMenu = new TQPopupMenu(this);
for (int i = 0; i <= 100; i+=10) {
TQString label = TQString ("%1 %").arg (i);
mPercentage[mPercentageCompletedPopupMenu->insertItem (label)] = i;
}
- connect( mPercentageCompletedPopupMenu, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( setNewPercentage( int ) ) );
+ connect( mPercentageCompletedPopupMenu, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( setNewPercentage( int ) ) );
mMovePopupMenu = new KDatePickerPopup(
KDatePickerPopup::NoDate |
@@ -445,76 +445,76 @@ KOTodoView::KOTodoView( Calendar *calendar, TQWidget *parent, const char* name)
KDatePickerPopup::Words );
- connect( mMovePopupMenu, TQT_SIGNAL( dateChanged( TQDate )),
- TQT_SLOT( setNewDate( TQDate ) ) );
- connect( mCopyPopupMenu, TQT_SIGNAL( dateChanged( TQDate )),
- TQT_SLOT( copyTodoToDate( TQDate ) ) );
+ connect( mMovePopupMenu, TQ_SIGNAL( dateChanged( TQDate )),
+ TQ_SLOT( setNewDate( TQDate ) ) );
+ connect( mCopyPopupMenu, TQ_SIGNAL( dateChanged( TQDate )),
+ TQ_SLOT( copyTodoToDate( TQDate ) ) );
mItemPopupMenu = new TQPopupMenu(this);
mItemPopupMenu->insertItem(i18n("&Show"), this,
- TQT_SLOT (showTodo()));
+ TQ_SLOT (showTodo()));
mItemPopupMenu->insertItem(i18n("&Edit..."), this,
- TQT_SLOT (editTodo()), 0, ePopupEdit );
+ TQ_SLOT (editTodo()), 0, ePopupEdit );
#ifndef KORG_NOPRINTER
- mItemPopupMenu->insertItem(KOGlobals::self()->smallIcon("printer"), i18n("&Print..."), this, TQT_SLOT( printTodo() ) );
+ mItemPopupMenu->insertItem(KOGlobals::self()->smallIcon("printer"), i18n("&Print..."), this, TQ_SLOT( printTodo() ) );
#endif
mItemPopupMenu->insertItem(KOGlobals::self()->smallIconSet("edit-delete"), i18n("&Delete"), this,
- TQT_SLOT (deleteTodo()), 0, ePopupDelete );
+ TQ_SLOT (deleteTodo()), 0, ePopupDelete );
mItemPopupMenu->insertSeparator();
mItemPopupMenu->insertItem(KOGlobals::self()->smallIconSet("todo"), i18n("New &To-do..."), this,
- TQT_SLOT (newTodo()) );
+ TQ_SLOT (newTodo()) );
mItemPopupMenu->insertItem(i18n("New Su&b-to-do..."), this,
- TQT_SLOT (newSubTodo()));
+ TQ_SLOT (newSubTodo()));
mItemPopupMenu->insertItem( i18n("&Make this To-do Independent"), this,
- TQT_SIGNAL( unSubTodoSignal() ), 0, ePopupUnSubTodo );
+ TQ_SIGNAL( unSubTodoSignal() ), 0, ePopupUnSubTodo );
mItemPopupMenu->insertItem( i18n("Make all Sub-to-dos &Independent"), this,
- TQT_SIGNAL( unAllSubTodoSignal() ), 0, ePopupUnAllSubTodo );
+ TQ_SIGNAL( unAllSubTodoSignal() ), 0, ePopupUnAllSubTodo );
mItemPopupMenu->insertSeparator();
mItemPopupMenu->insertItem( i18n("&Copy To"), mCopyPopupMenu, ePopupCopyTo );
mItemPopupMenu->insertItem(i18n("&Move To"), mMovePopupMenu, ePopupMoveTo );
mItemPopupMenu->insertSeparator();
mItemPopupMenu->insertItem(i18n("delete completed to-dos","Pur&ge Completed"),
- this, TQT_SLOT( purgeCompleted() ) );
+ this, TQ_SLOT( purgeCompleted() ) );
- connect( mMovePopupMenu, TQT_SIGNAL( dateChanged( TQDate ) ),
- mItemPopupMenu, TQT_SLOT( hide() ) );
- connect( mCopyPopupMenu, TQT_SIGNAL( dateChanged( TQDate ) ),
- mItemPopupMenu, TQT_SLOT( hide() ) );
+ connect( mMovePopupMenu, TQ_SIGNAL( dateChanged( TQDate ) ),
+ mItemPopupMenu, TQ_SLOT( hide() ) );
+ connect( mCopyPopupMenu, TQ_SIGNAL( dateChanged( TQDate ) ),
+ mItemPopupMenu, TQ_SLOT( hide() ) );
mPopupMenu = new TQPopupMenu(this);
mPopupMenu->insertItem(KOGlobals::self()->smallIconSet("todo"), i18n("&New To-do..."), this,
- TQT_SLOT(newTodo()) );
+ TQ_SLOT(newTodo()) );
mPopupMenu->insertItem(i18n("delete completed to-dos","&Purge Completed"),
- this, TQT_SLOT(purgeCompleted()));
+ this, TQ_SLOT(purgeCompleted()));
mDocPrefs = new DocPrefs( name );
// Double clicking conflicts with opening/closing the subtree
- connect( mTodoListView, TQT_SIGNAL( doubleClicked( TQListViewItem *,
+ connect( mTodoListView, TQ_SIGNAL( doubleClicked( TQListViewItem *,
const TQPoint &, int ) ),
- TQT_SLOT( editItem( TQListViewItem *, const TQPoint &, int ) ) );
- connect( mTodoListView, TQT_SIGNAL( returnPressed( TQListViewItem * ) ),
- TQT_SLOT( editItem( TQListViewItem * ) ) );
- connect( mTodoListView, TQT_SIGNAL( contextMenuRequested( TQListViewItem *,
+ TQ_SLOT( editItem( TQListViewItem *, const TQPoint &, int ) ) );
+ connect( mTodoListView, TQ_SIGNAL( returnPressed( TQListViewItem * ) ),
+ TQ_SLOT( editItem( TQListViewItem * ) ) );
+ connect( mTodoListView, TQ_SIGNAL( contextMenuRequested( TQListViewItem *,
const TQPoint &, int ) ),
- TQT_SLOT( popupMenu( TQListViewItem *, const TQPoint &, int ) ) );
- connect( mTodoListView, TQT_SIGNAL( expanded( TQListViewItem * ) ),
- TQT_SLOT( itemStateChanged( TQListViewItem * ) ) );
- connect( mTodoListView, TQT_SIGNAL( collapsed( TQListViewItem * ) ),
- TQT_SLOT( itemStateChanged( TQListViewItem * ) ) );
+ TQ_SLOT( popupMenu( TQListViewItem *, const TQPoint &, int ) ) );
+ connect( mTodoListView, TQ_SIGNAL( expanded( TQListViewItem * ) ),
+ TQ_SLOT( itemStateChanged( TQListViewItem * ) ) );
+ connect( mTodoListView, TQ_SIGNAL( collapsed( TQListViewItem * ) ),
+ TQ_SLOT( itemStateChanged( TQListViewItem * ) ) );
#if 0
- connect(mTodoListView,TQT_SIGNAL(selectionChanged(TQListViewItem *)),
- TQT_SLOT(selectionChanged(TQListViewItem *)));
- connect(mTodoListView,TQT_SIGNAL(clicked(TQListViewItem *)),
- TQT_SLOT(selectionChanged(TQListViewItem *)));
- connect(mTodoListView,TQT_SIGNAL(pressed(TQListViewItem *)),
- TQT_SLOT(selectionChanged(TQListViewItem *)));
+ connect(mTodoListView,TQ_SIGNAL(selectionChanged(TQListViewItem *)),
+ TQ_SLOT(selectionChanged(TQListViewItem *)));
+ connect(mTodoListView,TQ_SIGNAL(clicked(TQListViewItem *)),
+ TQ_SLOT(selectionChanged(TQListViewItem *)));
+ connect(mTodoListView,TQ_SIGNAL(pressed(TQListViewItem *)),
+ TQ_SLOT(selectionChanged(TQListViewItem *)));
#endif
- connect( mTodoListView, TQT_SIGNAL(selectionChanged() ),
- TQT_SLOT( processSelectionChange() ) );
- connect( mQuickAdd, TQT_SIGNAL( returnPressed () ),
- TQT_SLOT( addQuickTodo() ) );
+ connect( mTodoListView, TQ_SIGNAL(selectionChanged() ),
+ TQ_SLOT( processSelectionChange() ) );
+ connect( mQuickAdd, TQ_SIGNAL( returnPressed () ),
+ TQ_SLOT( addQuickTodo() ) );
new KOTodoListViewToolTip( mTodoListView->viewport(), calendar, mTodoListView );
}
@@ -648,7 +648,7 @@ bool KOTodoView::scheduleRemoveTodoItem( KOTodoViewItem *todoItem )
{
if ( todoItem ) {
mItemsToDelete.append( todoItem );
- TQTimer::singleShot( 0, this, TQT_SLOT( removeTodoItems() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( removeTodoItems() ) );
return true;
} else
return false;
@@ -731,13 +731,13 @@ void KOTodoView::changeIncidenceDisplay(Incidence *incidence, int action)
}
break;
default:
- TQTimer::singleShot( 0, this, TQT_SLOT( updateView() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( updateView() ) );
}
} else {
// use a TQTimer here, because when marking todos finished using
// the checkbox, this slot gets called, but we cannot update the views
// because we're still inside KOTodoViewItem::stateChange
- TQTimer::singleShot(0,this,TQT_SLOT(updateView()));
+ TQTimer::singleShot(0,this,TQ_SLOT(updateView()));
}
}
@@ -857,7 +857,7 @@ void KOTodoView::printTodo()
#ifndef KORG_NOPRINTER
KOCoreHelper helper;
CalPrinter printer( this, BaseView::calendar(), &helper );
- connect( this, TQT_SIGNAL(configChanged()), &printer, TQT_SLOT(updateConfig()) );
+ connect( this, TQ_SIGNAL(configChanged()), &printer, TQ_SLOT(updateConfig()) );
Incidence::List selectedIncidences;
selectedIncidences.append( mActiveItem->todo() );
@@ -1015,8 +1015,8 @@ TQPopupMenu *KOTodoView::getCategoryPopupMenu( KOTodoViewItem *todoItem )
tempMenu->setItemChecked( index, true );
}
- connect ( tempMenu, TQT_SIGNAL( activated( int ) ),
- TQT_SLOT( changedCategories( int ) ) );
+ connect ( tempMenu, TQ_SIGNAL( activated( int ) ),
+ TQ_SLOT( changedCategories( int ) ) );
return tempMenu;
}
@@ -1065,9 +1065,9 @@ void KOTodoView::itemStateChanged( TQListViewItem *item )
void KOTodoView::setNewPercentageDelayed( KOTodoViewItem *item, int percentage )
{
- mPercentChangedMap.append( tqMakePair( item, percentage ) );
+ mPercentChangedMap.append( qMakePair( item, percentage ) );
- TQTimer::singleShot( 0, this, TQT_SLOT( processDelayedNewPercentage() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( processDelayedNewPercentage() ) );
}
void KOTodoView::processDelayedNewPercentage()
diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h
index 662f6b13..e8204c74 100644
--- a/korganizer/kotodoview.h
+++ b/korganizer/kotodoview.h
@@ -71,7 +71,7 @@ class KOTodoListViewToolTip : public TQToolTip
class KOTodoListView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOTodoListView( TQWidget *parent = 0, const char *name = 0 );
@@ -112,7 +112,7 @@ class KOTodoListView : public TDEListView
*/
class KOTodoView : public KOrg::BaseView
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOTodoView( Calendar *cal, TQWidget *parent = 0, const char *name = 0 );
diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp
index 2ee92b12..b983d953 100644
--- a/korganizer/koviewmanager.cpp
+++ b/korganizer/koviewmanager.cpp
@@ -225,60 +225,60 @@ void KOViewManager::connectView(KOrg::BaseView *view)
if (!view) return;
// selecting an incidence
- connect( view, TQT_SIGNAL( incidenceSelected( Incidence *,const TQDate & ) ),
- mMainView, TQT_SLOT( processMainViewSelection( Incidence *,const TQDate & ) ) );
+ connect( view, TQ_SIGNAL( incidenceSelected( Incidence *,const TQDate & ) ),
+ mMainView, TQ_SLOT( processMainViewSelection( Incidence *,const TQDate & ) ) );
// showing/editing/deleting an incidence. The calendar view takes care of the action.
- connect( view, TQT_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)),
- mMainView, TQT_SLOT(showIncidence(Incidence *,const TQDate &)) );
- connect( view, TQT_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)),
- mMainView, TQT_SLOT(editIncidence(Incidence *,const TQDate &)) );
- connect( view, TQT_SIGNAL(deleteIncidenceSignal(Incidence *)),
- mMainView, TQT_SLOT(deleteIncidence(Incidence *)) );
- connect( view, TQT_SIGNAL(copyIncidenceSignal(Incidence *)),
- mMainView, TQT_SLOT(copyIncidence(Incidence *)) );
- connect( view, TQT_SIGNAL(cutIncidenceSignal(Incidence *)),
- mMainView, TQT_SLOT(cutIncidence(Incidence *)) );
- connect( view, TQT_SIGNAL(pasteIncidenceSignal()),
- mMainView, TQT_SLOT(pasteIncidence()));
- connect( view, TQT_SIGNAL(toggleAlarmSignal(Incidence *)),
- mMainView, TQT_SLOT(toggleAlarm(Incidence *)) );
- connect( view,TQT_SIGNAL(dissociateOccurrenceSignal(Incidence *,const TQDate &)),
- mMainView, TQT_SLOT(dissociateOccurrence(Incidence *,const TQDate &)) );
- connect( view,TQT_SIGNAL(dissociateFutureOccurrenceSignal(Incidence *,const TQDate &)),
- mMainView, TQT_SLOT(dissociateFutureOccurrence(Incidence *,const TQDate &)) );
+ connect( view, TQ_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)),
+ mMainView, TQ_SLOT(showIncidence(Incidence *,const TQDate &)) );
+ connect( view, TQ_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)),
+ mMainView, TQ_SLOT(editIncidence(Incidence *,const TQDate &)) );
+ connect( view, TQ_SIGNAL(deleteIncidenceSignal(Incidence *)),
+ mMainView, TQ_SLOT(deleteIncidence(Incidence *)) );
+ connect( view, TQ_SIGNAL(copyIncidenceSignal(Incidence *)),
+ mMainView, TQ_SLOT(copyIncidence(Incidence *)) );
+ connect( view, TQ_SIGNAL(cutIncidenceSignal(Incidence *)),
+ mMainView, TQ_SLOT(cutIncidence(Incidence *)) );
+ connect( view, TQ_SIGNAL(pasteIncidenceSignal()),
+ mMainView, TQ_SLOT(pasteIncidence()));
+ connect( view, TQ_SIGNAL(toggleAlarmSignal(Incidence *)),
+ mMainView, TQ_SLOT(toggleAlarm(Incidence *)) );
+ connect( view,TQ_SIGNAL(dissociateOccurrenceSignal(Incidence *,const TQDate &)),
+ mMainView, TQ_SLOT(dissociateOccurrence(Incidence *,const TQDate &)) );
+ connect( view,TQ_SIGNAL(dissociateFutureOccurrenceSignal(Incidence *,const TQDate &)),
+ mMainView, TQ_SLOT(dissociateFutureOccurrence(Incidence *,const TQDate &)) );
// signals to create new incidences
- connect( view, TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &)),
- mMainView, TQT_SLOT(newEvent(ResourceCalendar *,const TQString &)) );
- connect( view, TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDate &)),
- mMainView, TQT_SLOT(newEvent(ResourceCalendar *,const TQString &,const TQDate &)) );
- connect( view, TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDateTime &)),
- mMainView, TQT_SLOT(newEvent(ResourceCalendar *,const TQString &,const TQDateTime &)) );
- connect( view, TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDateTime &,const TQDateTime &)),
- mMainView, TQT_SLOT(newEvent(ResourceCalendar *,const TQString &,const TQDateTime &,const TQDateTime &)) );
-
- connect( view, TQT_SIGNAL(newTodoSignal(ResourceCalendar *,const TQString &,const TQDate &)),
- mMainView, TQT_SLOT(newTodo(ResourceCalendar *,const TQString &,const TQDate &)) );
- connect( view, TQT_SIGNAL(newSubTodoSignal(Todo *)),
- mMainView, TQT_SLOT(newSubTodo(Todo *)) );
-
- connect( view, TQT_SIGNAL(newJournalSignal(ResourceCalendar *,const TQString &,const TQDate &)),
- mMainView, TQT_SLOT(newJournal(ResourceCalendar *,const TQString &,const TQDate &)) );
+ connect( view, TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &)),
+ mMainView, TQ_SLOT(newEvent(ResourceCalendar *,const TQString &)) );
+ connect( view, TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDate &)),
+ mMainView, TQ_SLOT(newEvent(ResourceCalendar *,const TQString &,const TQDate &)) );
+ connect( view, TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDateTime &)),
+ mMainView, TQ_SLOT(newEvent(ResourceCalendar *,const TQString &,const TQDateTime &)) );
+ connect( view, TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDateTime &,const TQDateTime &)),
+ mMainView, TQ_SLOT(newEvent(ResourceCalendar *,const TQString &,const TQDateTime &,const TQDateTime &)) );
+
+ connect( view, TQ_SIGNAL(newTodoSignal(ResourceCalendar *,const TQString &,const TQDate &)),
+ mMainView, TQ_SLOT(newTodo(ResourceCalendar *,const TQString &,const TQDate &)) );
+ connect( view, TQ_SIGNAL(newSubTodoSignal(Todo *)),
+ mMainView, TQ_SLOT(newSubTodo(Todo *)) );
+
+ connect( view, TQ_SIGNAL(newJournalSignal(ResourceCalendar *,const TQString &,const TQDate &)),
+ mMainView, TQ_SLOT(newJournal(ResourceCalendar *,const TQString &,const TQDate &)) );
// reload settings
- connect(mMainView, TQT_SIGNAL(configChanged()), view, TQT_SLOT(updateConfig()));
+ connect(mMainView, TQ_SIGNAL(configChanged()), view, TQ_SLOT(updateConfig()));
// Notifications about added, changed and deleted incidences
- connect( mMainView, TQT_SIGNAL( dayPassed( const TQDate & ) ),
- view, TQT_SLOT( dayPassed( const TQDate & ) ) );
- connect( view, TQT_SIGNAL( startMultiModify( const TQString & ) ),
- mMainView, TQT_SLOT( startMultiModify( const TQString & ) ) );
- connect( view, TQT_SIGNAL( endMultiModify() ),
- mMainView, TQT_SLOT( endMultiModify() ) );
-
- connect( mMainView, TQT_SIGNAL( newIncidenceChanger( IncidenceChangerBase* ) ),
- view, TQT_SLOT( setIncidenceChanger( IncidenceChangerBase * ) ) );
+ connect( mMainView, TQ_SIGNAL( dayPassed( const TQDate & ) ),
+ view, TQ_SLOT( dayPassed( const TQDate & ) ) );
+ connect( view, TQ_SIGNAL( startMultiModify( const TQString & ) ),
+ mMainView, TQ_SLOT( startMultiModify( const TQString & ) ) );
+ connect( view, TQ_SIGNAL( endMultiModify() ),
+ mMainView, TQ_SLOT( endMultiModify() ) );
+
+ connect( mMainView, TQ_SIGNAL( newIncidenceChanger( IncidenceChangerBase* ) ),
+ view, TQ_SLOT( setIncidenceChanger( IncidenceChangerBase * ) ) );
view->setIncidenceChanger( mMainView->incidenceChanger() );
}
@@ -287,12 +287,12 @@ void KOViewManager::connectTodoView( KOTodoView* todoView )
if (!todoView) return;
// SIGNALS/SLOTS FOR TODO VIEW
- connect( todoView, TQT_SIGNAL( purgeCompletedSignal() ),
- mMainView, TQT_SLOT( purgeCompleted() ) );
- connect( todoView, TQT_SIGNAL( unSubTodoSignal() ),
- mMainView, TQT_SLOT( todo_unsub() ) );
- connect( todoView, TQT_SIGNAL( unAllSubTodoSignal() ),
- mMainView, TQT_SLOT( makeSubTodosIndependent() ) );
+ connect( todoView, TQ_SIGNAL( purgeCompletedSignal() ),
+ mMainView, TQ_SLOT( purgeCompleted() ) );
+ connect( todoView, TQ_SIGNAL( unSubTodoSignal() ),
+ mMainView, TQ_SLOT( todo_unsub() ) );
+ connect( todoView, TQ_SIGNAL( unAllSubTodoSignal() ),
+ mMainView, TQ_SLOT( makeSubTodosIndependent() ) );
}
void KOViewManager::zoomInHorizontally()
@@ -357,8 +357,8 @@ void KOViewManager::showAgendaView()
TQWidget *parent = mMainView->viewStack();
if ( !mAgendaViewTabs && showBoth ) {
mAgendaViewTabs = new TQTabWidget( mMainView->viewStack() );
- connect( mAgendaViewTabs, TQT_SIGNAL( currentChanged( TQWidget* ) ),
- this, TQT_SLOT( currentAgendaViewTabChanged( TQWidget* ) ) );
+ connect( mAgendaViewTabs, TQ_SIGNAL( currentChanged( TQWidget* ) ),
+ this, TQ_SLOT( currentAgendaViewTabChanged( TQWidget* ) ) );
parent = mAgendaViewTabs;
TDEConfig *config = KOGlobals::self()->config();
@@ -374,13 +374,13 @@ void KOViewManager::showAgendaView()
addView(mAgendaView);
- connect(mAgendaView, TQT_SIGNAL( toggleExpand() ),
- mMainView, TQT_SLOT( toggleExpand() ) );
- connect(mMainView, TQT_SIGNAL( calendarViewExpanded( bool ) ),
- mAgendaView, TQT_SLOT( setExpandedButton( bool ) ) );
+ connect(mAgendaView, TQ_SIGNAL( toggleExpand() ),
+ mMainView, TQ_SLOT( toggleExpand() ) );
+ connect(mMainView, TQ_SIGNAL( calendarViewExpanded( bool ) ),
+ mAgendaView, TQ_SLOT( setExpandedButton( bool ) ) );
- connect( mAgendaView,TQT_SIGNAL( zoomViewHorizontally(const TQDate &, int )),
- mMainView->dateNavigator(),TQT_SLOT( selectDates( const TQDate &, int ) ) );
+ connect( mAgendaView,TQ_SIGNAL( zoomViewHorizontally(const TQDate &, int )),
+ mMainView->dateNavigator(),TQ_SLOT( selectDates( const TQDate &, int ) ) );
mAgendaView->readSettings();
}
@@ -391,13 +391,13 @@ void KOViewManager::showAgendaView()
addView(mAgendaSideBySideView);
-/* connect(mAgendaSideBySideView, TQT_SIGNAL( toggleExpand() ),
- mMainView, TQT_SLOT( toggleExpand() ) );
- connect(mMainView, TQT_SIGNAL( calendarViewExpanded( bool ) ),
- mAgendaSideBySideView, TQT_SLOT( setExpandedButton( bool ) ) );
+/* connect(mAgendaSideBySideView, TQ_SIGNAL( toggleExpand() ),
+ mMainView, TQ_SLOT( toggleExpand() ) );
+ connect(mMainView, TQ_SIGNAL( calendarViewExpanded( bool ) ),
+ mAgendaSideBySideView, TQ_SLOT( setExpandedButton( bool ) ) );
- connect( mAgendaSideBySideView,TQT_SIGNAL( zoomViewHorizontally(const TQDate &, int )),
- mMainView->dateNavigator(),TQT_SLOT( selectDates( const TQDate &, int ) ) );*/
+ connect( mAgendaSideBySideView,TQ_SIGNAL( zoomViewHorizontally(const TQDate &, int )),
+ mMainView->dateNavigator(),TQ_SLOT( selectDates( const TQDate &, int ) ) );*/
}
if ( showBoth && mAgendaViewTabs ) {
diff --git a/korganizer/koviewmanager.h b/korganizer/koviewmanager.h
index fe41d5bb..93858fae 100644
--- a/korganizer/koviewmanager.h
+++ b/korganizer/koviewmanager.h
@@ -51,7 +51,7 @@ using namespace KCal;
*/
class KOViewManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/korganizer/kowhatsnextview.cpp b/korganizer/kowhatsnextview.cpp
index 7b8ab992..7c8ce447 100644
--- a/korganizer/kowhatsnextview.cpp
+++ b/korganizer/kowhatsnextview.cpp
@@ -70,7 +70,7 @@ KOWhatsNextView::KOWhatsNextView(Calendar *calendar, TQWidget *parent,
// dateLabel->setAlignment(AlignCenter);
mView = new WhatsNextTextBrowser(this);
- connect(mView,TQT_SIGNAL(showIncidence(const TQString &)),TQT_SLOT(showIncidence(const TQString &)));
+ connect(mView,TQ_SIGNAL(showIncidence(const TQString &)),TQ_SLOT(showIncidence(const TQString &)));
TQBoxLayout *topLayout = new TQVBoxLayout(this);
// topLayout->addWidget(dateLabel);
diff --git a/korganizer/kowhatsnextview.h b/korganizer/kowhatsnextview.h
index 22c55f5d..126a7055 100644
--- a/korganizer/kowhatsnextview.h
+++ b/korganizer/kowhatsnextview.h
@@ -33,7 +33,7 @@ class TQListView;
class KOEventViewerDialog;
class WhatsNextTextBrowser : public TQTextBrowser {
- Q_OBJECT
+ TQ_OBJECT
public:
WhatsNextTextBrowser(TQWidget *parent) : TQTextBrowser(parent) {}
@@ -50,7 +50,7 @@ class WhatsNextTextBrowser : public TQTextBrowser {
*/
class KOWhatsNextView : public KOrg::BaseView
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOWhatsNextView(Calendar *calendar, TQWidget *parent = 0,
diff --git a/korganizer/kowindowlist.h b/korganizer/kowindowlist.h
index 69523160..fa307b8b 100644
--- a/korganizer/kowindowlist.h
+++ b/korganizer/kowindowlist.h
@@ -42,7 +42,7 @@ class KURL;
*/
class KOWindowList : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/korganizer/multiagendaview.cpp b/korganizer/multiagendaview.cpp
index 7cbd42eb..e900fa48 100644
--- a/korganizer/multiagendaview.cpp
+++ b/korganizer/multiagendaview.cpp
@@ -57,7 +57,7 @@ MultiAgendaView::MultiAgendaView( Calendar * cal, CalendarView *calendarView,
TQVBox *topSideBox = new TQVBox( this );
mLeftTopSpacer = new TQWidget( topSideBox );
mLeftTopSpacer->setFixedHeight( topLabelHeight );
- mLeftSplitter = new TQSplitter( Qt::Vertical, topSideBox );
+ mLeftSplitter = new TQSplitter( TQt::Vertical, topSideBox );
mLeftSplitter->setOpaqueResize( TDEGlobalSettings::opaqueResize() );
TQLabel *label = new TQLabel( i18n("All Day"), mLeftSplitter );
label->setAlignment( TQt::AlignRight | TQt::AlignVCenter | TQt::WordBreak );
@@ -81,14 +81,14 @@ MultiAgendaView::MultiAgendaView( Calendar * cal, CalendarView *calendarView,
topSideBox = new TQVBox( this );
mRightTopSpacer = new TQWidget( topSideBox );
mRightTopSpacer->setFixedHeight( topLabelHeight );
- mRightSplitter = new TQSplitter( Qt::Vertical, topSideBox );
+ mRightSplitter = new TQSplitter( TQt::Vertical, topSideBox );
mRightSplitter->setOpaqueResize( TDEGlobalSettings::opaqueResize() );
new TQWidget( mRightSplitter );
sideBox = new TQVBox( mRightSplitter );
eiSpacer = new EventIndicator( EventIndicator::Top, sideBox );
eiSpacer->setFixedHeight( eiSpacer->minimumHeight() );
eiSpacer->changeColumns( 0 );
- mScrollBar = new TQScrollBar( Qt::Vertical, sideBox );
+ mScrollBar = new TQScrollBar( TQt::Vertical, sideBox );
eiSpacer = new EventIndicator( EventIndicator::Bottom, sideBox );
eiSpacer->setFixedHeight( eiSpacer->minimumHeight() );
eiSpacer->changeColumns( 0 );
@@ -142,13 +142,13 @@ void MultiAgendaView::recreateViews()
}
setupViews();
- TQTimer::singleShot( 0, this, TQT_SLOT(slotResizeScrollView()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(slotResizeScrollView()) );
mTimeLabels->updateConfig();
- connect( mTimeLabels->verticalScrollBar(), TQT_SIGNAL(valueChanged(int)),
- mScrollBar, TQT_SLOT(setValue(int)) );
- connect( mScrollBar, TQT_SIGNAL(valueChanged(int)),
- mTimeLabels, TQT_SLOT(positionChanged(int)) );
+ connect( mTimeLabels->verticalScrollBar(), TQ_SIGNAL(valueChanged(int)),
+ mScrollBar, TQ_SLOT(setValue(int)) );
+ connect( mScrollBar, TQ_SIGNAL(valueChanged(int)),
+ mTimeLabels, TQ_SLOT(positionChanged(int)) );
installSplitterEventFilter( mLeftSplitter );
installSplitterEventFilter( mRightSplitter );
@@ -163,7 +163,7 @@ void MultiAgendaView::recreateViews()
mLeftSplitter->setSizes( sizes );
mRightSplitter->setSizes( sizes );
- TQTimer::singleShot( 0, this, TQT_SLOT(setupScrollBar()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(setupScrollBar()) );
mTimeLabels->positionChanged();
}
@@ -185,79 +185,79 @@ void MultiAgendaView::setupViews()
FOREACH_VIEW( agenda ) {
if ( !agenda->readOnly() ) {
connect( agenda,
- TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &)),
- TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &)) );
+ TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &)),
+ TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &)) );
connect( agenda,
- TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDate &)),
- TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDate &)) );
+ TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDate &)),
+ TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDate &)) );
connect( agenda,
- TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDateTime &)),
- TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDateTime &)) );
+ TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDateTime &)),
+ TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDateTime &)) );
connect( agenda,
- TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDateTime &,const TQDateTime &)),
- TQT_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDateTime &,const TQDateTime&)) );
+ TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDateTime &,const TQDateTime &)),
+ TQ_SIGNAL(newEventSignal(ResourceCalendar *,const TQString &,const TQDateTime &,const TQDateTime&)) );
connect( agenda,
- TQT_SIGNAL(newTodoSignal(ResourceCalendar *,const TQString &,const TQDate &)),
- TQT_SIGNAL(newTodoSignal(ResourceCalendar *,const TQString &,const TQDate &)) );
+ TQ_SIGNAL(newTodoSignal(ResourceCalendar *,const TQString &,const TQDate &)),
+ TQ_SIGNAL(newTodoSignal(ResourceCalendar *,const TQString &,const TQDate &)) );
connect( agenda,
- TQT_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)),
- TQT_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)) );
+ TQ_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)),
+ TQ_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)) );
connect( agenda,
- TQT_SIGNAL(deleteIncidenceSignal(Incidence *)),
- TQT_SIGNAL(deleteIncidenceSignal(Incidence *)) );
+ TQ_SIGNAL(deleteIncidenceSignal(Incidence *)),
+ TQ_SIGNAL(deleteIncidenceSignal(Incidence *)) );
connect( agenda,
- TQT_SIGNAL(startMultiModify(const TQString &)),
- TQT_SIGNAL(startMultiModify(const TQString &)) );
+ TQ_SIGNAL(startMultiModify(const TQString &)),
+ TQ_SIGNAL(startMultiModify(const TQString &)) );
connect( agenda,
- TQT_SIGNAL(endMultiModify()),
- TQT_SIGNAL(endMultiModify()) );
+ TQ_SIGNAL(endMultiModify()),
+ TQ_SIGNAL(endMultiModify()) );
connect( agenda,
- TQT_SIGNAL(cutIncidenceSignal(Incidence*)),
- TQT_SIGNAL(cutIncidenceSignal(Incidence*)) );
+ TQ_SIGNAL(cutIncidenceSignal(Incidence*)),
+ TQ_SIGNAL(cutIncidenceSignal(Incidence*)) );
connect( agenda,
- TQT_SIGNAL(pasteIncidenceSignal()),
- TQT_SIGNAL(pasteIncidenceSignal()) );
+ TQ_SIGNAL(pasteIncidenceSignal()),
+ TQ_SIGNAL(pasteIncidenceSignal()) );
connect( agenda,
- TQT_SIGNAL(toggleAlarmSignal(Incidence*)),
- TQT_SIGNAL(toggleAlarmSignal(Incidence*)) );
+ TQ_SIGNAL(toggleAlarmSignal(Incidence*)),
+ TQ_SIGNAL(toggleAlarmSignal(Incidence*)) );
connect( agenda,
- TQT_SIGNAL(dissociateOccurrenceSignal(Incidence*, const TQDate&)),
- TQT_SIGNAL(dissociateOccurrenceSignal(Incidence*, const TQDate&)) );
+ TQ_SIGNAL(dissociateOccurrenceSignal(Incidence*, const TQDate&)),
+ TQ_SIGNAL(dissociateOccurrenceSignal(Incidence*, const TQDate&)) );
connect( agenda,
- TQT_SIGNAL(dissociateFutureOccurrenceSignal(Incidence*, const TQDate&)),
- TQT_SIGNAL(dissociateFutureOccurrenceSignal(Incidence*, const TQDate&)) );
+ TQ_SIGNAL(dissociateFutureOccurrenceSignal(Incidence*, const TQDate&)),
+ TQ_SIGNAL(dissociateFutureOccurrenceSignal(Incidence*, const TQDate&)) );
}
connect( agenda,
- TQT_SIGNAL(copyIncidenceSignal(Incidence*)),
- TQT_SIGNAL(copyIncidenceSignal(Incidence*)) );
+ TQ_SIGNAL(copyIncidenceSignal(Incidence*)),
+ TQ_SIGNAL(copyIncidenceSignal(Incidence*)) );
connect( agenda,
- TQT_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)),
- TQT_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)) );
+ TQ_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)),
+ TQ_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)) );
connect( agenda,
- TQT_SIGNAL(incidenceSelected(Incidence *,const TQDate &)),
- TQT_SIGNAL(incidenceSelected(Incidence *,const TQDate &)) );
+ TQ_SIGNAL(incidenceSelected(Incidence *,const TQDate &)),
+ TQ_SIGNAL(incidenceSelected(Incidence *,const TQDate &)) );
connect( agenda,
- TQT_SIGNAL(incidenceSelected(Incidence*,const TQDate &)),
- TQT_SLOT(slotSelectionChanged()) );
+ TQ_SIGNAL(incidenceSelected(Incidence*,const TQDate &)),
+ TQ_SLOT(slotSelectionChanged()) );
connect( agenda,
- TQT_SIGNAL(timeSpanSelectionChanged()),
- TQT_SLOT(slotClearTimeSpanSelection()) );
+ TQ_SIGNAL(timeSpanSelectionChanged()),
+ TQ_SLOT(slotClearTimeSpanSelection()) );
disconnect( agenda->agenda(),
- TQT_SIGNAL(zoomView(const int,const TQPoint&,const Qt::Orientation)),
+ TQ_SIGNAL(zoomView(const int,const TQPoint&,const TQt::Orientation)),
agenda, 0 );
connect( agenda->agenda(),
- TQT_SIGNAL(zoomView(const int,const TQPoint&,const Qt::Orientation)),
- TQT_SLOT(zoomView(const int,const TQPoint&,const Qt::Orientation)) );
+ TQ_SIGNAL(zoomView(const int,const TQPoint&,const TQt::Orientation)),
+ TQ_SLOT(zoomView(const int,const TQPoint&,const TQt::Orientation)) );
}
KOAgenda *anAgenda = mAgendaViews.first()->agenda();
- connect( anAgenda, TQT_SIGNAL(lowerYChanged(int) ), TQT_SLOT(resizeSpacers(int)) );
+ connect( anAgenda, TQ_SIGNAL(lowerYChanged(int) ), TQ_SLOT(resizeSpacers(int)) );
FOREACH_VIEW( agenda ) {
agenda->readSettings();
@@ -409,10 +409,10 @@ void MultiAgendaView::addView( const TQString &label, ResourceCalendar *res, con
box->show();
mTimeLabels->setAgenda( av->agenda() );
- connect( av->agenda()->verticalScrollBar(), TQT_SIGNAL(valueChanged(int)),
- mTimeLabels, TQT_SLOT(positionChanged(int)) );
- connect( mTimeLabels->verticalScrollBar(), TQT_SIGNAL(valueChanged(int)),
- av, TQT_SLOT(setContentsPos(int)) );
+ connect( av->agenda()->verticalScrollBar(), TQ_SIGNAL(valueChanged(int)),
+ mTimeLabels, TQ_SLOT(positionChanged(int)) );
+ connect( mTimeLabels->verticalScrollBar(), TQ_SIGNAL(valueChanged(int)),
+ av, TQ_SLOT(setContentsPos(int)) );
av->installEventFilter( this );
installSplitterEventFilter( av->splitter() );
@@ -459,19 +459,19 @@ void MultiAgendaView::updateConfig()
bool MultiAgendaView::eventFilter(TQObject * obj, TQEvent * event)
{
- if ( obj->className() == TQCString(TQSPLITTERHANDLE_OBJECT_NAME_STRING) ) {
+ if ( obj->className() == TQCString("TQSplitterHandle") ) {
// KDE4: not needed anymore, TQSplitter has a moved signal there
if ( (event->type() == TQEvent::MouseMove && TDEGlobalSettings::opaqueResize())
|| event->type() == TQEvent::MouseButtonRelease ) {
FOREACH_VIEW( agenda ) {
- if ( TQT_BASE_OBJECT(agenda->splitter()) == TQT_BASE_OBJECT(obj->parent()) )
+ if ( agenda->splitter() == obj->parent() )
mLastMovedSplitter = agenda->splitter();
}
- if ( TQT_BASE_OBJECT(mLeftSplitter )== TQT_BASE_OBJECT(obj->parent()) )
+ if ( mLeftSplitter == obj->parent() )
mLastMovedSplitter = mLeftSplitter;
- else if ( TQT_BASE_OBJECT(mRightSplitter) == TQT_BASE_OBJECT(obj->parent()) )
+ else if ( mRightSplitter == obj->parent() )
mLastMovedSplitter = mRightSplitter;
- TQTimer::singleShot( 0, this, TQT_SLOT(resizeSplitters()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(resizeSplitters()) );
}
}
@@ -520,9 +520,9 @@ void MultiAgendaView::resizeSpacers( int newY )
mRightTopSpacer->setFixedHeight( topLabelHeight );
}
-void MultiAgendaView::zoomView( const int delta, const TQPoint & pos, const Qt::Orientation ori )
+void MultiAgendaView::zoomView( const int delta, const TQPoint & pos, const TQt::Orientation ori )
{
- if ( ori == Qt::Vertical ) {
+ if ( ori == TQt::Vertical ) {
if ( delta > 0 ) {
if ( KOPrefs::instance()->mHourSize > 4 )
KOPrefs::instance()->mHourSize--;
@@ -542,7 +542,7 @@ void MultiAgendaView::zoomView( const int delta, const TQPoint & pos, const Qt::
// KDE4: not needed, use existing TQSplitter signals instead
void MultiAgendaView::installSplitterEventFilter(TQSplitter * splitter)
{
- TQObjectList *objlist = splitter->queryList( TQSPLITTERHANDLE_OBJECT_NAME_STRING );
+ TQObjectList *objlist = splitter->queryList( "TQSplitterHandle" );
// HACK: when not being visible, the splitter handle is sometimes not found
// for unknown reasons, so trigger an update when we are shown again
if ( objlist->count() == 0 && !isVisible() )
diff --git a/korganizer/multiagendaview.h b/korganizer/multiagendaview.h
index f3e22754..a3dba886 100644
--- a/korganizer/multiagendaview.h
+++ b/korganizer/multiagendaview.h
@@ -40,7 +40,7 @@ namespace KOrg {
*/
class MultiAgendaView : public AgendaView
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit MultiAgendaView( Calendar* cal, CalendarView *calendarView,
@@ -91,7 +91,7 @@ class MultiAgendaView : public AgendaView
void resizeSplitters();
void resizeSpacers( int );
void setupScrollBar();
- void zoomView( const int delta, const TQPoint &pos, const Qt::Orientation ori );
+ void zoomView( const int delta, const TQPoint &pos, const TQt::Orientation ori );
void slotResizeScrollView();
private:
diff --git a/korganizer/navigatorbar.cpp b/korganizer/navigatorbar.cpp
index 223cbb98..23581036 100644
--- a/korganizer/navigatorbar.cpp
+++ b/korganizer/navigatorbar.cpp
@@ -118,12 +118,12 @@ NavigatorBar::NavigatorBar( TQWidget *parent, const char *name )
ctrlLayout->addWidget( mNextMonth );
ctrlLayout->addWidget( mNextYear );
- connect( mPrevYear, TQT_SIGNAL( clicked() ), TQT_SIGNAL( prevYearClicked() ) );
- connect( mPrevMonth, TQT_SIGNAL( clicked() ), TQT_SIGNAL( prevMonthClicked() ) );
- connect( mNextMonth, TQT_SIGNAL( clicked() ), TQT_SIGNAL( nextMonthClicked() ) );
- connect( mNextYear, TQT_SIGNAL( clicked() ), TQT_SIGNAL( nextYearClicked() ) );
- connect( mMonth, TQT_SIGNAL( clicked() ), TQT_SLOT( selectMonthFromMenu() ) );
- connect( mYear, TQT_SIGNAL( clicked() ), TQT_SLOT( selectYearFromMenu() ) );
+ connect( mPrevYear, TQ_SIGNAL( clicked() ), TQ_SIGNAL( prevYearClicked() ) );
+ connect( mPrevMonth, TQ_SIGNAL( clicked() ), TQ_SIGNAL( prevMonthClicked() ) );
+ connect( mNextMonth, TQ_SIGNAL( clicked() ), TQ_SIGNAL( nextMonthClicked() ) );
+ connect( mNextYear, TQ_SIGNAL( clicked() ), TQ_SIGNAL( nextYearClicked() ) );
+ connect( mMonth, TQ_SIGNAL( clicked() ), TQ_SLOT( selectMonthFromMenu() ) );
+ connect( mYear, TQ_SIGNAL( clicked() ), TQ_SLOT( selectYearFromMenu() ) );
}
NavigatorBar::~NavigatorBar()
diff --git a/korganizer/navigatorbar.h b/korganizer/navigatorbar.h
index 13d39716..fcff809f 100644
--- a/korganizer/navigatorbar.h
+++ b/korganizer/navigatorbar.h
@@ -33,7 +33,7 @@ class TQFrame;
class ActiveLabel : public TQLabel
{
- Q_OBJECT
+ TQ_OBJECT
public:
ActiveLabel( TQWidget *parent, const char *name = 0 );
@@ -48,7 +48,7 @@ class ActiveLabel : public TQLabel
class NavigatorBar: public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
NavigatorBar( TQWidget *parent = 0, const char *name = 0 );
diff --git a/korganizer/plugins/datenums/CMakeLists.txt b/korganizer/plugins/datenums/CMakeLists.txt
index c52d4c04..1ae3e8c1 100644
--- a/korganizer/plugins/datenums/CMakeLists.txt
+++ b/korganizer/plugins/datenums/CMakeLists.txt
@@ -25,7 +25,11 @@ link_directories(
##### other data ################################
-install( FILES datenums.desktop DESTINATION ${SERVICES_INSTALL_DIR}/korganizer )
+tde_create_translated_desktop(
+ SOURCE datenums.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/korganizer
+ PO_DIR korganizer-desktops
+)
##### libkorg_datenums (module) #################
diff --git a/korganizer/plugins/datenums/configdialog.h b/korganizer/plugins/datenums/configdialog.h
index d5e6a52c..9bc2bc87 100644
--- a/korganizer/plugins/datenums/configdialog.h
+++ b/korganizer/plugins/datenums/configdialog.h
@@ -25,7 +25,7 @@ class TQButtonGroup;
class ConfigDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
ConfigDialog(TQWidget *parent=0);
diff --git a/korganizer/plugins/datenums/datenums.desktop b/korganizer/plugins/datenums/datenums.desktop
index 32f15578..10ea1d49 100644
--- a/korganizer/plugins/datenums/datenums.desktop
+++ b/korganizer/plugins/datenums/datenums.desktop
@@ -1,96 +1,10 @@
[Desktop Entry]
X-TDE-Library=libkorg_datenums
+
Name=Date Numbers Plugin for Calendars
-Name[af]=Dag nommer inprop module vir kalenders
-Name[ar]=قابس أرقام التاريخ للتقويم
-Name[bg]=Приставка на календара за дати
-Name[bs]=Dodatak za kalendar - brojevi datuma
-Name[ca]=Endollable de números de data per als calendaris
-Name[cs]=Modul pro očíslování dat v kalendáři
-Name[da]=Datonumre-plugin for kalendere
-Name[de]=Kalendertag-Modul für Kalender
-Name[el]=Πρόσθετο αριθμού ημερών για Ημερολόγια
-Name[eo]=Datnumera kromaĵo por Kalendaro
-Name[es]=Accesorio de números de fecha para calendarios
-Name[et]=Kuupäeva nummerdamise plugin kalendritele
-Name[eu]=Egutegientzako data zenbakiak
-Name[fa]=وصلۀ عدد تاریخ برای تقویمها
-Name[fi]=Päivämääräliitännäinen kalentereihin
-Name[fr]=Module de numérotation des jours
-Name[fy]=Datumgetallenplugin foar aginda's
-Name[gl]=Engadido para Números dos Días nos Calendarios
-Name[he]=תוסף מספרי תאריכים ללוחות שנה
-Name[hu]=Dátumkezelő bővítőmodul naptárakhoz
-Name[is]=Íforrit fyrir númer dags á dagatali
-Name[it]=Plugin delle date per i calendari
-Name[ja]=日数表示カレンダープラグイン
-Name[kk]=Күнтізбедегі күн нөмірінің модулі
-Name[km]=កម្មវិធី​ជំនួយ​លេខ​កាលបរិច្ឆេទ​សម្រាប់​ប្រតិទិន
-Name[lt]=Datų numerių priedas kalendoriams
-Name[ms]=Plugin Bilangan Tarikh untuk Kalendar
-Name[nb]=Datonummer programtillegg for Kalender
-Name[nds]=Kalennerdag-Moduul för Kalenners
-Name[ne]=क्यालेन्डरका लागि मिति सङ्ख्या प्लगइन
-Name[nl]=Datumgetallenplugin voor agenda's
-Name[nn]=Datonummer programtillegg for Kalender
-Name[pl]=Wtyczka numerów dni dla Kalendarzy
-Name[pt]='plugin' de Números de Datas para Calendários
-Name[pt_BR]=Plugin-de Números e Datas para Calendários
-Name[ru]=Даты календаря
-Name[sk]=Modul dátumov pre kalendáre
-Name[sl]=Datumski vstavek za koledarje
-Name[sr]=Прикључак календара за бројеве датума
-Name[sr@Latn]=Priključak kalendara za brojeve datuma
-Name[sv]=Datuminsticksprogram för kalendrar
-Name[ta]=நாள்காட்டிகளுக்கான தேதி எண்களின் சொருகுப்பொருள்
-Name[tg]=Санаҳои тақвим
-Name[tr]=Takvimler için Tarih Rakamları Eklentisi
-Name[uk]=Втулок дат для календарів
-Name[zh_CN]=日历的日期数字插件
-Name[zh_TW]=行事曆日期數字外掛程式
+
Comment=For each day this plugin shows its daynumber of the year at the top of the agenda view. For example, February 1 is day 32 of the year.
-Comment[af]=Die inprop module vertoon die dag nommer van die jaar bo aan die agenda aansig. Bv: 1 Februarie is dag 32 van die jaar.
-Comment[bg]=Приставката служи за показване на деня от началото на годината. Примерно, 1-ви февруари е 32-ия ден от годината.
-Comment[ca]=Per cada dia, aquest endollable mostra el número de dia de l'any al capdamunt de la vista d'agenda. Per exemple, 1 de Febrer és el dia 32 de l'any.
-Comment[cs]=tento modul pro každý den zobrazuje pořadí dne v roce na vrcholu pohledu. Např. 1. únor je 32 druhý den v roce.
-Comment[da]=For hver dag viser dette plugin nummeret for dagen i året for oven i agendavisningen. For eksempel er 1. februar 1 is den 32. dag i året.
-Comment[de]=Für jeden Tag des Jahres wird mit diesem Modul der Kalendertag oben in der Tagesansicht angezeigt. Der 1. Februar ist beispielsweise der 32. Kalendertag des Jahres.
-Comment[el]=Για κάθε μέρα, αυτό το πρόσθετο εμφανίζει τον αύξοντα αριθμό της ημέρας του έτους στην προβολή προγράμματος εργασίας. Για παράδειγμα, η 1ι Φεβρουαρίου είναι η ημέρα 32 του έτους.
-Comment[es]=Para cada día, esta extensión mostrará el número del día en el año en la parte superior de la vista de la agenda. Por ejemplo, el 1 de febrero es el día número 32 del año.
-Comment[et]=See plugin näitab iga päevakavavaate ülaosas iga päeva järjekorranumbrit aastas. Näiteks 1. veebruar on aasta 32. päev.
-Comment[eu]=Egun bakoitzeko, plugin honek bere urteko egun-zenbakia erakutsiko du agenda ikuspegiaren goiko aldean. Adibidez, Otsailak 1 urtearen 32. eguna da.
-Comment[fa]=در هر روز، این وصله عدد مربوط به روز سال را در بالای نمای agenda نمایش می‌دهد. مثلاً ۱ فوریه، سی و دومین روز سال می‌باشد.
-Comment[fi]=Tämä liitännäinen näyttää jokaisen päivän järjestysnumeron vuoden alusta agendanäkymässä. Esimerkiksi helmikuun ensimmäinen päivä on vuoden 32. päivä.
-Comment[fr]=Pour chaque jour, ce module montre le numéro du jour en haut de la vue agenda. Par exemple, le 1er février est le 32ème jour de l'année.
-Comment[fy]=Dizze plugin soarget derfoar dat it nûmer fan de dei boppe de agindawerjefte setten wurdt. Bygelyks, by 1 february heard deinûmer 32.
-Comment[gl]=Este engadido amosa cada día o número de día anual na vista superior da axenda. Por exemplo, o 1 de febreiro é o día 32 do ano.
-Comment[hu]=Megjeleníti az év elejétől eltelt napok számát az áttekintő nézet tetején. Például február elseje az év 32. napja.
-Comment[is]=Þetta íforrit sýnir efst í fundarskránni númer hvers dags í árinu. T.d. er 1. febrúar 32. dagurinn í árinu.
-Comment[it]=Per ciascun giorno, questo plugin mostra la data giuliana (numero progressivo a partire dal primo gennaio dell'anno corrente). Per esempio al primo di febbraio corrisponde il numero 32.
-Comment[ja]=このプラグインは予定表ビューの上に、それぞれの日がその年の何日目であるかを表示します。例えば、2 月 1 日はその年の 32 日目です。
-Comment[kk]=Бұл модуль күн тәртібі бетінің жоғарында жыл басынан өткен күндер санын көрсетеді. Мысалы, 1-ақпан жылдың 32-күні.
-Comment[km]=សម្រាប់​ថ្ងៃ​នីមួយៗ កម្មវិធី​ជំនួយ​នេះ​នឹង​បង្ហាញ​លេខ​ថ្ងៃ​នៃ​ឆ្នាំ នៅ​ផ្នែក​ខាង​លើ​នៃ​ទិដ្ឋភាព​របៀបវារៈ ។ ឧទាហរណ៍ ថ្ងៃ​ទី ១ ខែ កុម្ភៈ នឹង​ត្រូវ​ជា​ថ្ងៃ​ទី ៣២ នៃ​ឆ្នាំ ។
-Comment[lt]=Kiekvienai dienai šis priedas rodo metų dienos numerį tvarkyklės viršuje. Pvz., Vasario 1 yra32 metų diena.
-Comment[ms]=Setiap hari plugin ini memaparkan bilangan hari tahun tersebut di atas paparan agenda. Contohnya , 1 Februari adalah hari ke 32 bagi tahun tersebut.
-Comment[nb]=For hver dag viser dette programtillegget dagens nummer i året øverst på dagsvisningen. 1. februar er f.eks. dag nr. 32 i året.
-Comment[nds]=Dit Moduul wiest för elkeen Dag sien Nummer in't Johr baven de Dagansicht. De 1. Februor is t.B. de 32. Dag vun't Johr.
-Comment[ne]=प्रत्येक दिनका लागि यो प्लगइनले एजेन्डा दृश्यको माथि यस वर्षको दिन नम्बर देखाउछ । उदारणका लागि, फेब्रुवरी १ वर्षको बत्तिसौ दिन हो ।
-Comment[nl]=Deze plugin zorgt ervoor dat het dagnummer boven de agendaweergave wordt geplaatst. Bijvoorbeeld, bij 1 februari hoort dagnummer 32.
-Comment[nn]=For kvar dag vil dette programtillegget visa nummeret til denne dagen i året øvst i tidsplanen. 1. februar vil til dømes visast som dag 32.
-Comment[pl]=Ta wtyczka dla każdego dnia pokazuje jego numer kolejny w roku, na szczycie widoku planu. Na przykład, 1 luty to 32 dzień roku.
-Comment[pt]=Para cada dia, este 'plugin' mostra o seu número de dia do ano no topo da agenda. Por exemplo, o dia 1 de Fevereiro é o dia 32 do ano.
-Comment[pt_BR]=Para cada dia, esse plug-in mostra o número do dia no topo da visão de agenda. Por exemplo, 1º de fevereiro é o dia 32 do ano.
-Comment[ru]=Этот модуль показывает номер дня в году для каждой даты. Например, для 1 февраля будет показан номер 32.
-Comment[sk]=Tento modul pre každý deň zobrazí jeho číslo dňa v roku navrchu pohľadu agendy. Napríklad 1. február je deň číslo 32 v roku.
-Comment[sl]=Za vsak dan ta vstavek prikazuje številko dneva v letu na vrhu praikaza agende. Npr., 1. februar je 32. dan v letu.
-Comment[sr]=За сваки датум овај прикључак приказује његов број дана у години на врху приказа распореда. На пример, 1. фебруар је 32. дан у години.
-Comment[sr@Latn]=Za svaki datum ovaj priključak prikazuje njegov broj dana u godini na vrhu prikaza rasporeda. Na primer, 1. februar je 32. dan u godini.
-Comment[sv]=Insticksprogrammet visar dagens nummer under året för varje dag längst upp i agendavyn. Till exempel är 1:a februari den 32:e dagen under året.
-Comment[ta]=ஒவ்வோரு நாளும் நிகழ்ச்சி நிரல் காட்சியின் மேற்புறத்தில் வருடத்தின் நாளின் எண்ணை இந்த சொருகுப்பொருள் காட்டுகிறது. உதாரணமாக, பிப்ரவரி 1 வருடத்தின் 32வது நாள்
-Comment[tr]=Bu eklenti, her gün için tarih bilgisini gün sayısı olarak ajanda görünümünün yukarısında gösterir. Örneğin, 1 Şubat yılın 32. günüdür.
-Comment[uk]=Цей втулок показує зверху перегляду щоденника номер для кожного дня року. Наприклад, 1-го лютого - це 32 день року.
-Comment[zh_CN]=此插件可对每天在议事日程视图中上方显示该日在一年中的序号。例如,2月1日是一年的第32天。
-Comment[zh_TW]=對每一天,此外掛程式會顯示這是一年中的第幾天。
+
Type=Service
X-TDE-ServiceTypes=Calendar/Plugin,Calendar/Decoration
X-TDE-KOrganizer-HasSettings=true
diff --git a/korganizer/plugins/exchange/CMakeLists.txt b/korganizer/plugins/exchange/CMakeLists.txt
index f1f44361..833d343a 100644
--- a/korganizer/plugins/exchange/CMakeLists.txt
+++ b/korganizer/plugins/exchange/CMakeLists.txt
@@ -28,7 +28,12 @@ link_directories(
##### other data ################################
-install( FILES exchange.desktop DESTINATION ${SERVICES_INSTALL_DIR}/korganizer )
+tde_create_translated_desktop(
+ SOURCE exchange.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/korganizer
+ PO_DIR korganizer-desktops
+)
+
install( FILES exchangeui.rc DESTINATION ${DATA_INSTALL_DIR}/korganizer/plugins )
diff --git a/korganizer/plugins/exchange/exchange.cpp b/korganizer/plugins/exchange/exchange.cpp
index e0bc1ab7..3a55cba9 100644
--- a/korganizer/plugins/exchange/exchange.cpp
+++ b/korganizer/plugins/exchange/exchange.cpp
@@ -69,29 +69,29 @@ Exchange::Exchange(KOrg::MainWindow *parent, const char *name) :
setXMLFile("plugins/exchangeui.rc");
- new TDEAction(i18n("&Download..."), 0, this, TQT_SLOT(download()),
+ new TDEAction(i18n("&Download..."), 0, this, TQ_SLOT(download()),
actionCollection(), "exchange_download");
- TDEAction *action = new TDEAction(i18n("&Upload Event..."), 0, this, TQT_SLOT(upload()),
+ TDEAction *action = new TDEAction(i18n("&Upload Event..."), 0, this, TQ_SLOT(upload()),
actionCollection(), "exchange_upload");
- TQObject::connect(mainWindow()->view(),TQT_SIGNAL(incidenceSelected(Incidence *)),
- this, TQT_SLOT(slotIncidenceSelected(Incidence *)));
+ TQObject::connect(mainWindow()->view(),TQ_SIGNAL(incidenceSelected(Incidence *)),
+ this, TQ_SLOT(slotIncidenceSelected(Incidence *)));
action->setEnabled( false );
- TQObject::connect(this,TQT_SIGNAL(enableIncidenceActions(bool)),
- action,TQT_SLOT(setEnabled(bool)));
+ TQObject::connect(this,TQ_SIGNAL(enableIncidenceActions(bool)),
+ action,TQ_SLOT(setEnabled(bool)));
- action = new TDEAction(i18n("De&lete Event"), 0, this, TQT_SLOT(remove()),
+ action = new TDEAction(i18n("De&lete Event"), 0, this, TQ_SLOT(remove()),
actionCollection(), "exchange_delete");
- TQObject::connect(this,TQT_SIGNAL(enableIncidenceActions(bool)),
- action,TQT_SLOT(setEnabled(bool)));
+ TQObject::connect(this,TQ_SIGNAL(enableIncidenceActions(bool)),
+ action,TQ_SLOT(setEnabled(bool)));
action->setEnabled( false );
- new TDEAction(i18n("&Configure..."), 0, this, TQT_SLOT(configure()),
+ new TDEAction(i18n("&Configure..."), 0, this, TQ_SLOT(configure()),
actionCollection(), "exchange_configure");
- connect( this, TQT_SIGNAL( calendarChanged() ), mainWindow()->view(), TQT_SLOT( updateView() ) );
- connect( this, TQT_SIGNAL( calendarChanged(const TQDate &, const TQDate &)),
- mainWindow()->view(), TQT_SLOT(updateView(const TQDate &, const TQDate &)) );
+ connect( this, TQ_SIGNAL( calendarChanged() ), mainWindow()->view(), TQ_SLOT( updateView() ) );
+ connect( this, TQ_SIGNAL( calendarChanged(const TQDate &, const TQDate &)),
+ mainWindow()->view(), TQ_SLOT(updateView(const TQDate &, const TQDate &)) );
}
Exchange::~Exchange()
diff --git a/korganizer/plugins/exchange/exchange.desktop b/korganizer/plugins/exchange/exchange.desktop
index a866c336..0c6fdb79 100644
--- a/korganizer/plugins/exchange/exchange.desktop
+++ b/korganizer/plugins/exchange/exchange.desktop
@@ -1,98 +1,10 @@
[Desktop Entry]
X-TDE-Library=libkorg_exchange
+
Name=Microsoft Exchange 2000 Plugin for KOrganizer
-Name[af]=Microsoft Exchange 2000 inprop module vir KOrganizer
-Name[be]=Дапаўненне K Арганізатара "Microsoft Exchange 2000"
-Name[bg]=Приставка на организатора за връзка с Microsoft Exchange 2000
-Name[bs]=Microsoft Exchange 2000 dodatak za KOrganizer
-Name[ca]=Endollable Microsoft Exchange 2000 per a KOrganizer
-Name[cs]=Modul Microsoft Exchange 2000 pro KOrganizer
-Name[da]=Microsoft Exchange 2000-plugin for KOrganizer
-Name[de]=Microsoft Exchange 2000-Modul für KOrganizer
-Name[el]=Πρόσθετο Microsoft Exchange 2000 του KOrganizer
-Name[eo]=Microsoft Exchange 2000-kromaĵo por Organizilo
-Name[es]=Accesorio de Microsoft Exchange 2000 para KOrganizer
-Name[et]=Microsoft Exchange 2000 plugin KOrganizeri jaoks
-Name[eu]=KOrganizer-en Microsoft Exchange 2000 plugin-a
-Name[fa]=وصلۀ Microsoft Exchange ۲۰۰۰ برای KOrganizer
-Name[fi]=KOrganizerin Microsoft Exchange 2000 -liitännäinen
-Name[fr]=Module Microsoft Exchange 2000 pour KOrganizer
-Name[fy]=Microsoft Exchange 2000 plugin foar KOrganizer
-Name[ga]=Breiseán Microsoft Exchange 2000 le haghaidh KOrganizer
-Name[gl]=Extensión de Microsoft Exchange 2000 para KOrganizer
-Name[hu]=Microsoft Exchange 2000-bővítőmodul a KOrganizerhez
-Name[is]=Microsoft Exchange 2000 íforrit fyrir KOrganizer
-Name[it]=Plugin Microsoft Exchange 2000 per KOrganizer
-Name[ja]=KOrganizer の Microsoft Exchange 2000 プラグイン
-Name[kk]=KOrganizer-дің Microsoft Exchange 2000 модулі
-Name[km]=កម្មវិធី​ជំនួយ​ម៉ៃក្រូសូហ្វ Exchange ២០០០ សម្រាប់ KOrganizer
-Name[lt]=Microsoft Exchange 2000 priedas, skirtas KOrganizer
-Name[mk]=Приклучок за КОрганизатор за Microsoft Exchange 2000
-Name[ms]=PLugin Microsoft Exchange 2000 untuk KOrganizer
-Name[nb]=Microsoft Exchange 2000 programtillegg for KOrganizer
-Name[nds]=MSExchange2000-Moduul för KOrganizer
-Name[ne]=केडीई आयोजकका लागि माइक्रोसफ्ट एक्सचेन्ज 2000
-Name[nl]=Microsoft Exchange 2000 plugin voor KOrganizer
-Name[nn]=Microsoft Exchange 2000 programtillegg for KOrganizer
-Name[pl]=Wtyczka Microsoft Exchange 2000 dla Organizatora
-Name[pt]='Plugin' do Microsoft Exchange 2000 para o KOrganizer
-Name[pt_BR]=Plug-in do Microsoft Exchange 2000 para o KOrganizer
-Name[ru]=Доступ к Microsoft Exchange 2000
-Name[sk]=KOrganizer modul pre Microsoft Exchange 2000
-Name[sl]=Vstavek za Microsoft Exchange 2000 za KOrganizer
-Name[sr]=Прикључак KOrganizer-а за Microsoft Exchange 2000
-Name[sr@Latn]=Priključak KOrganizer-a za Microsoft Exchange 2000
-Name[sv]=Microsoft Exchange 2000-insticksprogram för Korganizer
-Name[ta]=கேஅமைப்பாளருக்கான மைக்ரோசாஃப்ட் எக்ஸ்சேன்ஜ் 2000 சொருகுப்பொருள்
-Name[tg]=Дастрасӣ ба Microsoft Exchange 2000
-Name[tr]=KOrganizer için Microsoft Exchange 2000 Eklentisi
-Name[uk]=Втулок Microsoft Exchange 2000 для KOrganizer
-Name[zh_CN]=KOrganizer 的 Microsoft Exchange 2000 插件
-Name[zh_TW]=KOrganizer 的 Microsoft Exchange 2000 外掛程式
+
Comment=This plugin allows korganizer users to work with Microsoft Exchange 2000 groupware servers.
-Comment[af]=Hierdie inprop module maak dit vir korganizer gebruikers moontlik om met Microsoft Exchange 2000 bedieners te praat.
-Comment[bg]=Приставката служи за връзка на Korganizer със сървъра Microsoft Exchange 2000 groupware.
-Comment[ca]=Aquest endollable permet als usuaris de korganizer treballar amb servidors groupware Microsoft Exchange 2000.
-Comment[cs]=tento modul umožňuje pracovat uživatelům korganizeru s Microsoft Exchange 2000 groupware servery.
-Comment[da]=Dette plugin tillader brugere af korganizer at arbejde med Microsoft Exchange 2000 groupware servere.
-Comment[de]=Mit diesem Modul kann KOrganizer mit Microsoft Exchange 2000 Groupware-Servern zusammenarbeiten.
-Comment[el]=Αυτό το πρόσθετο επιτρέπει στους χρήστες του korganizer να δουλεύουν με εξυπηρετητές groupware του Microsoft Exchange 2000.
-Comment[es]=Esta extensión permite que los usuarios de korganizer trabajen con servidores de groupware de Microsoft Exchange 2000.
-Comment[et]=See plugin võimaldab KOrganizeri kasutajatel pruukida Microsoft Exchange 2000 grupitööservereid.
-Comment[eu]=Plugin honek korganizer-en erabiltzaileei Microsoft Exchange 2000 groupware zerbitzariekin lan egiteko aukera ematen die.
-Comment[fa]=این وصله به کاربران korganizer اجازه می‌دهد که با کارسازهای Microsoft Exchange 2000 groupware کار کند.
-Comment[fi]=Tämä liitännäinen mahdollistaa KOrganizer-käyttäjien työskentelemisen Microsoft Exchange 2000 -ryhmätyöpalvelimien kanssa.
-Comment[fr]=Ce module permet à KOrganizer de fonctionner avec Microsoft Exchange 2000
-Comment[fy]=Dizze plugin makket it mooglik om Microsoft Exchange 2000 te brûken yn KOrganizer.
-Comment[gl]=Este engadido permite que os usuarios de korganizer traballen con servidores de traballo en grupo Microsoft Exchange 2000
-Comment[hu]=Ez a modul lehetővé teszi KOrganizer-felhasználóknak Microsoft Exchange 2000-kiszolgálón tárolt csoportmunka-adatok elérését.
-Comment[is]=Þetta íforrit gerir KOrganizer kleyft að vinna með Microsoft Exchange 2000 hópvinnuþjónum.
-Comment[it]=Questo plugin permette agli utenti di korganizer di lavorare con i server groupware Microsoft Exchange 2000.
-Comment[ja]=このプラグインにより、korganizer のユーザが Microsoft Exchange 2000 グループウェアサーバと同期できるようになります。
-Comment[kk]=Бұл модуль korganizer-мен MS Exchange 2000 біріккен жұмыс сервермен істеуге мүмкіндік береді.
-Comment[km]=កម្មវិធី​ជំនួយ​នេះ​អនុញ្ញាត​ឲ្យ​អ្នក​ប្រើ​របស់ korganizer ធ្វើការ​ជាមួយ​ម៉ាស៊ីន​បម្រើ​កម្មវិធី​ពហុ​អ្នកប្រើ​របស់​ម៉ៃក្រូសូហ្វ Exchange ២០០០ ។
-Comment[lt]=Šis priedas leidžia korganizer dirbti su Microsoft Exchange 2000 groupware serveriais.
-Comment[mk]=Овој приклучок им овозможува на корисниците на КОрганизатор да работат со groupware-серверите на Microsoft Exchange 2000.
-Comment[ms]=Plugin ini membenarkan pengguna korganizer bekerja bersama pelayan groupware Microsoft Exchange 2000.
-Comment[nb]=Med dette programtillegget kan korganizer-brukere arbeide med gruppevare-tjenere fra Microsoft Exchange 2000.i
-Comment[nds]=Över dit Moduul köönt KOrganizer-Brukers mit Groupware-Servers för MSExchange-2000 arbeiden.
-Comment[ne]=यो प्लगइनले माइक्रोसफ्ट एक्सचेन्ज 2000 ग्रुपवेयर सर्भरमा केडीई आयोजकलाई कार्य गर्न अनुमति दिन्छ ।
-Comment[nl]=Deze plugin maakt het mogelijk om Microsoft Exchange 2000 te gebruiken in KOrganizer.
-Comment[nn]=Dette programtillegget lèt KOrganizer-brukarar arbeida saman med Microsoft Exchange 2000-gruppevaretenarar.
-Comment[pl]=Ta wtyczka pozwala KOrganizerowi współpracować z serwerami pracy grupowej Microsoft Exchange.
-Comment[pt]=Este 'plugin' permite aos utilizadores do KOrganizer lidarem com servidores de 'groupware' do Microsoft Exchange 2000.
-Comment[pt_BR]=Esse plug-in permite que o KOrganizer conecte-se à servidores groupware Microsoft Exchance 2000
-Comment[ru]=Этот модуль позволяет пользователям органайзера работать с серверами совместной работы Microsoft Exchange 2000.
-Comment[sk]=Tento modul umožní, aby korganizer užívatelia pracovali s Microsoft Exchange 2000 groupware servermi.
-Comment[sl]=Ta vstavke omogoča uporabnikom KOrganizerja delo s strežniki Microsoft Exchange 2000.
-Comment[sr]=Овај прикључак омогућава корисницима KOrganizer-а да раде са Microsoft-овим Exchange 2000 groupware серверима.
-Comment[sr@Latn]=Ovaj priključak omogućava korisnicima KOrganizer-a da rade sa Microsoft-ovim Exchange 2000 groupware serverima.
-Comment[sv]=Insticksprogrammet gör det möjligt för användare av Korganizer att arbeta med Microsoft Exchange 2000 grupprogramservrar.
-Comment[ta]=இந்த சொருகுப்பொருள் korganizer பயனர்களை மைக்ரோசாப்ட் எக்ஸ்சேஞ்ச் 2000 குழுவாரி சேவகன்களில் பணி செய்ய அனுமதிக்கிறது.
-Comment[tr]=Bu eklenti KOrganizer kullanıcılarının Microsoft Exchange 2000 sunucuları ile çalışabilmelerini sağlar.
-Comment[uk]=Цей втулок дозволяє користувачам korganizer працювати з серверами групової роботи Microsoft Exchange 2000.
-Comment[zh_CN]=此插件允许 KOrganizer 用户与 Microsoft Exchange 2000 群件服务器协同工作。
-Comment[zh_TW]=這個外掛程式允許 KOrganizer 使用者與 Microsoft Exchange 2000 群組伺服器一起工作。
+
Type=Service
X-TDE-ServiceTypes=KOrganizer/Part
X-TDE-KOrganizer-HasSettings=false
diff --git a/korganizer/plugins/exchange/exchange.h b/korganizer/plugins/exchange/exchange.h
index 8de777fe..26c5e8de 100644
--- a/korganizer/plugins/exchange/exchange.h
+++ b/korganizer/plugins/exchange/exchange.h
@@ -34,7 +34,7 @@
using namespace KCal;
class Exchange : public KOrg::Part {
- Q_OBJECT
+ TQ_OBJECT
public:
Exchange( KOrg::MainWindow *, const char *name );
diff --git a/korganizer/plugins/exchange/exchangeconfig.cpp b/korganizer/plugins/exchange/exchangeconfig.cpp
index 106fc867..913482f3 100644
--- a/korganizer/plugins/exchange/exchangeconfig.cpp
+++ b/korganizer/plugins/exchange/exchangeconfig.cpp
@@ -53,7 +53,7 @@ ExchangeConfig::ExchangeConfig( KPIM::ExchangeAccount* account, TQWidget* parent
m_user = new KLineEdit( mAccount->account(), topFrame );
topLayout->addWidget( new TQLabel( i18n( "User:" ), topFrame ), 2, 0 );
topLayout->addWidget( m_user, 2, 1 );
- connect( m_user, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(slotUserChanged(const TQString&)) );
+ connect( m_user, TQ_SIGNAL(textChanged(const TQString&)), this, TQ_SLOT(slotUserChanged(const TQString&)) );
m_password = new KLineEdit( mAccount->password(), topFrame );
topLayout->addWidget( new TQLabel( i18n( "Password:" ), topFrame ), 3, 0 );
@@ -62,7 +62,7 @@ ExchangeConfig::ExchangeConfig( KPIM::ExchangeAccount* account, TQWidget* parent
m_autoMailbox = new TQCheckBox( i18n( "Determine mailbox automatically" ), topFrame );
topLayout->addMultiCellWidget( m_autoMailbox, 4, 4, 0, 1 );
- connect( m_autoMailbox, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotToggleAuto(bool)) );
+ connect( m_autoMailbox, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(slotToggleAuto(bool)) );
m_mailbox= new KLineEdit( mAccount->mailbox(), topFrame );
topLayout->addWidget( new TQLabel( i18n( "Mailbox URL:" ), topFrame ), 5, 0 );
@@ -70,7 +70,7 @@ ExchangeConfig::ExchangeConfig( KPIM::ExchangeAccount* account, TQWidget* parent
m_tryFindMailbox = new TQPushButton( "&Find", topFrame );
topLayout->addWidget( m_tryFindMailbox, 5, 2 );
- connect( m_tryFindMailbox, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotFindClicked()) );
+ connect( m_tryFindMailbox, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotFindClicked()) );
kapp->config()->setGroup( "Calendar/Exchange Plugin" );
bool autoChecked = kapp->config()->readBoolEntry( "auto-mailbox", true );
diff --git a/korganizer/plugins/exchange/exchangeconfig.h b/korganizer/plugins/exchange/exchangeconfig.h
index a7aa3285..dc46da9b 100644
--- a/korganizer/plugins/exchange/exchangeconfig.h
+++ b/korganizer/plugins/exchange/exchangeconfig.h
@@ -29,7 +29,7 @@
class ExchangeConfig : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
ExchangeConfig(KPIM::ExchangeAccount* account, TQWidget *parent=0);
diff --git a/korganizer/plugins/exchange/exchangedialog.h b/korganizer/plugins/exchange/exchangedialog.h
index 8c525f2b..fc102072 100644
--- a/korganizer/plugins/exchange/exchangedialog.h
+++ b/korganizer/plugins/exchange/exchangedialog.h
@@ -26,7 +26,7 @@ class TQComboBox;
class ExchangeDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
ExchangeDialog( const TQDate &start, const TQDate &end, TQWidget *parent=0);
diff --git a/korganizer/plugins/hebrew/CMakeLists.txt b/korganizer/plugins/hebrew/CMakeLists.txt
index 1f397d7b..534dfa8f 100644
--- a/korganizer/plugins/hebrew/CMakeLists.txt
+++ b/korganizer/plugins/hebrew/CMakeLists.txt
@@ -24,7 +24,11 @@ link_directories(
##### other data ################################
-install( FILES hebrew.desktop DESTINATION ${SERVICES_INSTALL_DIR}/korganizer )
+tde_create_translated_desktop(
+ SOURCE hebrew.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/korganizer
+ PO_DIR korganizer-desktops
+)
##### libkorg_hebrew (module) ###################
diff --git a/korganizer/plugins/hebrew/configdialog.h b/korganizer/plugins/hebrew/configdialog.h
index 805ba970..9a9f0b45 100644
--- a/korganizer/plugins/hebrew/configdialog.h
+++ b/korganizer/plugins/hebrew/configdialog.h
@@ -27,7 +27,7 @@
*/
class ConfigDialog:public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/korganizer/plugins/hebrew/hebrew.desktop b/korganizer/plugins/hebrew/hebrew.desktop
index 12395653..a7a65cbf 100644
--- a/korganizer/plugins/hebrew/hebrew.desktop
+++ b/korganizer/plugins/hebrew/hebrew.desktop
@@ -1,98 +1,10 @@
[Desktop Entry]
X-TDE-Library=libkorg_hebrew
+
Name=Jewish Calendar Plugin
-Name[af]=Joodse kalender inprop module
-Name[bg]=Приставка за еврейския календар
-Name[br]=Lugent deiziadur yudev
-Name[bs]=Dodatak za hebrejski kalendar
-Name[ca]=Endollable de calendari jueu
-Name[cs]=Modul židovského kalendáře
-Name[da]=Jødisk kalender-plugin
-Name[de]=Modul für jüdischen Kalender
-Name[el]=Πρόσθετο εβραϊκού ημερολογίου
-Name[eo]=Judkalendar-kromaĵo
-Name[es]=Accesorio de calendario judío
-Name[et]=Juudi kalendri plugin
-Name[eu]=Egutegi judutar plugin-a
-Name[fa]=وصلۀ تقویم یهودی
-Name[fi]=Juutalaisen kalenterin laajennus
-Name[fr]=Module de prise en charge du calendrier juif
-Name[fy]=Joadske kalenderplugin
-Name[gl]=Extensión para Calendario Xudeu
-Name[hu]=Bővítőmodul a zsidó naptár kezeléséhez
-Name[is]=Gyðinga dagatalsíforrit
-Name[it]=Plugin calendario ebraico
-Name[ja]=ユダヤ歴カレンダープラグイン
-Name[kk]=Яһуди күнтізбесінің модулі
-Name[km]=កម្មវិធី​ជំនួយ​ប្រតិទិន Jewish
-Name[lt]=Žydų kalendoriaus priedas
-Name[mk]=Приклучок за еврејски календар
-Name[ms]=PLugin Kalender Yahudi
-Name[nb]=Programtillegg for jødisk kalender
-Name[nds]=Moduul för juudschen Kalenner
-Name[ne]=यहूदि क्यालेन्डर प्लगइन
-Name[nl]=Joodse kalenderplugin
-Name[nn]=Programtillegg for jødisk kalender
-Name[pl]=Wtyczka kalendarza żydowskiego
-Name[pt]='Plugin' do Calendário Judeu
-Name[pt_BR]=Plug-in de Calendário Judaico
-Name[ru]=Еврейский календарь
-Name[sk]=Modul Židovského kalendára
-Name[sl]=Vstavek za židovski koledar
-Name[sr]=Прикључак календара за јеврејски календар
-Name[sr@Latn]=Priključak kalendara za jevrejski kalendar
-Name[sv]=Insticksprogram för judisk kalender
-Name[ta]=ஜூவிஷ் நாள்காட்டி சொருகுப்பொருள்
-Name[tg]=Тақвимоти яҳудӣ
-Name[tr]=İbrani Takvimi Eklentisi
-Name[uk]=Втулок єврейського календаря
-Name[zh_CN]=犹太教日历插件
-Name[zh_TW]=猶太行事曆外掛程式
+
Comment=Shows all dates in korganizer also in the Jewish calendar system.
-Comment[af]=Vertoon alle datums in KOrganizer ook volgens die Joodse kalender.
-Comment[bg]=Приставката служи за показване на датите според еврейския календар.
-Comment[ca]=Mostra totes les dates del korganizer també en el sistema del calendari jueu.
-Comment[cs]=Zobrazení všech dat v korganizeru také v židovském kalendáři.
-Comment[da]=Viser alle datoer i korganizer også i det jødiske kalendersystem.
-Comment[de]=Zeigt alle Daten in KOrganizer auch im jüdischen Kalendarium an.
-Comment[el]=Εμφανίζει όλες τις ημερομηνίες στο korganizer και στο εβραϊκό ημερολογιακό σύστημα.
-Comment[es]=Muestra todas las fechas de korganizer también en el sistema de calendario judío.
-Comment[et]=Näitab KOrganizeris kõiki kuupäevi ka juudi kalendri järgi.
-Comment[eu]=korganizer-en data guztiak egutegi judutar sisteman ere erakusten ditu.
-Comment[fa]=همۀ تاریخهای korganizer، همچنین سیستم تقویم یهودی را نمایش می‌دهد.
-Comment[fi]=Näyttää kaikki päivät KOrganizerissa myös Juutalaisen kalenterijärjestelmän mukaan.
-Comment[fr]=Affiche toutes les dates de KOrganizer selon le calendrier Juif
-Comment[fy]=Lit alle datums yn KOrganizer ek yn it Joadske kalinderssysteem sjen.
-Comment[gl]=Amosa todas as datas en korganizer, tamén o sistema de calendario xudeu.
-Comment[he]=מציג את כל התאריכים בארגונית גם בלוח השנה העברי
-Comment[hu]=A KOrganizer dátumait kiírja a hagyományos zsidó naptár szerint is.
-Comment[is]=Sýna alla dagsetningar í KOrganizer sem eru einnig í dagatali gyðinga.
-Comment[it]=Mostra tutte le date in korganizer secondo il calendario ebraico.
-Comment[ja]=korganizer のすべての日付をユダヤ暦でも表示します。
-Comment[kk]=Яһуди күнтізбе күндерін korganizer-де көрсететін модулі.
-Comment[km]=បង្ហាញ​កាលបរិច្ឆេទ​ទាំងអស់​ក្នុង korganizer នៅ​ក្នុង​ប្រព័ន្ធ​ប្រតិទិន Jewish ។
-Comment[lt]=Rodo visas dienas kalendoriuje taip pat ir žydų kalendoriaus sistema.
-Comment[mk]=Ги прикажува сите датуми во КОрганизатор и според еврејскиот календар.
-Comment[ms]=Memaparkan semua tarikh dalam korganizer dan juga dalam sistem kalendar Yahudi.
-Comment[nb]=Viser alle datoer i korganizer også i det jødiske kalendersystemet.
-Comment[nds]=Wiest all Daten binnen KOrganizer ok in den juudschen Kalenner.
-Comment[ne]=केडीई आयोजकमा पनि सबै मिति यहूदि क्यालेन्डर प्रणालीमा देखाउछ ।
-Comment[nl]=Toont alle data in KOrganizer ook in het Joodse kalendersysteem.
-Comment[nn]=Viser alle datoane i KOrganizer i den jødiske kalenderen.
-Comment[pl]=Pokazuje wszystkie daty w KOrganizerze również w kalendarzu żydowskim.
-Comment[pt]=Mostra todas as datas no KOrganizer também no sistema de calendários Judeu.
-Comment[pt_BR]=Mostra todas as datas no KOrganizer também no sistema de calendário judaico
-Comment[ru]=Показывать все даты по еврейскому календарю.
-Comment[sk]=Zobrazí všetky dátumy v korganizer tiež aj židovskom kalendári.
-Comment[sl]=Prikaže vse datume v KOrganizerju; tudi v židovskem koledarskem sistemu.
-Comment[sr]=Приказује све датуме у KOrganizer-у и по јеврејском календарском систему.
-Comment[sr@Latn]=Prikazuje sve datume u KOrganizer-u i po jevrejskom kalendarskom sistemu.
-Comment[sv]=Visar också alla datum i Korganizer enligt den judiska kalendern.
-Comment[ta]=korganizer மற்றும் ஜேவிஷ் நாட்காட்டி அமைப்பில் ல் உள்ள எல்லா தேதிகளையும் காட்டுகிறது.
-Comment[tr]=KOrganizer'da tüm tarihleri İbrani takvimine göre gösterir.
-Comment[uk]=Показує всі дати в korganizer також і в системі єврейського календаря.
-Comment[zh_CN]=在 KOrganizer 中显示犹太教日历系统的全部日期。
-Comment[zh_TW]=顯示所有猶太行事曆的日期
+
Type=Service
X-TDE-ServiceTypes=Calendar/Plugin,Calendar/Decoration
X-TDE-KOrganizer-HasSettings=true
diff --git a/korganizer/plugins/printing/journal/CMakeLists.txt b/korganizer/plugins/printing/journal/CMakeLists.txt
index 5844464b..62872462 100644
--- a/korganizer/plugins/printing/journal/CMakeLists.txt
+++ b/korganizer/plugins/printing/journal/CMakeLists.txt
@@ -27,7 +27,11 @@ link_directories(
##### other data ################################
-install( FILES journalprint.desktop DESTINATION ${SERVICES_INSTALL_DIR}/korganizer )
+tde_create_translated_desktop(
+ SOURCE journalprint.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/korganizer
+ PO_DIR korganizer-desktops
+)
##### libkorg_journalprint (module) #############
diff --git a/korganizer/plugins/printing/journal/calprintjournalconfig_base.ui b/korganizer/plugins/printing/journal/calprintjournalconfig_base.ui
index 6868729b..7239719e 100644
--- a/korganizer/plugins/printing/journal/calprintjournalconfig_base.ui
+++ b/korganizer/plugins/printing/journal/calprintjournalconfig_base.ui
@@ -194,8 +194,7 @@
<tabstop>mToDate</tabstop>
</tabstops>
<layoutdefaults spacing="6" margin="11"/>
-<includehints>
- <includehint>kdateedit.h</includehint>
- <includehint>kdateedit.h</includehint>
-</includehints>
+<includes>
+ <include location="global" impldecl="in implementation">kdateedit.h</include>
+</includes>
</UI>
diff --git a/korganizer/plugins/printing/journal/journalprint.desktop b/korganizer/plugins/printing/journal/journalprint.desktop
index 61b3dac0..4b8f3e23 100644
--- a/korganizer/plugins/printing/journal/journalprint.desktop
+++ b/korganizer/plugins/printing/journal/journalprint.desktop
@@ -1,92 +1,10 @@
[Desktop Entry]
X-TDE-Library=libkorg_journalprint
+
Name=Journal Print Style
-Name[af]=Joernaal druk styl
-Name[bg]=Стил на отпечатване на календар
-Name[ca]=Estil d'impressió del diari
-Name[cs]=Tiskový styl deníku
-Name[da]=Journal udskriftsstil
-Name[de]=Journal Druckstil
-Name[el]=Στυλ εκτύπωσης χρονικού
-Name[eo]=Ĵurnal-Presostilo
-Name[es]=Estilo de impresión del diario
-Name[et]=Päeviku trükkimise stiil
-Name[eu]=Egunkariak inprimatzeko estiloa
-Name[fa]=سبک چاپ نشریه
-Name[fi]=Päiväkirjan tulostustyyli
-Name[fr]=Impression en journal
-Name[fy]=Printstyl foar journaals
-Name[gl]=Imprimir en Estilo Xornal
-Name[hu]=Naplónyomtatási stílus
-Name[is]=Dagbókarprentstíll
-Name[it]=Stile di stampa a diario
-Name[ja]=ジャーナル印刷スタイル
-Name[kk]=Күнделікті басу стилі
-Name[km]=រចនាប័ទ្ម​បោះពុម្ព​ទិនានុប្បវត្តិ
-Name[lt]=Dienyno spausdinimo stilius
-Name[ms]=Gaya Cetak Jurnal
-Name[nb]=Utskriftsstil for dagbok
-Name[nds]=Daagbook-Druckstil
-Name[ne]=जर्नल मुद्रण शैली
-Name[nl]=Printstijl voor journaals
-Name[nn]=Utskriftsstil for dagbok
-Name[pl]=Styl drukowania dziennika
-Name[pt]=Estilo de Impressão em Diário
-Name[pt_BR]=Estilo de Impressão de Diário
-Name[ru]=Журнал
-Name[sk]=Štýl tlače žurnálu
-Name[sl]=Dnevniški slog tiskanja
-Name[sr]=Дневнички стил штампе
-Name[sr@Latn]=Dnevnički stil štampe
-Name[sv]=Journal-utskriftsstil
-Name[ta]=செய்தி அச்சுப்பாணி
-Name[tr]=Günlük Yazdırma Tarzı
-Name[uk]=Стиль друку журналом
-Name[zh_CN]=日记打印样式
-Name[zh_TW]=日誌列印風格
+
Comment=This plugin allows you to print out journal entries (diary entries).
-Comment[af]=Hierdie inprop module maak dit moontlik om joernaal inskrywings (dagboek inskrywings) te druk.
-Comment[bg]=Приставката служи за печат на дневника.
-Comment[ca]=Aquest endollable us permet imprimir entrades del diari.
-Comment[cs]=tento modul umožňuje tisk položek deníku.
-Comment[da]=Dette plugin gør at du kan udskrive journalindgange (dagbogsindgange).
-Comment[de]=Mit diesem Modul können Journaleinträge (Tagebucheinträge) gedruckt werden.
-Comment[el]=Αυτό το πρόσθετο σας επιτρέπει να εκτυπώνετε καταχωρήσεις χρονικού.
-Comment[es]=Esta extensión le permite imprimir entradas del diario.
-Comment[et]=See plugin võimaldab trükkida päeviku sissekandeid.
-Comment[eu]=Plugin honek egunkarien sarrerak (eguneroko sarrerak) inprimatzeko aukera ematen dizu.
-Comment[fa]=این وصله، به شما اجازه می‌دهد که مدخلهای نشریه )مدخلهای روزانه( را چاپ کنید.
-Comment[fi]=Tämä liitännäinen mahdollistaa päiväkirjan tulostuksen.
-Comment[fr]=Ce module vous permet d'imprimer l'ensemble de vos journaux personnels
-Comment[fy]=Dizze plugin makket it mooglik journalen út te printsjen (deiboekitems).
-Comment[gl]=Este engadido permítelle imprimir as entradas do xornal (entradas do diario).
-Comment[hu]=Ez a modul naplóbejegyzések kinyomtatását teszi lehetővé.
-Comment[is]=Þetta íforrit gerir þér kleyft að prenta út dagbókarfærslur.
-Comment[it]=Questo plugin ti permette di stampare le registrazioni del diario.
-Comment[ja]=このプラグインにより、ジャーナル (日誌) のエントリを印刷できるようになります。
-Comment[kk]=Бұл күнделіктің жазуларын басып шығаратын модулі.
-Comment[km]=កម្មវិធី​ជំនួយ​នេះ​អនុញ្ញាត​ឲ្យ​អ្នក​បោះពុម្ព​ធាតុ​ទិនានុប្បវត្តិ (ធាតុ​កំណត់ហេតុ​ប្រចាំ​ថ្ងៃ) ។
-Comment[lt]=Šis priedas leidžia spausdinti dienyno įrašus.
-Comment[ms]=Plugin ini membenarkan anda mencetak entri jurnal (entri diari).
-Comment[nb]=Med dette programtillegget kan du skrive ut oppføringer i dagboka.
-Comment[nds]=Mit dit Moduul köönt Daagbook-Indrääg utdruckt warrn.
-Comment[ne]=यो प्लगइनले तपाईँलाई जर्नल प्रविष्टि मुद्रण गर्न अनुमति दिन्छ (दैनिक विवरण प्रविष्टि) ।
-Comment[nl]=Deze plugin maakt het mogelijk om journalen uit te printen (dagboekitems).
-Comment[nn]=Dette programtillegget lèt deg skriva ut dagboksoppføringar.
-Comment[pl]=Ta wtyczka pozwala drukować wpisy dziennika.
-Comment[pt]=Este diário permite-lhe imprimir os itens de diário.
-Comment[pt_BR]=Esse estilo lhe permite imprimir entradas de diário
-Comment[ru]=Этот модуль позволяет печатать журнал в виде дневника.
-Comment[sk]=Tento modul umožní vytlačiť položky žurnálu (denníkové položky).
-Comment[sl]=Ta vstavek vam omogoča natis vnosov v dnevnik.
-Comment[sr]=Овај прикључак вам омогућава да одштампате уносе из дневника.
-Comment[sr@Latn]=Ovaj priključak vam omogućava da odštampate unose iz dnevnika.
-Comment[sv]=Det här insticksprogrammet gör att du kan skriva ut journalanteckningar (dagboksanteckningar).
-Comment[ta]=இந்த சொருகுப்பொருள் இதழ் உள்ளீடுகளை அச்சிட உங்களை அனுமதிக்கிறது (நாள் குறிப்பேடு உள்ளீடுகள்).
-Comment[tr]=Bu eklenti, günlük girişlerinizi yazıcıdan çıkartmanızı sağlar.
-Comment[uk]=Цей журнал надає можливість друкувати записи журналу (записи щоденника).
-Comment[zh_CN]=此插件允许您打印日记项目。
-Comment[zh_TW]=此外掛程式讓您印出日誌項目。
+
Type=Service
X-TDE-ServiceTypes=Calendar/Plugin,KOrganizer/PrintPlugin
X-TDE-KOrganizer-HasSettings=false
diff --git a/korganizer/plugins/printing/list/listprint.desktop b/korganizer/plugins/printing/list/listprint.desktop
index e7ef3d7b..4083c6f7 100644
--- a/korganizer/plugins/printing/list/listprint.desktop
+++ b/korganizer/plugins/printing/list/listprint.desktop
@@ -1,92 +1,10 @@
[Desktop Entry]
X-TDE-Library=libkorg_listprint
+
Name=List Print Style
-Name[af]=Lys druk styl
-Name[bg]=Печат като списък
-Name[ca]=Estil d'impressió en llista
-Name[cs]=Styl deníku - seznam
-Name[da]=Listeudskriftsstil
-Name[de]=Listen Druckstil
-Name[el]=Στυλ εκτύπωσης λίστας
-Name[eo]=List-Presostilo
-Name[es]=Estilo de impresión de la lista
-Name[et]=Nimekirja trükkimise stiil
-Name[eu]=Zerrenda inprimatzeko estiloa
-Name[fa]=سبک چاپ فهرست
-Name[fi]=Listatulostustyyli
-Name[fr]=Impression en liste
-Name[fy]=Printstyl foar listen
-Name[gl]=Imprimir en Estilo de Lista
-Name[hu]=Eseménylista kinyomtatása
-Name[is]=Listaprentstíll
-Name[it]=Stile di stampa ad elenco
-Name[ja]=リスト印刷スタイル
-Name[kk]=Тізімді басу стилі
-Name[km]=រចនាប័ទ្ម​បោះពុម្ព​បញ្ជី
-Name[lt]=Sąrašo spausdinimo stilius
-Name[ms]=Gaya Cetakan Senarai
-Name[nb]=Utskriftsstil for liste
-Name[nds]=Listen-Druckstil
-Name[ne]=सूची मुद्रण शैली
-Name[nl]=Printstijl voor lijsten
-Name[nn]=Utskriftsstil for dagbøker
-Name[pl]=Styl drukowania listy
-Name[pt]=Estilo de Impressão em Lista
-Name[pt_BR]=Estilo de Impressão em Lista
-Name[ru]=Список
-Name[sk]=Štýl tlače zoznamu
-Name[sl]=Slog tiskanja v obliki list
-Name[sr]=Листајући стил штампе
-Name[sr@Latn]=Listajući stil štampe
-Name[sv]=List-utskriftsstil
-Name[ta]=அச்சு பாணியை பட்டியலிடு
-Name[tr]=Liste Yazdırma Tarzı
-Name[uk]=Стиль друку списком
-Name[zh_CN]=列表打印样式
-Name[zh_TW]=清單列印風格
+
Comment=This plugin allows you to print out events and to-dos in list form.
-Comment[af]=Hierdie inprop module druk afsprake en te-doen items in lys vorm.
-Comment[bg]=Приставката служи за печат на събитията и задачите в списъчна форма.
-Comment[ca]=Aquest endollable permet imprimir esdeveniments i tasques pendents en forma de llista.
-Comment[cs]=tento modul umožňuje tisknout události a úlohy do seznamu.
-Comment[da]=Dette plugin gør at du kan udskrive begivenheder og opgaver på en liste.
-Comment[de]=Mit diesem Modul können Ereignisse und Aufgaben in Listenform ausgedruckt werden.
-Comment[el]=Αυτό το πρόσθετο σας επιτρέπει να εκτυπώνετε λίστες γεγονότων και προς υλοποίηση λίστες σε μορφή λίστας.
-Comment[es]=Esta extensión le permite imprimir eventos y tareas pendientes en forma de lista.
-Comment[et]=See plugin võimaldab trükkida sündmusi ja ülesandeid nimekirjana.
-Comment[eu]=Plugin honek gertaerak eta egitekoak zerrenda moduan inprimatzeko aukera ematen dizu.
-Comment[fa]=این وصله به شما اجازه می‌دهد که رویدادها و کارهای انجامی را در برگۀ فهرست چاپ کنید.
-Comment[fi]=Tämä liitännäinen mahdollistaa tapahtumien ja tehtävien tulostuksen listana.
-Comment[fr]=Ce module vous permet d'imprimer les évènements et les tâches sous forme de liste
-Comment[fy]=Dizze plugin makket it mooglik om eveneminten en taken yn list foar út te printen.
-Comment[gl]=Este plugin permítelle imprimir os eventos e as tarefas e forma de lista.
-Comment[hu]=Ezzel a modullal listaként kinyomtathatók a feladatok és események.
-Comment[is]=Þetta íforrit gerir þér kleyft að prenta út lista með atburðum og verkþáttum.
-Comment[it]=Questo plugin ti permette di stampare eventi e cose da fare in modalità elenco.
-Comment[ja]=このプラグインにより、リストフォーム内のイベントや To-Do を印刷できるようになります。
-Comment[kk]=Бұл оқиғалар мен жоспарларды тізім түрінде басатын модулі.
-Comment[km]=កម្មវិធី​ជំនួយ​នេះ​អនុញ្ញាត​ឲ្យ​អ្នក​បោះពុម្ព​ព្រឹត្តិការណ៍ និង​ការងារ​ត្រូវ​ធ្វើក្នុង​ទម្រង់​ជា​បញ្ជី ។
-Comment[lt]=Šis priedas leidžia spausdinti įvykius ir darbus sąrašo forma.
-Comment[ms]=Plugin ini membenarkan anda mencetak peristiwa dan tugasan dalam borang senarai.
-Comment[nb]=Med dette programtillegget kan du skrive ut hendelser og gjørelister på liste-form.
-Comment[nds]=Mit dit Moduul köönt Begeefnissen un Opgaven as Listen utdruckt warrn.
-Comment[ne]=यो प्लगइनले तपाईँलाई घटना मुद्रण गर्न र सूची फारममा गर्नुपर्ने कार्यहरू गर्न अनुमति दिन्छ ।
-Comment[nl]=Deze plugin maakt het mogelijk om evenementen en taken in lijstvorm uit te printen.
-Comment[nn]=Dette programtillegget lèt deg skriva ut hendingar og hugselister på listeform.
-Comment[pl]=Ta wtyczka pozwala drukować zdarzenia i zadania w postaci listy.
-Comment[pt]=Este 'plugin' permite-lhe imprimir os eventos e os itens por-fazer no formato de uma lista.
-Comment[pt_BR]=Este plug-in permite que você imprima eventos e pendências em forma de lista.
-Comment[ru]=Этот модуль позволяет печатать список событий и задач.
-Comment[sk]=Tento modul umožní vytlačiť udalosti a úlohy vo forme zoznamu.
-Comment[sl]=Ta vstavek vam omogoča natis dogodkov in čakajočih opravil v obliki seznama.
-Comment[sr]=Овај прикључак вам омогућава да одштампате догађаје и обавезе у облику листе.
-Comment[sr@Latn]=Ovaj priključak vam omogućava da odštampate događaje i obaveze u obliku liste.
-Comment[sv]=Det här insticksprogrammet gör att du kan skriva ut händelser och uppgifter i en lista.
-Comment[ta]=இந்த சொருகுப்பொருள் பட்டியல் படிவத்தில் உள்ள செய்திகள் மற்றும் செய்யவேண்டியவைகளை அச்சிட உங்களை அனுமதிக்கிறது.
-Comment[tr]=Bu eklenti, olayları ve yapılacaklar listesini bir liste biçiminde yazdırmanızı sağlar.
-Comment[uk]=Цей втулок дозволяє друкувати події і завдання у вигляді списку.
-Comment[zh_CN]=此插件允许您以列表格式打印事件和待办事宜。
-Comment[zh_TW]=此外掛程式允許您以清單格式印出事件與待辦事項。
+
Type=Service
X-TDE-ServiceTypes=Calendar/Plugin,KOrganizer/PrintPlugin
X-TDE-KOrganizer-HasSettings=false
diff --git a/korganizer/plugins/printing/whatsnext/calprintwhatsnextconfig_base.ui b/korganizer/plugins/printing/whatsnext/calprintwhatsnextconfig_base.ui
index a3d4fb69..13922223 100644
--- a/korganizer/plugins/printing/whatsnext/calprintwhatsnextconfig_base.ui
+++ b/korganizer/plugins/printing/whatsnext/calprintwhatsnextconfig_base.ui
@@ -169,8 +169,7 @@
<tabstop>mToDate</tabstop>
</tabstops>
<layoutdefaults spacing="6" margin="11"/>
-<includehints>
- <includehint>kdateedit.h</includehint>
- <includehint>kdateedit.h</includehint>
-</includehints>
+<includes>
+ <include location="global" impldecl="in implementation">kdateedit.h</include>
+</includes>
</UI>
diff --git a/korganizer/plugins/printing/whatsnext/whatsnextprint.desktop b/korganizer/plugins/printing/whatsnext/whatsnextprint.desktop
index 79dde69a..862ce375 100644
--- a/korganizer/plugins/printing/whatsnext/whatsnextprint.desktop
+++ b/korganizer/plugins/printing/whatsnext/whatsnextprint.desktop
@@ -1,92 +1,10 @@
[Desktop Entry]
X-TDE-Library=libkorg_whatsnextprint
+
Name=What's Next Print Style
-Name[af]=Wat is volgende - druk styl
-Name[bg]=Стил за отпечатване на "Какво следва"
-Name[ca]=Estil d'impressió Què toca ara?
-Name[cs]=Styl deníku - co je nového
-Name[da]=Hvad er det næste-udskriftsstil
-Name[de]=Was-kommt-als-nächstes Druckstil
-Name[el]=Στυλ εκτύπωσης 'Τί νέο υπάρχει'
-Name[eo]="Kio postsekvas"-Presostilo
-Name[es]=Estilo de impresión de «Qué es lo siguiente»
-Name[et]="Mis järgmiseks?" trükkimise stiil
-Name[eu]="Zer da hurrengoa" inprimatzeko estiloa
-Name[fa]=سبک چاپ بعدی چیست
-Name[fi]=Mitä seuraavaksi -tulostustyyli
-Name[fr]=Impression de la suite du programme
-Name[fy]=Printstyl foar Wat komt der no
-Name[gl]=Imprimir en Estilo Qué Vén Agora
-Name[hu]=A közeljövő eseményeinek kinyomtatása
-Name[is]=Hvað er næst prentstíll
-Name[it]=Stile di stampa "cosa viene dopo"
-Name[ja]=次は何? 印刷スタイル
-Name[kk]="Не істеу?" бетін басу стилі
-Name[km]=រចនាប័ទ្ម​បោះពុម្ព​ការងារ​បន្តបន្ទាប់
-Name[lt]=Ateinančių įvykių spausdinimo stilius
-Name[ms]=Gaya Cetak Apa Seterusnya
-Name[nb]=Utskriftsstil for Hva Nå
-Name[nds]=Druckstil för "Wat kummt nu"-Indrääg
-Name[ne]=पछिल्लो मुद्रण शैली कुन हो
-Name[nl]=Printstijl voor Wat komt er nu
-Name[nn]=Utskriftsstil for «Kva no»
-Name[pl]=Styl drukowania "Do dalej"
-Name[pt]=Estilo de Impressão "O Que Se Segue"
-Name[pt_BR]=Estilo de impressão "A Seguir"
-Name[ru]=Даджест
-Name[sk]=Štýl tlače Čo nasleduje
-Name[sl]=Slog tiskanja v obliki »Kaj je naslednje«
-Name[sr]=Стил штампе „Шта је следеће“
-Name[sr@Latn]=Stil štampe „Šta je sledeće“
-Name[sv]=Vad står på tur-utskriftsstil
-Name[ta]=அடுத்டு என்ன அச்சுப் பாணி
-Name[tr]=Sıradaki Nedir Yazdırma Tarzı
-Name[uk]=Стиль друку "Що далі?"
-Name[zh_CN]=下步安排打印样式
-Name[zh_TW]=「下一個是什麼」列印風格
+
Comment=This plugin allows you to print out a list of all upcoming events and to-dos.
-Comment[af]=Hierdie inprop module druk 'n lys van al die opkomende afsprake en te-doen itemme.
-Comment[bg]=Приставката служи за печат на бъдещи събития и задачи в списъчна форма.
-Comment[ca]=Aquest endollable us permet imprimir una llista de tots els esdeveniments i tasques pendents propers.
-Comment[cs]=Tento modul umožňuje tisk seznamu všech budoucích událostí a úkolů.
-Comment[da]=Dette plugin gør at du kan udskrive en liste med alle kommende begivenheder og opgaver.
-Comment[de]=Mit diesem Modul kann eine Liste der als nächstes anliegenden Ereignisse und Aufgaben gedruckt werden
-Comment[el]=Αυτό το πρόσθετο σας επιτρέπει να εκτυπώνετε μία λίστα γεγονότων ή προς υλοποίηση εργασιών.
-Comment[es]=Esta extensión le permite imprimir una lista de todos los eventos y tareas pendientes futuros.
-Comment[et]=See plugin võimaldab trükkida kõigi eelseisvate sündmuste ja ülesannete nimekirja.
-Comment[eu]=Plugin honek gertatuko diren gertaera eta egitekoen zerrenda bat inprimatzeko aukera ematen dizu.
-Comment[fa]=این وصله به شما اجازه می‌دهد که فهرستی از همۀ رویدادها و کارهای انجامی که بالا می‌آیند را چاپ کنید.
-Comment[fi]=Tämä liitännäinen mahdollistaa tulevien tapahtumien ja tehtävien tulostuksen listana.
-Comment[fr]=Ce module vous permet d'imprimer la liste des prochaines évènements et des prochaines tâches.
-Comment[fy]=Dizze plugin makket it mooglik om in list fan alle kommende eveneminten en taken út te printsjen.
-Comment[gl]=Este engadido permítelle imprimir unha lista de todos os eventos e tarefas por vir.
-Comment[hu]=Ezzel a modullal kinyomtathatók a rövidesen aktuálissá váló feladatok és események.
-Comment[is]=Þetta íforrit gerir þér kleyft að prenta út lista yfir alla væntanlega atburði og verkþætti.
-Comment[it]=Questo plugin vi permette di stampare una lista dei prossimi eventi e cose da fare.
-Comment[ja]=このプラグインにより、将来のすべてのイベントや To-Do のリストを印刷できるようになります。
-Comment[kk]=Бұл келер оқиғалар мен жоспарлар тізімін басып шығаратын модулі.
-Comment[km]=កម្មវិធី​ជំនួយ​នេះ​អនុញ្ញាត​ឲ្យ​អ្នក​បោះពុម្ព​បញ្ជី​នៃ​ព្រឹត្តិការណ៍ និង​ការងារ​ត្រូវ​ធ្វើ​បន្តបន្ទាប់
-Comment[lt]=Šis priedas leidžia spausdinti sąrašą visų artėjančių įvykių ir darbų.
-Comment[ms]=Plugin ini membenarkan anda mencetak senarai semua peristiwa dan tugasan mendatang.
-Comment[nb]=Med dette programtillegget kan du skrive ut en liste over kommende hendelser og ting som skal gjøres.
-Comment[nds]=Mit dit Moduul kann en List vun de direktemang nakamen Begeefnissen un Opgaven utdruckt warrn.
-Comment[ne]=यो प्लगइनले तपाईँलाई सबै पछि हुने घटना र गर्नुपर्ने कार्यहरुको सूचीको मुद्रण गर्न अनुमति दिन्छ ।
-Comment[nl]=Deze plugin maakt het mogelijk om een lijst van alle komende evenementen en taken uit te printen.
-Comment[nn]=Dette programtillegget lèt deg skriva ut ei liste over alle dei komande hendingane og oppføringane i hugselista.
-Comment[pl]=Ta wtyczka pozwala wydrukować wszystkie przyszłe zdarzenia i zadania.
-Comment[pt]=Este 'plugin' permite-lhe imprimir uma lista com todos os eventos e itens por-fazer próximos.
-Comment[pt_BR]=Este plug-in permite que você imprima uma lista de todos os eventos e pendências que estão por vir.
-Comment[ru]=Этот модуль позволяет печатать список будущих событий и задач.
-Comment[sk]=Tento modul umožní vytlačiť zoznam všetkých nadchádzajúcich udalostí a úloh.
-Comment[sl]=Ta vstavek vam omogoča natis seznama vseh prihahajočih dogodkov in čakajočih opravil.
-Comment[sr]=Овај прикључак вам омогућава да одштампате листу свих наступајућих догађаја и обавеза.
-Comment[sr@Latn]=Ovaj priključak vam omogućava da odštampate listu svih nastupajućih događaja i obaveza.
-Comment[sv]=Det här insticksprogrammet gör att du kan skriva ut en lista med alla kommande händelser och uppgifter.
-Comment[ta]=இந்த சொருகுப்பொருள் ஒரு வரப்போகும் நிகழ்வுகளின் பட்டியல் மற்றும் செய்யவேண்டியவைகளை அச்சிட உங்களை அனுமதிக்கிறது.
-Comment[tr]=Bu eklenti, sıradaki olayları ve yapılacaklar listesini bir liste biçiminde yazdırmanızı sağlar.
-Comment[uk]=Цей втулок дозволяє друкувати список всіх майбутніх подій та завдань.
-Comment[zh_CN]=此插件允许您打印所有即将到达的事件和代办事宜。
-Comment[zh_TW]=此外掛程式允許您印出即將發生的事件與待辦事項清單。
+
Type=Service
X-TDE-ServiceTypes=Calendar/Plugin,KOrganizer/PrintPlugin
X-TDE-KOrganizer-HasSettings=false
diff --git a/korganizer/plugins/printing/year/CMakeLists.txt b/korganizer/plugins/printing/year/CMakeLists.txt
index f3b9893e..a77a62f9 100644
--- a/korganizer/plugins/printing/year/CMakeLists.txt
+++ b/korganizer/plugins/printing/year/CMakeLists.txt
@@ -26,7 +26,11 @@ link_directories(
##### other data ################################
-install( FILES yearprint.desktop DESTINATION ${SERVICES_INSTALL_DIR}/korganizer )
+tde_create_translated_desktop(
+ SOURCE yearprint.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/korganizer
+ PO_DIR korganizer-desktops
+)
##### libkorg_yearlyprint (module) ##############
diff --git a/korganizer/plugins/printing/year/yearprint.desktop b/korganizer/plugins/printing/year/yearprint.desktop
index ad0f518d..fb56645d 100644
--- a/korganizer/plugins/printing/year/yearprint.desktop
+++ b/korganizer/plugins/printing/year/yearprint.desktop
@@ -1,81 +1,10 @@
[Desktop Entry]
X-TDE-Library=libkorg_yearlyprint
+
Name=Yearly Print Style
-Name[af]=Druk styl: Jaarliks
-Name[bg]=Стил за отпечатване на годишно разписание
-Name[ca]=Estil d'impressió anual
-Name[cs]=Roční tiskový styl
-Name[da]=Yearly udskriftsstil
-Name[de]=Jahres-Druckstil
-Name[el]=Στυλ ετήσιας εκτύπωσης
-Name[eo]=Pojara Presostilo
-Name[es]=Estilo de impresión del diario
-Name[et]=Aastakalendri trükkimise stiil
-Name[fa]=سبک چاپ نشریه
-Name[fr]=Impression annuelle
-Name[fy]=Printstyl foar jierkalinder
-Name[gl]=Estilo de impresión anual
-Name[hu]=Éves naptár nyomtatási stílus
-Name[it]=Stile di stampa annuale
-Name[ja]=年毎印刷スタイル
-Name[kk]=Жылдық басу стилі
-Name[km]=រចនាប័ទ្ម​បោះពុម្ព​ប្រចាំ​ឆ្នាំ
-Name[lt]=Metų spausdinimo stilius
-Name[nb]=Utskriftsstil for kalender
-Name[nds]=Johrkalenner-Druckstil
-Name[ne]=वार्षिक मुद्रण शैली
-Name[nl]=Printstijl voor jaarkalender
-Name[pl]=Styl drukowania roku
-Name[pt]=Estilo de Impressão em Anuário
-Name[pt_BR]=Estilo de Impressão de Calendário Anual
-Name[ru]=Календарь на год
-Name[sk]=Štýl tlače pre rok
-Name[sl]=Letni slog tiskanja
-Name[sr]=Годишњи стил штампе
-Name[sr@Latn]=Godišnji stil štampe
-Name[sv]=Årlig utskriftsstil
-Name[tr]=Yıllık Yazdırma Stili
-Name[uk]=Стиль друку щорічником
-Name[zh_CN]=按年打印样式
-Name[zh_TW]=年度列印風格
+
Comment=This plugin allows you to print out a yearly calendar.
-Comment[af]=Hierdie inprop module maak dit moontlik om 'n kalender vir 'n hele jaar te druk.
-Comment[bg]=Приставката служи за печат на годишния календар.
-Comment[ca]=Aquest endollable us permet imprimir un calendari anual.
-Comment[cs]=Tento modul umožňuje tisk ročního kalendáře.
-Comment[da]=Dette plugin gør at du kan udskrive en årlig kalender
-Comment[de]=Mit diesem Modul können Jahresübersichten gedruckt werden.
-Comment[el]=Αυτό το πρόσθετο σας επιτρέπει να εκτυπώσετε ένα ετήσιο ημερολόγιο.
-Comment[es]=Este plugin le permite imprimir entradas del diario.
-Comment[et]=See plugin võimaldab trükkida terve aasta kalendri.
-Comment[fa]=این وصله، به شما اجازه می‌دهد که مدخلهای نشریه )مدخلهای روزانه( را چاپ کنید.
-Comment[fr]=Ce module vous permet d'imprimer l'ensemble de l'année
-Comment[fy]=Dizze plugin makket it mooglik om in jierkalinder út te printsjen.
-Comment[gl]=Este engadido permítelle imprimir un calendario anual.
-Comment[hu]=Ez a modul egy egész éves naptár kinyomtatását teszi lehetővé.
-Comment[it]=Questo plugin ti permette di stampare un calendario annuale.
-Comment[ja]=このプラグインにより、年毎のカレンダーを印刷できるようになります。
-Comment[kk]=Бұл жылдық күнтізбені басып шығаратын модулі.
-Comment[km]=កម្មវិធី​ជំនួយ​នេះ​អនុញ្ញាត​ឲ្យ​អ្នក​បោះពុម្ព​​ប្រតិទិន​ប្រចាំ​ឆ្នាំ ។
-Comment[lt]=Šis priedas leidžia spausdinti metų kalendorių.
-Comment[mk]=Овој приклучок Ви овозможува да испечатите годишен календар.
-Comment[nb]=Med dette programtillegget kan du skrive ut en årskalender.
-Comment[nds]=Mit dit Moduul kannst Du en Kalenner för't hele Johr utdrucken.
-Comment[ne]=यो प्लगइनले तपाईँलाई वार्षिक पात्रो मुद्रण गर्न अनुमति दिन्छ ।
-Comment[nl]=Deze plugin maakt het mogelijk om een jaarkalender af te drukken.
-Comment[pl]=Ta wtyczka pozwala drukować roczny kalendarz.
-Comment[pt]=Este 'plugin' permite-lhe imprimir um calendário anual.
-Comment[pt_BR]=Este plug-in permite imprimir um calendário anual.
-Comment[ru]=Этот модуль позволяет печатать календарь на год.
-Comment[sk]=Tento modul vám umožní vytlačiť kalendár na rok.
-Comment[sl]=Ta vstavek vam omogoča natis letnega koledarja.
-Comment[sr]=Овај прикључак вам омогућава да одштампате годишњи календар.
-Comment[sr@Latn]=Ovaj priključak vam omogućava da odštampate godišnji kalendar.
-Comment[sv]=Det här insticksprogrammet gör att du kan skriva ut en årlig kalender.
-Comment[tr]=Bu eklenti, yıllık takvimi yazıcıdan çıkartmanızı sağlar.
-Comment[uk]=Цей журнал надає можливість друкувати щорічний календар.
-Comment[zh_CN]=此插件允许您打印年历。
-Comment[zh_TW]=此外掛程式讓您印出年曆。
+
Type=Service
X-TDE-ServiceTypes=Calendar/Plugin,KOrganizer/PrintPlugin
X-TDE-KOrganizer-HasSettings=false
diff --git a/korganizer/plugins/projectview/koprojectview.cpp b/korganizer/plugins/projectview/koprojectview.cpp
index 033b6ba6..8b0e5cbf 100644
--- a/korganizer/plugins/projectview/koprojectview.cpp
+++ b/korganizer/plugins/projectview/koprojectview.cpp
@@ -79,15 +79,15 @@ KOProjectView::KOProjectView(Calendar *calendar,TQWidget* parent,
TQPushButton *zoomIn = new TQPushButton(i18n("Zoom In"),this);
topBar->addWidget(zoomIn,0);
- connect(zoomIn,TQT_SIGNAL(clicked()),TQT_SLOT(zoomIn()));
+ connect(zoomIn,TQ_SIGNAL(clicked()),TQ_SLOT(zoomIn()));
TQPushButton *zoomOut = new TQPushButton(i18n("Zoom Out"),this);
topBar->addWidget(zoomOut,0);
- connect(zoomOut,TQT_SIGNAL(clicked()),TQT_SLOT(zoomOut()));
+ connect(zoomOut,TQ_SIGNAL(clicked()),TQ_SLOT(zoomOut()));
TQPushButton *menuButton = new TQPushButton(i18n("Select Mode"),this);
topBar->addWidget(menuButton,0);
- connect(menuButton,TQT_SIGNAL(clicked()),TQT_SLOT(showModeMenu()));
+ connect(menuButton,TQ_SIGNAL(clicked()),TQ_SLOT(showModeMenu()));
createMainTask();
@@ -239,8 +239,8 @@ KGanttItem *KOProjectView::createTask(KGanttItem *parent,Todo *todo)
KGanttItem *task = new KOProjectViewItem(todo,parent,todo->summary(),startDt,
endDt);
- connect(task,TQT_SIGNAL(changed(KGanttItem*, KGanttItem::Change)),
- TQT_SLOT(taskChanged(KGanttItem*,KGanttItem::Change)));
+ connect(task,TQ_SIGNAL(changed(KGanttItem*, KGanttItem::Change)),
+ TQ_SLOT(taskChanged(KGanttItem*,KGanttItem::Change)));
if (todo->relations().count() > 0) {
task->setBrush(TQBrush(TQColor(240,240,240), TQBrush::Dense4Pattern));
}
diff --git a/korganizer/plugins/projectview/koprojectview.h b/korganizer/plugins/projectview/koprojectview.h
index 5415d381..fada01d5 100644
--- a/korganizer/plugins/projectview/koprojectview.h
+++ b/korganizer/plugins/projectview/koprojectview.h
@@ -65,7 +65,7 @@ class KOProjectViewItem : public KGanttItem {
*/
class KOProjectView : public KOrg::BaseView
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOProjectView(Calendar *, TQWidget* parent=0, const char* name=0 );
diff --git a/korganizer/plugins/projectview/projectview.cpp b/korganizer/plugins/projectview/projectview.cpp
index 60257623..db354184 100644
--- a/korganizer/plugins/projectview/projectview.cpp
+++ b/korganizer/plugins/projectview/projectview.cpp
@@ -52,7 +52,7 @@ ProjectView::ProjectView(KOrg::MainWindow *parent, const char *name) :
setXMLFile("plugins/projectviewui.rc");
- new TDEAction(i18n("&Project"), "project", 0, this, TQT_SLOT(showView()),
+ new TDEAction(i18n("&Project"), "project", 0, this, TQ_SLOT(showView()),
actionCollection(), "view_project");
}
diff --git a/korganizer/plugins/projectview/projectview.desktop b/korganizer/plugins/projectview/projectview.desktop
index f687fe0d..b09ca6a8 100644
--- a/korganizer/plugins/projectview/projectview.desktop
+++ b/korganizer/plugins/projectview/projectview.desktop
@@ -1,109 +1,10 @@
[Desktop Entry]
X-TDE-Library=libkorg_projectview
+
Name=Project View Plugin for KOrganizer
-Name[af]=Projek Besigtig Inplak vir Korganizer
-Name[az]=KOrganizer Layihə Nümayiş Əlavəsi
-Name[bg]=Приставка на организатора за преглед на проекти
-Name[br]=Lugent gwell raktres evit KOrganizer
-Name[bs]=Preglednik projekata, dodatak za KOrganizer
-Name[ca]=Endollable de vista de projectes per a KOrganizer
-Name[cs]=Modul projektového pohledu pro KOrganizer
-Name[cy]=Ategyn Golwg Cywaith ar gyfer KTrefnydd
-Name[da]=Projektvisning-plugin for KOrganizer
-Name[de]=Projektbetrachter-Modul für KOrganizer
-Name[el]=Πρόσθετο προβολής έργου του KOrganizer
-Name[eo]=Projektrigardo-kromaĵo por Organizilo
-Name[es]=Plugin de visor de proyectos para KOrganizer
-Name[et]=KOrganizeri projektivaate plugin
-Name[eu]=KOrganizer-en proiektu ikuspegi plugin-a
-Name[fa]=وصلۀ نمای پروژه برای KOrganizer
-Name[fi]=Projektinäkymäliitännäinen KOrganizeriin
-Name[fr]=Module afficheur de projet pour KOrganizer
-Name[fy]=Projektwerjefteplugin foar KOrganizer
-Name[gl]=Extensión para Vista de Proxecto para KOrganizer
-Name[he]=תוסף תצוגת פרוייקט ל-KOrganizer
-Name[hi]=के-आर्गेनाइज़र के लिए परियोजना दृश्य प्लगइन
-Name[hr]=KOrganizer dodatak za pogled na projekt
-Name[hu]=Projektnézegető bővítőmodul a KOrganizerhez
-Name[is]=Verkefnasýnaríforrit fyrir KOrganizer
-Name[it]=Plugin di vista dei progetti per KOrganizer
-Name[ja]=KOrganizer プロジェクトビュー プラグイン
-Name[ka]= KOrganizer-ის პროექტის ხედის მოდული
-Name[kk]=KOrganizer-дің жоба көрінісінің модулі
-Name[km]=កម្មវិធី​ជំនួយ​ទិដ្ឋភាព​គម្រោង​សម្រាប់ KOrganizer
-Name[lt]=Projekto peržiūros priedas, skirtas KOrganizer
-Name[lv]=Projekta Skatījuma Iespraudnis KOrganaizeram
-Name[ms]=Plugin Paparan Projek untuk KOrganizer
-Name[nb]=Programtillegg for prosjektvisning i KOrganizer
-Name[nds]=Projektkieker-Moduul för KOrganizer
-Name[ne]=केडीई आयोजकका लागि परियोजना दृश्य प्लगइन
-Name[nl]=Projectenweergaveplugin voor KOrganizer
-Name[nn]=Programtillegg for prosjektvising i KOrganizer
-Name[nso]=Plugin ya Pono ya Porojeke ya KMmeakanyi
-Name[pl]=Wtyczka przeglądania projektów dla Organizatora
-Name[pt]='Plugin' de Gestão de Projectos para o KOrganizer
-Name[pt_BR]=Plug-in de Visualização de Projetos para o KOrganizer
-Name[ro]=Modul vizualizare proiect pentru KOrganizer
-Name[ru]=Просмотр проекта
-Name[sk]=KOrganizer modul pre projektový pohľad
-Name[sl]=Vstavek za projektni prikaz za KOrganizer
-Name[sr]=Прикључак KOrganizer-а за приказ пројекта
-Name[sr@Latn]=Priključak KOrganizer-a za prikaz projekta
-Name[sv]=Projektvyinsticksprogram för Korganizer
-Name[ta]=கேஅமைப்பாளருக்கான திட்டக் காட்சி சொருகுப்பொருள்
-Name[tg]=Намоиши нақшот
-Name[tr]=KOrganizer için Proje Görüntüleme eklentisi
-Name[uk]=Втулок перегляду проектів для KOrganizer
-Name[ven]=Plugin ya mbonalelo ya phurodzhekiti ya mudzudzanyi wa K
-Name[vi]=Plugin xem dự án cho KOrganizer
-Name[xh]=Iprojekthi Ijongela KOrganize i Plugin
-Name[zh_CN]=KOrganizer 的项目查看插件
-Name[zh_TW]=KOrganizer 專案檢視外掛程式
-Name[zu]=Project Khombisa Iplagi ye KUmgqugquzeli
+
Comment=This plugin provides a project planning view for KOrganizer (like the to-do or month views). If you enable this plugin, you can switch to the project view and view your to-do list like in a project planner.
-Comment[af]=Hierdie inprop module verskaf 'n projek beplanning aansig vir KOrganizer. Dit lyk baie soos die te-doen of maand aansig. As hierdie inprop module geaktiveer is, kan jy na die projek aansig wissel en na jou te-doen in projek beplanner formaat kyk.
-Comment[bg]=Приставката служи за планиране и управление на проекти.
-Comment[ca]=Aquest endollable proporciona una vista de planificació de projectes per a KOrganizer (com ara les vistes de pendents o mensual). Si habiliteu aquest endollable, podeu canviar a la vista de projecte i veure la llista de tasques pendents com en un planificador de projectes.
-Comment[cs]=Tento modul poskytuje projektový pohled pro KOrganizer (podobnějako úkoly nebo měsíční pohled). Pokud jej povolíte, může přepnout do projektového pohledu a prohlížet si úkoly jako v projektovém plánovači.
-Comment[da]=Dette plugin sørger for en projektplanvisning i Korganizer (som ligner gøremål eller månedsvisning). Hvis du aktiverer dette plugin kan du skifte til projektvisning og vise din gøremålsliste som i et projektplan-værktøj.
-Comment[de]=Mit diesem Modul wird KOrganizer um eine Projektplanungsansicht (ähnlich der Aufgaben- und Monatsansicht) erweitert. Wenn Sie es einschalten, können Sie zur Projektansicht wechseln und sich Ihre Aufgaben wie in einem Projektplaner ansehen.
-Comment[el]=Αυτό το πρόσθετο παρέχει μία προβολή σχεδιασμού έργου για το KOrganizer (όπως η προβολή προς υλοποίηση εργασιών και μηνών). Αν το ενεργοποιήσετε, μπορείτε να αλλάξετε στην προβολή έργου και να δείτε τη λίστα των προς υλοποίηση εργασιών σας σαν σε ένα προγραμματιστή έργου.
-Comment[es]=Esta extensión proporciona una vista de planificación de proyectos para KOrganizer (como las vistas de tareas pendientes o de mes). Si activa esta extensión, puede pasar a la vista del proyecto y ver la lista de tareas pendientes como en un planificador de proyectos.
-Comment[et]=See plugin lisab KOrganizerile projekti planeerimise vaate (nagu ülesannete või kuuvaade). Selle lubamisel saab lülituda projektivaatele ning näha oma ülesannete nimekirja projektiplaneerija moodi.
-Comment[eu]=Plugin honek KOrganizer-en proiektuaren plangintza ikuspegi bat eskeintzen du (egiteko edo hilabete ikupegien antzera). Plugin hau gaitzen baduzu, proiektuaren ikuspegira alda zaitezke eta egitekoak proiektu plangintza batean bezala ikus dezakezu.
-Comment[fa]=این وصله، برای KOrganizer یک نمای طراحی پروژه )مثل نماهای کارهای انجامی یا ماهانه( فراهم می‌‌کند. اگر این وصله را فعال کنید، می‌توانید به نمای پروژه سودهی کرده و مانند طراح پروژه، فهرست کارهای انجامی خود را مشاهده کنید.
-Comment[fi]=Tämä liitännäinen mahdollistaa projektin suunnittelunäkymän KOrganizeriin (kuten tehtävälista- tai kuukausinäkymän). Jos kytket tämän päälle, voit vaihtaa projektinäkymään ja katsoa tehtävälistaa kuten projektin suunnittelussa.
-Comment[fr]=Ce module propose une vue en projet pour KOrganizer. Si vous activez ce module, vous pourrez afficher vos tâches sous la forme d'un planning projet.
-Comment[fy]=Dizze plugin jout jo in projektwerjefte foar KOrganizer (krekt as in takenlist of moannewerjefte). Wannear jo dizze plugin ynskeakelje, kinne jo dizze werjefte oansette om jo takenlist te besjen as projektplanner.
-Comment[gl]=Este engadido fornece unha vista planificadora de proxectos para KOrganizer (como as vistas de tarefas ou mensuais). Se habilita este engadid, pode trocar á vista de proxecto e ver a súa lista de tarefas nun planificador de proxectos.
-Comment[hu]=Ezzel a modullal projekttervező nézet alakítható ki a KOrganizerben (például a feladatokhoz vagy a havi nézetekhez). Ha aktiválja ezt a modult, átválthat projektnézetbe, hogy a feladatok projekttervként legyenek megtekinthetők.
-Comment[is]=Þetta íforrit veitir verkskipulagssýn fyrir KOrganizer (svipað og verkþátta eða mánaðarsýn). Ef þú virkjar þetta íforrit, getur þú á einfaldan hátt skipt yfir í verkefnasýn og skoðað verkþáttalistann þinn í skipuleggjara.
-Comment[it]=Questo plugin fornisce una vista di pianificazione progetto per KOrganizer (come la vista delle cose da fare o quella mensile). Se abiliti questo plugin, puoi passare dalla vista progetto alla vista delle cose da fare come in un pianificatore di progetti.
-Comment[ja]=このプラグインは KOrganizer にプロジェクト計画ビューを提供します (To-Do ビューや月ビューなど)。このプラグインを有効にすると、プロジェクトビューに切り替えて、スケジュール管理ソフトのように To-Do リストを見ることができます。
-Comment[ka]=ეს მოდული უზრუნველყოფს პროექტის დაგეგმარების ხედს KOrganizer-სთვის(მაგ.: დავალებები ან თვიური მიმოხილვა). თუ ამ მოდულს გაააქტიურებთ,შეგიძლიათ გადართოთ პროექტის ხედზე და იხილოთ თქვენი დავალებათა სია პროექტის მგეგმავის სახით.
-Comment[kk]=Бұл KOrganizer-нің жобаны жоспарлау көрінісінің модулі. Модулін орнатсаңыз, осы көрініске ауысып жоспар тізімініңізді жоба жоспарлағышындағы түріне келтіре аласыз.
-Comment[km]=កម្មវិធី​ជំនួយ​នេះ​ផ្ដល់​នូវ​ទិដ្ឋភាព​រៀបចំ​គម្រោង​សម្រាប់ korganizer (ដូចជា ទិដ្ឋភាព​ការងារ​ត្រូវ​ធ្វើ ឬ ទិដ្ឋភាព​ខែ​ជាដើម) ។ បើ​អ្នក​ធ្វើ​ឲ្យ​កម្មវិធី​ជំនួយ​នេះ​ប្រើ​បាន អ្នក​នឹង​អាច​ប្ដូរ​ទិដ្ឋភាព​គម្រោង ហើយ​មើល​ព្រឹត្តិការណ៍​របស់​អ្នក​ដូចជា​នៅ​ក្នុងកម្មវិធី​រៀបចំ​គម្រោង​អញ្ចឹង​ដែរ ។
-Comment[lt]=Šis priedas pateikia KOrganizaer projekto planavimo vaizdą (panašiai kaip darbų ar mėnesio vaizdai). Jei įjungsite šį įskiepį, galėsite peršokti į projekto vaizdą ir peržiūrėti savo darbų sąrašą kaip projektą.
-Comment[ms]=Plugin ini menyediakan paparan perancangan projek untuk KOrganizer (seperti tugasan atau paparan bulan). Jika plugin ini diaktifkan, anda boleh beralih ke paparan projek dan paparkan senarai tugasan seperti dalam perancang projek.
-Comment[nb]=Dette programtillegget lager en prosjektplan-visning for KOrganizer (som i gjørelister og månedsvisninger). Slår du på dette programtillegget kan du bytte til prosjektvisning og se på gjørelista som i en prosjektplan.
-Comment[nds]=Mit dit Moduul kannst Du in KOrganizer en Projektplaan-Ansicht opropen (jüst as de Opgaven- oder Maandansichten). Wenn Du dit Moduul aktiveerst, kannst Du na de Projektansicht wesseln un Dien Opgavenlist as mit en Projektplaner ankieken.
-Comment[ne]=यो प्लगइनले केडीई आयोजकका लागि परियोजना योजना दृश्य उपलब्ध गराउछ (जस्तै: कार्य गर्न वा महिना हेर्न) । तपाईँले यो प्लगइन सक्षम पारेमा, परियोजना दृश्यमा स्विच गर्न र परियोजना योजनाकारमा जस्तै तपाईँको कार्य गर्ने सूची हेर्न सक्नुहुन्छ ।
-Comment[nl]=Deze plugin biedt een projectweergave voor KOrganizer (net zoals een takenlijst of maandweergave). Wanneer u deze plugin aanzet, kunt u deze weergave aanzetten om uw takenlijst te bekijken als een projectplanner.
-Comment[nn]=Dette programtillegget lagar ei prosjektplanvising for KOrganizer (slik som oppgåve- eller månadsvisingane). Dersom du brukar dette programtillegget, kan du visa oppgåvelista som i ein prosjektplanleggjar.
-Comment[pl]=Ta wtyczka tworzy widok planowania projektu w KOrganizerze (tak jak widok zadań do zrobienia lub widok miesiąca). Po włączeniu tej wtyczki możliwe jest przełączenie się na widok projektu zadań do zrobienia.
-Comment[pt]=Este 'plugin' oferece uma vista de planeamento de projectos para o KOrganizer (como as vistas de itens por-fazer ou mensais). Se activar este 'plugin', poderá mudar para a vista de projecto e ver a sua lista de itens por-fazer como num planeador de projectos.
-Comment[pt_BR]=Este plug-in fornece uma visão de planejamento de projeto para o KOrganizer (como as visões de pendências ou de mês). Se você ativar este plugin, você pode mudar para a visão de projeto e ver a sua lista de pendências como num software de planejamento de projetos.
-Comment[ru]=Этот модуль показывает проект для органайзера TDE. Если вы подключите этот модуль, вы можете посмотреть ваши задачи в виде проекта.
-Comment[sk]=Tento modul poskytuje pohľad na plánovanie projektu pre KOrganizer (ako sú úlohy alebo mesačné pohľady). Ak povolíte tento modul, môžete prepínať projektový pohľad a pohľad na zoznam úloh ako plánovač projektu.
-Comment[sl]=Ta vstavek prikazuje projektno načrtovanje za KOrganizer (kot prikaz opravil ali mesečni prikaz). Če omogočite ta vstavek, lahko preklopite na projektni prikaz in si ogledate seznam opravil kot v projektnem prikazu.
-Comment[sr]=Овај прикључак пружа приказ планирања пројекта за KOrganizer (као месечни или прикази обавеза). Ако укључите овај прикључак, можете се пребацити на приказ пројекта и разгледати своју листу послова у планеру пројекта.
-Comment[sr@Latn]=Ovaj priključak pruža prikaz planiranja projekta za KOrganizer (kao mesečni ili prikazi obaveza). Ako uključite ovaj priključak, možete se prebaciti na prikaz projekta i razgledati svoju listu poslova u planeru projekta.
-Comment[sv]=Insticksprogrammet tillhandahåller en projektplaneringsvy i Korganizer (som liknar uppgifts- eller månadsvyn). Om du aktiverar insticksprogrammet kan du byta till projektvyn och visa din uppgiftslista som i ett projektplaneringsverktyg.
-Comment[ta]=இந்த சொருகுப்பொருள் KOrganizer-க்கான ஒரு திட்டப்பணி செய்யும் காட்சியை வழங்குகிறது. (செய்யவேண்டியது அல்லது மாத காட்சிகள் போன்ற). இது செயலில் இருந்தால், நீங்கள் திட்டக்காட்சிக்கு செல்லலாம் திட்ட அமைப்பான் போன்ற திட்டக் காட்சிக்கும் செல்லலாம்.
-Comment[tr]=Bu eklenti, KOrganizer için bir proje planı görünümü sağlar (yapılacaklar ve aylık görünüm gibi). Eğer bu eklentiyi aktif hale getirirseniz, proje görünümüne geçebilir ve yapılacaklar listenizi proje planlayıcısı şeklinde görüntüleyebilirsiniz.
-Comment[uk]=Цей втулок показує вигляд планування проектів у KOrganizer (подібно до виглядів завдань або місячного). Якщо увімкнути цей втулок, то можна переглядати ваш список завдань у вигляді плановика проектів.
-Comment[zh_CN]=此插件为 KOrganizer 提供了项目规划视图(类似于待办或月视图)。如果您启用了此插件,您可以像项目规划程序那样切换到项目视图并查看您的待办清单。
-Comment[zh_TW]=此外掛程式提供 KOrganizer 專案計畫檢視。如果您開啟此外掛程式,您可以切換專案檢視與待辦事項清單。
+
Type=Service
X-TDE-ServiceTypes=KOrganizer/Part
X-TDE-KOrganizer-HasSettings=false
diff --git a/korganizer/plugins/projectview/projectview.h b/korganizer/plugins/projectview/projectview.h
index 1c78ad84..cbb0e8f0 100644
--- a/korganizer/plugins/projectview/projectview.h
+++ b/korganizer/plugins/projectview/projectview.h
@@ -24,7 +24,7 @@
#include <korganizer/calendarviewbase.h>
class ProjectView : public KOrg::Part {
- Q_OBJECT
+ TQ_OBJECT
public:
ProjectView(KOrg::MainWindow *, const char *);
diff --git a/korganizer/plugins/timespanview/kotimespanview.cpp b/korganizer/plugins/timespanview/kotimespanview.cpp
index 8445edf4..00910bfe 100644
--- a/korganizer/plugins/timespanview/kotimespanview.cpp
+++ b/korganizer/plugins/timespanview/kotimespanview.cpp
@@ -44,7 +44,7 @@ KOTimeSpanView::KOTimeSpanView(Calendar *calendar, TQWidget *parent,
mTimeSpanWidget = new TimeSpanWidget( this );
topLayout->addWidget( mTimeSpanWidget );
- connect( mTimeSpanWidget, TQT_SIGNAL( dateRangeChanged() ), TQT_SLOT( updateView() ) );
+ connect( mTimeSpanWidget, TQ_SIGNAL( dateRangeChanged() ), TQ_SLOT( updateView() ) );
}
KOTimeSpanView::~KOTimeSpanView()
diff --git a/korganizer/plugins/timespanview/kotimespanview.h b/korganizer/plugins/timespanview/kotimespanview.h
index b9dec86a..2e487880 100644
--- a/korganizer/plugins/timespanview/kotimespanview.h
+++ b/korganizer/plugins/timespanview/kotimespanview.h
@@ -31,7 +31,7 @@ class TimeSpanWidget;
class KOTimeSpanView : public KOEventView
{
- Q_OBJECT
+ TQ_OBJECT
public:
KOTimeSpanView( Calendar *calendar, TQWidget *parent = 0,
diff --git a/korganizer/plugins/timespanview/lineview.h b/korganizer/plugins/timespanview/lineview.h
index 5db02c09..26944153 100644
--- a/korganizer/plugins/timespanview/lineview.h
+++ b/korganizer/plugins/timespanview/lineview.h
@@ -29,7 +29,7 @@
class LineView : public TQScrollView
{
- Q_OBJECT
+ TQ_OBJECT
public:
LineView( TQWidget *parent = 0, const char *name = 0 );
diff --git a/korganizer/plugins/timespanview/timeline.h b/korganizer/plugins/timespanview/timeline.h
index 0cb9ad5b..47d3a5d9 100644
--- a/korganizer/plugins/timespanview/timeline.h
+++ b/korganizer/plugins/timespanview/timeline.h
@@ -29,7 +29,7 @@
class TimeLine : public TQScrollView
{
- Q_OBJECT
+ TQ_OBJECT
public:
TimeLine( TQWidget *parent = 0, const char *name = 0 );
diff --git a/korganizer/plugins/timespanview/timespanview.cpp b/korganizer/plugins/timespanview/timespanview.cpp
index 4b3df7ef..5ff4cf0a 100644
--- a/korganizer/plugins/timespanview/timespanview.cpp
+++ b/korganizer/plugins/timespanview/timespanview.cpp
@@ -51,7 +51,7 @@ TimespanView::TimespanView(KOrg::MainWindow *parent, const char *name) :
setXMLFile( "plugins/timespanviewui.rc" );
- new TDEAction( i18n("&Timespan"), "timespan", 0, this, TQT_SLOT( showView() ),
+ new TDEAction( i18n("&Timespan"), "timespan", 0, this, TQ_SLOT( showView() ),
actionCollection(), "view_timespan" );
}
diff --git a/korganizer/plugins/timespanview/timespanview.desktop b/korganizer/plugins/timespanview/timespanview.desktop
index 509e1a79..bc1e7958 100644
--- a/korganizer/plugins/timespanview/timespanview.desktop
+++ b/korganizer/plugins/timespanview/timespanview.desktop
@@ -1,91 +1,10 @@
[Desktop Entry]
X-TDE-Library=libkorg_timespanview
+
Name=Timespan View Plugin for KOrganizer
-Name[af]=Tydlyn aansig inprop module vir KOrganizer
-Name[bg]=Приставка за разпределението на времето в организатора
-Name[ca]=Endollable de vista de període temporal per a KOrganizer
-Name[cs]=Modul časového pohledu pro KOrganizer
-Name[da]=Timespan-visning-plugin for KOrganizer
-Name[de]=Zeitspannenansicht-Modul für KOrganizer
-Name[el]=Πρόσθετο προβολής εργασιών του KOrganizer
-Name[eo]=Tempgamrigardo-kromaĵo por Organizilo
-Name[es]=Extensión de visor de Timespan para KOrganizer
-Name[et]=KOrganizeri perioodivaate plugin
-Name[eu]=KOrganizer-rako denbora-barruti ukuspegi plugin-a
-Name[fa]=وصلۀ نمای گسترۀ زمان برای KOrganizer
-Name[fi]=Ajankulkunäkymäliitännäinen Korganizeriin
-Name[fr]=Module d'affichage de planification pour KOrganizer
-Name[fy]=Tiidspanneplugin foar KOrganizer
-Name[gl]=Extensión de Vista en Unidades de Tempo para KOrganizer
-Name[hu]=Időszakáttekintő bővítőmodul a KOrganizerhez
-Name[is]=Tímabilsskoðunar íforrit fyrir KOrganizer
-Name[it]=Plugin vista intervalli temporali per KOrganizer
-Name[ja]=KOrganizer タイムスパンビュー プラグイン
-Name[kk]=KOrganizer-дің уақыт аралығы көрініс модулі
-Name[km]=កម្មវិធី​ជំនួយ​ទិដ្ឋភាព​រយៈពេល​សម្រាប់ KOrganizer
-Name[lt]=Laiko tarpsnio vaizdo KOrganizer priedas
-Name[ms]=Plugin Paparan Kitar Waktu untuk KOrganizer
-Name[nb]=Programtillegg for periodevisning i KOrganizer
-Name[nds]=Tietbruuk-Moduul för KOrganizer
-Name[ne]=केडीई आयोजकका लागि समयावधि दृश्य प्लगइन
-Name[nl]=Tijdspanneplugin voor KOrganizer
-Name[nn]=Programtillegg for tidsromsvising i KOrganizer
-Name[pl]=Wtyczka widoku zakresu czasu dla KOrganizera
-Name[pt]='Plugin' de Vista de Intervalo de Tempo para o KOrganizer
-Name[pt_BR]=Plug-in de Visualização de Período de Tempo Para o KOrganizer
-Name[ru]=Диаграмма Ганта для KOrganizer
-Name[sk]=KOrganizer modul pre projektový pohľad
-Name[sl]=Vstavek za časovni prikaz za KOrganizer
-Name[sr]=Прикључак KOrganizer-а за приказ временског распона
-Name[sr@Latn]=Priključak KOrganizer-a za prikaz vremenskog raspona
-Name[sv]=Tidsintervallvyinsticksprogram för Korganizer
-Name[ta]=கேஅமைப்பாளருக்கான திட்டக் காட்சி சொருகுப்பொருள்
-Name[tr]=KOrganizer için Zaman Dilimi Görünümü Eklentisi
-Name[uk]=Втулок перегляду періоду часу для KOrganizer
-Name[zh_CN]=KOrganizer 的时间跨度查看插件
-Name[zh_TW]=KOrganizer 時間檢視外掛程式
+
Comment=This plugin provides a timespan view for korganizer (like the to-do or month views). If you enable this plugin, you can switch to the timespan view and view your events like in a Gantt diagram.
-Comment[af]=Hierdie inprop module verskaf 'n tydlyn aansig vir KOrganizer. Dit lyk baie soos die te-doen of maand aansig. As hierdie inprop module geaktiveer is, kan jy na die tydlyn aansig wissel en na jou te-doen lys in tydlyn formaat kyk.
-Comment[bg]=Приставката служи за преглед на събитията и задачите в зададен период от време.
-Comment[ca]=Aquest endollable proporciona una vista d'un període temporal per a KOrganizer (com ara les vistes de pendents o mensual). Si habiliteu aquest endollable, podeu canviar a la vista de període temporal i veure els esdeveniments com en un diagrama de Gantt.
-Comment[cs]=Tento modul umožňuje časový pohled pro korganizer (podobně jako úkoly nebo měsíční pohled). Pokud ho povolíte, můžete se přepnout na časový pohled a prohlížet si události v Ganttově diagramu.
-Comment[da]=Pluginnet sørger for en tidsintervalsvisning i Korganizer (som ligner gøremål eller månedsvisning). Hvis du aktiverer dette plugin kan du skifte til tidsintervalvisning og vise dine begivenheder som i et Gantt-diagram.
-Comment[de]=Mit diesem Modul wird KOrganizer um eine Zeitspannenansicht (ähnlich der Aufgaben- und Monatsansicht) erweitert. Wenn Sie es einschalten, können Sie zur Zeitspannenansicht wechseln und sich Ihre Ereignisse wie in einem Gantt-Diagramm ansehen.
-Comment[el]=Αυτό το πρόσθετο παρέχει μία προβολή 'ανοίγματος' χρόνου για το korganizer (όπως οι μηνιαίες προβολές των προς υλοποίηση εργασιών). Αν το ενεργοποιήσετε, μπορείτε να αλλάξετε σε προβολή 'ανοίγματος' χρόνου και να δείτε τα γεγονότα σας όπως ένα διάγραμμα του Gantt.
-Comment[es]=Esta extensión proporciona una vista de timespan para korganizer (como la vista de tareas pendientes o la mensual). Si activa esta extensión, puede pasar a la vista de timespan y ver sus eventos como un diagrama de Gantt.
-Comment[et]=See plugin lisab KOrganizerile perioodivaate (nagu ülesannete või kuuvaade). Selle lubamisel saab lülituda perioodivaatele ning näha oma sündmusi Gantti diagrammina.
-Comment[eu]=Plugin honek KOrganizer-entzat denbora barruti ikuspegi bat eskeintzen du. Plugin hau gaitzen baduzu denbora-barruti ikuspegira alda zaitezke gertaerak Gantt diagrama batean bezala ikusi.
-Comment[fa]=این وصله، برای KOrganizer یک نمای گسترۀ زمان )مثل نماهای کارهای انجامی یا ماهانه( فراهم می‌‌کند. اگر این وصله را فعال کنید، می‌توانید به گسترۀ زمان سودهی کرده و مانند نمودار Gantt، رویدادهای خود را مشاهده کنید.
-Comment[fi]=Tämä liitännäinen mahdollistaa ajankulkunäkymän KOrganizeriin (kuten tehtävälista- tai kuukausinäkymän). Jos kytket tämän päälle, voit vaihtaa ajankulkunäkymään ja katsoa tapahtumia kuten Gantt-diagrammissa.
-Comment[fr]=Ce module vous permet d'avoir une vue de KOrganizer qui affiche les évènements selon l'axe temporel. Si vous activez cette vue, vous verrez vos évènements comme un diagramme de Gantt.
-Comment[fy]=Dizze plugin jout in werjefte foar KOrganizer (lykas de takenlist en de moannewerjefte). Wannear jo dizze plugin ynskeakelje kinne jo kieze foar in werjefte wêryn jo eveneminten yn in Gantt-diagram besjen kinne.
-Comment[gl]=Esta extensión fornece unha vista en unidades de tempo (como as vistas mensuais e a vista de tarefas). Se habilita esta extensión, pode trocar a vista en unidades de tempo e ver os seus eventos como un diagrama Gantt.
-Comment[hu]=Ezzel modullal egy időszakot lehet áttekinteni a KOrganizerben (például a feladatokat vagy a havi nézeteket). Ha aktiválja ezt a modult, átválthat időszakos nézetbe, hogy az események Gantt-diagramon legyenek megtekinthetők.
-Comment[is]=Þetta íforrit veitir tímabilssýn fyrir KOrganizer (svipað og verkþátta eða mánaðarsýn). Ef þú virkjar þetta íforrit getur þú skipt yfir í tímabilssýn og skoðað atburðina þína eins og á Gantt skýringarmynd.
-Comment[it]=Questo plugin fornisce una vista a intervalli temporali. Se abiliti questo plugin, potrai passare alla vista a intervalli temporali e vedere i tuoi eventi come in un diagramma di Gantt.
-Comment[ja]=このプラグインは KOrganizer にタイムスパンビューを提供します (To-Do ビューや月ビューなど)。このプラグインを有効にすると、タイムスパンビューに切り替えて、ガントチャートのようにイベントを見ることができます。
-Comment[kk]=Бұл KOrganizer-нің уақыт аралығы көрінісінің модулі. Модулін орнатсаңыз, осы көрініске ауысып оқиғаларыңызды Гант диаграмма түріне келтре аласыз.
-Comment[km]=កម្មវិធី​ជំនួយ​នេះ​ផ្ដល់​នូវ​ទិដ្ឋភាព​រយៈពេល​សម្រាប់ korganizer (ដូចជា ទិដ្ឋភាព​ការងារ​ត្រូវ​ធ្វើ ឬ ទិដ្ឋភាព​ខែ​ជាដើម) ។ បើ​អ្នក​ធ្វើ​ឲ្យ​កម្មវិធី​ជំនួយ​នេះ​ប្រើ​បាន អ្នក​នឹង​អាច​ប្ដូរ​ទិដ្ឋភាព​រយៈពេល ហើយ​មើល​ព្រឹត្តិការណ៍​របស់​អ្នក​ដូចជា​នៅ​ក្នុងដ្យាក្រាម Gantt អញ្ចឹង​ដែរ ។
-Comment[lt]=Šis priedas korganizer programoje sudaro galimybę apžvelgti laiko tarpą (pvz., darbų arba mėnesio peržiūra). Įgalinus šį priedą galėsite persijungti į laiko tarpo peržiūrą ir žiūrėti įvykius tarsi Gantt diagramoje.
-Comment[ms]=Plugin ini menyediakan paparan kitar waktu untuk korganizer (seperti tugasan atau paparan bulan). Jika plugin ini diaktifkan,anda boleh beralih ke paparan kitar masa dan paparkan peristiwa seperti dalam diagram Gantt.
-Comment[nb]=Dette programtillegget lager en periodevisning for korganizer (slik som gjøreliste og månedsvisning). Hvis du slår på dette programtillegget kan du bytte til periodevisning og se hendelser som i et Gantt-diagram.
-Comment[nds]=Mit dit Moduul kannst Du in KOrganizer en Tietbruuk-Ansicht opropen (jüst as de Opgaven- oder Maandansichten). Wenn Du dit Moduul aktiveerst, kannst Du na de Tietbruukansicht wesseln un Dien Begeefnissen as Ganntt-Diagramm ankieken.
-Comment[ne]=यो प्लगइनले केडीई आयोजकका लागि समयावधि उपलब्ध गराउछ (गर्नुपर्ने कार्य वा महिना दृश्य जस्तो) । तपाईँले यो प्लगइन सक्षम पारेमा, तपाईँले समयावधि दृश्यमा स्वीच गर्न र गान्ट रेखाचित्र जस्तोमा घटना हेर्न सक्नुहुन्छ ।
-Comment[nl]=Deze plugin biedt een weergave voor KOrganizer (zoals de takenlijst en de maandweergave). Wanneer u deze plugin inschakelt kunt u kiezen voor een weergave waarin u uw evenementen in een Gantt-diagram kunt bekijken.
-Comment[pl]=Ta wtyczka tworzy widok zakresu czasu w KOrganizerze (tak jak widok zadań do zrobienia lub widok miesiąca). Po włączeniu tej wtyczki możliwe jest przełączenie się na widok zakresu czasu i przeglądanie zdarzeń jak na diagramie Gantta.
-Comment[pt]=Este 'plugin' oferece uma vista de distribuição temporal para o KOrganizer (como as vistas de itens por-fazer ou mensais). Se activar este 'plugin', poderá mudar para a vista de distribuição temporal e ver os seus eventos como num diagrama de Gantt.
-Comment[pt_BR]=Este plug-in fornece uma visão de período de tempo para o KOrganizer (como a visão de pendências e do mês). Se você ativar este plugin, você pode mudar para a visão de período de tempo e ver seus eventos como num diagrama de Gantt.
-Comment[ru]=Этот модуль показывает диаграмму Ганта для органайзера TDE. Если вы подключите этот модуль, вы можете посмотреть ваши события в виде диаграммы Ганта.
-Comment[sk]=Tento modul poskytuje projektový pohľad pre korganizer (ako sú úlohy alebo mesačné pohľady). Ak povolíte tento modul, môžete prepínať projektový pohľad a pohľad na udalosti ako je Gantt diagram.
-Comment[sl]=Ta vstavek ponuja časovni prikaz za KOrganizer (kot prikaz opravil ali mesečni prikaz). Če omogočite ta vstavek, lahko preklopite na časovni prikaz in si ogledate dogodke kot v Ganttovem diagramu.
-Comment[sr]=Овај прикључак пружа приказ временског распона за KOrganizer (као месечни или прикази обавеза). Ако укључите овај прикључак, можете се пребацити на приказ временског распона и разгледати своје догађаје као у Гантовом дијаграму.
-Comment[sr@Latn]=Ovaj priključak pruža prikaz vremenskog raspona za KOrganizer (kao mesečni ili prikazi obaveza). Ako uključite ovaj priključak, možete se prebaciti na prikaz vremenskog raspona i razgledati svoje događaje kao u Gantovom dijagramu.
-Comment[sv]=Insticksprogrammet tillhandahåller en tidsintervallvy i Korganizer (som liknar uppgifts- eller månadsvyn). Om du aktiverar insticksprogrammet kan du byta till idsintervallvyn och visa dina händelser som i ett Gantt-diagram.
-Comment[ta]=இந்த சொருகுப்பொருள் korganizerக்கான ஒரு குறுகிய நேரத்தை வழங்குகிறது. lசெய்யவேண்டியவை அல்ல்து மாதக் காட்சிகள் போன்ற). இந்த சொருகுப்பொருள் செயலில் இருந்தால், நீங்கள் குறுகிய நேரக் காட்சி மற்ரும் Gantt விளக்க வரைபடத்தில் உள்ளது போன்ற நிகழ்வுகளை பார்க்கலாம்.
-Comment[tr]=Bu eklenti, KOrganizer için zaman dilimi görünümü sağlar (yapılacaklar listesi ya da aylık görünüm gibi). Eğer bu eklentiyi aktif hale getirirseniz, zaman dilimi görünümüne geçebilir ve olayları Gantt diyagramı şeklinde görüntüleyebilirsiniz.
-Comment[uk]=Цей втулок показує вигляд діаграми Ганта для korganizer (подібно до вигляду завдань та місячного). Якщо увімкнути цей втулок, то можна переглядати ваші події у вигляді діаграми Ганта.
-Comment[zh_CN]=此插件为 KOrganizer 提供了时间跨度视图(类似于待办或月视图)。如果您启用了此插件,您可以像甘特图程序那样切换到时间跨度视图并查看您的事件。
-Comment[zh_TW]=此外掛程式提供時間檢視模式。如果您開啟此外掛程式,您可以切換時間檢視,讓您使用類似甘特圖的圖形來檢視事件。
+
Type=Service
X-TDE-ServiceTypes=KOrganizer/Part
X-TDE-KOrganizer-HasSettings=false
diff --git a/korganizer/plugins/timespanview/timespanview.h b/korganizer/plugins/timespanview/timespanview.h
index ee20bb13..dab3ac48 100644
--- a/korganizer/plugins/timespanview/timespanview.h
+++ b/korganizer/plugins/timespanview/timespanview.h
@@ -24,7 +24,7 @@
#include <korganizer/calendarviewbase.h>
class TimespanView : public KOrg::Part {
- Q_OBJECT
+ TQ_OBJECT
public:
TimespanView(KOrg::MainWindow *, const char *);
diff --git a/korganizer/plugins/timespanview/timespanwidget.cpp b/korganizer/plugins/timespanview/timespanwidget.cpp
index 8b0ff4b3..99f529b3 100644
--- a/korganizer/plugins/timespanview/timespanwidget.cpp
+++ b/korganizer/plugins/timespanview/timespanwidget.cpp
@@ -63,19 +63,19 @@ TimeSpanWidget::TimeSpanWidget( TQWidget *parent, const char *name ) :
TQBoxLayout *buttonLayout = new TQHBoxLayout( rightPaneLayout );
TQPushButton *zoomInButton = new TQPushButton( i18n("Zoom In"), rightPane );
- connect( zoomInButton, TQT_SIGNAL( clicked() ), TQT_SLOT( zoomIn() ) );
+ connect( zoomInButton, TQ_SIGNAL( clicked() ), TQ_SLOT( zoomIn() ) );
buttonLayout->addWidget( zoomInButton );
TQPushButton *zoomOutButton = new TQPushButton( i18n("Zoom Out"), rightPane );
- connect( zoomOutButton, TQT_SIGNAL( clicked() ), TQT_SLOT( zoomOut() ) );
+ connect( zoomOutButton, TQ_SIGNAL( clicked() ), TQ_SLOT( zoomOut() ) );
buttonLayout->addWidget( zoomOutButton );
TQPushButton *centerButton = new TQPushButton( i18n("Center View"), rightPane );
- connect( centerButton, TQT_SIGNAL( clicked() ), TQT_SLOT( centerView() ) );
+ connect( centerButton, TQ_SIGNAL( clicked() ), TQ_SLOT( centerView() ) );
buttonLayout->addWidget( centerButton );
- connect(mLineView->horizontalScrollBar(),TQT_SIGNAL(valueChanged(int)),
- mTimeLine,TQT_SLOT(setContentsPos(int)));
+ connect(mLineView->horizontalScrollBar(),TQ_SIGNAL(valueChanged(int)),
+ mTimeLine,TQ_SLOT(setContentsPos(int)));
}
TimeSpanWidget::~TimeSpanWidget()
diff --git a/korganizer/plugins/timespanview/timespanwidget.h b/korganizer/plugins/timespanview/timespanwidget.h
index cf2991df..187786ad 100644
--- a/korganizer/plugins/timespanview/timespanwidget.h
+++ b/korganizer/plugins/timespanview/timespanwidget.h
@@ -37,7 +37,7 @@ class TimeLine;
class TimeSpanWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
TimeSpanWidget( TQWidget *parent=0, const char *name=0 );
diff --git a/korganizer/previewdialog.cpp b/korganizer/previewdialog.cpp
index dade7791..8e77504a 100644
--- a/korganizer/previewdialog.cpp
+++ b/korganizer/previewdialog.cpp
@@ -64,8 +64,8 @@ PreviewDialog::PreviewDialog( const KURL &url, TQWidget *parent )
topLayout->setSpacing( spacingHint() );
topLayout->setMargin( marginHint() );
- connect( this, TQT_SIGNAL(user1Clicked()), TQT_SLOT(slotMerge()) );
- connect( this, TQT_SIGNAL(user2Clicked()), TQT_SLOT(slotAdd()) );
+ connect( this, TQ_SIGNAL(user1Clicked()), TQ_SLOT(slotMerge()) );
+ connect( this, TQ_SIGNAL(user2Clicked()), TQ_SLOT(slotAdd()) );
// when someone edits a kmail attachment he's editing a tmp file, check for that
// and if it's a tmp file then open a save dialog
diff --git a/korganizer/previewdialog.h b/korganizer/previewdialog.h
index 243be11d..73540d47 100644
--- a/korganizer/previewdialog.h
+++ b/korganizer/previewdialog.h
@@ -40,7 +40,7 @@ namespace KCal {
class PreviewDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
PreviewDialog( const KURL &url, TQWidget *parent );
diff --git a/korganizer/printing/calprintdayconfig_base.ui b/korganizer/printing/calprintdayconfig_base.ui
index b9c070eb..a13bc130 100644
--- a/korganizer/printing/calprintdayconfig_base.ui
+++ b/korganizer/printing/calprintdayconfig_base.ui
@@ -248,10 +248,7 @@
</tabstops>
<includes>
<include location="global" impldecl="in declaration">kdateedit.h</include>
+ <include location="global" impldecl="in implementation">libtdepim/kdateedit.h</include>
</includes>
<layoutdefaults spacing="6" margin="11"/>
-<includehints>
- <includehint>libtdepim/kdateedit.h</includehint>
- <includehint>libtdepim/kdateedit.h</includehint>
-</includehints>
</UI>
diff --git a/korganizer/printing/calprinter.cpp b/korganizer/printing/calprinter.cpp
index 65d1bc08..8a9a6cb2 100644
--- a/korganizer/printing/calprinter.cpp
+++ b/korganizer/printing/calprinter.cpp
@@ -174,7 +174,7 @@ CalPrintDialog::CalPrintDialog( KOrg::PrintPlugin::List plugins,
TQVBox *page = makeVBoxMainWidget();
TQSplitter *splitter = new TQSplitter( page );
- splitter->setOrientation( Qt::Horizontal );
+ splitter->setOrientation( TQt::Horizontal );
mTypeGroup = new TQVButtonGroup( i18n("Print Style"), splitter, "buttonGroup" );
// use the minimal width possible = max width of the radio buttons, not extensible
@@ -202,7 +202,7 @@ CalPrintDialog::CalPrintDialog( KOrg::PrintPlugin::List plugins,
splitterRightLayout->addWidget( mOrientationSelection, 1, 1 );
// signals and slots connections
- connect( mTypeGroup, TQT_SIGNAL( clicked( int ) ), TQT_SLOT( setPrintType( int ) ) );
+ connect( mTypeGroup, TQ_SIGNAL( clicked( int ) ), TQ_SLOT( setPrintType( int ) ) );
orientationLabel->setBuddy( mOrientationSelection );
// First insert the config widgets into the widget stack. This possibly assigns
diff --git a/korganizer/printing/calprinter.h b/korganizer/printing/calprinter.h
index 29b925a6..5d5035f4 100644
--- a/korganizer/printing/calprinter.h
+++ b/korganizer/printing/calprinter.h
@@ -31,7 +31,7 @@
#include <kdialogbase.h>
#include <korganizer/baseview.h>
#include <korganizer/printplugin.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KOrg {
class CoreHelper;
@@ -52,7 +52,7 @@ class TQLabel;
*/
class KDE_EXPORT CalPrinter : public TQObject, public KOrg::CalPrinterBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -106,7 +106,7 @@ class KDE_EXPORT CalPrinter : public TQObject, public KOrg::CalPrinterBase
class CalPrintDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
CalPrintDialog( KOrg::PrintPlugin::List plugins,
diff --git a/korganizer/printing/calprintpluginbase.cpp b/korganizer/printing/calprintpluginbase.cpp
index 9eecda39..c094ad84 100644
--- a/korganizer/printing/calprintpluginbase.cpp
+++ b/korganizer/printing/calprintpluginbase.cpp
@@ -38,7 +38,7 @@
#ifndef KORG_NOPRINTER
-inline int round(const double x)
+inline int roundToInt(const double x)
{
return int(x > 0.0 ? x + 0.5 : x - 0.5);
}
@@ -1178,7 +1178,7 @@ void CalPrintPluginBase::drawMonth( TQPainter &p, const TQDate &dt, const TQRect
// Fill the remaining space (if a month has less days than others) with a crossed-out pattern
if ( daysinmonth<maxdays ) {
- TQRect dayBox( box.left(), daysBox.top() + round(dayheight*daysinmonth), box.width(), 0 );
+ TQRect dayBox( box.left(), daysBox.top() + roundToInt(dayheight*daysinmonth), box.width(), 0 );
dayBox.setBottom( daysBox.bottom() );
p.fillRect( dayBox, TQt::DiagCrossPattern );
}
@@ -1187,9 +1187,9 @@ void CalPrintPluginBase::drawMonth( TQPainter &p, const TQDate &dt, const TQRect
for ( d = 0; d < daysinmonth; ++d ) {
TQDate day;
calsys->setYMD( day, dt.year(), dt.month(), d+1 );
- TQRect dayBox( daysBox.left()/*+rand()%50*/, daysBox.top() + round(dayheight*d), daysBox.width()/*-rand()%50*/, 0 );
+ TQRect dayBox( daysBox.left()/*+rand()%50*/, daysBox.top() + roundToInt(dayheight*d), daysBox.width()/*-rand()%50*/, 0 );
// FIXME: When using a border width of 0 for event boxes, don't let the rectangles overlap, i.e. subtract 1 from the top or bottom!
- dayBox.setBottom( daysBox.top()+round(dayheight*(d+1)) - 1 );
+ dayBox.setBottom( daysBox.top()+roundToInt(dayheight*(d+1)) - 1 );
p.setBrush( isWorkingDay( day )?workdayColor:holidayColor );
p.drawRect( dayBox );
@@ -1314,9 +1314,9 @@ void CalPrintPluginBase::drawMonth( TQPainter &p, const TQDate &dt, const TQRect
int minsToEnd = starttime.secsTo( placeItem->end() )/60;
TQRect eventBox( xstartcont + placeItem->subCell()*17,
- daysBox.top() + round( double( minsToStart*daysBox.height()) / double(maxdays*24*60) ),
+ daysBox.top() + roundToInt( double( minsToStart*daysBox.height()) / double(maxdays*24*60) ),
14, 0 );
- eventBox.setBottom( daysBox.top() + round( double( minsToEnd*daysBox.height()) / double(maxdays*24*60) ) );
+ eventBox.setBottom( daysBox.top() + roundToInt( double( minsToEnd*daysBox.height()) / double(maxdays*24*60) ) );
drawVerticalBox( p, 0, eventBox, placeItem->event()->summary() );
newxstartcont = TQMAX( newxstartcont, eventBox.right() );
}
@@ -1327,9 +1327,9 @@ void CalPrintPluginBase::drawMonth( TQPainter &p, const TQDate &dt, const TQRect
for ( int d=0; d<daysinmonth; ++d ) {
TQStringList dayEvents( textEvents[d+1] );
TQString txt = dayEvents.join(", ");
- TQRect dayBox( xstartcont, daysBox.top()+round(dayheight*d), 0, 0 );
+ TQRect dayBox( xstartcont, daysBox.top()+roundToInt(dayheight*d), 0, 0 );
dayBox.setRight( box.right() );
- dayBox.setBottom( daysBox.top()+round(dayheight*(d+1)) );
+ dayBox.setBottom( daysBox.top()+roundToInt(dayheight*(d+1)) );
printEventString(p, dayBox, txt, TQt::AlignTop | TQt::AlignLeft | TQt::BreakAnywhere );
}
p.setFont( oldfont );
diff --git a/korganizer/printing/calprintpluginbase.h b/korganizer/printing/calprintpluginbase.h
index 3684e2f1..7b9e52e0 100644
--- a/korganizer/printing/calprintpluginbase.h
+++ b/korganizer/printing/calprintpluginbase.h
@@ -30,7 +30,7 @@
#include <tqdatetime.h>
#include <kprinter.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <libkcal/calendar.h>
#include <libkcal/event.h>
#include <libkcal/todo.h>
diff --git a/korganizer/printing/calprinttodoconfig_base.ui b/korganizer/printing/calprinttodoconfig_base.ui
index 106ffd7d..031c45dd 100644
--- a/korganizer/printing/calprinttodoconfig_base.ui
+++ b/korganizer/printing/calprinttodoconfig_base.ui
@@ -245,9 +245,6 @@
<property name="text">
<string>Due date</string>
</property>
- <property name="accel">
- <string></string>
- </property>
<property name="checked">
<bool>true</bool>
</property>
@@ -446,10 +443,7 @@
</tabstops>
<includes>
<include location="global" impldecl="in declaration">kdateedit.h</include>
+ <include location="global" impldecl="in implementation">libtdepim/kdateedit.h</include>
</includes>
<layoutdefaults spacing="6" margin="11"/>
-<includehints>
- <includehint>libtdepim/kdateedit.h</includehint>
- <includehint>libtdepim/kdateedit.h</includehint>
-</includehints>
</UI>
diff --git a/korganizer/printing/calprintweetdeconfig_base.ui b/korganizer/printing/calprintweetdeconfig_base.ui
index 0be844ab..079bd164 100644
--- a/korganizer/printing/calprintweetdeconfig_base.ui
+++ b/korganizer/printing/calprintweetdeconfig_base.ui
@@ -291,10 +291,7 @@
</tabstops>
<includes>
<include location="global" impldecl="in declaration">kdateedit.h</include>
+ <include location="global" impldecl="in implementation">libtdepim/kdateedit.h</include>
</includes>
<layoutdefaults spacing="6" margin="11"/>
-<includehints>
- <includehint>libtdepim/kdateedit.h</includehint>
- <includehint>libtdepim/kdateedit.h</includehint>
-</includehints>
</UI>
diff --git a/korganizer/printing/cellitem.h b/korganizer/printing/cellitem.h
index e4a37da0..4d8206bc 100644
--- a/korganizer/printing/cellitem.h
+++ b/korganizer/printing/cellitem.h
@@ -27,7 +27,7 @@
#include <tqstring.h>
#include <tqptrlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KOrg {
diff --git a/korganizer/publishdialog.cpp b/korganizer/publishdialog.cpp
index c8366add..5e597524 100644
--- a/korganizer/publishdialog.cpp
+++ b/korganizer/publishdialog.cpp
@@ -46,18 +46,18 @@ PublishDialog::PublishDialog( TQWidget* parent, const char* name,
setMainWidget( mWidget );
mWidget->mNameLineEdit->setEnabled( false );
mWidget->mEmailLineEdit->setEnabled( false );
- connect( mWidget->mAddressListView, TQT_SIGNAL( selectionChanged(TQListViewItem *) ),
- TQT_SLOT(updateInput()));
- connect( mWidget->mNew, TQT_SIGNAL( clicked() ),
- TQT_SLOT( addItem() ) );
- connect( mWidget->mRemove, TQT_SIGNAL( clicked() ),
- TQT_SLOT( removeItem() ) );
- connect( mWidget->mSelectAddressee, TQT_SIGNAL( clicked() ),
- TQT_SLOT( openAddressbook() ) );
- connect( mWidget->mNameLineEdit, TQT_SIGNAL( textChanged(const TQString&) ),
- TQT_SLOT( updateItem() ) );
- connect( mWidget->mEmailLineEdit, TQT_SIGNAL( textChanged(const TQString&) ),
- TQT_SLOT( updateItem() ) );
+ connect( mWidget->mAddressListView, TQ_SIGNAL( selectionChanged(TQListViewItem *) ),
+ TQ_SLOT(updateInput()));
+ connect( mWidget->mNew, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( addItem() ) );
+ connect( mWidget->mRemove, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( removeItem() ) );
+ connect( mWidget->mSelectAddressee, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( openAddressbook() ) );
+ connect( mWidget->mNameLineEdit, TQ_SIGNAL( textChanged(const TQString&) ),
+ TQ_SLOT( updateItem() ) );
+ connect( mWidget->mEmailLineEdit, TQ_SIGNAL( textChanged(const TQString&) ),
+ TQ_SLOT( updateItem() ) );
}
PublishDialog::~PublishDialog()
diff --git a/korganizer/publishdialog.h b/korganizer/publishdialog.h
index dd1b5372..e4ede200 100644
--- a/korganizer/publishdialog.h
+++ b/korganizer/publishdialog.h
@@ -33,7 +33,7 @@ class PublishDialog_base;
class PublishDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
PublishDialog(TQWidget* parent=0,const char* name=0,
diff --git a/korganizer/resourceview.cpp b/korganizer/resourceview.cpp
index ea640bb9..d8d1b637 100644
--- a/korganizer/resourceview.cpp
+++ b/korganizer/resourceview.cpp
@@ -100,23 +100,23 @@ CalendarViewExtension *ResourceViewFactory::create( TQWidget *parent )
{
mResourceView = new ResourceView( mCalendar, mCalendarView, parent );
- TQObject::connect( mResourceView, TQT_SIGNAL( resourcesChanged() ),
- mCalendarView, TQT_SLOT( resourcesChanged() ) );
- TQObject::connect( mResourceView, TQT_SIGNAL( resourcesChanged() ),
- mCalendarView, TQT_SLOT( updateCategories() ) );
+ TQObject::connect( mResourceView, TQ_SIGNAL( resourcesChanged() ),
+ mCalendarView, TQ_SLOT( resourcesChanged() ) );
+ TQObject::connect( mResourceView, TQ_SIGNAL( resourcesChanged() ),
+ mCalendarView, TQ_SLOT( updateCategories() ) );
TQObject::connect( mCalendar,
- TQT_SIGNAL( signalResourceAdded( ResourceCalendar * ) ),
+ TQ_SIGNAL( signalResourceAdded( ResourceCalendar * ) ),
mResourceView,
- TQT_SLOT( addResourceItem( ResourceCalendar * ) ) );
+ TQ_SLOT( addResourceItem( ResourceCalendar * ) ) );
TQObject::connect( mCalendar,
- TQT_SIGNAL( signalResourceModified( ResourceCalendar * ) ),
+ TQ_SIGNAL( signalResourceModified( ResourceCalendar * ) ),
mResourceView,
- TQT_SLOT( updateResourceItem( ResourceCalendar * ) ) );
- TQObject::connect( mCalendar, TQT_SIGNAL( signalResourceAdded( ResourceCalendar * ) ),
- mCalendarView, TQT_SLOT( updateCategories() ) );
- TQObject::connect( mCalendar, TQT_SIGNAL( signalResourceModified( ResourceCalendar * ) ),
- mCalendarView, TQT_SLOT( updateCategories() ) );
+ TQ_SLOT( updateResourceItem( ResourceCalendar * ) ) );
+ TQObject::connect( mCalendar, TQ_SIGNAL( signalResourceAdded( ResourceCalendar * ) ),
+ mCalendarView, TQ_SLOT( updateCategories() ) );
+ TQObject::connect( mCalendar, TQ_SIGNAL( signalResourceModified( ResourceCalendar * ) ),
+ mCalendarView, TQ_SLOT( updateCategories() ) );
return mResourceView;
}
@@ -322,17 +322,17 @@ ResourceView::ResourceView( CalendarResources *calendar,
mListView->setResizeMode( TQListView::LastColumn );
topLayout->addWidget( mListView );
- connect( mListView, TQT_SIGNAL( clicked( TQListViewItem * ) ),
- TQT_SLOT( currentChanged( TQListViewItem * ) ) );
- connect( mAddButton, TQT_SIGNAL( clicked() ), TQT_SLOT( addResource() ) );
- connect( mDeleteButton, TQT_SIGNAL( clicked() ), TQT_SLOT( removeResource() ) );
- connect( mEditButton, TQT_SIGNAL( clicked() ), TQT_SLOT( editResource() ) );
- connect( mListView, TQT_SIGNAL( doubleClicked ( TQListViewItem *, const TQPoint &,
+ connect( mListView, TQ_SIGNAL( clicked( TQListViewItem * ) ),
+ TQ_SLOT( currentChanged( TQListViewItem * ) ) );
+ connect( mAddButton, TQ_SIGNAL( clicked() ), TQ_SLOT( addResource() ) );
+ connect( mDeleteButton, TQ_SIGNAL( clicked() ), TQ_SLOT( removeResource() ) );
+ connect( mEditButton, TQ_SIGNAL( clicked() ), TQ_SLOT( editResource() ) );
+ connect( mListView, TQ_SIGNAL( doubleClicked ( TQListViewItem *, const TQPoint &,
int ) ),
- TQT_SLOT( editResource() ) );
- connect( mListView, TQT_SIGNAL( contextMenuRequested ( TQListViewItem *,
+ TQ_SLOT( editResource() ) );
+ connect( mListView, TQ_SIGNAL( contextMenuRequested ( TQListViewItem *,
const TQPoint &, int ) ),
- TQT_SLOT( contextMenuRequested( TQListViewItem *, const TQPoint &,
+ TQ_SLOT( contextMenuRequested( TQListViewItem *, const TQPoint &,
int ) ) );
updateView();
@@ -449,21 +449,21 @@ void ResourceView::addResourceItem( ResourceCalendar *resource )
item->update();
}
- connect( resource, TQT_SIGNAL( signalSubresourceAdded( ResourceCalendar *,
+ connect( resource, TQ_SIGNAL( signalSubresourceAdded( ResourceCalendar *,
const TQString &,
const TQString &,
const TQString & ) ),
- TQT_SLOT( slotSubresourceAdded( ResourceCalendar *, const TQString &,
+ TQ_SLOT( slotSubresourceAdded( ResourceCalendar *, const TQString &,
const TQString &, const TQString & ) ) );
- connect( resource, TQT_SIGNAL( signalSubresourceRemoved( ResourceCalendar *,
+ connect( resource, TQ_SIGNAL( signalSubresourceRemoved( ResourceCalendar *,
const TQString &,
const TQString & ) ),
- TQT_SLOT( slotSubresourceRemoved( ResourceCalendar *, const TQString &,
+ TQ_SLOT( slotSubresourceRemoved( ResourceCalendar *, const TQString &,
const TQString & ) ) );
- connect( resource, TQT_SIGNAL( resourceSaved( ResourceCalendar * ) ),
- TQT_SLOT( closeResource( ResourceCalendar * ) ) );
+ connect( resource, TQ_SIGNAL( resourceSaved( ResourceCalendar * ) ),
+ TQ_SLOT( closeResource( ResourceCalendar * ) ) );
updateResourceList();
emit resourcesChanged();
@@ -686,44 +686,44 @@ void ResourceView::contextMenuRequested ( TQListViewItem *lvitem, const TQPoint
ResourceItem *item = static_cast<ResourceItem *>( lvitem );
TQPopupMenu *menu = new TQPopupMenu( this );
- connect( menu, TQT_SIGNAL( aboutToHide() ), menu, TQT_SLOT( deleteLater() ) );
+ connect( menu, TQ_SIGNAL( aboutToHide() ), menu, TQ_SLOT( deleteLater() ) );
if ( item ) {
int reloadId = menu->insertItem( i18n("Re&load"), this,
- TQT_SLOT( reloadResource() ) );
+ TQ_SLOT( reloadResource() ) );
menu->setItemEnabled( reloadId, item->resource()->isActive() );
int saveId = menu->insertItem( i18n("&Save"), this,
- TQT_SLOT( saveResource() ) );
+ TQ_SLOT( saveResource() ) );
menu->setItemEnabled( saveId, item->resource()->isActive() );
menu->insertSeparator();
- menu->insertItem( i18n("Show &Info"), this, TQT_SLOT( showInfo() ) );
+ menu->insertItem( i18n("Show &Info"), this, TQ_SLOT( showInfo() ) );
//FIXME: This is better on the resource dialog
if ( KOPrefs::instance()->agendaViewColors() != KOPrefs::CategoryOnly ) {
TQPopupMenu *assignMenu= new TQPopupMenu( menu );
- assignMenu->insertItem( i18n( "&Assign Color" ), this, TQT_SLOT( assignColor() ) );
+ assignMenu->insertItem( i18n( "&Assign Color" ), this, TQ_SLOT( assignColor() ) );
if ( item->resourceColor().isValid() )
- assignMenu->insertItem( i18n( "&Disable Color" ), this, TQT_SLOT( disableColor() ) );
+ assignMenu->insertItem( i18n( "&Disable Color" ), this, TQ_SLOT( disableColor() ) );
menu->insertItem( i18n( "Resources Colors" ), assignMenu );
}
if ( item->isSubresource() &&
( item->resource()->type() == "imap" || item->resource()->type() == "scalix" ) ) {
if ( item->resourceIdentifier().contains( "/.INBOX.directory/" ) ) {
- menu->insertItem( i18n("&Rename..."), this, TQT_SLOT( editResource() ) );
+ menu->insertItem( i18n("&Rename..."), this, TQ_SLOT( editResource() ) );
}
} else {
- menu->insertItem( i18n("&Edit..."), this, TQT_SLOT( editResource() ) );
+ menu->insertItem( i18n("&Edit..."), this, TQ_SLOT( editResource() ) );
}
- menu->insertItem( i18n("&Remove"), this, TQT_SLOT( removeResource() ) );
+ menu->insertItem( i18n("&Remove"), this, TQ_SLOT( removeResource() ) );
if ( item->resource() != manager->standardResource() ) {
menu->insertSeparator();
menu->insertItem( i18n("Use as &Default Calendar"), this,
- TQT_SLOT( setStandard() ) );
+ TQ_SLOT( setStandard() ) );
}
menu->insertSeparator();
}
- menu->insertItem( i18n("&Add..."), this, TQT_SLOT( addResource() ) );
+ menu->insertItem( i18n("&Add..."), this, TQ_SLOT( addResource() ) );
menu->popup( pos );
}
diff --git a/korganizer/resourceview.h b/korganizer/resourceview.h
index 1a073c2b..4c7ad289 100644
--- a/korganizer/resourceview.h
+++ b/korganizer/resourceview.h
@@ -94,7 +94,7 @@ class ResourceItem : public TQCheckListItem
*/
class ResourceView : public CalendarViewExtension
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceView( CalendarResources *calendar, CalendarView *view,
diff --git a/korganizer/searchdialog.cpp b/korganizer/searchdialog.cpp
index c9e5f886..4087a810 100644
--- a/korganizer/searchdialog.cpp
+++ b/korganizer/searchdialog.cpp
@@ -63,8 +63,8 @@ SearchDialog::SearchDialog(Calendar *calendar,TQWidget *parent)
subLayout->addWidget( searchLabel );
subLayout->addWidget( searchEdit );
searchEdit->setFocus();
- connect( searchEdit, TQT_SIGNAL( textChanged( const TQString & ) ),
- this, TQT_SLOT( searchTextChanged( const TQString & ) ) );
+ connect( searchEdit, TQ_SIGNAL( textChanged( const TQString & ) ),
+ this, TQ_SLOT( searchTextChanged( const TQString & ) ) );
TQHButtonGroup *itemsGroup = new TQHButtonGroup( i18n("Search For"), topFrame );
@@ -76,7 +76,7 @@ SearchDialog::SearchDialog(Calendar *calendar,TQWidget *parent)
mTodosCheck->setChecked( true );
// Date range
- TQGroupBox *rangeGroup = new TQGroupBox( 1, Qt::Horizontal, i18n( "Date Range" ),
+ TQGroupBox *rangeGroup = new TQGroupBox( 1, TQt::Horizontal, i18n( "Date Range" ),
topFrame );
layout->addWidget( rangeGroup );
@@ -117,15 +117,15 @@ SearchDialog::SearchDialog(Calendar *calendar,TQWidget *parent)
KOGlobals::fitDialogToScreen( this, true );
}
- connect( this,TQT_SIGNAL(user1Clicked()),TQT_SLOT(doSearch()));
+ connect( this,TQ_SIGNAL(user1Clicked()),TQ_SLOT(doSearch()));
// Propagate edit and delete event signals from event list view
- connect( listView, TQT_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)),
- TQT_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)) );
- connect( listView, TQT_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)),
- TQT_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)) );
- connect( listView, TQT_SIGNAL(deleteIncidenceSignal(Incidence *)),
- TQT_SIGNAL(deleteIncidenceSignal(Incidence *)) );
+ connect( listView, TQ_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)),
+ TQ_SIGNAL(showIncidenceSignal(Incidence *,const TQDate &)) );
+ connect( listView, TQ_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)),
+ TQ_SIGNAL(editIncidenceSignal(Incidence *,const TQDate &)) );
+ connect( listView, TQ_SIGNAL(deleteIncidenceSignal(Incidence *)),
+ TQ_SIGNAL(deleteIncidenceSignal(Incidence *)) );
}
SearchDialog::~SearchDialog()
diff --git a/korganizer/searchdialog.h b/korganizer/searchdialog.h
index c1beef80..5cb22dc7 100644
--- a/korganizer/searchdialog.h
+++ b/korganizer/searchdialog.h
@@ -45,7 +45,7 @@ using namespace KCal;
class SearchDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
SearchDialog(Calendar *calendar,TQWidget *parent=0);
diff --git a/korganizer/statusdialog.cpp b/korganizer/statusdialog.cpp
index 1d406447..d46f018c 100644
--- a/korganizer/statusdialog.cpp
+++ b/korganizer/statusdialog.cpp
@@ -56,11 +56,11 @@ StatusDialog::StatusDialog(TQWidget* parent, const char* name) :
TQBoxLayout *buttonLayout = new TQHBoxLayout( topLayout );
TQPushButton *ok = new KPushButton(KStdGuiItem::ok(), this);
- connect ( ok,TQT_SIGNAL(clicked()), this,TQT_SLOT(accept()) );
+ connect ( ok,TQ_SIGNAL(clicked()), this,TQ_SLOT(accept()) );
buttonLayout->addWidget( ok );
TQPushButton *cancel = new KPushButton(KStdGuiItem::cancel(), this);
- connect ( cancel,TQT_SIGNAL(clicked()), this,TQT_SLOT(reject()) );
+ connect ( cancel,TQ_SIGNAL(clicked()), this,TQ_SLOT(reject()) );
buttonLayout->addWidget( cancel );
}
diff --git a/korganizer/statusdialog.h b/korganizer/statusdialog.h
index 4aa00d3e..144b7d87 100644
--- a/korganizer/statusdialog.h
+++ b/korganizer/statusdialog.h
@@ -28,7 +28,7 @@ class TQComboBox;
class StatusDialog : public KDialog
{
- Q_OBJECT
+ TQ_OBJECT
public:
StatusDialog(TQWidget* parent=0,const char* name=0);
diff --git a/korganizer/templatemanagementdialog.cpp b/korganizer/templatemanagementdialog.cpp
index 57209cd0..3d673c37 100644
--- a/korganizer/templatemanagementdialog.cpp
+++ b/korganizer/templatemanagementdialog.cpp
@@ -52,15 +52,15 @@ TemplateManagementDialog::TemplateManagementDialog(TQWidget *parent, const TQStr
{
m_base = new TemplateManagementDialog_base( this, "template_management_dialog_base" );
setMainWidget( m_base );
- connect( m_base->m_buttonAdd, TQT_SIGNAL( clicked() ),
- TQT_SLOT( slotAddTemplate() ) );
- connect( m_base->m_buttonDelete, TQT_SIGNAL( clicked() ),
- TQT_SLOT( slotDeleteTemplate() ) );
+ connect( m_base->m_buttonAdd, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( slotAddTemplate() ) );
+ connect( m_base->m_buttonDelete, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( slotDeleteTemplate() ) );
m_base->m_listBox->insertStringList( m_templates );
- connect( m_base->m_listBox, TQT_SIGNAL( selectionChanged( TQListBoxItem * ) ),
- TQT_SLOT( slotUpdateDeleteButton( TQListBoxItem * ) ) );
- connect( m_base->m_buttonApply, TQT_SIGNAL( clicked() ),
- TQT_SLOT( slotApplyTemplate() ) );
+ connect( m_base->m_listBox, TQ_SIGNAL( selectionChanged( TQListBoxItem * ) ),
+ TQ_SLOT( slotUpdateDeleteButton( TQListBoxItem * ) ) );
+ connect( m_base->m_buttonApply, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( slotApplyTemplate() ) );
}
@@ -75,7 +75,7 @@ void TemplateManagementDialog::slotAddTemplate()
if ( m_templates.find( newTemplate) != m_templates.end() ) {
int rc = KMessageBox::warningContinueCancel( this, i18n("A template with that name already exists, do you want to overwrite it?."), i18n("Duplicate Template Name"), i18n("Overwrite"));
if ( rc == KMessageBox::Cancel ) {
- TQTimer::singleShot(0, this, TQT_SLOT( slotAddTemplate() ) );
+ TQTimer::singleShot(0, this, TQ_SLOT( slotAddTemplate() ) );
return;
}
duplicate = true;
diff --git a/korganizer/templatemanagementdialog.h b/korganizer/templatemanagementdialog.h
index d3e5995c..e22e41b2 100644
--- a/korganizer/templatemanagementdialog.h
+++ b/korganizer/templatemanagementdialog.h
@@ -45,7 +45,7 @@
#include <kdialogbase.h>
class TemplateManagementDialog: public KDialogBase {
-Q_OBJECT
+TQ_OBJECT
public:
TemplateManagementDialog( TQWidget *parent, const TQStringList& templates );
diff --git a/korganizer/timelabels.cpp b/korganizer/timelabels.cpp
index 27a253c0..19ae5721 100644
--- a/korganizer/timelabels.cpp
+++ b/korganizer/timelabels.cpp
@@ -230,10 +230,10 @@ void TimeLabels::setAgenda( KOAgenda* agenda )
{
mAgenda = agenda;
- connect(mAgenda, TQT_SIGNAL(mousePosSignal(const TQPoint &)), this, TQT_SLOT(mousePosChanged(const TQPoint &)));
- connect(mAgenda, TQT_SIGNAL(enterAgenda()), this, TQT_SLOT(showMousePos()));
- connect(mAgenda, TQT_SIGNAL(leaveAgenda()), this, TQT_SLOT(hideMousePos()));
- connect(mAgenda, TQT_SIGNAL(gridSpacingYChanged( double ) ), this, TQT_SLOT( setCellHeight( double ) ) );
+ connect(mAgenda, TQ_SIGNAL(mousePosSignal(const TQPoint &)), this, TQ_SLOT(mousePosChanged(const TQPoint &)));
+ connect(mAgenda, TQ_SIGNAL(enterAgenda()), this, TQ_SLOT(showMousePos()));
+ connect(mAgenda, TQ_SIGNAL(leaveAgenda()), this, TQ_SLOT(hideMousePos()));
+ connect(mAgenda, TQ_SIGNAL(gridSpacingYChanged( double ) ), this, TQ_SLOT( setCellHeight( double ) ) );
}
diff --git a/korganizer/timelabels.h b/korganizer/timelabels.h
index 8153742f..77d565b4 100644
--- a/korganizer/timelabels.h
+++ b/korganizer/timelabels.h
@@ -38,7 +38,7 @@ class TDEConfig;
class TimeLabels : public TQScrollView
{
- Q_OBJECT
+ TQ_OBJECT
public:
TimeLabels( int rows, TQWidget *parent = 0, const char *name = 0,
diff --git a/korganizer/urihandler.h b/korganizer/urihandler.h
index 572a67a5..ccf8338f 100644
--- a/korganizer/urihandler.h
+++ b/korganizer/urihandler.h
@@ -24,7 +24,7 @@
#ifndef URIHANDLER_H
#define URIHANDLER_H
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQString;
class TQWidget;
diff --git a/korn/CMakeL10n.txt b/korn/CMakeL10n.txt
index 34d38585..546e7f80 100644
--- a/korn/CMakeL10n.txt
+++ b/korn/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_create_template( "korn" )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/KOrn.desktop/"
+ SOURCES KOrn.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/korn/CMakeLists.txt b/korn/CMakeLists.txt
index 7cdffec9..4780d626 100644
--- a/korn/CMakeLists.txt
+++ b/korn/CMakeLists.txt
@@ -32,7 +32,7 @@ link_directories(
##### other data ################################
tde_install_icons( korn )
-install( FILES KOrn.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+tde_create_translated_desktop( KOrn.desktop )
##### korn (executable) #########################
diff --git a/korn/KOrn.desktop b/korn/KOrn.desktop
index 5f2221c5..93b5900b 100644
--- a/korn/KOrn.desktop
+++ b/korn/KOrn.desktop
@@ -1,76 +1,13 @@
[Desktop Entry]
+Name=Korn
+
GenericName=Mail Alert
-GenericName[af]=Pos inkennis stel
-GenericName[ar]=منبه للبريد الألكتروني
-GenericName[bg]=Аларма за е-поща
-GenericName[bs]=Obavještavanje o pristigloj pošti
-GenericName[ca]=Alerta per al correu
-GenericName[cs]=Upozornění na poštu
-GenericName[cy]=Rhybudd Ebost
-GenericName[da]=Meddelelse om post
-GenericName[de]=Mail-Benachrichtigung
-GenericName[el]=Ειδοποίηση για mail
-GenericName[eo]=Retpoŝtavertilo
-GenericName[es]=Aviso de correo
-GenericName[et]=E-kirjade teadustaja
-GenericName[eu]=Mail abisua
-GenericName[fa]=هشدارنامه
-GenericName[fi]=Saapuneen sähköpostin ilmoitus
-GenericName[fr]=Surveillance du courrier électronique
-GenericName[fy]=E-postnotifikaasje
-GenericName[ga]=Fógairt Ríomhphoist
-GenericName[gl]=Alerta de Correo-e
-GenericName[hi]=डाक सतर्क
-GenericName[hr]=Upozorenje na nove poruke
-GenericName[hu]=Levélfigyelő
-GenericName[is]=Póst áminning
-GenericName[it]=Programma per controllare la posta
-GenericName[ja]=メールの通知
-GenericName[kk]=Пошта келген туралы хабарлау
-GenericName[km]=សញ្ញា​ជូនដំណឹងសំបុត្រ
-GenericName[lt]=Pašto pranešėjas
-GenericName[lv]=Pasta Brīdinājums
-GenericName[mk]=Известување за е-пошта
-GenericName[ms]=Celik Mel
-GenericName[mt]=Twissija tal-imejl
-GenericName[nb]=E-post-varsling
-GenericName[nds]=Nettpost-Benarichten
-GenericName[ne]=सावधानी पत्र
-GenericName[nl]=E-mailnotificatie
-GenericName[nn]=E-postvarsling
-GenericName[pl]=Program powiadamiający o poczcie
-GenericName[pt]=Alerta de E-mail
-GenericName[pt_BR]=Alerta de E-mail
-GenericName[ro]=Alertare e-mail nou
-GenericName[ru]=Уведомление о приходе почты
-GenericName[rw]=Iburira ry'Ubutumwa
-GenericName[sk]=Upozornenie na mail
-GenericName[sl]=Obvestilo o pošti
-GenericName[sr]=Провера поште
-GenericName[sr@Latn]=Provera pošte
-GenericName[sv]=E-postvarning
-GenericName[ta]=அஞ்சல் அறிவிப்பு
-GenericName[tg]=Маълумоти қабулшавии почта
-GenericName[th]=แจ้งเตือนจดหมาย
-GenericName[tr]=Midi Uyarısı
-GenericName[uk]=Нагадування пошти
-GenericName[uz]=Янги хат ҳақида хабар берувчи
-GenericName[ven]=U sedzesa poso
-GenericName[xh]=Umposi Wokulumkisa
-GenericName[zh_CN]=邮件警告
-GenericName[zh_TW]=信件警告
-GenericName[zu]=Umposi Ohlomile
+
Exec=korn -caption "%c" %i %m %f
Icon=korn
Path=
X-DocPath=korn/index.html
Type=Application
Terminal=false
-Name=Korn
-Name[eo]=Korno
-Name[hi]=कॉर्न
-Name[ne]=कर्न
-Name[ta]=கார்ன்
-Name[zh_TW]=Korn 信件通知
X-DCOP-ServiceType=Unique
Categories=Qt;TDE;Network;Email;X-TDE-Office-PIM;
diff --git a/korn/account_input.cpp b/korn/account_input.cpp
index 7603e56b..d7584805 100644
--- a/korn/account_input.cpp
+++ b/korn/account_input.cpp
@@ -65,7 +65,7 @@ TextInput::TextInput( TQWidget *parent, const TQString& title, int min, int max,
{
_left = new TQLabel( title, parent, "label" );
_right = new KLineEdit( "", parent, "edit" );
- _right->setValidator( new TQIntValidator( min, max, TQT_TQOBJECT(_right), "validator" ) );
+ _right->setValidator( new TQIntValidator( min, max, _right, "validator" ) );
setValue( defaul );
}
diff --git a/korn/accountmanager.cpp b/korn/accountmanager.cpp
index 187f79bd..5a30e56a 100644
--- a/korn/accountmanager.cpp
+++ b/korn/accountmanager.cpp
@@ -84,12 +84,12 @@ void AccountManager::readConfig( TDEConfig* config, const int index )
}
//TODO: connect some stuff
- connect( kiodrop, TQT_SIGNAL( changed( int, KMailDrop* ) ), this, TQT_SLOT( slotChanged( int, KMailDrop* ) ) );
- connect( kiodrop, TQT_SIGNAL( showPassivePopup( TQPtrList< KornMailSubject >*, int, bool, const TQString& ) ),
- this, TQT_SLOT( slotShowPassivePopup( TQPtrList< KornMailSubject >*, int, bool, const TQString& ) ) );
- connect( kiodrop, TQT_SIGNAL( showPassivePopup( const TQString&, const TQString& ) ),
- this, TQT_SLOT( slotShowPassivePopup( const TQString&, const TQString& ) ) );
- connect( kiodrop, TQT_SIGNAL( validChanged( bool ) ), this, TQT_SLOT( slotValidChanged( bool ) ) );
+ connect( kiodrop, TQ_SIGNAL( changed( int, KMailDrop* ) ), this, TQ_SLOT( slotChanged( int, KMailDrop* ) ) );
+ connect( kiodrop, TQ_SIGNAL( showPassivePopup( TQPtrList< KornMailSubject >*, int, bool, const TQString& ) ),
+ this, TQ_SLOT( slotShowPassivePopup( TQPtrList< KornMailSubject >*, int, bool, const TQString& ) ) );
+ connect( kiodrop, TQ_SIGNAL( showPassivePopup( const TQString&, const TQString& ) ),
+ this, TQ_SLOT( slotShowPassivePopup( const TQString&, const TQString& ) ) );
+ connect( kiodrop, TQ_SIGNAL( validChanged( bool ) ), this, TQ_SLOT( slotValidChanged( bool ) ) );
kiodrop->readGeneralConfigGroup( *masterGroup );
if( !kiodrop->readConfigGroup( *accountGroup ) || !kiodrop->readConfigGroup( *configmap, nproto ) )
@@ -119,9 +119,9 @@ void AccountManager::readConfig( TDEConfig* config, const int index )
DCOPDrop *dcopdrop = new DCOPDrop;
Dropinfo *info = new Dropinfo;
- connect( dcopdrop, TQT_SIGNAL( changed( int, KMailDrop* ) ), this, TQT_SLOT( slotChanged( int, KMailDrop* ) ) );
- connect( dcopdrop, TQT_SIGNAL( showPassivePopup( TQPtrList< KornMailSubject >*, int, bool, const TQString& ) ),
- this, TQT_SLOT( slotShowPassivePopup( TQPtrList< KornMailSubject >*, int, bool, const TQString& ) ) );
+ connect( dcopdrop, TQ_SIGNAL( changed( int, KMailDrop* ) ), this, TQ_SLOT( slotChanged( int, KMailDrop* ) ) );
+ connect( dcopdrop, TQ_SIGNAL( showPassivePopup( TQPtrList< KornMailSubject >*, int, bool, const TQString& ) ),
+ this, TQ_SLOT( slotShowPassivePopup( TQPtrList< KornMailSubject >*, int, bool, const TQString& ) ) );
dcopdrop->readConfigGroup( *masterGroup );
dcopdrop->setDCOPName( *it );
diff --git a/korn/accountmanager.h b/korn/accountmanager.h
index e28a8525..38b5069c 100644
--- a/korn/accountmanager.h
+++ b/korn/accountmanager.h
@@ -39,7 +39,7 @@ template< class T, class W > class TQMap;
* and it communicate with the boxes.
*/
class AccountManager : public TQObject
-{ Q_OBJECT
+{ TQ_OBJECT
public:
/**
diff --git a/korn/boxcontainer.cpp b/korn/boxcontainer.cpp
index d881b6c8..44e1e8ab 100644
--- a/korn/boxcontainer.cpp
+++ b/korn/boxcontainer.cpp
@@ -76,7 +76,7 @@ void BoxContainer::slotShowConfiguration()
void BoxContainer::addItem( BoxContainerItem* item )
{
- connect( item, TQT_SIGNAL( showConfiguration() ), this, TQT_SLOT( slotShowConfiguration() ) );
+ connect( item, TQ_SIGNAL( showConfiguration() ), this, TQ_SLOT( slotShowConfiguration() ) );
_items->append( item );
}
diff --git a/korn/boxcontainer.h b/korn/boxcontainer.h
index e5f5a8f4..bd489ed6 100644
--- a/korn/boxcontainer.h
+++ b/korn/boxcontainer.h
@@ -32,7 +32,7 @@ class TDEConfig;
* where BoxContainerItems can be placed. BoxContainerItems are the boxes you see.
*/
class BoxContainer : public TQObject
-{ Q_OBJECT
+{ TQ_OBJECT
public:
/**
diff --git a/korn/boxcontaineritem.cpp b/korn/boxcontaineritem.cpp
index e67296d5..7575ba7c 100644
--- a/korn/boxcontaineritem.cpp
+++ b/korn/boxcontaineritem.cpp
@@ -164,18 +164,18 @@ void BoxContainerItem::runCommand( const TQString& cmd )
TDEProcess *process = new TDEProcess;
process->setUseShell( true );
*process << cmd;
- connect( process, TQT_SIGNAL( processExited (TDEProcess *) ), this, TQT_SLOT( processExited( TDEProcess * ) ) );
+ connect( process, TQ_SIGNAL( processExited (TDEProcess *) ), this, TQ_SLOT( processExited( TDEProcess * ) ) );
process->start();
}
void BoxContainerItem::mouseButtonPressed( TQt::ButtonState state )
{
int button;
- if( state & Qt::LeftButton )
+ if( state & TQt::LeftButton )
button = 0;
- else if( state & Qt::RightButton )
+ else if( state & TQt::RightButton )
button = 2;
- else if( state & Qt::MidButton )
+ else if( state & TQt::MidButton )
button = 1;
else
return; //Invalid mouse button
@@ -194,21 +194,21 @@ void BoxContainerItem::mouseButtonPressed( TQt::ButtonState state )
void BoxContainerItem::fillTDEPopupMenu( TDEPopupMenu* popupMenu, TDEActionCollection* actions ) const
{
- /*popupMenu->insertItem( i18n( "&Configure" ), this, TQT_SLOT( slotConfigure() ) );
- popupMenu->insertItem( i18n( "&Recheck" ), this, TQT_SLOT( slotRecheck() ) );
- popupMenu->insertItem( i18n( "R&eset Counter" ), this, TQT_SLOT( slotReset() ) );
- popupMenu->insertItem( i18n( "&View Emails" ), this, TQT_SLOT( slotView() ) );
- popupMenu->insertItem( i18n( "R&un Command" ), this, TQT_SLOT( slotRunCommand() ) );*/
-
- (new TDEAction( i18n("&Configure"), TDEShortcut(), this, TQT_SLOT( slotConfigure() ), actions ))->plug( popupMenu );
- (new TDEAction( i18n("&Recheck"), TDEShortcut(), this, TQT_SLOT( slotRecheck() ), actions ))->plug( popupMenu );
- (new TDEAction( i18n("R&eset Counter"), TDEShortcut(), this, TQT_SLOT( slotReset() ), actions ))->plug( popupMenu );
- (new TDEAction( i18n("&View Emails"), TDEShortcut(), this, TQT_SLOT( slotView() ), actions ))->plug( popupMenu );
- (new TDEAction( i18n("R&un Command"), TDEShortcut(), this, TQT_SLOT( slotRunCommand() ), actions ))->plug( popupMenu );
+ /*popupMenu->insertItem( i18n( "&Configure" ), this, TQ_SLOT( slotConfigure() ) );
+ popupMenu->insertItem( i18n( "&Recheck" ), this, TQ_SLOT( slotRecheck() ) );
+ popupMenu->insertItem( i18n( "R&eset Counter" ), this, TQ_SLOT( slotReset() ) );
+ popupMenu->insertItem( i18n( "&View Emails" ), this, TQ_SLOT( slotView() ) );
+ popupMenu->insertItem( i18n( "R&un Command" ), this, TQ_SLOT( slotRunCommand() ) );*/
+
+ (new TDEAction( i18n("&Configure"), TDEShortcut(), this, TQ_SLOT( slotConfigure() ), actions ))->plug( popupMenu );
+ (new TDEAction( i18n("&Recheck"), TDEShortcut(), this, TQ_SLOT( slotRecheck() ), actions ))->plug( popupMenu );
+ (new TDEAction( i18n("R&eset Counter"), TDEShortcut(), this, TQ_SLOT( slotReset() ), actions ))->plug( popupMenu );
+ (new TDEAction( i18n("&View Emails"), TDEShortcut(), this, TQ_SLOT( slotView() ), actions ))->plug( popupMenu );
+ (new TDEAction( i18n("R&un Command"), TDEShortcut(), this, TQ_SLOT( slotRunCommand() ), actions ))->plug( popupMenu );
popupMenu->insertSeparator();
- KStdAction::help( this, TQT_SLOT( help() ), actions )->plug( popupMenu );
- KStdAction::reportBug( this, TQT_SLOT( reportBug() ), actions )->plug( popupMenu );
- KStdAction::aboutApp( this, TQT_SLOT( about() ), actions )->plug( popupMenu );
+ KStdAction::help( this, TQ_SLOT( help() ), actions )->plug( popupMenu );
+ KStdAction::reportBug( this, TQ_SLOT( reportBug() ), actions )->plug( popupMenu );
+ KStdAction::aboutApp( this, TQ_SLOT( about() ), actions )->plug( popupMenu );
}
void BoxContainerItem::showPassivePopup( TQWidget* parent, TQPtrList< KornMailSubject >* list, int total,
diff --git a/korn/boxcontaineritem.h b/korn/boxcontaineritem.h
index a132c59e..575e9835 100644
--- a/korn/boxcontaineritem.h
+++ b/korn/boxcontaineritem.h
@@ -42,7 +42,7 @@ class TQString;
*/
class BoxContainerItem : public AccountManager, public DCOPObject
{
- Q_OBJECT
+ TQ_OBJECT
//
K_DCOP
public:
diff --git a/korn/dcopdrop.cpp b/korn/dcopdrop.cpp
index 660bc849..55edda74 100644
--- a/korn/dcopdrop.cpp
+++ b/korn/dcopdrop.cpp
@@ -106,7 +106,7 @@ TQValueVector< KornMailSubject >* DCOPDrop::doReadSubjects( bool * )
* This way, the function is really asynchrone.
* So, the return value arraves before any data arrives.
*/
- TQTimer::singleShot( 1, this, TQT_SLOT( doReadSubjectsASync( void ) ) );
+ TQTimer::singleShot( 1, this, TQ_SLOT( doReadSubjectsASync( void ) ) );
/*
* A empty TQValueVector is made here.
diff --git a/korn/dcopdrop.h b/korn/dcopdrop.h
index cd3cd790..825f44e0 100644
--- a/korn/dcopdrop.h
+++ b/korn/dcopdrop.h
@@ -38,7 +38,7 @@ class TQString;
* This class handles all new messages which are comming in through DCOP.
*/
class DCOPDrop : public KMailDrop
-{ Q_OBJECT
+{ TQ_OBJECT
public:
/**
diff --git a/korn/dockedcontainer.h b/korn/dockedcontainer.h
index 11ea6ccf..af79349e 100644
--- a/korn/dockedcontainer.h
+++ b/korn/dockedcontainer.h
@@ -28,7 +28,7 @@ class BoxContainerItem;
* The only thing it does is creating TQt::DocketItems.
*/
class DockedContainer : public BoxContainer
-{ Q_OBJECT
+{ TQ_OBJECT
public:
DockedContainer( TQObject * parent = 0, const char * name = 0 );
diff --git a/korn/dockeditem.cpp b/korn/dockeditem.cpp
index 40274474..34b483cc 100644
--- a/korn/dockeditem.cpp
+++ b/korn/dockeditem.cpp
@@ -37,14 +37,14 @@
#include <tqmovie.h>
DockedItem::DockedItem( TQWidget * parent, const char * name )
- : BoxContainerItem( TQT_TQOBJECT(parent), name ),
+ : BoxContainerItem( parent, name ),
_systemtray( new SystemTray( parent, "System tray" ) )
{
this->fillTDEPopupMenu( _systemtray->contextMenu(), _systemtray->actionCollection() );
- connect( _systemtray, TQT_SIGNAL( quitSelected() ), kapp, TQT_SLOT( quit() ) );
- connect( _systemtray, TQT_SIGNAL( mouseButtonPressed( TQt::ButtonState ) ),
- this, TQT_SLOT( mouseButtonPressed( TQt::ButtonState ) ) );
+ connect( _systemtray, TQ_SIGNAL( quitSelected() ), kapp, TQ_SLOT( quit() ) );
+ connect( _systemtray, TQ_SIGNAL( mouseButtonPressed( TQt::ButtonState ) ),
+ this, TQ_SLOT( mouseButtonPressed( TQt::ButtonState ) ) );
}
DockedItem::~DockedItem()
diff --git a/korn/dockeditem.h b/korn/dockeditem.h
index 46513c9c..d0ad6a23 100644
--- a/korn/dockeditem.h
+++ b/korn/dockeditem.h
@@ -35,7 +35,7 @@ class TQPixmap;
* @author Mart Kelder <mart.kde@hccnet.nl>
*/
class DockedItem : public BoxContainerItem
-{ Q_OBJECT
+{ TQ_OBJECT
public:
/**
diff --git a/korn/hvcontainer.cpp b/korn/hvcontainer.cpp
index fa815179..cb2aef72 100644
--- a/korn/hvcontainer.cpp
+++ b/korn/hvcontainer.cpp
@@ -24,11 +24,11 @@
#include <tqvbox.h>
-HVContainer::HVContainer( Qt::Orientation orientation, TQObject * parent, const char * name )
+HVContainer::HVContainer( TQt::Orientation orientation, TQObject * parent, const char * name )
: BoxContainer( parent, name ),
box( 0 )
{
- if( orientation == Qt::Horizontal )
+ if( orientation == TQt::Horizontal )
box = new TQHBox( 0, "hbox" );
else
box = new TQVBox( 0, "vbox" );
diff --git a/korn/hvcontainer.h b/korn/hvcontainer.h
index 1485209f..ccb469fb 100644
--- a/korn/hvcontainer.h
+++ b/korn/hvcontainer.h
@@ -30,7 +30,7 @@ class TQHBox;
*/
class HVContainer : public BoxContainer
-{ Q_OBJECT
+{ TQ_OBJECT
public:
/**
@@ -38,7 +38,7 @@ public:
*
* @param orientation The orientation of the box: it is a vertical or horizontal box?
*/
- HVContainer( Qt::Orientation orientation, TQObject * parent = 0 , const char * name = 0 );
+ HVContainer( TQt::Orientation orientation, TQObject * parent = 0 , const char * name = 0 );
~HVContainer();
/**
diff --git a/korn/hvitem.cpp b/korn/hvitem.cpp
index cede9c47..12954379 100644
--- a/korn/hvitem.cpp
+++ b/korn/hvitem.cpp
@@ -39,9 +39,9 @@ HVItem::HVItem( TQWidget *parent, const char *name )
_popup->insertTitle( kapp->miniIcon(), kapp->caption() );
this->fillTDEPopupMenu( _popup, _actions );
_popup->insertSeparator();
- KStdAction::quit( TQT_TQOBJECT(kapp), TQT_SLOT( quit() ), _actions )->plug( _popup );
+ KStdAction::quit( kapp, TQ_SLOT( quit() ), _actions )->plug( _popup );
- connect( _label, TQT_SIGNAL( mouseButtonPressed( TQt::ButtonState ) ), this, TQT_SLOT( mouseButtonPressed( TQt::ButtonState ) ) );
+ connect( _label, TQ_SIGNAL( mouseButtonPressed( TQt::ButtonState ) ), this, TQ_SLOT( mouseButtonPressed( TQt::ButtonState ) ) );
}
HVItem::~HVItem()
diff --git a/korn/hvitem.h b/korn/hvitem.h
index 9e2045b1..19b583a5 100644
--- a/korn/hvitem.h
+++ b/korn/hvitem.h
@@ -30,7 +30,7 @@ class Label;
* Item for a horizontal or vertical displayed window.
*/
class HVItem : public BoxContainerItem
-{ Q_OBJECT
+{ TQ_OBJECT
public:
HVItem( TQWidget *parent = 0, const char *name = 0 );
diff --git a/korn/imap_proto.cpp b/korn/imap_proto.cpp
index caedb459..aae646d9 100644
--- a/korn/imap_proto.cpp
+++ b/korn/imap_proto.cpp
@@ -50,15 +50,15 @@ void Imap_Protocol::configFields( TQPtrVector< TQWidget >* vector, const TQObjec
result->append( new TextInput( (TQWidget*)vector->at( 0 ), i18n( "Server" ), TextInput::text, "", "server" ) );
result->append( new TextInput( (TQWidget*)vector->at( 0 ), i18n( "Port" ), 0, 65535, "143", "port" ) );
result->append( new ComboInput( (TQWidget*)vector->at( 0 ), i18n( "Encryption" ), encrList, "tls=auto", "encryption" ) );
- TQObject::connect( (TQObject*)result->last()->rightWidget(), TQT_SIGNAL( activated( int) ),
- configDialog, TQT_SLOT( slotSSLChanged() ) );
+ TQObject::connect( (TQObject*)result->last()->rightWidget(), TQ_SIGNAL( activated( int) ),
+ configDialog, TQ_SLOT( slotSSLChanged() ) );
result->append( new TextInput( (TQWidget*)vector->at( 1 ), i18n( "Username" ), TextInput::text, "", "username" ) );
result->append( new TextInput( (TQWidget*)vector->at( 1 ), i18n( "Mailbox" ), TextInput::text, "INBOX", "mailbox" ) );
result->append( new TextInput( (TQWidget*)vector->at( 1 ), i18n( "Password" ), TextInput::password, "", "password" ) );
result->append( new CheckboxInput( (TQWidget*)vector->at( 1 ), i18n( "Save password" ), "true", "savepassword" ) );
- TQObject::connect( (TQObject*)result->last()->rightWidget(), TQT_SIGNAL( toggled( bool ) ),
- (TQObject*)result->prev()->rightWidget(), TQT_SLOT( setEnabled( bool ) ) );
+ TQObject::connect( (TQObject*)result->last()->rightWidget(), TQ_SIGNAL( toggled( bool ) ),
+ (TQObject*)result->prev()->rightWidget(), TQ_SLOT( setEnabled( bool ) ) );
result->last()->setValue( "false" );
result->append( new ComboInput( (TQWidget*)vector->at( 1 ), i18n( "Authentication" ), authList, "auth=*", "auth" ) );
}
diff --git a/korn/keditlistboxman.cpp b/korn/keditlistboxman.cpp
index 440b2c83..a3e8b4d4 100644
--- a/korn/keditlistboxman.cpp
+++ b/korn/keditlistboxman.cpp
@@ -96,12 +96,12 @@ void KEditListBoxManager::setSubGroupName( const TQString& name )
void KEditListBoxManager::init()
{
- connect( this, TQT_SIGNAL( changed() ), this, TQT_SLOT( slotChanged() ) );
- connect( this, TQT_SIGNAL( added( const TQString& ) ), this, TQT_SLOT( slotAdded( const TQString& ) ) );
- connect( this, TQT_SIGNAL( removed( const TQString& ) ), this, TQT_SLOT( slotRemoved( const TQString& ) ) );
+ connect( this, TQ_SIGNAL( changed() ), this, TQ_SLOT( slotChanged() ) );
+ connect( this, TQ_SIGNAL( added( const TQString& ) ), this, TQ_SLOT( slotAdded( const TQString& ) ) );
+ connect( this, TQ_SIGNAL( removed( const TQString& ) ), this, TQ_SLOT( slotRemoved( const TQString& ) ) );
- connect( this->listBox(), TQT_SIGNAL( doubleClicked( TQListBoxItem * ) ), this, TQT_SLOT( slotActivated( TQListBoxItem * ) ) );
- connect( this->listBox(), TQT_SIGNAL( returnPressed( TQListBoxItem * ) ), this, TQT_SLOT( slotActivated( TQListBoxItem * ) ) );
+ connect( this->listBox(), TQ_SIGNAL( doubleClicked( TQListBoxItem * ) ), this, TQ_SLOT( slotActivated( TQListBoxItem * ) ) );
+ connect( this->listBox(), TQ_SIGNAL( returnPressed( TQListBoxItem * ) ), this, TQ_SLOT( slotActivated( TQListBoxItem * ) ) );
}
void KEditListBoxManager::readNames()
diff --git a/korn/keditlistboxman.h b/korn/keditlistboxman.h
index 81acca89..235b9679 100644
--- a/korn/keditlistboxman.h
+++ b/korn/keditlistboxman.h
@@ -32,7 +32,7 @@ class TQWidget;
* @author Mart Kelder (mart.kde@hccnet.nl)
*/
class KEditListBoxManager : public KEditListBox
-{ Q_OBJECT
+{ TQ_OBJECT
public:
/**
diff --git a/korn/kornaccountcfg.ui b/korn/kornaccountcfg.ui
index 74c525b7..5a46dc39 100644
--- a/korn/kornaccountcfg.ui
+++ b/korn/kornaccountcfg.ui
@@ -234,15 +234,13 @@
<tabstop>chPassivePopup</tabstop>
<tabstop>chPassiveDate</tabstop>
</tabstops>
-<Q_SLOTS>
+<slots>
<slot access="protected">slotProtocolChanged( const TQString&amp; )</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
<includes>
+ <include location="global" impldecl="in implementation">klineedit.h</include>
+ <include location="global" impldecl="in implementation">kpushbutton.h</include>
<include location="global" impldecl="in implementation">kurlrequester.h</include>
</includes>
-<includehints>
- <includehint>klineedit.h</includehint>
- <includehint>kpushbutton.h</includehint>
-</includehints>
</UI>
diff --git a/korn/kornaccountcfgimpl.cpp b/korn/kornaccountcfgimpl.cpp
index 7b57d1f6..bf1e614c 100644
--- a/korn/kornaccountcfgimpl.cpp
+++ b/korn/kornaccountcfgimpl.cpp
@@ -49,8 +49,8 @@ KornAccountCfgImpl::KornAccountCfgImpl( TQWidget * parent, const char * name )
_groupBoxes( 0 ),
_accountinput( new TQPtrList< AccountInput >() )
{
- connect( parent, TQT_SIGNAL( okClicked() ), this, TQT_SLOT( slotOK() ) );
- connect( parent, TQT_SIGNAL( cancelClicked() ), this, TQT_SLOT( slotCancel() ) );
+ connect( parent, TQ_SIGNAL( okClicked() ), this, TQ_SLOT( slotOK() ) );
+ connect( parent, TQ_SIGNAL( cancelClicked() ), this, TQ_SLOT( slotCancel() ) );
this->cbProtocol->insertStringList( Protocols::getProtocols() );
@@ -195,7 +195,7 @@ void KornAccountCfgImpl::slotProtocolChanged( const TQString& proto )
delete groupBoxes;
AccountInput *input;
- protocol->configFields( _groupBoxes, TQT_TQOBJECT(this), _accountinput );
+ protocol->configFields( _groupBoxes, this, _accountinput );
for( unsigned int groupCounter = 0; groupCounter < _groupBoxes->count(); ++groupCounter )
{
@@ -205,14 +205,14 @@ void KornAccountCfgImpl::slotProtocolChanged( const TQString& proto )
grid->setMargin( 15 );
for( input = _accountinput->first(); input; input = _accountinput->next() )
{
- if( input->leftWidget() && TQT_BASE_OBJECT(_groupBoxes->at( groupCounter )) == TQT_BASE_OBJECT(input->leftWidget()->parent()) )
+ if( input->leftWidget() && _groupBoxes->at( groupCounter ) == input->leftWidget()->parent() )
{
grid->addWidget( input->leftWidget(), counter, 0 );
- if( input->rightWidget() && TQT_BASE_OBJECT(_groupBoxes->at( groupCounter )) == TQT_BASE_OBJECT(input->rightWidget()->parent()) )
+ if( input->rightWidget() && _groupBoxes->at( groupCounter ) == input->rightWidget()->parent() )
grid->addWidget( input->rightWidget(), counter, 1 );
++counter;
} else {
- if( input->rightWidget() && TQT_BASE_OBJECT(_groupBoxes->at( groupCounter )) == TQT_BASE_OBJECT(input->rightWidget()->parent()) )
+ if( input->rightWidget() && _groupBoxes->at( groupCounter ) == input->rightWidget()->parent() )
{
grid->addWidget( input->rightWidget(), counter, 1 );
++counter;
diff --git a/korn/kornaccountcfgimpl.h b/korn/kornaccountcfgimpl.h
index 0a765dcb..20fe6372 100644
--- a/korn/kornaccountcfgimpl.h
+++ b/korn/kornaccountcfgimpl.h
@@ -36,7 +36,7 @@ template< class T > class TQPtrList;
template< class T > class TQPtrVector;
class KornAccountCfgImpl : public KornAccountCfg
-{ Q_OBJECT
+{ TQ_OBJECT
public:
KornAccountCfgImpl( TQWidget * parent = 0, const char * name = 0 );
diff --git a/korn/kornapp.h b/korn/kornapp.h
index 41348cc2..9ef87f2f 100644
--- a/korn/kornapp.h
+++ b/korn/kornapp.h
@@ -16,7 +16,7 @@ class KornShell;
*/
class KornApp : public KUniqueApplication
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/korn/kornboxcfg.ui b/korn/kornboxcfg.ui
index c70fef90..88d04d67 100644
--- a/korn/kornboxcfg.ui
+++ b/korn/kornboxcfg.ui
@@ -1665,7 +1665,7 @@
<tabstop>chPassiveDate</tabstop>
<tabstop>pbEdit</tabstop>
</tabstops>
-<Q_SLOTS>
+<slots>
<slot access="protected">slotEditBox()</slot>
<slot access="protected">slotActivated( const TQString&amp; )</slot>
<slot access="protected">slotActivated( const int )</slot>
@@ -1676,15 +1676,13 @@
<slot access="protected">slotChangeNewAnim()</slot>
<slot access="protected">slotNormalAnimToggled( bool )</slot>
<slot access="protected">slotNewAnimToggled( bool )</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
<includes>
<include location="global" impldecl="in implementation">kcolorbutton.h</include>
+ <include location="global" impldecl="in implementation">keditlistbox.h</include>
<include location="global" impldecl="in implementation">kicondialog.h</include>
+ <include location="global" impldecl="in implementation">kpushbutton.h</include>
<include location="global" impldecl="in implementation">kurlrequester.h</include>
</includes>
-<includehints>
- <includehint>kpushbutton.h</includehint>
- <includehint>keditlistbox.h</includehint>
-</includehints>
</UI>
diff --git a/korn/kornboxcfgimpl.cpp b/korn/kornboxcfgimpl.cpp
index 7d29e1f5..cd9cbdf3 100644
--- a/korn/kornboxcfgimpl.cpp
+++ b/korn/kornboxcfgimpl.cpp
@@ -56,13 +56,13 @@ KornBoxCfgImpl::KornBoxCfgImpl( TQWidget * parent, const char * name )
if( lbRight->text() == "Right" )
lbRight->setText( i18n( "Right" ) );
- connect( parent, TQT_SIGNAL( okClicked() ), this, TQT_SLOT( slotOK() ) );
- connect( parent, TQT_SIGNAL( cancelClicked() ), this, TQT_SLOT( slotCancel() ) );
+ connect( parent, TQ_SIGNAL( okClicked() ), this, TQ_SLOT( slotOK() ) );
+ connect( parent, TQ_SIGNAL( cancelClicked() ), this, TQ_SLOT( slotCancel() ) );
elbAccounts->setTitle( i18n( "Accounts" ) );
- connect( elbAccounts, TQT_SIGNAL( elementsSwapped( int, int ) ), this, TQT_SLOT( slotAccountsSwapped( int, int ) ) );
- connect( elbAccounts, TQT_SIGNAL( elementDeleted( int ) ), this, TQT_SLOT( slotAccountDeleted( int ) ) );
+ connect( elbAccounts, TQ_SIGNAL( elementsSwapped( int, int ) ), this, TQ_SLOT( slotAccountsSwapped( int, int ) ) );
+ connect( elbAccounts, TQ_SIGNAL( elementDeleted( int ) ), this, TQ_SLOT( slotAccountDeleted( int ) ) );
}
KornBoxCfgImpl::~KornBoxCfgImpl()
@@ -247,7 +247,7 @@ void KornBoxCfgImpl::slotEditBox()
_base->setMainWidget( widget );
- connect( _base, TQT_SIGNAL( finished() ), this, TQT_SLOT( slotDialogDestroyed() ) );
+ connect( _base, TQ_SIGNAL( finished() ), this, TQ_SLOT( slotDialogDestroyed() ) );
_group = new TDEConfigGroup( _config, TQString( "korn-%1-%2" ).
arg( _index ).arg(elbAccounts->listBox()->currentItem() ) );
diff --git a/korn/kornboxcfgimpl.h b/korn/kornboxcfgimpl.h
index 5bc82c44..c0a9f044 100644
--- a/korn/kornboxcfgimpl.h
+++ b/korn/kornboxcfgimpl.h
@@ -30,7 +30,7 @@ class TQString;
class TQWidget;
class KornBoxCfgImpl : public KornBoxCfg
-{ Q_OBJECT
+{ TQ_OBJECT
public:
KornBoxCfgImpl( TQWidget *parent, const char * name );
diff --git a/korn/korncfg.ui b/korn/korncfg.ui
index e3bed083..5179b93c 100644
--- a/korn/korncfg.ui
+++ b/korn/korncfg.ui
@@ -163,7 +163,7 @@
<slot>slotEditBox()</slot>
</connection>
</connections>
-<Q_SLOTS>
+<slots>
<slot access="protected">slotActivated( const TQString&amp; )</slot>
<slot access="protected">slotActivated( const int )</slot>
<slot>slotOK()</slot>
@@ -171,6 +171,6 @@
<slot>slotCancel()</slot>
<slot access="protected">slotSetDefaults( const TQString&amp;, const int, TDEConfig* )</slot>
<slot access="protected">slotEditBox()</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
</UI>
diff --git a/korn/korncfgimpl.cpp b/korn/korncfgimpl.cpp
index c4fa1359..f0e4f983 100644
--- a/korn/korncfgimpl.cpp
+++ b/korn/korncfgimpl.cpp
@@ -47,12 +47,12 @@ KornCfgImpl::KornCfgImpl( TQWidget * parent, const char * name )
elbBoxes->setConfig( _config );
elbBoxes->setTitle( i18n( "Boxes" ) );
- connect( parent, TQT_SIGNAL( okClicked() ), this, TQT_SLOT( slotOK() ) );
- connect( parent, TQT_SIGNAL( cancelClicked() ), this, TQT_SLOT( slotCancel() ) );
- connect( parent, TQT_SIGNAL( applyClicked() ), this, TQT_SLOT( slotApply() ) );
+ connect( parent, TQ_SIGNAL( okClicked() ), this, TQ_SLOT( slotOK() ) );
+ connect( parent, TQ_SIGNAL( cancelClicked() ), this, TQ_SLOT( slotCancel() ) );
+ connect( parent, TQ_SIGNAL( applyClicked() ), this, TQ_SLOT( slotApply() ) );
- connect( elbBoxes, TQT_SIGNAL( elementsSwapped( int, int ) ), this, TQT_SLOT( slotElementsSwapped( int, int ) ) );
- connect( elbBoxes, TQT_SIGNAL( elementDeleted( int ) ), this, TQT_SLOT( slotElementDeleted( int ) ) );
+ connect( elbBoxes, TQ_SIGNAL( elementsSwapped( int, int ) ), this, TQ_SLOT( slotElementsSwapped( int, int ) ) );
+ connect( elbBoxes, TQ_SIGNAL( elementDeleted( int ) ), this, TQ_SLOT( slotElementDeleted( int ) ) );
readConfig();
}
@@ -74,7 +74,7 @@ void KornCfgImpl::slotEditBox()
KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok, true );
KornBoxCfgImpl *widget = new KornBoxCfgImpl( _base, "Box Widget" );
- connect( _base, TQT_SIGNAL( finished() ), this, TQT_SLOT( slotDialogDestroyed() ) );
+ connect( _base, TQ_SIGNAL( finished() ), this, TQ_SLOT( slotDialogDestroyed() ) );
_base->setMainWidget( widget );
widget->readConfig( _config, elbBoxes->listBox()->currentItem() );
diff --git a/korn/korncfgimpl.h b/korn/korncfgimpl.h
index e1289cd8..a0007327 100644
--- a/korn/korncfgimpl.h
+++ b/korn/korncfgimpl.h
@@ -28,7 +28,7 @@ class TQObject;
class TQString;
class KornCfgImpl : public KornCfgWidget
-{ Q_OBJECT
+{ TQ_OBJECT
public:
KornCfgImpl( TQWidget * parent = 0, const char * name = 0 );
diff --git a/korn/kornshell.cpp b/korn/kornshell.cpp
index 7f5587bc..ec3c7caf 100644
--- a/korn/kornshell.cpp
+++ b/korn/kornshell.cpp
@@ -43,7 +43,7 @@ KornShell::KornShell( TQWidget * parent, const char * name )
if( kapp->isRestored() )
{
_config->setGroup( "korn" );
- TQTimer::singleShot( _config->readNumEntry( "session_startup_delay", 2000 ), this, TQT_SLOT(readConfig()) );
+ TQTimer::singleShot( _config->readNumEntry( "session_startup_delay", 2000 ), this, TQ_SLOT(readConfig()) );
kdDebug() << "startup delayed" << endl;
}
else
@@ -84,8 +84,8 @@ void KornShell::optionDlg()
KornCfgImpl *widget = new KornCfgImpl( _configDialog, "Configuration widget" );
_configDialog->setMainWidget( widget );
- connect( _configDialog, TQT_SIGNAL( finished() ), this, TQT_SLOT( slotDialogClosed() ) );
- connect( _configDialog, TQT_SIGNAL( applyClicked() ), this, TQT_SLOT( slotApply() ) );
+ connect( _configDialog, TQ_SIGNAL( finished() ), this, TQ_SLOT( slotDialogClosed() ) );
+ connect( _configDialog, TQ_SIGNAL( applyClicked() ), this, TQ_SLOT( slotApply() ) );
_configDialog->show();
}
@@ -99,13 +99,13 @@ void KornShell::readConfig()
KOrnPassword::setUseWallet( _config->readBoolEntry( "usewallet", false ) );
if( layout == 'H' )
- _box = new HVContainer( Qt::Horizontal, TQT_TQOBJECT(this), "horizontal container" );
+ _box = new HVContainer( TQt::Horizontal, this, "horizontal container" );
else if( layout == 'V' )
- _box = new HVContainer( Qt::Vertical, TQT_TQOBJECT(this), "vertical container" );
+ _box = new HVContainer( TQt::Vertical, this, "vertical container" );
else
- _box = new DockedContainer( TQT_TQOBJECT(this), "docked container" );
+ _box = new DockedContainer( this, "docked container" );
- connect( _box, TQT_SIGNAL( showConfiguration() ), this, TQT_SLOT( optionDlg() ) );
+ connect( _box, TQ_SIGNAL( showConfiguration() ), this, TQ_SLOT( optionDlg() ) );
_box->readConfig( _config );
diff --git a/korn/kornshell.h b/korn/kornshell.h
index 57d631d7..3de3e485 100644
--- a/korn/kornshell.h
+++ b/korn/kornshell.h
@@ -30,7 +30,7 @@ class TDEConfig;
* This is a rewritten KornShell class. It is rewritten because the depending classes changed.
*/
class KornShell : public TQWidget
-{ Q_OBJECT
+{ TQ_OBJECT
public:
KornShell( TQWidget * parent = 0, const char * name = 0 );
diff --git a/korn/label.h b/korn/label.h
index d6cd31b0..7f68e9c4 100644
--- a/korn/label.h
+++ b/korn/label.h
@@ -26,7 +26,7 @@
* A simple overriding of the TQLabel class to get a mouseButtonPressed() signal
*/
class Label : public TQLabel
-{ Q_OBJECT
+{ TQ_OBJECT
public:
Label( TQWidget * parent = 0, const char * name = 0 ) : TQLabel( parent, name ) {}
diff --git a/korn/maildlg.cpp b/korn/maildlg.cpp
index d912c447..71db3da3 100644
--- a/korn/maildlg.cpp
+++ b/korn/maildlg.cpp
@@ -17,7 +17,7 @@ KornMailDlg::KornMailDlg( TQWidget *parent )
_editCtrl = new KEdit(page);
topLayout->addWidget(_editCtrl, 10);
_editCtrl->setReadOnly(true);
- connect(this, TQT_SIGNAL(user1Clicked()), this, TQT_SLOT(showFullMessage()));
+ connect(this, TQ_SIGNAL(user1Clicked()), this, TQ_SLOT(showFullMessage()));
setInitialSize(TQSize(TQApplication::desktop()->width()*9/10, TQApplication::desktop()->height()/2));
}
@@ -46,14 +46,14 @@ void KornMailDlg::showFullMessage()
tqApp->processEvents();
// connect the mailbox with the progress dialog in case it supports progress bars
- connect(_mailDrop, TQT_SIGNAL(readMailTotalSteps(int)), _progress, TQT_SLOT(setTotalSteps(int)));
- connect(_mailDrop, TQT_SIGNAL(readMailProgress(int)), _progress, TQT_SLOT(setProgress(int)));
+ connect(_mailDrop, TQ_SIGNAL(readMailTotalSteps(int)), _progress, TQ_SLOT(setTotalSteps(int)));
+ connect(_mailDrop, TQ_SIGNAL(readMailProgress(int)), _progress, TQ_SLOT(setProgress(int)));
tqApp->processEvents();
// connect the mailbox's cancel button
- connect(_progress, TQT_SIGNAL(canceled()), this, TQT_SLOT(loadMailCanceled()));
+ connect(_progress, TQ_SIGNAL(canceled()), this, TQ_SLOT(loadMailCanceled()));
- connect(_mailDrop, TQT_SIGNAL(readMailReady(TQString*)), this, TQT_SLOT(readMailReady(TQString*)));
+ connect(_mailDrop, TQ_SIGNAL(readMailReady(TQString*)), this, TQ_SLOT(readMailReady(TQString*)));
// now load the mail fully
if( _mailDrop->synchrone() )
@@ -100,7 +100,7 @@ void KornMailDlg::deleteProgress()
_progress->setProgress(_progress->totalSteps());
_progress->hide();
- disconnect( _mailDrop, TQT_SIGNAL(readMailReady(TQString*)), this, TQT_SLOT(readMailReady(TQString*)));
+ disconnect( _mailDrop, TQ_SIGNAL(readMailReady(TQString*)), this, TQ_SLOT(readMailReady(TQString*)));
delete _progress;
_progress = 0;
diff --git a/korn/maildlg.h b/korn/maildlg.h
index 7d76d488..df0b02e0 100644
--- a/korn/maildlg.h
+++ b/korn/maildlg.h
@@ -16,7 +16,7 @@ class TQString;
*/
class KornMailDlg : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
/**
diff --git a/korn/maildrop.cpp b/korn/maildrop.cpp
index 2224c74e..b9747906 100644
--- a/korn/maildrop.cpp
+++ b/korn/maildrop.cpp
@@ -37,7 +37,7 @@ KMailDrop::KMailDrop()
: _style(Plain),
_lastCount(0)
{
- connect(this, TQT_SIGNAL(changed( int, KMailDrop* )), TQT_SLOT(setCount( int, KMailDrop* )));
+ connect(this, TQ_SIGNAL(changed( int, KMailDrop* )), TQ_SLOT(setCount( int, KMailDrop* )));
//Set default colours; this prevents black (TQColor::invalid) boxes after creating a new box.
_bgColour = TQApplication::palette().active().background();
diff --git a/korn/maildrop.h b/korn/maildrop.h
index 9b755d4a..3a885e6c 100644
--- a/korn/maildrop.h
+++ b/korn/maildrop.h
@@ -29,7 +29,7 @@ template< class T, class R > class TQMap;
*/
class KMailDrop : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/korn/mailsubject.cpp b/korn/mailsubject.cpp
index 0b7a2e3a..841e183b 100644
--- a/korn/mailsubject.cpp
+++ b/korn/mailsubject.cpp
@@ -54,7 +54,7 @@ TQString KornMailSubject::toString() const
date.setTime_t(_date);
return TQString("KornMailSubject, Id: ") + (_id?_id->toString():TQString("NULL")) + ", " + i18n("Subject:") + " " + _subject
+ ", " + i18n("Sender:") + " " + _sender + ", " + i18n("Size:") + " " + TQString::number(_size)
- + ", " + i18n("Date:") + " " + date.toString(Qt::ISODate);
+ + ", " + i18n("Date:") + " " + date.toString(TQt::ISODate);
}
TQString KornMailSubject::decodeRFC2047String(const TQCString& aStr)
diff --git a/korn/nntp_proto.cpp b/korn/nntp_proto.cpp
index f5c59a77..645f73bc 100644
--- a/korn/nntp_proto.cpp
+++ b/korn/nntp_proto.cpp
@@ -41,8 +41,8 @@ void Nntp_Protocol::configFields( TQPtrVector< TQWidget >* vector, const TQObjec
result->append( new TextInput( (TQWidget*)vector->at( 1 ), i18n( "Username" ), TextInput::text, "", "username" ) );
result->append( new TextInput( (TQWidget*)vector->at( 1 ), i18n( "Password" ), TextInput::password, "", "password" ) );
result->append( new CheckboxInput( (TQWidget*)vector->at( 1 ), i18n( "Save password" ), "true", "savepassword" ) );
- TQObject::connect( (TQObject*)result->last()->rightWidget(), TQT_SIGNAL( toggled( bool ) ),
- (TQObject*)result->prev()->rightWidget(), TQT_SLOT( setEnabled( bool ) ) );
+ TQObject::connect( (TQObject*)result->last()->rightWidget(), TQ_SIGNAL( toggled( bool ) ),
+ (TQObject*)result->prev()->rightWidget(), TQ_SLOT( setEnabled( bool ) ) );
result->last()->setValue( "false" );
}
diff --git a/korn/polldrop.h b/korn/polldrop.h
index a1a3bc89..78b3226f 100644
--- a/korn/polldrop.h
+++ b/korn/polldrop.h
@@ -20,7 +20,7 @@ class TQTimerEvent;
*/
class KPollableDrop : public KMailDrop
{
- Q_OBJECT
+ TQ_OBJECT
public:
static const char *PollConfigKey;
diff --git a/korn/pop3_proto.cpp b/korn/pop3_proto.cpp
index 732f85cf..37b44dc3 100644
--- a/korn/pop3_proto.cpp
+++ b/korn/pop3_proto.cpp
@@ -50,14 +50,14 @@ void Pop3_Protocol::configFields( TQPtrVector< TQWidget >* vector, const TQObjec
result->append( new TextInput( (TQWidget*)vector->at( 0 ), i18n( "Server" ), TextInput::text, "", "server" ) );
result->append( new TextInput( (TQWidget*)vector->at( 0 ), i18n( "Port" ), 0, 65535, "110", "port" ) );
result->append( new ComboInput( (TQWidget*)vector->at( 0 ), i18n( "Encryption" ), encrList, "tls=auto", "encryption" ) );
- TQObject::connect( (TQObject*)result->last()->rightWidget(), TQT_SIGNAL( activated( int) ),
- configDialog, TQT_SLOT( slotSSLChanged() ) );
+ TQObject::connect( (TQObject*)result->last()->rightWidget(), TQ_SIGNAL( activated( int) ),
+ configDialog, TQ_SLOT( slotSSLChanged() ) );
result->append( new TextInput( (TQWidget*)vector->at( 1 ), i18n( "Username" ), TextInput::text, "", "username" ) );
result->append( new TextInput( (TQWidget*)vector->at( 1 ), i18n( "Password" ), TextInput::password, "", "password" ) );
result->append( new CheckboxInput( (TQWidget*)vector->at( 1 ), i18n( "Save password" ), "true", "savepassword" ) );
- TQObject::connect( (TQObject*)result->last()->rightWidget(), TQT_SIGNAL( toggled( bool ) ),
- (TQObject*)result->prev()->rightWidget(), TQT_SLOT( setEnabled( bool ) ) );
+ TQObject::connect( (TQObject*)result->last()->rightWidget(), TQ_SIGNAL( toggled( bool ) ),
+ (TQObject*)result->prev()->rightWidget(), TQ_SLOT( setEnabled( bool ) ) );
result->last()->setValue( "false" );
result->append( new ComboInput( (TQWidget*)vector->at( 1 ), i18n( "Authentication" ), authList, "", "auth" ) );
}
diff --git a/korn/progress_dialog.ui b/korn/progress_dialog.ui
index 9c891028..a5d5dc2f 100644
--- a/korn/progress_dialog.ui
+++ b/korn/progress_dialog.ui
@@ -105,16 +105,16 @@
<includes>
<include location="local" impldecl="in implementation">progress_dialog.ui.h</include>
</includes>
-<Q_SIGNALS>
+<signals>
<signal>cancelPressed()</signal>
-</Q_SIGNALS>
-<Q_SLOTS>
+</signals>
+<slots>
<slot>setText( const TQString &amp; str )</slot>
<slot>setNumberOfBoxes( int number )</slot>
<slot>setProgressOfBoxes( int number )</slot>
<slot>setNumberOfSteps( int number )</slot>
<slot>setProgress( int number )</slot>
<slot access="private" specifier="non virtual">cancelbutton()</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
</UI>
diff --git a/korn/subjectsdlg.cpp b/korn/subjectsdlg.cpp
index f3e4b3f4..4b10691d 100644
--- a/korn/subjectsdlg.cpp
+++ b/korn/subjectsdlg.cpp
@@ -93,14 +93,14 @@ KornSubjectsDlg::KornSubjectsDlg( TQWidget *parent )
_list->setItemMargin(3);
// connect the selection changed and double click events of the list view
- connect(_list, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(listSelectionChanged()));
- connect(_list, TQT_SIGNAL(executed(TQListViewItem *)), this, TQT_SLOT(doubleClicked(TQListViewItem *)));
+ connect(_list, TQ_SIGNAL(selectionChanged()), this, TQ_SLOT(listSelectionChanged()));
+ connect(_list, TQ_SIGNAL(executed(TQListViewItem *)), this, TQ_SLOT(doubleClicked(TQListViewItem *)));
// connect the buttons
- connect(invertSelButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(invertSelection()));
- connect(clearSelButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(removeSelection()));
- connect(showButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(showMessage()));
- connect(deleteButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(deleteMessage()));
+ connect(invertSelButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(invertSelection()));
+ connect(clearSelButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(removeSelection()));
+ connect(showButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(showMessage()));
+ connect(deleteButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(deleteMessage()));
setInitialSize(TQSize(TQApplication::desktop()->width(), TQApplication::desktop()->height()));
}
@@ -215,7 +215,7 @@ void KornSubjectsDlg::showSubjectsDlg( const TQString& name )
void KornSubjectsDlg::closeDialog( )
{
- disconnect( this, TQT_SIGNAL( finished() ), this, TQT_SLOT( closeDialog() ) );
+ disconnect( this, TQ_SIGNAL( finished() ), this, TQ_SLOT( closeDialog() ) );
}
//----------------------------
@@ -253,13 +253,13 @@ void KornSubjectsDlg::prepareStep1Subjects( KMailDrop *drop )
_subjects->progress->setProgress( 0 );
_subjects->atRechecking = true;
- connect( drop, TQT_SIGNAL( rechecked() ), this, TQT_SLOT( slotReloadRechecked() ) );
+ connect( drop, TQ_SIGNAL( rechecked() ), this, TQ_SLOT( slotReloadRechecked() ) );
drop->recheck();
}
void KornSubjectsDlg::removeStep1Subjects( KMailDrop *drop )
{
- disconnect( drop, TQT_SIGNAL( rechecked() ), this, TQT_SLOT( slotReloadRechecked() ) );
+ disconnect( drop, TQ_SIGNAL( rechecked() ), this, TQ_SLOT( slotReloadRechecked() ) );
}
void KornSubjectsDlg::prepareStep2Subjects( KMailDrop *drop )
@@ -267,11 +267,11 @@ void KornSubjectsDlg::prepareStep2Subjects( KMailDrop *drop )
_subjects->progress->setText( i18n( "Fetching messages..." ) );
_subjects->atRechecking = false;
- connect( drop, TQT_SIGNAL( readSubject( KornMailSubject* ) ), this, TQT_SLOT( subjectAvailable( KornMailSubject* ) ) );
- connect( drop, TQT_SIGNAL( readSubjectsReady( bool ) ), this, TQT_SLOT( subjectsReady( bool ) ) );
- connect( drop, TQT_SIGNAL( readSubjectsTotalSteps( int ) ), _subjects->progress, TQT_SLOT( setNumberOfSteps( int ) ) );
- connect( drop, TQT_SIGNAL( readSubjectsProgress( int ) ), _subjects->progress, TQT_SLOT( setProgress( int ) ) );
- connect( _subjects->progress, TQT_SIGNAL( cancelPressed() ), drop, TQT_SLOT( readSubjectsCanceled() ) );
+ connect( drop, TQ_SIGNAL( readSubject( KornMailSubject* ) ), this, TQ_SLOT( subjectAvailable( KornMailSubject* ) ) );
+ connect( drop, TQ_SIGNAL( readSubjectsReady( bool ) ), this, TQ_SLOT( subjectsReady( bool ) ) );
+ connect( drop, TQ_SIGNAL( readSubjectsTotalSteps( int ) ), _subjects->progress, TQ_SLOT( setNumberOfSteps( int ) ) );
+ connect( drop, TQ_SIGNAL( readSubjectsProgress( int ) ), _subjects->progress, TQ_SLOT( setProgress( int ) ) );
+ connect( _subjects->progress, TQ_SIGNAL( cancelPressed() ), drop, TQ_SLOT( readSubjectsCanceled() ) );
if( _subjects->it->current()->canReadSubjects() )
_subjects->it->current()->readSubjects( 0 );
@@ -281,11 +281,11 @@ void KornSubjectsDlg::prepareStep2Subjects( KMailDrop *drop )
void KornSubjectsDlg::removeStep2Subjects( KMailDrop *drop )
{
- disconnect( drop, TQT_SIGNAL( readSubject( KornMailSubject* ) ), this, TQT_SLOT( subjectAvailable( KornMailSubject* ) ) );
- disconnect( drop, TQT_SIGNAL( readSubjectsReady( bool ) ), this, TQT_SLOT( subjectsReady( bool ) ) );
- disconnect( drop, TQT_SIGNAL( readSubjectsTotalSteps( int ) ), _subjects->progress, TQT_SLOT( setNumberOfSteps( int ) ) );
- disconnect( drop, TQT_SIGNAL( readSubjectsProgress( int ) ), _subjects->progress, TQT_SLOT( setProgress( int ) ) );
- disconnect( _subjects->progress, TQT_SIGNAL( cancelPressed() ), drop, TQT_SLOT( readSubjectsCanceled() ) );
+ disconnect( drop, TQ_SIGNAL( readSubject( KornMailSubject* ) ), this, TQ_SLOT( subjectAvailable( KornMailSubject* ) ) );
+ disconnect( drop, TQ_SIGNAL( readSubjectsReady( bool ) ), this, TQ_SLOT( subjectsReady( bool ) ) );
+ disconnect( drop, TQ_SIGNAL( readSubjectsTotalSteps( int ) ), _subjects->progress, TQ_SLOT( setNumberOfSteps( int ) ) );
+ disconnect( drop, TQ_SIGNAL( readSubjectsProgress( int ) ), _subjects->progress, TQ_SLOT( setProgress( int ) ) );
+ disconnect( _subjects->progress, TQ_SIGNAL( cancelPressed() ), drop, TQ_SLOT( readSubjectsCanceled() ) );
}
bool KornSubjectsDlg::makeSubjectsStruct()
@@ -299,7 +299,7 @@ bool KornSubjectsDlg::makeSubjectsStruct()
_subjects->progress = new DoubleProgressDialog( this, "progress" );
_subjects->atRechecking = true;
- connect( _subjects->progress, TQT_SIGNAL( cancelPressed() ), this, TQT_SLOT( slotSubjectsCanceled() ) );
+ connect( _subjects->progress, TQ_SIGNAL( cancelPressed() ), this, TQ_SLOT( slotSubjectsCanceled() ) );
return true;
}
@@ -309,7 +309,7 @@ void KornSubjectsDlg::deleteSubjectsStruct()
if( !_subjects )
return;
- disconnect( _subjects->progress, TQT_SIGNAL( cancelPressed() ), this, TQT_SLOT( slotSubjectsCanceled() ) );
+ disconnect( _subjects->progress, TQ_SIGNAL( cancelPressed() ), this, TQ_SLOT( slotSubjectsCanceled() ) );
this->unsetCursor();
@@ -441,12 +441,12 @@ void KornSubjectsDlg::makeDeleteStruct()
_delete->progress = new TQProgressDialog( this, "progress" );
_delete->totalNumberOfMessages = 0;
- connect( _delete->progress, TQT_SIGNAL( canceled() ), this, TQT_SLOT( slotDeleteCanceled() ) );
+ connect( _delete->progress, TQ_SIGNAL( canceled() ), this, TQ_SLOT( slotDeleteCanceled() ) );
}
void KornSubjectsDlg::deleteDeleteStruct()
{
- disconnect( _delete->progress, TQT_SIGNAL( canceled() ), this, TQT_SLOT( slotDeleteCanceled() ) );
+ disconnect( _delete->progress, TQ_SIGNAL( canceled() ), this, TQ_SLOT( slotDeleteCanceled() ) );
delete _delete->messages;
delete _delete->ids;
@@ -487,7 +487,7 @@ void KornSubjectsDlg::deleteNextMessage()
{
if( _delete->messages->count() == 0 ) //No more messages to delete
{
- TQTimer::singleShot( 100, this, TQT_SLOT( reloadSubjects() ) );
+ TQTimer::singleShot( 100, this, TQ_SLOT( reloadSubjects() ) );
deleteDeleteStruct();
//reloadSubjects(); //Reload all subjects again
return;
@@ -499,12 +499,12 @@ void KornSubjectsDlg::deleteNextMessage()
fillDeleteIdList( _delete->drop );
// Connect the progress bar signals of the mail box
- connect( _delete->drop, TQT_SIGNAL( deleteMailsTotalSteps( int ) ), _delete->progress, TQT_SLOT( setTotalSteps( int ) ) );
- connect( _delete->drop, TQT_SIGNAL( deleteMailsProgress( int ) ), _delete->progress, TQT_SLOT( setProgress( int ) ) );
- connect( _delete->drop, TQT_SIGNAL( deleteMailsReady( bool ) ), this, TQT_SLOT( deleteMailsReady( bool ) ) );
+ connect( _delete->drop, TQ_SIGNAL( deleteMailsTotalSteps( int ) ), _delete->progress, TQ_SLOT( setTotalSteps( int ) ) );
+ connect( _delete->drop, TQ_SIGNAL( deleteMailsProgress( int ) ), _delete->progress, TQ_SLOT( setProgress( int ) ) );
+ connect( _delete->drop, TQ_SIGNAL( deleteMailsReady( bool ) ), this, TQ_SLOT( deleteMailsReady( bool ) ) );
// connect the cancel button of the progress bar
- connect( _delete->progress, TQT_SIGNAL( canceled() ), _delete->drop, TQT_SLOT( deleteMailsCanceled() ) );
+ connect( _delete->progress, TQ_SIGNAL( canceled() ), _delete->drop, TQ_SLOT( deleteMailsCanceled() ) );
// delete the mails
_delete->drop->deleteMails( _delete->ids, 0 );
@@ -515,12 +515,12 @@ void KornSubjectsDlg::deleteMailsReady( bool /*success*/ )
if( !_delete )
return;
- disconnect( _delete->drop, TQT_SIGNAL( deleteMailsTotalSteps( int ) ), _delete->progress, TQT_SLOT( setTotalSteps( int ) ) );
- disconnect( _delete->drop, TQT_SIGNAL( deleteMailsProgress( int ) ), _delete->progress, TQT_SLOT( setProgress( int ) ) );
- disconnect( _delete->drop, TQT_SIGNAL( deleteMailsReady( bool ) ), this, TQT_SLOT( deleteMailsReady( bool ) ) );
+ disconnect( _delete->drop, TQ_SIGNAL( deleteMailsTotalSteps( int ) ), _delete->progress, TQ_SLOT( setTotalSteps( int ) ) );
+ disconnect( _delete->drop, TQ_SIGNAL( deleteMailsProgress( int ) ), _delete->progress, TQ_SLOT( setProgress( int ) ) );
+ disconnect( _delete->drop, TQ_SIGNAL( deleteMailsReady( bool ) ), this, TQ_SLOT( deleteMailsReady( bool ) ) );
// disconnect the cancel button of the progress bar
- disconnect( _delete->progress, TQT_SIGNAL( canceled() ), _delete->drop, TQT_SLOT( deleteMailsCanceled() ) );
+ disconnect( _delete->progress, TQ_SIGNAL( canceled() ), _delete->drop, TQ_SLOT( deleteMailsCanceled() ) );
deleteNextMessage();
}
diff --git a/korn/subjectsdlg.h b/korn/subjectsdlg.h
index cdf7bccf..7c9efa88 100644
--- a/korn/subjectsdlg.h
+++ b/korn/subjectsdlg.h
@@ -23,7 +23,7 @@ template< class T > class TQPtrList;
*/
class KornSubjectsDlg: public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
/**
diff --git a/korn/systemtray.h b/korn/systemtray.h
index 01a4f683..f3d5b4f8 100644
--- a/korn/systemtray.h
+++ b/korn/systemtray.h
@@ -30,7 +30,7 @@ class TQWidget;
* @author Mart Kelder <mart.kde@hccnet.nl>
*/
class SystemTray : public KSystemTray
-{ Q_OBJECT
+{ TQ_OBJECT
public:
/**
diff --git a/korn/tdeio.cpp b/korn/tdeio.cpp
index faf05214..afabf5a3 100644
--- a/korn/tdeio.cpp
+++ b/korn/tdeio.cpp
@@ -466,10 +466,10 @@ bool KKioDrop::startProcess()
// only reading stdin yet
- connect( _process,TQT_SIGNAL(receivedStdout( TDEProcess *, char *, int)),
- this, TQT_SLOT(receivedStdout( TDEProcess *,char *,int)) );
- connect( _process, TQT_SIGNAL(processExited(TDEProcess*)),
- this, TQT_SLOT(processExit(TDEProcess*)) );
+ connect( _process,TQ_SIGNAL(receivedStdout( TDEProcess *, char *, int)),
+ this, TQ_SLOT(receivedStdout( TDEProcess *,char *,int)) );
+ connect( _process, TQ_SIGNAL(processExited(TDEProcess*)),
+ this, TQ_SLOT(processExit(TDEProcess*)) );
*_process << _kurl->path();
_process->start( TDEProcess::NotifyOnExit, TDEProcess::Stdout );
diff --git a/korn/tdeio.h b/korn/tdeio.h
index 2f8f2d8e..5a97bb6b 100644
--- a/korn/tdeio.h
+++ b/korn/tdeio.h
@@ -49,7 +49,7 @@ namespace TDEIO { class Job; class MetaData; class Slave; class TransferJob; }
*/
class KKioDrop : public KPollableDrop
{
- Q_OBJECT
+ TQ_OBJECT
private:
KURL *_kurl;
diff --git a/korn/tdeio_count.cpp b/korn/tdeio_count.cpp
index 515e322b..3c35a6a4 100644
--- a/korn/tdeio_count.cpp
+++ b/korn/tdeio_count.cpp
@@ -95,9 +95,9 @@ void TDEIO_Count::count( KKioDrop *drop )
return;
}
- connect( _slave, TQT_SIGNAL( error( int, const TQString& ) ), _tdeio, TQT_SLOT( slotConnectionError( int, const TQString& ) ) );
- connect( _slave, TQT_SIGNAL( warning( const TQString& ) ), _tdeio, TQT_SLOT( slotConnectionWarning( const TQString& ) ) );
- connect( _slave, TQT_SIGNAL( infoMessage( const TQString& ) ), _tdeio, TQT_SLOT( slotConnectionInfoMessage( const TQString& ) ) );
+ connect( _slave, TQ_SIGNAL( error( int, const TQString& ) ), _tdeio, TQ_SLOT( slotConnectionError( int, const TQString& ) ) );
+ connect( _slave, TQ_SIGNAL( warning( const TQString& ) ), _tdeio, TQ_SLOT( slotConnectionWarning( const TQString& ) ) );
+ connect( _slave, TQ_SIGNAL( infoMessage( const TQString& ) ), _tdeio, TQ_SLOT( slotConnectionInfoMessage( const TQString& ) ) );
/*
* _protocol->recheckConnectKURL could have change kurl and metadata in order to have the right
@@ -125,9 +125,9 @@ void TDEIO_Count::count( KKioDrop *drop )
_job = TDEIO::listDir( kurl, false );
_job->addMetaData( metadata );
- connect( _job, TQT_SIGNAL( result( TDEIO::Job* ) ), this, TQT_SLOT( result( TDEIO::Job* ) ) );
- connect( _job, TQT_SIGNAL( entries( TDEIO::Job*, const TDEIO::UDSEntryList& ) ),
- this, TQT_SLOT( entries( TDEIO::Job*, const TDEIO::UDSEntryList& ) ) );
+ connect( _job, TQ_SIGNAL( result( TDEIO::Job* ) ), this, TQ_SLOT( result( TDEIO::Job* ) ) );
+ connect( _job, TQ_SIGNAL( entries( TDEIO::Job*, const TDEIO::UDSEntryList& ) ),
+ this, TQ_SLOT( entries( TDEIO::Job*, const TDEIO::UDSEntryList& ) ) );
if( _protocol->connectionBased() )
TDEIO::Scheduler::assignJobToSlave( _slave, _job );
@@ -140,9 +140,9 @@ void TDEIO_Count::stopActiveCount()
if( !_new_mailurls )
return;
- disconnect( _job, TQT_SIGNAL( result( TDEIO::Job* ) ), this, TQT_SLOT( result( TDEIO::Job* ) ) );
- disconnect( _job, TQT_SIGNAL( entries( TDEIO::Job*, const TDEIO::UDSEntryList& ) ),
- this, TQT_SLOT( entries( TDEIO::Job*, const TDEIO::UDSEntryList& ) ) );
+ disconnect( _job, TQ_SIGNAL( result( TDEIO::Job* ) ), this, TQ_SLOT( result( TDEIO::Job* ) ) );
+ disconnect( _job, TQ_SIGNAL( entries( TDEIO::Job*, const TDEIO::UDSEntryList& ) ),
+ this, TQ_SLOT( entries( TDEIO::Job*, const TDEIO::UDSEntryList& ) ) );
TDEIO::Scheduler::cancelJob( _job );
@@ -175,8 +175,8 @@ void TDEIO_Count::showPassive( const TQString& id )
_subjects_pending++;
- connect( subject, TQT_SIGNAL( readSubject( KornMailSubject* ) ), this, TQT_SLOT( addtoPassivePopup( KornMailSubject* ) ) );
- connect( subject, TQT_SIGNAL( finished( TDEIO_Single_Subject* ) ), this, TQT_SLOT( deleteSingleSubject( TDEIO_Single_Subject* ) ) );
+ connect( subject, TQ_SIGNAL( readSubject( KornMailSubject* ) ), this, TQ_SLOT( addtoPassivePopup( KornMailSubject* ) ) );
+ connect( subject, TQ_SIGNAL( finished( TDEIO_Single_Subject* ) ), this, TQ_SLOT( deleteSingleSubject( TDEIO_Single_Subject* ) ) );
}
void TDEIO_Count::disconnectSlave()
@@ -213,9 +213,9 @@ void TDEIO_Count::result( TDEIO::Job* job )
_tdeio->emitValidChanged();
}
- disconnect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), this, TQT_SLOT( result( TDEIO::Job* ) ) );
- disconnect( job, TQT_SIGNAL( entries( TDEIO::Job*, const TDEIO::UDSEntryList& ) ),
- this, TQT_SLOT( entries( TDEIO::Job*, const TDEIO::UDSEntryList& ) ) );
+ disconnect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), this, TQ_SLOT( result( TDEIO::Job* ) ) );
+ disconnect( job, TQ_SIGNAL( entries( TDEIO::Job*, const TDEIO::UDSEntryList& ) ),
+ this, TQ_SLOT( entries( TDEIO::Job*, const TDEIO::UDSEntryList& ) ) );
disconnectSlave();
diff --git a/korn/tdeio_count.h b/korn/tdeio_count.h
index 51258694..fd22d5ab 100644
--- a/korn/tdeio_count.h
+++ b/korn/tdeio_count.h
@@ -42,7 +42,7 @@ class KURL;
class TQString;
class TDEIO_Count : public TQObject
-{ Q_OBJECT
+{ TQ_OBJECT
public:
TDEIO_Count( TQObject * parent = 0, const char * name = 0 );
diff --git a/korn/tdeio_delete.cpp b/korn/tdeio_delete.cpp
index f26b5fe3..6b8b06fe 100644
--- a/korn/tdeio_delete.cpp
+++ b/korn/tdeio_delete.cpp
@@ -142,7 +142,7 @@ void TDEIO_Delete::deleteItem( const KornMailId *item, KURL kurl, TDEIO::MetaDat
else
return; //Unknown deleteFunction
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), this, TQT_SLOT( slotResult( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), this, TQ_SLOT( slotResult( TDEIO::Job* ) ) );
job->addMetaData( metadata );
@@ -161,7 +161,7 @@ void TDEIO_Delete::commitDelete( KURL kurl, TDEIO::MetaData metadata, const TDEI
TDEIO::TransferJob *job = TDEIO::get( kurl, true, false );
job->addMetaData( metadata );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), this, TQT_SLOT( slotResult( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), this, TQ_SLOT( slotResult( TDEIO::Job* ) ) );
_jobs->append( dynamic_cast< TDEIO::Job* >( job ) );
diff --git a/korn/tdeio_delete.h b/korn/tdeio_delete.h
index 3a23f447..f55500fa 100644
--- a/korn/tdeio_delete.h
+++ b/korn/tdeio_delete.h
@@ -35,7 +35,7 @@ namespace TDEIO { class MetaData; class Job; class Slave; }
template<class T> class TQPtrList;
class TDEIO_Delete : public TQObject
-{ Q_OBJECT
+{ TQ_OBJECT
public:
//constructors
diff --git a/korn/tdeio_read.cpp b/korn/tdeio_read.cpp
index c34e7429..ee61243d 100644
--- a/korn/tdeio_read.cpp
+++ b/korn/tdeio_read.cpp
@@ -60,8 +60,8 @@ void TDEIO_Read::readMail( const KornMailId *& mailid, KKioDrop* drop )
_job = TDEIO::get( kurl, false, false );
_job->addMetaData( metadata );
- connect( _job, TQT_SIGNAL( result( TDEIO::Job* ) ), this, TQT_SLOT( slotResult( TDEIO::Job* ) ) );
- connect( _job, TQT_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ), this, TQT_SLOT( slotData( TDEIO::Job*, const TQByteArray & ) ) );
+ connect( _job, TQ_SIGNAL( result( TDEIO::Job* ) ), this, TQ_SLOT( slotResult( TDEIO::Job* ) ) );
+ connect( _job, TQ_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ), this, TQ_SLOT( slotData( TDEIO::Job*, const TQByteArray & ) ) );
}
void TDEIO_Read::canceled( )
diff --git a/korn/tdeio_read.h b/korn/tdeio_read.h
index fc5f9e99..9c284132 100644
--- a/korn/tdeio_read.h
+++ b/korn/tdeio_read.h
@@ -33,7 +33,7 @@ class TDEIO_Protocol;
class TQString;
class TDEIO_Read : public TQObject
-{ Q_OBJECT
+{ TQ_OBJECT
public:
TDEIO_Read( TQObject * parent = 0, const char * name = 0 );
diff --git a/korn/tdeio_single_subject.cpp b/korn/tdeio_single_subject.cpp
index 3ac765de..9e3975cc 100644
--- a/korn/tdeio_single_subject.cpp
+++ b/korn/tdeio_single_subject.cpp
@@ -65,9 +65,9 @@ void TDEIO_Single_Subject::init( TDEIO::Slave *& slave)
_job = TDEIO::get( *_kurl, false, false );
_job->addMetaData( *_metadata );
- connect( _job, TQT_SIGNAL( result( TDEIO::Job* ) ), this, TQT_SLOT( slotResult( TDEIO::Job* ) ) );
- connect( _job, TQT_SIGNAL( data (TDEIO::Job *, const TQByteArray &) ),
- this, TQT_SLOT( slotData(TDEIO::Job *, const TQByteArray &) ) );
+ connect( _job, TQ_SIGNAL( result( TDEIO::Job* ) ), this, TQ_SLOT( slotResult( TDEIO::Job* ) ) );
+ connect( _job, TQ_SIGNAL( data (TDEIO::Job *, const TQByteArray &) ),
+ this, TQ_SLOT( slotData(TDEIO::Job *, const TQByteArray &) ) );
if( _protocol->connectionBased( ) && slave )
TDEIO::Scheduler::assignJobToSlave( slave , _job );
diff --git a/korn/tdeio_single_subject.h b/korn/tdeio_single_subject.h
index 61641536..8e5b983c 100644
--- a/korn/tdeio_single_subject.h
+++ b/korn/tdeio_single_subject.h
@@ -33,7 +33,7 @@ class TDEIO_Protocol;
class TQString;
class TDEIO_Single_Subject : public TQObject
-{ Q_OBJECT
+{ TQ_OBJECT
public:
TDEIO_Single_Subject( TQObject * parent, const char * name, KURL &, TDEIO::MetaData &, const TDEIO_Protocol *,
diff --git a/korn/tdeio_subjects.cpp b/korn/tdeio_subjects.cpp
index 985a89e5..47b51458 100644
--- a/korn/tdeio_subjects.cpp
+++ b/korn/tdeio_subjects.cpp
@@ -127,8 +127,8 @@ void TDEIO_Subjects::startJob( const TQString &name, const long size )
subject = new TDEIO_Single_Subject( this, name.latin1(), kurl, metadata, _protocol, _slave, name, size );
- connect( subject, TQT_SIGNAL( readSubject( KornMailSubject* ) ), this, TQT_SLOT( slotReadSubject( KornMailSubject* ) ) );
- connect( subject, TQT_SIGNAL( finished( TDEIO_Single_Subject* ) ), this, TQT_SLOT( slotFinished( TDEIO_Single_Subject* ) ) );
+ connect( subject, TQ_SIGNAL( readSubject( KornMailSubject* ) ), this, TQ_SLOT( slotReadSubject( KornMailSubject* ) ) );
+ connect( subject, TQ_SIGNAL( finished( TDEIO_Single_Subject* ) ), this, TQ_SLOT( slotFinished( TDEIO_Single_Subject* ) ) );
_jobs->append( subject );
}
diff --git a/korn/tdeio_subjects.h b/korn/tdeio_subjects.h
index bb1f50e0..5040a1eb 100644
--- a/korn/tdeio_subjects.h
+++ b/korn/tdeio_subjects.h
@@ -35,7 +35,7 @@ class TQString;
template<class T> class TQValueList;
class TDEIO_Subjects : public TQObject
-{ Q_OBJECT
+{ TQ_OBJECT
public:
TDEIO_Subjects( TQObject * parent, const char * name );
diff --git a/ktnef/CMakeL10n.txt b/ktnef/CMakeL10n.txt
index 0a3e585b..18aa95ad 100644
--- a/ktnef/CMakeL10n.txt
+++ b/ktnef/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_create_template( "ktnef" )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/ktnef-desktops/"
+ SOURCES *.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/ktnef/gui/CMakeLists.txt b/ktnef/gui/CMakeLists.txt
index a89cedbf..db2c178f 100644
--- a/ktnef/gui/CMakeLists.txt
+++ b/ktnef/gui/CMakeLists.txt
@@ -27,9 +27,19 @@ link_directories(
##### other data ################################
-install( FILES ktnef.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE ktnef.desktop
+ DESTINATION ${XDG_APPS_INSTALL_DIR}
+ PO_DIR ktnef-desktops
+)
+
install( FILES ktnefui.rc DESTINATION ${DATA_INSTALL_DIR}/ktnef )
-install( FILES ms-tnef.desktop DESTINATION ${MIME_INSTALL_DIR}/application )
+
+tde_create_translated_desktop(
+ SOURCE ms-tnef.desktop
+ DESTINATION ${MIME_INSTALL_DIR}/application
+ PO_DIR ktnef-desktops
+)
##### ktnef (executable) ########################
diff --git a/ktnef/gui/attachpropertydialog.cpp b/ktnef/gui/attachpropertydialog.cpp
index 73b20871..f8d8ce12 100644
--- a/ktnef/gui/attachpropertydialog.cpp
+++ b/ktnef/gui/attachpropertydialog.cpp
@@ -178,7 +178,7 @@ TQPixmap loadRenderingPixmap( KTNEFPropertySet *pSet, const TQColor& bgColor )
{
pix.resize( w, h );
pix.fill( bgColor );
- wmfLoader.paint( &TQT_TQPAINTDEVICE_OBJECT(pix) );
+ wmfLoader.paint( &pix );
}
wmfBuffer.close();
}
diff --git a/ktnef/gui/attachpropertydialogbase.ui b/ktnef/gui/attachpropertydialogbase.ui
index ca34103a..afc6e500 100644
--- a/ktnef/gui/attachpropertydialogbase.ui
+++ b/ktnef/gui/attachpropertydialogbase.ui
@@ -271,9 +271,9 @@
<slot>saveClicked()</slot>
</connection>
</connections>
-<Q_SLOTS>
+<slots>
<slot access="protected">saveClicked()</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
<includes>
<include location="global" impldecl="in implementation">tdelistview.h</include>
diff --git a/ktnef/gui/ktnef.desktop b/ktnef/gui/ktnef.desktop
index 0d533f80..129989f3 100644
--- a/ktnef/gui/ktnef.desktop
+++ b/ktnef/gui/ktnef.desktop
@@ -1,107 +1,14 @@
[Desktop Entry]
Name=KTnef
-Name[sv]=Ktnef
+
GenericName=TNEF File Viewer
-GenericName[af]=TNEF lêer leser
-GenericName[bg]=Преглед на файлове TNEF
-GenericName[br]=Gweler restr TNEF
-GenericName[ca]=Visor de fitxers TNEF
-GenericName[cs]=Prohlížeč TNEF souborů
-GenericName[cy]=Syllwr Ffeil TNEF
-GenericName[da]=TNEF Fil-fremviser
-GenericName[de]=TNEF-Dateibetrachter
-GenericName[el]=Προβολέας αρχείων TNEF
-GenericName[eo]=TNEF-dosierorigardilo
-GenericName[es]=Visor de archivos TNEF
-GenericName[et]=TNEF-failide näitaja
-GenericName[eu]=TNEF fitxategi ikustailea
-GenericName[fa]=مشاهده‌گر پروندۀ TNEF
-GenericName[fi]=TNEF-tiedostonäytin
-GenericName[fr]=Afficheur de fichiers TNEF
-GenericName[fy]=TNEF-triemwerjefte
-GenericName[ga]=Amharcán Comhad TNEF
-GenericName[gl]=Visor de Ficheiros TNEF
-GenericName[hu]=TNEF-fájlnézegető
-GenericName[is]=TNEF skráarskoðari
-GenericName[it]=Visualizzatore file TNEF
-GenericName[ja]=TNEF ファイルビュー
-GenericName[kk]=TNEF файлды қарау құралы
-GenericName[km]=កម្មវិធី​មើល​ឯកសារ TNEF
-GenericName[lt]=TNEF bylų žiūryklė
-GenericName[mk]=Прегледувач на TNEF-датотеки
-GenericName[ms]=Pemapar Fail TNEF
-GenericName[nb]=TNEF-filvisning
-GenericName[nds]=TNEF-Dateikieker
-GenericName[ne]=TNEF फाइल दर्शक
-GenericName[nl]=TNEF-bestandsweergave
-GenericName[nn]=TNEF filvisar
-GenericName[pl]=Przeglądarka plików TNEF
-GenericName[pt]=Visualizador de Ficheiros TNEF
-GenericName[pt_BR]=Visualizador de Arquivos TNEF
-GenericName[ru]=Просмотр файлов TNEF
-GenericName[sk]=Prehliadač súborov TNEF
-GenericName[sl]=Pregledovalnik datotek TNEF
-GenericName[sr]=Приказивач TNEF фајлова
-GenericName[sr@Latn]=Prikazivač TNEF fajlova
-GenericName[sv]=TNEF-filvisning
-GenericName[ta]=TNEF கோப்பு காட்சியாளன்
-GenericName[tr]=TNEF Dosya Göstericisi
-GenericName[uk]=Переглядач файлів TNEF
-GenericName[zh_CN]=TNEF 文件查看器
-GenericName[zh_TW]=TNEF 檔案檢視器
+
+Comment=A viewer/extractor for TNEF files
+
Exec=ktnef %i %m -caption "%c"
Icon=ktnef
Type=Application
X-DocPath=ktnef/index.html
-Comment=A viewer/extractor for TNEF files
-Comment[af]='n Leeser en data onttrekker vir TNEF lêers
-Comment[bg]=Програма за преглед и извличане на файлове TNEF
-Comment[bs]=Preglednik/ekstraktor za TNEF datoteke
-Comment[ca]=Un visor/extractor per a fitxers TNEF
-Comment[cs]=Prohlížeč TNEF souborů
-Comment[cy]=Gwelydd/echdynnydd i ffeiliau TNEF
-Comment[da]=En fremviser/udpakker for TNEF-filer
-Comment[de]=Betrachten und Extrahieren von TNEF-Dateien
-Comment[el]=Ένας προβολέας/εξαγωγέας για αρχεία TNEF
-Comment[es]=A visor/extractor para archivos TNEF
-Comment[et]=TNEF-failide näitaja/ekstraktija
-Comment[eu]=TNEF fitxategien ikustaile/erauzlea
-Comment[fa]=یک مشاهده‌گر/استخراج‌گر برای پرونده‌های TNEF
-Comment[fi]=Näytin/purkaja TNEF-tiedostoille
-Comment[fr]=Pour afficher / extraire des fichiers TNEF
-Comment[fy]=In werjefteprogramma/útpakker foar TNEF-triemmen
-Comment[gl]=Un visor/extractor para ficheiros TNEF
-Comment[hi]=टीएनईएफ फ़ाइलों के लिए एक प्रदर्शक/एक्सट्रेक्टर
-Comment[hr]=Prikazivač/izdvajač za TNEF datoteke
-Comment[hu]=Nézegetőprogram TNEF-fájlokhoz
-Comment[is]=Sýnir/lesari fyrir TNEF skrár
-Comment[it]=Un visualizzatore/estrattore di file TNEF
-Comment[ja]=TNEF ファイルのためのビューア/展開ツール
-Comment[kk]=TNEF файдарды қарау/тарқату
-Comment[km]=កម្មវិធី​មើល និង​ស្រង់​ឯកសារ TNEF
-Comment[lt]=TNEF bylų žiūryklė - išpakuotojas
-Comment[ms]=Pemapar/pengekstrak untuk fail TNEF
-Comment[nb]=En utpakker/fremviser for TNEF-filer
-Comment[nds]=TNEF-Dateien ankieken un Delen ruttrecken
-Comment[ne]=TNEF फाइलका लागि दर्शक/निष्कासक
-Comment[nl]=Een weergaveprogramma/uitpakker voor TNEF-bestanden
-Comment[nn]=Ein framvisar/utpakkar for TNEF-filer
-Comment[pl]=Przeglądarka/program wyciągający zawartość plików TNEF
-Comment[pt]=Um visualizador/extractor de ficheiros TNEF
-Comment[pt_BR]=Um visualizador/extrator para arquivos TNEF
-Comment[ro]=Un vizualizor/extractor pentru fişiere TNEF
-Comment[ru]=Просмотр и распаковка файлов TNEF
-Comment[sk]=Prehliadač/extraktor pre TNEF súbory
-Comment[sl]=Pregledovalnik/izvlečevalnik za datoteke TNEF
-Comment[sr]=Приказивач/издвајач за TNEF фајлове
-Comment[sr@Latn]=Prikazivač/izdvajač za TNEF fajlove
-Comment[sv]=Visning och uppackning av TNEF-filer
-Comment[ta]=TNEF கோப்புகளுக்கான காட்சியகம்/பிரித்தெடுப்பாளர்
-Comment[tg]=Намоиш ва боз кардани файлҳои TNEF
-Comment[tr]=TNEF dosyaları için gösterici/çıkarıcı
-Comment[uk]=Переглядач/розпаковувач файлів TNEF
-Comment[zh_CN]=TNEF 文件的查看/提取器
-Comment[zh_TW]=TNEF 檔案檢視器
Terminal=false
MimeType=application/ms-tnef;
Categories=Qt;TDE;Network;X-TDE-Office-PIM;
diff --git a/ktnef/gui/ktnefmain.cpp b/ktnef/gui/ktnefmain.cpp
index 35e6607d..3755fed0 100644
--- a/ktnef/gui/ktnefmain.cpp
+++ b/ktnef/gui/ktnefmain.cpp
@@ -85,19 +85,19 @@ KTNEFMain::~KTNEFMain()
void KTNEFMain::setupActions()
{
// File menu
- KStdAction::open(TQT_TQOBJECT(this), TQT_SLOT(openFile()), actionCollection());
- KStdAction::quit(TQT_TQOBJECT(kapp), TQT_SLOT(quit()), actionCollection());
+ KStdAction::open(this, TQ_SLOT(openFile()), actionCollection());
+ KStdAction::quit(kapp, TQ_SLOT(quit()), actionCollection());
// Action menu
- new TDEAction(i18n("View"), TQString("viewmag"), 0, TQT_TQOBJECT(this), TQT_SLOT(viewFile()), actionCollection(), "view_file");
- new TDEAction(i18n("View With..."), TQString("package_applications"), 0, TQT_TQOBJECT(this), TQT_SLOT(viewFileAs()), actionCollection(), "view_file_as");
- new TDEAction(i18n("Extract"), 0, TQT_TQOBJECT(this), TQT_SLOT(extractFile()), actionCollection(), "extract_file");
- new TDEAction(i18n("Extract To..."), TQString("ktnef_extract_to"), 0, TQT_TQOBJECT(this), TQT_SLOT(extractFileTo()), actionCollection(), "extract_file_to");
- new TDEAction(i18n("Extract All To..."), TQString("ktnef_extract_all_to"), 0, TQT_TQOBJECT(this), TQT_SLOT(extractAllFiles()), actionCollection(), "extract_all_files");
- new TDEAction( i18n( "Message Properties" ), "help", 0, TQT_TQOBJECT(this), TQT_SLOT( slotShowMessageProperties() ), actionCollection(), "msg_properties" );
- new TDEAction(i18n("Properties"), TQString("contents"), 0, TQT_TQOBJECT(this), TQT_SLOT(propertiesFile()), actionCollection(), "properties_file");
- new TDEAction( i18n( "Show Message Text" ), "mail_generic", 0, TQT_TQOBJECT(this), TQT_SLOT( slotShowMessageText() ), actionCollection(), "msg_text" );
- new TDEAction( i18n( "Save Message Text As..." ), "document-save", 0, TQT_TQOBJECT(this), TQT_SLOT( slotSaveMessageText() ), actionCollection(), "msg_save" );
+ new TDEAction(i18n("View"), TQString("viewmag"), 0, this, TQ_SLOT(viewFile()), actionCollection(), "view_file");
+ new TDEAction(i18n("View With..."), TQString("package_applications"), 0, this, TQ_SLOT(viewFileAs()), actionCollection(), "view_file_as");
+ new TDEAction(i18n("Extract"), 0, this, TQ_SLOT(extractFile()), actionCollection(), "extract_file");
+ new TDEAction(i18n("Extract To..."), TQString("ktnef_extract_to"), 0, this, TQ_SLOT(extractFileTo()), actionCollection(), "extract_file_to");
+ new TDEAction(i18n("Extract All To..."), TQString("ktnef_extract_all_to"), 0, this, TQ_SLOT(extractAllFiles()), actionCollection(), "extract_all_files");
+ new TDEAction( i18n( "Message Properties" ), "help", 0, this, TQ_SLOT( slotShowMessageProperties() ), actionCollection(), "msg_properties" );
+ new TDEAction(i18n("Properties"), TQString("contents"), 0, this, TQ_SLOT(propertiesFile()), actionCollection(), "properties_file");
+ new TDEAction( i18n( "Show Message Text" ), "mail_generic", 0, this, TQ_SLOT( slotShowMessageText() ), actionCollection(), "msg_text" );
+ new TDEAction( i18n( "Save Message Text As..." ), "document-save", 0, this, TQ_SLOT( slotSaveMessageText() ), actionCollection(), "msg_save" );
actionCollection()->action("view_file")->setEnabled(false);
actionCollection()->action("view_file_as")->setEnabled(false);
actionCollection()->action("extract_file")->setEnabled(false);
@@ -106,12 +106,12 @@ void KTNEFMain::setupActions()
actionCollection()->action("properties_file")->setEnabled(false);
// Option menu
- new TDEAction(i18n("Default Folder..."), TQString("folder_open"), 0, TQT_TQOBJECT(this), TQT_SLOT(optionDefaultDir()), actionCollection(), "options_default_dir");
+ new TDEAction(i18n("Default Folder..."), TQString("folder_open"), 0, this, TQ_SLOT(optionDefaultDir()), actionCollection(), "options_default_dir");
createStandardStatusBarAction();
setStandardToolBarMenuEnabled(true);
- KStdAction::configureToolbars(TQT_TQOBJECT(this), TQT_SLOT(slotEditToolbars()), actionCollection());
- KStdAction::keyBindings( TQT_TQOBJECT(this), TQT_SLOT( slotConfigureKeys() ), actionCollection() );
+ KStdAction::configureToolbars(this, TQ_SLOT(slotEditToolbars()), actionCollection());
+ KStdAction::keyBindings( this, TQ_SLOT( slotConfigureKeys() ), actionCollection() );
createGUI();
}
@@ -135,10 +135,10 @@ void KTNEFMain::setupTNEF()
parser_ = new KTNEFParser;
setCentralWidget(view_);
- connect(view_, TQT_SIGNAL(selectionChanged()), TQT_SLOT(viewSelectionChanged()));
- connect(view_, TQT_SIGNAL(rightButtonPressed(TQListViewItem*,const TQPoint&,int)), TQT_SLOT(viewRightButtonPressed(TQListViewItem*,const TQPoint&,int)));
- connect(view_, TQT_SIGNAL(doubleClicked(TQListViewItem*)), TQT_SLOT(viewDoubleClicked(TQListViewItem*)));
- connect(view_, TQT_SIGNAL(dragRequested(const TQValueList<KTNEFAttach*>&)), TQT_SLOT(viewDragRequested(const TQValueList<KTNEFAttach*>&)));
+ connect(view_, TQ_SIGNAL(selectionChanged()), TQ_SLOT(viewSelectionChanged()));
+ connect(view_, TQ_SIGNAL(rightButtonPressed(TQListViewItem*,const TQPoint&,int)), TQ_SLOT(viewRightButtonPressed(TQListViewItem*,const TQPoint&,int)));
+ connect(view_, TQ_SIGNAL(doubleClicked(TQListViewItem*)), TQ_SLOT(viewDoubleClicked(TQListViewItem*)));
+ connect(view_, TQ_SIGNAL(dragRequested(const TQValueList<KTNEFAttach*>&)), TQ_SLOT(viewDragRequested(const TQValueList<KTNEFAttach*>&)));
}
void KTNEFMain::loadFile(const TQString& filename)
@@ -321,16 +321,16 @@ void KTNEFMain::viewRightButtonPressed(TQListViewItem*, const TQPoint& p, int)
{
if (list->count() == 1u)
{
- m.insertItem(SmallIcon("viewmag"), i18n("View"), this, TQT_SLOT(viewFile()));
- m.insertItem(SmallIcon("package_applications"), i18n("View With..."), this, TQT_SLOT(viewFileAs()));
+ m.insertItem(SmallIcon("viewmag"), i18n("View"), this, TQ_SLOT(viewFile()));
+ m.insertItem(SmallIcon("package_applications"), i18n("View With..."), this, TQ_SLOT(viewFileAs()));
m.insertSeparator();
}
- m.insertItem(i18n("Extract"), this, TQT_SLOT(extractFile()));
- m.insertItem(SmallIcon("ktnef_extract_to"), i18n("Extract To..."), this, TQT_SLOT(extractFileTo()));
+ m.insertItem(i18n("Extract"), this, TQ_SLOT(extractFile()));
+ m.insertItem(SmallIcon("ktnef_extract_to"), i18n("Extract To..."), this, TQ_SLOT(extractFileTo()));
if (list->count() == 1u)
{
m.insertSeparator();
- m.insertItem(SmallIcon("contents"), i18n("Properties"), this, TQT_SLOT(propertiesFile()));
+ m.insertItem(SmallIcon("contents"), i18n("Properties"), this, TQ_SLOT(propertiesFile()));
}
}
else if ( list->count() == 0 )
@@ -360,7 +360,7 @@ void KTNEFMain::slotEditToolbars()
{
saveMainWindowSettings( TDEGlobal::config(), TQString::fromLatin1("MainWindow") );
KEditToolbar dlg(actionCollection());
- connect(&dlg, TQT_SIGNAL( newToolbarConfig() ), this, TQT_SLOT( slotNewToolbarConfig() ));
+ connect(&dlg, TQ_SIGNAL( newToolbarConfig() ), this, TQ_SLOT( slotNewToolbarConfig() ));
dlg.exec();
}
diff --git a/ktnef/gui/ktnefmain.h b/ktnef/gui/ktnefmain.h
index 491d6aa7..7d6a984a 100644
--- a/ktnef/gui/ktnefmain.h
+++ b/ktnef/gui/ktnefmain.h
@@ -28,7 +28,7 @@ class KTNEFAttach;
class KTNEFMain : public TDEMainWindow
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/ktnef/gui/ktnefview.cpp b/ktnef/gui/ktnefview.cpp
index a28a7d51..058a11c2 100644
--- a/ktnef/gui/ktnefview.cpp
+++ b/ktnef/gui/ktnefview.cpp
@@ -75,7 +75,7 @@ KTNEFView::KTNEFView(TQWidget *parent, const char *name)
setSelectionMode(TQListView::Extended);
setHScrollBarMode(TQScrollView::AlwaysOff);
setVScrollBarMode(TQScrollView::AlwaysOn);
- TQTimer::singleShot( 0, this, TQT_SLOT(adjustColumnWidth()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(adjustColumnWidth()) );
}
KTNEFView::~KTNEFView()
diff --git a/ktnef/gui/ktnefview.h b/ktnef/gui/ktnefview.h
index 0ddec104..60321bf4 100644
--- a/ktnef/gui/ktnefview.h
+++ b/ktnef/gui/ktnefview.h
@@ -20,13 +20,13 @@
#include <tdelistview.h>
#include <tqptrlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KTNEFAttach;
class KDE_EXPORT KTNEFView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/ktnef/gui/messagepropertydialog.h b/ktnef/gui/messagepropertydialog.h
index 98ddb374..44ee6c64 100644
--- a/ktnef/gui/messagepropertydialog.h
+++ b/ktnef/gui/messagepropertydialog.h
@@ -25,7 +25,7 @@ class KTNEFMessage;
class MessagePropertyDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
MessagePropertyDialog( TQWidget *parent, KTNEFMessage *msg );
diff --git a/ktnef/gui/ms-tnef.desktop b/ktnef/gui/ms-tnef.desktop
index 508f5ff9..affaf7e6 100644
--- a/ktnef/gui/ms-tnef.desktop
+++ b/ktnef/gui/ms-tnef.desktop
@@ -3,58 +3,5 @@ Type=MimeType
MimeType=application/ms-tnef
Icon=application-x-tar
Patterns=*.tnf;
+
Comment=TNEF File
-Comment[af]=TNEF lêer
-Comment[be]=TNEF файл
-Comment[bg]=Файл TNEF
-Comment[br]=Restr TNEF
-Comment[bs]=TNEF datoteka
-Comment[ca]=Fitxer TNEF
-Comment[cs]=TNEF soubor
-Comment[cy]=Ffeil TNEF
-Comment[de]=TNEF-Datei
-Comment[el]=Αρχείο TNEF
-Comment[eo]=TNEF-dosiero
-Comment[es]=Archivo TNEF
-Comment[et]=TNEF-fail
-Comment[eu]=TNEF fitxategia
-Comment[fa]=پروندۀ TNEF
-Comment[fi]=TNEF-tiedosto
-Comment[fr]=Fichier TNEF
-Comment[fy]=TNEF-triem
-Comment[ga]=Comhad TNEF
-Comment[gl]=Ficheiro TNEF
-Comment[he]=קובץ TNEF
-Comment[hi]=टीएनईएफ फ़ाइल
-Comment[hr]=TNEF datoteka
-Comment[hu]=TNEF-fájl
-Comment[is]=TNEF skrá
-Comment[it]=File TNEF
-Comment[ja]=TNEF ファイル
-Comment[kk]=TNEF файлы
-Comment[km]=ឯកសារ TNEF
-Comment[lt]=TNEF byla
-Comment[mk]=TNEF-датотека
-Comment[ms]=Fail TNEF
-Comment[nb]=TNEF-fil
-Comment[nds]=TNEF-Datei
-Comment[ne]=TNEF फाइल
-Comment[nl]=TNEF-bestand
-Comment[nn]=TNEF-fil
-Comment[pl]=Plik TNEF
-Comment[pt]=Ficheiro TNEF
-Comment[pt_BR]=Arquivo TNEF
-Comment[ro]=Fişier TNEF
-Comment[ru]=Файл TNEF
-Comment[sk]=TNEF súbor
-Comment[sl]=Datoteka TNEF
-Comment[sr]=TNEF фајл
-Comment[sr@Latn]=TNEF fajl
-Comment[sv]=TNEF-fil
-Comment[ta]=TNEF கோப்பு
-Comment[tg]=Файли TNEF
-Comment[tr]=TNEF Dosyası
-Comment[uk]=Файл TNEF
-Comment[uz]=TNEF-файли
-Comment[zh_CN]=TNEF 文件
-Comment[zh_TW]=TNEF 檔案
diff --git a/ktnef/gui/qwmf.cpp b/ktnef/gui/qwmf.cpp
index e4baf41d..325cccc7 100644
--- a/ktnef/gui/qwmf.cpp
+++ b/ktnef/gui/qwmf.cpp
@@ -352,7 +352,7 @@ bool TQWinMetaFile::paint( const TQPaintDevice* aTarget, bool absolute )
mWinding = false;
mAbsoluteCoord = absolute;
- mPainter.begin( TQT_TQPAINTDEVICE(const_cast<TQPaintDevice*>(aTarget)) );
+ mPainter.begin( const_cast<TQPaintDevice*>(aTarget) );
if ( TQWMF_DEBUG ) {
kdDebug() << "Bounding box : " << mBBox.left()
<< " " << mBBox.top() << " " << mBBox.right() << " " << mBBox.bottom() << endl;
@@ -624,8 +624,8 @@ void TQWinMetaFile::setBkColor( long, short* parm )
//-----------------------------------------------------------------------------
void TQWinMetaFile::setBkMode( long, short* parm )
{
- if ( parm[ 0 ]==1 ) mPainter.setBackgroundMode( Qt::TransparentMode );
- else mPainter.setBackgroundMode( Qt::OpaqueMode );
+ if ( parm[ 0 ]==1 ) mPainter.setBackgroundMode( TQt::TransparentMode );
+ else mPainter.setBackgroundMode( TQt::OpaqueMode );
}
@@ -929,26 +929,26 @@ void TQWinMetaFile::createEmptyObject( long, short* )
//-----------------------------------------------------------------------------
void TQWinMetaFile::createBrushIndirect( long, short* parm )
{
- static Qt::BrushStyle hatchedStyleTab[] =
+ static TQt::BrushStyle hatchedStyleTab[] =
{
- Qt::HorPattern,
- Qt::FDiagPattern,
- Qt::BDiagPattern,
- Qt::CrossPattern,
- Qt::DiagCrossPattern
+ TQt::HorPattern,
+ TQt::FDiagPattern,
+ TQt::BDiagPattern,
+ TQt::CrossPattern,
+ TQt::DiagCrossPattern
};
- static Qt::BrushStyle styleTab[] =
- { Qt::SolidPattern,
- Qt::NoBrush,
- Qt::FDiagPattern, /* hatched */
- Qt::Dense4Pattern, /* should be custom bitmap pattern */
- Qt::HorPattern, /* should be BS_INDEXED (?) */
- Qt::VerPattern, /* should be device-independent bitmap */
- Qt::Dense6Pattern, /* should be device-independent packed-bitmap */
- Qt::Dense2Pattern, /* should be BS_PATTERN8x8 */
- Qt::Dense3Pattern /* should be device-independent BS_DIBPATTERN8x8 */
+ static TQt::BrushStyle styleTab[] =
+ { TQt::SolidPattern,
+ TQt::NoBrush,
+ TQt::FDiagPattern, /* hatched */
+ TQt::Dense4Pattern, /* should be custom bitmap pattern */
+ TQt::HorPattern, /* should be BS_INDEXED (?) */
+ TQt::VerPattern, /* should be device-independent bitmap */
+ TQt::Dense6Pattern, /* should be device-independent packed-bitmap */
+ TQt::Dense2Pattern, /* should be BS_PATTERN8x8 */
+ TQt::Dense3Pattern /* should be device-independent BS_DIBPATTERN8x8 */
};
- Qt::BrushStyle style;
+ TQt::BrushStyle style;
short arg;
WinObjBrushHandle* handle = new WinObjBrushHandle;
addHandle( handle );
@@ -961,7 +961,7 @@ void TQWinMetaFile::createBrushIndirect( long, short* parm )
else
{
kdDebug() << "TQWinMetaFile::createBrushIndirect: invalid hatched brush " << arg << endl;
- style = Qt::SolidPattern;
+ style = TQt::SolidPattern;
}
}
else if ( arg>=0 && arg<9 )
@@ -969,7 +969,7 @@ void TQWinMetaFile::createBrushIndirect( long, short* parm )
else
{
kdDebug() << "TQWinMetaFile::createBrushIndirect: invalid brush " << arg << endl;
- style = Qt::SolidPattern;
+ style = TQt::SolidPattern;
}
handle->brush.setStyle( style );
handle->brush.setColor( color( parm+1 ) );
@@ -979,10 +979,10 @@ void TQWinMetaFile::createBrushIndirect( long, short* parm )
//-----------------------------------------------------------------------------
void TQWinMetaFile::createPenIndirect( long, short* parm )
{
- static Qt::PenStyle styleTab[] =
- { Qt::SolidLine, Qt::DashLine, Qt::DotLine, Qt::DashDotLine, Qt::DashDotDotLine,
- Qt::NoPen, Qt::SolidLine };
- Qt::PenStyle style;
+ static TQt::PenStyle styleTab[] =
+ { TQt::SolidLine, TQt::DashLine, TQt::DotLine, TQt::DashDotLine, TQt::DashDotDotLine,
+ TQt::NoPen, TQt::SolidLine };
+ TQt::PenStyle style;
WinObjPenHandle* handle = new WinObjPenHandle;
addHandle( handle );
@@ -990,12 +990,12 @@ void TQWinMetaFile::createPenIndirect( long, short* parm )
else
{
kdDebug() << "TQWinMetaFile::createPenIndirect: invalid pen " << parm[ 0 ] << endl;
- style = Qt::SolidLine;
+ style = TQt::SolidLine;
}
handle->pen.setStyle( style );
handle->pen.setColor( color( parm+3 ) );
- handle->pen.setCapStyle( Qt::RoundCap );
+ handle->pen.setCapStyle( TQt::RoundCap );
//int width = 0;
// TODO : width of pen proportional to device context width
diff --git a/ktnef/ktnef/ktnefattach.h b/ktnef/ktnef/ktnefattach.h
index 280c862f..24a14c2d 100644
--- a/ktnef/ktnef/ktnefattach.h
+++ b/ktnef/ktnef/ktnefattach.h
@@ -22,7 +22,7 @@
#include <tqmap.h>
#include <tqvariant.h>
#include <ktnef/ktnefpropertyset.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KTNEFProperty;
diff --git a/ktnef/ktnef/ktnefmessage.h b/ktnef/ktnef/ktnefmessage.h
index afc372e2..48d397c4 100644
--- a/ktnef/ktnef/ktnefmessage.h
+++ b/ktnef/ktnef/ktnefmessage.h
@@ -20,7 +20,7 @@
#include <ktnef/ktnefpropertyset.h>
#include <tqptrlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KTNEFAttach;
diff --git a/ktnef/ktnef/ktnefparser.h b/ktnef/ktnef/ktnefparser.h
index fc93391c..ea098dd6 100644
--- a/ktnef/ktnef/ktnefparser.h
+++ b/ktnef/ktnef/ktnefparser.h
@@ -21,7 +21,7 @@
#include <tqptrlist.h>
#include <tqstring.h>
#include <tqmap.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KTNEFAttach;
class KTNEFMessage;
diff --git a/ktnef/ktnef/ktnefproperty.h b/ktnef/ktnef/ktnefproperty.h
index 7b9d9d20..c0af8d94 100644
--- a/ktnef/ktnef/ktnefproperty.h
+++ b/ktnef/ktnef/ktnefproperty.h
@@ -20,7 +20,7 @@
#include <tqvariant.h>
#include <tqstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KDE_EXPORT KTNEFProperty
{
diff --git a/ktnef/ktnef/ktnefpropertyset.h b/ktnef/ktnef/ktnefpropertyset.h
index 44166e31..c35aa0e3 100644
--- a/ktnef/ktnef/ktnefpropertyset.h
+++ b/ktnef/ktnef/ktnefpropertyset.h
@@ -20,7 +20,7 @@
#include <tqmap.h>
#include <tqvariant.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KTNEFProperty;
diff --git a/ktnef/lib/ktnefmessage.cpp b/ktnef/lib/ktnefmessage.cpp
index 27f98606..320ce411 100644
--- a/ktnef/lib/ktnefmessage.cpp
+++ b/ktnef/lib/ktnefmessage.cpp
@@ -76,7 +76,7 @@ TQString KTNEFMessage::rtfString()
TQByteArray rtf;
TQBuffer input( prop.asByteArray() ), output( rtf );
if ( input.open( IO_ReadOnly ) && output.open( IO_WriteOnly ) )
- lzfu_decompress( &TQT_TQIODEVICE_OBJECT(input), &TQT_TQIODEVICE_OBJECT(output) );
+ lzfu_decompress( &input, &output );
return TQString( rtf );
}
}
diff --git a/ktnef/lib/ktnefparser.cpp b/ktnef/lib/ktnefparser.cpp
index 749cb948..26bc157f 100644
--- a/ktnef/lib/ktnefparser.cpp
+++ b/ktnef/lib/ktnefparser.cpp
@@ -447,7 +447,7 @@ bool KTNEFParser::openFile(const TQString& filename)
deleteDevice();
delete d->message_;
d->message_ = new KTNEFMessage();
- d->device_ = TQT_TQIODEVICE(new TQFile( filename ));
+ d->device_ = new TQFile( filename );
d->deleteDevice_ = true;
return parseDevice();
}
diff --git a/libemailfunctions/email.cpp b/libemailfunctions/email.cpp
index 03999f87..d44897be 100644
--- a/libemailfunctions/email.cpp
+++ b/libemailfunctions/email.cpp
@@ -1,5 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
-
+/*
This file is part of tdepim.
Copyright (c) 2004 TDEPIM developers
diff --git a/libemailfunctions/email.h b/libemailfunctions/email.h
index 6c2a522d..6f5f44e0 100644
--- a/libemailfunctions/email.h
+++ b/libemailfunctions/email.h
@@ -1,5 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
-
+/*
This file is part of tdepim.
Copyright (c) 2004 TDEPIM developers
@@ -25,7 +24,7 @@
#include <tqstringlist.h>
#include <tqcstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
/** @file */
diff --git a/libemailfunctions/idmapper.h b/libemailfunctions/idmapper.h
index 50075aef..fcd97451 100644
--- a/libemailfunctions/idmapper.h
+++ b/libemailfunctions/idmapper.h
@@ -25,7 +25,7 @@
#include <tqmap.h>
#include <tqvariant.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KPIM {
diff --git a/libemailfunctions/kasciistringtools.cpp b/libemailfunctions/kasciistringtools.cpp
index a9e6fb60..9d7590af 100644
--- a/libemailfunctions/kasciistringtools.cpp
+++ b/libemailfunctions/kasciistringtools.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kasciistringtools.cpp
This file is part of libtdepim.
diff --git a/libemailfunctions/kasciistringtools.h b/libemailfunctions/kasciistringtools.h
index ac19960d..c67e5c31 100644
--- a/libemailfunctions/kasciistringtools.h
+++ b/libemailfunctions/kasciistringtools.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kasciistringtools.h
This file is part of libtdepim.
diff --git a/libemailfunctions/networkstatus.h b/libemailfunctions/networkstatus.h
index 0aee114e..d05adcef 100644
--- a/libemailfunctions/networkstatus.h
+++ b/libemailfunctions/networkstatus.h
@@ -34,7 +34,7 @@ namespace KPIM {
*/
class NetworkStatus : public TQObject, public DCOPObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/libkcal/CMakeL10n.txt b/libkcal/CMakeL10n.txt
index 0534db65..bc378c82 100644
--- a/libkcal/CMakeL10n.txt
+++ b/libkcal/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_create_template( "libkcal" )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/libkcal-desktops/"
+ SOURCES *.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/libkcal/CMakeLists.txt b/libkcal/CMakeLists.txt
index dbded2cb..a232a8b7 100644
--- a/libkcal/CMakeLists.txt
+++ b/libkcal/CMakeLists.txt
@@ -55,8 +55,17 @@ install( FILES
##### other data ################################
-install( FILES local.desktop localdir.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal )
-install( FILES kcal_manager.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources )
+tde_create_translated_desktop(
+ SOURCE local.desktop localdir.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal
+ PO_DIR libkcal-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE kcal_manager.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources
+ PO_DIR libkcal-desktops
+)
##### kcal_local (module) #######################
diff --git a/libkcal/alarm.h b/libkcal/alarm.h
index 09de14f0..01969cae 100644
--- a/libkcal/alarm.h
+++ b/libkcal/alarm.h
@@ -33,7 +33,7 @@
#include "listbase.h"
#include "libkcal_export.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KCal {
diff --git a/libkcal/assignmentvisitor.cpp b/libkcal/assignmentvisitor.cpp
index 023df857..c5599e93 100644
--- a/libkcal/assignmentvisitor.cpp
+++ b/libkcal/assignmentvisitor.cpp
@@ -119,5 +119,3 @@ bool AssignmentVisitor::visit( FreeBusy *freebusy )
*freebusy = *source;
return true;
}
-
-// kate: space-indent on; indent-width 2; replace-tabs on;
diff --git a/libkcal/assignmentvisitor.h b/libkcal/assignmentvisitor.h
index 2be0215c..12d6daac 100644
--- a/libkcal/assignmentvisitor.h
+++ b/libkcal/assignmentvisitor.h
@@ -119,4 +119,3 @@ class AssignmentVisitor : public IncidenceBase::Visitor
}
#endif
-// kate: space-indent on; indent-width 2; replace-tabs on;
diff --git a/libkcal/calendar.h b/libkcal/calendar.h
index 08255938..2c76832e 100644
--- a/libkcal/calendar.h
+++ b/libkcal/calendar.h
@@ -39,7 +39,7 @@
#include "kcalversion.h"
#include "person.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqobject.h>
#include <tqstring.h>
@@ -169,7 +169,7 @@ enum JournalSortField
class LIBKCAL_EXPORT Calendar : public TQObject, public CustomProperties,
public IncidenceBase::Observer
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libkcal/calendarlocal.h b/libkcal/calendarlocal.h
index a77238e4..e021a9b6 100644
--- a/libkcal/calendarlocal.h
+++ b/libkcal/calendarlocal.h
@@ -24,7 +24,7 @@
#include "calendar.h"
#include <tqdict.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KCal {
diff --git a/libkcal/calendarresources.cpp b/libkcal/calendarresources.cpp
index bfc493ba..2787a89c 100644
--- a/libkcal/calendarresources.cpp
+++ b/libkcal/calendarresources.cpp
@@ -131,8 +131,8 @@ void CalendarResources::init( const TQString &family )
mDestinationPolicy = mStandardPolicy;
mPendingDeleteFromResourceMap = false;
- connect( this, TQT_SIGNAL(batchAddingBegins()), this, TQT_SLOT(beginAddingIncidences()) );
- connect( this, TQT_SIGNAL(batchAddingEnds()), this, TQT_SLOT(endAddingIncidences()) );
+ connect( this, TQ_SIGNAL(batchAddingBegins()), this, TQ_SLOT(beginAddingIncidences()) );
+ connect( this, TQ_SIGNAL(batchAddingEnds()), this, TQ_SLOT(endAddingIncidences()) );
}
CalendarResources::~CalendarResources()
@@ -756,17 +756,17 @@ Journal::List CalendarResources::rawJournalsForDate( const TQDate &date )
void CalendarResources::connectResource( ResourceCalendar *resource )
{
- connect( resource, TQT_SIGNAL( resourceChanged( ResourceCalendar * ) ),
- TQT_SIGNAL( calendarChanged() ) );
- connect( resource, TQT_SIGNAL( resourceSaved( ResourceCalendar * ) ),
- TQT_SIGNAL( calendarSaved() ) );
+ connect( resource, TQ_SIGNAL( resourceChanged( ResourceCalendar * ) ),
+ TQ_SIGNAL( calendarChanged() ) );
+ connect( resource, TQ_SIGNAL( resourceSaved( ResourceCalendar * ) ),
+ TQ_SIGNAL( calendarSaved() ) );
- connect( resource, TQT_SIGNAL( resourceLoadError( ResourceCalendar *,
+ connect( resource, TQ_SIGNAL( resourceLoadError( ResourceCalendar *,
const TQString & ) ),
- TQT_SLOT( slotLoadError( ResourceCalendar *, const TQString & ) ) );
- connect( resource, TQT_SIGNAL( resourceSaveError( ResourceCalendar *,
+ TQ_SLOT( slotLoadError( ResourceCalendar *, const TQString & ) ) );
+ connect( resource, TQ_SIGNAL( resourceSaveError( ResourceCalendar *,
const TQString & ) ),
- TQT_SLOT( slotSaveError( ResourceCalendar *, const TQString & ) ) );
+ TQ_SLOT( slotSaveError( ResourceCalendar *, const TQString & ) ) );
}
ResourceCalendar *CalendarResources::resource( Incidence *incidence )
diff --git a/libkcal/calendarresources.h b/libkcal/calendarresources.h
index bb756f85..20d5850c 100644
--- a/libkcal/calendarresources.h
+++ b/libkcal/calendarresources.h
@@ -65,7 +65,7 @@ class LIBKCAL_EXPORT CalendarResources :
public Calendar,
public KRES::ManagerObserver<ResourceCalendar>
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/libkcal/calhelper.cpp b/libkcal/calhelper.cpp
index 89a67fb3..b7816675 100644
--- a/libkcal/calhelper.cpp
+++ b/libkcal/calhelper.cpp
@@ -162,6 +162,6 @@ TQPair<ResourceCalendar *, TQString> CalHelper::incSubResourceCalendar( Calendar
if ( res && res->canHaveSubresources() ) {
subRes = res->subresourceIdentifier( incidence );
}
- p = tqMakePair( res, subRes );
+ p = qMakePair( res, subRes );
return p;
}
diff --git a/libkcal/calselectdialog.cpp b/libkcal/calselectdialog.cpp
index b72a1627..c2a7f897 100644
--- a/libkcal/calselectdialog.cpp
+++ b/libkcal/calselectdialog.cpp
@@ -65,10 +65,10 @@ CalSelectDialog::CalSelectDialog( const TQString &caption, const TQString &label
mListBox->ensureCurrentVisible();
layout->addWidget( mListBox, 10 );
- connect( mListBox, TQT_SIGNAL(doubleClicked(TQListBoxItem *)),
- TQT_SLOT(slotOk()) );
- connect( mListBox, TQT_SIGNAL(returnPressed(TQListBoxItem *)),
- TQT_SLOT(slotOk()) );
+ connect( mListBox, TQ_SIGNAL(doubleClicked(TQListBoxItem *)),
+ TQ_SLOT(slotOk()) );
+ connect( mListBox, TQ_SIGNAL(returnPressed(TQListBoxItem *)),
+ TQ_SLOT(slotOk()) );
mListBox->setFocus();
diff --git a/libkcal/confirmsavedialog.h b/libkcal/confirmsavedialog.h
index f92d4ae5..bc0fcb09 100644
--- a/libkcal/confirmsavedialog.h
+++ b/libkcal/confirmsavedialog.h
@@ -23,7 +23,7 @@
#include <libkcal/incidence.h>
#include <kdialogbase.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TDEListView;
diff --git a/libkcal/customproperties.h b/libkcal/customproperties.h
index e1b020dc..de6b8bd7 100644
--- a/libkcal/customproperties.h
+++ b/libkcal/customproperties.h
@@ -24,7 +24,7 @@
#include <tqstring.h>
#include <tqmap.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "libkcal_export.h"
diff --git a/libkcal/event.h b/libkcal/event.h
index 9bd217e1..ba0780fb 100644
--- a/libkcal/event.h
+++ b/libkcal/event.h
@@ -22,7 +22,7 @@
#define KCAL_EVENT_H
#include "incidence.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KCal {
diff --git a/libkcal/icalformat.h b/libkcal/icalformat.h
index 8da2868a..f277b14a 100644
--- a/libkcal/icalformat.h
+++ b/libkcal/icalformat.h
@@ -26,7 +26,7 @@
#include "scheduler.h"
#include "calformat.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KCal {
diff --git a/libkcal/icalformatimpl.cpp b/libkcal/icalformatimpl.cpp
index e4296bce..d8fe62df 100644
--- a/libkcal/icalformatimpl.cpp
+++ b/libkcal/icalformatimpl.cpp
@@ -69,15 +69,6 @@ static void _dumpIcaltime( const icaltimetype& t)
}
*/
-static TQString quoteForParam( const TQString &text )
-{
- TQString tmp = text;
- tmp.remove( '"' );
- if ( tmp.contains( ';' ) || tmp.contains( ':' ) || tmp.contains( ',' ) )
- return tmp; // libical quotes in this case already, see icalparameter_as_ical_string()
- return TQString::fromLatin1( "\"" ) + tmp + TQString::fromLatin1( "\"" );
-}
-
const int gSecondsPerMinute = 60;
const int gSecondsPerHour = gSecondsPerMinute * 60;
const int gSecondsPerDay = gSecondsPerHour * 24;
@@ -576,7 +567,7 @@ icalproperty *ICalFormatImpl::writeOrganizer( const Person &organizer )
icalproperty *p = icalproperty_new_organizer("MAILTO:" + organizer.email().utf8());
if (!organizer.name().isEmpty()) {
- icalproperty_add_parameter( p, icalparameter_new_cn(quoteForParam(organizer.name()).utf8()) );
+ icalproperty_add_parameter( p, icalparameter_new_cn(organizer.name().utf8()) );
}
// TODO: Write dir, sent-by and language
@@ -589,7 +580,7 @@ icalproperty *ICalFormatImpl::writeAttendee(Attendee *attendee)
icalproperty *p = icalproperty_new_attendee("mailto:" + attendee->email().utf8());
if (!attendee->name().isEmpty()) {
- icalproperty_add_parameter(p,icalparameter_new_cn(quoteForParam(attendee->name()).utf8()));
+ icalproperty_add_parameter(p,icalparameter_new_cn(attendee->name().utf8()));
}
@@ -869,7 +860,7 @@ icalcomponent *ICalFormatImpl::writeAlarm(Alarm *alarm)
for (TQValueList<Person>::Iterator ad = addresses.begin(); ad != addresses.end(); ++ad) {
icalproperty *p = icalproperty_new_attendee("MAILTO:" + (*ad).email().utf8());
if (!(*ad).name().isEmpty()) {
- icalproperty_add_parameter(p,icalparameter_new_cn(quoteForParam((*ad).name()).utf8()));
+ icalproperty_add_parameter(p,icalparameter_new_cn((*ad).name().utf8()));
}
icalcomponent_add_property(a,p);
}
diff --git a/libkcal/incidence.h b/libkcal/incidence.h
index 20579ce7..f5fedc34 100644
--- a/libkcal/incidence.h
+++ b/libkcal/incidence.h
@@ -32,7 +32,7 @@
#include "libkcal_export.h"
#include "incidencebase.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KCal {
diff --git a/libkcal/incidenceformatter.cpp b/libkcal/incidenceformatter.cpp
index da3a7aae..785a681b 100644
--- a/libkcal/incidenceformatter.cpp
+++ b/libkcal/incidenceformatter.cpp
@@ -2837,7 +2837,7 @@ TQString IncidenceFormatter::msTNEFToVPart( const TQByteArray& tnef )
ICalFormat calFormat;
Event* event = new Event();
- if( parser.openDevice( &TQT_TQIODEVICE_OBJECT(buf) ) ) {
+ if( parser.openDevice( &buf ) ) {
KTNEFMessage* tnefMsg = parser.message();
//TQMap<int,KTNEFProperty*> props = parser.message()->properties();
diff --git a/libkcal/journal.h b/libkcal/journal.h
index a3289d57..d2ca83c4 100644
--- a/libkcal/journal.h
+++ b/libkcal/journal.h
@@ -23,7 +23,7 @@
#define KCAL_JOURNAL_H
#include "incidence.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KCal {
diff --git a/libkcal/kcal_manager.desktop b/libkcal/kcal_manager.desktop
index 40429a46..356b2b6c 100644
--- a/libkcal/kcal_manager.desktop
+++ b/libkcal/kcal_manager.desktop
@@ -1,63 +1,6 @@
[Desktop Entry]
Name=Calendar
-Name[af]=Kalender
-Name[ar]=التقويم
-Name[be]=Каляндар
-Name[bg]=Календар
-Name[br]=Deiziadur
-Name[bs]=Kalendar
-Name[ca]=Calendari
-Name[cs]=Kalendář
-Name[cy]=Calendr
-Name[da]=Kalender
-Name[de]=Kalender
-Name[el]=Ημερολόγιο
-Name[eo]=Kalendaro
-Name[es]=Calendario
-Name[et]=Kalender
-Name[eu]=Egutegia
-Name[fa]=تقویم
-Name[fi]=Kalenteri
-Name[fr]=Calendrier
-Name[fy]=Aginda
-Name[ga]=Féilire
-Name[gl]=Calendario
-Name[he]=לוח שנה
-Name[hi]=कैलेन्डर
-Name[hu]=Naptár
-Name[is]=Dagatal
-Name[it]=Calendario
-Name[ja]=カレンダー
-Name[kk]=Күнтізбе
-Name[km]=ប្រតិទិន
-Name[lt]=Kalendorius
-Name[mk]=Календар
-Name[ms]=Kalendar
-Name[nb]=Kalender
-Name[nds]=Kalenner
-Name[ne]=क्यालेन्डर
-Name[nl]=Agenda
-Name[nn]=Kalender
-Name[pa]=ਕੈਲੰਡਰ
-Name[pl]=Kalendarz
-Name[pt]=Calendário
-Name[pt_BR]=Calendário
-Name[ru]=Календарь
-Name[se]=Kaleandar
-Name[sk]=Kalendár
-Name[sl]=Koledar
-Name[sr]=Календар
-Name[sr@Latn]=Kalendar
-Name[sv]=Kalender
-Name[ta]=நாள்காட்டி
-Name[tg]=Тақвим
-Name[th]=บันทึกประจำวัน
-Name[tr]=Takvim
-Name[uk]=Календар
-Name[uz]=Календар
-Name[zh_CN]=日历
-Name[zh_TW]=行事曆
+
Type=Service
X-TDE-ServiceTypes=TDEResources/Manager
-
X-TDE-ResourceFamily=calendar
diff --git a/libkcal/kcalversion.h b/libkcal/kcalversion.h
index 13422197..8eac5f4c 100644
--- a/libkcal/kcalversion.h
+++ b/libkcal/kcalversion.h
@@ -21,6 +21,8 @@
#ifndef KCAL_KCALVERSION_H
#define KCAL_KCALVERSION_H
+#include <tdeversion.h>
+
#define LIBKCAL_IS_VERSION( a,b,c ) ( LIBKCAL_VERSION >= TDE_MAKE_VERSION(a,b,c) )
#define LIBKCAL_VERSION TDE_MAKE_VERSION(1,3,0)
#define LIBKCAL_VERSIONSTR "1.3"
diff --git a/libkcal/libical/src/libical/icalattach.c b/libkcal/libical/src/libical/icalattach.c
index 106096bf..a2c1bd4c 100644
--- a/libkcal/libical/src/libical/icalattach.c
+++ b/libkcal/libical/src/libical/icalattach.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C -*-
+/*
======================================================================
FILE: icalattach.c
CREATOR: acampi 28 May 02
diff --git a/libkcal/libkcal_export.h b/libkcal/libkcal_export.h
index 88f270d0..7fca2dbe 100644
--- a/libkcal/libkcal_export.h
+++ b/libkcal/libkcal_export.h
@@ -21,7 +21,7 @@
#ifndef KCAL_KCALEXPORT_H
#define KCAL_KCALEXPORT_H
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#define LIBKCAL_EXPORT KDE_EXPORT
diff --git a/libkcal/local.desktop b/libkcal/local.desktop
index d52ecd5d..870e4ccc 100644
--- a/libkcal/local.desktop
+++ b/libkcal/local.desktop
@@ -1,57 +1,6 @@
[Desktop Entry]
Name=Calendar in Local File
-Name[af]=Kalender in plaaslike lêer
-Name[be]=Каляндар у лякальным файле
-Name[bg]=Календар в локален файл
-Name[br]=Deiziadur e restr lec'hel
-Name[bs]=Kalendar u lokalnoj datoteci
-Name[ca]=Calendari a un fitxer local
-Name[cs]=Kalendář v lokálním souboru
-Name[cy]=Calendr mewn Ffeil Lleol
-Name[da]=Kalender i lokal fil
-Name[de]=Kalender in lokaler Datei
-Name[el]=Ημερολόγιο σε τοπικό αρχείο
-Name[eo]=Kalendaro en loka dosiero
-Name[es]=Calendario en archivo local
-Name[et]=Kalender kohalikus failis
-Name[eu]=Egutegia fitxategi lokalean
-Name[fa]=تقویم در پروندۀ محلی
-Name[fi]=Kalenteri paikallisessa tiedostossa
-Name[fr]=Calendrier dans un fichier local
-Name[fy]=Aginda yn lokaal triem
-Name[ga]=Féilire i gComhad Logánta
-Name[gl]=Calendario nun Ficheiro Local
-Name[hi]=स्थानीय फ़ाइल में कैलेन्डर
-Name[hu]=Helyi fájlban tárolt naptár
-Name[is]=Dagatal í staðbundinni skrá
-Name[it]=Calendario in file locale
-Name[ja]=ローカルファイルのカレンダー
-Name[kk]=Жергілікті файлдағы күнтізбе
-Name[km]=ប្រតិទិន​នៅ​ក្នុង​ឯកសារ​មូលដ្ឋាន
-Name[lt]=Kalendorius vietinėje byloje
-Name[mk]=Календар во локална датотека
-Name[ms]=Kalendar dalam Fail Setempat
-Name[nb]=Kalender i lokal fil
-Name[nds]=Kalenner as lokaal Datei
-Name[ne]=स्थानीय फाइलको क्यालेन्डर
-Name[nl]=Agenda in lokaal bestand
-Name[nn]=Kalender i lokal fil
-Name[pl]=Kalendarz w pliku lokalnym
-Name[pt]=Calendário num Ficheiro Local
-Name[pt_BR]=Calendário em Arquivo Local
-Name[ro]=Calendar în fişier local
-Name[ru]=Календарь в локальном файле
-Name[sk]=Kalendár v lokálnom súbore
-Name[sl]=Koledar v krajevni datoteki
-Name[sr]=Календар у локалном фајлу
-Name[sr@Latn]=Kalendar u lokalnom fajlu
-Name[sv]=Kalender i lokal fil
-Name[ta]=பொது அடைவில் உள்ள நாள்காட்டி
-Name[tg]=Тақвимот дар файли локалӣ
-Name[tr]=Yerel Dosyadaki Takvim
-Name[uk]=Календар у локальному файлі
-Name[zh_CN]=本地文件中的日历
-Name[zh_TW]=本地檔案中的行事曆
+
X-TDE-Library=kcal_local
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/libkcal/localdir.desktop b/libkcal/localdir.desktop
index 37e89053..df2a7632 100644
--- a/libkcal/localdir.desktop
+++ b/libkcal/localdir.desktop
@@ -1,57 +1,6 @@
[Desktop Entry]
Name=Calendar in Local Directory
-Name[af]=Kalender in plaaslike gids
-Name[be]=Каляндар у лякальным каталёгу
-Name[bg]=Календар в локална директория
-Name[br]=Deiziadur en ur restr lec'hel
-Name[bs]=Kalendar u lokalnom direktoriju
-Name[ca]=Calendari a un directori local
-Name[cs]=Kalendář v lokální složce
-Name[cy]=Calendr mewn Cyfeiriadur Lleol
-Name[da]=Kalender i lokal mappe
-Name[de]=Kalender in lokalem Ordner
-Name[el]=Ημερολόγιο σε τοπικό κατάλογο
-Name[eo]=Kalendaro en loka dosierujo
-Name[es]=Calendario en el directorio local
-Name[et]=Kalender kohalikus kataloogis
-Name[eu]=Egutegia direktorio lokalean
-Name[fa]=تقویم در فهرست راهنمای محلی
-Name[fi]=Kalenteri paikallisessa kansiossa
-Name[fr]=Calendrier dans un dossier local
-Name[fy]=Aginda yn lokale triemtafel
-Name[ga]=Féilire i gComhadlann Logánta
-Name[gl]=Calendario nun Cartafol Local
-Name[hi]=स्थानीय डिरेक्ट्री में कैलेन्डर
-Name[hu]=Helyi könyvtárban tárolt naptár
-Name[is]=Dagatal í staðbundinni möppu
-Name[it]=Calendario nella directory locale
-Name[ja]=ローカルディレクトリのカレンダー
-Name[kk]=Жергілікті каталогтағы күнтізбе
-Name[km]=ប្រតិទិន​នៅ​ក្នុង​ថត​មូលដ្ឋាន
-Name[lt]=Kalendorius vietiniame aplanke
-Name[mk]=Календар во локална папка
-Name[ms]=Kalendar dalam Direktori Setempat
-Name[nb]=Kalender i lokal katalog
-Name[nds]=Kalenner in lokaal Orner
-Name[ne]=स्थानीय डाइरेक्टरीको क्यालेन्डर
-Name[nl]=Agenda in lokale map
-Name[nn]=Kalender i lokal mappe
-Name[pl]=Kalendarz w katalogu lokalnym
-Name[pt]=Calendário numa Directoria Local
-Name[pt_BR]=Calendário em Diretório Local
-Name[ro]=Calendar în director local
-Name[ru]=Календарь в локальной папке
-Name[sk]=Kalendár v lokálnom priečinku
-Name[sl]=Koledar v krajevnem imeniku
-Name[sr]=Календар у локалном директоријуму
-Name[sr@Latn]=Kalendar u lokalnom direktorijumu
-Name[sv]=Kalender i lokal katalog
-Name[ta]=பொது அடைவில் உள்ள நாள்காட்டி
-Name[tg]=Тақвимот дар каталоги локалӣ
-Name[tr]=Yerel Dizindeki Takvim
-Name[uk]=Календар у локальному каталозі
-Name[zh_CN]=本地目录中的日历
-Name[zh_TW]=本地目錄中的行事曆
+
X-TDE-Library=kcal_localdir
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/libkcal/resourcecached.cpp b/libkcal/resourcecached.cpp
index 38110431..dcd161ce 100644
--- a/libkcal/resourcecached.cpp
+++ b/libkcal/resourcecached.cpp
@@ -55,8 +55,8 @@ ResourceCached::ResourceCached( const TDEConfig* config )
mSavePolicy( SaveNever ), mSaveInterval( 10 ),
mSaveTimer( 0, "mSaveTimer" ), mIdMapper( "kcal/uidmaps/" )
{
- connect( &mReloadTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotReload() ) );
- connect( &mSaveTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotSave() ) );
+ connect( &mReloadTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( slotReload() ) );
+ connect( &mSaveTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( slotSave() ) );
}
ResourceCached::~ResourceCached()
diff --git a/libkcal/resourcecached.h b/libkcal/resourcecached.h
index 94c00ae4..6fc30a1c 100644
--- a/libkcal/resourcecached.h
+++ b/libkcal/resourcecached.h
@@ -34,7 +34,7 @@
#include <tqdatetime.h>
#include <tqtimer.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KCal {
@@ -45,7 +45,7 @@ namespace KCal {
class KDE_EXPORT ResourceCached : public ResourceCalendar,
public KCal::Calendar::Observer
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/libkcal/resourcecachedconfig.cpp b/libkcal/resourcecachedconfig.cpp
index ee43f711..6d6ada34 100644
--- a/libkcal/resourcecachedconfig.cpp
+++ b/libkcal/resourcecachedconfig.cpp
@@ -41,15 +41,15 @@ ResourceCachedReloadConfig::ResourceCachedReloadConfig( TQWidget *parent,
{
TQBoxLayout *topLayout = new TQVBoxLayout( this );
- mGroup = new TQButtonGroup( 1, Qt::Horizontal, i18n("Automatic Reload"), this );
+ mGroup = new TQButtonGroup( 1, TQt::Horizontal, i18n("Automatic Reload"), this );
topLayout->addWidget( mGroup );
new TQRadioButton( i18n("Never"), mGroup );
new TQRadioButton( i18n("On startup"), mGroup );
TQRadioButton *intervalRadio = new TQRadioButton( i18n("Regular interval"),
mGroup );
- connect( intervalRadio, TQT_SIGNAL( stateChanged( int ) ),
- TQT_SLOT( slotIntervalStateChanged( int ) ) );
+ connect( intervalRadio, TQ_SIGNAL( stateChanged( int ) ),
+ TQ_SLOT( slotIntervalStateChanged( int ) ) );
TQHBox *intervalBox = new TQHBox( mGroup );
new TQLabel( i18n("Interval in minutes"), intervalBox );
mIntervalSpin = new TQSpinBox( 1,900, 1,intervalBox );
@@ -81,15 +81,15 @@ ResourceCachedSaveConfig::ResourceCachedSaveConfig( TQWidget *parent,
{
TQBoxLayout *topLayout = new TQVBoxLayout( this );
- mGroup = new TQButtonGroup( 1, Qt::Horizontal, i18n("Automatic Save"), this );
+ mGroup = new TQButtonGroup( 1, TQt::Horizontal, i18n("Automatic Save"), this );
topLayout->addWidget( mGroup );
new TQRadioButton( i18n("Never"), mGroup );
new TQRadioButton( i18n("On exit"), mGroup );
TQRadioButton *intervalRadio = new TQRadioButton( i18n("Regular interval"),
mGroup );
- connect( intervalRadio, TQT_SIGNAL( stateChanged( int ) ),
- TQT_SLOT( slotIntervalStateChanged( int ) ) );
+ connect( intervalRadio, TQ_SIGNAL( stateChanged( int ) ),
+ TQ_SLOT( slotIntervalStateChanged( int ) ) );
TQHBox *intervalBox = new TQHBox( mGroup );
new TQLabel( i18n("Interval in minutes"), intervalBox );
mIntervalSpin = new TQSpinBox( 1,900, 1,intervalBox );
diff --git a/libkcal/resourcecachedconfig.h b/libkcal/resourcecachedconfig.h
index 0ee57793..81e4ee8e 100644
--- a/libkcal/resourcecachedconfig.h
+++ b/libkcal/resourcecachedconfig.h
@@ -22,7 +22,7 @@
#define KCAL_RESOURCECACHEDCONFIG_H
#include <tqwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQButtonGroup;
class TQSpinBox;
@@ -38,7 +38,7 @@ class ResourceCached;
*/
class KDE_EXPORT ResourceCachedReloadConfig : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceCachedReloadConfig( TQWidget *parent = 0, const char *name = 0 );
@@ -65,7 +65,7 @@ class KDE_EXPORT ResourceCachedReloadConfig : public TQWidget
*/
class KDE_EXPORT ResourceCachedSaveConfig : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceCachedSaveConfig( TQWidget *parent = 0, const char *name = 0 );
diff --git a/libkcal/resourcecalendar.h b/libkcal/resourcecalendar.h
index f33b7da4..e4c97b5c 100644
--- a/libkcal/resourcecalendar.h
+++ b/libkcal/resourcecalendar.h
@@ -41,7 +41,7 @@
#include <tderesources/resource.h>
#include <tderesources/manager.h>
#include <tdeabc/lock.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KCal {
@@ -56,7 +56,7 @@ class CalFormat;
*/
class LIBKCAL_EXPORT ResourceCalendar : public KRES::Resource
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceCalendar( const TDEConfig * );
diff --git a/libkcal/resourcelocal.cpp b/libkcal/resourcelocal.cpp
index a193b0b7..7651daf5 100644
--- a/libkcal/resourcelocal.cpp
+++ b/libkcal/resourcelocal.cpp
@@ -111,12 +111,12 @@ void ResourceLocal::init()
setSavePolicy( SaveDelayed );
- connect( &mDirWatch, TQT_SIGNAL( dirty( const TQString & ) ),
- TQT_SLOT( reload() ) );
- connect( &mDirWatch, TQT_SIGNAL( created( const TQString & ) ),
- TQT_SLOT( reload() ) );
- connect( &mDirWatch, TQT_SIGNAL( deleted( const TQString & ) ),
- TQT_SLOT( reload() ) );
+ connect( &mDirWatch, TQ_SIGNAL( dirty( const TQString & ) ),
+ TQ_SLOT( reload() ) );
+ connect( &mDirWatch, TQ_SIGNAL( created( const TQString & ) ),
+ TQ_SLOT( reload() ) );
+ connect( &mDirWatch, TQ_SIGNAL( deleted( const TQString & ) ),
+ TQ_SLOT( reload() ) );
mLock = new TDEABC::Lock( mURL.path() );
diff --git a/libkcal/resourcelocal.h b/libkcal/resourcelocal.h
index d13ed2d8..1ef4cf01 100644
--- a/libkcal/resourcelocal.h
+++ b/libkcal/resourcelocal.h
@@ -27,7 +27,7 @@
#include <kurl.h>
#include <kdirwatch.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TDEConfig;
#include "calendarlocal.h"
@@ -44,7 +44,7 @@ class CalFormat;
*/
class LIBKCAL_EXPORT ResourceLocal : public ResourceCached
{
- Q_OBJECT
+ TQ_OBJECT
friend class ResourceLocalConfig;
diff --git a/libkcal/resourcelocalconfig.cpp b/libkcal/resourcelocalconfig.cpp
index ccba0328..0999aaae 100644
--- a/libkcal/resourcelocalconfig.cpp
+++ b/libkcal/resourcelocalconfig.cpp
@@ -51,7 +51,7 @@ ResourceLocalConfig::ResourceLocalConfig( TQWidget* parent, const char* name )
mainLayout->addWidget( label, 1, 0 );
mainLayout->addWidget( mURL, 1, 1 );
- formatGroup = new TQButtonGroup( 1, Qt::Horizontal, i18n( "Calendar Format" ), this );
+ formatGroup = new TQButtonGroup( 1, TQt::Horizontal, i18n( "Calendar Format" ), this );
icalButton = new TQRadioButton( i18n("iCalendar"), formatGroup );
vcalButton = new TQRadioButton( i18n("vCalendar"), formatGroup );
diff --git a/libkcal/resourcelocalconfig.h b/libkcal/resourcelocalconfig.h
index 7a1e7f72..2bb732ee 100644
--- a/libkcal/resourcelocalconfig.h
+++ b/libkcal/resourcelocalconfig.h
@@ -28,7 +28,7 @@
#include <tderesources/resource.h>
#include <tderesources/configwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "libkcal_export.h"
@@ -41,7 +41,7 @@ namespace KCal {
*/
class LIBKCAL_EXPORT ResourceLocalConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceLocalConfig( TQWidget* parent = 0, const char* name = 0 );
diff --git a/libkcal/resourcelocaldir.cpp b/libkcal/resourcelocaldir.cpp
index 33fa42f7..0c22cae5 100644
--- a/libkcal/resourcelocaldir.cpp
+++ b/libkcal/resourcelocaldir.cpp
@@ -92,12 +92,12 @@ void ResourceLocalDir::init()
setSavePolicy( SaveDelayed );
- connect( &mDirWatch, TQT_SIGNAL( dirty( const TQString & ) ),
- TQT_SLOT( reload( const TQString & ) ) );
- connect( &mDirWatch, TQT_SIGNAL( created( const TQString & ) ),
- TQT_SLOT( reload( const TQString & ) ) );
- connect( &mDirWatch, TQT_SIGNAL( deleted( const TQString & ) ),
- TQT_SLOT( reload( const TQString & ) ) );
+ connect( &mDirWatch, TQ_SIGNAL( dirty( const TQString & ) ),
+ TQ_SLOT( reload( const TQString & ) ) );
+ connect( &mDirWatch, TQ_SIGNAL( created( const TQString & ) ),
+ TQ_SLOT( reload( const TQString & ) ) );
+ connect( &mDirWatch, TQ_SIGNAL( deleted( const TQString & ) ),
+ TQ_SLOT( reload( const TQString & ) ) );
mLock = new TDEABC::Lock( mURL.path() );
diff --git a/libkcal/resourcelocaldir.h b/libkcal/resourcelocaldir.h
index 6826da6b..de7d35b2 100644
--- a/libkcal/resourcelocaldir.h
+++ b/libkcal/resourcelocaldir.h
@@ -23,7 +23,7 @@
#include <kurl.h>
#include <kdirwatch.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "resourcecached.h"
@@ -44,7 +44,7 @@ class Incidence;
*/
class LIBKCAL_EXPORT ResourceLocalDir : public ResourceCached
{
- Q_OBJECT
+ TQ_OBJECT
friend class ResourceLocalDirConfig;
diff --git a/libkcal/resourcelocaldirconfig.h b/libkcal/resourcelocaldirconfig.h
index 46994ef4..a6538acd 100644
--- a/libkcal/resourcelocaldirconfig.h
+++ b/libkcal/resourcelocaldirconfig.h
@@ -43,7 +43,7 @@ namespace KCal {
*/
class LIBKCAL_EXPORT ResourceLocalDirConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceLocalDirConfig( TQWidget *parent = 0, const char *name = 0 );
diff --git a/libkcal/tests/testresource.h b/libkcal/tests/testresource.h
index 4d17c7b4..8e5cb04c 100644
--- a/libkcal/tests/testresource.h
+++ b/libkcal/tests/testresource.h
@@ -28,7 +28,7 @@ namespace KCal {
class TestResource : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libkholidays/CMakeLists.txt b/libkholidays/CMakeLists.txt
index 7bd4dc9e..c4ef09f0 100644
--- a/libkholidays/CMakeLists.txt
+++ b/libkholidays/CMakeLists.txt
@@ -11,6 +11,8 @@
project( libkholidays )
+include( ConfigureChecks.cmake )
+
add_subdirectory( holidays )
include_directories(
@@ -27,12 +29,30 @@ link_directories(
##### kholidays (shared) ########################
+add_custom_command(
+ OUTPUT parseholiday.c parseholiday.h
+ COMMAND ${BISON_EXECUTABLE} -p kcal -d -o parseholiday.c ${CMAKE_CURRENT_SOURCE_DIR}/parseholiday.y
+)
+
+add_custom_command(
+ OUTPUT scanholiday.c
+ COMMAND ${FLEX_EXECUTABLE} -Pkcal -B -i -o scanholiday.c ${CMAKE_CURRENT_SOURCE_DIR}/scanholiday.lex
+)
+
+add_custom_target(
+ libkholiday_file_generation
+ DEPENDS
+ ${CMAKE_CURRENT_BINARY_DIR}/parseholiday.c
+ ${CMAKE_CURRENT_BINARY_DIR}/parseholiday.h
+ ${CMAKE_CURRENT_BINARY_DIR}/scanholiday.c
+)
tde_add_library( kholidays SHARED AUTOMOC
SOURCES
kholidays.cpp scanholiday.c parseholiday.h parseholiday.c lunarphase.cpp
VERSION 1.0.0
LINK tdecore-shared
+ DEPENDENCIES libkholiday_file_generation
DESTINATION ${LIB_INSTALL_DIR}
)
diff --git a/libkholidays/ConfigureChecks.cmake b/libkholidays/ConfigureChecks.cmake
new file mode 100644
index 00000000..c4e75c27
--- /dev/null
+++ b/libkholidays/ConfigureChecks.cmake
@@ -0,0 +1,13 @@
+############################################
+# #
+# Improvements and feedbacks are welcome #
+# #
+# This file is released under GPL >= 3 #
+# #
+############################################
+
+
+##### check for yacc (bison) and lex (flex)
+
+find_program( BISON_EXECUTABLE bison )
+find_program( FLEX_EXECUTABLE NAMES flex lex )
diff --git a/libkholidays/holidays/holiday_ua b/libkholidays/holidays/holiday_ua
index 6e836107..145464c4 100644
--- a/libkholidays/holidays/holiday_ua
+++ b/libkholidays/holidays/holiday_ua
@@ -1,118 +1,126 @@
:
: Ukrainian holiday file. Copy to ~/.holiday
:
-: Authors: Andriy Gapon <avg@icyb.net.ua>, April 2007.
+: Authors: Roman Savochenko <roman@oscada.org>, April 2022.
+: Andriy Gapon <avg@icyb.net.ua>, April 2007.
: Oleg Ivashchenko <ol_iva@i.ua>, October 2006.
:
: Official holidays
-small "Новий Рік" weekend on 1.1
-small "Різдво Христове" weekend on 7.1
-small "8 Березня - Міжнародний Жіночий День" weekend on 8.3
-small "Великдень" weekend on pascha
-small "1 Травня - День Праці" weekend on 1.5 length 2 days
-small "День Перемоги" weekend on 9.5
-small "Трійця" weekend on pascha plus 49 days
-small "День Конституції України" weekend on 28.6
-small "День Незалежності України" weekend on 24.8
+small "Новий Рік" weekend on 1.3
+small "День Пам'яті жертв геноциду PERuSSIAN — Пурім" weekend on 8.3
+small "Великдень" weekend on 21.3
+small "День Пам'яті жертв геноциду 'хрещення русі'" weekend on pascha
+small "День Пам'яті жертв війн дЖИДаІВ" weekend on 8.5
+small "Купайла" weekend on 21.6
+:small "День Конституції України" weekend on 28.6
+:small "День Незалежності України" weekend on 24.8
+small "Весілля Свічки" weekend on 21.9
+small "День Пам'яті жертв геноциду юдокомуни — колективізація-голод, репресії, індустріалізація-голод, лендліз-голод" weekend on 7.11
+:small "Різдво" weekend on 25.12
+small "Рідздво" weekend on 21.12
: Other holidays
-blue "Хрещення" on 19.1
blue "День соборності України" on 22.1
-blue "День пам’яті Крутів" on 29.1
-blue "День працівників пожежної охорони" on 29.1
-blue "День вшанування учасників бойових дій на території інших держав" on 15.2
-blue "День захисника Вітчизни" on 23.2
-blue "День землевпорядника" on second saturday in march
-blue "День працівників житлово-комунального господарства і побутового обслуговування населення" on third sunday in march
-blue "Всеукраїнський день працівників культури та аматорів народного мистецтва" on 23.3
-blue "Всеукраїнський день боротьби із захворюванням на туберкульоз" on 24.3
-blue "День Служби безпеки України" on 25.3
-blue "День внутрішніх військ Міністерства внутрішніх справ України" on 26.3
-blue "День геолога" on first sunday in april
-blue "День працівників ракетно-космічної галузі України" on 12.4
-blue "День пам'яток історії та культури" on 18.4
-blue "День довкілля" on third saturday in april
-blue "День охорони праці" on 28.4
-blue "День матері" on second sunday in may
-blue "День банківських працівників" on 20.5
-blue "День науки" on third saturday in may
-blue "День Європи" on third saturday in may
-blue "День працівників видавництв, поліграфії і книгорозповсюдження" on last saturday in may
-blue "День хіміка" on last sunday in may
-blue "Міжнародний день миротворців Організації Об'єднаних Націй" on 29.5
-blue "День слов'янської писемності і культури" 24.5
-blue "День прикордонника" on 28.5
-blue "День захисту дітей" on 1.6
-blue "День журналіста" on 6.6
-blue "День працівників місцевої промисловості" on first sunday in june
-blue "День працівників водного господарства" on first sunday in june
-blue "День працівників легкої промисловості" on second sunday in june
-blue "День медичного працівника" on third sunday in june
-blue "День скорботи і вшанування пам'яті жертв війни в Україні" on 22.6
-blue "День державної служби" on 23.6
-blue "День митної служби України" on 25.6
-blue "День молоді" on last sunday in june
-blue "День архітектури України" on 1.7
-blue "День працівника державної податкової служби України" on 2.7
-blue "День Військ Протиповітряної оборони" on first sunday in july
-blue "День Військово-Морських Сил" on first sunday in july
-blue "День працівників морського та річкового флоту" on first sunday in july
-blue "День рибалки" on second sunday in july
-blue "День бухгалтера" on 16.7
-blue "День працівників металургійної та гірничодобувної промисловості" on third sunday in july
-blue "День працівників торгівлі" on last sunday in july
-blue "День аеромобільних військ" on 2.8
-blue "День військ зв'язку" on 8.8
-blue "День будівельника" on second sunday in august
-blue "День працівників ветеринарної медицини" on second sunday in august
-blue "День пасічника" on 19.8
-blue "День Державного Прапора України" on 23.8
-blue "День авіації" on last saturday in august
-blue "День шахтаря" on last sunday in august
-blue "День підприємця" on first sunday in september
-blue "День фізичної культури і спорту" on second saturday in september
-blue "День танкістів" on second sunday in september
-blue "День працівників нафтової, газової та нафтопереробної промисловості" on second sunday in september
-blue "День українського кіно" on second saturday in september
-blue "День працівників цивільного захисту" on 17.9
+blue "День Пам’яті жертв Крутів" on 29.1
+:blue "День працівників пожежної охорони" on 29.1
+blue "Колодій" on 14.2
+blue "День Пам’яті жертв Революції Гідності" on 20.2
+:blue "День Рідної Мови" on 21.2
+:blue "День землевпорядника" on second saturday in march
+:blue "День працівників житлово-комунального господарства і побутового обслуговування населення" on third sunday in march
+blue "День народження Шевченка Тараса Григоровича" on 10.3
+blue "День добровольної жертви окупації" on 14.3
+:blue "Всеукраїнський день працівників культури та аматорів народного мистецтва" on 23.3
+:blue "Всеукраїнський день боротьби із захворюванням на туберкульоз" on 24.3
+:blue "День Служби безпеки України" on 25.3
+:blue "День внутрішніх військ Міністерства внутрішніх справ України" on 26.3
+:blue "День геолога" on first sunday in april
+:blue "День працівників ракетно-космічної галузі України" on 12.4
+:blue "День пам'яток історії та культури" on 18.4
+:blue "День довкілля" on third saturday in april
+:blue "День охорони праці" on 28.4
+:blue "День матері" on second sunday in may
+blue "Русалій" on 15.5
+:blue "День банківських працівників" on 20.5
+:blue "День науки" on third saturday in may
+:blue "День Європи" on third saturday in may
+:blue "День працівників видавництв, поліграфії і книгорозповсюдження" on last saturday in may
+:blue "День хіміка" on last sunday in may
+blue "День ХЕРоїв 1000-річної окупації" on 23.5
+:blue "День слов'янської писемності і культури" 24.5
+:blue "День прикордонника" on 28.5
+:blue "Міжнародний день миротворців Організації Об'єднаних Націй" on 29.5
+:blue "День захисту дітей" on 1.6
+:blue "День журналіста" on 6.6
+:blue "День працівників місцевої промисловості" on first sunday in june
+:blue "День працівників водного господарства" on first sunday in june
+:blue "День працівників легкої промисловості" on second sunday in june
+:blue "День медичного працівника" on third sunday in june
+:blue "День скорботи і вшанування пам'яті жертв війни в Україні" on 22.6
+:blue "День державної служби" on 23.6
+:blue "День митної служби України" on 25.6
+:blue "День молоді" on last sunday in june
+:blue "День архітектури України" on 1.7
+:blue "День працівника державної податкової служби України" on 2.7
+:blue "День Військ Протиповітряної оборони" on first sunday in july
+:blue "День Військово-Морських Сил" on first sunday in july
+:blue "День працівників морського та річкового флоту" on first sunday in july
+:blue "День рибалки" on second sunday in july
+:blue "День бухгалтера" on 16.7
+:blue "День працівників металургійної та гірничодобувної промисловості" on third sunday in july
+:blue "День працівників торгівлі" on last sunday in july
+:blue "День аеромобільних військ" on 2.8
+:blue "День військ зв'язку" on 8.8
+:blue "День будівельника" on second sunday in august
+:blue "День працівників ветеринарної медицини" on second sunday in august
+blue "Спаса" on 14.8
+:blue "День пасічника" on 19.8
+:blue "День Державного Прапора України" on 23.8
+:blue "День авіації" on last saturday in august
+:blue "День шахтаря" on last sunday in august
+:blue "День підприємця" on first sunday in september
+:blue "День фізичної культури і спорту" on second saturday in september
+:blue "День танкістів" on second sunday in september
+:blue "День працівників нафтової, газової та нафтопереробної промисловості" on second sunday in september
+:blue "День українського кіно" on second saturday in september
+:blue "День працівників цивільного захисту" on 17.9
blue "День миру" on 21.9
-blue "День партизанської слави" on 22.9
-blue "День фармацевтичного працівника" on third saturday in september
-blue "День винахідника і раціоналізатора" on third saturday in september
-blue "День працівника лісу" on third sunday in september
-blue "День машинобудівника" on fourth sunday in september
-blue "День туризму" on 27.9
-blue "Всеукраїнський день бібліотек" on 30.9
-blue "День працівників освіти" on first sunday in october
-blue "День юриста" on 8.10
-blue "День працівників стандартизації та метрології" on 10.10
-blue "День працівників державної санітарно-епідеміологічної служби" on second sunday in october
-blue "День художника" on second sunday in october
-blue "День Українського козацтва" on 14.10
-blue "День працівників харчової промисловості" on third sunday in october
-blue "День автомобіліста і дорожника" on last sunday in october
-blue "День інженерних військ" on 3.11
-blue "День ракетних військ і артилерії" on 3.11
-blue "День залізничника" on 4.11
-blue "День працівника соціальної сфери" on first sunday in november
-blue "День української писемності та мови" on 9.11
-blue "День працівників радіо, телебачення та зв'язку" on 16.11
-blue "День студента" on 17.11
-blue "День працівників гідрометеорологічної служби" on 19.11
-blue "День скловиробника" on 19.11
-blue "День Свободи" on 22.11
-blue "День працівників сільського господарства" on third sunday in november
+:blue "День фармацевтичного працівника" on third saturday in september
+:blue "День винахідника і раціоналізатора" on third saturday in september
+:blue "День працівника лісу" on third sunday in september
+:blue "День машинобудівника" on fourth sunday in september
+:blue "День туризму" on 27.9
+:blue "Всеукраїнський день бібліотек" on 30.9
+:blue "День працівників освіти" on first sunday in october
+:blue "День юриста" on 8.10
+:blue "День працівників стандартизації та метрології" on 10.10
+:blue "День працівників державної санітарно-епідеміологічної служби" on second sunday in october
+:blue "День художника" on second sunday in october
+blue "День ХОСеАРА-козака — 'Велікаго' СеАРського ХЕРоїчно SLAVEного бика-головоріза та покрови юдобогородиці" on 14.10
+:blue "День працівників харчової промисловості" on third sunday in october
+:blue "День автомобіліста і дорожника" on last sunday in october
+:blue "День інженерних військ" on 3.11
+:blue "День ракетних військ і артилерії" on 3.11
+:blue "День залізничника" on 4.11
+:blue "День працівника соціальної сфери" on first sunday in november
+:blue "День української писемності та мови" on 9.11
+blue "Доля (Діди)" on 15.11
+:blue "День працівників радіо, телебачення та зв'язку" on 16.11
+:blue "День студента" on 17.11
+:blue "День працівників гідрометеорологічної служби" on 19.11
+:blue "День скловиробника" on 19.11
+:blue "День Свободи" on 22.11
+:blue "День працівників сільського господарства" on third sunday in november
blue "День пам'яті жертв голодоморів та політичних репресій" on fourth saturday in november
-blue "День працівників прокуратури" on 1.12
-blue "День працівників статистики" on 5.12
-blue "День Збройних Сил України" on 6.12
-blue "День місцевого самоврядування" on 7.12
-blue "День Сухопутних військ України" on 12.12
-blue "День вшанування учасників ліквідації наслідків аварії на Чорнобильській АЕС" on 14.12
-blue "День працівників суду" on 15.12
-blue "День адвокатури" on 19.12
-blue "День міліції" on 20.12
-blue "День працівників дипломатичної служби" on 22.12
-blue "День енергетика" on 22.12
-blue "День працівників архівних установ" on 24.12
+:blue "День працівників прокуратури" on 1.12
+:blue "День працівників статистики" on 5.12
+:blue "День Збройних Сил України" on 6.12
+:blue "День місцевого самоврядування" on 7.12
+:blue "День Сухопутних військ України" on 12.12
+:blue "День вшанування учасників ліквідації наслідків аварії на Чорнобильській АЕС" on 14.12
+:blue "День працівників суду" on 15.12
+:blue "День адвокатури" on 19.12
+:blue "День працівників дипломатичної служби" on 22.12
+:blue "День енергетика" on 22.12
+:blue "День працівників архівних установ" on 24.12
diff --git a/libkholidays/kholidays.h b/libkholidays/kholidays.h
index b2e31b87..19805377 100644
--- a/libkholidays/kholidays.h
+++ b/libkholidays/kholidays.h
@@ -25,7 +25,7 @@
#include <tqdatetime.h>
#include <tqvaluelist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
struct KHoliday {
TQString text;
diff --git a/libkholidays/parseholiday.c b/libkholidays/parseholiday.c
deleted file mode 100644
index 1923d955..00000000
--- a/libkholidays/parseholiday.c
+++ /dev/null
@@ -1,2653 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.3. */
-
-/* Skeleton implementation for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
- simplifying the original so-called "semantic" parser. */
-
-/* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
- variables, as they might otherwise be expanded by user macros.
- There are some unavoidable exceptions within include files to
- define necessary library symbols; they are noted "INFRINGES ON
- USER NAME SPACE" below. */
-
-/* Identify Bison output. */
-#define YYBISON 1
-
-/* Bison version. */
-#define YYBISON_VERSION "2.3"
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 0
-
-/* Using locations. */
-#define YYLSP_NEEDED 0
-
-/* Substitute the variable and function names. */
-#define yyparse kcalparse
-#define yylex kcallex
-#define yyerror kcalerror
-#define yylval kcallval
-#define yychar kcalchar
-#define yydebug kcaldebug
-#define yynerrs kcalnerrs
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- NUMBER = 258,
- MONTH = 259,
- WDAY = 260,
- COLOR = 261,
- STRING = 262,
- IN = 263,
- PLUS = 264,
- MINUS = 265,
- SMALL = 266,
- CYEAR = 267,
- LEAPYEAR = 268,
- SHIFT = 269,
- IF = 270,
- LENGTH = 271,
- EASTER = 272,
- EQ = 273,
- NE = 274,
- LE = 275,
- GE = 276,
- LT = 277,
- GT = 278,
- PASCHA = 279,
- OR = 280,
- AND = 281,
- UMINUS = 282
- };
-#endif
-/* Tokens. */
-#define NUMBER 258
-#define MONTH 259
-#define WDAY 260
-#define COLOR 261
-#define STRING 262
-#define IN 263
-#define PLUS 264
-#define MINUS 265
-#define SMALL 266
-#define CYEAR 267
-#define LEAPYEAR 268
-#define SHIFT 269
-#define IF 270
-#define LENGTH 271
-#define EASTER 272
-#define EQ 273
-#define NE 274
-#define LE 275
-#define GE 276
-#define LT 277
-#define GT 278
-#define PASCHA 279
-#define OR 280
-#define AND 281
-#define UMINUS 282
-
-
-
-
-/* Copy the first part of user declarations. */
-#line 1 "parseholiday.y"
-
-/*
- * deals with the holiday file. A yacc parser is used to parse the file.
- * All the holidays of the specified year are calculated at once and stored
- * in two arrays that have one entry for each day of the year. The day
- * drawing routines just use the julian date to index into these arrays.
- * There are two arrays because holidays can be printed either on a full
- * line under the day number, or as a small line to the right of the day
- * number. It's convenient to have both.
- *
- * parse_holidays(year, force) read the holiday file and evaluate
- * all the holiday definitions for
- * <year>. Sets holiday and sm_holiday
- * arrays. If force is set, re-eval even
- * if year is the same as last time.
- *
- * Taken from plan by Thomas Driemeyer <thomas@bitrot.de>
- * Adapted for use in KOrganizer by Preston Brown <pbrown@kde.org> and
- * Reinhold Kainhofer <reinhold@kainhofer.com>
- */
-
-#include <config.h>
-
-#include <stdio.h>
-#include <unistd.h>
-#include <time.h>
-#include <stdlib.h>
-#include <pwd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <string.h>
-
-#include <limits.h>
-
-/*** Macro definitions and constants ***/
-/*
- * Before you mail and complain that the following macro is incorrect,
- * please consider that this is one of the main battlegrounds of the
- * Annual Usenet Flame Wars. 2000 is a leap year. Just trust me on this :-)
- */
-
-#define ISLEAPYEAR(y) !((y)&3)
-#define JULIAN(m,d) (monthbegin[m] + (d)-1+((m)>1 && ISLEAPYEAR(parse_year)))
-#define LAST 999
-#define ANY 0
-#define BEFORE -1
-#define AFTER -2
-/**** Public forward declarations ****/
-char *parse_holidays(const char *holidays, int year, short force);
-
-/**** Private forward declarations ****/
-extern int kcallex(void); /* external lexical analyzer */
-static void kcalerror(const char *s);
-static time_t date_to_time(int day, int month, int year,
- int *wkday, int *julian, int *weeknum);
-static time_t tm_to_time(struct tm *tm);
-static int day_from_name(char *str);
-static int day_from_easter(void);
-static int day_from_monthday(int month, int day);
-static int day_from_wday(int day, int wday, int num);
-static void monthday_from_day(int day, int *m, int *d, int *y);
-static int calc_easter(int year);
-static int calc_pascha(int year);
-static void setliteraldate(int month, int day, int off, int *ddup);
-static void seteaster(int off, int length, int pascha);
-static void setdate(int month, int day, int year, int off, int conditionaloff, int length);
-static void setwday(int num, int wday, int month, int off, int length);
-static void setdoff(int wday, int rel, int month, int day,
- int year, int off, int length);
-/*** Variables and structures ***/
-static int m, d, y;
-int kcallineno; /* current line # being parsed */
-FILE *kcalin; /* file currently being processed */
-int yacc_small; /* small string or on its own line? */
-int yacc_stringcolor; /* color of holiday name text, 1..8 */
-char *yacc_string; /* holiday name text */
-int yacc_daycolor; /* color of day number, 1..8 */
-char *progname; /* argv[0] */
-int parse_year = -1; /* year being parsed, 0=1970..99=2069*/
-static const char *filename; /* holiday filename */
-static char errormsg[PATH_MAX+200];/* error message if any, or "" */
-static int easter_julian; /* julian date of Easter Sunday */
-static int pascha_julian; /* julian date of Pascha Sunday */
-static char *holiday_name; /* strdup'd yacc_string */
-short monthlen[12] = { 31, 28, 31, 30,
- 31, 30, 31, 31,
- 30, 31, 30, 31 };
-short monthbegin[12] = { 0, 31, 59, 90,
- 120, 151, 181,
- 212, 243, 273,
- 304, 334 };
-
-/* struct holiday;*/
-struct holiday {
- char *string; /* name of holiday, 0=not a holiday */
- int color;
- unsigned short dup; /* reference count */
- struct holiday *next;
-};
-
-struct holiday holidays[366]; /* info for each day, separate for */
-/*struct holiday sm_holiday[366];*/ /* full-line texts under, and small */
- /* texts next to day number */
-static int initialized=0;
-
-
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-#line 111 "parseholiday.y"
-{ int ival; char *sval; }
-/* Line 193 of yacc.c. */
-#line 270 "parseholiday.c"
- YYSTYPE;
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-
-
-/* Copy the second part of user declarations. */
-
-
-/* Line 216 of yacc.c. */
-#line 283 "parseholiday.c"
-
-#ifdef short
-# undef short
-#endif
-
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
-#endif
-
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
-#else
-typedef short int yytype_int8;
-#endif
-
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
-#else
-typedef unsigned short int yytype_uint16;
-#endif
-
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
-#else
-typedef short int yytype_int16;
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-# define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-# define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# else
-# define YYSIZE_T unsigned int
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
-#ifndef YY_
-# if YYENABLE_NLS
-# if ENABLE_NLS
-# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(msgid) dgettext ("bison-runtime", msgid)
-# endif
-# endif
-# ifndef YY_
-# define YY_(msgid) msgid
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E. */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(e) ((void) (e))
-#else
-# define YYUSE(e) /* empty */
-#endif
-
-/* Identity function, used to suppress warnings about constant conditions. */
-#ifndef lint
-# define YYID(n) (n)
-#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int i)
-#else
-static int
-YYID (i)
- int i;
-#endif
-{
- return i;
-}
-#endif
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# elif defined __BUILTIN_VA_ARG_INCR
-# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-# elif defined _AIX
-# define YYSTACK_ALLOC __alloca
-# elif defined _MSC_VER
-# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-# define alloca _alloca
-# else
-# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
-# endif
-# endif
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-# ifndef YYSTACK_ALLOC_MAXIMUM
- /* The OS might guarantee only one guard page at the bottom of the stack,
- and a page size can be as small as 4096 bytes. So we cannot safely
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
- to allow for a few compiler-allocated temporary stack slots. */
-# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-# endif
-# else
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# ifndef YYSTACK_ALLOC_MAXIMUM
-# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
- && ! ((defined YYMALLOC || defined malloc) \
- && (defined YYFREE || defined free)))
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
-# endif
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifndef YYFREE
-# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
- && (! defined __cplusplus \
- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member. */
-union yyalloc
-{
- yytype_int16 yyss;
- YYSTYPE yyvs;
- };
-
-/* The size of the maximum gap between one aligned stack and the next. */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
- N elements. */
-# define YYSTACK_BYTES(N) \
- ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (YYID (0))
-# endif
-# endif
-
-/* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
-# define YYSTACK_RELOCATE(Stack) \
- do \
- { \
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack, Stack, yysize); \
- Stack = &yyptr->Stack; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
- while (YYID (0))
-
-#endif
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 2
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 278
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 41
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 16
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 70
-/* YYNRULES -- Number of states. */
-#define YYNSTATES 132
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 282
-
-#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
-static const yytype_uint8 yytranslate[] =
-{
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 32, 2, 2, 2, 31, 2, 2,
- 39, 40, 29, 28, 2, 27, 36, 30, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 35, 2,
- 2, 2, 2, 34, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 37, 2, 38, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 33
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
-static const yytype_uint8 yyprhs[] =
-{
- 0, 0, 3, 4, 5, 13, 14, 16, 17, 19,
- 23, 27, 32, 36, 41, 48, 54, 55, 58, 61,
- 62, 67, 68, 70, 74, 75, 78, 82, 87, 93,
- 97, 103, 106, 110, 113, 117, 122, 124, 126, 128,
- 132, 137, 141, 144, 147, 151, 156, 158, 160, 162,
- 166, 170, 174, 178, 182, 186, 190, 194, 198, 202,
- 206, 210, 214, 220, 223, 227, 231, 233, 235, 238,
- 240
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yytype_int8 yyrhs[] =
-{
- 42, 0, -1, -1, -1, 42, 44, 45, 7, 45,
- 43, 46, -1, -1, 11, -1, -1, 6, -1, 17,
- 47, 50, -1, 24, 47, 50, -1, 51, 47, 48,
- 50, -1, 5, 47, 50, -1, 55, 5, 47, 50,
- -1, 55, 5, 8, 53, 47, 50, -1, 5, 55,
- 51, 47, 50, -1, -1, 9, 54, -1, 10, 54,
- -1, -1, 14, 49, 15, 49, -1, -1, 5, -1,
- 5, 25, 49, -1, -1, 16, 54, -1, 55, 36,
- 53, -1, 55, 36, 53, 36, -1, 55, 36, 53,
- 36, 54, -1, 53, 30, 55, -1, 53, 30, 55,
- 30, 55, -1, 4, 55, -1, 4, 55, 55, -1,
- 55, 4, -1, 55, 4, 55, -1, 55, 36, 4,
- 55, -1, 55, -1, 7, -1, 17, -1, 55, 36,
- 53, -1, 55, 36, 53, 36, -1, 53, 30, 55,
- -1, 55, 4, -1, 4, 55, -1, 5, 55, 55,
- -1, 55, 5, 8, 53, -1, 4, -1, 55, -1,
- 55, -1, 54, 25, 54, -1, 54, 26, 54, -1,
- 54, 18, 54, -1, 54, 19, 54, -1, 54, 20,
- 54, -1, 54, 21, 54, -1, 54, 22, 54, -1,
- 54, 23, 54, -1, 54, 28, 54, -1, 54, 27,
- 54, -1, 54, 29, 54, -1, 54, 30, 54, -1,
- 54, 31, 54, -1, 54, 34, 54, 35, 54, -1,
- 32, 54, -1, 37, 52, 38, -1, 39, 54, 40,
- -1, 56, -1, 3, -1, 27, 3, -1, 12, -1,
- 13, 55, -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const yytype_uint8 yyrline[] =
-{
- 0, 130, 130, 131, 131, 137, 138, 141, 142, 145,
- 146, 147, 148, 149, 150, 151, 154, 155, 156, 159,
- 160, 163, 164, 165, 168, 169, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 186, 187, 188,
- 190, 192, 194, 196, 198, 200, 206, 206, 208, 209,
- 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
- 220, 221, 222, 223, 224, 227, 228, 231, 232, 233,
- 234
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-static const char *const yytname[] =
-{
- "$end", "error", "$undefined", "NUMBER", "MONTH", "WDAY", "COLOR",
- "STRING", "IN", "PLUS", "MINUS", "SMALL", "CYEAR", "LEAPYEAR", "SHIFT",
- "IF", "LENGTH", "EASTER", "EQ", "NE", "LE", "GE", "LT", "GT", "PASCHA",
- "OR", "AND", "'-'", "'+'", "'*'", "'/'", "'%'", "'!'", "UMINUS", "'?'",
- "':'", "'.'", "'['", "']'", "'('", "')'", "$accept", "list", "@1",
- "small", "color", "entry", "offset", "conditionaloffset",
- "wdaycondition", "length", "date", "reldate", "month", "expr", "pexpr",
- "number", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
-static const yytype_uint16 yytoknum[] =
-{
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 45, 43, 42,
- 47, 37, 33, 282, 63, 58, 46, 91, 93, 40,
- 41
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const yytype_uint8 yyr1[] =
-{
- 0, 41, 42, 43, 42, 44, 44, 45, 45, 46,
- 46, 46, 46, 46, 46, 46, 47, 47, 47, 48,
- 48, 49, 49, 49, 50, 50, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 53, 53, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 55, 55, 56, 56, 56,
- 56
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const yytype_uint8 yyr2[] =
-{
- 0, 2, 0, 0, 7, 0, 1, 0, 1, 3,
- 3, 4, 3, 4, 6, 5, 0, 2, 2, 0,
- 4, 0, 1, 3, 0, 2, 3, 4, 5, 3,
- 5, 2, 3, 2, 3, 4, 1, 1, 1, 3,
- 4, 3, 2, 2, 3, 4, 1, 1, 1, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 5, 2, 3, 3, 1, 1, 2, 1,
- 2
-};
-
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
-static const yytype_uint8 yydefact[] =
-{
- 2, 5, 1, 6, 7, 8, 0, 7, 3, 0,
- 67, 46, 16, 69, 0, 16, 16, 0, 0, 4,
- 16, 0, 36, 66, 31, 0, 0, 24, 0, 70,
- 24, 24, 68, 0, 0, 0, 48, 19, 0, 33,
- 16, 0, 32, 17, 18, 0, 12, 16, 36, 9,
- 10, 63, 46, 0, 37, 38, 0, 0, 47, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 65, 21, 24, 29, 34, 0, 24,
- 46, 26, 47, 25, 24, 43, 0, 64, 0, 42,
- 0, 0, 51, 52, 53, 54, 55, 56, 49, 50,
- 58, 57, 59, 60, 61, 0, 22, 0, 11, 0,
- 46, 16, 13, 35, 27, 15, 44, 41, 0, 39,
- 0, 21, 21, 30, 24, 28, 45, 40, 62, 23,
- 20, 14
-};
-
-/* YYDEFGOTO[NTERM-NUM]. */
-static const yytype_int8 yydefgoto[] =
-{
- -1, 1, 9, 4, 6, 19, 27, 75, 107, 46,
- 20, 56, 21, 35, 36, 23
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-#define YYPACT_NINF -88
-static const yytype_int16 yypact[] =
-{
- -88, 10, -88, -88, -5, -88, -3, -5, -88, 103,
- -88, 122, 36, -88, 122, 13, 13, 11, 15, -88,
- 13, -14, 32, -88, 122, 15, 15, 4, 125, -88,
- 4, 4, -88, 15, 119, 169, -88, 12, 122, 122,
- 145, 144, -88, 210, 210, 15, -88, 13, 37, -88,
- -88, 19, 122, 122, -88, -88, 17, 1, 2, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, -88, 52, 4, 29, -88, 147, 4,
- 122, 28, -88, 210, 4, -88, 122, -88, 122, -88,
- 58, 147, 244, 244, 244, 244, 244, 244, 227, 244,
- 83, 83, 19, 19, 19, 192, 47, 61, -88, 122,
- -88, 13, -88, -88, 15, -88, -88, -88, 147, 42,
- 15, 52, 52, -88, 4, 210, -88, -88, -88, -88,
- -88, -88
-};
-
-/* YYPGOTO[NTERM-NUM]. */
-static const yytype_int8 yypgoto[] =
-{
- -88, -88, -88, -88, 73, -88, -7, -88, -87, -19,
- 53, -88, -17, 25, -9, -88
-};
-
-/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule which
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -48
-static const yytype_int16 yytable[] =
-{
- 22, 5, 24, 28, 7, 29, 89, 90, 30, 31,
- 2, 49, 50, 37, 32, 42, 38, 57, 10, 48,
- 45, 3, 25, 26, 81, 58, 74, 13, 14, 76,
- 77, 88, 82, 79, 129, 130, 39, 40, 91, 10,
- 84, 39, 17, 85, 86, 25, 26, 33, 13, 14,
- 43, 44, 34, 72, 18, 87, 108, 106, 51, 109,
- 112, 111, -47, 17, 114, 115, 118, -47, 41, 82,
- 83, 113, 121, 41, 119, 18, 122, 116, 127, 117,
- 8, 47, 82, 0, 92, 93, 94, 95, 96, 97,
- 98, 99, 100, 101, 102, 103, 104, 105, 0, 0,
- 123, 126, 0, 0, 124, 131, 10, 11, 12, 82,
- 0, 0, 69, 70, 71, 13, 14, 72, 0, 0,
- 15, 0, 10, 52, 53, 10, 54, 16, 10, 11,
- 17, 13, 14, 0, 13, 14, 55, 13, 14, 125,
- 0, 0, 18, 0, 0, 128, 17, 10, 80, 17,
- 10, 110, 17, 78, 25, 26, 13, 14, 18, 13,
- 14, 18, 0, 0, 18, 0, 0, 0, 0, 0,
- 0, 17, 0, 0, 17, 0, 0, 0, 0, 0,
- 0, 0, 0, 18, 0, 0, 18, 59, 60, 61,
- 62, 63, 64, 0, 65, 66, 67, 68, 69, 70,
- 71, 0, 0, 72, 0, 0, 0, 0, 0, 73,
- 59, 60, 61, 62, 63, 64, 0, 65, 66, 67,
- 68, 69, 70, 71, 0, 0, 72, 120, 59, 60,
- 61, 62, 63, 64, 0, 65, 66, 67, 68, 69,
- 70, 71, 0, 0, 72, 59, 60, 61, 62, 63,
- 64, 0, 0, 66, 67, 68, 69, 70, 71, 0,
- 0, 72, 59, 60, 61, 62, 63, 64, 0, 0,
- 0, 67, 68, 69, 70, 71, 0, 0, 72
-};
-
-static const yytype_int8 yycheck[] =
-{
- 9, 6, 11, 12, 7, 14, 4, 5, 15, 16,
- 0, 30, 31, 20, 3, 24, 30, 34, 3, 28,
- 16, 11, 9, 10, 41, 34, 14, 12, 13, 38,
- 39, 30, 41, 40, 121, 122, 4, 5, 36, 3,
- 47, 4, 27, 52, 53, 9, 10, 32, 12, 13,
- 25, 26, 37, 34, 39, 38, 75, 5, 33, 30,
- 79, 78, 30, 27, 36, 84, 8, 30, 36, 78,
- 45, 80, 25, 36, 91, 39, 15, 86, 36, 88,
- 7, 28, 91, -1, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, -1, -1,
- 109, 118, -1, -1, 111, 124, 3, 4, 5, 118,
- -1, -1, 29, 30, 31, 12, 13, 34, -1, -1,
- 17, -1, 3, 4, 5, 3, 7, 24, 3, 4,
- 27, 12, 13, -1, 12, 13, 17, 12, 13, 114,
- -1, -1, 39, -1, -1, 120, 27, 3, 4, 27,
- 3, 4, 27, 8, 9, 10, 12, 13, 39, 12,
- 13, 39, -1, -1, 39, -1, -1, -1, -1, -1,
- -1, 27, -1, -1, 27, -1, -1, -1, -1, -1,
- -1, -1, -1, 39, -1, -1, 39, 18, 19, 20,
- 21, 22, 23, -1, 25, 26, 27, 28, 29, 30,
- 31, -1, -1, 34, -1, -1, -1, -1, -1, 40,
- 18, 19, 20, 21, 22, 23, -1, 25, 26, 27,
- 28, 29, 30, 31, -1, -1, 34, 35, 18, 19,
- 20, 21, 22, 23, -1, 25, 26, 27, 28, 29,
- 30, 31, -1, -1, 34, 18, 19, 20, 21, 22,
- 23, -1, -1, 26, 27, 28, 29, 30, 31, -1,
- -1, 34, 18, 19, 20, 21, 22, 23, -1, -1,
- -1, 27, 28, 29, 30, 31, -1, -1, 34
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const yytype_uint8 yystos[] =
-{
- 0, 42, 0, 11, 44, 6, 45, 7, 45, 43,
- 3, 4, 5, 12, 13, 17, 24, 27, 39, 46,
- 51, 53, 55, 56, 55, 9, 10, 47, 55, 55,
- 47, 47, 3, 32, 37, 54, 55, 47, 30, 4,
- 5, 36, 55, 54, 54, 16, 50, 51, 55, 50,
- 50, 54, 4, 5, 7, 17, 52, 53, 55, 18,
- 19, 20, 21, 22, 23, 25, 26, 27, 28, 29,
- 30, 31, 34, 40, 14, 48, 55, 55, 8, 47,
- 4, 53, 55, 54, 47, 55, 55, 38, 30, 4,
- 5, 36, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 5, 49, 50, 30,
- 4, 53, 50, 55, 36, 50, 55, 55, 8, 53,
- 35, 25, 15, 55, 47, 54, 53, 36, 54, 49,
- 49, 50
-};
-
-#define yyerrok (yyerrstatus = 0)
-#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY (-2)
-#define YYEOF 0
-
-#define YYACCEPT goto yyacceptlab
-#define YYABORT goto yyabortlab
-#define YYERROR goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror. This remains here temporarily
- to ease the transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. */
-
-#define YYFAIL goto yyerrlab
-
-#define YYRECOVERING() (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value) \
-do \
- if (yychar == YYEMPTY && yylen == 1) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
- YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
- { \
- yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
-while (YYID (0))
-
-
-#define YYTERROR 1
-#define YYERRCODE 256
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
- If N is 0, then set CURRENT to the empty location which ends
- the previous symbol: RHS[0] (always defined). */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- do \
- if (YYID (N)) \
- { \
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
- } \
- else \
- { \
- (Current).first_line = (Current).last_line = \
- YYRHSLOC (Rhs, 0).last_line; \
- (Current).first_column = (Current).last_column = \
- YYRHSLOC (Rhs, 0).last_column; \
- } \
- while (YYID (0))
-#endif
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
-
-#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#endif
-
-
-/* YYLEX -- calling `yylex' with the right arguments. */
-
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
-#else
-# define YYLEX yylex ()
-#endif
-
-/* Enable debugging if requested. */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-# define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args) \
-do { \
- if (yydebug) \
- YYFPRINTF Args; \
-} while (YYID (0))
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yy_symbol_print (stderr, \
- Type, Value); \
- YYFPRINTF (stderr, "\n"); \
- } \
-} while (YYID (0))
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-#else
-static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE const * const yyvaluep;
-#endif
-{
- if (!yyvaluep)
- return;
-# ifdef YYPRINT
- if (yytype < YYNTOKENS)
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
- YYUSE (yyoutput);
-# endif
- switch (yytype)
- {
- default:
- break;
- }
-}
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-#else
-static void
-yy_symbol_print (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE const * const yyvaluep;
-#endif
-{
- if (yytype < YYNTOKENS)
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
- else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
- yy_symbol_value_print (yyoutput, yytype, yyvaluep);
- YYFPRINTF (yyoutput, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included). |
-`------------------------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
-#else
-static void
-yy_stack_print (bottom, top)
- yytype_int16 *bottom;
- yytype_int16 *top;
-#endif
-{
- YYFPRINTF (stderr, "Stack now");
- for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
- YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top) \
-do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
-} while (YYID (0))
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced. |
-`------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
-#else
-static void
-yy_reduce_print (yyvsp, yyrule)
- YYSTYPE *yyvsp;
- int yyrule;
-#endif
-{
- int yynrhs = yyr2[yyrule];
- int yyi;
- unsigned long int yylno = yyrline[yyrule];
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
- yyrule - 1, yylno);
- /* The symbols being reduced. */
- for (yyi = 0; yyi < yynrhs; yyi++)
- {
- fprintf (stderr, " $%d = ", yyi + 1);
- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
- &(yyvsp[(yyi + 1) - (yynrhs)])
- );
- fprintf (stderr, "\n");
- }
-}
-
-# define YY_REDUCE_PRINT(Rule) \
-do { \
- if (yydebug) \
- yy_reduce_print (yyvsp, Rule); \
-} while (YYID (0))
-
-/* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks. */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
- YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-# if defined __GLIBC__ && defined _STRING_H
-# define yystrlen strlen
-# else
-/* Return the length of YYSTR. */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static YYSIZE_T
-yystrlen (const char *yystr)
-#else
-static YYSIZE_T
-yystrlen (yystr)
- const char *yystr;
-#endif
-{
- YYSIZE_T yylen;
- for (yylen = 0; yystr[yylen]; yylen++)
- continue;
- return yylen;
-}
-# endif
-# endif
-
-# ifndef yystpcpy
-# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-# define yystpcpy stpcpy
-# else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-#else
-static char *
-yystpcpy (yydest, yysrc)
- char *yydest;
- const char *yysrc;
-#endif
-{
- char *yyd = yydest;
- const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
-}
-# endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
- quotes and backslashes, so that it's suitable for yyerror. The
- heuristic is that double-quoting is unnecessary unless the string
- contains an apostrophe, a comma, or backslash (other than
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
- null, do not copy; instead, return the length of what the result
- would have been. */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
- if (*yystr == '"')
- {
- YYSIZE_T yyn = 0;
- char const *yyp = yystr;
-
- for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- /* Fall through. */
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
- do_not_strip_quotes: ;
- }
-
- if (! yyres)
- return yystrlen (yystr);
-
- return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-/* Copy into YYRESULT an error message about the unexpected token
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
- including the terminating null byte. If YYRESULT is null, do not
- copy anything; just return the number of bytes that would be
- copied. As a special case, return 0 if an ordinary "syntax error"
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
- size calculation. */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
- int yyn = yypact[yystate];
-
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
- return 0;
- else
- {
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-# if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
-
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
-
- if (yysize_overflow)
- return YYSIZE_MAXIMUM;
-
- if (yyresult)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yyresult;
- int yyi = 0;
- while ((*yyp = *yyf) != '\0')
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- }
- return yysize;
- }
-}
-#endif /* YYERROR_VERBOSE */
-
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep)
- const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
-{
- YYUSE (yyvaluep);
-
- if (!yymsg)
- yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- switch (yytype)
- {
-
- default:
- break;
- }
-}
-
-
-/* Prevent warnings from -Wmissing-prototypes. */
-
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-
-
-/* The look-ahead symbol. */
-int yychar;
-
-/* The semantic value of the look-ahead symbol. */
-YYSTYPE yylval;
-
-/* Number of syntax errors so far. */
-int yynerrs;
-
-
-
-/*----------.
-| yyparse. |
-`----------*/
-
-#ifdef YYPARSE_PARAM
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void *YYPARSE_PARAM)
-#else
-int
-yyparse (YYPARSE_PARAM)
- void *YYPARSE_PARAM;
-#endif
-#else /* ! YYPARSE_PARAM */
-#if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void)
-#else
-int
-yyparse ()
-
-#endif
-#endif
-{
-
- int yystate;
- int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-#if YYERROR_VERBOSE
- /* Buffer for error messages, and its allocated size. */
- char yymsgbuf[128];
- char *yymsg = yymsgbuf;
- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
- `yyvs': related to semantic values,
- `yyls': related to locations.
-
- Refer to the stacks thru separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
-
- /* The state stack. */
- yytype_int16 yyssa[YYINITDEPTH];
- yytype_int16 *yyss = yyssa;
- yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- YYSTYPE *yyvsp;
-
-
-
-#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- YYSIZE_T yystacksize = YYINITDEPTH;
-
- /* The variables used to return semantic value and location from the
- action routines. */
- YYSTYPE yyval;
-
-
- /* The number of symbols on the RHS of the reduced rule.
- Keep to zero when no symbol should be popped. */
- int yylen = 0;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
- yystate = 0;
- yyerrstatus = 0;
- yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- so that they stay on the same level as the state stack.
- The wasted elements are never initialized. */
-
- yyssp = yyss;
- yyvsp = yyvs;
-
- goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate. |
-`------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
- have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
- yysetstate:
- *yyssp = yystate;
-
- if (yyss + yystacksize - 1 <= yyssp)
- {
- /* Get the current used size of the three stacks, in elements. */
- YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
- {
- /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
- yytype_int16 *yyss1 = yyss;
-
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
- yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
- &yystacksize);
-
- yyss = yyss1;
- yyvs = yyvs1;
- }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
- goto yyexhaustedlab;
-# else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
- yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
-# undef YYSTACK_RELOCATE
- if (yyss1 != yyssa)
- YYSTACK_FREE (yyss1);
- }
-# endif
-#endif /* no yyoverflow */
-
- yyssp = yyss + yysize - 1;
- yyvsp = yyvs + yysize - 1;
-
-
- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
- (unsigned long int) yystacksize));
-
- if (yyss + yystacksize - 1 <= yyssp)
- YYABORT;
- }
-
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
- goto yybackup;
-
-/*-----------.
-| yybackup. |
-`-----------*/
-yybackup:
-
- /* Do appropriate processing given the current state. Read a
- look-ahead token if we need one and don't already have one. */
-
- /* First try to decide what to do without reference to look-ahead token. */
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
- /* Not known => get a look-ahead token if don't already have one. */
-
- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
- yychar = YYLEX;
- }
-
- if (yychar <= YYEOF)
- {
- yychar = yytoken = YYEOF;
- YYDPRINTF ((stderr, "Now at end of input.\n"));
- }
- else
- {
- yytoken = YYTRANSLATE (yychar);
- YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
- detect an error, take that action. */
- yyn += yytoken;
- if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
- goto yydefault;
- yyn = yytable[yyn];
- if (yyn <= 0)
- {
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
- yyn = -yyn;
- goto yyreduce;
- }
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
- /* Shift the look-ahead token. */
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
- /* Discard the shifted token unless it is eof. */
- if (yychar != YYEOF)
- yychar = YYEMPTY;
-
- yystate = yyn;
- *++yyvsp = yylval;
-
- goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state. |
-`-----------------------------------------------------------*/
-yydefault:
- yyn = yydefact[yystate];
- if (yyn == 0)
- goto yyerrlab;
- goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction. |
-`-----------------------------*/
-yyreduce:
- /* yyn is the number of a rule to reduce with. */
- yylen = yyr2[yyn];
-
- /* If YYLEN is nonzero, implement the default value of the action:
- `$$ = $1'.
-
- Otherwise, the following line sets YYVAL to garbage.
- This behavior is undocumented and Bison
- users should not rely upon it. Assigning to YYVAL
- unconditionally makes the parser a bit smaller, and it avoids a
- GCC warning that YYVAL may be used uninitialized. */
- yyval = yyvsp[1-yylen];
-
-
- YY_REDUCE_PRINT (yyn);
- switch (yyn)
- {
- case 3:
-#line 131 "parseholiday.y"
- { yacc_stringcolor = (yyvsp[(3) - (5)].ival);
- yacc_string = (yyvsp[(4) - (5)].sval);
- yacc_daycolor = (yyvsp[(5) - (5)].ival); ;}
- break;
-
- case 4:
-#line 134 "parseholiday.y"
- { free(yacc_string); ;}
- break;
-
- case 5:
-#line 137 "parseholiday.y"
- { yacc_small = 0; ;}
- break;
-
- case 6:
-#line 138 "parseholiday.y"
- { yacc_small = 1; ;}
- break;
-
- case 7:
-#line 141 "parseholiday.y"
- { (yyval.ival) = 0; ;}
- break;
-
- case 8:
-#line 142 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
- break;
-
- case 9:
-#line 145 "parseholiday.y"
- { seteaster((yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].ival), 0); ;}
- break;
-
- case 10:
-#line 146 "parseholiday.y"
- { seteaster((yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].ival), 1); ;}
- break;
-
- case 11:
-#line 147 "parseholiday.y"
- { setdate( m, d, y, (yyvsp[(2) - (4)].ival), (yyvsp[(3) - (4)].ival), (yyvsp[(4) - (4)].ival));;}
- break;
-
- case 12:
-#line 148 "parseholiday.y"
- { setwday( 0, (yyvsp[(1) - (3)].ival), 0, (yyvsp[(2) - (3)].ival), (yyvsp[(3) - (3)].ival));;}
- break;
-
- case 13:
-#line 149 "parseholiday.y"
- { setwday((yyvsp[(1) - (4)].ival), (yyvsp[(2) - (4)].ival), 0, (yyvsp[(3) - (4)].ival), (yyvsp[(4) - (4)].ival));;}
- break;
-
- case 14:
-#line 150 "parseholiday.y"
- { setwday((yyvsp[(1) - (6)].ival), (yyvsp[(2) - (6)].ival), (yyvsp[(4) - (6)].ival), (yyvsp[(5) - (6)].ival), (yyvsp[(6) - (6)].ival));;}
- break;
-
- case 15:
-#line 151 "parseholiday.y"
- { setdoff((yyvsp[(1) - (5)].ival), (yyvsp[(2) - (5)].ival),m,d,y,(yyvsp[(4) - (5)].ival),(yyvsp[(5) - (5)].ival));;}
- break;
-
- case 16:
-#line 154 "parseholiday.y"
- { (yyval.ival) = 0; ;}
- break;
-
- case 17:
-#line 155 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(2) - (2)].ival); ;}
- break;
-
- case 18:
-#line 156 "parseholiday.y"
- { (yyval.ival) = -(yyvsp[(2) - (2)].ival); ;}
- break;
-
- case 19:
-#line 159 "parseholiday.y"
- { (yyval.ival) = 0; ;}
- break;
-
- case 20:
-#line 160 "parseholiday.y"
- { (yyval.ival) = ((yyvsp[(2) - (4)].ival)<<8) | (yyvsp[(4) - (4)].ival);printf("Shift to %i if %i\n", (yyvsp[(2) - (4)].ival), (yyvsp[(4) - (4)].ival)); ;}
- break;
-
- case 21:
-#line 163 "parseholiday.y"
- { (yyval.ival) = 0; ;}
- break;
-
- case 22:
-#line 164 "parseholiday.y"
- { (yyval.ival) = (1<<(yyvsp[(1) - (1)].ival)); ;}
- break;
-
- case 23:
-#line 165 "parseholiday.y"
- { (yyval.ival) = (1<<(yyvsp[(1) - (3)].ival)) | (yyvsp[(3) - (3)].ival); ;}
- break;
-
- case 24:
-#line 168 "parseholiday.y"
- { (yyval.ival) = 1; ;}
- break;
-
- case 25:
-#line 169 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(2) - (2)].ival); ;}
- break;
-
- case 26:
-#line 172 "parseholiday.y"
- { m = (yyvsp[(3) - (3)].ival); d = (yyvsp[(1) - (3)].ival); y = 0; ;}
- break;
-
- case 27:
-#line 173 "parseholiday.y"
- { m = (yyvsp[(3) - (4)].ival); d = (yyvsp[(1) - (4)].ival); y = 0; ;}
- break;
-
- case 28:
-#line 174 "parseholiday.y"
- { m = (yyvsp[(3) - (5)].ival); d = (yyvsp[(1) - (5)].ival); y = (yyvsp[(5) - (5)].ival); ;}
- break;
-
- case 29:
-#line 175 "parseholiday.y"
- { m = (yyvsp[(1) - (3)].ival); d = (yyvsp[(3) - (3)].ival); y = 0; ;}
- break;
-
- case 30:
-#line 176 "parseholiday.y"
- { m = (yyvsp[(1) - (5)].ival); d = (yyvsp[(3) - (5)].ival); y = (yyvsp[(5) - (5)].ival); ;}
- break;
-
- case 31:
-#line 177 "parseholiday.y"
- { m = (yyvsp[(1) - (2)].ival); d = (yyvsp[(2) - (2)].ival); y = 0; ;}
- break;
-
- case 32:
-#line 178 "parseholiday.y"
- { m = (yyvsp[(1) - (3)].ival); d = (yyvsp[(2) - (3)].ival); y = (yyvsp[(3) - (3)].ival); ;}
- break;
-
- case 33:
-#line 179 "parseholiday.y"
- { m = (yyvsp[(2) - (2)].ival); d = (yyvsp[(1) - (2)].ival); y = 0; ;}
- break;
-
- case 34:
-#line 180 "parseholiday.y"
- { m = (yyvsp[(2) - (3)].ival); d = (yyvsp[(1) - (3)].ival); y = (yyvsp[(3) - (3)].ival); ;}
- break;
-
- case 35:
-#line 181 "parseholiday.y"
- { m = (yyvsp[(3) - (4)].ival); d = (yyvsp[(1) - (4)].ival); y = (yyvsp[(4) - (4)].ival); ;}
- break;
-
- case 36:
-#line 182 "parseholiday.y"
- { monthday_from_day((yyvsp[(1) - (1)].ival),
- &m, &d, &y); ;}
- break;
-
- case 37:
-#line 186 "parseholiday.y"
- { (yyval.ival) = day_from_name((yyvsp[(1) - (1)].sval)); ;}
- break;
-
- case 38:
-#line 187 "parseholiday.y"
- { (yyval.ival) = day_from_easter(); ;}
- break;
-
- case 39:
-#line 188 "parseholiday.y"
- { (yyval.ival) = day_from_monthday
- ((yyvsp[(3) - (3)].ival), (yyvsp[(1) - (3)].ival)); ;}
- break;
-
- case 40:
-#line 190 "parseholiday.y"
- { (yyval.ival) = day_from_monthday
- ((yyvsp[(3) - (4)].ival), (yyvsp[(1) - (4)].ival)); ;}
- break;
-
- case 41:
-#line 192 "parseholiday.y"
- { (yyval.ival) = day_from_monthday
- ((yyvsp[(1) - (3)].ival), (yyvsp[(3) - (3)].ival)); ;}
- break;
-
- case 42:
-#line 194 "parseholiday.y"
- { (yyval.ival) = day_from_monthday
- ((yyvsp[(2) - (2)].ival), (yyvsp[(1) - (2)].ival)); ;}
- break;
-
- case 43:
-#line 196 "parseholiday.y"
- { (yyval.ival) = day_from_monthday
- ((yyvsp[(1) - (2)].ival), (yyvsp[(2) - (2)].ival)); ;}
- break;
-
- case 44:
-#line 198 "parseholiday.y"
- { (yyval.ival) = day_from_wday((yyvsp[(3) - (3)].ival), (yyvsp[(1) - (3)].ival),
- (yyvsp[(2) - (3)].ival) == -1 ? -1 : 0); ;}
- break;
-
- case 45:
-#line 200 "parseholiday.y"
- { int day=day_from_monthday((yyvsp[(4) - (4)].ival),1);
- (yyval.ival) = (yyvsp[(1) - (4)].ival) == 999
- ? day_from_wday(day+1,(yyvsp[(2) - (4)].ival),-1)
- : day_from_wday(day,(yyvsp[(2) - (4)].ival),(yyvsp[(1) - (4)].ival)-1);;}
- break;
-
- case 48:
-#line 208 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
- break;
-
- case 49:
-#line 209 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (3)].ival) || (yyvsp[(3) - (3)].ival); ;}
- break;
-
- case 50:
-#line 210 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (3)].ival) && (yyvsp[(3) - (3)].ival); ;}
- break;
-
- case 51:
-#line 211 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (3)].ival) == (yyvsp[(3) - (3)].ival); ;}
- break;
-
- case 52:
-#line 212 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (3)].ival) != (yyvsp[(3) - (3)].ival); ;}
- break;
-
- case 53:
-#line 213 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (3)].ival) <= (yyvsp[(3) - (3)].ival); ;}
- break;
-
- case 54:
-#line 214 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (3)].ival) >= (yyvsp[(3) - (3)].ival); ;}
- break;
-
- case 55:
-#line 215 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (3)].ival) < (yyvsp[(3) - (3)].ival); ;}
- break;
-
- case 56:
-#line 216 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (3)].ival) > (yyvsp[(3) - (3)].ival); ;}
- break;
-
- case 57:
-#line 217 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (3)].ival) + (yyvsp[(3) - (3)].ival); ;}
- break;
-
- case 58:
-#line 218 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (3)].ival) - (yyvsp[(3) - (3)].ival); ;}
- break;
-
- case 59:
-#line 219 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (3)].ival) * (yyvsp[(3) - (3)].ival); ;}
- break;
-
- case 60:
-#line 220 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(3) - (3)].ival) ? (yyvsp[(1) - (3)].ival) / (yyvsp[(3) - (3)].ival) : 0; ;}
- break;
-
- case 61:
-#line 221 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(3) - (3)].ival) ? (yyvsp[(1) - (3)].ival) % (yyvsp[(3) - (3)].ival) : 0; ;}
- break;
-
- case 62:
-#line 222 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (5)].ival) ? (yyvsp[(3) - (5)].ival) : (yyvsp[(5) - (5)].ival); ;}
- break;
-
- case 63:
-#line 223 "parseholiday.y"
- { (yyval.ival) = !(yyvsp[(2) - (2)].ival); ;}
- break;
-
- case 64:
-#line 224 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(2) - (3)].ival); ;}
- break;
-
- case 65:
-#line 227 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(2) - (3)].ival); ;}
- break;
-
- case 66:
-#line 228 "parseholiday.y"
- { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;}
- break;
-
- case 68:
-#line 232 "parseholiday.y"
- { (yyval.ival) = -(yyvsp[(2) - (2)].ival); ;}
- break;
-
- case 69:
-#line 233 "parseholiday.y"
- { (yyval.ival) = parse_year; ;}
- break;
-
- case 70:
-#line 234 "parseholiday.y"
- { (yyval.ival) = !(((yyvsp[(2) - (2)].ival)) & 3); ;}
- break;
-
-
-/* Line 1267 of yacc.c. */
-#line 1959 "parseholiday.c"
- default: break;
- }
- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
- YYPOPSTACK (yylen);
- yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-
-
- /* Now `shift' the result of the reduction. Determine what state
- that goes to, based on the state we popped back to and the rule
- number reduced by. */
-
- yyn = yyr1[yyn];
-
- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
- yystate = yytable[yystate];
- else
- yystate = yydefgoto[yyn - YYNTOKENS];
-
- goto yynewstate;
-
-
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
-yyerrlab:
- /* If not already recovering from an error, report this error. */
- if (!yyerrstatus)
- {
- ++yynerrs;
-#if ! YYERROR_VERBOSE
- yyerror (YY_("syntax error"));
-#else
- {
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
- {
- YYSIZE_T yyalloc = 2 * yysize;
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
- if (yymsg)
- yymsg_alloc = yyalloc;
- else
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- }
- }
-
- if (0 < yysize && yysize <= yymsg_alloc)
- {
- (void) yysyntax_error (yymsg, yystate, yychar);
- yyerror (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- if (yysize != 0)
- goto yyexhaustedlab;
- }
- }
-#endif
- }
-
-
-
- if (yyerrstatus == 3)
- {
- /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
- {
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
- YYABORT;
- }
- else
- {
- yydestruct ("Error: discarding",
- yytoken, &yylval);
- yychar = YYEMPTY;
- }
- }
-
- /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR. |
-`---------------------------------------------------*/
-yyerrorlab:
-
- /* Pacify compilers like GCC when the user code never invokes
- YYERROR and the label yyerrorlab therefore never appears in user
- code. */
- if (/*CONSTCOND*/ 0)
- goto yyerrorlab;
-
- /* Do not reclaim the symbols of the rule which action triggered
- this YYERROR. */
- YYPOPSTACK (yylen);
- yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR. |
-`-------------------------------------------------------------*/
-yyerrlab1:
- yyerrstatus = 3; /* Each real token shifted decrements this. */
-
- for (;;)
- {
- yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
- {
- yyn += YYTERROR;
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
- {
- yyn = yytable[yyn];
- if (0 < yyn)
- break;
- }
- }
-
- /* Pop the current state because it cannot handle the error token. */
- if (yyssp == yyss)
- YYABORT;
-
-
- yydestruct ("Error: popping",
- yystos[yystate], yyvsp);
- YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- *++yyvsp = yylval;
-
-
- /* Shift the error token. */
- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
- yystate = yyn;
- goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here. |
-`-------------------------------------*/
-yyacceptlab:
- yyresult = 0;
- goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here. |
-`-----------------------------------*/
-yyabortlab:
- yyresult = 1;
- goto yyreturn;
-
-#ifndef yyoverflow
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
-yyexhaustedlab:
- yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
-#endif
-
-yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
- /* Do not reclaim the symbols of the rule which action triggered
- this YYABORT or YYACCEPT. */
- YYPOPSTACK (yylen);
- YY_STACK_PRINT (yyss, yyssp);
- while (yyssp != yyss)
- {
- yydestruct ("Cleanup: popping",
- yystos[*yyssp], yyvsp);
- YYPOPSTACK (1);
- }
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
-#endif
- /* Make sure YYID is used. */
- return YYID (yyresult);
-}
-
-
-#line 236 "parseholiday.y"
-
-
-/*** Private Yacc callbacks and helper functions ***/
-static void kcalerror(const char *msg)
-{
- fprintf(stderr, "%s: %s in line %d of %s\n", progname,
- msg, kcallineno+1, filename);
- if (!*errormsg)
- snprintf(errormsg,sizeof(errormsg),
- "Problem with holiday file %s:\n%.80s in line %d",
- filename, msg, kcallineno+1);
-}
-
-static time_t date_to_time(int day, int month, int year,
- int *wkday, int *julian, int *weeknum)
-{
- struct tm tm;
- time_t ttime;
-
- tm.tm_sec = 0;
- tm.tm_min = 0;
- tm.tm_hour = 0;
- tm.tm_mday = day;
- tm.tm_mon = month;
- tm.tm_year = year;
- ttime = tm_to_time(&tm);
- if (wkday)
- *wkday = tm.tm_wday;
- if (julian)
- *julian = tm.tm_yday;
- if (weeknum)
- *weeknum = 0
- ? tm.tm_yday / 7
- : tm.tm_yday ? ((tm.tm_yday - 1) /7) + 1 : 0;
- return(ttime == -1 || day != tm.tm_mday ? 0 : ttime);
-}
-
-static time_t tm_to_time(struct tm *tm)
-{
- time_t t; /* return value */
-
- t = monthbegin[tm->tm_mon] /* full months */
- + tm->tm_mday-1 /* full days */
- + (!(tm->tm_year & 3) && tm->tm_mon > 1); /* leap day this year*/
- tm->tm_yday = t;
- t += 365 * (tm->tm_year - 70) /* full years */
- + (tm->tm_year - 69)/4; /* past leap days */
- tm->tm_wday = (t + 4) % 7;
-
- t = t*86400 + tm->tm_hour*3600 + tm->tm_min*60 + tm->tm_sec;
- if (tm->tm_mday > monthlen[tm->tm_mon] +
- (!(tm->tm_year & 3) && tm->tm_mon == 1))
- return((time_t)-1);
- return(t);
-}
-
-/*
- * set holiday by weekday (monday..sunday). The expression is
- * "every <num>-th <wday> of <month> plus <off> days". num and month
- * can be ANY or LAST.
- */
-
-static void setwday(int num, int wday, int month, int off, int length)
-{
- int min_month = 0, max_month = 11;
- int min_num = 0, max_num = 4;
- int mn, n, dy, l, mlen, wday1;
- int ddup = 0;
-
- if (month != ANY)
- min_month = max_month = month-1;
- if (month == LAST)
- min_month = max_month = 11;
- if (num != ANY)
- min_num = max_num = num-1;
-
- holiday_name = yacc_string;
- for (mn=min_month; mn <= max_month; mn++) {
- (void)date_to_time(1, mn, parse_year, &wday1, 0, 0);
- dy = (wday-1 - (wday1-1) +7) % 7 + 1;
- mlen = monthlen[mn] + (mn==1 && ISLEAPYEAR(parse_year));
- if (num == LAST)
- for (l=0; l < length; l++)
- setliteraldate(mn, dy+28<=mlen ? dy+28 : dy+21,
- off+l, &ddup);
- else
- for (dy+=min_num*7, n=min_num; n <= max_num; n++, dy+=7)
- if (dy >= 1 && dy <= mlen)
- for (l=0; l < length; l++)
- setliteraldate(mn,dy,off+l,&ddup);
- }
-}
-
-/*
- * set holiday by weekday (monday..sunday) date offset. The expression is
- * "every <wday> before/after <date> plus <off> days".
- * (This routine contributed by Peter Littlefield <plittle@sofkin.ca>)
- */
-
-static void setdoff(int wday, int rel, int month, int day,
- int year, int off, int length)
-{
- int min_month = 0, max_month = 11;
- int min_day = 1, max_day = 31;
- int mn, dy, nd, l, wday1;
- int ddup = 0;
-
- if (year != ANY) {
- year %= 100;
- if (year < 70) year += 100;
- if (year != parse_year)
- return;
- }
- if (month != ANY)
- min_month = max_month = month-1;
- if (month == LAST)
- min_month = max_month = 11;
- if (day != ANY)
- min_day = max_day = day;
-
- holiday_name = yacc_string;
- for (mn=min_month; mn <= max_month; mn++)
- if (day == LAST) {
- (void)date_to_time(monthlen[mn], mn, parse_year,
- &wday1, 0, 0);
- nd = (((wday - wday1 + 7) % 7) -
- ((rel == BEFORE) ? 7 : 0)) % 7;
- for (l=0; l < length; l++)
- setliteraldate(mn,monthlen[mn]+nd, off+l, &ddup);
- } else
- for (dy=min_day; dy <= max_day; dy++) {
- (void)date_to_time(dy, mn, parse_year,
- &wday1, 0, 0);
- nd = (((wday - wday1 + 7) % 7) -
- ((rel == BEFORE) ? 7 : 0)) % 7;
- for (l=0; l < length; l++)
- setliteraldate(mn, dy+nd, off+l, &ddup);
- }
-}
-
-static int conditionalOffset( int day, int month, int year, int cond )
-{
- int off = 0;
- int wday = 0;
- (void)date_to_time( day, month, year, &wday, 0, 0);
- if ( wday == 0 ) { wday = 7; } /* sunday is 7, not 0 */
- if ( cond & (1<<wday) ) {
- /* condition matches -> higher 8 bits contain the possible days to shift to */
- int to = (cond >> 8);
- while ( !(to & (1<<((wday+off)%7))) && (off < 8) ) {
- ++off;
- }
- }
- if ( off >= 8 ) return 0;
- else return off;
-}
-
-/*
- * set holiday by date. Ignore holidays in the wrong year. The code is
- * complicated by expressions such as "any/last/any" (every last day of
- * the month).
- */
-
-static void setdate(int month, int day, int year, int off, int conditionaloff, int length)
-{
- int min_month = 0, max_month = 11;
- int min_day = 1, max_day = 31;
- int mn, dy, l;
- int ddup = 0;
-
- if (year != ANY) {
- year %= 100;
- if (year < 70) year += 100;
- if (year != parse_year)
- return;
- }
- if (month != ANY)
- min_month = max_month = month-1;
- if (month == LAST)
- min_month = max_month = 11;
- if (day != ANY)
- min_day = max_day = day;
-
- holiday_name = yacc_string;
- /** TODO: Include the conditionaloff variable. */
- /** The encoding of the conditional offset is:
- 8 lower bits: conditions to shift (bit-register, bit 1=mon, ..., bit 7=sun)
- 8 higher bits: weekday to shift to (bit-register, bit 1=mon, ..., bit 7=sun)
- */
- for (mn=min_month; mn <= max_month; mn++) {
- if (day == LAST) {
- int newoff = off + conditionalOffset( monthlen[mn], mn, parse_year, conditionaloff );
- for (l=0; l < length; l++)
- setliteraldate(mn, monthlen[mn], newoff+l, &ddup);
- } else {
- for (dy=min_day; dy <= max_day; dy++) {
- int newoff = off + conditionalOffset( dy, mn, parse_year, conditionaloff );
- for (l=0; l < length; l++)
- setliteraldate(mn, dy, newoff+l, &ddup);
- }
- }
- }
-}
-
-
-/*
- * After the two routines above have removed ambiguities (ANY) and resolved
- * weekday specifications, this routine registers the holiday in the holiday
- * array. There are two of these, for full-line holidays (they take away one
- * appointment line in the month calendar daybox) and "small" holidays, which
- * appear next to the day number. If the day is already some other holiday,
- * add a new item to the singly-linked list and insert the holiday there.
- * <ddup> is information stored for parse_holidays(), it
- * will free() the holiday name only if its dup field is 0 (because many
- * string fields can point to the same string, which was allocated only once
- * by the lexer, and should therefore only be freed once).
- */
-
-static void setliteraldate(int month, int day, int off, int *ddup)
-{
- int julian = JULIAN(month, day) + off;
- /* struct holiday *hp = yacc_small ? &sm_holiday[julian]
- : &holiday[julian]; */
- struct holiday *hp = 0;
-
- if (julian >= 0 && julian <= 365 ) {
- hp = &holidays[julian];
- if ( hp->string ) {
- while (hp->next) { hp = hp->next; }
- hp->next = malloc( sizeof(struct holiday)*2 );
- hp = hp->next;
- hp->next = 0;
- }
- if (!*ddup)
- holiday_name = strdup(holiday_name);
- hp->string = holiday_name;
- hp->color = (yacc_stringcolor == 0) ? yacc_daycolor : yacc_stringcolor;
- hp->dup = (*ddup)++;
-
- }
-}
-
-
-/*
- * set a holiday relative to Easter
- */
-
-static void seteaster(int off, int length, int pascha /*0=Easter, 1=Pascha*/)
-{
- int ddup = 0; /* flag for later free() */
- int julian = (pascha ? pascha_julian : easter_julian) + off;
- /* struct holiday *hp = yacc_small ? &sm_holiday[julian]
- : &holidays[julian];*/
- struct holiday *hp = 0;
-
- holiday_name = yacc_string;
- while (length-- > 0) {
- if (julian >= 0 && julian <= 365 ) {
- hp = &holidays[julian];
- if ( hp->string ) {
- while (hp->next) { hp = hp->next; }
- hp->next = malloc( sizeof(struct holiday)*2 );
- hp = hp->next;
- hp->next = 0;
- }
- if (!ddup)
- holiday_name = strdup(holiday_name);
- hp->string = holiday_name;
- hp->color = (yacc_stringcolor == 0) ? yacc_daycolor : yacc_stringcolor;
- hp->dup = ddup++;
- }
- julian++;
- }
-}
-
-
-/*
- * calculate Easter Sunday as a julian date. I got this from Armin Liebl
- * <liebla@informatik.tu-muenchen.de>, who got it from Knuth. I hope I got
- * all this right...
- */
-
-static int calc_easter(int year)
-{
- int golden, cent, grcor, clcor, extra, epact, easter;
-
- golden = (year/19)*(-19);
- golden += year+1;
- cent = year/100+1;
- grcor = (cent*3)/(-4)+12;
- clcor = ((cent-18)/(-25)+cent-16)/3;
- extra = (year*5)/4+grcor-10;
- epact = golden*11+20+clcor+grcor;
- epact += (epact/30)*(-30);
- if (epact<=0)
- epact += 30;
- if (epact==25) {
- if (golden>11)
- epact += 1;
- } else {
- if (epact==24)
- epact += 1;
- }
- easter = epact*(-1)+44;
- if (easter<21)
- easter += 30;
- extra += easter;
- extra += (extra/7)*(-7);
- extra *= -1;
- easter += extra+7;
- easter += 31+28+!(year&3)-1;
- return(easter);
-}
-
-
-/*
- * set a holiday relative to Pascha, which is the Christian Orthodox Easter.
- * Algorithm provided by Efthimios Mavrogeorgiadis <emav@enl.auth.gr>.
- * Changed 12.9.99 by Efthimios Mavrogeorgiadis <emav@enl.auth.gr>.
- */
-
-static int calc_pascha(int year) /* Pascha in which year? */
-{
- int a = year % 19;
- int b = (19 * a + 15) % 30;
- int c = (year + (year - (year % 4))/4 + b) % 7;
- int dd = b - c;
- int e = dd-3 - (2 - (year-(year%100))/100 + (year-(year%400))/400);
- int f = (e - (e % 31))/31;
- int day = e - 30 * f;
- return(31 + 28+!(year&3) + 31 + (f ? 30 : 0) + day-1);
-}
-
-
-/*
- * functions used for [] syntax: (Erwin Hugo Achermann <acherman@inf.ethz.ch>)
- *
- * day_from_name (str) gets day from symbolic name
- * day_from_easter () gets day as easter sunday
- * day_from_monthday (month, day) gets <day> from <month/day>
- * day_from_wday (day, wday, num) gets num-th day (wday) after <day> day
- * monthday_from_day (day, *m, *d, *y) gets month/day/cur_year from <day>
- */
-
-static int day_from_name(char *str)
-{
- int i;
- char *name;
-
- for (i=0; i < 366; i++) {
- name = holidays[i].string;
- if (name && !strcmp(str, name))
- return(i);
- }
- return(-1);
-}
-
-
-static int day_from_easter(void)
-{
- return(easter_julian);
-}
-
-
-static int day_from_monthday(int month, int day)
-{
- if (month == 13)
- return(365 + ISLEAPYEAR(parse_year));
- return(JULIAN(month - 1, day));
-}
-
-
-static void monthday_from_day(int day, int *mn, int *dy, int *yr)
-{
- int i, len;
-
- *yr = parse_year;
- *mn = 0;
- *dy = 0;
- if (day < 0)
- return;
- for (i=0; i < 12; i++) {
- len = monthlen[i] + (i == 1 && ISLEAPYEAR(parse_year));
- if (day < len) {
- *mn = i + 1;
- *dy = day + 1;
- break;
- }
- day -= len;
- }
-}
-
-
-static int day_from_wday(int day, int wday, int num)
-{
- int wkday, yday, weeknum;
-
- (void)date_to_time(1, 0, parse_year, &wkday, &yday, &weeknum);
- day += (wday - wkday - day + 1001) % 7;
- day += num * 7;
- return (day);
-}
-
-static void initialize()
-{
- struct holiday *hp;
- int dy;
- initialized = 1;
- for (hp=holidays, dy=0; dy < 366; dy++, hp++)
- {
- hp->color = 0;
- hp->dup = 0;
- hp->string = 0;
- hp->next = 0;
- }
-}
-
-/*** Public Functions ***/
-/*
- * parse the holiday text file, and set up the holiday arrays for a year.
- * If year is -1, re-parse the last year parsed (this is used when the
- * holiday file changes). If there is a CPP_PATH, check if the executable
- * really exists, and if so, pipe the holioday files through it.
- * Return an error message if an error occurred, 0 otherwise.
- */
-
-char *parse_holidays(const char *holidayfile, int year, short force)
-{
- struct holiday *hp;
- int dy;
- short piped = 0;
- if (!initialized)
- initialize();
-
- if (year == parse_year && !force)
- return(0);
- if (year < 0)
- year = parse_year;
- parse_year = year;
- easter_julian = calc_easter(year + 1900);
- pascha_julian = calc_pascha(year + 1900);
-
- for (hp=holidays, dy=0; dy < 366; dy++, hp++)
- {
- hp->color = 0;
- if (hp->string) {
- if (!hp->dup )
- free(hp->string);
- hp->string = 0;
- }
- {
- struct holiday *nx = hp->next;
- hp->next = 0;
- while (nx) {
- struct holiday *nxtmp;
- if ( nx->string && !nx->dup ) {
- free( nx->string );
- }
- nxtmp=nx;
- nx = nxtmp->next;
- free( nxtmp );
- }
- }
- }
- /* for (hp=sm_holiday, d=0; d < 366; d++, hp++)
- if (hp->string) {
- if (!hp->dup)
- free(hp->string);
- hp->string = 0;
- }*/
-
- filename = holidayfile;
- if (access(filename, R_OK)) return(0);
- kcalin = fopen(filename, "r");
- if (!kcalin) return(0);
- *errormsg = 0;
- kcallineno = 0;
- kcalparse();
- if (piped) pclose(kcalin);
- else fclose(kcalin);
- if (*errormsg) return(errormsg);
-
- return(0);
-}
-
diff --git a/libkholidays/parseholiday.h b/libkholidays/parseholiday.h
deleted file mode 100644
index 709aa567..00000000
--- a/libkholidays/parseholiday.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.3. */
-
-/* Skeleton interface for Bison's Yacc-like parsers in C
-
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
-
-/* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- NUMBER = 258,
- MONTH = 259,
- WDAY = 260,
- COLOR = 261,
- STRING = 262,
- IN = 263,
- PLUS = 264,
- MINUS = 265,
- SMALL = 266,
- CYEAR = 267,
- LEAPYEAR = 268,
- SHIFT = 269,
- IF = 270,
- LENGTH = 271,
- EASTER = 272,
- EQ = 273,
- NE = 274,
- LE = 275,
- GE = 276,
- LT = 277,
- GT = 278,
- PASCHA = 279,
- OR = 280,
- AND = 281,
- UMINUS = 282
- };
-#endif
-/* Tokens. */
-#define NUMBER 258
-#define MONTH 259
-#define WDAY 260
-#define COLOR 261
-#define STRING 262
-#define IN 263
-#define PLUS 264
-#define MINUS 265
-#define SMALL 266
-#define CYEAR 267
-#define LEAPYEAR 268
-#define SHIFT 269
-#define IF 270
-#define LENGTH 271
-#define EASTER 272
-#define EQ 273
-#define NE 274
-#define LE 275
-#define GE 276
-#define LT 277
-#define GT 278
-#define PASCHA 279
-#define OR 280
-#define AND 281
-#define UMINUS 282
-
-
-
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-#line 111 "parseholiday.y"
-{ int ival; char *sval; }
-/* Line 1529 of yacc.c. */
-#line 105 "parseholiday.h"
- YYSTYPE;
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-extern YYSTYPE kcallval;
-
diff --git a/libkholidays/parseholiday.y b/libkholidays/parseholiday.y
index 50e80cb9..380a6ebc 100644
--- a/libkholidays/parseholiday.y
+++ b/libkholidays/parseholiday.y
@@ -69,8 +69,8 @@ static void setdoff(int wday, int rel, int month, int day,
int year, int off, int length);
/*** Variables and structures ***/
static int m, d, y;
-int kcallineno; /* current line # being parsed */
-FILE *kcalin; /* file currently being processed */
+extern int kcallineno; /* current line # being parsed */
+extern FILE *kcalin; /* file currently being processed */
int yacc_small; /* small string or on its own line? */
int yacc_stringcolor; /* color of holiday name text, 1..8 */
char *yacc_string; /* holiday name text */
diff --git a/libkholidays/scanholiday.c b/libkholidays/scanholiday.c
deleted file mode 100644
index a0958a38..00000000
--- a/libkholidays/scanholiday.c
+++ /dev/null
@@ -1,2037 +0,0 @@
-#define yy_create_buffer kcal_create_buffer
-#define yy_delete_buffer kcal_delete_buffer
-#define yy_scan_buffer kcal_scan_buffer
-#define yy_scan_string kcal_scan_string
-#define yy_scan_bytes kcal_scan_bytes
-#define yy_flex_debug kcal_flex_debug
-#define yy_init_buffer kcal_init_buffer
-#define yy_flush_buffer kcal_flush_buffer
-#define yy_load_buffer_state kcal_load_buffer_state
-#define yy_switch_to_buffer kcal_switch_to_buffer
-#define yyin kcalin
-#define yyleng kcalleng
-#define yylex kcallex
-#define yyout kcalout
-#define yyrestart kcalrestart
-#define yytext kcaltext
-
-#line 19 "scanholiday.c"
-/* A lexical scanner generated by flex*/
-
-/* Scanner skeleton version:
- * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
- */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-
-#include <stdio.h>
-#include <unistd.h>
-
-
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
-#endif
-
-
-#ifdef __cplusplus
-
-#include <stdlib.h>
-
-/* Use prototypes in function declarations. */
-#define YY_USE_PROTOS
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else /* ! __cplusplus */
-
-#if __STDC__
-
-#define YY_USE_PROTOS
-#define YY_USE_CONST
-
-#endif /* __STDC__ */
-#endif /* ! __cplusplus */
-
-#ifdef __TURBOC__
- #pragma warn -rch
- #pragma warn -use
-#include <io.h>
-#include <stdlib.h>
-#define YY_USE_CONST
-#define YY_USE_PROTOS
-#endif
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-
-#ifdef YY_USE_PROTOS
-#define YY_PROTO(proto) proto
-#else
-#define YY_PROTO(proto) ()
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index. If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition. This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN yy_start = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state. The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START ((yy_start - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart( yyin )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#define YY_BUF_SIZE 16384
-
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-
-extern int yyleng;
-extern FILE *yyin, *yyout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-/* The funky do-while in the following #define is used to turn the definition
- * int a single C statement (which needs a semi-colon terminator). This
- * avoids problems with code like:
- *
- * if ( condition_holds )
- * yyless( 5 );
- * else
- * do_something_else();
- *
- * Prior to using the do-while the compiler would get upset at the
- * "else" because it interpreted the "if" statement as being all
- * done when it reached the ';' after the yyless() call.
- */
-
-/* Return all but the first 'n' matched characters back to the input stream. */
-
-#define yyless(n) \
- do \
- { \
- /* Undo effects of setting up yytext. */ \
- *yy_cp = yy_hold_char; \
- YY_RESTORE_YY_MORE_OFFSET \
- yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
- YY_DO_BEFORE_ACTION; /* set up yytext again */ \
- } \
- while ( 0 )
-
-#define unput(c) yyunput( c, yytext_ptr )
-
-/* Some routines like yy_flex_realloc() are emitted as static but are
- not called by all lexers. This generates warnings in some compilers,
- notably GCC. Arrange to suppress these. */
-#ifdef __GNUC__
-#define YY_MAY_BE_UNUSED __attribute__((unused))
-#else
-#define YY_MAY_BE_UNUSED
-#endif
-
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- */
-typedef unsigned int yy_size_t;
-
-
-struct yy_buffer_state
- {
- FILE *yy_input_file;
-
- char *yy_ch_buf; /* input buffer */
- char *yy_buf_pos; /* current position in input buffer */
-
- /* Size of input buffer in bytes, not including room for EOB
- * characters.
- */
- yy_size_t yy_buf_size;
-
- /* Number of characters read into yy_ch_buf, not including EOB
- * characters.
- */
- int yy_n_chars;
-
- /* Whether we "own" the buffer - i.e., we know we created it,
- * and can realloc() it to grow it, and should free() it to
- * delete it.
- */
- int yy_is_our_buffer;
-
- /* Whether this is an "interactive" input source; if so, and
- * if we're using stdio for input, then we want to use getc()
- * instead of fread(), to make sure we stop fetching input after
- * each newline.
- */
- int yy_is_interactive;
-
- /* Whether we're considered to be at the beginning of a line.
- * If so, '^' rules will be active on the next match, otherwise
- * not.
- */
- int yy_at_bol;
-
- /* Whether to try to fill the input buffer when we reach the
- * end of it.
- */
- int yy_fill_buffer;
-
- int yy_buffer_status;
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
- /* When an EOF's been seen but there's still some text to process
- * then we mark the buffer as YY_EOF_PENDING, to indicate that we
- * shouldn't try reading from the input source any more. We might
- * still have a bunch of tokens to match, though, because of
- * possible backing-up.
- *
- * When we actually see the EOF, we change the status to "new"
- * (via yyrestart()), so that the user can continue scanning by
- * just pointing yyin at a new input file.
- */
-#define YY_BUFFER_EOF_PENDING 2
- };
-
-static YY_BUFFER_STATE yy_current_buffer = 0;
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- */
-#define YY_CURRENT_BUFFER yy_current_buffer
-
-
-/* yy_hold_char holds the character lost when yytext is formed. */
-static char yy_hold_char;
-
-static int yy_n_chars; /* number of characters read into yy_ch_buf */
-
-
-int yyleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 1; /* whether we need to initialize */
-static int yy_start = 0; /* start state number */
-
-/* Flag which is used to allow yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin. A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void yyrestart YY_PROTO(( FILE *input_file ));
-
-void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
-void yy_load_buffer_state YY_PROTO(( void ));
-YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
-void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
-void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
-
-YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
-YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
-YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
-
-static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
-static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) YY_MAY_BE_UNUSED;
-static void yy_flex_free YY_PROTO(( void * ));
-
-#define yy_new_buffer yy_create_buffer
-
-#define yy_set_interactive(is_interactive) \
- { \
- if ( ! yy_current_buffer ) \
- yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
- yy_current_buffer->yy_is_interactive = is_interactive; \
- }
-
-#define yy_set_bol(at_bol) \
- { \
- if ( ! yy_current_buffer ) \
- yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
- yy_current_buffer->yy_at_bol = at_bol; \
- }
-
-#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
-
-
-#define yywrap() 1
-#define YY_SKIP_YYWRAP
-typedef unsigned char YY_CHAR;
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
-typedef int yy_state_type;
-extern char *yytext;
-#define yytext_ptr yytext
-
-static yy_state_type yy_get_previous_state YY_PROTO(( void ));
-static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
-static int yy_get_next_buffer YY_PROTO(( void ));
-static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
- */
-#define YY_DO_BEFORE_ACTION \
- yytext_ptr = yy_bp; \
- yyleng = (int) (yy_cp - yy_bp); \
- yy_hold_char = *yy_cp; \
- *yy_cp = '\0'; \
- yy_c_buf_p = yy_cp;
-
-#define YY_NUM_RULES 69
-#define YY_END_OF_BUFFER 70
-static yyconst short int yy_accept[280] =
- { 0,
- 0, 0, 70, 68, 3, 3, 4, 68, 68, 4,
- 68, 33, 33, 33, 33, 33, 33, 64, 68, 65,
- 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
- 4, 61, 0, 34, 0, 1, 66, 33, 0, 0,
- 0, 0, 0, 62, 60, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 41, 40, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 39, 0, 0, 0, 0, 67, 0,
-
- 2, 24, 25, 26, 27, 28, 0, 30, 0, 0,
- 0, 0, 0, 0, 36, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 9, 0, 0, 0, 0, 0, 0, 52,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
- 57, 37, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 11, 10, 29, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 42, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 45, 0, 32,
-
- 8, 0, 0, 51, 0, 0, 35, 0, 0, 0,
- 53, 0, 0, 0, 0, 7, 43, 0, 0, 0,
- 0, 0, 0, 0, 50, 44, 0, 0, 0, 0,
- 0, 58, 0, 12, 31, 0, 47, 0, 21, 0,
- 0, 49, 0, 17, 0, 0, 48, 0, 0, 23,
- 0, 0, 0, 0, 54, 0, 0, 5, 0, 56,
- 0, 14, 0, 0, 0, 18, 0, 59, 16, 6,
- 46, 15, 22, 0, 20, 0, 13, 19, 0
- } ;
-
-static yyconst int yy_ec[256] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 4, 5, 6, 1, 7, 8, 1, 7,
- 7, 7, 7, 1, 7, 7, 7, 9, 10, 11,
- 12, 13, 14, 9, 9, 9, 9, 15, 1, 16,
- 17, 18, 7, 1, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 1, 35, 36, 37, 38, 39, 40, 1, 41, 1,
- 7, 1, 7, 1, 1, 1, 19, 20, 21, 22,
-
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 1, 35, 36, 37, 38, 39, 40, 1,
- 41, 1, 1, 42, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1
- } ;
-
-static yyconst int yy_meta[43] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
- 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 2, 1, 1, 1, 1,
- 1, 1
- } ;
-
-static yyconst short int yy_base[284] =
- { 0,
- 0, 292, 306, 308, 308, 308, 288, 299, 300, 308,
- 294, 34, 265, 17, 15, 18, 263, 282, 281, 280,
- 28, 33, 255, 38, 39, 41, 260, 35, 46, 50,
- 52, 261, 49, 53, 270, 63, 54, 65, 269, 249,
- 287, 308, 284, 308, 285, 308, 308, 86, 250, 264,
- 263, 258, 257, 308, 308, 308, 245, 240, 245, 254,
- 254, 71, 258, 235, 254, 238, 250, 252, 69, 233,
- 243, 246, 308, 308, 236, 45, 231, 83, 78, 234,
- 233, 225, 226, 308, 226, 223, 238, 222, 84, 231,
- 238, 224, 79, 308, 232, 85, 227, 91, 308, 250,
-
- 308, 308, 308, 308, 308, 308, 229, 308, 224, 212,
- 216, 227, 224, 214, 209, 221, 206, 207, 206, 203,
- 203, 203, 215, 213, 197, 193, 210, 195, 197, 205,
- 206, 207, 308, 189, 204, 202, 191, 202, 186, 308,
- 183, 187, 182, 194, 187, 194, 180, 179, 177, 180,
- 182, 173, 174, 178, 172, 176, 169, 169, 174, 308,
- 308, 308, 171, 178, 159, 161, 172, 160, 159, 176,
- 162, 174, 308, 308, 308, 151, 154, 158, 163, 152,
- 168, 155, 165, 158, 308, 148, 150, 158, 143, 149,
- 159, 155, 140, 153, 151, 150, 149, 308, 138, 308,
-
- 308, 133, 146, 308, 148, 132, 308, 147, 139, 123,
- 308, 128, 139, 135, 123, 308, 308, 118, 138, 134,
- 137, 133, 132, 122, 308, 308, 111, 129, 131, 113,
- 116, 308, 107, 308, 308, 123, 308, 110, 308, 103,
- 124, 308, 123, 308, 118, 105, 308, 120, 118, 308,
- 118, 95, 113, 112, 308, 98, 91, 308, 96, 308,
- 95, 308, 88, 105, 79, 308, 97, 308, 308, 308,
- 308, 308, 308, 79, 308, 71, 308, 308, 308, 121,
- 123, 109, 125
- } ;
-
-static yyconst short int yy_def[284] =
- { 0,
- 279, 1, 279, 279, 279, 279, 279, 280, 281, 279,
- 279, 279, 282, 282, 282, 282, 16, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 283, 279, 280, 279, 281, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 283,
-
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
-
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 0, 279,
- 279, 279, 279
- } ;
-
-static yyconst short int yy_nxt[351] =
- { 0,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 10, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 4, 28, 29, 4, 30,
- 31, 32, 33, 34, 35, 36, 37, 4, 4, 38,
- 39, 40, 48, 48, 48, 48, 48, 48, 50, 51,
- 279, 57, 279, 279, 52, 61, 64, 66, 73, 58,
- 65, 59, 62, 68, 75, 60, 74, 69, 77, 83,
- 79, 85, 78, 70, 126, 71, 127, 67, 80, 93,
- 84, 88, 86, 76, 81, 89, 94, 96, 90, 112,
- 97, 95, 120, 91, 48, 48, 48, 48, 48, 48,
-
- 92, 129, 131, 121, 142, 147, 150, 151, 113, 153,
- 48, 278, 132, 277, 130, 276, 148, 143, 133, 275,
- 154, 43, 43, 45, 45, 100, 100, 274, 273, 272,
- 271, 270, 269, 268, 267, 266, 265, 264, 263, 262,
- 261, 260, 259, 258, 257, 256, 255, 254, 253, 252,
- 251, 250, 249, 103, 248, 247, 246, 245, 244, 243,
- 242, 241, 240, 239, 105, 238, 237, 236, 235, 234,
- 233, 232, 231, 230, 229, 228, 104, 227, 226, 225,
- 224, 223, 222, 221, 220, 219, 218, 217, 216, 215,
- 214, 213, 212, 211, 210, 209, 102, 106, 208, 207,
-
- 206, 205, 204, 203, 202, 201, 200, 199, 198, 197,
- 196, 195, 194, 193, 192, 191, 190, 189, 188, 187,
- 186, 185, 184, 183, 182, 181, 180, 179, 178, 177,
- 176, 175, 174, 173, 172, 171, 170, 169, 168, 167,
- 166, 165, 164, 163, 162, 161, 160, 159, 158, 157,
- 156, 155, 101, 152, 149, 146, 145, 144, 141, 140,
- 139, 138, 137, 136, 135, 134, 128, 125, 124, 123,
- 122, 119, 118, 117, 116, 115, 114, 111, 110, 109,
- 108, 107, 106, 105, 104, 103, 102, 46, 44, 101,
- 99, 98, 87, 82, 72, 63, 56, 55, 54, 53,
-
- 49, 47, 46, 44, 42, 279, 41, 3, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279
- } ;
-
-static yyconst short int yy_chk[351] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 12, 12, 12, 12, 12, 12, 14, 15,
- 15, 21, 14, 16, 16, 22, 24, 25, 28, 21,
- 24, 21, 22, 26, 29, 21, 28, 26, 30, 33,
- 31, 34, 30, 26, 76, 26, 76, 25, 31, 37,
- 33, 36, 34, 29, 31, 36, 37, 38, 36, 62,
- 38, 37, 69, 36, 48, 48, 48, 48, 48, 48,
-
- 36, 78, 79, 69, 89, 93, 96, 96, 62, 98,
- 282, 276, 79, 274, 78, 267, 93, 89, 79, 265,
- 98, 280, 280, 281, 281, 283, 283, 264, 263, 261,
- 259, 257, 256, 254, 253, 252, 251, 249, 248, 246,
- 245, 243, 241, 240, 238, 236, 233, 231, 230, 229,
- 228, 227, 224, 223, 222, 221, 220, 219, 218, 215,
- 214, 213, 212, 210, 209, 208, 206, 205, 203, 202,
- 199, 197, 196, 195, 194, 193, 192, 191, 190, 189,
- 188, 187, 186, 184, 183, 182, 181, 180, 179, 178,
- 177, 176, 172, 171, 170, 169, 168, 167, 166, 165,
-
- 164, 163, 159, 158, 157, 156, 155, 154, 153, 152,
- 151, 150, 149, 148, 147, 146, 145, 144, 143, 142,
- 141, 139, 138, 137, 136, 135, 134, 132, 131, 130,
- 129, 128, 127, 126, 125, 124, 123, 122, 121, 120,
- 119, 118, 117, 116, 115, 114, 113, 112, 111, 110,
- 109, 107, 100, 97, 95, 92, 91, 90, 88, 87,
- 86, 85, 83, 82, 81, 80, 77, 75, 72, 71,
- 70, 68, 67, 66, 65, 64, 63, 61, 60, 59,
- 58, 57, 53, 52, 51, 50, 49, 45, 43, 41,
- 40, 39, 35, 32, 27, 23, 20, 19, 18, 17,
-
- 13, 11, 9, 8, 7, 3, 2, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279, 279, 279
- } ;
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
-#line 1 "scanholiday.lex"
-#define INITIAL 0
-#line 2 "scanholiday.lex"
-#include <string.h>
-#include "parseholiday.h"
-#define YY_NO_UNPUT
-#define YY_MAIN 0
-#define YY_NEVER_INTERACTIVE 1
-#define YY_ALWAYS_INTERACTIVE 0
-#define YY_STACK_USED 0
-#line 568 "scanholiday.c"
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int yywrap YY_PROTO(( void ));
-#else
-extern int yywrap YY_PROTO(( void ));
-#endif
-#endif
-
-#ifndef YY_NO_UNPUT
-static void yyunput YY_PROTO(( int c, char *buf_ptr ));
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen YY_PROTO(( yyconst char * ));
-#endif
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-static int yyinput YY_PROTO(( void ));
-#else
-static int input YY_PROTO(( void ));
-#endif
-#endif
-
-#if YY_STACK_USED
-static int yy_start_stack_ptr = 0;
-static int yy_start_stack_depth = 0;
-static int *yy_start_stack = 0;
-#ifndef YY_NO_PUSH_STATE
-static void yy_push_state YY_PROTO(( int new_state ));
-#endif
-#ifndef YY_NO_POP_STATE
-static void yy_pop_state YY_PROTO(( void ));
-#endif
-#ifndef YY_NO_TOP_STATE
-static int yy_top_state YY_PROTO(( void ));
-#endif
-
-#else
-#define YY_NO_PUSH_STATE 1
-#define YY_NO_POP_STATE 1
-#define YY_NO_TOP_STATE 1
-#endif
-
-#ifdef YY_MALLOC_DECL
-YY_MALLOC_DECL
-#else
-#if __STDC__
-#ifndef __cplusplus
-#include <stdlib.h>
-#endif
-#else
-/* Just try to get by without declaring the routines. This will fail
- * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
- * or sizeof(void*) != sizeof(int).
- */
-#endif
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
-#endif
-
-/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
- if ( yy_current_buffer->yy_is_interactive ) \
- { \
- int c = '*', n; \
- for ( n = 0; n < max_size && \
- (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
- buf[n] = (char) c; \
- if ( c == '\n' ) \
- buf[n++] = (char) c; \
- if ( c == EOF && ferror( yyin ) ) \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- result = n; \
- } \
- else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
- && ferror( yyin ) ) \
- YY_FATAL_ERROR( "input in flex scanner failed" );
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-#endif
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL int yylex YY_PROTO(( void ))
-#endif
-
-/* Code executed at the beginning of each rule, after yytext and yyleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
- if ( yyleng > 0 ) \
- yy_current_buffer->yy_at_bol = \
- (yytext[yyleng - 1] == '\n'); \
- YY_USER_ACTION
-
-YY_DECL
- {
- yy_state_type yy_current_state;
- char *yy_cp = NULL, *yy_bp = NULL;
- int yy_act;
-
-#line 13 "scanholiday.lex"
-
-
-#line 725 "scanholiday.c"
-
- if ( yy_init )
- {
- yy_init = 0;
-
-#ifdef YY_USER_INIT
- YY_USER_INIT;
-#endif
-
- if ( ! yy_start )
- yy_start = 1; /* first start state */
-
- if ( ! yyin )
- yyin = stdin;
-
- if ( ! yyout )
- yyout = stdout;
-
- if ( ! yy_current_buffer )
- yy_current_buffer =
- yy_create_buffer( yyin, YY_BUF_SIZE );
-
- yy_load_buffer_state();
- }
-
- while ( 1 ) /* loops until end-of-file is reached */
- {
- yy_cp = yy_c_buf_p;
-
- /* Support of yytext. */
- *yy_cp = yy_hold_char;
-
- /* yy_bp points to the position in yy_ch_buf of the start of
- * the current run.
- */
- yy_bp = yy_cp;
-
- yy_current_state = yy_start;
- yy_current_state += YY_AT_BOL();
-yy_match:
- do
- {
- YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 280 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- ++yy_cp;
- }
- while ( yy_current_state != 279 );
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
-
-yy_find_action:
- yy_act = yy_accept[yy_current_state];
-
- YY_DO_BEFORE_ACTION;
-
-
-do_action: /* This label is used only to access EOF actions. */
-
-
- switch ( yy_act )
- { /* beginning of action switch */
- case 0: /* must back up */
- /* undo the effects of YY_DO_BEFORE_ACTION */
- *yy_cp = yy_hold_char;
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
- goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-#line 15 "scanholiday.lex"
-;
- YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 16 "scanholiday.lex"
-;
- YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 17 "scanholiday.lex"
-;
- YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 18 "scanholiday.lex"
-{ return(*kcaltext); }
- YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 20 "scanholiday.lex"
-{ kcallval.ival = 1; return(MONTH); }
- YY_BREAK
-case 6:
-YY_RULE_SETUP
-#line 21 "scanholiday.lex"
-{ kcallval.ival = 2; return(MONTH); }
- YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 22 "scanholiday.lex"
-{ kcallval.ival = 3; return(MONTH); }
- YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 23 "scanholiday.lex"
-{ kcallval.ival = 4; return(MONTH); }
- YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 24 "scanholiday.lex"
-{ kcallval.ival = 5; return(MONTH); }
- YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 25 "scanholiday.lex"
-{ kcallval.ival = 6; return(MONTH); }
- YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 26 "scanholiday.lex"
-{ kcallval.ival = 7; return(MONTH); }
- YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 27 "scanholiday.lex"
-{ kcallval.ival = 8; return(MONTH); }
- YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 28 "scanholiday.lex"
-{ kcallval.ival = 9; return(MONTH); }
- YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 29 "scanholiday.lex"
-{ kcallval.ival = 10; return(MONTH); }
- YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 30 "scanholiday.lex"
-{ kcallval.ival = 11; return(MONTH); }
- YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 31 "scanholiday.lex"
-{ kcallval.ival = 12; return(MONTH); }
- YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 33 "scanholiday.lex"
-{ kcallval.ival = 1; return(WDAY); }
- YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 34 "scanholiday.lex"
-{ kcallval.ival = 2; return(WDAY); }
- YY_BREAK
-case 19:
-YY_RULE_SETUP
-#line 35 "scanholiday.lex"
-{ kcallval.ival = 3; return(WDAY); }
- YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 36 "scanholiday.lex"
-{ kcallval.ival = 4; return(WDAY); }
- YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 37 "scanholiday.lex"
-{ kcallval.ival = 5; return(WDAY); }
- YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 38 "scanholiday.lex"
-{ kcallval.ival = 6; return(WDAY); }
- YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 39 "scanholiday.lex"
-{ kcallval.ival = 7; return(WDAY); }
- YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 41 "scanholiday.lex"
-{ kcallval.ival = 1; return(NUMBER); }
- YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 42 "scanholiday.lex"
-{ kcallval.ival = 2; return(NUMBER); }
- YY_BREAK
-case 26:
-YY_RULE_SETUP
-#line 43 "scanholiday.lex"
-{ kcallval.ival = 3; return(NUMBER); }
- YY_BREAK
-case 27:
-YY_RULE_SETUP
-#line 44 "scanholiday.lex"
-{ kcallval.ival = 4; return(NUMBER); }
- YY_BREAK
-case 28:
-YY_RULE_SETUP
-#line 45 "scanholiday.lex"
-{ kcallval.ival = 5; return(NUMBER); }
- YY_BREAK
-case 29:
-YY_RULE_SETUP
-#line 46 "scanholiday.lex"
-{ kcallval.ival = 999; return(NUMBER); }
- YY_BREAK
-case 30:
-YY_RULE_SETUP
-#line 47 "scanholiday.lex"
-{ kcallval.ival = 0; return(NUMBER); }
- YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 49 "scanholiday.lex"
-{ kcallval.ival = -1; return(NUMBER); }
- YY_BREAK
-case 32:
-YY_RULE_SETUP
-#line 50 "scanholiday.lex"
-{ kcallval.ival = -2; return(NUMBER); }
- YY_BREAK
-case 33:
-YY_RULE_SETUP
-#line 52 "scanholiday.lex"
-{ kcallval.ival = atoi(kcaltext); return(NUMBER); }
- YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 54 "scanholiday.lex"
-{ kcallval.sval = strdup(kcaltext+1);
- kcallval.sval[strlen(kcallval.sval)-1] = 0;
- return(STRING); }
- YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 58 "scanholiday.lex"
-;
- YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 59 "scanholiday.lex"
-;
- YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 60 "scanholiday.lex"
-;
- YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 61 "scanholiday.lex"
-;
- YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 62 "scanholiday.lex"
-;
- YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 63 "scanholiday.lex"
-{ return(IN); }
- YY_BREAK
-case 41:
-YY_RULE_SETUP
-#line 64 "scanholiday.lex"
-{ return(IF); }
- YY_BREAK
-case 42:
-YY_RULE_SETUP
-#line 65 "scanholiday.lex"
-{ return(PLUS); }
- YY_BREAK
-case 43:
-YY_RULE_SETUP
-#line 66 "scanholiday.lex"
-{ return(MINUS); }
- YY_BREAK
-case 44:
-YY_RULE_SETUP
-#line 67 "scanholiday.lex"
-{ return(SMALL); }
- YY_BREAK
-case 45:
-YY_RULE_SETUP
-#line 68 "scanholiday.lex"
-{ return(CYEAR); }
- YY_BREAK
-case 46:
-YY_RULE_SETUP
-#line 69 "scanholiday.lex"
-{ return(LEAPYEAR); }
- YY_BREAK
-case 47:
-YY_RULE_SETUP
-#line 70 "scanholiday.lex"
-{ return(EASTER); }
- YY_BREAK
-case 48:
-YY_RULE_SETUP
-#line 71 "scanholiday.lex"
-{ return(PASCHA); }
- YY_BREAK
-case 49:
-YY_RULE_SETUP
-#line 72 "scanholiday.lex"
-{ return(LENGTH); }
- YY_BREAK
-case 50:
-YY_RULE_SETUP
-#line 73 "scanholiday.lex"
-{ return(SHIFT); }
- YY_BREAK
-case 51:
-YY_RULE_SETUP
-#line 75 "scanholiday.lex"
-{ kcallval.ival = 1; return(COLOR); }
- YY_BREAK
-case 52:
-YY_RULE_SETUP
-#line 76 "scanholiday.lex"
-{ kcallval.ival = 2; return(COLOR); }
- YY_BREAK
-case 53:
-YY_RULE_SETUP
-#line 77 "scanholiday.lex"
-{ kcallval.ival = 3; return(COLOR); }
- YY_BREAK
-case 54:
-YY_RULE_SETUP
-#line 78 "scanholiday.lex"
-{ kcallval.ival = 4; return(COLOR); }
- YY_BREAK
-case 55:
-YY_RULE_SETUP
-#line 79 "scanholiday.lex"
-{ kcallval.ival = 5; return(COLOR); }
- YY_BREAK
-case 56:
-YY_RULE_SETUP
-#line 80 "scanholiday.lex"
-{ kcallval.ival = 6; return(COLOR); }
- YY_BREAK
-case 57:
-YY_RULE_SETUP
-#line 81 "scanholiday.lex"
-{ kcallval.ival = 7; return(COLOR); }
- YY_BREAK
-case 58:
-YY_RULE_SETUP
-#line 82 "scanholiday.lex"
-{ kcallval.ival = 8; return(COLOR); }
- YY_BREAK
-case 59:
-YY_RULE_SETUP
-#line 83 "scanholiday.lex"
-{ kcallval.ival = 9; return(COLOR); }
- YY_BREAK
-case 60:
-YY_RULE_SETUP
-#line 85 "scanholiday.lex"
-{ return(EQ); }
- YY_BREAK
-case 61:
-YY_RULE_SETUP
-#line 86 "scanholiday.lex"
-{ return(NE); }
- YY_BREAK
-case 62:
-YY_RULE_SETUP
-#line 87 "scanholiday.lex"
-{ return(LE); }
- YY_BREAK
-case 63:
-YY_RULE_SETUP
-#line 88 "scanholiday.lex"
-{ return(GE); }
- YY_BREAK
-case 64:
-YY_RULE_SETUP
-#line 89 "scanholiday.lex"
-{ return(LT); }
- YY_BREAK
-case 65:
-YY_RULE_SETUP
-#line 90 "scanholiday.lex"
-{ return(GT); }
- YY_BREAK
-case 66:
-YY_RULE_SETUP
-#line 91 "scanholiday.lex"
-{ return(AND);}
- YY_BREAK
-case 67:
-YY_RULE_SETUP
-#line 92 "scanholiday.lex"
-{ return(OR); }
- YY_BREAK
-case 68:
-YY_RULE_SETUP
-#line 94 "scanholiday.lex"
-{ printf("holiday: bad char: %s \n", kcaltext); }
- YY_BREAK
-case 69:
-YY_RULE_SETUP
-#line 96 "scanholiday.lex"
-ECHO;
- YY_BREAK
-#line 1152 "scanholiday.c"
-case YY_STATE_EOF(INITIAL):
- yyterminate();
-
- case YY_END_OF_BUFFER:
- {
- /* Amount of text matched not including the EOB char. */
- int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
-
- /* Undo the effects of YY_DO_BEFORE_ACTION. */
- *yy_cp = yy_hold_char;
- YY_RESTORE_YY_MORE_OFFSET
-
- if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
- {
- /* We're scanning a new file or input source. It's
- * possible that this happened because the user
- * just pointed yyin at a new source and called
- * yylex(). If so, then we have to assure
- * consistency between yy_current_buffer and our
- * globals. Here is the right place to do so, because
- * this is the first action (other than possibly a
- * back-up) that will match for the new input source.
- */
- yy_n_chars = yy_current_buffer->yy_n_chars;
- yy_current_buffer->yy_input_file = yyin;
- yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
- }
-
- /* Note that here we test for yy_c_buf_p "<=" to the position
- * of the first EOB in the buffer, since yy_c_buf_p will
- * already have been incremented past the NUL character
- * (since all states make transitions on EOB to the
- * end-of-buffer state). Contrast this with the test
- * in input().
- */
- if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
- { /* This was really a NUL. */
- yy_state_type yy_next_state;
-
- yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
-
- yy_current_state = yy_get_previous_state();
-
- /* Okay, we're now positioned to make the NUL
- * transition. We couldn't have
- * yy_get_previous_state() go ahead and do it
- * for us because it doesn't know how to deal
- * with the possibility of jamming (and we don't
- * want to build jamming into it because then it
- * will run more slowly).
- */
-
- yy_next_state = yy_try_NUL_trans( yy_current_state );
-
- yy_bp = yytext_ptr + YY_MORE_ADJ;
-
- if ( yy_next_state )
- {
- /* Consume the NUL. */
- yy_cp = ++yy_c_buf_p;
- yy_current_state = yy_next_state;
- goto yy_match;
- }
-
- else
- {
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
- goto yy_find_action;
- }
- }
-
- else switch ( yy_get_next_buffer() )
- {
- case EOB_ACT_END_OF_FILE:
- {
- yy_did_buffer_switch_on_eof = 0;
-
- if ( yywrap() )
- {
- /* Note: because we've taken care in
- * yy_get_next_buffer() to have set up
- * yytext, we can now set up
- * yy_c_buf_p so that if some total
- * hoser (like flex itself) wants to
- * call the scanner after we return the
- * YY_NULL, it'll still work - another
- * YY_NULL will get returned.
- */
- yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
-
- yy_act = YY_STATE_EOF(YY_START);
- goto do_action;
- }
-
- else
- {
- if ( ! yy_did_buffer_switch_on_eof )
- YY_NEW_FILE;
- }
- break;
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- yy_c_buf_p =
- yytext_ptr + yy_amount_of_matched_text;
-
- yy_current_state = yy_get_previous_state();
-
- yy_cp = yy_c_buf_p;
- yy_bp = yytext_ptr + YY_MORE_ADJ;
- goto yy_match;
-
- case EOB_ACT_LAST_MATCH:
- yy_c_buf_p =
- &yy_current_buffer->yy_ch_buf[yy_n_chars];
-
- yy_current_state = yy_get_previous_state();
-
- yy_cp = yy_c_buf_p;
- yy_bp = yytext_ptr + YY_MORE_ADJ;
- goto yy_find_action;
- }
- break;
- }
-
- default:
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--no action found" );
- } /* end of action switch */
- } /* end of scanning one token */
- } /* end of yylex */
-
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- * EOB_ACT_LAST_MATCH -
- * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- * EOB_ACT_END_OF_FILE - end of file
- */
-
-static int yy_get_next_buffer()
- {
- char *dest = yy_current_buffer->yy_ch_buf;
- char *source = yytext_ptr;
- int number_to_move, i;
- int ret_val;
-
- if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--end of buffer missed" );
-
- if ( yy_current_buffer->yy_fill_buffer == 0 )
- { /* Don't try to fill the buffer, so this is an EOF. */
- if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
- {
- /* We matched a single character, the EOB, so
- * treat this as a final EOF.
- */
- return EOB_ACT_END_OF_FILE;
- }
-
- else
- {
- /* We matched some text prior to the EOB, first
- * process it.
- */
- return EOB_ACT_LAST_MATCH;
- }
- }
-
- /* Try to read more data. */
-
- /* First move last chars to start of buffer. */
- number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
-
- for ( i = 0; i < number_to_move; ++i )
- *(dest++) = *(source++);
-
- if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
- /* don't do the read, it's not guaranteed to return an EOF,
- * just force an EOF
- */
- yy_current_buffer->yy_n_chars = yy_n_chars = 0;
-
- else
- {
- int num_to_read =
- yy_current_buffer->yy_buf_size - number_to_move - 1;
-
- while ( num_to_read <= 0 )
- { /* Not enough room in the buffer - grow it. */
-#ifdef YY_USES_REJECT
- YY_FATAL_ERROR(
-"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
-#else
-
- /* just a shorter name for the current buffer */
- YY_BUFFER_STATE b = yy_current_buffer;
-
- int yy_c_buf_p_offset =
- (int) (yy_c_buf_p - b->yy_ch_buf);
-
- if ( b->yy_is_our_buffer )
- {
- int new_size = b->yy_buf_size * 2;
-
- if ( new_size <= 0 )
- b->yy_buf_size += b->yy_buf_size / 8;
- else
- b->yy_buf_size *= 2;
-
- b->yy_ch_buf = (char *)
- /* Include room in for 2 EOB chars. */
- yy_flex_realloc( (void *) b->yy_ch_buf,
- b->yy_buf_size + 2 );
- }
- else
- /* Can't grow it, we don't own it. */
- b->yy_ch_buf = 0;
-
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR(
- "fatal error - scanner input buffer overflow" );
-
- yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
-
- num_to_read = yy_current_buffer->yy_buf_size -
- number_to_move - 1;
-#endif
- }
-
- if ( num_to_read > YY_READ_BUF_SIZE )
- num_to_read = YY_READ_BUF_SIZE;
-
- /* Read in more data. */
- YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
- yy_n_chars, num_to_read );
-
- yy_current_buffer->yy_n_chars = yy_n_chars;
- }
-
- if ( yy_n_chars == 0 )
- {
- if ( number_to_move == YY_MORE_ADJ )
- {
- ret_val = EOB_ACT_END_OF_FILE;
- yyrestart( yyin );
- }
-
- else
- {
- ret_val = EOB_ACT_LAST_MATCH;
- yy_current_buffer->yy_buffer_status =
- YY_BUFFER_EOF_PENDING;
- }
- }
-
- else
- ret_val = EOB_ACT_CONTINUE_SCAN;
-
- yy_n_chars += number_to_move;
- yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
- yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
-
- yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
-
- return ret_val;
- }
-
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-static yy_state_type yy_get_previous_state()
- {
- yy_state_type yy_current_state;
- char *yy_cp;
-
- yy_current_state = yy_start;
- yy_current_state += YY_AT_BOL();
-
- for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
- {
- YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 280 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- }
-
- return yy_current_state;
- }
-
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- * next_state = yy_try_NUL_trans( current_state );
- */
-
-#ifdef YY_USE_PROTOS
-static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
-#else
-static yy_state_type yy_try_NUL_trans( yy_current_state )
-yy_state_type yy_current_state;
-#endif
- {
- int yy_is_jam;
- char *yy_cp = yy_c_buf_p;
-
- YY_CHAR yy_c = 1;
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 280 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 279);
-
- return yy_is_jam ? 0 : yy_current_state;
- }
-
-
-#ifndef YY_NO_UNPUT
-#ifdef YY_USE_PROTOS
-static void yyunput( int c, char *yy_bp )
-#else
-static void yyunput( c, yy_bp )
-int c;
-char *yy_bp;
-#endif
- {
- char *yy_cp = yy_c_buf_p;
-
- /* undo effects of setting up yytext */
- *yy_cp = yy_hold_char;
-
- if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
- { /* need to shift things up to make room */
- /* +2 for EOB chars. */
- int number_to_move = yy_n_chars + 2;
- char *dest = &yy_current_buffer->yy_ch_buf[
- yy_current_buffer->yy_buf_size + 2];
- char *source =
- &yy_current_buffer->yy_ch_buf[number_to_move];
-
- while ( source > yy_current_buffer->yy_ch_buf )
- *--dest = *--source;
-
- yy_cp += (int) (dest - source);
- yy_bp += (int) (dest - source);
- yy_current_buffer->yy_n_chars =
- yy_n_chars = yy_current_buffer->yy_buf_size;
-
- if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
- YY_FATAL_ERROR( "flex scanner push-back overflow" );
- }
-
- *--yy_cp = (char) c;
-
-
- yytext_ptr = yy_bp;
- yy_hold_char = *yy_cp;
- yy_c_buf_p = yy_cp;
- }
-#endif /* ifndef YY_NO_UNPUT */
-
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-static int yyinput()
-#else
-static int input()
-#endif
- {
- int c;
-
- *yy_c_buf_p = yy_hold_char;
-
- if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
- {
- /* yy_c_buf_p now points to the character we want to return.
- * If this occurs *before* the EOB characters, then it's a
- * valid NUL; if not, then we've hit the end of the buffer.
- */
- if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
- /* This was really a NUL. */
- *yy_c_buf_p = '\0';
-
- else
- { /* need more input */
- int offset = yy_c_buf_p - yytext_ptr;
- ++yy_c_buf_p;
-
- switch ( yy_get_next_buffer() )
- {
- case EOB_ACT_LAST_MATCH:
- /* This happens because yy_g_n_b()
- * sees that we've accumulated a
- * token and flags that we need to
- * try matching the token before
- * proceeding. But for input(),
- * there's no matching to consider.
- * So convert the EOB_ACT_LAST_MATCH
- * to EOB_ACT_END_OF_FILE.
- */
-
- /* Reset buffer status. */
- yyrestart( yyin );
-
- /* fall through */
-
- case EOB_ACT_END_OF_FILE:
- {
- if ( yywrap() )
- return EOF;
-
- if ( ! yy_did_buffer_switch_on_eof )
- YY_NEW_FILE;
-#ifdef __cplusplus
- return yyinput();
-#else
- return input();
-#endif
- }
-
- case EOB_ACT_CONTINUE_SCAN:
- yy_c_buf_p = yytext_ptr + offset;
- break;
- }
- }
- }
-
- c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
- *yy_c_buf_p = '\0'; /* preserve yytext */
- yy_hold_char = *++yy_c_buf_p;
-
- yy_current_buffer->yy_at_bol = (c == '\n');
-
- return c;
- }
-#endif /* YY_NO_INPUT */
-
-#ifdef YY_USE_PROTOS
-void yyrestart( FILE *input_file )
-#else
-void yyrestart( input_file )
-FILE *input_file;
-#endif
- {
- if ( ! yy_current_buffer )
- yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
-
- yy_init_buffer( yy_current_buffer, input_file );
- yy_load_buffer_state();
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
-#else
-void yy_switch_to_buffer( new_buffer )
-YY_BUFFER_STATE new_buffer;
-#endif
- {
- if ( yy_current_buffer == new_buffer )
- return;
-
- if ( yy_current_buffer )
- {
- /* Flush out information for old buffer. */
- *yy_c_buf_p = yy_hold_char;
- yy_current_buffer->yy_buf_pos = yy_c_buf_p;
- yy_current_buffer->yy_n_chars = yy_n_chars;
- }
-
- yy_current_buffer = new_buffer;
- yy_load_buffer_state();
-
- /* We don't actually know whether we did this switch during
- * EOF (yywrap()) processing, but the only time this flag
- * is looked at is after yywrap() is called, so it's safe
- * to go ahead and always set it.
- */
- yy_did_buffer_switch_on_eof = 1;
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_load_buffer_state( void )
-#else
-void yy_load_buffer_state()
-#endif
- {
- yy_n_chars = yy_current_buffer->yy_n_chars;
- yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
- yyin = yy_current_buffer->yy_input_file;
- yy_hold_char = *yy_c_buf_p;
- }
-
-
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
-#else
-YY_BUFFER_STATE yy_create_buffer( file, size )
-FILE *file;
-int size;
-#endif
- {
- YY_BUFFER_STATE b;
-
- b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
- b->yy_buf_size = size;
-
- /* yy_ch_buf has to be 2 characters longer than the size given because
- * we need to put in 2 end-of-buffer characters.
- */
- b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
- b->yy_is_our_buffer = 1;
-
- yy_init_buffer( b, file );
-
- return b;
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_delete_buffer( YY_BUFFER_STATE b )
-#else
-void yy_delete_buffer( b )
-YY_BUFFER_STATE b;
-#endif
- {
- if ( ! b )
- return;
-
- if ( b == yy_current_buffer )
- yy_current_buffer = (YY_BUFFER_STATE) 0;
-
- if ( b->yy_is_our_buffer )
- yy_flex_free( (void *) b->yy_ch_buf );
-
- yy_flex_free( (void *) b );
- }
-
-
-
-#ifdef YY_USE_PROTOS
-void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
-#else
-void yy_init_buffer( b, file )
-YY_BUFFER_STATE b;
-FILE *file;
-#endif
-
-
- {
- yy_flush_buffer( b );
-
- b->yy_input_file = file;
- b->yy_fill_buffer = 1;
-
-#if YY_ALWAYS_INTERACTIVE
- b->yy_is_interactive = 1;
-#else
-#if YY_NEVER_INTERACTIVE
- b->yy_is_interactive = 0;
-#else
- b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-#endif
-#endif
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_flush_buffer( YY_BUFFER_STATE b )
-#else
-void yy_flush_buffer( b )
-YY_BUFFER_STATE b;
-#endif
-
- {
- if ( ! b )
- return;
-
- b->yy_n_chars = 0;
-
- /* We always need two end-of-buffer characters. The first causes
- * a transition to the end-of-buffer state. The second causes
- * a jam in that state.
- */
- b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
- b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
- b->yy_buf_pos = &b->yy_ch_buf[0];
-
- b->yy_at_bol = 1;
- b->yy_buffer_status = YY_BUFFER_NEW;
-
- if ( b == yy_current_buffer )
- yy_load_buffer_state();
- }
-
-
-#ifndef YY_NO_SCAN_BUFFER
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
-#else
-YY_BUFFER_STATE yy_scan_buffer( base, size )
-char *base;
-yy_size_t size;
-#endif
- {
- YY_BUFFER_STATE b;
-
- if ( size < 2 ||
- base[size-2] != YY_END_OF_BUFFER_CHAR ||
- base[size-1] != YY_END_OF_BUFFER_CHAR )
- /* They forgot to leave room for the EOB's. */
- return 0;
-
- b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
-
- b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
- b->yy_buf_pos = b->yy_ch_buf = base;
- b->yy_is_our_buffer = 0;
- b->yy_input_file = 0;
- b->yy_n_chars = b->yy_buf_size;
- b->yy_is_interactive = 0;
- b->yy_at_bol = 1;
- b->yy_fill_buffer = 0;
- b->yy_buffer_status = YY_BUFFER_NEW;
-
- yy_switch_to_buffer( b );
-
- return b;
- }
-#endif
-
-
-#ifndef YY_NO_SCAN_STRING
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
-#else
-YY_BUFFER_STATE yy_scan_string( yy_str )
-yyconst char *yy_str;
-#endif
- {
- int len;
- for ( len = 0; yy_str[len]; ++len )
- ;
-
- return yy_scan_bytes( yy_str, len );
- }
-#endif
-
-
-#ifndef YY_NO_SCAN_BYTES
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
-#else
-YY_BUFFER_STATE yy_scan_bytes( bytes, len )
-yyconst char *bytes;
-int len;
-#endif
- {
- YY_BUFFER_STATE b;
- char *buf;
- yy_size_t n;
- int i;
-
- /* Get memory for full buffer, including space for trailing EOB's. */
- n = len + 2;
- buf = (char *) yy_flex_alloc( n );
- if ( ! buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
-
- for ( i = 0; i < len; ++i )
- buf[i] = bytes[i];
-
- buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
-
- b = yy_scan_buffer( buf, n );
- if ( ! b )
- YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
-
- /* It's okay to grow etc. this buffer, and we should throw it
- * away when we're done.
- */
- b->yy_is_our_buffer = 1;
-
- return b;
- }
-#endif
-
-
-#ifndef YY_NO_PUSH_STATE
-#ifdef YY_USE_PROTOS
-static void yy_push_state( int new_state )
-#else
-static void yy_push_state( new_state )
-int new_state;
-#endif
- {
- if ( yy_start_stack_ptr >= yy_start_stack_depth )
- {
- yy_size_t new_size;
-
- yy_start_stack_depth += YY_START_STACK_INCR;
- new_size = yy_start_stack_depth * sizeof( int );
-
- if ( ! yy_start_stack )
- yy_start_stack = (int *) yy_flex_alloc( new_size );
-
- else
- yy_start_stack = (int *) yy_flex_realloc(
- (void *) yy_start_stack, new_size );
-
- if ( ! yy_start_stack )
- YY_FATAL_ERROR(
- "out of memory expanding start-condition stack" );
- }
-
- yy_start_stack[yy_start_stack_ptr++] = YY_START;
-
- BEGIN(new_state);
- }
-#endif
-
-
-#ifndef YY_NO_POP_STATE
-static void yy_pop_state()
- {
- if ( --yy_start_stack_ptr < 0 )
- YY_FATAL_ERROR( "start-condition stack underflow" );
-
- BEGIN(yy_start_stack[yy_start_stack_ptr]);
- }
-#endif
-
-
-#ifndef YY_NO_TOP_STATE
-static int yy_top_state()
- {
- return yy_start_stack[yy_start_stack_ptr - 1];
- }
-#endif
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-#ifdef YY_USE_PROTOS
-static void yy_fatal_error( yyconst char msg[] )
-#else
-static void yy_fatal_error( msg )
-char msg[];
-#endif
- {
- (void) fprintf( stderr, "%s\n", msg );
- exit( YY_EXIT_FAILURE );
- }
-
-
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
- do \
- { \
- /* Undo effects of setting up yytext. */ \
- yytext[yyleng] = yy_hold_char; \
- yy_c_buf_p = yytext + n; \
- yy_hold_char = *yy_c_buf_p; \
- *yy_c_buf_p = '\0'; \
- yyleng = n; \
- } \
- while ( 0 )
-
-
-/* Internal utility routines. */
-
-#ifndef yytext_ptr
-#ifdef YY_USE_PROTOS
-static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
-#else
-static void yy_flex_strncpy( s1, s2, n )
-char *s1;
-yyconst char *s2;
-int n;
-#endif
- {
- int i;
- for ( i = 0; i < n; ++i )
- s1[i] = s2[i];
- }
-#endif
-
-#ifdef YY_NEED_STRLEN
-#ifdef YY_USE_PROTOS
-static int yy_flex_strlen( yyconst char *s )
-#else
-static int yy_flex_strlen( s )
-yyconst char *s;
-#endif
- {
- int n;
- for ( n = 0; s[n]; ++n )
- ;
-
- return n;
- }
-#endif
-
-
-#ifdef YY_USE_PROTOS
-static void *yy_flex_alloc( yy_size_t size )
-#else
-static void *yy_flex_alloc( size )
-yy_size_t size;
-#endif
- {
- return (void *) malloc( size );
- }
-
-#ifdef YY_USE_PROTOS
-static void *yy_flex_realloc( void *ptr, yy_size_t size )
-#else
-static void *yy_flex_realloc( ptr, size )
-void *ptr;
-yy_size_t size;
-#endif
- {
- /* The cast to (char *) in the following accommodates both
- * implementations that use char* generic pointers, and those
- * that use void* generic pointers. It works with the latter
- * because both ANSI C and C++ allow castless assignment from
- * any pointer type to void*, and deal with argument conversions
- * as though doing an assignment.
- */
- return (void *) realloc( (char *) ptr, size );
- }
-
-#ifdef YY_USE_PROTOS
-static void yy_flex_free( void *ptr )
-#else
-static void yy_flex_free( ptr )
-void *ptr;
-#endif
- {
- free( ptr );
- }
-
-#if YY_MAIN
-int main()
- {
- yylex();
- return 0;
- }
-#endif
-#line 96 "scanholiday.lex"
-
diff --git a/libkmime/boolflags.h b/libkmime/boolflags.h
index ccd4e852..0964c19a 100644
--- a/libkmime/boolflags.h
+++ b/libkmime/boolflags.h
@@ -17,7 +17,7 @@
#ifndef __KMIME_BOOLFLAGS_H__
#define __KMIME_BOOLFLAGS_H__
-#include <tdepimmacros.h>
+#include <kdemacros.h>
/** This class stores boolean values in single bytes.
It provides a similar functionality as TQBitArray
diff --git a/libkmime/kmime_charfreq.h b/libkmime/kmime_charfreq.h
index 014cae6e..64a6e213 100644
--- a/libkmime/kmime_charfreq.h
+++ b/libkmime/kmime_charfreq.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_charfreq.h
KMime, the KDE internet mail/usenet news message library.
@@ -16,7 +16,7 @@
#define __KMIME_CHARFREQ_H__
#include <tqcstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#undef None
namespace KMime {
diff --git a/libkmime/kmime_codec_base64.cpp b/libkmime/kmime_codec_base64.cpp
index e1c4d499..4b4020cb 100644
--- a/libkmime/kmime_codec_base64.cpp
+++ b/libkmime/kmime_codec_base64.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_codec_base64.cpp
This file is part of KMime, the KDE internet mail/usenet news message library.
diff --git a/libkmime/kmime_codec_base64.h b/libkmime/kmime_codec_base64.h
index 6d80d9b9..6d9b867f 100644
--- a/libkmime/kmime_codec_base64.h
+++ b/libkmime/kmime_codec_base64.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_codec_base64.h
This file is part of KMime, the KDE internet mail/usenet news message library.
diff --git a/libkmime/kmime_codec_identity.cpp b/libkmime/kmime_codec_identity.cpp
index 27fe8f42..39792a21 100644
--- a/libkmime/kmime_codec_identity.cpp
+++ b/libkmime/kmime_codec_identity.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_codec_identity.cpp
This file is part of KMime, the KDE internet mail/usenet news message library.
diff --git a/libkmime/kmime_codec_identity.h b/libkmime/kmime_codec_identity.h
index a18cfd1f..4ded0f8b 100644
--- a/libkmime/kmime_codec_identity.h
+++ b/libkmime/kmime_codec_identity.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_codec_identity.h
This file is part of KMime, the KDE internet mail/usenet news message library.
diff --git a/libkmime/kmime_codec_qp.cpp b/libkmime/kmime_codec_qp.cpp
index 149b01f2..b625346f 100644
--- a/libkmime/kmime_codec_qp.cpp
+++ b/libkmime/kmime_codec_qp.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_codec_qp.cpp
This file is part of KMime, the KDE internet mail/usenet news message library.
diff --git a/libkmime/kmime_codec_qp.h b/libkmime/kmime_codec_qp.h
index a80226f5..28bb79f7 100644
--- a/libkmime/kmime_codec_qp.h
+++ b/libkmime/kmime_codec_qp.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_codec_qp.h
This file is part of KMime, the KDE internet mail/usenet news message library.
diff --git a/libkmime/kmime_codec_uuencode.cpp b/libkmime/kmime_codec_uuencode.cpp
index fe5acf4f..ada9416d 100644
--- a/libkmime/kmime_codec_uuencode.cpp
+++ b/libkmime/kmime_codec_uuencode.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_codec_uuencode.cpp
This file is part of KMime, the KDE internet mail/usenet news message library.
diff --git a/libkmime/kmime_codec_uuencode.h b/libkmime/kmime_codec_uuencode.h
index 80288b41..0477c93c 100644
--- a/libkmime/kmime_codec_uuencode.h
+++ b/libkmime/kmime_codec_uuencode.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_codec_uuencode.h
This file is part of KMime, the KDE internet mail/usenet news message library.
diff --git a/libkmime/kmime_codecs.cpp b/libkmime/kmime_codecs.cpp
index bf33159e..361b224c 100644
--- a/libkmime/kmime_codecs.cpp
+++ b/libkmime/kmime_codecs.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_codecs.cpp
This file is part of KMime, the KDE internet mail/usenet news message library.
diff --git a/libkmime/kmime_codecs.h b/libkmime/kmime_codecs.h
index 1bd8c9ec..2a2f4d79 100644
--- a/libkmime/kmime_codecs.h
+++ b/libkmime/kmime_codecs.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_codecs.h
This file is part of KMime, the KDE internet mail/usenet news message library.
@@ -40,7 +40,7 @@
#include <tqcstring.h> // TQByteArray
#include <kdebug.h> // for kdFatal()
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KMime {
diff --git a/libkmime/kmime_header_parsing.cpp b/libkmime/kmime_header_parsing.cpp
index 5c9423b7..aa3d29b7 100644
--- a/libkmime/kmime_header_parsing.cpp
+++ b/libkmime/kmime_header_parsing.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_header_parsing.cpp
This file is part of KMime, the KDE internet mail/usenet news message library.
@@ -1104,7 +1104,7 @@ bool parseParameter( const char* & scursor, const char * const send,
"Chopping away \"*\"." << endl;
maybeAttribute.truncate( maybeAttribute.length() - 1 );
}
- result = tqMakePair( maybeAttribute.lower(), TQStringOrTQPair() );
+ result = qMakePair( maybeAttribute.lower(), TQStringOrTQPair() );
return true;
}
@@ -1128,19 +1128,19 @@ bool parseParameter( const char* & scursor, const char * const send,
if ( !parseGenericQuotedString( scursor, send, maybeValue.qstring, isCRLF ) ) {
scursor = oldscursor;
- result = tqMakePair( maybeAttribute.lower(), TQStringOrTQPair() );
+ result = qMakePair( maybeAttribute.lower(), TQStringOrTQPair() );
return false; // this case needs further processing by upper layers!!
}
} else {
// value is a token:
if ( !parseToken( scursor, send, maybeValue.qpair, false /* no 8bit */ ) ) {
scursor = oldscursor;
- result = tqMakePair( maybeAttribute.lower(), TQStringOrTQPair() );
+ result = qMakePair( maybeAttribute.lower(), TQStringOrTQPair() );
return false; // this case needs further processing by upper layers!!
}
}
- result = tqMakePair( maybeAttribute.lower(), maybeValue );
+ result = qMakePair( maybeAttribute.lower(), maybeValue );
return true;
}
diff --git a/libkmime/kmime_header_parsing.h b/libkmime/kmime_header_parsing.h
index d567e5fe..c4c69945 100644
--- a/libkmime/kmime_header_parsing.h
+++ b/libkmime/kmime_header_parsing.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_header_parsing.h
This file is part of KMime, the KDE internet mail/usenet news message library.
@@ -38,7 +38,7 @@
#include <time.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
template <typename K, typename V> class TQMap;
class TQStringList;
diff --git a/libkmime/kmime_headers.h b/libkmime/kmime_headers.h
index 4c2b7313..02d0ad6a 100644
--- a/libkmime/kmime_headers.h
+++ b/libkmime/kmime_headers.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*
+/*
kmime_headers.h
KMime, the KDE internet mail/usenet news message library.
@@ -35,7 +35,7 @@
#include <time.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KMime {
diff --git a/libkmime/kmime_headers_obs.h b/libkmime/kmime_headers_obs.h
index a167e1f8..8905d1c5 100644
--- a/libkmime/kmime_headers_obs.h
+++ b/libkmime/kmime_headers_obs.h
@@ -20,7 +20,7 @@
#error You cannot use this file with the new header classes!
#endif
-#include <tdepimmacros.h>
+#include <kdemacros.h>
/** Represents a "Message-Id" header */
class KDE_EXPORT MessageID : public Base {
diff --git a/libkmime/kmime_mdn.cpp b/libkmime/kmime_mdn.cpp
index 4040d893..60142120 100644
--- a/libkmime/kmime_mdn.cpp
+++ b/libkmime/kmime_mdn.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_mdn.cpp
This file is part of KMime, the KDE internet mail/usenet news message library.
diff --git a/libkmime/kmime_mdn.h b/libkmime/kmime_mdn.h
index 30fa238a..c261b5fd 100644
--- a/libkmime/kmime_mdn.h
+++ b/libkmime/kmime_mdn.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_mdn.h
This file is part of KMime, the KDE internet mail/usenet news message library.
@@ -35,7 +35,7 @@
#include <tqvaluelist.h>
#include <tqstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQCString;
diff --git a/libkmime/kmime_newsarticle.h b/libkmime/kmime_newsarticle.h
index bbca34d8..accb8f5c 100644
--- a/libkmime/kmime_newsarticle.h
+++ b/libkmime/kmime_newsarticle.h
@@ -18,7 +18,7 @@
#include "kmime_message.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KMime {
diff --git a/libkmime/kmime_util.h b/libkmime/kmime_util.h
index 4619446a..7acc861c 100644
--- a/libkmime/kmime_util.h
+++ b/libkmime/kmime_util.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kmime_util.h
KMime, the KDE internet mail/usenet news message library.
@@ -21,7 +21,7 @@
#include "tqcstring.h"
#include "tqvaluelist.h"
#include "time.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
typedef TQValueList<TQCString> QCStringList;
diff --git a/libkmime/kqcstringsplitter.h b/libkmime/kqcstringsplitter.h
index 117f0510..cc992a48 100644
--- a/libkmime/kqcstringsplitter.h
+++ b/libkmime/kqcstringsplitter.h
@@ -19,7 +19,7 @@
#include <tqcstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KDE_EXPORT KTQCStringSplitter {
diff --git a/libkpgp/kpgp.cpp b/libkpgp/kpgp.cpp
index 4d5120d0..bd4193bf 100644
--- a/libkpgp/kpgp.cpp
+++ b/libkpgp/kpgp.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
kpgp.cpp
Copyright (C) 2001,2002 the KPGP authors
diff --git a/libkpgp/kpgp.h b/libkpgp/kpgp.h
index 4382f1f5..5ae06b79 100644
--- a/libkpgp/kpgp.h
+++ b/libkpgp/kpgp.h
@@ -36,7 +36,7 @@
#include <kdialogbase.h>
#include "kpgpkey.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQLineEdit;
class TQCursor;
diff --git a/libkpgp/kpgpblock.h b/libkpgp/kpgpblock.h
index 82001a1d..a1df95bf 100644
--- a/libkpgp/kpgpblock.h
+++ b/libkpgp/kpgpblock.h
@@ -23,7 +23,7 @@
#include <tqstring.h>
#include <tqstrlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
//#include <tqstringlist.h>
class TQStringList;
diff --git a/libkpgp/kpgpui.cpp b/libkpgp/kpgpui.cpp
index 3ad786ab..cb870d73 100644
--- a/libkpgp/kpgpui.cpp
+++ b/libkpgp/kpgpui.cpp
@@ -82,7 +82,7 @@ PassphraseDialog::PassphraseDialog( TQWidget *parent,
lineedit->setEchoMode(TQLineEdit::Password);
lineedit->setMinimumWidth( fontMetrics().maxWidth()*20 );
lineedit->setFocus();
- connect( lineedit, TQT_SIGNAL(returnPressed()), this, TQT_SLOT(slotOk()) );
+ connect( lineedit, TQ_SIGNAL(returnPressed()), this, TQ_SLOT(slotOk()) );
vlay->addWidget( label );
vlay->addWidget( lineedit );
@@ -146,8 +146,8 @@ Config::Config( TQWidget *parent, const char *name, bool encrypt )
<< i18n("Do not use any encryption tool") );
label->setBuddy( toolCombo );
hbox->setStretchFactor( toolCombo, 1 );
- connect( toolCombo, TQT_SIGNAL( activated( int ) ),
- this, TQT_SIGNAL( changed( void ) ) );
+ connect( toolCombo, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SIGNAL( changed( void ) ) );
// This is the place to add a KURLRequester to be used for asking
// the user for the path to the executable...
topLayout->addWidget( group );
@@ -156,8 +156,8 @@ Config::Config( TQWidget *parent, const char *name, bool encrypt )
mpOptionsGroupBox->layout()->setSpacing( KDialog::spacingHint() );
storePass = new TQCheckBox( i18n("&Keep passphrase in memory"),
mpOptionsGroupBox );
- connect( storePass, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SIGNAL( changed( void ) ) );
+ connect( storePass, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SIGNAL( changed( void ) ) );
msg = i18n( "<qt><p>When this option is enabled, the passphrase of your "
"private key will be remembered by the application as long "
"as the application is running. Thus you will only have to "
@@ -173,8 +173,8 @@ Config::Config( TQWidget *parent, const char *name, bool encrypt )
if( encrypt ) {
encToSelf = new TQCheckBox( i18n("Always encr&ypt to self"),
mpOptionsGroupBox );
- connect( encToSelf, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SIGNAL( changed( void ) ) );
+ connect( encToSelf, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SIGNAL( changed( void ) ) );
msg = i18n( "<qt><p>When this option is enabled, the message/file "
"will not only be encrypted with the receiver's public key, "
@@ -188,8 +188,8 @@ Config::Config( TQWidget *parent, const char *name, bool encrypt )
showCipherText = new TQCheckBox( i18n("&Show signed/encrypted text after "
"composing"),
mpOptionsGroupBox );
- connect( showCipherText, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SIGNAL( changed( void ) ) );
+ connect( showCipherText, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SIGNAL( changed( void ) ) );
msg = i18n( "<qt><p>When this option is enabled, the signed/encrypted text "
"will be shown in a separate window, enabling you to know how "
@@ -200,8 +200,8 @@ Config::Config( TQWidget *parent, const char *name, bool encrypt )
showKeyApprovalDlg = new TQCheckBox( i18n("Always show the encryption "
"keys &for approval"),
mpOptionsGroupBox );
- connect( showKeyApprovalDlg, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SIGNAL( changed( void ) ) );
+ connect( showKeyApprovalDlg, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SIGNAL( changed( void ) ) );
msg = i18n( "<qt><p>When this option is enabled, the application will "
"always show you a list of public keys from which you can "
"choose the one it will use for encryption. If it is off, "
@@ -328,9 +328,9 @@ KeySelectionDialog::KeySelectionDialog( const KeyList& keyList,
hlay->addWidget( le, 1 );
le->setFocus();
- connect( le, TQT_SIGNAL(textChanged(const TQString&)),
- this, TQT_SLOT(slotSearch(const TQString&)) );
- connect( mStartSearchTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotFilter()) );
+ connect( le, TQ_SIGNAL(textChanged(const TQString&)),
+ this, TQ_SLOT(slotSearch(const TQString&)) );
+ connect( mStartSearchTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotFilter()) );
mListView = new TDEListView( page );
mListView->addColumn( i18n("Key ID") );
@@ -373,24 +373,24 @@ KeySelectionDialog::KeySelectionDialog( const KeyList& keyList,
mListView->center( mListView->contentsX(), mListView->itemPos( lvi ) );
if( extendedSelection ) {
- connect( mCheckSelectionTimer, TQT_SIGNAL( timeout() ),
- this, TQT_SLOT( slotCheckSelection() ) );
- connect( mListView, TQT_SIGNAL( selectionChanged() ),
- this, TQT_SLOT( slotSelectionChanged() ) );
+ connect( mCheckSelectionTimer, TQ_SIGNAL( timeout() ),
+ this, TQ_SLOT( slotCheckSelection() ) );
+ connect( mListView, TQ_SIGNAL( selectionChanged() ),
+ this, TQ_SLOT( slotSelectionChanged() ) );
}
else {
- connect( mListView, TQT_SIGNAL( selectionChanged( TQListViewItem* ) ),
- this, TQT_SLOT( slotSelectionChanged( TQListViewItem* ) ) );
+ connect( mListView, TQ_SIGNAL( selectionChanged( TQListViewItem* ) ),
+ this, TQ_SLOT( slotSelectionChanged( TQListViewItem* ) ) );
}
- connect( mListView, TQT_SIGNAL( doubleClicked ( TQListViewItem *, const TQPoint &, int ) ), this, TQT_SLOT( accept() ) );
+ connect( mListView, TQ_SIGNAL( doubleClicked ( TQListViewItem *, const TQPoint &, int ) ), this, TQ_SLOT( accept() ) );
- connect( mListView, TQT_SIGNAL( contextMenuRequested( TQListViewItem*,
+ connect( mListView, TQ_SIGNAL( contextMenuRequested( TQListViewItem*,
const TQPoint&, int ) ),
- this, TQT_SLOT( slotRMB( TQListViewItem*, const TQPoint&, int ) ) );
+ this, TQ_SLOT( slotRMB( TQListViewItem*, const TQPoint&, int ) ) );
setButtonText( KDialogBase::Default, i18n("&Reread Keys") );
- connect( this, TQT_SIGNAL( defaultClicked() ),
- this, TQT_SLOT( slotRereadKeys() ) );
+ connect( this, TQ_SIGNAL( defaultClicked() ),
+ this, TQ_SLOT( slotRereadKeys() ) );
}
@@ -823,25 +823,25 @@ void KeySelectionDialog::slotRereadKeys()
int offsetY = mListView->contentsY();
if( mListView->isMultiSelection() ) {
- disconnect( mListView, TQT_SIGNAL( selectionChanged() ),
- this, TQT_SLOT( slotSelectionChanged() ) );
+ disconnect( mListView, TQ_SIGNAL( selectionChanged() ),
+ this, TQ_SLOT( slotSelectionChanged() ) );
}
else {
- disconnect( mListView, TQT_SIGNAL( selectionChanged( TQListViewItem * ) ),
- this, TQT_SLOT( slotSelectionChanged( TQListViewItem * ) ) );
+ disconnect( mListView, TQ_SIGNAL( selectionChanged( TQListViewItem * ) ),
+ this, TQ_SLOT( slotSelectionChanged( TQListViewItem * ) ) );
}
initKeylist( keys, KeyIDList( mKeyIds ) );
slotFilter();
if( mListView->isMultiSelection() ) {
- connect( mListView, TQT_SIGNAL( selectionChanged() ),
- this, TQT_SLOT( slotSelectionChanged() ) );
+ connect( mListView, TQ_SIGNAL( selectionChanged() ),
+ this, TQ_SLOT( slotSelectionChanged() ) );
slotSelectionChanged();
}
else {
- connect( mListView, TQT_SIGNAL( selectionChanged( TQListViewItem * ) ),
- this, TQT_SLOT( slotSelectionChanged( TQListViewItem * ) ) );
+ connect( mListView, TQ_SIGNAL( selectionChanged( TQListViewItem * ) ),
+ this, TQ_SLOT( slotSelectionChanged( TQListViewItem * ) ) );
}
// restore the saved position of the contents
@@ -886,8 +886,8 @@ void KeySelectionDialog::slotCheckSelection( TQListViewItem* plvi /* = 0 */ )
// As we might change the selection, we have to disconnect the slot
// to prevent recursion
- disconnect( mListView, TQT_SIGNAL( selectionChanged() ),
- this, TQT_SLOT( slotSelectionChanged() ) );
+ disconnect( mListView, TQ_SIGNAL( selectionChanged() ),
+ this, TQ_SLOT( slotSelectionChanged() ) );
KeyIDList newKeyIdList;
TQValueList<TQListViewItem*> keysToBeChecked;
@@ -989,8 +989,8 @@ void KeySelectionDialog::slotCheckSelection( TQListViewItem* plvi /* = 0 */ )
}
enableButtonOK( keysAllowed );
- connect( mListView, TQT_SIGNAL( selectionChanged() ),
- this, TQT_SLOT( slotSelectionChanged() ) );
+ connect( mListView, TQ_SIGNAL( selectionChanged() ),
+ this, TQ_SLOT( slotSelectionChanged() ) );
}
}
@@ -1037,7 +1037,7 @@ void KeySelectionDialog::slotRMB( TQListViewItem* lvi, const TQPoint& pos, int )
mCurrentContextMenuItem = lvi;
TQPopupMenu menu(this);
- menu.insertItem( i18n( "Recheck Key" ), this, TQT_SLOT( slotRecheckKey() ) );
+ menu.insertItem( i18n( "Recheck Key" ), this, TQ_SLOT( slotRecheckKey() ) );
menu.exec( pos );
}
@@ -1189,8 +1189,8 @@ KeyRequester::KeyRequester( TQWidget * parent, bool multipleKeys,
hlay->addWidget( mEraseButton );
hlay->addWidget( mDialogButton );
- connect( mEraseButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotEraseButtonClicked()) );
- connect( mDialogButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotDialogButtonClicked()) );
+ connect( mEraseButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotEraseButtonClicked()) );
+ connect( mDialogButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotDialogButtonClicked()) );
setSizePolicy( TQSizePolicy( TQSizePolicy::MinimumExpanding,
TQSizePolicy::Fixed ) );
@@ -1383,7 +1383,7 @@ KeyApprovalDialog::KeyApprovalDialog( const TQStringList& addresses,
//hbox->setStretchFactor( keyidLB, 10 );
//mKeyIdListBoxes.insert( 0, keyidLB );
- new KSeparator( Qt::Horizontal, bigvbox );
+ new KSeparator( TQt::Horizontal, bigvbox );
}
else {
mEncryptToSelf = 0;
@@ -1402,7 +1402,7 @@ KeyApprovalDialog::KeyApprovalDialog( const TQStringList& addresses,
++kit; // skip the sender's key id
}
else {
- new KSeparator( Qt::Horizontal, bigvbox );
+ new KSeparator( TQt::Horizontal, bigvbox );
}
TQHBox *hbox = new TQHBox( bigvbox );
@@ -1470,12 +1470,12 @@ KeyApprovalDialog::KeyApprovalDialog( const TQStringList& addresses,
default:
encrPrefCombo->setCurrentItem( 0 );
}
- connect( encrPrefCombo, TQT_SIGNAL(activated(int)),
- this, TQT_SLOT(slotPrefsChanged(int)) );
+ connect( encrPrefCombo, TQ_SIGNAL(activated(int)),
+ this, TQ_SLOT(slotPrefsChanged(int)) );
mEncrPrefCombos.insert( i, encrPrefCombo );
}
- connect( mChangeButtonGroup, TQT_SIGNAL(clicked(int)),
- this, TQT_SLOT(slotChangeEncryptionKey(int)) );
+ connect( mChangeButtonGroup, TQ_SIGNAL(clicked(int)),
+ this, TQ_SLOT(slotChangeEncryptionKey(int)) );
// calculate the optimal width for the dialog
int dialogWidth = marginHint()
diff --git a/libkpgp/kpgpui.h b/libkpgp/kpgpui.h
index 184b61f5..dacfe41b 100644
--- a/libkpgp/kpgpui.h
+++ b/libkpgp/kpgpui.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kpgpui.h
Copyright (C) 2001,2002 the KPGP authors
@@ -29,7 +29,7 @@
#include "kpgp.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQString;
class TQRegExp;
@@ -54,7 +54,7 @@ class KeyIDList; // needed by KeySelectionDialog
/** the passphrase dialog */
class KDE_EXPORT PassphraseDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -75,7 +75,7 @@ class KDE_EXPORT PassphraseDialog : public KDialogBase
button mechanism. */
class KDE_EXPORT Config : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -103,7 +103,7 @@ class KDE_EXPORT Config : public TQWidget
#define KeySelectionDialogSuper KDialogBase
class KDE_EXPORT KeySelectionDialog: public KeySelectionDialogSuper
{
- Q_OBJECT
+ TQ_OBJECT
enum TrustCheckMode { NoExpensiveTrustCheck,
@@ -203,7 +203,7 @@ class KDE_EXPORT KeySelectionDialog: public KeySelectionDialogSuper
class KDE_EXPORT KeyRequester: public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -255,7 +255,7 @@ protected:
class KDE_EXPORT PublicKeyRequester : public KeyRequester {
- Q_OBJECT
+ TQ_OBJECT
public:
PublicKeyRequester( TQWidget * parent=0, bool multipleKeys=false,
@@ -275,7 +275,7 @@ protected:
class KDE_EXPORT SecretKeyRequester : public KeyRequester {
- Q_OBJECT
+ TQ_OBJECT
public:
SecretKeyRequester( TQWidget * parent=0, bool multipleKeys=false,
@@ -297,7 +297,7 @@ protected:
// -------------------------------------------------------------------------
class KDE_EXPORT KeyApprovalDialog: public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -333,7 +333,7 @@ class KDE_EXPORT KeyApprovalDialog: public KDialogBase
// -------------------------------------------------------------------------
class KDE_EXPORT CipherTextDialog: public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libkpimexchange/core/README.download b/libkpimexchange/core/README.download
index 07540db8..34f3c528 100644
--- a/libkpimexchange/core/README.download
+++ b/libkpimexchange/core/README.download
@@ -10,12 +10,12 @@ NOTES:
It uses internal state member variables and such.
DATA STRUCTURES:
-QMap<QString,int> m_uids is in fact a set of known uids telling us
+QMap<TQString,int> m_uids is in fact a set of known uids telling us
whether we're already busy or finished reading the Master event
for this UID. The map contains the UID as key, with a value of 1,
if UID is either being or finished downloading.
-QMap<QString,DwString *> m_transferJobs maps URLs being downloaded
+QMap<TQString,DwString *> m_transferJobs maps URLs being downloaded
to strings of data already received. A URL is removed from the map
if all data has been received
diff --git a/libkpimexchange/core/exchangeaccount.cpp b/libkpimexchange/core/exchangeaccount.cpp
index a033b6b0..9c801328 100644
--- a/libkpimexchange/core/exchangeaccount.cpp
+++ b/libkpimexchange/core/exchangeaccount.cpp
@@ -239,8 +239,8 @@ void ExchangeAccount::calcFolderURLs()
TDEIO::DavJob* job = TDEIO::davPropFind( baseURL(), doc, "1", false );
job->addMetaData( "errorPage", "false" );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotFolderResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotFolderResult( TDEIO::Job * ) ) );
}
void ExchangeAccount::slotFolderResult( TDEIO::Job *job )
diff --git a/libkpimexchange/core/exchangeaccount.h b/libkpimexchange/core/exchangeaccount.h
index e55b2243..032594be 100644
--- a/libkpimexchange/core/exchangeaccount.h
+++ b/libkpimexchange/core/exchangeaccount.h
@@ -26,7 +26,7 @@
#include <tqobject.h>
#include <tqstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <kurl.h>
#include <tdeio/job.h>
@@ -34,7 +34,7 @@ namespace KPIM {
class KDE_EXPORT ExchangeAccount : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
ExchangeAccount( const TQString &host, const TQString &port,
diff --git a/libkpimexchange/core/exchangeclient.cpp b/libkpimexchange/core/exchangeclient.cpp
index 5658c707..c3fdd380 100644
--- a/libkpimexchange/core/exchangeclient.cpp
+++ b/libkpimexchange/core/exchangeclient.cpp
@@ -131,8 +131,8 @@ void ExchangeClient::download( KCal::Calendar *calendar, const TQDate &start,
ExchangeDownload *worker = new ExchangeDownload( mAccount, mWindow );
worker->download( calendar, start, end, showProgress );
connect( worker,
- TQT_SIGNAL( finished( ExchangeDownload *, int, const TQString & ) ),
- TQT_SLOT( slotDownloadFinished( ExchangeDownload *, int,
+ TQ_SIGNAL( finished( ExchangeDownload *, int, const TQString & ) ),
+ TQ_SLOT( slotDownloadFinished( ExchangeDownload *, int,
const TQString & ) ) );
}
@@ -149,11 +149,11 @@ void ExchangeClient::download( const TQDate &start, const TQDate &end,
ExchangeDownload *worker = new ExchangeDownload( mAccount, mWindow );
worker->download( start, end, showProgress );
connect( worker,
- TQT_SIGNAL( finished( ExchangeDownload *, int, const TQString & ) ),
- TQT_SLOT( slotDownloadFinished( ExchangeDownload *, int,
+ TQ_SIGNAL( finished( ExchangeDownload *, int, const TQString & ) ),
+ TQ_SLOT( slotDownloadFinished( ExchangeDownload *, int,
const TQString & ) ) );
- connect( worker, TQT_SIGNAL( gotEvent( KCal::Event *, const KURL & ) ),
- TQT_SIGNAL( event( KCal::Event *, const KURL & ) ) );
+ connect( worker, TQ_SIGNAL( gotEvent( KCal::Event *, const KURL & ) ),
+ TQ_SIGNAL( event( KCal::Event *, const KURL & ) ) );
}
void ExchangeClient::upload( KCal::Event *event )
@@ -167,8 +167,8 @@ void ExchangeClient::upload( KCal::Event *event )
ExchangeUpload *worker = new ExchangeUpload( event, mAccount, mTimeZoneId,
mWindow );
- connect( worker, TQT_SIGNAL( finished( ExchangeUpload *, int, const TQString & ) ),
- TQT_SLOT( slotUploadFinished( ExchangeUpload *, int, const TQString & ) ) );
+ connect( worker, TQ_SIGNAL( finished( ExchangeUpload *, int, const TQString & ) ),
+ TQ_SLOT( slotUploadFinished( ExchangeUpload *, int, const TQString & ) ) );
}
void ExchangeClient::remove( KCal::Event *event )
@@ -179,8 +179,8 @@ void ExchangeClient::remove( KCal::Event *event )
}
ExchangeDelete *worker = new ExchangeDelete( event, mAccount, mWindow );
- connect( worker, TQT_SIGNAL( finished( ExchangeDelete *, int, const TQString & ) ),
- TQT_SLOT( slotRemoveFinished( ExchangeDelete *, int, const TQString & ) ) );
+ connect( worker, TQ_SIGNAL( finished( ExchangeDelete *, int, const TQString & ) ),
+ TQ_SLOT( slotRemoveFinished( ExchangeDelete *, int, const TQString & ) ) );
}
void ExchangeClient::slotDownloadFinished( ExchangeDownload *worker,
@@ -217,8 +217,8 @@ int ExchangeClient::downloadSynchronous( KCal::Calendar *calendar,
kdDebug() << "ExchangeClient::downloadSynchronous()" << endl;
mClientState = WaitingForResult;
- connect( this, TQT_SIGNAL( downloadFinished( int, const TQString & ) ),
- TQT_SLOT( slotSyncFinished( int, const TQString & ) ) );
+ connect( this, TQ_SIGNAL( downloadFinished( int, const TQString & ) ),
+ TQ_SLOT( slotSyncFinished( int, const TQString & ) ) );
download( calendar, start, end, showProgress );
@@ -230,8 +230,8 @@ int ExchangeClient::downloadSynchronous( KCal::Calendar *calendar,
} while ( mClientState == WaitingForResult );
TQApplication::restoreOverrideCursor();
- disconnect( this, TQT_SIGNAL( downloadFinished( int, const TQString & ) ),
- this, TQT_SLOT( slotSyncFinished( int, const TQString & ) ) );
+ disconnect( this, TQ_SIGNAL( downloadFinished( int, const TQString & ) ),
+ this, TQ_SLOT( slotSyncFinished( int, const TQString & ) ) );
return mSyncResult;
}
@@ -239,8 +239,8 @@ int ExchangeClient::downloadSynchronous( KCal::Calendar *calendar,
int ExchangeClient::uploadSynchronous( KCal::Event* event )
{
mClientState = WaitingForResult;
- connect( this, TQT_SIGNAL( uploadFinished( int, const TQString & ) ),
- TQT_SLOT( slotSyncFinished( int, const TQString & ) ) );
+ connect( this, TQ_SIGNAL( uploadFinished( int, const TQString & ) ),
+ TQ_SLOT( slotSyncFinished( int, const TQString & ) ) );
upload( event );
@@ -250,16 +250,16 @@ int ExchangeClient::uploadSynchronous( KCal::Event* event )
tqApp->processEvents();
} while ( mClientState == WaitingForResult );
TQApplication::restoreOverrideCursor();
- disconnect( this, TQT_SIGNAL( uploadFinished( int, const TQString & ) ),
- this, TQT_SLOT( slotSyncFinished( int, const TQString & ) ) );
+ disconnect( this, TQ_SIGNAL( uploadFinished( int, const TQString & ) ),
+ this, TQ_SLOT( slotSyncFinished( int, const TQString & ) ) );
return mSyncResult;
}
int ExchangeClient::removeSynchronous( KCal::Event* event )
{
mClientState = WaitingForResult;
- connect( this, TQT_SIGNAL( removeFinished( int, const TQString & ) ),
- TQT_SLOT( slotSyncFinished( int, const TQString & ) ) );
+ connect( this, TQ_SIGNAL( removeFinished( int, const TQString & ) ),
+ TQ_SLOT( slotSyncFinished( int, const TQString & ) ) );
remove( event );
@@ -269,8 +269,8 @@ int ExchangeClient::removeSynchronous( KCal::Event* event )
tqApp->processEvents();
} while ( mClientState == WaitingForResult );
TQApplication::restoreOverrideCursor();
- disconnect( this, TQT_SIGNAL( removeFinished( int, const TQString & ) ),
- this, TQT_SLOT( slotSyncFinished( int, const TQString & ) ) );
+ disconnect( this, TQ_SIGNAL( removeFinished( int, const TQString & ) ),
+ this, TQ_SLOT( slotSyncFinished( int, const TQString & ) ) );
return mSyncResult;
}
diff --git a/libkpimexchange/core/exchangeclient.h b/libkpimexchange/core/exchangeclient.h
index 6c994c02..b1a2cbc7 100644
--- a/libkpimexchange/core/exchangeclient.h
+++ b/libkpimexchange/core/exchangeclient.h
@@ -26,7 +26,7 @@
#include <tqhostaddress.h>
#include <tqptrlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KCal {
class Event;
@@ -46,7 +46,7 @@ class ExchangeDelete;
//class ExchangeMonitor;
class KDE_EXPORT ExchangeClient : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
ExchangeClient( ExchangeAccount* account, const TQString& mTimeZoneId=TQString() );
diff --git a/libkpimexchange/core/exchangedelete.cpp b/libkpimexchange/core/exchangedelete.cpp
index 094b3b5c..d9e8c177 100644
--- a/libkpimexchange/core/exchangedelete.cpp
+++ b/libkpimexchange/core/exchangedelete.cpp
@@ -74,7 +74,7 @@ void ExchangeDelete::findUidSingleMaster( TQString const& uid )
TDEIO::DavJob* job = TDEIO::davSearch( mAccount->calendarURL(), "DAV:", "sql", query, false );
job->setWindow( mWindow );
- connect(job, TQT_SIGNAL(result( TDEIO::Job * )), this, TQT_SLOT(slotFindUidResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result( TDEIO::Job * )), this, TQ_SLOT(slotFindUidResult(TDEIO::Job *)));
}
void ExchangeDelete::slotFindUidResult( TDEIO::Job * job )
@@ -104,7 +104,7 @@ void ExchangeDelete::startDelete( const KURL& url )
{
TDEIO::SimpleJob* job = TDEIO::file_delete( url, false ); // no GUI
job->setWindow( mWindow );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ), this, TQT_SLOT( slotDeleteResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ), this, TQ_SLOT( slotDeleteResult( TDEIO::Job * ) ) );
}
void ExchangeDelete::slotDeleteResult( TDEIO::Job* job )
diff --git a/libkpimexchange/core/exchangedelete.h b/libkpimexchange/core/exchangedelete.h
index 03b06690..eb832892 100644
--- a/libkpimexchange/core/exchangedelete.h
+++ b/libkpimexchange/core/exchangedelete.h
@@ -24,7 +24,7 @@
#include <tqwidget.h>
#include <tdeio/job.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <libkcal/calendar.h>
#include <libkcal/event.h>
@@ -34,7 +34,7 @@ namespace KPIM {
class ExchangeAccount;
class KDE_EXPORT ExchangeDelete : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
ExchangeDelete( KCal::Event* event, ExchangeAccount* account, TQWidget* window=0 );
diff --git a/libkpimexchange/core/exchangedownload.cpp b/libkpimexchange/core/exchangedownload.cpp
index 58bf236e..55cecd1f 100644
--- a/libkpimexchange/core/exchangedownload.cpp
+++ b/libkpimexchange/core/exchangedownload.cpp
@@ -92,10 +92,10 @@ void ExchangeDownload::download( KCal::Calendar *calendar, const TQDate &start,
mProgress = new ExchangeProgress();
mProgress->show();
- connect( this, TQT_SIGNAL( startDownload() ), mProgress,
- TQT_SLOT( slotTransferStarted() ) );
- connect( this, TQT_SIGNAL(finishDownload() ), mProgress,
- TQT_SLOT( slotTransferFinished() ) );
+ connect( this, TQ_SIGNAL( startDownload() ), mProgress,
+ TQ_SLOT( slotTransferStarted() ) );
+ connect( this, TQ_SIGNAL(finishDownload() ), mProgress,
+ TQ_SLOT( slotTransferFinished() ) );
#endif
}
@@ -112,8 +112,8 @@ void ExchangeDownload::download( KCal::Calendar *calendar, const TQDate &start,
sql, false );
TDEIO::Scheduler::scheduleJob( job );
job->setWindow( mWindow );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotSearchResult( TDEIO::Job *) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotSearchResult( TDEIO::Job *) ) );
}
void ExchangeDownload::download( const TQDate& start, const TQDate& end, bool showProgress )
@@ -126,8 +126,8 @@ void ExchangeDownload::download( const TQDate& start, const TQDate& end, bool sh
mProgress = new ExchangeProgress();
mProgress->show();
- connect( this, TQT_SIGNAL(startDownload()), mProgress, TQT_SLOT(slotTransferStarted()) );
- connect( this, TQT_SIGNAL(finishDownload()), mProgress, TQT_SLOT(slotTransferFinished()) );
+ connect( this, TQ_SIGNAL(startDownload()), mProgress, TQ_SLOT(slotTransferStarted()) );
+ connect( this, TQ_SIGNAL(finishDownload()), mProgress, TQ_SLOT(slotTransferFinished()) );
}
TQString sql = dateSelectQuery( start, end.addDays( 1 ) );
@@ -137,8 +137,8 @@ void ExchangeDownload::download( const TQDate& start, const TQDate& end, bool sh
TDEIO::DavJob *job = TDEIO::davSearch( mAccount->calendarURL(), "DAV:", "sql", sql, false );
TDEIO::Scheduler::scheduleJob(job);
job->setWindow( mWindow );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotSearchResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotSearchResult( TDEIO::Job * ) ) );
}
// Original query TODO: make query configurable
@@ -301,8 +301,8 @@ void ExchangeDownload::handleRecurrence( TQString uid )
query, false );
TDEIO::Scheduler::scheduleJob( job );
job->setWindow( mWindow );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotMasterResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotMasterResult( TDEIO::Job * ) ) );
}
void ExchangeDownload::readAppointment( const KURL& url )
@@ -349,8 +349,8 @@ void ExchangeDownload::readAppointment( const KURL& url )
TDEIO::Scheduler::scheduleJob( job );
job->setWindow( mWindow );
job->addMetaData( "errorPage", "false" );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotPropFindResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotPropFindResult( TDEIO::Job * ) ) );
}
void ExchangeDownload::slotPropFindResult( TDEIO::Job *job )
@@ -401,7 +401,7 @@ void ExchangeDownload::slotPropFindResult( TDEIO::Job *job )
TQString lastModified = prop.namedItem( "lastmodified" ).toElement().text();
if ( !lastModified.isEmpty() ) {
- TQDateTime dt = utcAsZone( TQDateTime::fromString( lastModified, Qt::ISODate ), localTimeZoneId );
+ TQDateTime dt = utcAsZone( TQDateTime::fromString( lastModified, TQt::ISODate ), localTimeZoneId );
event->setLastModified( dt );
kdDebug() << "Got lastModified:" << lastModified << ", " << dt.toString() << endl;
}
@@ -436,7 +436,7 @@ void ExchangeDownload::slotPropFindResult( TDEIO::Job *job )
TQString created = prop.namedItem( "created" ).toElement().text();
if ( !created.isEmpty() ) {
- TQDateTime dt = utcAsZone( TQDateTime::fromString( created, Qt::ISODate ),
+ TQDateTime dt = utcAsZone( TQDateTime::fromString( created, TQt::ISODate ),
localTimeZoneId );
event->setCreated( dt );
kdDebug() << "got created: " << dt.toString() << endl;
@@ -444,7 +444,7 @@ void ExchangeDownload::slotPropFindResult( TDEIO::Job *job )
TQString dtstart = prop.namedItem( "dtstart" ).toElement().text();
if ( !dtstart.isEmpty() ) {
- TQDateTime dt = utcAsZone( TQDateTime::fromString( dtstart, Qt::ISODate ),
+ TQDateTime dt = utcAsZone( TQDateTime::fromString( dtstart, TQt::ISODate ),
localTimeZoneId );
event->setDtStart( dt );
kdDebug() << "got dtstart: " << dtstart << " becomes in timezone " << dt.toString() << endl;
@@ -457,7 +457,7 @@ void ExchangeDownload::slotPropFindResult( TDEIO::Job *job )
TQString dtend = prop.namedItem( "dtend" ).toElement().text();
if ( !dtend.isEmpty() ) {
- TQDateTime dt = utcAsZone( TQDateTime::fromString( dtend, Qt::ISODate ),
+ TQDateTime dt = utcAsZone( TQDateTime::fromString( dtend, TQt::ISODate ),
localTimeZoneId );
// Outlook thinks differently about floating event timing than libkcal
if ( floats ) dt = dt.addDays( -1 );
@@ -510,7 +510,7 @@ void ExchangeDownload::slotPropFindResult( TDEIO::Job *job )
list = exdate.elementsByTagNameNS( "xml:", "v" );
for( uint i=0; i < list.count(); i++ ) {
TQDomElement item = list.item(i).toElement();
- TQDate date = utcAsZone( TQDateTime::fromString( item.text(), Qt::ISODate ), localTimeZoneId ).date();
+ TQDate date = utcAsZone( TQDateTime::fromString( item.text(), TQt::ISODate ), localTimeZoneId ).date();
exdates.append( date );
// kdDebug() << "Got exdate: " << date.toString() << endl;
}
@@ -582,7 +582,7 @@ void ExchangeDownload::slotPropFindResult( TDEIO::Job *job )
if ( mCalendar ) {
KCal::Event *oldEvent = mCalendar->event( event->uid() );
if ( oldEvent ) {
- kdWarning() << "Already got his event, replace it..." << endl;
+ kdWarning() << "Already got the event, replace it..." << endl;
mCalendar->deleteEvent( oldEvent );
}
kdDebug() << "ADD EVENT" << endl;
diff --git a/libkpimexchange/core/exchangedownload.h b/libkpimexchange/core/exchangedownload.h
index 931d53bf..f0b1dcdd 100644
--- a/libkpimexchange/core/exchangedownload.h
+++ b/libkpimexchange/core/exchangedownload.h
@@ -36,7 +36,7 @@ class ExchangeProgress;
class ExchangeAccount;
class ExchangeDownload : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
ExchangeDownload( ExchangeAccount* account, TQWidget* window=0 );
diff --git a/libkpimexchange/core/exchangemonitor.cpp b/libkpimexchange/core/exchangemonitor.cpp
index df52fdab..aadfb7c8 100644
--- a/libkpimexchange/core/exchangemonitor.cpp
+++ b/libkpimexchange/core/exchangemonitor.cpp
@@ -94,7 +94,7 @@ ExchangeMonitor::ExchangeMonitor( ExchangeAccount* account, int pollMode, const
kdDebug() << "bind() returned false" << endl;
mSocket->setBlocking( false );
mNotifier = new TQSocketNotifier( mSocket->socket(), TQSocketNotifier::Read );
- connect( mNotifier, TQT_SIGNAL(activated( int )), this, TQT_SLOT( slotActivated(int)));
+ connect( mNotifier, TQ_SIGNAL(activated( int )), this, TQ_SLOT( slotActivated(int)));
//mSocket.setSocketFlags( KExtendedSocket::inetSocket | KExtendedSocket::passiveSocket | KExtendedSocket::datagramSocket | KExtendedSocket::bufferedSocket );
//mSocket.setHost( "jupiter.tbm.tudelft.nl" ); // Does this work?
@@ -110,12 +110,12 @@ ExchangeMonitor::ExchangeMonitor( ExchangeAccount* account, int pollMode, const
if ( mPollMode == Poll ) {
mPollTimer = new TQTimer( this, "mPollTimer" );
- connect( mPollTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotPollTimer()) );
+ connect( mPollTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(slotPollTimer()) );
mPollTimer->start( 60000 ); // 1 minute timer
}
mRenewTimer = new TQTimer( this, "mRenewTimer" );
- connect( mRenewTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotRenewTimer()) );
+ connect( mRenewTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(slotRenewTimer()) );
mRenewTimer->start( mSubscriptionLifetime * 900 ); // 10% early so as to be in time
}
@@ -133,7 +133,7 @@ ExchangeMonitor::~ExchangeMonitor()
job->addMetaData( "customHTTPHeader", headers );
// Can't do, this is a destructor!
// job->addMetaData( "PropagateHttpHeader", "true" );
- // connect(job, TQT_SIGNAL(result( TDEIO::Job * )), this, TQT_SLOT(slotUnsubscribeResult(TDEIO::Job *)));
+ // connect(job, TQ_SIGNAL(result( TDEIO::Job * )), this, TQ_SLOT(slotUnsubscribeResult(TDEIO::Job *)));
}
kdDebug() << "Finished ExchangeMonitor destructor" << endl;
@@ -161,7 +161,7 @@ void ExchangeMonitor::addWatch( const KURL &url, int mode, int depth )
TDEIO::DavJob *job = new TDEIO::DavJob( myURL, (int) TDEIO::DAV_SUBSCRIBE, TQString(), false );
job->addMetaData( "customHTTPHeader", headers );
job->addMetaData( "PropagateHttpHeader", "true" );
- connect(job, TQT_SIGNAL(result( TDEIO::Job * )), this, TQT_SLOT(slotSubscribeResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result( TDEIO::Job * )), this, TQ_SLOT(slotSubscribeResult(TDEIO::Job *)));
}
void ExchangeMonitor::removeWatch( const KURL &url )
@@ -182,7 +182,7 @@ void ExchangeMonitor::removeWatch( ID id )
TDEIO::DavJob *job = new TDEIO::DavJob( mAccount->calendarURL(), (int) TDEIO::DAV_UNSUBSCRIBE, TQString(), false );
job->addMetaData( "customHTTPHeader", "Subscription-id: " + TQString::number( id ));
job->addMetaData( "PropagateHttpHeader", "true" );
- connect(job, TQT_SIGNAL(result( TDEIO::Job * )), this, TQT_SLOT(slotUnsubscribeResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result( TDEIO::Job * )), this, TQ_SLOT(slotUnsubscribeResult(TDEIO::Job *)));
}
void ExchangeMonitor::slotSubscribeResult( TDEIO::Job * job )
@@ -323,7 +323,7 @@ void ExchangeMonitor::poll( const IDList& IDs ) {
// confirm it
TDEIO::DavJob *job = new TDEIO::DavJob( mAccount->calendarURL(), (int) TDEIO::DAV_POLL, TQString(), false );
job->addMetaData( "customHTTPHeader", "Subscription-ID: " + makeIDString( IDs ) );
- connect(job, TQT_SIGNAL(result( TDEIO::Job * )), this, TQT_SLOT(slotPollResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result( TDEIO::Job * )), this, TQ_SLOT(slotPollResult(TDEIO::Job *)));
}
void ExchangeMonitor::slotPollResult( TDEIO::Job * job )
@@ -368,7 +368,7 @@ void ExchangeMonitor::slotRenewTimer()
TDEIO::DavJob *job = new TDEIO::DavJob( mAccount->calendarURL(), (int) TDEIO::DAV_SUBSCRIBE, TQString(), false );
job->addMetaData( "customHTTPHeader", "Subscription-id: " + makeIDString( mSubscriptionMap.keys() ) );
- connect(job, TQT_SIGNAL(result( TDEIO::Job * )), this, TQT_SLOT(slotRenewResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result( TDEIO::Job * )), this, TQ_SLOT(slotRenewResult(TDEIO::Job *)));
}
void ExchangeMonitor::slotRenewResult( TDEIO::Job* job )
diff --git a/libkpimexchange/core/exchangemonitor.h b/libkpimexchange/core/exchangemonitor.h
index 3ba96a39..d32b595c 100644
--- a/libkpimexchange/core/exchangemonitor.h
+++ b/libkpimexchange/core/exchangemonitor.h
@@ -40,7 +40,7 @@ namespace KPIM {
class ExchangeAccount;
class ExchangeMonitor : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
typedef long ID;
diff --git a/libkpimexchange/core/exchangeprogress.h b/libkpimexchange/core/exchangeprogress.h
index 4d29c24c..07872449 100644
--- a/libkpimexchange/core/exchangeprogress.h
+++ b/libkpimexchange/core/exchangeprogress.h
@@ -28,7 +28,7 @@ namespace KPIM {
class ExchangeProgress : public KProgressDialog
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libkpimexchange/core/exchangeupload.cpp b/libkpimexchange/core/exchangeupload.cpp
index f134868f..8e49e0aa 100644
--- a/libkpimexchange/core/exchangeupload.cpp
+++ b/libkpimexchange/core/exchangeupload.cpp
@@ -88,8 +88,8 @@ void ExchangeUpload::findUid( TQString const &uid )
TDEIO::DavJob* job = TDEIO::davSearch( mAccount->calendarURL(), "DAV:", "sql",
query, false );
job->setWindow( mWindow );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotFindUidResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotFindUidResult( TDEIO::Job * ) ) );
}
void ExchangeUpload::slotFindUidResult( TDEIO::Job * job )
@@ -147,8 +147,8 @@ void ExchangeUpload::tryExist()
TDEIO::DavJob *job = TDEIO::davPropFind( url, doc, "0", false );
job->setWindow( mWindow );
job->addMetaData( "errorPage", "false" );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotPropFindResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotPropFindResult( TDEIO::Job * ) ) );
}
void ExchangeUpload::slotPropFindResult( TDEIO::Job *job )
@@ -262,11 +262,11 @@ void ExchangeUpload::startUpload( const KURL &url )
kdDebug() << "ExchangeUpload::mTimeZoneId=" << mTimeZoneId << endl;
addElement( doc, prop, "urn:schemas:calendar:", "dtstart",
- zoneAsUtc( event->dtStart(), mTimeZoneId ).toString( Qt::ISODate ) + "Z" );
+ zoneAsUtc( event->dtStart(), mTimeZoneId ).toString( TQt::ISODate ) + "Z" );
// event->dtStart().toString( "yyyy-MM-ddThh:mm:ss.zzzZ" ) );
// 2002-06-04T08:00:00.000Z" );
addElement( doc, prop, "urn:schemas:calendar:", "dtend",
- zoneAsUtc( event->dtEnd(), mTimeZoneId ).toString( Qt::ISODate ) + "Z" );
+ zoneAsUtc( event->dtEnd(), mTimeZoneId ).toString( TQt::ISODate ) + "Z" );
#if 0
addElement( doc, prop, "urn:schemas:calendar:", "dtstart",
event->dtStart().toString( "yyyy-MM-ddThh:mm:ss.zzz" )+ offsetString );
@@ -275,7 +275,7 @@ void ExchangeUpload::startUpload( const KURL &url )
addElement( doc, prop, "urn:schemas:calendar:", "dtend",
event->dtEnd().toString( "yyyy-MM-ddThh:mm:ss.zzz" ) + offsetString );
#endif
- addElement( doc, prop, "urn:schemas:calendar:", "lastmodified", zoneAsUtc( event->lastModified(), mTimeZoneId ).toString( Qt::ISODate )+"Z" );
+ addElement( doc, prop, "urn:schemas:calendar:", "lastmodified", zoneAsUtc( event->lastModified(), mTimeZoneId ).toString( TQt::ISODate )+"Z" );
// addElement( doc, prop, "urn:schemas:calendar:", "meetingstatus", "confirmed" );
addElement( doc, prop, "urn:schemas:httpmail:", "textdescription", event->description() );
@@ -308,7 +308,7 @@ void ExchangeUpload::startUpload( const KURL &url )
KCal::DateList::iterator it;
for ( it = exdates.begin(); it != exdates.end(); ++it ) {
TQString date = (*it).toString( "yyyy-MM-ddT00:00:00.000" )+ offsetString;
-// TQString date = zoneAsUtc( (*it), mTimeZoneId ).toString( Qt::ISODate );
+// TQString date = zoneAsUtc( (*it), mTimeZoneId ).toString( TQt::ISODate );
addElement( doc, exdate, "xml:", "v", date );
}
}
@@ -332,8 +332,8 @@ void ExchangeUpload::startUpload( const KURL &url )
TDEIO::DavJob *job = TDEIO::davPropPatch( url, doc, false );
job->setWindow( mWindow );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotPatchResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotPatchResult( TDEIO::Job * ) ) );
}
void ExchangeUpload::slotPatchResult( TDEIO::Job *job )
diff --git a/libkpimexchange/core/exchangeupload.h b/libkpimexchange/core/exchangeupload.h
index 85753b2c..255d9c03 100644
--- a/libkpimexchange/core/exchangeupload.h
+++ b/libkpimexchange/core/exchangeupload.h
@@ -24,7 +24,7 @@
#include <tqwidget.h>
#include <tdeio/job.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <libkcal/calendar.h>
#include <libkcal/event.h>
@@ -34,7 +34,7 @@ namespace KPIM {
class ExchangeAccount;
class KDE_EXPORT ExchangeUpload : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
ExchangeUpload( KCal::Event* event, ExchangeAccount* account, const TQString& timeZoneId, TQWidget* window=0 );
diff --git a/libkpimidentities/identity.cpp b/libkpimidentities/identity.cpp
index c43620ea..f81bc3b1 100644
--- a/libkpimidentities/identity.cpp
+++ b/libkpimidentities/identity.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// tdemidentity.cpp
// License: GPL
diff --git a/libkpimidentities/identity.h b/libkpimidentities/identity.h
index c1af97e1..6a6c972f 100644
--- a/libkpimidentities/identity.h
+++ b/libkpimidentities/identity.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
* User identity information
*
* Author: Stefan Taferner <taferner@kde.org>
@@ -9,7 +9,7 @@
#include <kleo/enum.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqstring.h>
#include <tqcstring.h>
diff --git a/libkpimidentities/identitycombo.cpp b/libkpimidentities/identitycombo.cpp
index adc79efd..200f93ac 100644
--- a/libkpimidentities/identitycombo.cpp
+++ b/libkpimidentities/identitycombo.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
identitycombo.cpp
This file is part of KMail, the KDE mail client.
@@ -48,9 +48,9 @@ IdentityCombo::IdentityCombo( IdentityManager* manager, TQWidget * parent, const
{
reloadCombo();
reloadUoidList();
- connect( this, TQT_SIGNAL(activated(int)), TQT_SLOT(slotEmitChanged(int)) );
- connect( manager, TQT_SIGNAL(changed()),
- TQT_SLOT(slotIdentityManagerChanged()) );
+ connect( this, TQ_SIGNAL(activated(int)), TQ_SLOT(slotEmitChanged(int)) );
+ connect( manager, TQ_SIGNAL(changed()),
+ TQ_SLOT(slotIdentityManagerChanged()) );
}
TQString IdentityCombo::currentIdentityName() const {
diff --git a/libkpimidentities/identitycombo.h b/libkpimidentities/identitycombo.h
index 1644f9c2..119983ed 100644
--- a/libkpimidentities/identitycombo.h
+++ b/libkpimidentities/identitycombo.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
identitycombo.h
This file is part of KMail, the KDE mail client.
@@ -34,7 +34,7 @@
#include <tqcombobox.h>
#include <tqvaluelist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQString;
@@ -49,7 +49,7 @@ class Identity;
**/
class KDE_EXPORT IdentityCombo : public TQComboBox {
- Q_OBJECT
+ TQ_OBJECT
public:
IdentityCombo( IdentityManager* manager, TQWidget * parent=0, const char * name=0 );
diff --git a/libkpimidentities/identitymanager.cpp b/libkpimidentities/identitymanager.cpp
index c7b97216..35414502 100644
--- a/libkpimidentities/identitymanager.cpp
+++ b/libkpimidentities/identitymanager.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
identitymanager.cpp
This file is part of KMail, the KDE mail client.
diff --git a/libkpimidentities/identitymanager.h b/libkpimidentities/identitymanager.h
index b0aee59d..76b2a290 100644
--- a/libkpimidentities/identitymanager.h
+++ b/libkpimidentities/identitymanager.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
identitymanager.h
This file is part of KMail, the KDE mail client.
@@ -35,7 +35,7 @@
#include <tqvaluelist.h>
#include <dcopobject.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TDEConfigBase;
class TDEConfig;
@@ -54,7 +54,7 @@ class Identity;
class IdentityManager : public ConfigManager, public DCOPObject
#undef IdentityManager
{
- Q_OBJECT
+ TQ_OBJECT
//
K_DCOP
diff --git a/libksieve/CMakeLists.txt b/libksieve/CMakeLists.txt
index 352dadb0..5e3c8a5d 100644
--- a/libksieve/CMakeLists.txt
+++ b/libksieve/CMakeLists.txt
@@ -26,7 +26,7 @@ link_directories(
##### ksieve (shared) ###########################
-configure_file( ${CMAKE_SOURCE_DIR}/cmake/modules/template_dummy_cpp.cmake dummy.cpp COPYONLY )
+configure_file( ${TDE_CMAKE_TEMPLATES}/tde_dummy_cpp.cmake dummy.cpp COPYONLY )
tde_add_library( ksieve SHARED
SOURCES dummy.cpp
diff --git a/libksieve/impl/lexer.h b/libksieve/impl/lexer.h
index f25abdd5..ee64745b 100644
--- a/libksieve/impl/lexer.h
+++ b/libksieve/impl/lexer.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
impl/lexer.h
Internal header file. Subject to change without notice. DO NOT USE.
diff --git a/libksieve/impl/parser.h b/libksieve/impl/parser.h
index dd8b8228..3fdb8b72 100644
--- a/libksieve/impl/parser.h
+++ b/libksieve/impl/parser.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
impl/parser.h
Internal header file. Subject to change without notice. DO NOT USE.
diff --git a/libksieve/impl/utf8validator.h b/libksieve/impl/utf8validator.h
index e0f11222..c193b56b 100644
--- a/libksieve/impl/utf8validator.h
+++ b/libksieve/impl/utf8validator.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
impl/utf8validator.h
This file is part of KSieve,
diff --git a/libksieve/ksieve/error.h b/libksieve/ksieve/error.h
index d2adcd8b..762c49e7 100644
--- a/libksieve/ksieve/error.h
+++ b/libksieve/ksieve/error.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
ksieve/error.h
This file is part of KSieve,
@@ -35,7 +35,7 @@
#include <tqstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#ifdef None // X headers
# undef None
diff --git a/libksieve/ksieve/lexer.h b/libksieve/ksieve/lexer.h
index d4dc7a97..4fce631c 100644
--- a/libksieve/ksieve/lexer.h
+++ b/libksieve/ksieve/lexer.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
ksieve/lexer.h
This file is part of KSieve,
diff --git a/libksieve/ksieve/parser.h b/libksieve/ksieve/parser.h
index 88bb9418..22e6ebf3 100644
--- a/libksieve/ksieve/parser.h
+++ b/libksieve/ksieve/parser.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
ksieve/parser.h
This file is part of KSieve,
@@ -33,7 +33,7 @@
#ifndef __KSIEVE_PARSING_H__
#define __KSIEVE_PARSING_H__
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQString;
diff --git a/libksieve/ksieve/scriptbuilder.h b/libksieve/ksieve/scriptbuilder.h
index f365adfa..9da7ce78 100644
--- a/libksieve/ksieve/scriptbuilder.h
+++ b/libksieve/ksieve/scriptbuilder.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
ksieve/interfaces/scriptbuilder.h
This file is part of KSieve,
diff --git a/libksieve/parser/lexer.cpp b/libksieve/parser/lexer.cpp
index 93c5732a..0213f7d7 100644
--- a/libksieve/parser/lexer.cpp
+++ b/libksieve/parser/lexer.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
parser/lexer.cpp
This file is part of KSieve,
@@ -42,7 +42,7 @@
#include <tqstringlist.h>
#include <tqtextcodec.h>
-#include <memory> // std::auto_ptr
+#include <memory>
#include <assert.h>
#include <ctype.h> // isdigit
@@ -618,8 +618,8 @@ namespace KSieve {
const TQTextCodec * const codec = TQTextCodec::codecForMib( 106 ); // UTF-8
assert( codec );
- const std::auto_ptr<TQTextDecoder> dec( codec->makeDecoder() );
- assert( dec.get() );
+ const std::unique_ptr<TQTextDecoder> dec( codec->makeDecoder() );
+ assert( dec );
while ( !atEnd() )
switch ( *mState.cursor ) {
diff --git a/libksieve/parser/parser.cpp b/libksieve/parser/parser.cpp
index c0459975..68718c32 100644
--- a/libksieve/parser/parser.cpp
+++ b/libksieve/parser/parser.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
parser/parser.cpp
This file is part of KSieve,
diff --git a/libksieve/parser/utf8validator.cpp b/libksieve/parser/utf8validator.cpp
index b8600e7b..5204383a 100644
--- a/libksieve/parser/utf8validator.cpp
+++ b/libksieve/parser/utf8validator.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
utf8validator.cpp
This file is part of KSieve,
diff --git a/libksieve/shared/error.cpp b/libksieve/shared/error.cpp
index 400587c3..a39e7de9 100644
--- a/libksieve/shared/error.cpp
+++ b/libksieve/shared/error.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
error.cpp
This file is part of KSieve,
diff --git a/libksieve/tests/lexertest.cpp b/libksieve/tests/lexertest.cpp
index 43d641fc..d3e54ba6 100644
--- a/libksieve/tests/lexertest.cpp
+++ b/libksieve/tests/lexertest.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
tests/lexertest.cpp
This file is part of the testsuite of KSieve,
diff --git a/libksieve/tests/parsertest.cpp b/libksieve/tests/parsertest.cpp
index ea718e4d..a671b821 100644
--- a/libksieve/tests/parsertest.cpp
+++ b/libksieve/tests/parsertest.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
tests/parsertest.cpp
This file is part of the testsuite of KSieve,
diff --git a/libtdenetwork/gpgmepp/context.h b/libtdenetwork/gpgmepp/context.h
index 054f8bee..2eaee660 100644
--- a/libtdenetwork/gpgmepp/context.h
+++ b/libtdenetwork/gpgmepp/context.h
@@ -16,8 +16,6 @@
You should have received a copy of the GNU General Public License
along with GPGME++; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-// -*- c++ -*-
#ifndef __GPGMEPP_CONTEXT_H__
#define __GPGMEPP_CONTEXT_H__
@@ -27,7 +25,7 @@
#include <utility>
#include <iosfwd>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
diff --git a/libtdenetwork/gpgmepp/context_p.h b/libtdenetwork/gpgmepp/context_p.h
index dfff5863..5d44ba7c 100644
--- a/libtdenetwork/gpgmepp/context_p.h
+++ b/libtdenetwork/gpgmepp/context_p.h
@@ -16,9 +16,6 @@
You should have received a copy of the GNU General Public License
along with GPGME; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-
-// -*- c++ -*-
#ifndef __GPGMEPP_CONTEXT_P_H__
#define __GPGMEPP_CONTEXT_P_H__
diff --git a/libtdenetwork/gpgmepp/data.h b/libtdenetwork/gpgmepp/data.h
index e1206472..b1c76029 100644
--- a/libtdenetwork/gpgmepp/data.h
+++ b/libtdenetwork/gpgmepp/data.h
@@ -25,7 +25,7 @@
#include <sys/types.h> // for size_t, off_t
#include <cstdio> // FILE
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
diff --git a/libtdenetwork/gpgmepp/data_p.h b/libtdenetwork/gpgmepp/data_p.h
index 38981cce..7f2c83fc 100644
--- a/libtdenetwork/gpgmepp/data_p.h
+++ b/libtdenetwork/gpgmepp/data_p.h
@@ -1,4 +1,4 @@
-/* data_p.h - wraps a gpgme data object, private part -*- c++ -*-
+/*
Copyright (C) 2003,2004 Klarlvdalens Datakonsult AB
This file is part of GPGME++.
diff --git a/libtdenetwork/gpgmepp/decryptionresult.h b/libtdenetwork/gpgmepp/decryptionresult.h
index da4833bb..1721a19e 100644
--- a/libtdenetwork/gpgmepp/decryptionresult.h
+++ b/libtdenetwork/gpgmepp/decryptionresult.h
@@ -26,7 +26,7 @@
#include <iosfwd>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
diff --git a/libtdenetwork/gpgmepp/encryptionresult.h b/libtdenetwork/gpgmepp/encryptionresult.h
index 4339bef5..44ea09a6 100644
--- a/libtdenetwork/gpgmepp/encryptionresult.h
+++ b/libtdenetwork/gpgmepp/encryptionresult.h
@@ -27,7 +27,7 @@
#include <vector>
#include <iosfwd>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
diff --git a/libtdenetwork/gpgmepp/engineinfo.h b/libtdenetwork/gpgmepp/engineinfo.h
index c07d2817..5dcd2f83 100644
--- a/libtdenetwork/gpgmepp/engineinfo.h
+++ b/libtdenetwork/gpgmepp/engineinfo.h
@@ -24,7 +24,7 @@
#include <gpgmepp/gpgmefw.h>
#include <gpgmepp/context.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
diff --git a/libtdenetwork/gpgmepp/eventloopinteractor.h b/libtdenetwork/gpgmepp/eventloopinteractor.h
index c3688833..37acc0f8 100644
--- a/libtdenetwork/gpgmepp/eventloopinteractor.h
+++ b/libtdenetwork/gpgmepp/eventloopinteractor.h
@@ -16,12 +16,10 @@
You should have received a copy of the GNU General Public License
along with GPGME; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-// -*- c++ -*-
#ifndef __GPGMEPP_EVENTLOOPINTERACTOR_H__
#define __GPGMEPP_EVENTLOOPINTERACTOR_H__
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
diff --git a/libtdenetwork/gpgmepp/importresult.h b/libtdenetwork/gpgmepp/importresult.h
index 020ed0c4..87f9aaf9 100644
--- a/libtdenetwork/gpgmepp/importresult.h
+++ b/libtdenetwork/gpgmepp/importresult.h
@@ -25,7 +25,7 @@
#include <gpgmepp/result.h>
#include <vector>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
diff --git a/libtdenetwork/gpgmepp/interfaces/dataprovider.h b/libtdenetwork/gpgmepp/interfaces/dataprovider.h
index 34dd4a7e..be926446 100644
--- a/libtdenetwork/gpgmepp/interfaces/dataprovider.h
+++ b/libtdenetwork/gpgmepp/interfaces/dataprovider.h
@@ -23,7 +23,7 @@
#include <sys/types.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
diff --git a/libtdenetwork/gpgmepp/key.h b/libtdenetwork/gpgmepp/key.h
index f05d372d..4bbd24be 100644
--- a/libtdenetwork/gpgmepp/key.h
+++ b/libtdenetwork/gpgmepp/key.h
@@ -16,8 +16,6 @@
You should have received a copy of the GNU General Public License
along with GPGME; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-// -*- c++ -*-
#ifndef __GPGMEPP_KEY_H__
#define __GPGMEPP_KEY_H__
@@ -27,7 +25,7 @@
#include <sys/time.h>
#include <vector>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
diff --git a/libtdenetwork/gpgmepp/keygenerationresult.h b/libtdenetwork/gpgmepp/keygenerationresult.h
index 7b2d98e8..2cf8c8a7 100644
--- a/libtdenetwork/gpgmepp/keygenerationresult.h
+++ b/libtdenetwork/gpgmepp/keygenerationresult.h
@@ -23,7 +23,7 @@
#include <gpgmepp/gpgmefw.h>
#include <gpgmepp/result.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
class Error;
diff --git a/libtdenetwork/gpgmepp/keylistresult.h b/libtdenetwork/gpgmepp/keylistresult.h
index 068210c0..064539cf 100644
--- a/libtdenetwork/gpgmepp/keylistresult.h
+++ b/libtdenetwork/gpgmepp/keylistresult.h
@@ -23,7 +23,7 @@
#include <gpgmepp/gpgmefw.h>
#include <gpgmepp/result.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
diff --git a/libtdenetwork/gpgmepp/shared.h b/libtdenetwork/gpgmepp/shared.h
index f9c79e0c..e263d8f1 100644
--- a/libtdenetwork/gpgmepp/shared.h
+++ b/libtdenetwork/gpgmepp/shared.h
@@ -1,4 +1,4 @@
-/* shared.h - internal tool for refcounting -*- c++ -*-
+/*
Copyright (C) 2003 Klarlvdalens Datakonsult AB
This file is part of GPGME++.
diff --git a/libtdenetwork/gpgmepp/signingresult.h b/libtdenetwork/gpgmepp/signingresult.h
index 1ee7a8de..a31b2928 100644
--- a/libtdenetwork/gpgmepp/signingresult.h
+++ b/libtdenetwork/gpgmepp/signingresult.h
@@ -30,7 +30,7 @@
#include <vector>
#include <iosfwd>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
diff --git a/libtdenetwork/gpgmepp/trustitem.h b/libtdenetwork/gpgmepp/trustitem.h
index 61c74617..aa1850b5 100644
--- a/libtdenetwork/gpgmepp/trustitem.h
+++ b/libtdenetwork/gpgmepp/trustitem.h
@@ -16,8 +16,6 @@
You should have received a copy of the GNU General Public License
along with GPGME; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-// -*- c++ -*-
#ifndef __GPGMEPP_TRUSTITEM_H__
#define __GPGMEPP_TRUSTITEM_H__
diff --git a/libtdenetwork/gpgmepp/util.h b/libtdenetwork/gpgmepp/util.h
index 8246cfc3..088a81c4 100644
--- a/libtdenetwork/gpgmepp/util.h
+++ b/libtdenetwork/gpgmepp/util.h
@@ -16,8 +16,6 @@
You should have received a copy of the GNU General Public License
along with GPGME; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-// -*- c++ -*-
#ifndef __GPGMEPP_UTIL_H__
#define __GPGMEPP_UTIL_H__
diff --git a/libtdenetwork/gpgmepp/verificationresult.h b/libtdenetwork/gpgmepp/verificationresult.h
index e572ecfe..70269df3 100644
--- a/libtdenetwork/gpgmepp/verificationresult.h
+++ b/libtdenetwork/gpgmepp/verificationresult.h
@@ -29,7 +29,7 @@
#include <vector>
#include <iosfwd>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
diff --git a/libtdenetwork/qgpgme/dataprovider.cpp b/libtdenetwork/qgpgme/dataprovider.cpp
index 308fbc12..af3bc715 100644
--- a/libtdenetwork/qgpgme/dataprovider.cpp
+++ b/libtdenetwork/qgpgme/dataprovider.cpp
@@ -16,9 +16,6 @@
You should have received a copy of the GNU General Public License
along with TQGPGME; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-// -*- c++ -*-
-
#include <config.h>
#include <qgpgme/dataprovider.h>
diff --git a/libtdenetwork/qgpgme/dataprovider.h b/libtdenetwork/qgpgme/dataprovider.h
index 58c097d1..e3613a25 100644
--- a/libtdenetwork/qgpgme/dataprovider.h
+++ b/libtdenetwork/qgpgme/dataprovider.h
@@ -16,15 +16,13 @@
You should have received a copy of the GNU General Public License
along with TQGPGME; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-// -*- c++ -*-
#ifndef __TQGPGME_DATAPROVIDER_H__
#define __TQGPGME_DATAPROVIDER_H__
#include <gpgmepp/interfaces/dataprovider.h>
#include <tqcstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace QGpgME {
diff --git a/libtdenetwork/qgpgme/eventloopinteractor.cpp b/libtdenetwork/qgpgme/eventloopinteractor.cpp
index b6d9830d..34cc51f4 100644
--- a/libtdenetwork/qgpgme/eventloopinteractor.cpp
+++ b/libtdenetwork/qgpgme/eventloopinteractor.cpp
@@ -16,9 +16,6 @@
You should have received a copy of the GNU General Public License
along with TQGPGME; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-// -*- c++ -*-
-
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -42,8 +39,8 @@ QGpgME::EventLoopInteractor::EventLoopInteractor( TQObject * parent, const char
{
if ( !parent )
if ( tqApp ) {
- connect( tqApp, TQT_SIGNAL(aboutToQuit()), TQT_SLOT(deleteLater()) );
- connect( tqApp, TQT_SIGNAL(aboutToQuit()), TQT_SIGNAL(aboutToDestroy()) );
+ connect( tqApp, TQ_SIGNAL(aboutToQuit()), TQ_SLOT(deleteLater()) );
+ connect( tqApp, TQ_SIGNAL(aboutToQuit()), TQ_SIGNAL(aboutToDestroy()) );
}
mSelf = this;
}
@@ -70,9 +67,9 @@ void * QGpgME::EventLoopInteractor::registerWatcher( int fd, Direction dir, bool
TQSocketNotifier * sn = new TQSocketNotifier( fd,
dir == Read ? TQSocketNotifier::Read : TQSocketNotifier::Write );
if ( dir == Read )
- connect( sn, TQT_SIGNAL(activated(int)), TQT_SLOT(slotReadActivity(int)) );
+ connect( sn, TQ_SIGNAL(activated(int)), TQ_SLOT(slotReadActivity(int)) );
else
- connect( sn, TQT_SIGNAL(activated(int)), TQT_SLOT(slotWriteActivity(int)) );
+ connect( sn, TQ_SIGNAL(activated(int)), TQ_SLOT(slotWriteActivity(int)) );
ok = true; // Can above operations fails?
return sn;
}
diff --git a/libtdenetwork/qgpgme/eventloopinteractor.h b/libtdenetwork/qgpgme/eventloopinteractor.h
index b89b1841..10f24031 100644
--- a/libtdenetwork/qgpgme/eventloopinteractor.h
+++ b/libtdenetwork/qgpgme/eventloopinteractor.h
@@ -16,15 +16,13 @@
You should have received a copy of the GNU General Public License
along with TQGPGME; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-// -*- c++ -*-
#ifndef __TQGPGME_EVENTLOOPINTERACTOR_H__
#define __TQGPGME_EVENTLOOPINTERACTOR_H__
#include <gpgmepp/eventloopinteractor.h>
#include <tqobject.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace GpgME {
class Context;
@@ -36,7 +34,7 @@ namespace GpgME {
namespace QGpgME {
class KDE_EXPORT EventLoopInteractor : public TQObject, public GpgME::EventLoopInteractor {
- Q_OBJECT
+ TQ_OBJECT
protected:
EventLoopInteractor( TQObject * parent, const char * name=0 );
diff --git a/libtdenetwork/qgpgme/tests/dataprovidertest.cpp b/libtdenetwork/qgpgme/tests/dataprovidertest.cpp
index 675c85ea..c72ac36c 100644
--- a/libtdenetwork/qgpgme/tests/dataprovidertest.cpp
+++ b/libtdenetwork/qgpgme/tests/dataprovidertest.cpp
@@ -16,9 +16,6 @@
You should have received a copy of the GNU General Public License
along with TQGPGME; if not, write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
-
-// -*- c++ -*-
-
#ifdef NDEBUG
#undef NDEBUG
#endif
diff --git a/libtdepim/CMakeL10n.txt b/libtdepim/CMakeL10n.txt
index b7519756..a080c11b 100644
--- a/libtdepim/CMakeL10n.txt
+++ b/libtdepim/CMakeL10n.txt
@@ -8,3 +8,9 @@ tde_l10n_create_template(
"../libkpimidentities"
EXCLUDES "(^|/)tests/"
)
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/libtdepim-desktops/"
+ SOURCES *.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/libtdepim/CMakeLists.txt b/libtdepim/CMakeLists.txt
index 15394c1e..f96611f3 100644
--- a/libtdepim/CMakeLists.txt
+++ b/libtdepim/CMakeLists.txt
@@ -38,9 +38,7 @@ link_directories(
##### headers ###################################
-install( FILES
- tdepimmacros.h kpimprefs.h
- DESTINATION ${INCLUDE_INSTALL_DIR} )
+install( FILES kpimprefs.h DESTINATION ${INCLUDE_INSTALL_DIR} )
##### other data ################################
diff --git a/libtdepim/Makefile.am b/libtdepim/Makefile.am
index 4a4d026b..8f01c947 100644
--- a/libtdepim/Makefile.am
+++ b/libtdepim/Makefile.am
@@ -48,7 +48,7 @@ libtdepim_la_LIBADD = $(top_builddir)/libkcal/libkcal.la \
$(LIB_TDEIO) $(LIB_TDEABC) $(LIB_TDEPARTS) $(LIB_TDEIMPROXY) $(LIB_POLL) $(LIB_QUI)
# $top_builddir)/libtdepim/resources/libkpimresources.la
-include_HEADERS = tdepimmacros.h kpimprefs.h
+include_HEADERS = kpimprefs.h
AM_CXXFLAGS = -DQT_PLUGIN
kde_widget_LTLIBRARIES = tdepimwidgets.la
diff --git a/libtdepim/about/kde_infopage.css b/libtdepim/about/kde_infopage.css
index e943b888..93452a7d 100644
--- a/libtdepim/about/kde_infopage.css
+++ b/libtdepim/about/kde_infopage.css
@@ -324,5 +324,3 @@ body {margin: 0px; padding: 0px; background-color: #003070; background-image: ur
height: 100px;
z-index: -1;
}
-
-/* vim:set sw=2 et nocindent smartindent: */
diff --git a/libtdepim/about/kde_infopage_rtl.css b/libtdepim/about/kde_infopage_rtl.css
index 00333019..5be37526 100644
--- a/libtdepim/about/kde_infopage_rtl.css
+++ b/libtdepim/about/kde_infopage_rtl.css
@@ -7,5 +7,3 @@ body {direction: rtl}
#nextlink {
text-align: left;
}
-
-/* vim:set sw=2 et nocindent smartindent: */
diff --git a/libtdepim/addresseelineedit.cpp b/libtdepim/addresseelineedit.cpp
index 1af06c84..77128b7a 100644
--- a/libtdepim/addresseelineedit.cpp
+++ b/libtdepim/addresseelineedit.cpp
@@ -151,8 +151,8 @@ void AddresseeLineEdit::init()
completionSourceWeightsDeleter.setObject( s_completionSourceWeights, new TQMap<TQString,int> );
ldapClientToCompletionSourceMapDeleter.setObject( s_ldapClientToCompletionSourceMap, new TQMap<int,int> );
}
-// connect( s_completion, TQT_SIGNAL( match( const TQString& ) ),
-// this, TQT_SLOT( slotMatched( const TQString& ) ) );
+// connect( s_completion, TQ_SIGNAL( match( const TQString& ) ),
+// this, TQ_SLOT( slotMatched( const TQString& ) ) );
if ( m_useCompletion ) {
if ( !s_LDAPTimer ) {
@@ -165,25 +165,25 @@ void AddresseeLineEdit::init()
if ( !m_completionInitialized ) {
setCompletionObject( s_completion, false );
- connect( this, TQT_SIGNAL( completion( const TQString& ) ),
- this, TQT_SLOT( slotCompletion() ) );
- connect( this, TQT_SIGNAL( returnPressed( const TQString& ) ),
- this, TQT_SLOT( slotReturnPressed( const TQString& ) ) );
+ connect( this, TQ_SIGNAL( completion( const TQString& ) ),
+ this, TQ_SLOT( slotCompletion() ) );
+ connect( this, TQ_SIGNAL( returnPressed( const TQString& ) ),
+ this, TQ_SLOT( slotReturnPressed( const TQString& ) ) );
TDECompletionBox *box = completionBox();
- connect( box, TQT_SIGNAL( highlighted( const TQString& ) ),
- this, TQT_SLOT( slotPopupCompletion( const TQString& ) ) );
- connect( box, TQT_SIGNAL( userCancelled( const TQString& ) ),
- TQT_SLOT( slotUserCancelled( const TQString& ) ) );
+ connect( box, TQ_SIGNAL( highlighted( const TQString& ) ),
+ this, TQ_SLOT( slotPopupCompletion( const TQString& ) ) );
+ connect( box, TQ_SIGNAL( userCancelled( const TQString& ) ),
+ TQ_SLOT( slotUserCancelled( const TQString& ) ) );
// The emitter is always called KPIM::IMAPCompletionOrder by contract
if ( !connectDCOPSignal( 0, "KPIM::IMAPCompletionOrder", "orderChanged()",
"slotIMAPCompletionOrderChanged()", false ) )
kdError() << "AddresseeLineEdit: connection to orderChanged() failed" << endl;
- connect( s_LDAPTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotStartLDAPLookup() ) );
- connect( s_LDAPSearch, TQT_SIGNAL( searchData( const KPIM::LdapResultList& ) ),
- TQT_SLOT( slotLDAPSearchData( const KPIM::LdapResultList& ) ) );
+ connect( s_LDAPTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( slotStartLDAPLookup() ) );
+ connect( s_LDAPSearch, TQ_SIGNAL( searchData( const KPIM::LdapResultList& ) ),
+ TQ_SLOT( slotLDAPSearchData( const KPIM::LdapResultList& ) ) );
m_completionInitialized = true;
}
@@ -346,7 +346,7 @@ void AddresseeLineEdit::mouseReleaseEvent( TQMouseEvent *e )
if ( m_useCompletion
&& TQApplication::clipboard()->supportsSelection()
&& !isReadOnly()
- && e->button() == Qt::MidButton ) {
+ && e->button() == TQt::MidButton ) {
m_smartPaste = true;
}
@@ -607,7 +607,7 @@ void AddresseeLineEdit::loadContacts()
TQApplication::restoreOverrideCursor();
if ( !m_addressBookConnected ) {
- connect( addressBook, TQT_SIGNAL( addressBookChanged( AddressBook* ) ), TQT_SLOT( loadContacts() ) );
+ connect( addressBook, TQ_SIGNAL( addressBookChanged( AddressBook* ) ), TQ_SLOT( loadContacts() ) );
m_addressBookConnected = true;
}
}
@@ -763,7 +763,7 @@ void AddresseeLineEdit::addCompletionItem( const TQString& string, int weight, i
weight = TQMAX( ( *it ).first, weight );
( *it ).first = weight;
} else {
- s_completionItemMap->insert( string, tqMakePair( weight, completionItemSource ) );
+ s_completionItemMap->insert( string, qMakePair( weight, completionItemSource ) );
}
if ( keyWords == 0 )
s_completion->addItem( string, weight );
@@ -925,7 +925,7 @@ TQPopupMenu* AddresseeLineEdit::createPopupMenu()
menu->setItemVisible( ShortAutoCompletion, false );
menu->setItemVisible( PopupAutoCompletion, false );
menu->insertItem( i18n( "Configure Completion Order..." ),
- this, TQT_SLOT( slotEditCompletionOrder() ) );
+ this, TQ_SLOT( slotEditCompletionOrder() ) );
}
return menu;
}
@@ -1037,12 +1037,12 @@ int KPIM::AddresseeLineEdit::addCompletionSource( const TQString &source, int we
bool KPIM::AddresseeLineEdit::eventFilter(TQObject *obj, TQEvent *e)
{
- if ( TQT_BASE_OBJECT(obj) == TQT_BASE_OBJECT(completionBox()) ) {
+ if ( obj == completionBox() ) {
if ( e->type() == TQEvent::MouseButtonPress ||
e->type() == TQEvent::MouseMove ||
e->type() == TQEvent::MouseButtonRelease ||
e->type() == TQEvent::MouseButtonDblClick ) {
- TQMouseEvent* me = TQT_TQMOUSEEVENT( e );
+ TQMouseEvent* me = static_cast<TQMouseEvent*>( e );
// find list box item at the event position
TQListBoxItem *item = completionBox()->itemAt( me->pos() );
if ( !item ) {
@@ -1054,8 +1054,8 @@ bool KPIM::AddresseeLineEdit::eventFilter(TQObject *obj, TQEvent *e)
// avoid selection of headers on button press, or move or release while
// a button is pressed
if ( e->type() == TQEvent::MouseButtonPress
- || me->state() & Qt::LeftButton || me->state() & Qt::MidButton
- || me->state() & Qt::RightButton ) {
+ || me->state() & TQt::LeftButton || me->state() & TQt::MidButton
+ || me->state() & TQt::RightButton ) {
if ( itemIsHeader(item) ) {
return true; // eat the event, we don't want anything to happen
} else {
@@ -1070,18 +1070,18 @@ bool KPIM::AddresseeLineEdit::eventFilter(TQObject *obj, TQEvent *e)
}
}
}
- if ( ( TQT_BASE_OBJECT(obj) == TQT_BASE_OBJECT(this) ) &&
+ if ( ( obj == this ) &&
( e->type() == TQEvent::AccelOverride ) ) {
- TQKeyEvent *ke = TQT_TQKEYEVENT( e );
+ TQKeyEvent *ke = static_cast<TQKeyEvent*>( e );
if ( ke->key() == Key_Up || ke->key() == Key_Down || ke->key() == Key_Tab ) {
ke->accept();
return true;
}
}
- if ( ( TQT_BASE_OBJECT(obj) == TQT_BASE_OBJECT(this) ) &&
+ if ( ( obj == this ) &&
( e->type() == TQEvent::KeyPress || e->type() == TQEvent::KeyRelease ) &&
completionBox()->isVisible() ) {
- TQKeyEvent *ke = TQT_TQKEYEVENT( e );
+ TQKeyEvent *ke = static_cast<TQKeyEvent*>( e );
int currentIndex = completionBox()->currentItem();
if ( currentIndex < 0 ) {
return true;
diff --git a/libtdepim/addresseelineedit.h b/libtdepim/addresseelineedit.h
index 278c8e08..95457fd1 100644
--- a/libtdepim/addresseelineedit.h
+++ b/libtdepim/addresseelineedit.h
@@ -37,7 +37,7 @@
#include "clicklineedit.h"
#include "kmailcompletion.h"
#include <dcopobject.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TDEConfig;
@@ -53,7 +53,7 @@ namespace KPIM {
class KDE_EXPORT AddresseeLineEdit : public ClickLineEdit, public DCOPObject
{
K_DCOP
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/addresseeselector.cpp b/libtdepim/addresseeselector.cpp
index 77f2be02..b89184e6 100644
--- a/libtdepim/addresseeselector.cpp
+++ b/libtdepim/addresseeselector.cpp
@@ -227,8 +227,8 @@ class SelectionViewItem : public TQListViewItem
AddresseeSelector::AddresseeSelector( Selection *selection, TQWidget *parent, const char *name )
: TQWidget( parent, name ), mSelection( selection ), mManager( 0 )
{
- mMoveMapper = new TQSignalMapper( TQT_TQOBJECT(this) );
- mRemoveMapper = new TQSignalMapper( TQT_TQOBJECT(this) );
+ mMoveMapper = new TQSignalMapper( this );
+ mRemoveMapper = new TQSignalMapper( this );
mAddressBookManager = new AddressBookManager();
@@ -250,17 +250,17 @@ AddresseeSelector::~AddresseeSelector()
void AddresseeSelector::init()
{
- connect( TDEABC::StdAddressBook::self( true ), TQT_SIGNAL( addressBookChanged( AddressBook* ) ),
- this, TQT_SLOT( reloadAddressBook() ) );
- connect( mAddresseeFilter, TQT_SIGNAL( textChanged( const TQString& ) ),
- this, TQT_SLOT( updateAddresseeView() ) );
- connect( mAddressBookCombo, TQT_SIGNAL( activated( int ) ),
- this, TQT_SLOT( updateAddresseeView() ) );
-
- connect( mMoveMapper, TQT_SIGNAL( mapped( int ) ),
- this, TQT_SLOT( move( int ) ) );
- connect( mRemoveMapper, TQT_SIGNAL( mapped( int ) ),
- this, TQT_SLOT( remove( int ) ) );
+ connect( TDEABC::StdAddressBook::self( true ), TQ_SIGNAL( addressBookChanged( AddressBook* ) ),
+ this, TQ_SLOT( reloadAddressBook() ) );
+ connect( mAddresseeFilter, TQ_SIGNAL( textChanged( const TQString& ) ),
+ this, TQ_SLOT( updateAddresseeView() ) );
+ connect( mAddressBookCombo, TQ_SIGNAL( activated( int ) ),
+ this, TQ_SLOT( updateAddresseeView() ) );
+
+ connect( mMoveMapper, TQ_SIGNAL( mapped( int ) ),
+ this, TQ_SLOT( move( int ) ) );
+ connect( mRemoveMapper, TQ_SIGNAL( mapped( int ) ),
+ this, TQ_SLOT( remove( int ) ) );
reloadAddressBook();
}
@@ -298,9 +298,9 @@ void AddresseeSelector::initGUI()
listView->setFullWidth( true );
mSelectionViews.append( listView );
- connect( listView, TQT_SIGNAL( doubleClicked( TQListViewItem*, const TQPoint&, int ) ),
- mRemoveMapper, TQT_SLOT( map() ) );
- mRemoveMapper->setMapping( TQT_TQOBJECT(listView), i );
+ connect( listView, TQ_SIGNAL( doubleClicked( TQListViewItem*, const TQPoint&, int ) ),
+ mRemoveMapper, TQ_SLOT( map() ) );
+ mRemoveMapper->setMapping( listView, i );
TQVBoxLayout *buttonLayout = new TQVBoxLayout( this );
buttonLayout->setAlignment( TQt::AlignBottom );
@@ -311,18 +311,18 @@ void AddresseeSelector::initGUI()
moveButton->setIconSet( moveSet );
moveButton->setFixedSize( 30, 30 );
- connect( moveButton, TQT_SIGNAL( clicked() ),
- mMoveMapper, TQT_SLOT( map() ) );
- mMoveMapper->setMapping( TQT_TQOBJECT(moveButton), i );
+ connect( moveButton, TQ_SIGNAL( clicked() ),
+ mMoveMapper, TQ_SLOT( map() ) );
+ mMoveMapper->setMapping( moveButton, i );
// remove button
TQToolButton *removeButton = new TQToolButton( this );
removeButton->setIconSet( removeSet );
removeButton->setFixedSize( 30, 30 );
- connect( removeButton, TQT_SIGNAL( clicked() ),
- mRemoveMapper, TQT_SLOT( map() ) );
- mRemoveMapper->setMapping( TQT_TQOBJECT(removeButton), i );
+ connect( removeButton, TQ_SIGNAL( clicked() ),
+ mRemoveMapper, TQ_SLOT( map() ) );
+ mRemoveMapper->setMapping( removeButton, i );
buttonLayout->addWidget( moveButton );
buttonLayout->addWidget( removeButton );
diff --git a/libtdepim/addresseeselector.h b/libtdepim/addresseeselector.h
index 2fa40f4e..fa4a3c76 100644
--- a/libtdepim/addresseeselector.h
+++ b/libtdepim/addresseeselector.h
@@ -26,7 +26,7 @@
#include <tdeabc/distributionlist.h>
#include <tdeabc/resource.h>
#include <kdialogbase.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqbitarray.h>
#include <tqpixmap.h>
@@ -165,7 +165,7 @@ class SelectionItem
class KDE_EXPORT AddresseeSelector : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -215,7 +215,7 @@ class KDE_EXPORT AddresseeSelector : public TQWidget
class KDE_EXPORT AddresseeSelectorDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/addresseeview.cpp b/libtdepim/addresseeview.cpp
index 16c9bbf2..defdecfa 100644
--- a/libtdepim/addresseeview.cpp
+++ b/libtdepim/addresseeview.cpp
@@ -64,12 +64,12 @@ AddresseeView::AddresseeView( TQWidget *parent, const char *name,
TQStyleSheetItem *link = sheet->item( "a" );
link->setColor( TDEGlobalSettings::linkColor() );
- connect( this, TQT_SIGNAL( mailClick( const TQString&, const TQString& ) ),
- this, TQT_SLOT( slotMailClicked( const TQString&, const TQString& ) ) );
- connect( this, TQT_SIGNAL( urlClick( const TQString& ) ),
- this, TQT_SLOT( slotUrlClicked( const TQString& ) ) );
- connect( this, TQT_SIGNAL( highlighted( const TQString& ) ),
- this, TQT_SLOT( slotHighlighted( const TQString& ) ) );
+ connect( this, TQ_SIGNAL( mailClick( const TQString&, const TQString& ) ),
+ this, TQ_SLOT( slotMailClicked( const TQString&, const TQString& ) ) );
+ connect( this, TQ_SIGNAL( urlClick( const TQString& ) ),
+ this, TQ_SLOT( slotUrlClicked( const TQString& ) ) );
+ connect( this, TQ_SIGNAL( highlighted( const TQString& ) ),
+ this, TQ_SLOT( slotHighlighted( const TQString& ) ) );
setNotifyClick( true );
@@ -88,13 +88,13 @@ AddresseeView::AddresseeView( TQWidget *parent, const char *name,
mActionShowCustomFields = new TDEToggleAction( i18n( "Show Custom Fields" ) );
mActionShowCustomFields->setCheckedState( i18n( "Hide Custom Fields" ) );
- connect( mActionShowBirthday, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( configChanged() ) );
- connect( mActionShowAddresses, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( configChanged() ) );
- connect( mActionShowEmails, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( configChanged() ) );
- connect( mActionShowPhones, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( configChanged() ) );
- connect( mActionShowURLs, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( configChanged() ) );
- connect( mActionShowIMAddresses, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( configChanged() ) );
- connect( mActionShowCustomFields, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( configChanged() ) );
+ connect( mActionShowBirthday, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( configChanged() ) );
+ connect( mActionShowAddresses, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( configChanged() ) );
+ connect( mActionShowEmails, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( configChanged() ) );
+ connect( mActionShowPhones, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( configChanged() ) );
+ connect( mActionShowURLs, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( configChanged() ) );
+ connect( mActionShowIMAddresses, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( configChanged() ) );
+ connect( mActionShowCustomFields, TQ_SIGNAL( toggled( bool ) ), TQ_SLOT( configChanged() ) );
if ( !config ) {
mConfig = new TDEConfig( "kaddressbookrc" );
@@ -106,10 +106,10 @@ AddresseeView::AddresseeView( TQWidget *parent, const char *name,
// set up IMProxy to display contacts' IM presence and make connections to keep the display live
mKIMProxy = ::KIMProxy::instance( kapp->dcopClient() );
- connect( mKIMProxy, TQT_SIGNAL( sigContactPresenceChanged( const TQString& ) ),
- this, TQT_SLOT( slotPresenceChanged( const TQString& ) ) );
- connect( mKIMProxy, TQT_SIGNAL( sigPresenceInfoExpired() ),
- this, TQT_SLOT( slotPresenceInfoExpired() ) );
+ connect( mKIMProxy, TQ_SIGNAL( sigContactPresenceChanged( const TQString& ) ),
+ this, TQ_SLOT( slotPresenceChanged( const TQString& ) ) );
+ connect( mKIMProxy, TQ_SIGNAL( sigPresenceInfoExpired() ),
+ this, TQ_SLOT( slotPresenceInfoExpired() ) );
}
AddresseeView::~AddresseeView()
@@ -547,10 +547,10 @@ void AddresseeView::updateView()
TQMimeSourceFactory::defaultFactory()->setImage( imageURL, TQImage(mImageData) );
else {
mImageJob = TDEIO::get( KURL( picture.url() ), false, false );
- connect( mImageJob, TQT_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ),
- this, TQT_SLOT( data( TDEIO::Job*, const TQByteArray& ) ) );
- connect( mImageJob, TQT_SIGNAL( result( TDEIO::Job* ) ),
- this, TQT_SLOT( result( TDEIO::Job* ) ) );
+ connect( mImageJob, TQ_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ),
+ this, TQ_SLOT( data( TDEIO::Job*, const TQByteArray& ) ) );
+ connect( mImageJob, TQ_SIGNAL( result( TDEIO::Job* ) ),
+ this, TQ_SLOT( result( TDEIO::Job* ) ) );
}
} else {
TQMimeSourceFactory::defaultFactory()->setPixmap( imageURL,
diff --git a/libtdepim/addresseeview.h b/libtdepim/addresseeview.h
index 15cc7490..59a02124 100644
--- a/libtdepim/addresseeview.h
+++ b/libtdepim/addresseeview.h
@@ -27,7 +27,7 @@
#include <tdeabc/addressee.h>
#include <ktextbrowser.h>
#include <tdeimproxy.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace TDEIO {
class Job;
@@ -42,7 +42,7 @@ namespace KPIM {
class KDE_EXPORT AddresseeView : public KTextBrowser
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/libtdepim/addressesdialog.cpp b/libtdepim/addressesdialog.cpp
index d764b376..deb9d1f2 100644
--- a/libtdepim/addressesdialog.cpp
+++ b/libtdepim/addressesdialog.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of libtdepim.
*
@@ -241,8 +241,8 @@ AddresseeViewItem* AddressesDialog::selectedToItem()
if ( !d->toItem )
{
d->toItem = new AddresseeViewItem( d->ui->mSelectedView, i18n("To"), AddresseeViewItem::To );
- connect(d->toItem, TQT_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
- this, TQT_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
+ connect(d->toItem, TQ_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
+ this, TQ_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
}
return d->toItem;
}
@@ -252,8 +252,8 @@ AddresseeViewItem* AddressesDialog::selectedCcItem()
if ( !d->ccItem )
{
d->ccItem = new AddresseeViewItem( d->ui->mSelectedView, i18n("CC"), AddresseeViewItem::CC );
- connect(d->ccItem, TQT_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
- this, TQT_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
+ connect(d->ccItem, TQ_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
+ this, TQ_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
}
return d->ccItem;
}
@@ -263,8 +263,8 @@ AddresseeViewItem* AddressesDialog::selectedBccItem()
if ( !d->bccItem )
{
d->bccItem = new AddresseeViewItem( d->ui->mSelectedView, i18n("BCC"), AddresseeViewItem::BCC );
- connect(d->bccItem, TQT_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
- this, TQT_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
+ connect(d->bccItem, TQ_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
+ this, TQ_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
}
return d->bccItem;
}
@@ -325,8 +325,8 @@ AddressesDialog::updateRecentAddresses()
if ( !d->recent ) {
d->recent = new AddresseeViewItem( d->ui->mAvailableView, recentGroup );
- connect(d->recent, TQT_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
- this, TQT_SLOT(availableAddressSelected(AddresseeViewItem*, bool)));
+ connect(d->recent, TQ_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
+ this, TQ_SLOT(availableAddressSelected(AddresseeViewItem*, bool)));
d->recent->setVisible( false );
d->groupDict.insert( recentGroup, d->recent );
}
@@ -464,8 +464,8 @@ AddressesDialog::updateAvailableAddressees()
static const TQString &personalGroup = TDEGlobal::staticQString( i18n( "Other Addresses" ) );
d->ui->mAvailableView->setRootIsDecorated( true );
d->personal = new AddresseeViewItem( d->ui->mAvailableView, personalGroup );
- //connect(d->personal, TQT_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
- // this, TQT_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
+ //connect(d->personal, TQ_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
+ // this, TQ_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
d->personal->setVisible( false );
d->groupDict.insert( personalGroup, d->personal );
@@ -570,36 +570,36 @@ AddressesDialog::selectedAddressSelected( AddresseeViewItem* item, bool selected
void
AddressesDialog::initConnections()
{
- connect( d->ui->mFilterEdit, TQT_SIGNAL(textChanged(const TQString &)),
- TQT_SLOT(filterChanged(const TQString &)) );
- connect( d->ui->mToButton, TQT_SIGNAL(clicked()),
- TQT_SLOT(addSelectedTo()) );
- connect( d->ui->mCCButton, TQT_SIGNAL(clicked()),
- TQT_SLOT(addSelectedCC()) );
- connect( d->ui->mBCCButton, TQT_SIGNAL(clicked()),
- TQT_SLOT(addSelectedBCC()) );
- connect( d->ui->mSaveAs, TQT_SIGNAL(clicked()),
- TQT_SLOT(saveAs()) );
- connect( d->ui->mLdapSearch, TQT_SIGNAL(clicked()),
- TQT_SLOT(searchLdap()) );
- connect( d->ui->mRemoveButton, TQT_SIGNAL(clicked()),
- TQT_SLOT(removeEntry()) );
- connect( d->ui->mAvailableView, TQT_SIGNAL(selectionChanged()),
- TQT_SLOT(availableSelectionChanged()) );
- connect( d->ui->mAvailableView, TQT_SIGNAL(doubleClicked(TQListViewItem*)),
- TQT_SLOT(addSelectedTo()) );
- connect( d->ui->mSelectedView, TQT_SIGNAL(selectionChanged()),
- TQT_SLOT(selectedSelectionChanged()) );
- connect( d->ui->mSelectedView, TQT_SIGNAL(doubleClicked(TQListViewItem*)),
- TQT_SLOT(removeEntry()) );
+ connect( d->ui->mFilterEdit, TQ_SIGNAL(textChanged(const TQString &)),
+ TQ_SLOT(filterChanged(const TQString &)) );
+ connect( d->ui->mToButton, TQ_SIGNAL(clicked()),
+ TQ_SLOT(addSelectedTo()) );
+ connect( d->ui->mCCButton, TQ_SIGNAL(clicked()),
+ TQ_SLOT(addSelectedCC()) );
+ connect( d->ui->mBCCButton, TQ_SIGNAL(clicked()),
+ TQ_SLOT(addSelectedBCC()) );
+ connect( d->ui->mSaveAs, TQ_SIGNAL(clicked()),
+ TQ_SLOT(saveAs()) );
+ connect( d->ui->mLdapSearch, TQ_SIGNAL(clicked()),
+ TQ_SLOT(searchLdap()) );
+ connect( d->ui->mRemoveButton, TQ_SIGNAL(clicked()),
+ TQ_SLOT(removeEntry()) );
+ connect( d->ui->mAvailableView, TQ_SIGNAL(selectionChanged()),
+ TQ_SLOT(availableSelectionChanged()) );
+ connect( d->ui->mAvailableView, TQ_SIGNAL(doubleClicked(TQListViewItem*)),
+ TQ_SLOT(addSelectedTo()) );
+ connect( d->ui->mSelectedView, TQ_SIGNAL(selectionChanged()),
+ TQ_SLOT(selectedSelectionChanged()) );
+ connect( d->ui->mSelectedView, TQ_SIGNAL(doubleClicked(TQListViewItem*)),
+ TQ_SLOT(removeEntry()) );
#ifndef TDEPIM_NEW_DISTRLISTS
- connect( TDEABC::DistributionListWatcher::self(), TQT_SIGNAL( changed() ),
- this, TQT_SLOT( updateAvailableAddressees() ) );
+ connect( TDEABC::DistributionListWatcher::self(), TQ_SIGNAL( changed() ),
+ this, TQ_SLOT( updateAvailableAddressees() ) );
#endif
- connect( TDEABC::StdAddressBook::self( true ), TQT_SIGNAL( addressBookChanged(AddressBook*) ),
- this, TQT_SLOT( updateAvailableAddressees() ) );
+ connect( TDEABC::StdAddressBook::self( true ), TQ_SIGNAL( addressBookChanged(AddressBook*) ),
+ this, TQ_SLOT( updateAvailableAddressees() ) );
}
void
@@ -619,8 +619,8 @@ AddressesDialog::addAddresseeToAvailable( const TDEABC::Addressee& addr, Address
for ( uint i = 0; i < addr.emails().count(); ++i ) {
AddresseeViewItem* addressee = new AddresseeViewItem( d->groupDict[ *it ], addr, i );
- connect(addressee, TQT_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
- this, TQT_SLOT(availableAddressSelected(AddresseeViewItem*, bool)));
+ connect(addressee, TQ_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
+ this, TQ_SLOT(availableAddressSelected(AddresseeViewItem*, bool)));
}
}
}
@@ -634,8 +634,8 @@ AddressesDialog::addAddresseeToAvailable( const TDEABC::Addressee& addr, Address
if ( defaultParent && noCategory ) { // only non-categorized items here
AddresseeViewItem* addressee = new AddresseeViewItem( defaultParent, addr );
- connect(addressee, TQT_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
- this, TQT_SLOT(availableAddressSelected(AddresseeViewItem*, bool)));
+ connect(addressee, TQ_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
+ this, TQ_SLOT(availableAddressSelected(AddresseeViewItem*, bool)));
}
}
@@ -653,8 +653,8 @@ AddressesDialog::addAddresseeToSelected( const TDEABC::Addressee& addr, Addresse
myChild = static_cast<AddresseeViewItem*>( myChild->nextSibling() );
}
AddresseeViewItem* addressee = new AddresseeViewItem( defaultParent, addr );
- connect(addressee, TQT_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
- this, TQT_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
+ connect(addressee, TQ_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
+ this, TQ_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
defaultParent->setOpen( true );
}
@@ -701,8 +701,8 @@ AddressesDialog::addAddresseesToSelected( AddresseeViewItem *parent,
address->setVisible( false );
selectedToAvailableMapping.insert(address, newItem);
selectedToAvailableMapping.insert(newItem, address);
- connect(newItem, TQT_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
- this, TQT_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
+ connect(newItem, TQ_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
+ this, TQ_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
}
parent->setOpen( true );
@@ -725,8 +725,8 @@ AddressesDialog::addSelectedTo()
if ( !d->toItem )
{
d->toItem = new AddresseeViewItem( d->ui->mSelectedView, i18n("To"), AddresseeViewItem::To );
- connect(d->toItem, TQT_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
- this, TQT_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
+ connect(d->toItem, TQ_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
+ this, TQ_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
}
addAddresseesToSelected( d->toItem, selectedAvailableAddresses );
@@ -746,8 +746,8 @@ AddressesDialog::addSelectedCC()
if ( !d->ccItem )
{
d->ccItem = new AddresseeViewItem( d->ui->mSelectedView, i18n("CC"), AddresseeViewItem::CC );
- connect(d->ccItem , TQT_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
- this, TQT_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
+ connect(d->ccItem , TQ_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
+ this, TQ_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
}
addAddresseesToSelected( d->ccItem, selectedAvailableAddresses );
@@ -767,8 +767,8 @@ AddressesDialog::addSelectedBCC()
if ( !d->bccItem )
{
d->bccItem = new AddresseeViewItem( d->ui->mSelectedView, i18n("BCC"), AddresseeViewItem::BCC );
- connect(d->bccItem , TQT_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
- this, TQT_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
+ connect(d->bccItem , TQ_SIGNAL(addressSelected(AddresseeViewItem*, bool)),
+ this, TQ_SLOT(selectedAddressSelected(AddresseeViewItem*, bool)));
}
addAddresseesToSelected( d->bccItem, selectedAvailableAddresses );
@@ -946,8 +946,8 @@ AddressesDialog::searchLdap()
{
if ( !d->ldapSearchDialog ) {
d->ldapSearchDialog = new LDAPSearchDialog( this );
- connect( d->ldapSearchDialog, TQT_SIGNAL( addresseesAdded() ),
- TQT_SLOT(ldapSearchResult() ) );
+ connect( d->ldapSearchDialog, TQ_SIGNAL( addresseesAdded() ),
+ TQ_SLOT(ldapSearchResult() ) );
}
d->ldapSearchDialog->show();
}
@@ -1169,8 +1169,8 @@ AddressesDialog::addDistributionLists()
AddresseeViewItem *item = new AddresseeViewItem( d->topdist, dlist.name() );
d->dists.append( item );
- connect( item, TQT_SIGNAL( addressSelected( AddresseeViewItem*, bool ) ),
- this, TQT_SLOT( availableAddressSelected( AddresseeViewItem*, bool ) ) );
+ connect( item, TQ_SIGNAL( addressSelected( AddresseeViewItem*, bool ) ),
+ this, TQ_SLOT( availableAddressSelected( AddresseeViewItem*, bool ) ) );
#ifdef TDEPIM_NEW_DISTRLISTS
KPIM::DistributionList::Entry::List::Iterator itemIt;
diff --git a/libtdepim/addressesdialog.h b/libtdepim/addressesdialog.h
index 1cc383b2..da56b31f 100644
--- a/libtdepim/addressesdialog.h
+++ b/libtdepim/addressesdialog.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of libtdepim.
*
@@ -31,13 +31,13 @@
#include <tqstringlist.h>
#include <tqptrlist.h>
#include <tqptrdict.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KPIM {
class AddresseeViewItem : public TQObject, public TDEListViewItem
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -78,7 +78,7 @@ namespace KPIM {
class KDE_EXPORT AddressesDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
AddressesDialog( TQWidget *widget=0, const char *name=0 );
diff --git a/libtdepim/addresspicker.ui b/libtdepim/addresspicker.ui
index 704b3d58..a37369aa 100644
--- a/libtdepim/addresspicker.ui
+++ b/libtdepim/addresspicker.ui
@@ -299,9 +299,6 @@
<property name="text">
<string>Save as &amp;Distribution List...</string>
</property>
- <property name="accel">
- <string>Alt+D</string>
- </property>
</widget>
<widget class="TQPushButton" row="3" column="0">
<property name="name">
diff --git a/libtdepim/broadcaststatus.h b/libtdepim/broadcaststatus.h
index fc9eb607..37da6f95 100644
--- a/libtdepim/broadcaststatus.h
+++ b/libtdepim/broadcaststatus.h
@@ -14,7 +14,7 @@
#include <tqobject.h>
#include <tqmap.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#undef None
@@ -32,7 +32,7 @@ class ProgressItem;
class KDE_EXPORT BroadcastStatus : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/categoryeditdialog.cpp b/libtdepim/categoryeditdialog.cpp
index 26abbc07..d282596d 100644
--- a/libtdepim/categoryeditdialog.cpp
+++ b/libtdepim/categoryeditdialog.cpp
@@ -87,9 +87,9 @@ CategoryEditDialog::CategoryEditDialog( KPimPrefs *prefs, TQWidget* parent,
fillList();
- connect( d->mAddButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( add() ) );
- connect( d->mEditButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( edit() ) );
- connect( d->mDeleteButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( remove() ) );
+ connect( d->mAddButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( add() ) );
+ connect( d->mEditButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( edit() ) );
+ connect( d->mDeleteButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( remove() ) );
}
/*
diff --git a/libtdepim/categoryeditdialog.h b/libtdepim/categoryeditdialog.h
index 86cd8e32..32d2c26c 100644
--- a/libtdepim/categoryeditdialog.h
+++ b/libtdepim/categoryeditdialog.h
@@ -23,7 +23,7 @@
#define KPIM_CATEGORYEDITDIALOG_H
#include <kdialogbase.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KPimPrefs;
@@ -31,7 +31,7 @@ namespace KPIM {
class KDE_EXPORT CategoryEditDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
CategoryEditDialog( KPimPrefs *prefs, TQWidget* parent = 0,
diff --git a/libtdepim/categoryselectdialog.cpp b/libtdepim/categoryselectdialog.cpp
index cf1b2ac6..d75948ad 100644
--- a/libtdepim/categoryselectdialog.cpp
+++ b/libtdepim/categoryselectdialog.cpp
@@ -44,10 +44,10 @@ CategorySelectDialog::CategorySelectDialog( KPimPrefs *prefs, TQWidget* parent,
setCategories();
- connect( mWidget->mButtonEdit, TQT_SIGNAL(clicked()),
- TQT_SIGNAL(editCategories()) );
- connect( mWidget->mButtonClear, TQT_SIGNAL(clicked()),
- TQT_SLOT(clear()) );
+ connect( mWidget->mButtonEdit, TQ_SIGNAL(clicked()),
+ TQ_SIGNAL(editCategories()) );
+ connect( mWidget->mButtonClear, TQ_SIGNAL(clicked()),
+ TQ_SLOT(clear()) );
}
void CategorySelectDialog::setCategories( const TQStringList &categoryList )
diff --git a/libtdepim/categoryselectdialog.h b/libtdepim/categoryselectdialog.h
index ca501ddc..9c4f4149 100644
--- a/libtdepim/categoryselectdialog.h
+++ b/libtdepim/categoryselectdialog.h
@@ -23,7 +23,7 @@
#define KPIM_CATEGORYSELECTDIALOG_H
#include <kdialogbase.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KPimPrefs;
class CategorySelectDialog_base;
@@ -32,7 +32,7 @@ namespace KPIM {
class KDE_EXPORT CategorySelectDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
CategorySelectDialog( KPimPrefs *prefs, TQWidget *parent = 0,
diff --git a/libtdepim/cfgc/example.cfg b/libtdepim/cfgc/example.cfg
index 18c7b8b1..6b07152a 100644
--- a/libtdepim/cfgc/example.cfg
+++ b/libtdepim/cfgc/example.cfg
@@ -27,12 +27,12 @@
</entry>
</group>
<group name="MyOptions">
- <entry type=TQSTRING_OBJECT_NAME_STRING>
+ <entry type="TQString">
<name>MyString</name>
<label>This is a string</label>
<default>Default String</default>
</entry>
- <entry type=TQSTRINGLIST_OBJECT_NAME_STRING>
+ <entry type="TQStringList">
<name>MyStringList</name>
<default>up,down</default>
</entry>
diff --git a/libtdepim/clicklineedit.h b/libtdepim/clicklineedit.h
index ca832b5e..1d6ad5c2 100644
--- a/libtdepim/clicklineedit.h
+++ b/libtdepim/clicklineedit.h
@@ -22,7 +22,7 @@
#define CLICKLINEEDIT_H
#include <klineedit.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KPIM {
@@ -35,7 +35,7 @@ namespace KPIM {
*/
class KDE_EXPORT ClickLineEdit : public KLineEdit
{
- Q_OBJECT
+ TQ_OBJECT
TQ_PROPERTY( TQString clickMessage READ clickMessage WRITE setClickMessage )
public:
diff --git a/libtdepim/collectingprocess.cpp b/libtdepim/collectingprocess.cpp
index e9d640ce..da665464 100644
--- a/libtdepim/collectingprocess.cpp
+++ b/libtdepim/collectingprocess.cpp
@@ -61,18 +61,18 @@ CollectingProcess::~CollectingProcess() {
bool CollectingProcess::start( RunMode runmode, Communication comm ) {
// prevent duplicate connection
- disconnect( this, TQT_SIGNAL( receivedStdout( TDEProcess *, char *, int ) ),
- this, TQT_SLOT( slotReceivedStdout( TDEProcess *, char *, int ) ) );
+ disconnect( this, TQ_SIGNAL( receivedStdout( TDEProcess *, char *, int ) ),
+ this, TQ_SLOT( slotReceivedStdout( TDEProcess *, char *, int ) ) );
if ( comm & Stdout ) {
- connect( this, TQT_SIGNAL( receivedStdout( TDEProcess *, char *, int ) ),
- this, TQT_SLOT( slotReceivedStdout( TDEProcess *, char *, int ) ) );
+ connect( this, TQ_SIGNAL( receivedStdout( TDEProcess *, char *, int ) ),
+ this, TQ_SLOT( slotReceivedStdout( TDEProcess *, char *, int ) ) );
}
// prevent duplicate connection
- disconnect( this, TQT_SIGNAL( receivedStderr( TDEProcess *, char *, int ) ),
- this, TQT_SLOT( slotReceivedStderr( TDEProcess *, char *, int ) ) );
+ disconnect( this, TQ_SIGNAL( receivedStderr( TDEProcess *, char *, int ) ),
+ this, TQ_SLOT( slotReceivedStderr( TDEProcess *, char *, int ) ) );
if ( comm & Stderr ) {
- connect( this, TQT_SIGNAL( receivedStderr( TDEProcess *, char *, int ) ),
- this, TQT_SLOT( slotReceivedStderr( TDEProcess *, char *, int ) ) );
+ connect( this, TQ_SIGNAL( receivedStderr( TDEProcess *, char *, int ) ),
+ this, TQ_SLOT( slotReceivedStderr( TDEProcess *, char *, int ) ) );
}
return TDEProcess::start( runmode, comm );
}
diff --git a/libtdepim/collectingprocess.h b/libtdepim/collectingprocess.h
index 962fe15d..f0128a0c 100644
--- a/libtdepim/collectingprocess.h
+++ b/libtdepim/collectingprocess.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++ -*-
+/*
collectingprocess.h
This file is part of libtdepim.
@@ -34,7 +34,7 @@
#define __KPIM_COLLECTINGPROCESS_H__
#include <kprocess.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KPIM {
@@ -47,7 +47,7 @@ namespace KPIM {
* @author Ingo Kloecker <kloecker@kde.org>
*/
class KDE_EXPORT CollectingProcess : public TDEProcess {
- Q_OBJECT
+ TQ_OBJECT
public:
CollectingProcess( TQObject * parent = 0, const char * name = 0 );
diff --git a/libtdepim/completionordereditor.cpp b/libtdepim/completionordereditor.cpp
index 924a669a..8a3a25eb 100644
--- a/libtdepim/completionordereditor.cpp
+++ b/libtdepim/completionordereditor.cpp
@@ -1,4 +1,4 @@
-/** -*- c++ -*-
+/*
* completionordereditor.cpp
*
* Copyright (c) 2004 David Faure <faure@kde.org>
@@ -225,20 +225,20 @@ CompletionOrderEditor::CompletionOrderEditor( KPIM::LdapSearch* ldapSearch,
mUpButton = new KPushButton( upDownBox, "mUpButton" );
mUpButton->setIconSet( BarIconSet( "go-up", TDEIcon::SizeSmall ) );
mUpButton->setEnabled( false ); // b/c no item is selected yet
- mUpButton->setFocusPolicy( TQ_StrongFocus );
+ mUpButton->setFocusPolicy( TQWidget::StrongFocus );
mDownButton = new KPushButton( upDownBox, "mDownButton" );
mDownButton->setIconSet( BarIconSet( "go-down", TDEIcon::SizeSmall ) );
mDownButton->setEnabled( false ); // b/c no item is selected yet
- mDownButton->setFocusPolicy( TQ_StrongFocus );
+ mDownButton->setFocusPolicy( TQWidget::StrongFocus );
TQWidget* spacer = new TQWidget( upDownBox );
upDownBox->setStretchFactor( spacer, 100 );
- connect( mListView, TQT_SIGNAL( selectionChanged( TQListViewItem* ) ),
- TQT_SLOT( slotSelectionChanged( TQListViewItem* ) ) );
- connect( mUpButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotMoveUp() ) );
- connect( mDownButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( slotMoveDown() ) );
+ connect( mListView, TQ_SIGNAL( selectionChanged( TQListViewItem* ) ),
+ TQ_SLOT( slotSelectionChanged( TQListViewItem* ) ) );
+ connect( mUpButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotMoveUp() ) );
+ connect( mDownButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotMoveDown() ) );
}
CompletionOrderEditor::~CompletionOrderEditor()
diff --git a/libtdepim/completionordereditor.h b/libtdepim/completionordereditor.h
index 53061f04..e4485a81 100644
--- a/libtdepim/completionordereditor.h
+++ b/libtdepim/completionordereditor.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
* completionordereditor.h
*
* Copyright (c) 2004 David Faure <faure@kde.org>
@@ -62,7 +62,7 @@ public:
};
class CompletionOrderEditor : public KDialogBase {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/configmanager.h b/libtdepim/configmanager.h
index 37147843..213524c4 100644
--- a/libtdepim/configmanager.h
+++ b/libtdepim/configmanager.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
configmanager.h
KMail, the KDE mail client.
@@ -19,7 +19,7 @@
#include <tqobject.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KMKernel;
@@ -30,7 +30,7 @@ namespace KPIM {
* @author Marc Mutz <mutz@kde.org>
**/
class KDE_EXPORT ConfigManager : public TQObject {
- Q_OBJECT
+ TQ_OBJECT
public:
/** Commit changes to disk and emit changed() if necessary. */
diff --git a/libtdepim/csshelper.cpp b/libtdepim/csshelper.cpp
index bb4d8ea9..8ed060da 100644
--- a/libtdepim/csshelper.cpp
+++ b/libtdepim/csshelper.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
csshelper.cpp
This file is part of KMail, the KDE mail client.
diff --git a/libtdepim/csshelper.h b/libtdepim/csshelper.h
index ab9190cf..0d5b1a44 100644
--- a/libtdepim/csshelper.h
+++ b/libtdepim/csshelper.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
csshelper.h
This file is part of KMail, the KDE mail client.
diff --git a/libtdepim/designerfields.cpp b/libtdepim/designerfields.cpp
index c30d1986..c93ae6f3 100644
--- a/libtdepim/designerfields.cpp
+++ b/libtdepim/designerfields.cpp
@@ -63,16 +63,16 @@ void DesignerFields::initGUI( const TQString &uiFile )
layout->addWidget( wdg );
- TQObjectList *list = wdg->queryList( TQWIDGET_OBJECT_NAME_STRING );
+ TQObjectList *list = wdg->queryList( "TQWidget" );
TQObjectListIt it( *list );
TQStringList allowedTypes;
- allowedTypes << TQLINEEDIT_OBJECT_NAME_STRING
- << TQTEXTEDIT_OBJECT_NAME_STRING
- << TQSPINBOX_OBJECT_NAME_STRING
- << TQCHECKBOX_OBJECT_NAME_STRING
- << TQCOMBOBOX_OBJECT_NAME_STRING
- << TQDATETIMEEDIT_OBJECT_NAME_STRING
+ allowedTypes << "TQLineEdit"
+ << "TQTextEdit"
+ << "TQSpinBox"
+ << "TQCheckBox"
+ << "TQComboBox"
+ << "TQDateTimeEdit"
<< "KLineEdit"
<< "KDateTimeWidget"
<< "KDatePicker";
@@ -83,34 +83,34 @@ void DesignerFields::initGUI( const TQString &uiFile )
if ( name.startsWith( "X_" ) ) {
name = name.mid( 2 );
- TQWidget *widget = TQT_TQWIDGET( it.current() );
+ TQWidget *widget = static_cast<TQWidget*>( it.current() );
if ( !name.isEmpty() )
mWidgets.insert( name, widget );
- if ( it.current()->inherits( TQLINEEDIT_OBJECT_NAME_STRING ) )
- connect( it.current(), TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SIGNAL( modified() ) );
- else if ( it.current()->inherits( TQSPINBOX_OBJECT_NAME_STRING ) )
- connect( it.current(), TQT_SIGNAL( valueChanged( int ) ),
- TQT_SIGNAL( modified() ) );
- else if ( it.current()->inherits( TQCHECKBOX_OBJECT_NAME_STRING ) )
- connect( it.current(), TQT_SIGNAL( toggled( bool ) ),
- TQT_SIGNAL( modified() ) );
- else if ( it.current()->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) )
- connect( it.current(), TQT_SIGNAL( activated( const TQString& ) ),
- TQT_SIGNAL( modified() ) );
- else if ( it.current()->inherits( TQDATETIMEEDIT_OBJECT_NAME_STRING ) )
- connect( it.current(), TQT_SIGNAL( valueChanged( const TQDateTime& ) ),
- TQT_SIGNAL( modified() ) );
+ if ( it.current()->inherits( "TQLineEdit" ) )
+ connect( it.current(), TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SIGNAL( modified() ) );
+ else if ( it.current()->inherits( "TQSpinBox" ) )
+ connect( it.current(), TQ_SIGNAL( valueChanged( int ) ),
+ TQ_SIGNAL( modified() ) );
+ else if ( it.current()->inherits( "TQCheckBox" ) )
+ connect( it.current(), TQ_SIGNAL( toggled( bool ) ),
+ TQ_SIGNAL( modified() ) );
+ else if ( it.current()->inherits( "TQComboBox" ) )
+ connect( it.current(), TQ_SIGNAL( activated( const TQString& ) ),
+ TQ_SIGNAL( modified() ) );
+ else if ( it.current()->inherits( "TQDateTimeEdit" ) )
+ connect( it.current(), TQ_SIGNAL( valueChanged( const TQDateTime& ) ),
+ TQ_SIGNAL( modified() ) );
else if ( it.current()->inherits( "KDateTimeWidget" ) )
- connect( it.current(), TQT_SIGNAL( valueChanged( const TQDateTime& ) ),
- TQT_SIGNAL( modified() ) );
+ connect( it.current(), TQ_SIGNAL( valueChanged( const TQDateTime& ) ),
+ TQ_SIGNAL( modified() ) );
else if ( it.current()->inherits( "KDatePicker" ) )
- connect( it.current(), TQT_SIGNAL( dateChanged( TQDate ) ),
- TQT_SIGNAL( modified() ) );
- else if ( it.current()->inherits( TQTEXTEDIT_OBJECT_NAME_STRING ) )
- connect( it.current(), TQT_SIGNAL( textChanged() ),
- TQT_SIGNAL( modified() ) );
+ connect( it.current(), TQ_SIGNAL( dateChanged( TQDate ) ),
+ TQ_SIGNAL( modified() ) );
+ else if ( it.current()->inherits( "TQTextEdit" ) )
+ connect( it.current(), TQ_SIGNAL( textChanged() ),
+ TQ_SIGNAL( modified() ) );
if ( !widget->isEnabled() )
mDisabledWidgets.append( widget );
@@ -143,16 +143,16 @@ void DesignerFields::load( DesignerFields::Storage *storage )
TQMap<TQString, TQWidget *>::ConstIterator widIt;
for ( widIt = mWidgets.begin(); widIt != mWidgets.end(); ++widIt ) {
TQString value;
- if ( widIt.data()->inherits( TQLINEEDIT_OBJECT_NAME_STRING ) ) {
+ if ( widIt.data()->inherits( "TQLineEdit" ) ) {
TQLineEdit *wdg = static_cast<TQLineEdit*>( widIt.data() );
wdg->setText( TQString() );
- } else if ( widIt.data()->inherits( TQSPINBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( widIt.data()->inherits( "TQSpinBox" ) ) {
TQSpinBox *wdg = static_cast<TQSpinBox*>( widIt.data() );
wdg->setValue( wdg->minValue() );
- } else if ( widIt.data()->inherits( TQCHECKBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( widIt.data()->inherits( "TQCheckBox" ) ) {
TQCheckBox *wdg = static_cast<TQCheckBox*>( widIt.data() );
wdg->setChecked( false );
- } else if ( widIt.data()->inherits( TQDATETIMEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( widIt.data()->inherits( "TQDateTimeEdit" ) ) {
TQDateTimeEdit *wdg = static_cast<TQDateTimeEdit*>( widIt.data() );
wdg->setDateTime( TQDateTime::currentDateTime() );
} else if ( widIt.data()->inherits( "KDateTimeWidget" ) ) {
@@ -161,10 +161,10 @@ void DesignerFields::load( DesignerFields::Storage *storage )
} else if ( widIt.data()->inherits( "KDatePicker" ) ) {
KDatePicker *wdg = static_cast<KDatePicker*>( widIt.data() );
wdg->setDate( TQDate::currentDate() );
- } else if ( widIt.data()->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( widIt.data()->inherits( "TQComboBox" ) ) {
TQComboBox *wdg = static_cast<TQComboBox*>( widIt.data() );
wdg->setCurrentItem( 0 );
- } else if ( widIt.data()->inherits( TQTEXTEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( widIt.data()->inherits( "TQTextEdit" ) ) {
TQTextEdit *wdg = static_cast<TQTextEdit*>( widIt.data() );
wdg->setText( TQString() );
}
@@ -176,28 +176,28 @@ void DesignerFields::load( DesignerFields::Storage *storage )
TQMap<TQString, TQWidget *>::ConstIterator it = mWidgets.find( *it2 );
if ( it != mWidgets.end() ) {
- if ( it.data()->inherits( TQLINEEDIT_OBJECT_NAME_STRING ) ) {
+ if ( it.data()->inherits( "TQLineEdit" ) ) {
TQLineEdit *wdg = static_cast<TQLineEdit*>( it.data() );
wdg->setText( value );
- } else if ( it.data()->inherits( TQSPINBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( it.data()->inherits( "TQSpinBox" ) ) {
TQSpinBox *wdg = static_cast<TQSpinBox*>( it.data() );
wdg->setValue( value.toInt() );
- } else if ( it.data()->inherits( TQCHECKBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( it.data()->inherits( "TQCheckBox" ) ) {
TQCheckBox *wdg = static_cast<TQCheckBox*>( it.data() );
wdg->setChecked( value == "true" || value == "1" );
- } else if ( it.data()->inherits( TQDATETIMEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( it.data()->inherits( "TQDateTimeEdit" ) ) {
TQDateTimeEdit *wdg = static_cast<TQDateTimeEdit*>( it.data() );
- wdg->setDateTime( TQDateTime::fromString( value, Qt::ISODate ) );
+ wdg->setDateTime( TQDateTime::fromString( value, TQt::ISODate ) );
} else if ( it.data()->inherits( "KDateTimeWidget" ) ) {
KDateTimeWidget *wdg = static_cast<KDateTimeWidget*>( it.data() );
- wdg->setDateTime( TQDateTime::fromString( value, Qt::ISODate ) );
+ wdg->setDateTime( TQDateTime::fromString( value, TQt::ISODate ) );
} else if ( it.data()->inherits( "KDatePicker" ) ) {
KDatePicker *wdg = static_cast<KDatePicker*>( it.data() );
- wdg->setDate( TQDate::fromString( value, Qt::ISODate ) );
- } else if ( it.data()->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) ) {
+ wdg->setDate( TQDate::fromString( value, TQt::ISODate ) );
+ } else if ( it.data()->inherits( "TQComboBox" ) ) {
TQComboBox *wdg = static_cast<TQComboBox*>( it.data() );
wdg->setCurrentText( value );
- } else if ( it.data()->inherits( TQTEXTEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( it.data()->inherits( "TQTextEdit" ) ) {
TQTextEdit *wdg = static_cast<TQTextEdit*>( it.data() );
wdg->setText( value );
}
@@ -210,28 +210,28 @@ void DesignerFields::save( DesignerFields::Storage *storage )
TQMap<TQString, TQWidget*>::Iterator it;
for ( it = mWidgets.begin(); it != mWidgets.end(); ++it ) {
TQString value;
- if ( it.data()->inherits( TQLINEEDIT_OBJECT_NAME_STRING ) ) {
+ if ( it.data()->inherits( "TQLineEdit" ) ) {
TQLineEdit *wdg = static_cast<TQLineEdit*>( it.data() );
value = wdg->text();
- } else if ( it.data()->inherits( TQSPINBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( it.data()->inherits( "TQSpinBox" ) ) {
TQSpinBox *wdg = static_cast<TQSpinBox*>( it.data() );
value = TQString::number( wdg->value() );
- } else if ( it.data()->inherits( TQCHECKBOX_OBJECT_NAME_STRING ) ) {
+ } else if ( it.data()->inherits( "TQCheckBox" ) ) {
TQCheckBox *wdg = static_cast<TQCheckBox*>( it.data() );
value = ( wdg->isChecked() ? "true" : "false" );
- } else if ( it.data()->inherits( TQDATETIMEEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( it.data()->inherits( "TQDateTimeEdit" ) ) {
TQDateTimeEdit *wdg = static_cast<TQDateTimeEdit*>( it.data() );
- value = wdg->dateTime().toString( Qt::ISODate );
+ value = wdg->dateTime().toString( TQt::ISODate );
} else if ( it.data()->inherits( "KDateTimeWidget" ) ) {
KDateTimeWidget *wdg = static_cast<KDateTimeWidget*>( it.data() );
- value = wdg->dateTime().toString( Qt::ISODate );
+ value = wdg->dateTime().toString( TQt::ISODate );
} else if ( it.data()->inherits( "KDatePicker" ) ) {
KDatePicker *wdg = static_cast<KDatePicker*>( it.data() );
- value = wdg->date().toString( Qt::ISODate );
- } else if ( it.data()->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) ) {
+ value = wdg->date().toString( TQt::ISODate );
+ } else if ( it.data()->inherits( "TQComboBox" ) ) {
TQComboBox *wdg = static_cast<TQComboBox*>( it.data() );
value = wdg->currentText();
- } else if ( it.data()->inherits( TQTEXTEDIT_OBJECT_NAME_STRING ) ) {
+ } else if ( it.data()->inherits( "TQTextEdit" ) ) {
TQTextEdit *wdg = static_cast<TQTextEdit*>( it.data() );
value = wdg->text();
}
diff --git a/libtdepim/designerfields.h b/libtdepim/designerfields.h
index dd05b336..b243e48c 100644
--- a/libtdepim/designerfields.h
+++ b/libtdepim/designerfields.h
@@ -28,13 +28,13 @@
#include <tqpair.h>
#include <tqstringlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KPIM {
class KDE_EXPORT DesignerFields : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
DesignerFields( const TQString &uiFile, TQWidget *parent,
diff --git a/libtdepim/diffalgo.h b/libtdepim/diffalgo.h
index 513db7e3..a437d9d5 100644
--- a/libtdepim/diffalgo.h
+++ b/libtdepim/diffalgo.h
@@ -23,7 +23,7 @@
#define DIFFALGO_H
#include <tqvaluelist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KPIM {
diff --git a/libtdepim/distributionlist.cpp b/libtdepim/distributionlist.cpp
index 2fd50f5a..74cb99ca 100644
--- a/libtdepim/distributionlist.cpp
+++ b/libtdepim/distributionlist.cpp
@@ -44,7 +44,7 @@ static ParseList parseCustom( const TQString& str )
Q_ASSERT( helpList.count() < 3 ); // 1 or 2 items, but not more
const TQString uid = helpList.first();
const TQString email = helpList.last();
- res.append( tqMakePair( uid, email ) );
+ res.append( qMakePair( uid, email ) );
}
return res;
}
diff --git a/libtdepim/embeddedurlpage.cpp b/libtdepim/embeddedurlpage.cpp
index 79bf5863..4a3aed79 100644
--- a/libtdepim/embeddedurlpage.cpp
+++ b/libtdepim/embeddedurlpage.cpp
@@ -55,16 +55,16 @@ void EmbeddedURLPage::loadContents()
if ( mimetype == "auto" )
mimetype == KMimeType::findByURL( mUri )->name();
// "this" is both the parent widget and the parent object
- mPart = KParts::ComponentFactory::createPartInstanceFromQuery<KParts::ReadOnlyPart>( mimetype, TQString(), TQT_TQWIDGET(this), 0, TQT_TQOBJECT(this), 0 );
+ mPart = KParts::ComponentFactory::createPartInstanceFromQuery<KParts::ReadOnlyPart>( mimetype, TQString(), this, 0, this, 0 );
if ( mPart ) {
mPart->openURL( mUri );
mPart->widget()->show();
}
//void KParts::BrowserExtension::openURLRequestDelayed( const KURL &url, const KParts::URLArgs &args = KParts::URLArgs() )
KParts::BrowserExtension* be = KParts::BrowserExtension::childObject( mPart );
- connect( be, TQT_SIGNAL( openURLRequestDelayed( const KURL &, const KParts::URLArgs & ) ),
-// mPart, TQT_SLOT( openURL( const KURL & ) ) );
- this, TQT_SIGNAL( openURL( const KURL & ) ) );
+ connect( be, TQ_SIGNAL( openURLRequestDelayed( const KURL &, const KParts::URLArgs & ) ),
+// mPart, TQ_SLOT( openURL( const KURL & ) ) );
+ this, TQ_SIGNAL( openURL( const KURL & ) ) );
}
}
diff --git a/libtdepim/embeddedurlpage.h b/libtdepim/embeddedurlpage.h
index 0a24b206..d644ce6f 100644
--- a/libtdepim/embeddedurlpage.h
+++ b/libtdepim/embeddedurlpage.h
@@ -22,7 +22,7 @@
#define KPIM_EMBEDDEDURLPAGE_H
#include <tqwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <kurl.h>
namespace KParts { class ReadOnlyPart; }
@@ -31,7 +31,7 @@ namespace KPIM {
class KDE_EXPORT EmbeddedURLPage : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
EmbeddedURLPage( const TQString &url, const TQString &mimetype,
diff --git a/libtdepim/htmldiffalgodisplay.h b/libtdepim/htmldiffalgodisplay.h
index 35d95f5c..e38b7a60 100644
--- a/libtdepim/htmldiffalgodisplay.h
+++ b/libtdepim/htmldiffalgodisplay.h
@@ -25,7 +25,7 @@
#include "diffalgo.h"
#include <ktextbrowser.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KPIM {
diff --git a/libtdepim/infoextension.h b/libtdepim/infoextension.h
index f1d43a52..737cbf8e 100644
--- a/libtdepim/infoextension.h
+++ b/libtdepim/infoextension.h
@@ -23,7 +23,7 @@
#define INFOEXTENSION_H
#include <tqobject.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQWidget;
@@ -37,7 +37,7 @@ namespace KParts
**/
class KDE_EXPORT InfoExtension : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/interfaces/AddressBookServiceIface.h b/libtdepim/interfaces/AddressBookServiceIface.h
index e07ac3e7..e39b8fc7 100644
--- a/libtdepim/interfaces/AddressBookServiceIface.h
+++ b/libtdepim/interfaces/AddressBookServiceIface.h
@@ -27,7 +27,7 @@
#include <kurl.h>
#include <tqstring.h>
#include <tqcstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KPIM {
diff --git a/libtdepim/interfaces/MailTransportServiceIface.h b/libtdepim/interfaces/MailTransportServiceIface.h
index d256775a..3a69f83b 100644
--- a/libtdepim/interfaces/MailTransportServiceIface.h
+++ b/libtdepim/interfaces/MailTransportServiceIface.h
@@ -28,7 +28,7 @@
#include <tqstring.h>
#include <tqcstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KPim {
diff --git a/libtdepim/kaccount.cpp b/libtdepim/kaccount.cpp
index 86cf4cfc..292365db 100644
--- a/libtdepim/kaccount.cpp
+++ b/libtdepim/kaccount.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kaccount.cpp
This file is part of KMail, the KDE mail client.
diff --git a/libtdepim/kaccount.h b/libtdepim/kaccount.h
index 559a3c03..e5ec2d79 100644
--- a/libtdepim/kaccount.h
+++ b/libtdepim/kaccount.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kaccount.h
This file is part of KMail, the KDE mail client.
@@ -33,7 +33,7 @@
#define __KACCOUNT
#include <tqstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TDEConfig;
diff --git a/libtdepim/kaddrbook.cpp b/libtdepim/kaddrbook.cpp
index c0122923..b32b017e 100644
--- a/libtdepim/kaddrbook.cpp
+++ b/libtdepim/kaddrbook.cpp
@@ -1,4 +1,3 @@
-// -*- mode: C++; c-file-style: "gnu" -*-
// kaddrbook.cpp
// Author: Stefan Taferner <taferner@kde.org>
// This code is under GPL
diff --git a/libtdepim/kaddrbook.h b/libtdepim/kaddrbook.h
index a9e2c8c5..bd44e25a 100644
--- a/libtdepim/kaddrbook.h
+++ b/libtdepim/kaddrbook.h
@@ -9,7 +9,7 @@
#include <tdeversion.h>
#include <tdeabc/addressee.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace TDEABC {
class AddressBook;
diff --git a/libtdepim/kcmdesignerfields.cpp b/libtdepim/kcmdesignerfields.cpp
index 9156452c..dd5ab8bf 100644
--- a/libtdepim/kcmdesignerfields.cpp
+++ b/libtdepim/kcmdesignerfields.cpp
@@ -67,19 +67,19 @@ class PageItem : public TQCheckListItem
setText( 0, wdg->caption() );
TQPixmap pm = TQPixmap::grabWidget( wdg );
- TQImage img = pm.convertToImage().smoothScale( 300, 300, TQ_ScaleMin );
+ TQImage img = pm.convertToImage().smoothScale( 300, 300, TQImage::ScaleMin );
mPreview = img;
- TQObjectList *list = wdg->queryList( TQWIDGET_OBJECT_NAME_STRING );
+ TQObjectList *list = wdg->queryList( "TQWidget" );
TQObjectListIt it( *list );
TQMap<TQString, TQString> allowedTypes;
- allowedTypes.insert( TQLINEEDIT_OBJECT_NAME_STRING, i18n( "Text" ) );
- allowedTypes.insert( TQTEXTEDIT_OBJECT_NAME_STRING, i18n( "Text" ) );
- allowedTypes.insert( TQSPINBOX_OBJECT_NAME_STRING, i18n( "Numeric Value" ) );
- allowedTypes.insert( TQCHECKBOX_OBJECT_NAME_STRING, i18n( "Boolean" ) );
- allowedTypes.insert( TQCOMBOBOX_OBJECT_NAME_STRING, i18n( "Selection" ) );
- allowedTypes.insert( TQDATETIMEEDIT_OBJECT_NAME_STRING, i18n( "Date & Time" ) );
+ allowedTypes.insert( "TQLineEdit", i18n( "Text" ) );
+ allowedTypes.insert( "TQTextEdit", i18n( "Text" ) );
+ allowedTypes.insert( "TQSpinBox", i18n( "Numeric Value" ) );
+ allowedTypes.insert( "TQCheckBox", i18n( "Boolean" ) );
+ allowedTypes.insert( "TQComboBox", i18n( "Selection" ) );
+ allowedTypes.insert( "TQDateTimeEdit", i18n( "Date & Time" ) );
allowedTypes.insert( "KLineEdit", i18n( "Text" ) );
allowedTypes.insert( "KDateTimeWidget", i18n( "Date & Time" ) );
allowedTypes.insert( "KDatePicker", i18n( "Date" ) );
@@ -91,7 +91,7 @@ class PageItem : public TQCheckListItem
new TQListViewItem( this, name,
allowedTypes[ it.current()->className() ],
it.current()->className(),
- TQWhatsThis::textFor( TQT_TQWIDGET( it.current() ) ) );
+ TQWhatsThis::textFor( static_cast<TQWidget*>( it.current() ) ) );
}
}
@@ -129,7 +129,7 @@ class PageItem : public TQCheckListItem
KCMDesignerFields::KCMDesignerFields( TQWidget *parent, const char *name )
: TDECModule( parent, name )
{
- TQTimer::singleShot( 0, this, TQT_SLOT( delayedInit() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( delayedInit() ) );
TDEAboutData *about = new TDEAboutData( I18N_NOOP( "KCMDesignerfields" ),
I18N_NOOP( "TQt Designer Fields Dialog" ),
@@ -147,27 +147,27 @@ void KCMDesignerFields::delayedInit()
initGUI();
- connect( mPageView, TQT_SIGNAL( selectionChanged( TQListViewItem* ) ),
- this, TQT_SLOT( updatePreview( TQListViewItem* ) ) );
- connect( mPageView, TQT_SIGNAL( clicked( TQListViewItem* ) ),
- this, TQT_SLOT( itemClicked( TQListViewItem* ) ) );
+ connect( mPageView, TQ_SIGNAL( selectionChanged( TQListViewItem* ) ),
+ this, TQ_SLOT( updatePreview( TQListViewItem* ) ) );
+ connect( mPageView, TQ_SIGNAL( clicked( TQListViewItem* ) ),
+ this, TQ_SLOT( itemClicked( TQListViewItem* ) ) );
- connect( mDeleteButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( deleteFile() ) );
- connect( mImportButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( importFile() ) );
- connect( mDesignerButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( startDesigner() ) );
+ connect( mDeleteButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( deleteFile() ) );
+ connect( mImportButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( importFile() ) );
+ connect( mDesignerButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( startDesigner() ) );
load();
// Install a dirwatcher that will detect newly created or removed designer files
- KDirWatch *dw = new KDirWatch( TQT_TQOBJECT(this) );
+ KDirWatch *dw = new KDirWatch( this );
TDEStandardDirs::makeDir(localUiDir());
dw->addDir( localUiDir(), true );
- connect( dw, TQT_SIGNAL( created(const TQString&) ), TQT_SLOT( rebuildList() ) );
- connect( dw, TQT_SIGNAL( deleted(const TQString&) ), TQT_SLOT( rebuildList() ) );
- connect( dw, TQT_SIGNAL( dirty(const TQString&) ), TQT_SLOT( rebuildList() ) );
+ connect( dw, TQ_SIGNAL( created(const TQString&) ), TQ_SLOT( rebuildList() ) );
+ connect( dw, TQ_SIGNAL( deleted(const TQString&) ), TQ_SLOT( rebuildList() ) );
+ connect( dw, TQ_SIGNAL( dirty(const TQString&) ), TQ_SLOT( rebuildList() ) );
}
void KCMDesignerFields::deleteFile()
@@ -284,7 +284,7 @@ void KCMDesignerFields::initGUI()
mPageView->setFullWidth( true );
hbox->addWidget( mPageView );
- TQGroupBox *box = new TQGroupBox(1, Qt::Horizontal, i18n("Preview of Selected Page"), this );
+ TQGroupBox *box = new TQGroupBox(1, TQt::Horizontal, i18n("Preview of Selected Page"), this );
mPagePreview = new TQLabel( box );
mPagePreview->setMinimumWidth( 300 );
diff --git a/libtdepim/kcmdesignerfields.h b/libtdepim/kcmdesignerfields.h
index 8ab57541..c90eff48 100644
--- a/libtdepim/kcmdesignerfields.h
+++ b/libtdepim/kcmdesignerfields.h
@@ -23,7 +23,7 @@
#define KPIM_KCMDESIGNERFIELDS_H
#include <tdecmodule.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TDEListView;
@@ -35,7 +35,7 @@ namespace KPIM {
class KDE_EXPORT KCMDesignerFields : public TDECModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/kdateedit.cpp b/libtdepim/kdateedit.cpp
index dd6b4e48..0f50f75b 100644
--- a/libtdepim/kdateedit.cpp
+++ b/libtdepim/kdateedit.cpp
@@ -38,7 +38,7 @@ class DateValidator : public TQValidator
{
public:
DateValidator( const TQStringList &keywords, TQWidget* parent, const char* name = 0 )
- : TQValidator( TQT_TQOBJECT(parent), name ), mKeywords( keywords )
+ : TQValidator( parent, name ), mKeywords( keywords )
{}
virtual State validate( TQString &str, int& ) const
@@ -80,17 +80,17 @@ KDateEdit::KDateEdit( TQWidget *parent, const char *name )
changeItem( today, 0 );
setMinimumSize( sizeHint() );
- connect( lineEdit(), TQT_SIGNAL( returnPressed() ),
- this, TQT_SLOT( lineEnterPressed() ) );
- connect( this, TQT_SIGNAL( textChanged( const TQString& ) ),
- TQT_SLOT( slotTextChanged( const TQString& ) ) );
+ connect( lineEdit(), TQ_SIGNAL( returnPressed() ),
+ this, TQ_SLOT( lineEnterPressed() ) );
+ connect( this, TQ_SIGNAL( textChanged( const TQString& ) ),
+ TQ_SLOT( slotTextChanged( const TQString& ) ) );
mPopup = new KDatePickerPopup( KDatePickerPopup::DatePicker | KDatePickerPopup::Words );
mPopup->hide();
mPopup->installEventFilter( this );
- connect( mPopup, TQT_SIGNAL( dateChanged( TQDate ) ),
- TQT_SLOT( dateSelected( TQDate ) ) );
+ connect( mPopup, TQ_SIGNAL( dateChanged( TQDate ) ),
+ TQ_SLOT( dateSelected( TQDate ) ) );
// handle keyword entry
setupKeywords();
@@ -246,7 +246,7 @@ TQDate KDateEdit::parseDate( bool *replaced ) const
bool KDateEdit::eventFilter( TQObject *object, TQEvent *event )
{
- if ( TQT_BASE_OBJECT(object) == TQT_BASE_OBJECT(lineEdit()) ) {
+ if ( object == lineEdit() ) {
// We only process the focus out event if the text has changed
// since we got focus
if ( (event->type() == TQEvent::FocusOut) && mTextChanged ) {
@@ -286,7 +286,7 @@ bool KDateEdit::eventFilter( TQObject *object, TQEvent *event )
case TQEvent::MouseButtonDblClick:
case TQEvent::MouseButtonPress: {
TQMouseEvent *mouseEvent = (TQMouseEvent*)event;
- if ( !TQT_TQRECT_OBJECT(mPopup->rect()).contains( mouseEvent->pos() ) ) {
+ if ( !mPopup->rect().contains( mouseEvent->pos() ) ) {
TQPoint globalPos = mPopup->mapToGlobal( mouseEvent->pos() );
if ( TQApplication::widgetAt( globalPos, true ) == this ) {
// The date picker is being closed by a click on the
@@ -307,7 +307,7 @@ bool KDateEdit::eventFilter( TQObject *object, TQEvent *event )
void KDateEdit::mousePressEvent( TQMouseEvent *event )
{
- if ( event->button() == Qt::LeftButton && mDiscardNextMousePress ) {
+ if ( event->button() == TQt::LeftButton && mDiscardNextMousePress ) {
mDiscardNextMousePress = false;
return;
}
diff --git a/libtdepim/kdateedit.h b/libtdepim/kdateedit.h
index ee5bf8d6..9475f752 100644
--- a/libtdepim/kdateedit.h
+++ b/libtdepim/kdateedit.h
@@ -28,7 +28,7 @@
#include <tqdatetime.h>
#include <tqmap.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "kdatepickerpopup.h"
@@ -53,7 +53,7 @@ class TQEvent;
*/
class KDE_EXPORT KDateEdit : public TQComboBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/kdatepickerpopup.cpp b/libtdepim/kdatepickerpopup.cpp
index d9ffe8c3..4b544b6f 100644
--- a/libtdepim/kdatepickerpopup.cpp
+++ b/libtdepim/kdatepickerpopup.cpp
@@ -35,10 +35,10 @@ KDatePickerPopup::KDatePickerPopup( int items, const TQDate &date, TQWidget *par
mDatePicker = new KDatePicker( this );
mDatePicker->setCloseButton( false );
- connect( mDatePicker, TQT_SIGNAL( dateEntered( TQDate ) ),
- TQT_SLOT( slotDateChanged( TQDate ) ) );
- connect( mDatePicker, TQT_SIGNAL( dateSelected( TQDate ) ),
- TQT_SLOT( slotDateChanged( TQDate ) ) );
+ connect( mDatePicker, TQ_SIGNAL( dateEntered( TQDate ) ),
+ TQ_SLOT( slotDateChanged( TQDate ) ) );
+ connect( mDatePicker, TQ_SIGNAL( dateSelected( TQDate ) ),
+ TQ_SLOT( slotDateChanged( TQDate ) ) );
mDatePicker->setDate( date );
@@ -58,17 +58,17 @@ void KDatePickerPopup::buildMenu()
}
if ( mItems & Words ) {
- insertItem( i18n("&Today"), this, TQT_SLOT( slotToday() ) );
- insertItem( i18n("To&morrow"), this, TQT_SLOT( slotTomorrow() ) );
- insertItem( i18n("Next &Week"), this, TQT_SLOT( slotNextWeek() ) );
- insertItem( i18n("Next M&onth"), this, TQT_SLOT( slotNextMonth() ) );
+ insertItem( i18n("&Today"), this, TQ_SLOT( slotToday() ) );
+ insertItem( i18n("To&morrow"), this, TQ_SLOT( slotTomorrow() ) );
+ insertItem( i18n("Next &Week"), this, TQ_SLOT( slotNextWeek() ) );
+ insertItem( i18n("Next M&onth"), this, TQ_SLOT( slotNextMonth() ) );
if ( mItems & NoDate )
insertSeparator();
}
if ( mItems & NoDate )
- insertItem( i18n("No Date"), this, TQT_SLOT( slotNoDate() ) );
+ insertItem( i18n("No Date"), this, TQ_SLOT( slotNoDate() ) );
}
KDatePicker *KDatePickerPopup::datePicker() const
diff --git a/libtdepim/kdatepickerpopup.h b/libtdepim/kdatepickerpopup.h
index 38b947ad..9156fddc 100644
--- a/libtdepim/kdatepickerpopup.h
+++ b/libtdepim/kdatepickerpopup.h
@@ -24,7 +24,7 @@
#include <tqdatetime.h>
#include <tqpopupmenu.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <kdatepicker.h>
/**
@@ -44,7 +44,7 @@
*/
class KDE_EXPORT KDatePickerPopup: public TQPopupMenu
{
- Q_OBJECT
+ TQ_OBJECT
public:
enum { NoDate = 1, DatePicker = 2, Words = 4 };
diff --git a/libtdepim/kfoldertree.cpp b/libtdepim/kfoldertree.cpp
index f353c4d3..bccbc8aa 100644
--- a/libtdepim/kfoldertree.cpp
+++ b/libtdepim/kfoldertree.cpp
@@ -1,6 +1,5 @@
-// -*- c-basic-offset: 2 -*-
-
#include "kfoldertree.h"
+#include <tdeversion.h>
#include <tdelocale.h>
#include <tdeio/global.h>
#include <kiconloader.h>
@@ -380,9 +379,9 @@ KFolderTree::KFolderTree( TQWidget *parent, const char* name )
disableAutoSelection();
setColumnWidth( 0, 120 ); //reasonable default size
- disconnect( header(), TQT_SIGNAL( sizeChange( int, int, int ) ) );
- connect( header(), TQT_SIGNAL( sizeChange( int, int, int ) ),
- TQT_SLOT( slotSizeChanged( int, int, int ) ) );
+ disconnect( header(), TQ_SIGNAL( sizeChange( int, int, int ) ) );
+ connect( header(), TQ_SIGNAL( sizeChange( int, int, int ) ),
+ TQ_SLOT( slotSizeChanged( int, int, int ) ) );
}
//-----------------------------------------------------------------------------
diff --git a/libtdepim/kfoldertree.h b/libtdepim/kfoldertree.h
index bec5e030..d881976d 100644
--- a/libtdepim/kfoldertree.h
+++ b/libtdepim/kfoldertree.h
@@ -1,5 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
-
+/*
This file is part of libtdepim.
Copyright (C) 2002 Carsten Burghardt <burghardt@kde.org>
@@ -27,7 +26,7 @@
#include <tqdragobject.h>
#include <tqcolor.h>
#include <tdelistview.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KFolderTree;
@@ -241,7 +240,7 @@ class KDE_EXPORT KFolderTreeItem : public TDEListViewItem
class KDE_EXPORT KFolderTree : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/kimportdialog.cpp b/libtdepim/kimportdialog.cpp
index 879b6156..44e7eddd 100644
--- a/libtdepim/kimportdialog.cpp
+++ b/libtdepim/kimportdialog.cpp
@@ -164,15 +164,15 @@ KImportDialog::KImportDialog(TQWidget* parent)
new TQLabel(i18n("File to import:"),fileBox);
KURLRequester *urlRequester = new KURLRequester(fileBox);
urlRequester->setFilter( "*.csv" );
- connect(urlRequester,TQT_SIGNAL(returnPressed(const TQString &)),
- TQT_SLOT(setFile(const TQString &)));
- connect(urlRequester,TQT_SIGNAL(urlSelected(const TQString &)),
- TQT_SLOT(setFile(const TQString &)));
- connect(urlRequester->lineEdit(),TQT_SIGNAL(textChanged ( const TQString & )),
- TQT_SLOT(slotUrlChanged(const TQString & )));
+ connect(urlRequester,TQ_SIGNAL(returnPressed(const TQString &)),
+ TQ_SLOT(setFile(const TQString &)));
+ connect(urlRequester,TQ_SIGNAL(urlSelected(const TQString &)),
+ TQ_SLOT(setFile(const TQString &)));
+ connect(urlRequester->lineEdit(),TQ_SIGNAL(textChanged ( const TQString & )),
+ TQ_SLOT(slotUrlChanged(const TQString & )));
mTable = new TQTable(5,5,topBox);
mTable->setMinimumHeight( 150 );
- connect(mTable,TQT_SIGNAL(selectionChanged()),TQT_SLOT(tableSelected()));
+ connect(mTable,TQ_SIGNAL(selectionChanged()),TQ_SLOT(tableSelected()));
TQHBox *separatorBox = new TQHBox( topBox );
separatorBox->setSpacing( spacingHint() );
@@ -185,8 +185,8 @@ KImportDialog::KImportDialog(TQWidget* parent)
mSeparatorCombo->insertItem( i18n( "Space" ) );
mSeparatorCombo->insertItem( "=" );
mSeparatorCombo->insertItem( ";" );
- connect(mSeparatorCombo, TQT_SIGNAL( activated(int) ),
- this, TQT_SLOT( separatorClicked(int) ) );
+ connect(mSeparatorCombo, TQ_SIGNAL( activated(int) ),
+ this, TQ_SLOT( separatorClicked(int) ) );
mSeparatorCombo->setCurrentItem( 0 );
TQHBox *rowsBox = new TQHBox( topBox );
@@ -208,34 +208,34 @@ KImportDialog::KImportDialog(TQWidget* parent)
mHeaderList = new TQListView(listsBox);
mHeaderList->addColumn(i18n("Header"));
- connect(mHeaderList, TQT_SIGNAL(selectionChanged(TQListViewItem*)),
- this, TQT_SLOT(headerSelected(TQListViewItem*)));
- connect(mHeaderList,TQT_SIGNAL(doubleClicked(TQListViewItem*)),
- TQT_SLOT(assignColumn(TQListViewItem *)));
+ connect(mHeaderList, TQ_SIGNAL(selectionChanged(TQListViewItem*)),
+ this, TQ_SLOT(headerSelected(TQListViewItem*)));
+ connect(mHeaderList,TQ_SIGNAL(doubleClicked(TQListViewItem*)),
+ TQ_SLOT(assignColumn(TQListViewItem *)));
mFormatCombo = new KComboBox( listsBox );
mFormatCombo->setDuplicatesEnabled( false );
TQPushButton *assignButton = new TQPushButton(i18n("Assign to Selected Column"),
assignBox);
- connect(assignButton,TQT_SIGNAL(clicked()),TQT_SLOT(assignColumn()));
+ connect(assignButton,TQ_SIGNAL(clicked()),TQ_SLOT(assignColumn()));
TQPushButton *removeButton = new TQPushButton(i18n("Remove Assignment From Selected Column"),
assignBox);
- connect(removeButton,TQT_SIGNAL(clicked()),TQT_SLOT(removeColumn()));
+ connect(removeButton,TQ_SIGNAL(clicked()),TQ_SLOT(removeColumn()));
TQPushButton *assignTemplateButton = new TQPushButton(i18n("Assign with Template..."),
assignBox);
- connect(assignTemplateButton,TQT_SIGNAL(clicked()),TQT_SLOT(assignTemplate()));
+ connect(assignTemplateButton,TQ_SIGNAL(clicked()),TQ_SLOT(assignTemplate()));
TQPushButton *saveTemplateButton = new TQPushButton(i18n("Save Current Template"),
assignBox);
- connect(saveTemplateButton,TQT_SIGNAL(clicked()),TQT_SLOT(saveTemplate()));
+ connect(saveTemplateButton,TQ_SIGNAL(clicked()),TQ_SLOT(saveTemplate()));
resize(500,300);
- connect(this,TQT_SIGNAL(okClicked()),TQT_SLOT(applyConverter()));
- connect(this,TQT_SIGNAL(applyClicked()),TQT_SLOT(applyConverter()));
+ connect(this,TQ_SIGNAL(okClicked()),TQ_SLOT(applyConverter()));
+ connect(this,TQ_SIGNAL(applyClicked()),TQ_SLOT(applyConverter()));
enableButtonOK(!urlRequester->lineEdit()->text().isEmpty());
}
diff --git a/libtdepim/kimportdialog.h b/libtdepim/kimportdialog.h
index b21cbc83..0828a782 100644
--- a/libtdepim/kimportdialog.h
+++ b/libtdepim/kimportdialog.h
@@ -75,7 +75,7 @@ class KImportColumn
class KImportDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
KImportDialog(TQWidget* parent);
diff --git a/libtdepim/kincidencechooser.cpp b/libtdepim/kincidencechooser.cpp
index 8bb72d5c..f11b0360 100644
--- a/libtdepim/kincidencechooser.cpp
+++ b/libtdepim/kincidencechooser.cpp
@@ -61,11 +61,11 @@ KIncidenceChooser::KIncidenceChooser(TQWidget *parent, char *name) :
topLayout->addMultiCellWidget(b_box, iii,iii,0,2);
++iii;
TQPushButton* button = new TQPushButton( i18n("Take Local"), b_box );
- connect ( button, TQT_SIGNAL( clicked()), this, TQT_SLOT (takeIncidence1() ) );
+ connect ( button, TQ_SIGNAL( clicked()), this, TQ_SLOT (takeIncidence1() ) );
button = new TQPushButton( i18n("Take New"), b_box );
- connect ( button, TQT_SIGNAL( clicked()), this, TQT_SLOT (takeIncidence2() ) );
+ connect ( button, TQ_SIGNAL( clicked()), this, TQ_SLOT (takeIncidence2() ) );
button = new TQPushButton( i18n("Take Both"), b_box );
- connect ( button, TQT_SIGNAL( clicked()), this, TQT_SLOT (takeBoth() ) );
+ connect ( button, TQ_SIGNAL( clicked()), this, TQ_SLOT (takeBoth() ) );
topLayout->setSpacing(spacingHint());
topLayout->setMargin(marginHint());
// text is not translated, because text has to be set later
@@ -78,7 +78,7 @@ KIncidenceChooser::KIncidenceChooser(TQWidget *parent, char *name) :
mMod1lab = new TQLabel ( "Set Last modified", topFrame);
topLayout->addWidget(mMod1lab,iii,1);
mShowDetails1 = new TQPushButton( i18n("Show Details"),topFrame );
- connect ( mShowDetails1, TQT_SIGNAL( clicked()), this, TQT_SLOT (showIncidence1() ) );
+ connect ( mShowDetails1, TQ_SIGNAL( clicked()), this, TQ_SLOT (showIncidence1() ) );
topLayout->addWidget(mShowDetails1,iii,2);
++iii;
@@ -91,20 +91,20 @@ KIncidenceChooser::KIncidenceChooser(TQWidget *parent, char *name) :
mMod2lab = new TQLabel ( "Set Last modified", topFrame);
topLayout->addWidget(mMod2lab,iii,1);
mShowDetails2 = new TQPushButton( i18n("Show Details"), topFrame);
- connect ( mShowDetails2, TQT_SIGNAL( clicked()), this, TQT_SLOT (showIncidence2() ) );
+ connect ( mShowDetails2, TQ_SIGNAL( clicked()), this, TQ_SLOT (showIncidence2() ) );
topLayout->addWidget(mShowDetails2,iii,2);
++iii;
//
#if 0
// commented out for now, because the diff code has too many bugs
mDiffBut = new TQPushButton( i18n("Show Differences"), topFrame );
- connect ( mDiffBut, TQT_SIGNAL( clicked()), this, TQT_SLOT ( showDiff() ) );
+ connect ( mDiffBut, TQ_SIGNAL( clicked()), this, TQ_SLOT ( showDiff() ) );
topLayout->addMultiCellWidget(mDiffBut, iii,iii,0,2);
++iii;
#else
mDiffBut = 0;
#endif
- mBg = new TQButtonGroup ( 1, Qt::Horizontal, i18n("Sync Preferences"), topFrame);
+ mBg = new TQButtonGroup ( 1, TQt::Horizontal, i18n("Sync Preferences"), topFrame);
topLayout->addMultiCellWidget(mBg, iii,iii,0,2);
++iii;
mBg->insert( new TQRadioButton ( i18n("Take local entry on conflict"), mBg ), KIncidenceChooser::local);
@@ -118,7 +118,7 @@ KIncidenceChooser::KIncidenceChooser(TQWidget *parent, char *name) :
mDisplayDiff = 0;
mSelIncidence = 0;
button = new TQPushButton( i18n("Apply This to All Conflicts of This Sync"), topFrame );
- connect ( button, TQT_SIGNAL( clicked()), this, TQT_SLOT ( setSyncMode() ) );
+ connect ( button, TQ_SIGNAL( clicked()), this, TQ_SLOT ( setSyncMode() ) );
topLayout->addMultiCellWidget(button, iii,iii,0,2);
}
@@ -237,7 +237,7 @@ void KIncidenceChooser::showIncidence1()
}
mTbL = new KDialogBase( this, "", false /*not modal*/, mInc1lab->text(), KDialogBase::Ok );
mTbL->setEscapeButton( KDialogBase::Ok );
- connect( mTbL, TQT_SIGNAL( okClicked() ), this, TQT_SLOT( detailsDialogClosed() ) );
+ connect( mTbL, TQ_SIGNAL( okClicked() ), this, TQ_SLOT( detailsDialogClosed() ) );
TQTextBrowser* textBrowser = new TQTextBrowser( mTbL );
mTbL->setMainWidget( textBrowser );
textBrowser->setText( KCal::IncidenceFormatter::extensiveDisplayString( mInc1 ) );
@@ -249,7 +249,7 @@ void KIncidenceChooser::showIncidence1()
void KIncidenceChooser::detailsDialogClosed()
{
- KDialogBase* dialog = static_cast<KDialogBase *>( TQT_TQWIDGET( const_cast<TQT_BASE_OBJECT_NAME*>(sender()) ) );
+ KDialogBase* dialog = static_cast<KDialogBase *>(const_cast<TQObject*>(sender())) ;
if ( dialog == mTbL )
mShowDetails1->setText( i18n( "Show details..." ) );
else
@@ -293,7 +293,7 @@ void KIncidenceChooser::showIncidence2()
}
mTbN = new KDialogBase( this, "", false /*not modal*/, mInc2lab->text(), KDialogBase::Ok );
mTbN->setEscapeButton( KDialogBase::Ok );
- connect( mTbN, TQT_SIGNAL( okClicked() ), this, TQT_SLOT( detailsDialogClosed() ) );
+ connect( mTbN, TQ_SIGNAL( okClicked() ), this, TQ_SLOT( detailsDialogClosed() ) );
TQTextBrowser* textBrowser = new TQTextBrowser( mTbN );
mTbN->setMainWidget( textBrowser );
textBrowser->setText( KCal::IncidenceFormatter::extensiveDisplayString( mInc2 ) );
diff --git a/libtdepim/kincidencechooser.h b/libtdepim/kincidencechooser.h
index 51deb7a1..4a2a507e 100644
--- a/libtdepim/kincidencechooser.h
+++ b/libtdepim/kincidencechooser.h
@@ -41,7 +41,7 @@ class TQButtonGroup;
class KDE_EXPORT KIncidenceChooser : public KDialog
{
- Q_OBJECT
+ TQ_OBJECT
public:
enum mode {
diff --git a/libtdepim/kmailcompletion.h b/libtdepim/kmailcompletion.h
index 00db2b8c..0e8772ea 100644
--- a/libtdepim/kmailcompletion.h
+++ b/libtdepim/kmailcompletion.h
@@ -35,7 +35,7 @@ namespace KPIM {
*/
class KMailCompletion : public TDECompletion
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/komposer/core/attachment.cpp b/libtdepim/komposer/core/attachment.cpp
index df803de6..6d5017e9 100644
--- a/libtdepim/komposer/core/attachment.cpp
+++ b/libtdepim/komposer/core/attachment.cpp
@@ -1,4 +1,3 @@
-// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
/**
* attachment.cpp
*
diff --git a/libtdepim/komposer/core/attachment.h b/libtdepim/komposer/core/attachment.h
index 5c4e1ebf..8344c8d7 100644
--- a/libtdepim/komposer/core/attachment.h
+++ b/libtdepim/komposer/core/attachment.h
@@ -1,4 +1,3 @@
-// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
/**
* attachment.h
*
diff --git a/libtdepim/komposer/core/core.cpp b/libtdepim/komposer/core/core.cpp
index fa8e1dc1..3549a314 100644
--- a/libtdepim/komposer/core/core.cpp
+++ b/libtdepim/komposer/core/core.cpp
@@ -1,4 +1,3 @@
-// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
/**
* core.cpp
*
@@ -226,10 +225,10 @@ void
Core::initCore()
{
m_pluginManager = new PluginManager( this );
- connect( m_pluginManager, TQT_SIGNAL(pluginLoaded(Plugin*)),
- TQT_SLOT(slotPluginLoaded(Plugin*)) );
- connect( m_pluginManager, TQT_SIGNAL(allPluginsLoaded()),
- TQT_SLOT(slotAllPluginsLoaded()) );
+ connect( m_pluginManager, TQ_SIGNAL(pluginLoaded(Plugin*)),
+ TQ_SLOT(slotPluginLoaded(Plugin*)) );
+ connect( m_pluginManager, TQ_SIGNAL(allPluginsLoaded()),
+ TQ_SLOT(slotAllPluginsLoaded()) );
m_pluginManager->loadAllPlugins();
@@ -239,39 +238,39 @@ Core::initCore()
void
Core::initConnections()
{
- connect( kapp, TQT_SIGNAL(shutDown()),
- TQT_SLOT(slotQuit()) );
+ connect( kapp, TQ_SIGNAL(shutDown()),
+ TQ_SLOT(slotQuit()) );
}
void
Core::createActions()
{
- KStdAction::close( this, TQT_SLOT(slotClose()), actionCollection() );
+ KStdAction::close( this, TQ_SLOT(slotClose()), actionCollection() );
(void) new TDEAction( i18n( "&Send" ), "mail-send", CTRL+Key_Return,
- this, TQT_SLOT(slotSendNow()), actionCollection(),
+ this, TQ_SLOT(slotSendNow()), actionCollection(),
"send_default" );
(void) new TDEAction( i18n( "&Queue" ), "queue", 0,
- this, TQT_SLOT(slotSendLater()),
+ this, TQ_SLOT(slotSendLater()),
actionCollection(), "send_alternative" );
(void) new TDEAction( i18n( "Save in &Drafts Folder" ), "document-save", 0,
- this, TQT_SLOT(slotSaveDraft()),
+ this, TQ_SLOT(slotSaveDraft()),
actionCollection(), "save_in_drafts" );
(void) new TDEAction( i18n( "&Insert File..." ), "document-open", 0,
- this, TQT_SLOT(slotInsertFile()),
+ this, TQ_SLOT(slotInsertFile()),
actionCollection(), "insert_file" );
(void) new TDEAction( i18n( "&Address Book" ), "contents",0,
- this, TQT_SLOT(slotAddrBook()),
+ this, TQ_SLOT(slotAddrBook()),
actionCollection(), "addressbook" );
(void) new TDEAction( i18n( "&New Composer" ), "mail-message-new",
TDEStdAccel::shortcut( TDEStdAccel::New ),
- this, TQT_SLOT(slotNewComposer()),
+ this, TQ_SLOT(slotNewComposer()),
actionCollection(), "new_composer" );
(void) new TDEAction( i18n( "&Attach File..." ), "attach",
- 0, this, TQT_SLOT(slotAttachFile()),
+ 0, this, TQ_SLOT(slotAttachFile()),
actionCollection(), "attach_file" );
}
diff --git a/libtdepim/komposer/core/core.h b/libtdepim/komposer/core/core.h
index 92235a18..dcf1427f 100644
--- a/libtdepim/komposer/core/core.h
+++ b/libtdepim/komposer/core/core.h
@@ -1,4 +1,3 @@
-// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
/**
* core.h
*
@@ -44,7 +43,7 @@ namespace Komposer
*/
class Core : public TDEMainWindow, virtual public KomposerIface
{
- Q_OBJECT
+ TQ_OBJECT
public:
Core( TQWidget *parentWidget = 0, const char *name = 0 );
diff --git a/libtdepim/komposer/core/corewidget.cpp b/libtdepim/komposer/core/corewidget.cpp
index c6589376..d9130f53 100644
--- a/libtdepim/komposer/core/corewidget.cpp
+++ b/libtdepim/komposer/core/corewidget.cpp
@@ -1,4 +1,3 @@
-// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
/**
* corewidget.cpp
*
diff --git a/libtdepim/komposer/core/corewidget.h b/libtdepim/komposer/core/corewidget.h
index dbe1d674..c0e93b14 100644
--- a/libtdepim/komposer/core/corewidget.h
+++ b/libtdepim/komposer/core/corewidget.h
@@ -1,4 +1,3 @@
-// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
/**
* corewidget.h
*
@@ -31,7 +30,7 @@ namespace Komposer
class CoreWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
CoreWidget( TQWidget *parent, const char *name=0 );
diff --git a/libtdepim/komposer/core/editor.cpp b/libtdepim/komposer/core/editor.cpp
index 5dada393..83b11b0e 100644
--- a/libtdepim/komposer/core/editor.cpp
+++ b/libtdepim/komposer/core/editor.cpp
@@ -1,4 +1,3 @@
-// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
/**
* editor.cpp
*
diff --git a/libtdepim/komposer/core/editor.h b/libtdepim/komposer/core/editor.h
index a1845f6f..41667af9 100644
--- a/libtdepim/komposer/core/editor.h
+++ b/libtdepim/komposer/core/editor.h
@@ -1,4 +1,3 @@
-// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
/**
* editor.h
*
@@ -37,7 +36,7 @@ namespace Komposer {
class Editor : public Plugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
enum TextType {
diff --git a/libtdepim/komposer/core/komposerconfig.desktop b/libtdepim/komposer/core/komposerconfig.desktop
index c07ea50c..af98889b 100644
--- a/libtdepim/komposer/core/komposerconfig.desktop
+++ b/libtdepim/komposer/core/komposerconfig.desktop
@@ -10,47 +10,7 @@ X-TDE-FactoryName=komposerconfig
X-TDE-HasReadOnlyMode=false
Name=Komposer
-Name[cy]=Kyfansoddydd
-Name[da]=Brevskriver
-Name[hi]=कम्पोज़र
-Name[ms]=Penggubah
-Name[ne]=कम्पोजर
-Name[pt]=Kompositor
-Name[ta]=கம்போசர்
+
Comment=TDE Komposer
-Comment[bg]=Писане на форматиран текст
-Comment[br]=Komposer TDE
-Comment[ca]=Compositor per a TDE
-Comment[cy]=Cyfansoddydd TDE
-Comment[da]=TDE Brevskriver
-Comment[de]=TDE-Komposer
-Comment[fr]=Komposer TDE
-Comment[ga]=Komposer TDE
-Comment[hi]=केडीई कम्पोज़र
-Comment[ms]=Penggubah TDE
-Comment[nds]=Nettbreef-Editor vun TDE
-Comment[ne]=केडीई कम्पोजर
-Comment[nn]=TDE, tekstredigerar for e-post
-Comment[pl]=Komposer dla TDE
-Comment[pt]=Kompositor do TDE
-Comment[pt_BR]=Konposer do TDE
-Comment[ru]=Композитор TDE
-Comment[ta]=கேடிஇ கம்போசர்
-Comment[tg]=Композитори TDE
+
Keywords=komposer;
-Keywords[bg]=редактор; съставител; форматиране; текст; komposer;
-Keywords[ca]=compositor;
-Keywords[cy]=komposer;kyfansoddydd;
-Keywords[da]=brevskriver;
-Keywords[de]=Komposer;
-Keywords[fy]=komposer;opstellen; opsteller;
-Keywords[hi]=कम्पोज़र;
-Keywords[nds]=Komposer;
-Keywords[ne]=कम्पोजर;
-Keywords[nl]=komposer;opstellen;
-Keywords[nn]=komposer;tekstredigerar;epost;
-Keywords[ru]=komposer;ноты;
-Keywords[sr]=komposer;састављач;
-Keywords[sr@Latn]=komposer;sastavljač;
-Keywords[ta]=கம்போசர்;
-Keywords[tg]=komposer;нотаҳо;
diff --git a/libtdepim/komposer/core/komposereditor.desktop b/libtdepim/komposer/core/komposereditor.desktop
index 54b68a02..134a1753 100644
--- a/libtdepim/komposer/core/komposereditor.desktop
+++ b/libtdepim/komposer/core/komposereditor.desktop
@@ -2,55 +2,8 @@
Type=ServiceType
X-TDE-ServiceType=Komposer/Editor
X-TDE-Derived=Komposer/Plugin
+
Comment=Komposer Editor
-Comment[af]=Komposer Redigeerder
-Comment[bg]=Писане на форматиран текст
-Comment[br]=Aozer Komposer
-Comment[bs]=Komposer editor
-Comment[ca]=Compositor per a TDE
-Comment[cs]=Komposer editor
-Comment[da]=Komposer editor
-Comment[el]=Επεξεργαστής Komposer
-Comment[eo]=Komposer-redaktilo
-Comment[es]=Editor Komposer
-Comment[et]=Komposeri redaktor
-Comment[eu]=Komposer editorea
-Comment[fa]=ویرایشگر Komposer
-Comment[fi]=Komposer-muokkain
-Comment[fr]=Éditeur Komposer
-Comment[fy]=Komposer-bewurker
-Comment[ga]=Eagarthóir Komposer
-Comment[gl]=Editor Komposer
-Comment[he]=עורך של Komposer
-Comment[hu]=Komposer
-Comment[is]=Komposer ritill
-Comment[it]=Komposer editor
-Comment[ja]=Komposer,エディタ
-Comment[kk]=Komposer өңдегіші
-Comment[km]=កម្មវិធី​និពន្ធ Komposer
-Comment[ko]=Komposer 편집기
-Comment[lt]=Komposer redaktorius
-Comment[ms]=Editor Komposer
-Comment[nb]=Komposer redigerer
-Comment[nds]=Komposer-Editor
-Comment[ne]=कम्पोजर सम्पादक
-Comment[nl]=Komposer-editor
-Comment[nn]=Komposer redigerar
-Comment[pl]=Edytor Komposer
-Comment[pt]=Editor Kompositor
-Comment[pt_BR]=Editor de Mensagens
-Comment[ru]=Редактор Komposer
-Comment[sk]=Editor Komposer
-Comment[sl]=Urejevalnik Komposer
-Comment[sr]=Уређивач Komposer
-Comment[sr@Latn]=Uređivač Komposer
-Comment[sv]=Komposer editor
-Comment[ta]=கம்போசர் தொகுப்பான்
-Comment[tg]=Муҳаррири Komposer
-Comment[tr]=Komposer Düzenleyicisi
-Comment[uk]=Редактор Komposer
-Comment[zh_CN]=Komposer 编辑器
-Comment[zh_TW]=Komposer 編輯器
[PropertyDef::X-Komposer-Weight]
Type=int
diff --git a/libtdepim/komposer/core/komposerplugin.desktop b/libtdepim/komposer/core/komposerplugin.desktop
index 39dfdb6c..3433f888 100644
--- a/libtdepim/komposer/core/komposerplugin.desktop
+++ b/libtdepim/komposer/core/komposerplugin.desktop
@@ -2,58 +2,8 @@
Type=ServiceType
X-TDE-ServiceType=Komposer/Plugin
X-TDE-Derived=KPluginInfo
+
Name=Komposer Plugin
-Name[af]=Komposer inprop module
-Name[bg]=Приставка за Komposer
-Name[br]=Lugent Komposer
-Name[bs]=Komposer dodatak
-Name[ca]=Endollable Komposer
-Name[cs]=Komposer modul
-Name[cy]=Ategyn Kyfansoddydd
-Name[da]=Brevskriver-plugin
-Name[de]=Komposer-Modul
-Name[el]=Πρόσθετο του Komposer
-Name[eo]=Komposer-kromaĵo
-Name[es]=Accesorio Komposer
-Name[et]=Komposeri plugin
-Name[eu]=Komposer plugin-a
-Name[fa]=وصلۀ Komposer
-Name[fi]=Komposer-liitännäinen
-Name[fr]=Module de Komposer
-Name[fy]=Komposer-plugin
-Name[ga]=Breiseán Komposer
-Name[gl]=Extensión Komposer
-Name[he]=תןסף Kompoer
-Name[hi]=कम्पोज़र प्लगइन
-Name[hu]=Komposer bővítőmodul
-Name[is]=Komposer íforrit
-Name[it]=Plugin Komposer
-Name[ja]=Komposer プラグイン
-Name[kk]=Komposer плагин модулі
-Name[km]=កម្មវិធី​ជំនួយ Komposer
-Name[ko]=Komposer 플러그인
-Name[lt]=Komposer priedas
-Name[ms]=Plugin Komposer
-Name[nb]=Komposer-programtillegg
-Name[nds]=Komposer-Moduul
-Name[ne]=कम्पोजर प्लगइन
-Name[nn]=Komposer-programtillegg
-Name[pl]=Wtyczka Komposer
-Name[pt]='Plugin' do Kompositor
-Name[pt_BR]=Plug-in do Komposer
-Name[ro]=Modul Komposer
-Name[ru]=Модуль Komposer
-Name[sk]=Modul Komposer
-Name[sl]=Vstavek za Komposer
-Name[sr]=Прикључак Komposer-а
-Name[sr@Latn]=Priključak Komposer-a
-Name[sv]=Komposer-insticksprogram
-Name[ta]=கம்போசர் சொருகுப்பொருள்
-Name[tg]=Модули Komposer
-Name[tr]=Komposer Eklentisi
-Name[uk]=Втулок Komposer
-Name[zh_CN]=Komposer 插件
-Name[zh_TW]=Komposer 外掛程式
[PropertyDef::X-Komposer-Version]
Type=int
diff --git a/libtdepim/komposer/core/plugin.cpp b/libtdepim/komposer/core/plugin.cpp
index 41af47cd..133d203d 100644
--- a/libtdepim/komposer/core/plugin.cpp
+++ b/libtdepim/komposer/core/plugin.cpp
@@ -1,4 +1,3 @@
-// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
/**
* plugin.cpp
*
diff --git a/libtdepim/komposer/core/plugin.h b/libtdepim/komposer/core/plugin.h
index c14bcc6b..a462fd90 100644
--- a/libtdepim/komposer/core/plugin.h
+++ b/libtdepim/komposer/core/plugin.h
@@ -1,4 +1,3 @@
-// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
/**
* plugin.h
*
@@ -32,7 +31,7 @@ namespace Komposer
class Plugin : public TQObject,
virtual public KXMLGUIClient
{
- Q_OBJECT
+ TQ_OBJECT
public:
virtual ~Plugin();
diff --git a/libtdepim/komposer/core/pluginmanager.cpp b/libtdepim/komposer/core/pluginmanager.cpp
index 2e5aa4f6..8c4e025d 100644
--- a/libtdepim/komposer/core/pluginmanager.cpp
+++ b/libtdepim/komposer/core/pluginmanager.cpp
@@ -1,4 +1,3 @@
-// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 2; -*-
/**
* pluginmanager.cpp
* Most of this code has been lifted from Martijn's KopetePluginManager class
@@ -79,7 +78,7 @@ PluginManager::PluginManager( TQObject *parent )
d->shutdownMode = Private::StartingUp;
KSettings::Dispatcher::self()->registerInstance( TDEGlobal::instance(),
- this, TQT_SLOT( loadAllPlugins() ) );
+ this, TQ_SLOT( loadAllPlugins() ) );
d->plugins = KPluginInfo::fromServices(
TDETrader::self()->query( TQString::fromLatin1( "Komposer/Plugin" ),
@@ -169,7 +168,7 @@ PluginManager::shutdown()
}
}
- TQTimer::singleShot( 3000, this, TQT_SLOT(slotShutdownTimeout()) );
+ TQTimer::singleShot( 3000, this, TQ_SLOT(slotShutdownTimeout()) );
}
void
@@ -257,7 +256,7 @@ PluginManager::loadAllPlugins()
}
// Schedule the plugins to load
- TQTimer::singleShot( 0, this, TQT_SLOT( slotLoadNextPlugin() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotLoadNextPlugin() ) );
}
void PluginManager::slotLoadNextPlugin()
@@ -279,7 +278,7 @@ void PluginManager::slotLoadNextPlugin()
// allPluginsLoaded() signal's handling. This has the added benefit that
// the signal is delayed one event loop, so the accounts are more likely
// to be instantiated.
- TQTimer::singleShot( 0, this, TQT_SLOT( slotLoadNextPlugin() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotLoadNextPlugin() ) );
}
Plugin*
@@ -290,7 +289,7 @@ PluginManager::loadPlugin( const TQString &pluginId,
return loadPluginInternal( pluginId );
} else {
d->pluginsToLoad.push( pluginId );
- TQTimer::singleShot( 0, this, TQT_SLOT( slotLoadNextPlugin() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( slotLoadNextPlugin() ) );
return 0;
}
}
@@ -318,10 +317,10 @@ PluginManager::loadPluginInternal( const TQString &pluginId )
d->loadedPlugins.insert( info, plugin );
info->setPluginEnabled( true );
- connect( plugin, TQT_SIGNAL(destroyed(TQObject*)),
- this, TQT_SLOT(slotPluginDestroyed(TQObject*)) );
- connect( plugin, TQT_SIGNAL(readyForUnload()),
- this, TQT_SLOT(slotPluginReadyForUnload()) );
+ connect( plugin, TQ_SIGNAL(destroyed(TQObject*)),
+ this, TQ_SLOT(slotPluginDestroyed(TQObject*)) );
+ connect( plugin, TQ_SIGNAL(readyForUnload()),
+ this, TQ_SLOT(slotPluginReadyForUnload()) );
kdDebug() << k_funcinfo << "Successfully loaded plugin '"
<< pluginId << "'" << endl;
@@ -397,7 +396,7 @@ PluginManager::slotPluginDestroyed( TQObject *plugin )
{
// Use a timer to make sure any pending deleteLater() calls have
// been handled first
- TQTimer::singleShot( 0, this, TQT_SLOT(slotShutdownDone()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(slotShutdownDone()) );
}
}
diff --git a/libtdepim/komposer/core/pluginmanager.h b/libtdepim/komposer/core/pluginmanager.h
index eae6d49a..b4a16f8e 100644
--- a/libtdepim/komposer/core/pluginmanager.h
+++ b/libtdepim/komposer/core/pluginmanager.h
@@ -1,4 +1,3 @@
-// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
/**
* pluginmanager.h
*
@@ -39,7 +38,7 @@ namespace Komposer
class PluginManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/komposer/core/prefsmodule.cpp b/libtdepim/komposer/core/prefsmodule.cpp
index 3070b165..f8260c10 100644
--- a/libtdepim/komposer/core/prefsmodule.cpp
+++ b/libtdepim/komposer/core/prefsmodule.cpp
@@ -31,7 +31,7 @@
#include <tqlabel.h>
#include <tqbuttongroup.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
extern "C"
{
@@ -81,8 +81,8 @@ EditorSelection::EditorSelection( const TQString &text, TQString &reference,
m_editorsCombo = new KComboBox( m_box );
boxLayout->addWidget( m_editorsCombo );
- connect( m_editorsCombo, TQT_SIGNAL(activated(constTQString&)),
- TQT_SLOT(slotActivated(const TQString&)) );
+ connect( m_editorsCombo, TQ_SIGNAL(activated(constTQString&)),
+ TQ_SLOT(slotActivated(const TQString&)) );
}
EditorSelection::~EditorSelection()
diff --git a/libtdepim/komposer/core/prefsmodule.h b/libtdepim/komposer/core/prefsmodule.h
index a7733019..5be0ec34 100644
--- a/libtdepim/komposer/core/prefsmodule.h
+++ b/libtdepim/komposer/core/prefsmodule.h
@@ -34,7 +34,7 @@ namespace Komposer {
class PrefsModule : public KPrefsModule
{
- Q_OBJECT
+ TQ_OBJECT
public:
PrefsModule( TQWidget *parent=0, const char *name=0 );
@@ -43,7 +43,7 @@ namespace Komposer {
class EditorSelection : public KPrefsWid
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/komposer/core/tests/managertest.h b/libtdepim/komposer/core/tests/managertest.h
index d131f830..76de80d2 100644
--- a/libtdepim/komposer/core/tests/managertest.h
+++ b/libtdepim/komposer/core/tests/managertest.h
@@ -31,7 +31,7 @@ namespace Komposer {
class ManagerTest : public TQObject,
public Tester
{
- Q_OBJECT
+ TQ_OBJECT
public:
ManagerTest( TQObject* parent = 0 );
diff --git a/libtdepim/komposer/core/tests/testmanager.cpp b/libtdepim/komposer/core/tests/testmanager.cpp
index a690c67c..40fe5181 100644
--- a/libtdepim/komposer/core/tests/testmanager.cpp
+++ b/libtdepim/komposer/core/tests/testmanager.cpp
@@ -15,10 +15,10 @@ TestManager::TestManager( TQObject *parent )
: TQObject( parent )
{
m_manager = new PluginManager( this );
- connect( m_manager, TQT_SIGNAL(pluginLoaded(Plugin*)),
- TQT_SLOT(slotPluginLoaded(Plugin*)) );
- connect( m_manager, TQT_SIGNAL(allPluginsLoaded()),
- TQT_SLOT(slotAllPluginsLoaded()) );
+ connect( m_manager, TQ_SIGNAL(pluginLoaded(Plugin*)),
+ TQ_SLOT(slotPluginLoaded(Plugin*)) );
+ connect( m_manager, TQ_SIGNAL(allPluginsLoaded()),
+ TQ_SLOT(slotAllPluginsLoaded()) );
m_manager->loadAllPlugins();
TQValueList<KPluginInfo*> plugins = m_manager->availablePlugins();
diff --git a/libtdepim/komposer/core/tests/testmanager.h b/libtdepim/komposer/core/tests/testmanager.h
index 67c04414..73b0471b 100644
--- a/libtdepim/komposer/core/tests/testmanager.h
+++ b/libtdepim/komposer/core/tests/testmanager.h
@@ -11,7 +11,7 @@ using Komposer::Plugin;
class TestManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
TestManager( TQObject *parent );
diff --git a/libtdepim/komposer/plugins/default/defaulteditor.cpp b/libtdepim/komposer/plugins/default/defaulteditor.cpp
index fe059b9e..1aba9705 100644
--- a/libtdepim/komposer/plugins/default/defaulteditor.cpp
+++ b/libtdepim/komposer/plugins/default/defaulteditor.cpp
@@ -98,71 +98,71 @@ DefaultEditor::createActions( TDEActionCollection *ac )
//
// File Actions
//
- (void) KStdAction::open( this, TQT_SLOT(open()), ac );
- (void) KStdAction::openRecent( this, TQT_SLOT(openURL(const KURL &)), ac );
- (void) KStdAction::save( this, TQT_SLOT(save()), ac );
- (void) KStdAction::saveAs( this, TQT_SLOT(saveAs()), ac );
+ (void) KStdAction::open( this, TQ_SLOT(open()), ac );
+ (void) KStdAction::openRecent( this, TQ_SLOT(openURL(const KURL &)), ac );
+ (void) KStdAction::save( this, TQ_SLOT(save()), ac );
+ (void) KStdAction::saveAs( this, TQ_SLOT(saveAs()), ac );
//
// Edit Actions
//
- TDEAction *actionUndo = KStdAction::undo( m_textEdit, TQT_SLOT(undo()), ac );
+ TDEAction *actionUndo = KStdAction::undo( m_textEdit, TQ_SLOT(undo()), ac );
actionUndo->setEnabled( false );
- connect( m_textEdit, TQT_SIGNAL(undoAvailable(bool)),
- actionUndo, TQT_SLOT(setEnabled(bool)) );
+ connect( m_textEdit, TQ_SIGNAL(undoAvailable(bool)),
+ actionUndo, TQ_SLOT(setEnabled(bool)) );
- TDEAction *actionRedo = KStdAction::redo( m_textEdit, TQT_SLOT(redo()), ac );
+ TDEAction *actionRedo = KStdAction::redo( m_textEdit, TQ_SLOT(redo()), ac );
actionRedo->setEnabled( false );
- connect( m_textEdit, TQT_SIGNAL(redoAvailable(bool)),
- actionRedo, TQT_SLOT(setEnabled(bool)) );
+ connect( m_textEdit, TQ_SIGNAL(redoAvailable(bool)),
+ actionRedo, TQ_SLOT(setEnabled(bool)) );
- TDEAction *action_cut = KStdAction::cut( m_textEdit, TQT_SLOT(cut()), ac );
+ TDEAction *action_cut = KStdAction::cut( m_textEdit, TQ_SLOT(cut()), ac );
action_cut->setEnabled( false );
- connect( m_textEdit, TQT_SIGNAL(copyAvailable(bool)),
- action_cut, TQT_SLOT(setEnabled(bool)) );
+ connect( m_textEdit, TQ_SIGNAL(copyAvailable(bool)),
+ action_cut, TQ_SLOT(setEnabled(bool)) );
- TDEAction *action_copy = KStdAction::copy( m_textEdit, TQT_SLOT(copy()), ac );
+ TDEAction *action_copy = KStdAction::copy( m_textEdit, TQ_SLOT(copy()), ac );
action_copy->setEnabled( false );
- connect( m_textEdit, TQT_SIGNAL(copyAvailable(bool)),
- action_copy, TQT_SLOT(setEnabled(bool)) );
+ connect( m_textEdit, TQ_SIGNAL(copyAvailable(bool)),
+ action_copy, TQ_SLOT(setEnabled(bool)) );
- (void) KStdAction::print( this, TQT_SLOT(print()), ac );
+ (void) KStdAction::print( this, TQ_SLOT(print()), ac );
- (void) KStdAction::paste( m_textEdit, TQT_SLOT(paste()), ac );
+ (void) KStdAction::paste( m_textEdit, TQ_SLOT(paste()), ac );
(void) new TDEAction( i18n( "C&lear" ), 0,
- m_textEdit, TQT_SLOT(removeSelectedText()),
+ m_textEdit, TQ_SLOT(removeSelectedText()),
ac, "edit_clear" );
- (void) KStdAction::selectAll( m_textEdit, TQT_SLOT(selectAll()), ac );
+ (void) KStdAction::selectAll( m_textEdit, TQ_SLOT(selectAll()), ac );
//
// View Actions
//
- (void) KStdAction::zoomIn( m_textEdit, TQT_SLOT(zoomIn()), ac );
- (void) KStdAction::zoomOut( m_textEdit, TQT_SLOT(zoomOut()), ac );
+ (void) KStdAction::zoomIn( m_textEdit, TQ_SLOT(zoomIn()), ac );
+ (void) KStdAction::zoomOut( m_textEdit, TQ_SLOT(zoomOut()), ac );
//
// Character Formatting
//
m_actionBold = new TDEToggleAction( i18n("&Bold"), "format-text-bold", CTRL+Key_B,
ac, "format_bold" );
- connect( m_actionBold, TQT_SIGNAL(toggled(bool)),
- m_textEdit, TQT_SLOT(setBold(bool)) );
+ connect( m_actionBold, TQ_SIGNAL(toggled(bool)),
+ m_textEdit, TQ_SLOT(setBold(bool)) );
m_actionItalic = new TDEToggleAction( i18n("&Italic"), "format-text-italic", CTRL+Key_I,
ac, "format_italic" );
- connect( m_actionItalic, TQT_SIGNAL(toggled(bool)),
- m_textEdit, TQT_SLOT(setItalic(bool) ));
+ connect( m_actionItalic, TQ_SIGNAL(toggled(bool)),
+ m_textEdit, TQ_SLOT(setItalic(bool) ));
m_actionUnderline = new TDEToggleAction( i18n("&Underline"), "format-text-underline", CTRL+Key_U,
ac, "format_underline" );
- connect( m_actionUnderline, TQT_SIGNAL(toggled(bool)),
- m_textEdit, TQT_SLOT(setUnderline(bool)) );
+ connect( m_actionUnderline, TQ_SIGNAL(toggled(bool)),
+ m_textEdit, TQ_SLOT(setUnderline(bool)) );
(void) new TDEAction( i18n("Text &Color..."), "colorpicker", 0,
- this, TQT_SLOT(formatColor()),
+ this, TQ_SLOT(formatColor()),
ac, "format_color" );
//
@@ -170,37 +170,37 @@ DefaultEditor::createActions( TDEActionCollection *ac )
//
m_actionFont = new TDEFontAction( i18n("&Font"), 0,
ac, "format_font" );
- connect( m_actionFont, TQT_SIGNAL(activated(const TQString &)),
- m_textEdit, TQT_SLOT(setFamily(const TQString &)) );
+ connect( m_actionFont, TQ_SIGNAL(activated(const TQString &)),
+ m_textEdit, TQ_SLOT(setFamily(const TQString &)) );
m_actionFontSize = new TDEFontSizeAction( i18n("Font &Size"), 0,
ac, "format_font_size" );
- connect( m_actionFontSize, TQT_SIGNAL(fontSizeChanged(int)),
- m_textEdit, TQT_SLOT(setPointSize(int)) );
+ connect( m_actionFontSize, TQ_SIGNAL(fontSizeChanged(int)),
+ m_textEdit, TQ_SLOT(setPointSize(int)) );
//
// Alignment
//
m_actionAlignLeft = new TDEToggleAction( i18n("Align &Left"), "format-text-direction-ltr", 0,
ac, "format_align_left" );
- connect( m_actionAlignLeft, TQT_SIGNAL(toggled(bool)),
- this, TQT_SLOT(setAlignLeft(bool)) );
+ connect( m_actionAlignLeft, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(setAlignLeft(bool)) );
m_actionAlignCenter = new TDEToggleAction( i18n("Align &Center"), "text_center", 0,
ac, "format_align_center" );
- connect( m_actionAlignCenter, TQT_SIGNAL(toggled(bool)),
- this, TQT_SLOT(setAlignCenter(bool)) );
+ connect( m_actionAlignCenter, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(setAlignCenter(bool)) );
m_actionAlignRight = new TDEToggleAction( i18n("Align &Right"), "format-text-direction-rtl", 0,
ac, "format_align_right" );
- connect( m_actionAlignRight, TQT_SIGNAL(toggled(bool)),
- this, TQT_SLOT(setAlignRight(bool)) );
+ connect( m_actionAlignRight, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(setAlignRight(bool)) );
m_actionAlignJustify = new TDEToggleAction( i18n("&Justify"), "text_block", 0,
ac, "format_align_justify" );
- connect( m_actionAlignJustify, TQT_SIGNAL(toggled(bool)),
- this, TQT_SLOT(setAlignJustify(bool)) );
+ connect( m_actionAlignJustify, TQ_SIGNAL(toggled(bool)),
+ this, TQ_SLOT(setAlignJustify(bool)) );
m_actionAlignLeft->setExclusiveGroup( "alignment" );
m_actionAlignCenter->setExclusiveGroup( "alignment" );
@@ -210,19 +210,19 @@ DefaultEditor::createActions( TDEActionCollection *ac )
//
// Tools
//
- (void) KStdAction::spelling( this, TQT_SLOT(checkSpelling()), ac );
+ (void) KStdAction::spelling( this, TQ_SLOT(checkSpelling()), ac );
//
// Setup enable/disable
//
updateActions();
- connect( m_textEdit, TQT_SIGNAL(currentFontChanged(const TQFont &)),
- this, TQT_SLOT( updateFont() ) );
- connect( m_textEdit, TQT_SIGNAL(currentFontChanged(const TQFont &)),
- this, TQT_SLOT(updateCharFmt()) );
- connect( m_textEdit, TQT_SIGNAL(cursorPositionChanged(int, int)),
- this, TQT_SLOT(updateAligment()) );
+ connect( m_textEdit, TQ_SIGNAL(currentFontChanged(const TQFont &)),
+ this, TQ_SLOT( updateFont() ) );
+ connect( m_textEdit, TQ_SIGNAL(currentFontChanged(const TQFont &)),
+ this, TQ_SLOT(updateCharFmt()) );
+ connect( m_textEdit, TQ_SIGNAL(cursorPositionChanged(int, int)),
+ this, TQ_SLOT(updateAligment()) );
}
void
diff --git a/libtdepim/komposer/plugins/default/defaulteditor.desktop b/libtdepim/komposer/plugins/default/defaulteditor.desktop
index a5afd815..4b01632b 100644
--- a/libtdepim/komposer/plugins/default/defaulteditor.desktop
+++ b/libtdepim/komposer/plugins/default/defaulteditor.desktop
@@ -16,94 +16,7 @@ X-TDE-PluginInfo-Category=Editors
X-TDE-PluginInfo-Depends=
X-TDE-PluginInfo-License=LGPL
X-TDE-PluginInfo-EnabledByDefault=true
+
Name=Komposer Editor
-Name[af]=Komposer Redigeerder
-Name[bg]=Редактор за Komposer
-Name[br]=Aozer Komposer
-Name[ca]=Editor Komposer
-Name[cs]=Komposer editor
-Name[da]=Komposer-editor
-Name[el]=Επεξεργαστής Komposer
-Name[eo]=Komposer-redaktilo
-Name[es]=Editor Komposer
-Name[et]=Komposeri redaktor
-Name[eu]=Komposer editorea
-Name[fa]=ویرایشگر Komposer
-Name[fi]=Komposer-muokkain
-Name[fr]=Éditeur Komposer
-Name[fy]=Komposer-bewurker
-Name[ga]=Eagarthóir Komposer
-Name[gl]=Editor Komposer
-Name[hu]=Komposer szerkesztő
-Name[is]=Komposer ritill
-Name[it]=Editor Komposer
-Name[ja]=Komposer エディタ
-Name[kk]=Komposer өңдегіші
-Name[km]=កម្មវិធី​និពន្ធ Komposer
-Name[lt]=Komposer redaktorius
-Name[ms]=Editor Komposer
-Name[nb]=Komposer-redigering
-Name[ne]=कम्पोजर सम्पादक
-Name[nl]=Komposer-editor
-Name[nn]=Komposer-redigering
-Name[pl]=Edytor Komposer
-Name[pt]=Editor Kompositor
-Name[pt_BR]=Editor do Komposer
-Name[ru]=Редактор Komposer
-Name[sk]=Editor Komposer
-Name[sl]=Urejevalnik Komposer
-Name[sr]=Уређивач Komposer-а
-Name[sr@Latn]=Uređivač Komposer-a
-Name[sv]=Komposer editor
-Name[ta]=கம்போசர் தொகுப்பான்
-Name[tr]=Komposer Düzenleyicisi
-Name[uk]=Редактор Komposer
-Name[zh_CN]=Komposer 编辑器
-Name[zh_TW]=Komposer 編輯器
+
Comment=Komposer default editor
-Comment[af]=Komposer standaard redigeerder
-Comment[bg]=Подразбиращ се редактор за Komposer
-Comment[ca]=Editor predeterminat de Komposer
-Comment[cs]=Výchozí Komposer editor
-Comment[da]=Komposer standardeditor
-Comment[de]=Komposer Standardeditor
-Comment[el]=Προεπιλεγμένος επεξεργαστής του Komposer
-Comment[eo]=Komposer-redaktilo apriora
-Comment[es]=Editor predefinido Komposer
-Comment[et]=Komposeri vaikeredaktor
-Comment[eu]=Komposer editore lehenetsia
-Comment[fa]=ویرایشگر پیش‌فرض Komposer
-Comment[fi]=Komposer oletusmuokkain
-Comment[fr]=Éditeur Komposer par défaut
-Comment[fy]=Komposer standertbewurker
-Comment[ga]=Eagarthóir réamhshocraithe Komposer
-Comment[gl]=Editor por defecto Komposer
-Comment[he]=עורך ברירת מחדל של Kompoer
-Comment[hu]=A Komposer alapértelmezett szerkesztője
-Comment[is]=Sjálfgefinn ritill Komposer
-Comment[it]=Editor di default per Komposer
-Comment[ja]=Komposer 標準エディタ
-Comment[kk]=Komposer әдетті өңдегіші
-Comment[km]=កម្មវិធី​និពន្ធ​លំនាំដើម​របស់ Komposer
-Comment[ko]=Komposer 기본 편집기
-Comment[lt]=Komposer numatytasis redaktorius
-Comment[ms]=Pengedit piawai Komposer
-Comment[nb]=Komposer standard-redigerer
-Comment[nds]=Komposer-Standardeditor
-Comment[ne]=कम्पोजरको पूर्वनिर्धारित सम्पादक
-Comment[nl]=Komposer standaardeditor
-Comment[nn]=Komposer standard-redigeringsprogram
-Comment[pl]=Domyślny edytor Komposera
-Comment[pt]=Editor predefinido Kompositor
-Comment[pt_BR]=Editor padrão do Komposer
-Comment[ru]=Редактор Komposer по умолчанию
-Comment[sk]=Štandardný editor Komposer
-Comment[sl]=Privzeti urejevalnik Komposer
-Comment[sr]=Подразумевани Komposer-ов уређивач
-Comment[sr@Latn]=Podrazumevani Komposer-ov uređivač
-Comment[sv]=Komposer standardeditor
-Comment[ta]=கம்போசர் முன்னிருப்பு தொகுப்பான்
-Comment[tr]=Öntanımlı Komposer düzenleyicisi
-Comment[uk]=Типовий редактор Komposer
-Comment[zh_CN]=Komposer 默认编辑器
-Comment[zh_TW]=Komposer 預設編輯器
diff --git a/libtdepim/komposer/plugins/default/defaulteditor.h b/libtdepim/komposer/plugins/default/defaulteditor.h
index 5763b554..3c55a792 100644
--- a/libtdepim/komposer/plugins/default/defaulteditor.h
+++ b/libtdepim/komposer/plugins/default/defaulteditor.h
@@ -33,7 +33,7 @@ class TDEActionCollection;
class DefaultEditor : public Komposer::Editor
{
- Q_OBJECT
+ TQ_OBJECT
public:
DefaultEditor( TQObject *parent, const char *name, const TQStringList &args );
diff --git a/libtdepim/kpimprefs.h b/libtdepim/kpimprefs.h
index dd180c97..b67d2491 100644
--- a/libtdepim/kpimprefs.h
+++ b/libtdepim/kpimprefs.h
@@ -24,7 +24,7 @@
#include <tqstringlist.h>
#include <tdeconfigskeleton.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQString;
diff --git a/libtdepim/kpimurlrequesterdlg.h b/libtdepim/kpimurlrequesterdlg.h
index 6a00cf4e..8679923d 100644
--- a/libtdepim/kpimurlrequesterdlg.h
+++ b/libtdepim/kpimurlrequesterdlg.h
@@ -20,7 +20,7 @@
#ifndef KPIMURLREQUESTDLG_H_INCLUDED
#define KPIMURLREQUESTDLG_H_INCLUDED
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <kurl.h>
#include <tqstring.h>
diff --git a/libtdepim/kpixmapregionselectordialog.h b/libtdepim/kpixmapregionselectordialog.h
index ee864391..2f77ab89 100644
--- a/libtdepim/kpixmapregionselectordialog.h
+++ b/libtdepim/kpixmapregionselectordialog.h
@@ -25,7 +25,7 @@
#include <kdialogbase.h>
#include <libtdepim/kpixmapregionselectorwidget.h>
#include <tqimage.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KPIM {
diff --git a/libtdepim/kpixmapregionselectorwidget.cpp b/libtdepim/kpixmapregionselectorwidget.cpp
index fa93fe3d..9cfe8f00 100644
--- a/libtdepim/kpixmapregionselectorwidget.cpp
+++ b/libtdepim/kpixmapregionselectorwidget.cpp
@@ -144,13 +144,13 @@ TDEPopupMenu *KPixmapRegionSelectorWidget::createPopupMenu()
popup->insertTitle(i18n("Image Operations"));
TDEAction *action = new TDEAction(i18n("&Rotate Clockwise"), "object-rotate-right",
- 0, TQT_TQOBJECT(this), TQT_SLOT(rotateClockwise()),
- TQT_TQOBJECT(popup), "rotateclockwise");
+ 0, this, TQ_SLOT(rotateClockwise()),
+ popup, "rotateclockwise");
action->plug(popup);
action = new TDEAction(i18n("Rotate &Counterclockwise"), "object-rotate-left",
- 0, TQT_TQOBJECT(this), TQT_SLOT(rotateCounterclockwise()),
- TQT_TQOBJECT(popup), "rotatecounterclockwise");
+ 0, this, TQ_SLOT(rotateCounterclockwise()),
+ popup, "rotatecounterclockwise");
action->plug(popup);
/*
@@ -218,7 +218,7 @@ bool KPixmapRegionSelectorWidget::eventFilter(TQObject *obj, TQEvent *ev)
TQMouseEvent *mev= (TQMouseEvent *)(ev);
//kdDebug() << TQString("click at %1,%2").arg( mev->x() ).arg( mev->y() ) << endl;
- if ( mev->button() == Qt::RightButton )
+ if ( mev->button() == TQt::RightButton )
{
TDEPopupMenu *popup = createPopupMenu( );
popup->exec( mev->globalPos() );
@@ -429,7 +429,7 @@ void KPixmapRegionSelectorWidget::setMaximumWidgetSize(int width, int height)
{
/* We have to resize the pixmap to get it complete on the screen */
TQImage image=m_originalPixmap.convertToImage();
- m_originalPixmap.convertFromImage( image.smoothScale( width, height, TQ_ScaleMin ) );
+ m_originalPixmap.convertFromImage( image.smoothScale( width, height, TQImage::ScaleMin ) );
//m_originalPixmap.convertFromImage( KImageEffect::sample( image, width, height ) );
double oldZoomFactor = m_zoomFactor;
m_zoomFactor=m_originalPixmap.width()/(double)m_unzoomedPixmap.width();
diff --git a/libtdepim/kpixmapregionselectorwidget.h b/libtdepim/kpixmapregionselectorwidget.h
index 9af02c2c..7a90e2ac 100644
--- a/libtdepim/kpixmapregionselectorwidget.h
+++ b/libtdepim/kpixmapregionselectorwidget.h
@@ -46,7 +46,7 @@ namespace KPIM {
*/
class KPixmapRegionSelectorWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/kprefsdialog.cpp b/libtdepim/kprefsdialog.cpp
index ae24bc22..b910dc33 100644
--- a/libtdepim/kprefsdialog.cpp
+++ b/libtdepim/kprefsdialog.cpp
@@ -103,7 +103,7 @@ KPrefsWidBool::KPrefsWidBool( TDEConfigSkeleton::ItemBool *item, TQWidget *paren
: mItem( item )
{
mCheck = new TQCheckBox( item->label(), parent);
- connect( mCheck, TQT_SIGNAL( clicked() ), TQT_SIGNAL( changed() ) );
+ connect( mCheck, TQ_SIGNAL( clicked() ), TQ_SIGNAL( changed() ) );
if ( !item->whatsThis().isNull() ) {
TQWhatsThis::add( mCheck, item->whatsThis() );
}
@@ -144,7 +144,7 @@ KPrefsWidInt::KPrefsWidInt( TDEConfigSkeleton::ItemInt *item,
if ( !item->maxValue().isNull() ) {
mSpin->setMaxValue( item->maxValue().toInt() );
}
- connect( mSpin, TQT_SIGNAL( valueChanged( int ) ), TQT_SIGNAL( changed() ) );
+ connect( mSpin, TQ_SIGNAL( valueChanged( int ) ), TQ_SIGNAL( changed() ) );
mLabel->setBuddy( mSpin );
TQString whatsThis = mItem->whatsThis();
if ( !whatsThis.isEmpty() ) {
@@ -187,7 +187,7 @@ KPrefsWidColor::KPrefsWidColor( TDEConfigSkeleton::ItemColor *item,
: mItem( item )
{
mButton = new KColorButton( parent );
- connect( mButton, TQT_SIGNAL( changed( const TQColor & ) ), TQT_SIGNAL( changed() ) );
+ connect( mButton, TQ_SIGNAL( changed( const TQColor & ) ), TQ_SIGNAL( changed() ) );
mLabel = new TQLabel( mButton, mItem->label()+':', parent );
mLabel->setBuddy( mButton );
TQString whatsThis = mItem->whatsThis();
@@ -232,7 +232,7 @@ KPrefsWidFont::KPrefsWidFont( TDEConfigSkeleton::ItemFont *item,
mPreview->setFrameStyle( TQFrame::Panel | TQFrame::Sunken );
mButton = new TQPushButton( i18n("Choose..."), parent );
- connect( mButton, TQT_SIGNAL( clicked() ), TQT_SLOT( selectFont() ) );
+ connect( mButton, TQ_SIGNAL( clicked() ), TQ_SLOT( selectFont() ) );
TQString whatsThis = mItem->whatsThis();
if (!whatsThis.isNull()) {
TQWhatsThis::add(mPreview, whatsThis);
@@ -287,7 +287,7 @@ KPrefsWidTime::KPrefsWidTime( TDEConfigSkeleton::ItemDateTime *item,
mLabel = new TQLabel( mItem->label()+':', parent );
mTimeEdit = new KTimeEdit( parent );
mLabel->setBuddy( mTimeEdit );
- connect( mTimeEdit, TQT_SIGNAL( timeChanged( TQTime ) ), TQT_SIGNAL( changed() ) );
+ connect( mTimeEdit, TQ_SIGNAL( timeChanged( TQTime ) ), TQ_SIGNAL( changed() ) );
TQString whatsThis = mItem->whatsThis();
if ( !whatsThis.isNull() ) {
TQWhatsThis::add( mTimeEdit, whatsThis );
@@ -330,7 +330,7 @@ KPrefsWidDuration::KPrefsWidDuration( TDEConfigSkeleton::ItemDateTime *item,
mTimeEdit->setDisplay( TQTimeEdit::Hours | TQTimeEdit::Minutes );
mTimeEdit->setRange( TQTime( 0, 1 ), TQTime( 24, 0 ) ); // [1min, 24hr]
connect( mTimeEdit,
- TQT_SIGNAL( valueChanged( const TQTime & ) ), TQT_SIGNAL( changed() ) );
+ TQ_SIGNAL( valueChanged( const TQTime & ) ), TQ_SIGNAL( changed() ) );
TQString whatsThis = mItem->whatsThis();
if ( !whatsThis.isNull() ) {
TQWhatsThis::add( mTimeEdit, whatsThis );
@@ -367,7 +367,7 @@ KPrefsWidDate::KPrefsWidDate( TDEConfigSkeleton::ItemDateTime *item,
mLabel = new TQLabel( mItem->label()+':', parent );
mDateEdit = new KDateEdit( parent );
mLabel->setBuddy( mDateEdit );
- connect( mDateEdit, TQT_SIGNAL( dateChanged( const TQDate& ) ), TQT_SIGNAL( changed() ) );
+ connect( mDateEdit, TQ_SIGNAL( dateChanged( const TQDate& ) ), TQ_SIGNAL( changed() ) );
TQString whatsThis = mItem->whatsThis();
if ( !whatsThis.isNull() ) {
TQWhatsThis::add( mDateEdit, whatsThis );
@@ -401,8 +401,8 @@ KPrefsWidRadios::KPrefsWidRadios( TDEConfigSkeleton::ItemEnum *item,
TQWidget *parent )
: mItem( item )
{
- mBox = new TQButtonGroup( 1, Qt::Horizontal, mItem->label(), parent );
- connect( mBox, TQT_SIGNAL( clicked( int ) ), TQT_SIGNAL( changed() ) );
+ mBox = new TQButtonGroup( 1, TQt::Horizontal, mItem->label(), parent );
+ connect( mBox, TQ_SIGNAL( clicked( int ) ), TQ_SIGNAL( changed() ) );
}
KPrefsWidRadios::~KPrefsWidRadios()
@@ -446,7 +446,7 @@ KPrefsWidCombo::KPrefsWidCombo( TDEConfigSkeleton::ItemEnum *item,
TQHBox *hbox = new TQHBox(parent);
new TQLabel( mItem->label(), hbox );
mCombo = new TQComboBox( hbox );
- connect( mCombo, TQT_SIGNAL( activated( int ) ), TQT_SIGNAL( changed() ) );
+ connect( mCombo, TQ_SIGNAL( activated( int ) ), TQ_SIGNAL( changed() ) );
}
KPrefsWidCombo::~KPrefsWidCombo()
@@ -483,8 +483,8 @@ KPrefsWidString::KPrefsWidString( TDEConfigSkeleton::ItemString *item,
mLabel = new TQLabel( mItem->label()+':', parent );
mEdit = new TQLineEdit( parent );
mLabel->setBuddy( mEdit );
- connect( mEdit, TQT_SIGNAL( textChanged( const TQString & ) ),
- TQT_SIGNAL( changed() ) );
+ connect( mEdit, TQ_SIGNAL( textChanged( const TQString & ) ),
+ TQ_SIGNAL( changed() ) );
mEdit->setEchoMode( echomode );
TQString whatsThis = mItem->whatsThis();
if ( !whatsThis.isNull() ) {
@@ -534,8 +534,8 @@ KPrefsWidPath::KPrefsWidPath( TDEConfigSkeleton::ItemPath *item, TQWidget *paren
mLabel->setBuddy( mURLRequester );
mURLRequester->setMode( mode );
mURLRequester->setFilter( filter );
- connect( mURLRequester, TQT_SIGNAL( textChanged( const TQString & ) ),
- TQT_SIGNAL( changed() ) );
+ connect( mURLRequester, TQ_SIGNAL( textChanged( const TQString & ) ),
+ TQ_SIGNAL( changed() ) );
TQString whatsThis = mItem->whatsThis();
if ( !whatsThis.isNull() ) {
TQWhatsThis::add( mURLRequester, whatsThis );
@@ -742,8 +742,8 @@ KPrefsDialog::KPrefsDialog( TDEConfigSkeleton *prefs, TQWidget *parent, char *na
// TODO: This seems to cause a crash on exit. Investigate later.
// mPrefsWids.setAutoDelete(true);
-// connect(this,TQT_SIGNAL(defaultClicked()),TQT_SLOT(setDefaults()));
- connect(this,TQT_SIGNAL(cancelClicked()),TQT_SLOT(reject()));
+// connect(this,TQ_SIGNAL(defaultClicked()),TQ_SLOT(setDefaults()));
+ connect(this,TQ_SIGNAL(cancelClicked()),TQ_SLOT(reject()));
}
KPrefsDialog::~KPrefsDialog()
@@ -869,7 +869,7 @@ void KPrefsModule::addWid( KPrefsWid *wid )
{
KPrefsWidManager::addWid( wid );
- connect( wid, TQT_SIGNAL( changed() ), TQT_SLOT( slotWidChanged() ) );
+ connect( wid, TQ_SIGNAL( changed() ), TQ_SLOT( slotWidChanged() ) );
}
void KPrefsModule::slotWidChanged()
diff --git a/libtdepim/kprefsdialog.h b/libtdepim/kprefsdialog.h
index 3e331b18..080d592e 100644
--- a/libtdepim/kprefsdialog.h
+++ b/libtdepim/kprefsdialog.h
@@ -32,7 +32,7 @@
#include <tdecmodule.h>
#include <tdeconfigskeleton.h>
#include <tdefile.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KColorButton;
@@ -57,7 +57,7 @@ class KURLRequester;
*/
class KDE_EXPORT KPrefsWid : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
@@ -278,7 +278,7 @@ class KDE_EXPORT KPrefsWidDate : public KPrefsWid
*/
class KDE_EXPORT KPrefsWidColor : public KPrefsWid
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
@@ -321,7 +321,7 @@ class KDE_EXPORT KPrefsWidColor : public KPrefsWid
*/
class KDE_EXPORT KPrefsWidFont : public KPrefsWid
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
@@ -720,7 +720,7 @@ class KDE_EXPORT KPrefsWidManager
*/
class KDE_EXPORT KPrefsDialog : public KDialogBase, public KPrefsWidManager
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
@@ -774,7 +774,7 @@ class KDE_EXPORT KPrefsDialog : public KDialogBase, public KPrefsWidManager
class KDE_EXPORT KPrefsModule : public TDECModule, public KPrefsWidManager
{
- Q_OBJECT
+ TQ_OBJECT
public:
KPrefsModule( TDEConfigSkeleton *, TQWidget *parent = 0, const char *name = 0 );
diff --git a/libtdepim/kregexp3.cpp b/libtdepim/kregexp3.cpp
index d60946c2..006872ec 100644
--- a/libtdepim/kregexp3.cpp
+++ b/libtdepim/kregexp3.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kregexp3.cpp
This file is part of libtdenetwork.
diff --git a/libtdepim/kregexp3.h b/libtdepim/kregexp3.h
index 4622e16d..909e6bfa 100644
--- a/libtdepim/kregexp3.h
+++ b/libtdepim/kregexp3.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kregexp3.h
This file is part of libtdenetwork.
@@ -34,7 +34,7 @@
#include <tqstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
/** @short A TQRegExp (TQt3.x) with a replace() method.
diff --git a/libtdepim/kresourceprefs.h b/libtdepim/kresourceprefs.h
index 1954f19c..398490a1 100644
--- a/libtdepim/kresourceprefs.h
+++ b/libtdepim/kresourceprefs.h
@@ -23,7 +23,7 @@
#define KRESOURCEPREFS_H
#include <tdeconfigskeleton.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQString;
diff --git a/libtdepim/krsqueezedtextlabel.h b/libtdepim/krsqueezedtextlabel.h
index cfa924f3..518493c1 100644
--- a/libtdepim/krsqueezedtextlabel.h
+++ b/libtdepim/krsqueezedtextlabel.h
@@ -22,7 +22,7 @@
#define KRSQUEEZEDTEXTLABEL_H
#include <tqlabel.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
/**
* @short A replacement for TQLabel that squeezes its text
@@ -39,7 +39,7 @@
* TQLabel
*/
class KDE_EXPORT KRSqueezedTextLabel : public TQLabel {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/kscoring.cpp b/libtdepim/kscoring.cpp
index e447ac7e..b0ebf72d 100644
--- a/libtdepim/kscoring.cpp
+++ b/libtdepim/kscoring.cpp
@@ -18,8 +18,6 @@
#undef TQT_NO_ASCII_CAST
#endif
-#undef TQT_NO_COMPAT
-
#include <iostream>
#include <tqfile.h>
@@ -86,7 +84,7 @@ NotifyDialog::NotifyDialog(TQWidget* p)
TQCheckBox *check = new TQCheckBox(i18n("Do not show this message again"),f);
check->setChecked(true);
topL->addWidget(check);
- connect(check,TQT_SIGNAL(toggled(bool)),TQT_SLOT(slotShowAgainToggled(bool)));
+ connect(check,TQ_SIGNAL(toggled(bool)),TQ_SLOT(slotShowAgainToggled(bool)));
}
void NotifyDialog::slotShowAgainToggled(bool flag)
diff --git a/libtdepim/kscoring.h b/libtdepim/kscoring.h
index a345ba14..07ddb178 100644
--- a/libtdepim/kscoring.h
+++ b/libtdepim/kscoring.h
@@ -38,7 +38,7 @@
#include <klineedit.h>
#include <knuminput.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQDomNode;
class TQDomDocument;
@@ -302,7 +302,7 @@ private:
// Manages the score rules.
class KDE_EXPORT KScoringManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -409,7 +409,7 @@ class KDE_EXPORT KScoringManager : public TQObject
//----------------------------------------------------------------------------
class KDE_EXPORT NotifyDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
static void display(ScorableArticle&,const TQString&);
diff --git a/libtdepim/kscoringeditor.cpp b/libtdepim/kscoringeditor.cpp
index 7942e4ef..1a536e82 100644
--- a/libtdepim/kscoringeditor.cpp
+++ b/libtdepim/kscoringeditor.cpp
@@ -15,8 +15,6 @@
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US
*/
-#undef TQT_NO_COMPAT
-
#include "kscoring.h"
#include "kscoringeditor.h"
@@ -78,7 +76,7 @@ SingleConditionWidget::SingleConditionWidget(KScoringManager *m,TQWidget *p, con
matches->insertStringList(KScoringExpression::conditionNames());
TQToolTip::add(matches,i18n("Select the type of match"));
firstRow->addWidget(matches,1);
- connect( matches, TQT_SIGNAL( activated( int ) ), TQT_SLOT( toggleRegExpButton( int ) ) );
+ connect( matches, TQ_SIGNAL( activated( int ) ), TQ_SLOT( toggleRegExpButton( int ) ) );
TQHBoxLayout *secondRow = new TQHBoxLayout( topL );
secondRow->setSpacing( 1 );
expr = new KLineEdit( this );
@@ -88,7 +86,7 @@ SingleConditionWidget::SingleConditionWidget(KScoringManager *m,TQWidget *p, con
secondRow->addWidget( expr );
regExpButton = new TQPushButton( i18n("Edit..."), this );
secondRow->addWidget( regExpButton );
- connect( regExpButton, TQT_SIGNAL( clicked() ), TQT_SLOT( showRegExpDialog() ) );
+ connect( regExpButton, TQ_SIGNAL( clicked() ), TQ_SLOT( showRegExpDialog() ) );
// occupy at much width as possible
setSizePolicy(TQSizePolicy(TQSizePolicy::Expanding,TQSizePolicy::Fixed));
@@ -253,7 +251,7 @@ SingleActionWidget::SingleActionWidget(KScoringManager *m,TQWidget *p, const cha
}
}
- connect(types,TQT_SIGNAL(activated(int)),stack,TQT_SLOT(raiseWidget(int)));
+ connect(types,TQ_SIGNAL(activated(int)),stack,TQ_SLOT(raiseWidget(int)));
// raise the dummy label
types->setCurrentItem(0);
@@ -415,7 +413,7 @@ RuleEditWidget::RuleEditWidget(KScoringManager *m,TQWidget *p, const char *n)
groupL->addWidget( groupsLabel, 2, 0 );
TQPushButton *groupsBtn = new TQPushButton(i18n("A&dd Group"), groupB);
- connect(groupsBtn,TQT_SIGNAL(clicked()),TQT_SLOT(slotAddGroup()));
+ connect(groupsBtn,TQ_SIGNAL(clicked()),TQ_SLOT(slotAddGroup()));
groupL->addWidget( groupsBtn, 3, 0 );
groupsBox = new KComboBox( false, groupB, "groupsBox" );
@@ -430,15 +428,15 @@ RuleEditWidget::RuleEditWidget(KScoringManager *m,TQWidget *p, const char *n)
expireEdit = new KIntSpinBox(1,99999,1,30,10, groupB, "expireWidget");
//Init suffix
slotExpireEditChanged(30);
- connect(expireEdit, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotExpireEditChanged(int)));
+ connect(expireEdit, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(slotExpireEditChanged(int)));
groupL->addWidget( expireEdit, 5, 1 );
expireLabel = new TQLabel(expireEdit, i18n("&Rule is valid for:"), groupB, "expireLabel");
groupL->addWidget( expireLabel, 5, 0 );
expireLabel->setEnabled(false);
expireEdit->setEnabled(false);
- connect(expireCheck, TQT_SIGNAL(toggled(bool)), expireLabel, TQT_SLOT(setEnabled(bool)));
- connect(expireCheck, TQT_SIGNAL(toggled(bool)), expireEdit, TQT_SLOT(setEnabled(bool)));
+ connect(expireCheck, TQ_SIGNAL(toggled(bool)), expireLabel, TQ_SLOT(setEnabled(bool)));
+ connect(expireCheck, TQ_SIGNAL(toggled(bool)), expireEdit, TQ_SLOT(setEnabled(bool)));
//------------- Conditions ---------------------
TQGroupBox *groupConds = new TQGroupBox(i18n("Conditions"), this);
@@ -459,7 +457,7 @@ RuleEditWidget::RuleEditWidget(KScoringManager *m,TQWidget *p, const char *n)
condEditor = new ConditionEditWidget(manager,groupConds);
condL->addMultiCellWidget(condEditor, 2,2, 0,1);
- connect(condEditor,TQT_SIGNAL(widgetRemoved()),this,TQT_SLOT(slotShrink()));
+ connect(condEditor,TQ_SIGNAL(widgetRemoved()),this,TQ_SLOT(slotShrink()));
//------------- Actions ---------------------
TQGroupBox *groupActions = new TQGroupBox(i18n("Actions"), this);
@@ -468,7 +466,7 @@ RuleEditWidget::RuleEditWidget(KScoringManager *m,TQWidget *p, const char *n)
actionL->addSpacing(fontMetrics().lineSpacing()-4);
actionEditor = new ActionEditWidget(manager,groupActions);
actionL->addWidget(actionEditor);
- connect(actionEditor,TQT_SIGNAL(widgetRemoved()),this,TQT_SLOT(slotShrink()));
+ connect(actionEditor,TQ_SIGNAL(widgetRemoved()),this,TQ_SLOT(slotShrink()));
topLayout->addStretch(1);
@@ -602,13 +600,13 @@ RuleListWidget::RuleListWidget(KScoringManager *m, bool standalone, TQWidget *p,
TQVBoxLayout *topL = new TQVBoxLayout(this,standalone? 0:5,KDialog::spacingHint());
ruleList = new TDEListBox(this);
if (standalone) {
- connect(ruleList,TQT_SIGNAL(doubleClicked(TQListBoxItem*)),
- this,TQT_SLOT(slotEditRule(TQListBoxItem*)));
- connect(ruleList,TQT_SIGNAL(returnPressed(TQListBoxItem*)),
- this,TQT_SLOT(slotEditRule(TQListBoxItem*)));
+ connect(ruleList,TQ_SIGNAL(doubleClicked(TQListBoxItem*)),
+ this,TQ_SLOT(slotEditRule(TQListBoxItem*)));
+ connect(ruleList,TQ_SIGNAL(returnPressed(TQListBoxItem*)),
+ this,TQ_SLOT(slotEditRule(TQListBoxItem*)));
}
- connect(ruleList, TQT_SIGNAL(currentChanged(TQListBoxItem*)),
- this, TQT_SLOT(slotRuleSelected(TQListBoxItem*)));
+ connect(ruleList, TQ_SIGNAL(currentChanged(TQListBoxItem*)),
+ this, TQ_SLOT(slotRuleSelected(TQListBoxItem*)));
topL->addWidget(ruleList);
TQHBoxLayout *btnL = new TQHBoxLayout( topL, KDialog::spacingHint() );
@@ -616,12 +614,12 @@ RuleListWidget::RuleListWidget(KScoringManager *m, bool standalone, TQWidget *p,
mRuleUp->setPixmap( BarIcon( "go-up", TDEIcon::SizeSmall ) );
TQToolTip::add( mRuleUp, i18n("Move rule up") );
btnL->addWidget( mRuleUp );
- connect( mRuleUp, TQT_SIGNAL( clicked() ), TQT_SLOT( slotRuleUp() ) );
+ connect( mRuleUp, TQ_SIGNAL( clicked() ), TQ_SLOT( slotRuleUp() ) );
mRuleDown = new TQPushButton( this );
mRuleDown->setPixmap( BarIcon( "go-down", TDEIcon::SizeSmall ) );
TQToolTip::add( mRuleDown, i18n("Move rule down") );
btnL->addWidget( mRuleDown );
- connect( mRuleDown, TQT_SIGNAL( clicked() ), TQT_SLOT( slotRuleDown() ) );
+ connect( mRuleDown, TQ_SIGNAL( clicked() ), TQ_SLOT( slotRuleDown() ) );
btnL = new TQHBoxLayout( topL, KDialog::spacingHint() );
editRule=0L;
@@ -629,25 +627,25 @@ RuleListWidget::RuleListWidget(KScoringManager *m, bool standalone, TQWidget *p,
newRule->setPixmap( BarIcon( "document-new", TDEIcon::SizeSmall ) );
TQToolTip::add(newRule,i18n("New rule")),
btnL->addWidget(newRule);
- connect(newRule, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotNewRule()));
+ connect(newRule, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotNewRule()));
// if we're standalone, we need an additional edit button
if (standalone) {
editRule = new TQPushButton(this);
editRule->setIconSet( BarIconSet("edit", TDEIcon::SizeSmall) );
TQToolTip::add(editRule,i18n("Edit rule"));
btnL->addWidget(editRule);
- connect(editRule,TQT_SIGNAL(clicked()),this,TQT_SLOT(slotEditRule()));
+ connect(editRule,TQ_SIGNAL(clicked()),this,TQ_SLOT(slotEditRule()));
}
delRule = new TQPushButton(this);
delRule->setIconSet( BarIconSet( "edit-delete", TDEIcon::SizeSmall ) );
TQToolTip::add(delRule,i18n("Remove rule"));
btnL->addWidget(delRule);
- connect(delRule, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotDelRule()));
+ connect(delRule, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotDelRule()));
copyRule = new TQPushButton(this);
copyRule->setIconSet(BarIconSet("edit-copy", TDEIcon::SizeSmall));
TQToolTip::add(copyRule,i18n("Copy rule"));
btnL->addWidget(copyRule);
- connect(copyRule, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotCopyRule()));
+ connect(copyRule, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotCopyRule()));
// the group filter
TQBoxLayout *filterL = new TQVBoxLayout(topL,KDialog::spacingHint());
@@ -656,17 +654,17 @@ RuleListWidget::RuleListWidget(KScoringManager *m, bool standalone, TQWidget *p,
filterBox->insertItem(i18n("<all groups>"));
filterBox->insertStringList(l);
filterBox->setSizePolicy(TQSizePolicy(TQSizePolicy::Expanding, TQSizePolicy::Fixed));
- connect(filterBox,TQT_SIGNAL(activated(const TQString&)),
- this,TQT_SLOT(slotGroupFilter(const TQString&)));
+ connect(filterBox,TQ_SIGNAL(activated(const TQString&)),
+ this,TQ_SLOT(slotGroupFilter(const TQString&)));
slotGroupFilter(i18n("<all groups>"));
TQLabel *lab = new TQLabel(filterBox,i18n("Sho&w only rules for group:"),this);
filterL->addWidget(lab);
filterL->addWidget(filterBox);
- connect(manager,TQT_SIGNAL(changedRules()),
- this,TQT_SLOT(updateRuleList()));
- connect(manager,TQT_SIGNAL(changedRuleName(const TQString&,const TQString&)),
- this,TQT_SLOT(slotRuleNameChanged(const TQString&,const TQString&)));
+ connect(manager,TQ_SIGNAL(changedRules()),
+ this,TQ_SLOT(updateRuleList()));
+ connect(manager,TQ_SIGNAL(changedRuleName(const TQString&,const TQString&)),
+ this,TQ_SLOT(slotRuleNameChanged(const TQString&,const TQString&)));
updateRuleList();
updateButton();
@@ -874,12 +872,12 @@ KScoringEditor::KScoringEditor(KScoringManager* m,
hbl->addWidget(ruleLister);
ruleEditor = new RuleEditWidget(manager,w);
hbl->addWidget(ruleEditor);
- connect(ruleLister,TQT_SIGNAL(ruleSelected(const TQString&)),
- ruleEditor, TQT_SLOT(slotEditRule(const TQString&)));
- connect(ruleLister, TQT_SIGNAL(leavingRule()),
- ruleEditor, TQT_SLOT(updateRule()));
- connect(ruleEditor, TQT_SIGNAL(shrink()), TQT_SLOT(slotShrink()));
- connect(this,TQT_SIGNAL(finished()),TQT_SLOT(slotFinished()));
+ connect(ruleLister,TQ_SIGNAL(ruleSelected(const TQString&)),
+ ruleEditor, TQ_SLOT(slotEditRule(const TQString&)));
+ connect(ruleLister, TQ_SIGNAL(leavingRule()),
+ ruleEditor, TQ_SLOT(updateRule()));
+ connect(ruleEditor, TQ_SIGNAL(shrink()), TQ_SLOT(slotShrink()));
+ connect(this,TQ_SIGNAL(finished()),TQ_SLOT(slotFinished()));
ruleLister->slotRuleSelected(0);
resize(550, sizeHint().height());
}
@@ -911,7 +909,7 @@ void KScoringEditor::setRule(KScoringRule* r)
void KScoringEditor::slotShrink()
{
- TQTimer::singleShot(5, this, TQT_SLOT(slotDoShrink()));
+ TQTimer::singleShot(5, this, TQ_SLOT(slotDoShrink()));
}
void KScoringEditor::slotDoShrink()
@@ -966,7 +964,7 @@ KScoringEditorWidgetDialog::KScoringEditorWidgetDialog(KScoringManager *m, const
TQFrame *f = makeMainWidget();
TQBoxLayout *topL = new TQVBoxLayout(f);
ruleEditor = new RuleEditWidget(manager,f);
- connect(ruleEditor, TQT_SIGNAL(shrink()), TQT_SLOT(slotShrink()));
+ connect(ruleEditor, TQ_SIGNAL(shrink()), TQ_SLOT(slotShrink()));
topL->addWidget(ruleEditor);
ruleEditor->slotEditRule(ruleName);
resize(0,0);
@@ -989,7 +987,7 @@ void KScoringEditorWidgetDialog::slotOk()
void KScoringEditorWidgetDialog::slotShrink()
{
- TQTimer::singleShot(5, this, TQT_SLOT(slotDoShrink()));
+ TQTimer::singleShot(5, this, TQ_SLOT(slotDoShrink()));
}
void KScoringEditorWidgetDialog::slotDoShrink()
@@ -1010,8 +1008,8 @@ KScoringEditorWidget::KScoringEditorWidget(KScoringManager *m,TQWidget *p, const
TQBoxLayout *topL = new TQVBoxLayout(this);
ruleLister = new RuleListWidget(manager,true,this);
topL->addWidget(ruleLister);
- connect(ruleLister,TQT_SIGNAL(ruleEdited(const TQString&)),
- this,TQT_SLOT(slotRuleEdited(const TQString &)));
+ connect(ruleLister,TQ_SIGNAL(ruleEdited(const TQString&)),
+ this,TQ_SLOT(slotRuleEdited(const TQString &)));
}
KScoringEditorWidget::~KScoringEditorWidget()
diff --git a/libtdepim/kscoringeditor.h b/libtdepim/kscoringeditor.h
index 0160a9e4..8df84e17 100644
--- a/libtdepim/kscoringeditor.h
+++ b/libtdepim/kscoringeditor.h
@@ -25,7 +25,7 @@
#include "kwidgetlister.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KComboBox;
class KLineEdit;
@@ -51,7 +51,7 @@ class KColorCombo;
*/
class KDE_EXPORT SingleConditionWidget : public TQFrame
{
- Q_OBJECT
+ TQ_OBJECT
friend class ConditionEditWidget;
public:
@@ -84,7 +84,7 @@ private:
*/
class ConditionEditWidget: public KWidgetLister
{
- Q_OBJECT
+ TQ_OBJECT
public:
ConditionEditWidget(KScoringManager *,TQWidget *p =0, const char *n =0);
@@ -103,7 +103,7 @@ private:
*/
class SingleActionWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
friend class ActionEditWidget;
public:
@@ -133,7 +133,7 @@ private:
*/
class KDE_EXPORT ActionEditWidget : public KWidgetLister
{
- Q_OBJECT
+ TQ_OBJECT
public:
ActionEditWidget(KScoringManager *m,TQWidget *p =0, const char *n =0);
@@ -151,7 +151,7 @@ private:
*/
class RuleEditWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
RuleEditWidget(KScoringManager *m,TQWidget *p =0, const char *n =0);
@@ -202,7 +202,7 @@ private:
*/
class KDE_EXPORT RuleListWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
RuleListWidget(KScoringManager *m, bool =false, TQWidget *p =0, const char *n =0);
@@ -253,7 +253,7 @@ private:
class KDE_EXPORT KScoringEditor : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
~KScoringEditor();
@@ -284,7 +284,7 @@ private:
class KScoringEditorWidgetDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
KScoringEditorWidgetDialog(KScoringManager *m, const TQString& rName, TQWidget *parent=0, const char *name=0);
@@ -301,7 +301,7 @@ private:
class KDE_EXPORT KScoringEditorWidget : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
KScoringEditorWidget(KScoringManager *m,TQWidget *p =0, const char *n =0);
diff --git a/libtdepim/ksubscription.cpp b/libtdepim/ksubscription.cpp
index d72776bc..7bb7179d 100644
--- a/libtdepim/ksubscription.cpp
+++ b/libtdepim/ksubscription.cpp
@@ -227,7 +227,7 @@ KSubscription::KSubscription( TQWidget *parent, const TQString &caption,
TDEApplication::reverseLayout() ? "clear_left":"locationbar_erase", TDEIcon::Small, 0 ) );
filterEdit = new KLineEdit(page);
TQLabel *l = new TQLabel(filterEdit,i18n("S&earch:"), page);
- connect( clearButton, TQT_SIGNAL( clicked() ), filterEdit, TQT_SLOT( clear() ) );
+ connect( clearButton, TQ_SIGNAL( clicked() ), filterEdit, TQ_SLOT( clear() ) );
// checkboxes
noTreeCB = new TQCheckBox(i18n("Disable &tree view"), page);
@@ -323,29 +323,29 @@ KSubscription::KSubscription( TQWidget *parent, const TQString &caption,
filterEdit->setFocus();
// items clicked
- connect(groupView, TQT_SIGNAL(clicked(TQListViewItem *)),
- this, TQT_SLOT(slotChangeButtonState(TQListViewItem*)));
- connect(subView, TQT_SIGNAL(clicked(TQListViewItem *)),
- this, TQT_SLOT(slotChangeButtonState(TQListViewItem*)));
- connect(unsubView, TQT_SIGNAL(clicked(TQListViewItem *)),
- this, TQT_SLOT(slotChangeButtonState(TQListViewItem*)));
+ connect(groupView, TQ_SIGNAL(clicked(TQListViewItem *)),
+ this, TQ_SLOT(slotChangeButtonState(TQListViewItem*)));
+ connect(subView, TQ_SIGNAL(clicked(TQListViewItem *)),
+ this, TQ_SLOT(slotChangeButtonState(TQListViewItem*)));
+ connect(unsubView, TQ_SIGNAL(clicked(TQListViewItem *)),
+ this, TQ_SLOT(slotChangeButtonState(TQListViewItem*)));
// connect buttons
- connect(arrowBtn1, TQT_SIGNAL(clicked()), TQT_SLOT(slotButton1()));
- connect(arrowBtn2, TQT_SIGNAL(clicked()), TQT_SLOT(slotButton2()));
- connect(this, TQT_SIGNAL(user1Clicked()), TQT_SLOT(slotLoadFolders()));
+ connect(arrowBtn1, TQ_SIGNAL(clicked()), TQ_SLOT(slotButton1()));
+ connect(arrowBtn2, TQ_SIGNAL(clicked()), TQ_SLOT(slotButton2()));
+ connect(this, TQ_SIGNAL(user1Clicked()), TQ_SLOT(slotLoadFolders()));
// connect checkboxes
- connect(subCB, TQT_SIGNAL(clicked()), TQT_SLOT(slotCBToggled()));
- connect(newCB, TQT_SIGNAL(clicked()), TQT_SLOT(slotCBToggled()));
- connect(noTreeCB, TQT_SIGNAL(clicked()), TQT_SLOT(slotCBToggled()));
+ connect(subCB, TQ_SIGNAL(clicked()), TQ_SLOT(slotCBToggled()));
+ connect(newCB, TQ_SIGNAL(clicked()), TQ_SLOT(slotCBToggled()));
+ connect(noTreeCB, TQ_SIGNAL(clicked()), TQ_SLOT(slotCBToggled()));
// connect textfield
- connect(filterEdit, TQT_SIGNAL(textChanged(const TQString&)),
- TQT_SLOT(slotFilterTextChanged(const TQString&)));
+ connect(filterEdit, TQ_SIGNAL(textChanged(const TQString&)),
+ TQ_SLOT(slotFilterTextChanged(const TQString&)));
// update status
- connect(this, TQT_SIGNAL(listChanged()), TQT_SLOT(slotUpdateStatusLabel()));
+ connect(this, TQ_SIGNAL(listChanged()), TQ_SLOT(slotUpdateStatusLabel()));
}
//-----------------------------------------------------------------------------
diff --git a/libtdepim/ksubscription.h b/libtdepim/ksubscription.h
index 0fb5209c..c2d71050 100644
--- a/libtdepim/ksubscription.h
+++ b/libtdepim/ksubscription.h
@@ -29,7 +29,7 @@
#include <tqcheckbox.h>
#include <kdialogbase.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "kfoldertree.h"
class KSubscription;
@@ -187,7 +187,7 @@ class KDE_EXPORT GroupItem : public TQCheckListItem
class KDE_EXPORT KSubscription : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/ktimeedit.cpp b/libtdepim/ktimeedit.cpp
index edb871e8..4dd66280 100644
--- a/libtdepim/ktimeedit.cpp
+++ b/libtdepim/ktimeedit.cpp
@@ -43,7 +43,7 @@
class KOTimeValidator : public TQValidator
{
public:
- KOTimeValidator(TQWidget* parent, const char* name=0) : TQValidator(TQT_TQOBJECT(parent), name) {}
+ KOTimeValidator(TQWidget* parent, const char* name=0) : TQValidator(parent, name) {}
virtual State validate(TQString& str, int& /*cursorPos*/) const
{
@@ -126,11 +126,11 @@ KTimeEdit::KTimeEdit( TQWidget *parent, TQTime qt, const char *name )
insertItem( TDEGlobal::locale()->formatTime( TQTime( 23, 59, 59 ) ) );
updateText();
- setFocusPolicy(TQ_StrongFocus);
+ setFocusPolicy(TQWidget::StrongFocus);
- connect(this, TQT_SIGNAL(activated(int)), this, TQT_SLOT(active(int)));
- connect(this, TQT_SIGNAL(highlighted(int)), this, TQT_SLOT(hilit(int)));
- connect(this, TQT_SIGNAL(textChanged(const TQString&)),this,TQT_SLOT(changedText()));
+ connect(this, TQ_SIGNAL(activated(int)), this, TQ_SLOT(active(int)));
+ connect(this, TQ_SIGNAL(highlighted(int)), this, TQ_SLOT(hilit(int)));
+ connect(this, TQ_SIGNAL(textChanged(const TQString&)),this,TQ_SLOT(changedText()));
}
KTimeEdit::~KTimeEdit()
diff --git a/libtdepim/ktimeedit.h b/libtdepim/ktimeedit.h
index 1bb307f8..a4dbc754 100644
--- a/libtdepim/ktimeedit.h
+++ b/libtdepim/ktimeedit.h
@@ -32,7 +32,7 @@
#include <tqcombobox.h>
#include <tdeapplication.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
/**
This is a class that provides an easy, user friendly way to edit times.
@@ -43,7 +43,7 @@
*/
class KDE_EXPORT KTimeEdit : public TQComboBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** constructs a new time edit. */
diff --git a/libtdepim/kvcarddrag.h b/libtdepim/kvcarddrag.h
index 40263ac5..9a9cfda3 100644
--- a/libtdepim/kvcarddrag.h
+++ b/libtdepim/kvcarddrag.h
@@ -27,7 +27,7 @@
#include <tdeabc/addressee.h>
#include <tdeabc/vcardparser.h> // for KABC_VCARD_ENCODING_FIX define
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KVCardDragPrivate;
@@ -39,7 +39,7 @@ class KVCardDragPrivate;
*/
class KDE_EXPORT KVCardDrag : public TQStoredDrag
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/kwidgetlister.cpp b/libtdepim/kwidgetlister.cpp
index dc4e8a62..0ad66de7 100644
--- a/libtdepim/kwidgetlister.cpp
+++ b/libtdepim/kwidgetlister.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kwidgetlister.cpp
This file is part of libtdenetwork.
@@ -71,12 +71,12 @@ KWidgetLister::KWidgetLister( int minWidgets, int maxWidgets, TQWidget *parent,
mButtonBox->setStretchFactor( mBtnClear, 0 );
//---------- connect everything
- connect( mBtnMore, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotMore()) );
- connect( mBtnFewer, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotFewer()) );
- connect( mBtnClear, TQT_SIGNAL(clicked()),
- this, TQT_SLOT(slotClear()) );
+ connect( mBtnMore, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotMore()) );
+ connect( mBtnFewer, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotFewer()) );
+ connect( mBtnClear, TQ_SIGNAL(clicked()),
+ this, TQ_SLOT(slotClear()) );
enableControls();
}
diff --git a/libtdepim/kwidgetlister.h b/libtdepim/kwidgetlister.h
index 4eb189c2..4924f684 100644
--- a/libtdepim/kwidgetlister.h
+++ b/libtdepim/kwidgetlister.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
kwidgetlister.h
This file is part of libtdenetwork.
@@ -34,7 +34,7 @@
#include <tqwidget.h>
#include <tqptrlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQPushButton;
class TQVBoxLayout;
@@ -64,7 +64,7 @@ class TQHBox;
class KDE_EXPORT KWidgetLister : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
KWidgetLister( int minWidgets=1, int maxWidgets=8, TQWidget* parent=0, const char* name=0 );
diff --git a/libtdepim/kxface.h b/libtdepim/kxface.h
index 7d472560..ce7e98b3 100644
--- a/libtdepim/kxface.h
+++ b/libtdepim/kxface.h
@@ -30,7 +30,7 @@
#include <tqobject.h>
#include <setjmp.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
// #define WIDTH 48
// #define HEIGHT WIDTH
@@ -521,7 +521,7 @@ namespace KPIM {
class KDE_EXPORT KXFace : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/ldapclient.cpp b/libtdepim/ldapclient.cpp
index 8e478388..55d8362b 100644
--- a/libtdepim/ldapclient.cpp
+++ b/libtdepim/ldapclient.cpp
@@ -137,12 +137,12 @@ void LdapClient::startQuery( const TQString& filter )
startParseLDIF();
mActive = true;
mJob = TDEIO::get( url, false, false );
- connect( mJob, TQT_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ),
- this, TQT_SLOT( slotData( TDEIO::Job*, const TQByteArray& ) ) );
- connect( mJob, TQT_SIGNAL( infoMessage( TDEIO::Job*, const TQString& ) ),
- this, TQT_SLOT( slotInfoMessage( TDEIO::Job*, const TQString& ) ) );
- connect( mJob, TQT_SIGNAL( result( TDEIO::Job* ) ),
- this, TQT_SLOT( slotDone() ) );
+ connect( mJob, TQ_SIGNAL( data( TDEIO::Job*, const TQByteArray& ) ),
+ this, TQ_SLOT( slotData( TDEIO::Job*, const TQByteArray& ) ) );
+ connect( mJob, TQ_SIGNAL( infoMessage( TDEIO::Job*, const TQString& ) ),
+ this, TQ_SLOT( slotInfoMessage( TDEIO::Job*, const TQString& ) ) );
+ connect( mJob, TQ_SIGNAL( result( TDEIO::Job* ) ),
+ this, TQ_SLOT( slotDone() ) );
}
void LdapClient::cancelQuery()
@@ -345,8 +345,8 @@ LdapSearch::LdapSearch()
}
readConfig();
- connect(KDirWatch::self(), TQT_SIGNAL(dirty (const TQString&)),this,
- TQT_SLOT(slotFileChanged(const TQString&)));
+ connect(KDirWatch::self(), TQ_SIGNAL(dirty (const TQString&)),this,
+ TQ_SLOT(slotFileChanged(const TQString&)));
}
void LdapSearch::readWeighForClient( LdapClient *client, TDEConfig *config, int clientNumber )
@@ -394,17 +394,17 @@ void LdapSearch::readConfig()
attrs << "cn" << "mail" << "givenname" << "sn" << "objectClass";
ldapClient->setAttrs( attrs );
- connect( ldapClient, TQT_SIGNAL( result( const KPIM::LdapObject& ) ),
- this, TQT_SLOT( slotLDAPResult( const KPIM::LdapObject& ) ) );
- connect( ldapClient, TQT_SIGNAL( done() ),
- this, TQT_SLOT( slotLDAPDone() ) );
- connect( ldapClient, TQT_SIGNAL( error( const TQString& ) ),
- this, TQT_SLOT( slotLDAPError( const TQString& ) ) );
+ connect( ldapClient, TQ_SIGNAL( result( const KPIM::LdapObject& ) ),
+ this, TQ_SLOT( slotLDAPResult( const KPIM::LdapObject& ) ) );
+ connect( ldapClient, TQ_SIGNAL( done() ),
+ this, TQ_SLOT( slotLDAPDone() ) );
+ connect( ldapClient, TQ_SIGNAL( error( const TQString& ) ),
+ this, TQ_SLOT( slotLDAPError( const TQString& ) ) );
mClients.append( ldapClient );
}
- connect( &mDataTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotDataTimer() ) );
+ connect( &mDataTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( slotDataTimer() ) );
}
mConfigFile = locateLocal( "config", "kabldaprc" );
KDirWatch::self()->addFile( mConfigFile );
diff --git a/libtdepim/ldapclient.h b/libtdepim/ldapclient.h
index 41c44e11..a6249f7a 100644
--- a/libtdepim/ldapclient.h
+++ b/libtdepim/ldapclient.h
@@ -35,7 +35,7 @@
#include <tdeabc/ldif.h>
#include <tdeconfig.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KPIM {
@@ -141,7 +141,7 @@ class LdapObject
*/
class KDE_EXPORT LdapClient : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -245,7 +245,7 @@ typedef TQValueList<LdapResult> LdapResultList;
*/
class KDE_EXPORT LdapSearch : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/ldapsearchdialog.cpp b/libtdepim/ldapsearchdialog.cpp
index 17f1d984..26cc3d24 100644
--- a/libtdepim/ldapsearchdialog.cpp
+++ b/libtdepim/ldapsearchdialog.cpp
@@ -136,7 +136,7 @@ LDAPSearchDialog::LDAPSearchDialog( TQWidget* parent, const char* name )
page );
groupBox->setFrameShape( TQGroupBox::Box );
groupBox->setFrameShadow( TQGroupBox::Sunken );
- groupBox->setColumnLayout( 0, Qt::Vertical );
+ groupBox->setColumnLayout( 0, TQt::Vertical );
TQGridLayout *boxLayout = new TQGridLayout( groupBox->layout(), 2,
5, spacingHint() );
boxLayout->setColStretch( 1, 1 );
@@ -195,10 +195,10 @@ LDAPSearchDialog::LDAPSearchDialog( TQWidget* parent, const char* name )
mNumHosts = 0;
mIsOK = false;
- connect( mRecursiveCheckbox, TQT_SIGNAL( toggled( bool ) ),
- this, TQT_SLOT( slotSetScope( bool ) ) );
- connect( mSearchButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotStartSearch() ) );
+ connect( mRecursiveCheckbox, TQ_SIGNAL( toggled( bool ) ),
+ this, TQ_SLOT( slotSetScope( bool ) ) );
+ connect( mSearchButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotStartSearch() ) );
setTabOrder(mSearchEdit, mFilterCombo);
setTabOrder(mFilterCombo, mSearchButton);
@@ -258,7 +258,7 @@ void LDAPSearchDialog::restoreSettings()
if ( !pwdBindDN.isEmpty() )
ldapServer.setPwdBindDN( pwdBindDN );
- KPIM::LdapClient* ldapClient = new KPIM::LdapClient( 0, TQT_TQOBJECT(this), "ldapclient" );
+ KPIM::LdapClient* ldapClient = new KPIM::LdapClient( 0, this, "ldapclient" );
ldapClient->setServer( ldapServer );
TQStringList attrs;
@@ -268,12 +268,12 @@ void LDAPSearchDialog::restoreSettings()
ldapClient->setAttrs( attrs );
- connect( ldapClient, TQT_SIGNAL( result( const KPIM::LdapObject& ) ),
- this, TQT_SLOT( slotAddResult( const KPIM::LdapObject& ) ) );
- connect( ldapClient, TQT_SIGNAL( done() ),
- this, TQT_SLOT( slotSearchDone() ) );
- connect( ldapClient, TQT_SIGNAL( error( const TQString& ) ),
- this, TQT_SLOT( slotError( const TQString& ) ) );
+ connect( ldapClient, TQ_SIGNAL( result( const KPIM::LdapObject& ) ),
+ this, TQ_SLOT( slotAddResult( const KPIM::LdapObject& ) ) );
+ connect( ldapClient, TQ_SIGNAL( done() ),
+ this, TQ_SLOT( slotSearchDone() ) );
+ connect( ldapClient, TQ_SIGNAL( error( const TQString& ) ),
+ this, TQ_SLOT( slotError( const TQString& ) ) );
mLdapClientList.append( ldapClient );
}
@@ -378,10 +378,10 @@ void LDAPSearchDialog::slotStartSearch()
TQApplication::setOverrideCursor( TQt::waitCursor );
mSearchButton->setText( i18n( "Stop" ) );
- disconnect( mSearchButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotStartSearch() ) );
- connect( mSearchButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotStopSearch() ) );
+ disconnect( mSearchButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotStartSearch() ) );
+ connect( mSearchButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotStopSearch() ) );
bool startsWith = (mSearchType->currentItem() == 1);
@@ -410,10 +410,10 @@ void LDAPSearchDialog::slotSearchDone()
return;
}
- disconnect( mSearchButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotStopSearch() ) );
- connect( mSearchButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotStartSearch() ) );
+ disconnect( mSearchButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotStopSearch() ) );
+ connect( mSearchButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotStartSearch() ) );
mSearchButton->setText( i18n( "Search" ) );
TQApplication::restoreOverrideCursor();
diff --git a/libtdepim/ldapsearchdialog.h b/libtdepim/ldapsearchdialog.h
index 3d8c3bc2..cf33cb8a 100644
--- a/libtdepim/ldapsearchdialog.h
+++ b/libtdepim/ldapsearchdialog.h
@@ -37,7 +37,7 @@ namespace KPIM {
class LDAPSearchDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/linklocator.cpp b/libtdepim/linklocator.cpp
index f740c194..1de43268 100644
--- a/libtdepim/linklocator.cpp
+++ b/libtdepim/linklocator.cpp
@@ -22,6 +22,7 @@
#include "linklocator.h"
#include "pimemoticons.h"
+#include <tdeversion.h>
#include <tdeglobal.h>
#include <kstandarddirs.h>
#include <kstaticdeleter.h>
diff --git a/libtdepim/linklocator.h b/libtdepim/linklocator.h
index 4597d836..3fb3330b 100644
--- a/libtdepim/linklocator.h
+++ b/libtdepim/linklocator.h
@@ -26,7 +26,7 @@
#include <tqstring.h>
#include <tqmap.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
/**
* LinkLocator assists in identifying sections of text that can
diff --git a/libtdepim/maillistdrag.h b/libtdepim/maillistdrag.h
index 130ec29f..c0a95c8a 100644
--- a/libtdepim/maillistdrag.h
+++ b/libtdepim/maillistdrag.h
@@ -27,7 +27,7 @@
#include "tqglobal.h"
#include "time.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
/**
* TDEPIM classes for drag and drop of mails
diff --git a/libtdepim/overlaywidget.cpp b/libtdepim/overlaywidget.cpp
index 338a6c42..067e2d71 100644
--- a/libtdepim/overlaywidget.cpp
+++ b/libtdepim/overlaywidget.cpp
@@ -1,4 +1,4 @@
-/** -*- c++ -*-
+/*
* overlaywidget.h
*
* Copyright (c) 2004 David Faure <faure@kde.org>
@@ -76,7 +76,7 @@ void OverlayWidget::setAlignWidget( TQWidget * w )
bool OverlayWidget::eventFilter( TQObject* o, TQEvent* e)
{
- if ( TQT_BASE_OBJECT(o) == TQT_BASE_OBJECT(mAlignWidget) &&
+ if ( o == mAlignWidget &&
( e->type() == TQEvent::Move || e->type() == TQEvent::Resize ) ) {
reposition();
}
diff --git a/libtdepim/overlaywidget.h b/libtdepim/overlaywidget.h
index c25f00d7..acc7fe97 100644
--- a/libtdepim/overlaywidget.h
+++ b/libtdepim/overlaywidget.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
* overlaywidget.h
*
* Copyright (c) 2004 David Faure <faure@kde.org>
@@ -43,7 +43,7 @@ namespace KPIM {
*/
class OverlayWidget : public TQHBox
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/pluginloader.h b/libtdepim/pluginloader.h
index c6b80555..1ec8dc6f 100644
--- a/libtdepim/pluginloader.h
+++ b/libtdepim/pluginloader.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
This file is part of libtdepim.
Copyright (c) 2002,2004 Marc Mutz <mutz@kde.org>
diff --git a/libtdepim/pluginloaderbase.cpp b/libtdepim/pluginloaderbase.cpp
index 911fbba6..090c2fb7 100644
--- a/libtdepim/pluginloaderbase.cpp
+++ b/libtdepim/pluginloaderbase.cpp
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
This file is part of libtdepim.
Copyright (c) 2002,2004 Marc Mutz <mutz@kde.org>
diff --git a/libtdepim/pluginloaderbase.h b/libtdepim/pluginloaderbase.h
index 919a3121..6edc61be 100644
--- a/libtdepim/pluginloaderbase.h
+++ b/libtdepim/pluginloaderbase.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
This file is part of libtdepim.
Copyright (c) 2002,2004 Marc Mutz <mutz@kde.org>
@@ -25,7 +25,7 @@
#include <tqstring.h>
#include <tqmap.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KLibrary;
class TQStringList;
diff --git a/libtdepim/progressdialog.cpp b/libtdepim/progressdialog.cpp
index 061ea781..e780c297 100644
--- a/libtdepim/progressdialog.cpp
+++ b/libtdepim/progressdialog.cpp
@@ -1,4 +1,4 @@
-/** -*- c++ -*-
+/*
* progressdialog.cpp
*
* Copyright (c) 2004 Till Adam <adam@kde.org>,
@@ -75,7 +75,7 @@ TransactionItem* TransactionItemView::addTransactionItem( ProgressItem* item, bo
{
TransactionItem *ti = new TransactionItem( mBigBox, item, first );
ti->hide();
- TQTimer::singleShot( 1000, ti, TQT_SLOT( show() ) );
+ TQTimer::singleShot( 1000, ti, TQ_SLOT( show() ) );
return ti;
}
@@ -169,8 +169,8 @@ TransactionItem::TransactionItem( TQWidget* parent,
if ( item->canBeCanceled() ) {
mCancelButton = new TQPushButton( SmallIcon( "cancel" ), TQString(), h );
TQToolTip::add( mCancelButton, i18n("Cancel this operation.") );
- connect ( mCancelButton, TQT_SIGNAL( clicked() ),
- this, TQT_SLOT( slotItemCanceled() ));
+ connect ( mCancelButton, TQ_SIGNAL( clicked() ),
+ this, TQ_SLOT( slotItemCanceled() ));
}
h = new TQHBox( this );
@@ -262,7 +262,7 @@ ProgressDialog::ProgressDialog( TQWidget* alignWidget, TQWidget* parent, const c
pbClose->setFixedSize( 16, 16 );
pbClose->setIconSet( TDEGlobal::iconLoader()->loadIconSet( "window-close", TDEIcon::Small, 14 ) );
TQToolTip::add( pbClose, i18n( "Hide detailed progress window" ) );
- connect(pbClose, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotClose()));
+ connect(pbClose, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotClose()));
TQWidget* spacer = new TQWidget( rightBox ); // don't let the close button take up all the height
rightBox->setStretchFactor( spacer, 100 );
*/
@@ -272,22 +272,22 @@ ProgressDialog::ProgressDialog( TQWidget* alignWidget, TQWidget* parent, const c
* appearing and vanishing items.
*/
ProgressManager *pm = ProgressManager::instance();
- connect ( pm, TQT_SIGNAL( progressItemAdded( KPIM::ProgressItem* ) ),
- this, TQT_SLOT( slotTransactionAdded( KPIM::ProgressItem* ) ) );
- connect ( pm, TQT_SIGNAL( progressItemCompleted( KPIM::ProgressItem* ) ),
- this, TQT_SLOT( slotTransactionCompleted( KPIM::ProgressItem* ) ) );
- connect ( pm, TQT_SIGNAL( progressItemProgress( KPIM::ProgressItem*, unsigned int ) ),
- this, TQT_SLOT( slotTransactionProgress( KPIM::ProgressItem*, unsigned int ) ) );
- connect ( pm, TQT_SIGNAL( progressItemStatus( KPIM::ProgressItem*, const TQString& ) ),
- this, TQT_SLOT( slotTransactionStatus( KPIM::ProgressItem*, const TQString& ) ) );
- connect ( pm, TQT_SIGNAL( progressItemLabel( KPIM::ProgressItem*, const TQString& ) ),
- this, TQT_SLOT( slotTransactionLabel( KPIM::ProgressItem*, const TQString& ) ) );
- connect ( pm, TQT_SIGNAL( progressItemUsesCrypto(KPIM::ProgressItem*, bool) ),
- this, TQT_SLOT( slotTransactionUsesCrypto( KPIM::ProgressItem*, bool ) ) );
- connect ( pm, TQT_SIGNAL( progressItemUsesBusyIndicator(KPIM::ProgressItem*, bool) ),
- this, TQT_SLOT( slotTransactionUsesBusyIndicator( KPIM::ProgressItem*, bool ) ) );
- connect ( pm, TQT_SIGNAL( showProgressDialog() ),
- this, TQT_SLOT( slotShow() ) );
+ connect ( pm, TQ_SIGNAL( progressItemAdded( KPIM::ProgressItem* ) ),
+ this, TQ_SLOT( slotTransactionAdded( KPIM::ProgressItem* ) ) );
+ connect ( pm, TQ_SIGNAL( progressItemCompleted( KPIM::ProgressItem* ) ),
+ this, TQ_SLOT( slotTransactionCompleted( KPIM::ProgressItem* ) ) );
+ connect ( pm, TQ_SIGNAL( progressItemProgress( KPIM::ProgressItem*, unsigned int ) ),
+ this, TQ_SLOT( slotTransactionProgress( KPIM::ProgressItem*, unsigned int ) ) );
+ connect ( pm, TQ_SIGNAL( progressItemStatus( KPIM::ProgressItem*, const TQString& ) ),
+ this, TQ_SLOT( slotTransactionStatus( KPIM::ProgressItem*, const TQString& ) ) );
+ connect ( pm, TQ_SIGNAL( progressItemLabel( KPIM::ProgressItem*, const TQString& ) ),
+ this, TQ_SLOT( slotTransactionLabel( KPIM::ProgressItem*, const TQString& ) ) );
+ connect ( pm, TQ_SIGNAL( progressItemUsesCrypto(KPIM::ProgressItem*, bool) ),
+ this, TQ_SLOT( slotTransactionUsesCrypto( KPIM::ProgressItem*, bool ) ) );
+ connect ( pm, TQ_SIGNAL( progressItemUsesBusyIndicator(KPIM::ProgressItem*, bool) ),
+ this, TQ_SLOT( slotTransactionUsesBusyIndicator( KPIM::ProgressItem*, bool ) ) );
+ connect ( pm, TQ_SIGNAL( showProgressDialog() ),
+ this, TQ_SLOT( slotShow() ) );
}
void ProgressDialog::closeEvent( TQCloseEvent* e )
@@ -319,7 +319,7 @@ void ProgressDialog::slotTransactionAdded( ProgressItem *item )
if ( ti )
mTransactionsToListviewItems.replace( item, ti );
if ( first && mWasLastShown )
- TQTimer::singleShot( 1000, this, TQT_SLOT( slotShow() ) );
+ TQTimer::singleShot( 1000, this, TQ_SLOT( slotShow() ) );
}
}
@@ -330,14 +330,14 @@ void ProgressDialog::slotTransactionCompleted( ProgressItem *item )
TransactionItem *ti = mTransactionsToListviewItems[ item ];
mTransactionsToListviewItems.remove( item );
ti->setItemComplete();
- TQTimer::singleShot( 3000, ti, TQT_SLOT( deleteLater() ) );
+ TQTimer::singleShot( 3000, ti, TQ_SLOT( deleteLater() ) );
// see the slot for comments as to why that works
- connect ( ti, TQT_SIGNAL( destroyed() ),
- mScrollView, TQT_SLOT( slotLayoutFirstItem() ) );
+ connect ( ti, TQ_SIGNAL( destroyed() ),
+ mScrollView, TQ_SLOT( slotLayoutFirstItem() ) );
}
// This was the last item, hide.
if ( mTransactionsToListviewItems.empty() )
- TQTimer::singleShot( 3000, this, TQT_SLOT( slotHide() ) );
+ TQTimer::singleShot( 3000, this, TQ_SLOT( slotHide() ) );
}
void ProgressDialog::slotTransactionCanceled( ProgressItem* )
diff --git a/libtdepim/progressdialog.h b/libtdepim/progressdialog.h
index 70d4034c..85a82bbd 100644
--- a/libtdepim/progressdialog.h
+++ b/libtdepim/progressdialog.h
@@ -1,4 +1,4 @@
-/* -*- c++ -*-
+/*
* progressdialog.h
*
* Copyright (c) 2004 Till Adam <adam@kde.org>
@@ -38,7 +38,7 @@
#include <tqlabel.h>
#include <tqvbox.h>
#include "overlaywidget.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQProgressBar;
class TQScrollView;
@@ -51,7 +51,7 @@ class TransactionItem;
class SSLLabel;
class TransactionItemView : public TQScrollView {
- Q_OBJECT
+ TQ_OBJECT
public:
TransactionItemView( TQWidget * parent = 0,
@@ -77,7 +77,7 @@ private:
class TransactionItem : public TQVBox {
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -117,7 +117,7 @@ protected:
class KDE_EXPORT ProgressDialog : public OverlayWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/progressmanager.cpp b/libtdepim/progressmanager.cpp
index 37216e94..68e8ac28 100644
--- a/libtdepim/progressmanager.cpp
+++ b/libtdepim/progressmanager.cpp
@@ -162,22 +162,22 @@ ProgressItem* ProgressManager::createProgressItemImpl(
}
}
// connect all signals
- connect ( t, TQT_SIGNAL( progressItemCompleted(KPIM::ProgressItem*) ),
- this, TQT_SLOT( slotTransactionCompleted(KPIM::ProgressItem*) ) );
- connect ( t, TQT_SIGNAL( progressItemProgress(KPIM::ProgressItem*, unsigned int) ),
- this, TQT_SIGNAL( progressItemProgress(KPIM::ProgressItem*, unsigned int) ) );
- connect ( t, TQT_SIGNAL( progressItemAdded(KPIM::ProgressItem*) ),
- this, TQT_SIGNAL( progressItemAdded(KPIM::ProgressItem*) ) );
- connect ( t, TQT_SIGNAL( progressItemCanceled(KPIM::ProgressItem*) ),
- this, TQT_SIGNAL( progressItemCanceled(KPIM::ProgressItem*) ) );
- connect ( t, TQT_SIGNAL( progressItemStatus(KPIM::ProgressItem*, const TQString&) ),
- this, TQT_SIGNAL( progressItemStatus(KPIM::ProgressItem*, const TQString&) ) );
- connect ( t, TQT_SIGNAL( progressItemLabel(KPIM::ProgressItem*, const TQString&) ),
- this, TQT_SIGNAL( progressItemLabel(KPIM::ProgressItem*, const TQString&) ) );
- connect ( t, TQT_SIGNAL( progressItemUsesCrypto(KPIM::ProgressItem*, bool) ),
- this, TQT_SIGNAL( progressItemUsesCrypto(KPIM::ProgressItem*, bool) ) );
- connect ( t, TQT_SIGNAL( progressItemUsesBusyIndicator(KPIM::ProgressItem*, bool) ),
- this, TQT_SIGNAL( progressItemUsesBusyIndicator(KPIM::ProgressItem*, bool) ) );
+ connect ( t, TQ_SIGNAL( progressItemCompleted(KPIM::ProgressItem*) ),
+ this, TQ_SLOT( slotTransactionCompleted(KPIM::ProgressItem*) ) );
+ connect ( t, TQ_SIGNAL( progressItemProgress(KPIM::ProgressItem*, unsigned int) ),
+ this, TQ_SIGNAL( progressItemProgress(KPIM::ProgressItem*, unsigned int) ) );
+ connect ( t, TQ_SIGNAL( progressItemAdded(KPIM::ProgressItem*) ),
+ this, TQ_SIGNAL( progressItemAdded(KPIM::ProgressItem*) ) );
+ connect ( t, TQ_SIGNAL( progressItemCanceled(KPIM::ProgressItem*) ),
+ this, TQ_SIGNAL( progressItemCanceled(KPIM::ProgressItem*) ) );
+ connect ( t, TQ_SIGNAL( progressItemStatus(KPIM::ProgressItem*, const TQString&) ),
+ this, TQ_SIGNAL( progressItemStatus(KPIM::ProgressItem*, const TQString&) ) );
+ connect ( t, TQ_SIGNAL( progressItemLabel(KPIM::ProgressItem*, const TQString&) ),
+ this, TQ_SIGNAL( progressItemLabel(KPIM::ProgressItem*, const TQString&) ) );
+ connect ( t, TQ_SIGNAL( progressItemUsesCrypto(KPIM::ProgressItem*, bool) ),
+ this, TQ_SIGNAL( progressItemUsesCrypto(KPIM::ProgressItem*, bool) ) );
+ connect ( t, TQ_SIGNAL( progressItemUsesBusyIndicator(KPIM::ProgressItem*, bool) ),
+ this, TQ_SIGNAL( progressItemUsesBusyIndicator(KPIM::ProgressItem*, bool) ) );
emit progressItemAdded( t );
} else {
diff --git a/libtdepim/progressmanager.h b/libtdepim/progressmanager.h
index 04491965..59dc7262 100644
--- a/libtdepim/progressmanager.h
+++ b/libtdepim/progressmanager.h
@@ -28,7 +28,7 @@
#include <tqdict.h>
#include <tqstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KPIM {
@@ -38,7 +38,7 @@ typedef TQMap<ProgressItem*, bool> ProgressItemMap;
class KDE_EXPORT ProgressItem : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
friend class ProgressManager;
friend class TQDict< ProgressItem >; // so it can be deleted from dicts
@@ -266,7 +266,7 @@ signals:
class KDE_EXPORT ProgressManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/qutf7codec.h b/libtdepim/qutf7codec.h
index ef7000ff..01e97494 100644
--- a/libtdepim/qutf7codec.h
+++ b/libtdepim/qutf7codec.h
@@ -27,7 +27,7 @@
#include "tqtextcodec.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#ifndef TQT_NO_TEXTCODEC
diff --git a/libtdepim/recentaddresses.cpp b/libtdepim/recentaddresses.cpp
index a3ed83d7..7ba218c2 100644
--- a/libtdepim/recentaddresses.cpp
+++ b/libtdepim/recentaddresses.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* Copyright (c) 2001-2003 Carsten Pfeiffer <pfeiffer@kde.org>
* Copyright (c) 2003 Zack Rusin <zack@kde.org>
diff --git a/libtdepim/recentaddresses.h b/libtdepim/recentaddresses.h
index 4207105b..f9f6a6ce 100644
--- a/libtdepim/recentaddresses.h
+++ b/libtdepim/recentaddresses.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* Copyright (c) 2001-2003 Carsten Pfeiffer <pfeiffer@kde.org>
* Copyright (c) 2003 Zack Rusin <zack@kde.org>
@@ -35,7 +35,7 @@
#include <kdialogbase.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TDEConfig;
class KEditListBox;
diff --git a/libtdepim/resourceabc.h b/libtdepim/resourceabc.h
index 54a2843c..0eee0901 100644
--- a/libtdepim/resourceabc.h
+++ b/libtdepim/resourceabc.h
@@ -27,7 +27,7 @@
#include <tdeabc/resource.h>
#include <tqmap.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
// This is here because it can't go to tdelibs/tdeabc yet, but ultimately
// it should probably go there (maybe redesigned to have a real object
@@ -43,7 +43,7 @@ namespace KPIM {
class KDE_EXPORT ResourceABC : public TDEABC::Resource
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/sendsmsdialog.cpp b/libtdepim/sendsmsdialog.cpp
index 2b658112..2f451d3a 100644
--- a/libtdepim/sendsmsdialog.cpp
+++ b/libtdepim/sendsmsdialog.cpp
@@ -48,10 +48,10 @@ SendSMSDialog::SendSMSDialog( const TQString &recipientName, TQWidget *parent, c
setButtonText( Ok, i18n( "Send" ) );
- connect( mText, TQT_SIGNAL( textChanged() ),
- this, TQT_SLOT( updateMessageLength() ) );
- connect( mText, TQT_SIGNAL( textChanged() ),
- this, TQT_SLOT( updateButtons() ) );
+ connect( mText, TQ_SIGNAL( textChanged() ),
+ this, TQ_SLOT( updateMessageLength() ) );
+ connect( mText, TQ_SIGNAL( textChanged() ),
+ this, TQ_SLOT( updateButtons() ) );
updateButtons();
diff --git a/libtdepim/sendsmsdialog.h b/libtdepim/sendsmsdialog.h
index 5dec286b..fd9d1b6b 100644
--- a/libtdepim/sendsmsdialog.h
+++ b/libtdepim/sendsmsdialog.h
@@ -29,7 +29,7 @@ class TQTextEdit;
class SendSMSDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/sidebarextension.cpp b/libtdepim/sidebarextension.cpp
index 86279281..9c5113db 100644
--- a/libtdepim/sidebarextension.cpp
+++ b/libtdepim/sidebarextension.cpp
@@ -36,5 +36,3 @@ SideBarExtension::~SideBarExtension()
}
#include "sidebarextension.moc"
-
-// vim: ts=2 sw=2 et
diff --git a/libtdepim/sidebarextension.h b/libtdepim/sidebarextension.h
index a8cf13df..9abd6ea7 100644
--- a/libtdepim/sidebarextension.h
+++ b/libtdepim/sidebarextension.h
@@ -22,7 +22,7 @@
#define SIDEBAREXTENSION_H
#include <tqobject.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQWidget;
@@ -37,7 +37,7 @@ namespace KParts
**/
class KDE_EXPORT SideBarExtension : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -65,5 +65,3 @@ namespace KParts
};
}
#endif // SIDEBAREXTENSION_H
-
-// vim: ts=2 sw=2 et
diff --git a/libtdepim/spellingfilter.h b/libtdepim/spellingfilter.h
index 4178a888..d0a8d884 100644
--- a/libtdepim/spellingfilter.h
+++ b/libtdepim/spellingfilter.h
@@ -27,7 +27,7 @@
#include <tqstringlist.h>
#include "linklocator.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KDE_EXPORT SpellingFilter
{
diff --git a/libtdepim/ssllabel.cpp b/libtdepim/ssllabel.cpp
index fc876fad..946b68f1 100644
--- a/libtdepim/ssllabel.cpp
+++ b/libtdepim/ssllabel.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
*
diff --git a/libtdepim/ssllabel.h b/libtdepim/ssllabel.h
index 03a841be..c4105fbe 100644
--- a/libtdepim/ssllabel.h
+++ b/libtdepim/ssllabel.h
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
*
* This file is part of KMail, the KDE mail client.
*
diff --git a/libtdepim/statusbarprogresswidget.cpp b/libtdepim/statusbarprogresswidget.cpp
index 34f68703..d0cd9d7d 100644
--- a/libtdepim/statusbarprogresswidget.cpp
+++ b/libtdepim/statusbarprogresswidget.cpp
@@ -98,22 +98,22 @@ StatusbarProgressWidget::StatusbarProgressWidget( ProgressDialog* progressDialog
mode = None;
setMode();
- connect( m_pButton, TQT_SIGNAL( clicked() ),
- progressDialog, TQT_SLOT( slotToggleVisibility() ) );
+ connect( m_pButton, TQ_SIGNAL( clicked() ),
+ progressDialog, TQ_SLOT( slotToggleVisibility() ) );
- connect ( ProgressManager::instance(), TQT_SIGNAL( progressItemAdded( KPIM::ProgressItem * ) ),
- this, TQT_SLOT( slotProgressItemAdded( KPIM::ProgressItem * ) ) );
- connect ( ProgressManager::instance(), TQT_SIGNAL( progressItemCompleted( KPIM::ProgressItem * ) ),
- this, TQT_SLOT( slotProgressItemCompleted( KPIM::ProgressItem * ) ) );
- connect ( ProgressManager::instance(), TQT_SIGNAL(progressItemUsesBusyIndicator(KPIM::ProgressItem*,bool)),
- this, TQT_SLOT( updateBusyMode() ) );
+ connect ( ProgressManager::instance(), TQ_SIGNAL( progressItemAdded( KPIM::ProgressItem * ) ),
+ this, TQ_SLOT( slotProgressItemAdded( KPIM::ProgressItem * ) ) );
+ connect ( ProgressManager::instance(), TQ_SIGNAL( progressItemCompleted( KPIM::ProgressItem * ) ),
+ this, TQ_SLOT( slotProgressItemCompleted( KPIM::ProgressItem * ) ) );
+ connect ( ProgressManager::instance(), TQ_SIGNAL(progressItemUsesBusyIndicator(KPIM::ProgressItem*,bool)),
+ this, TQ_SLOT( updateBusyMode() ) );
- connect ( progressDialog, TQT_SIGNAL( visibilityChanged( bool )),
- this, TQT_SLOT( slotProgressDialogVisible( bool ) ) );
+ connect ( progressDialog, TQ_SIGNAL( visibilityChanged( bool )),
+ this, TQ_SLOT( slotProgressDialogVisible( bool ) ) );
mDelayTimer = new TQTimer( this );
- connect ( mDelayTimer, TQT_SIGNAL( timeout() ),
- this, TQT_SLOT( slotShowItemDelayed() ) );
+ connect ( mDelayTimer, TQ_SIGNAL( timeout() ),
+ this, TQ_SLOT( slotShowItemDelayed() ) );
}
// There are three cases: no progressitem, one progressitem (connect to it directly),
@@ -132,8 +132,8 @@ void StatusbarProgressWidget::updateBusyMode()
else { // N items
if ( !mBusyTimer ) {
mBusyTimer = new TQTimer( this );
- connect( mBusyTimer, TQT_SIGNAL( timeout() ),
- this, TQT_SLOT( slotBusyIndicator() ) );
+ connect( mBusyTimer, TQ_SIGNAL( timeout() ),
+ this, TQ_SLOT( slotBusyIndicator() ) );
mDelayTimer->start( 1000, true );
}
}
@@ -153,7 +153,7 @@ void StatusbarProgressWidget::slotProgressItemCompleted( ProgressItem *item )
connectSingleItem(); // if going back to 1 item
if ( ProgressManager::instance()->isEmpty() ) { // No item
// Done. In 5s the progress-widget will close, then we can clean up the statusbar
- TQTimer::singleShot( 5000, this, TQT_SLOT( slotClean() ) );
+ TQTimer::singleShot( 5000, this, TQ_SLOT( slotClean() ) );
} else if ( mCurrentItem ) { // Exactly one item
delete mBusyTimer;
mBusyTimer = 0;
@@ -164,14 +164,14 @@ void StatusbarProgressWidget::slotProgressItemCompleted( ProgressItem *item )
void StatusbarProgressWidget::connectSingleItem()
{
if ( mCurrentItem ) {
- disconnect ( mCurrentItem, TQT_SIGNAL( progressItemProgress( KPIM::ProgressItem *, unsigned int ) ),
- this, TQT_SLOT( slotProgressItemProgress( KPIM::ProgressItem *, unsigned int ) ) );
+ disconnect ( mCurrentItem, TQ_SIGNAL( progressItemProgress( KPIM::ProgressItem *, unsigned int ) ),
+ this, TQ_SLOT( slotProgressItemProgress( KPIM::ProgressItem *, unsigned int ) ) );
mCurrentItem = 0;
}
mCurrentItem = ProgressManager::instance()->singleItem();
if ( mCurrentItem ) {
- connect ( mCurrentItem, TQT_SIGNAL( progressItemProgress( KPIM::ProgressItem *, unsigned int ) ),
- this, TQT_SLOT( slotProgressItemProgress( KPIM::ProgressItem *, unsigned int ) ) );
+ connect ( mCurrentItem, TQ_SIGNAL( progressItemProgress( KPIM::ProgressItem *, unsigned int ) ),
+ this, TQ_SLOT( slotProgressItemProgress( KPIM::ProgressItem *, unsigned int ) ) );
}
}
@@ -268,7 +268,7 @@ bool StatusbarProgressWidget::eventFilter( TQObject *, TQEvent *ev )
if ( ev->type() == TQEvent::MouseButtonPress ) {
TQMouseEvent *e = (TQMouseEvent*)ev;
- if ( e->button() == Qt::LeftButton && mode != None ) { // toggle view on left mouse button
+ if ( e->button() == TQt::LeftButton && mode != None ) { // toggle view on left mouse button
// Consensus seems to be that we should show/hide the fancy dialog when the user
// clicks anywhere in the small one.
mProgressDialog->slotToggleVisibility();
diff --git a/libtdepim/statusbarprogresswidget.h b/libtdepim/statusbarprogresswidget.h
index 87271d69..def30fee 100644
--- a/libtdepim/statusbarprogresswidget.h
+++ b/libtdepim/statusbarprogresswidget.h
@@ -36,7 +36,7 @@
* tdeio_littleprogress_dlg (it looks similar)
*/
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KMMainWidget;
class KProgress;
@@ -53,7 +53,7 @@ class ProgressDialog;
class KDE_EXPORT StatusbarProgressWidget : public TQFrame {
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/tdeabcresourcecached.cpp b/libtdepim/tdeabcresourcecached.cpp
index 42a06e45..63eb2f75 100644
--- a/libtdepim/tdeabcresourcecached.cpp
+++ b/libtdepim/tdeabcresourcecached.cpp
@@ -36,8 +36,8 @@ ResourceCached::ResourceCached( const TDEConfig *config )
mSavePolicy( SaveDelayed ), mSaveInterval( 10 ),
mKABCSaveTimer( 0, "mKABCSaveTimer" )
{
- connect( &mKABCReloadTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotKABCReload() ) );
- connect( &mKABCSaveTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotKABCSave() ) );
+ connect( &mKABCReloadTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( slotKABCReload() ) );
+ connect( &mKABCSaveTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( slotKABCSave() ) );
if (config)
this->readConfig(const_cast<TDEConfig *>(config));
diff --git a/libtdepim/tdeabcresourcecached.h b/libtdepim/tdeabcresourcecached.h
index b86108b4..5d3e27a3 100644
--- a/libtdepim/tdeabcresourcecached.h
+++ b/libtdepim/tdeabcresourcecached.h
@@ -22,7 +22,7 @@
#define TDEABC_RESOURCECACHED_H
#include <tdeabc/resource.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqdatetime.h>
#include <tqtimer.h>
@@ -33,7 +33,7 @@ namespace TDEABC {
class KDE_EXPORT ResourceCached : public Resource
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/tdeconfigpropagator.h b/libtdepim/tdeconfigpropagator.h
index 32d50e9d..94a0bff8 100644
--- a/libtdepim/tdeconfigpropagator.h
+++ b/libtdepim/tdeconfigpropagator.h
@@ -26,7 +26,7 @@
#include <tqdom.h>
#include <tqptrlist.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TDEConfigSkeleton;
class TDEConfigSkeletonItem;
diff --git a/libtdepim/tdeconfigwizard.cpp b/libtdepim/tdeconfigwizard.cpp
index 8c2620d1..7b982aea 100644
--- a/libtdepim/tdeconfigwizard.cpp
+++ b/libtdepim/tdeconfigwizard.cpp
@@ -56,10 +56,10 @@ TDEConfigWizard::~TDEConfigWizard()
void TDEConfigWizard::init()
{
- connect( this, TQT_SIGNAL( aboutToShowPage( TQWidget * ) ),
- TQT_SLOT( slotAboutToShowPage( TQWidget * ) ) );
+ connect( this, TQ_SIGNAL( aboutToShowPage( TQWidget * ) ),
+ TQ_SLOT( slotAboutToShowPage( TQWidget * ) ) );
- TQTimer::singleShot( 0, this, TQT_SLOT( readConfig() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( readConfig() ) );
}
void TDEConfigWizard::setPropagator( TDEConfigPropagator *p )
diff --git a/libtdepim/tdeconfigwizard.h b/libtdepim/tdeconfigwizard.h
index 67b76d9c..19da572d 100644
--- a/libtdepim/tdeconfigwizard.h
+++ b/libtdepim/tdeconfigwizard.h
@@ -22,7 +22,7 @@
#define TDECONFIGWIZARD_H
#include <tdeconfigpropagator.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <kdialogbase.h>
class TQListView;
@@ -32,7 +32,7 @@ class TQListView;
*/
class KDE_EXPORT TDEConfigWizard : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
/**
diff --git a/libtdepim/tdefileio.cpp b/libtdepim/tdefileio.cpp
index 14fc458e..ec798a72 100644
--- a/libtdepim/tdefileio.cpp
+++ b/libtdepim/tdefileio.cpp
@@ -21,7 +21,7 @@
#include <sys/stat.h>
#include <sys/types.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KPIM {
diff --git a/libtdepim/tdefileio.h b/libtdepim/tdefileio.h
index e9045131..f0cd8d8d 100644
--- a/libtdepim/tdefileio.h
+++ b/libtdepim/tdefileio.h
@@ -11,7 +11,7 @@
#include <tqcstring.h>
#include <tqwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQString;
diff --git a/libtdepim/tdepartsdesignerplugin/tdepartsdesignerplugin.cpp b/libtdepim/tdepartsdesignerplugin/tdepartsdesignerplugin.cpp
index 2801a9d3..18952fe1 100644
--- a/libtdepim/tdepartsdesignerplugin/tdepartsdesignerplugin.cpp
+++ b/libtdepim/tdepartsdesignerplugin/tdepartsdesignerplugin.cpp
@@ -24,7 +24,7 @@
#include <kmimetype.h>
#include <tqlayout.h>
#include <tdeapplication.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
KPartsGenericPart::KPartsGenericPart( TQWidget* parentWidget, const char* name )
: TQWidget( parentWidget, name ), m_part( 0 )
@@ -48,7 +48,7 @@ void KPartsGenericPart::load()
delete m_part;
}
// "this" is both the parent widget and the parent object
- m_part = KParts::ComponentFactory::createPartInstanceFromQuery<KParts::ReadOnlyPart>( mimetype, TQString(), TQT_TQWIDGET(this), 0, TQT_TQOBJECT(this), 0 );
+ m_part = KParts::ComponentFactory::createPartInstanceFromQuery<KParts::ReadOnlyPart>( mimetype, TQString(), this, 0, this, 0 );
if ( m_part ) {
m_part->openURL( m_url );
m_part->widget()->show();
diff --git a/libtdepim/tdepartsdesignerplugin/tdepartsdesignerplugin.h b/libtdepim/tdepartsdesignerplugin/tdepartsdesignerplugin.h
index 91c96d2f..bb4514c1 100644
--- a/libtdepim/tdepartsdesignerplugin/tdepartsdesignerplugin.h
+++ b/libtdepim/tdepartsdesignerplugin/tdepartsdesignerplugin.h
@@ -30,7 +30,7 @@ namespace KParts { class ReadOnlyPart; }
* a KParts::ReadOnlyPart is available
*/
class KPartsGenericPart : public TQWidget {
- Q_OBJECT
+ TQ_OBJECT
TQ_PROPERTY( TQString url READ url WRITE setURL )
TQ_PROPERTY( TQString mimetype READ mimetype WRITE setMimetype )
diff --git a/libtdepim/tdepimmacros.h b/libtdepim/tdepimmacros.h
deleted file mode 100644
index 5336af1b..00000000
--- a/libtdepim/tdepimmacros.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- This file is part of libtdepim.
-
- Copyright (c) 2002-2003 KDE Team
-
- 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; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-// WARNING Don't add include guards here, they were removed on purpose
-
-#include <tdeversion.h>
-#include <kdemacros.h>
-
-#if KDE_IS_VERSION( 3,3,90 )
-/* life is great */
-#else
-/* workaround typo that breaks compilation with newer gcc */
-#undef KDE_EXPORT
-#define KDE_EXPORT
-#undef KDE_NO_EXPORT
-#define KDE_NO_EXPORT
-#endif
diff --git a/libtdepim/tests/testdateedit.cpp b/libtdepim/tests/testdateedit.cpp
index a87e950c..39c8447d 100644
--- a/libtdepim/tests/testdateedit.cpp
+++ b/libtdepim/tests/testdateedit.cpp
@@ -39,8 +39,8 @@ DateEdit::DateEdit( TQWidget *parent, const char *name )
KDateEdit *edit = new KDateEdit( this );
layout->addWidget( edit );
- connect( edit, TQT_SIGNAL( dateChanged( const TQDate& ) ),
- this, TQT_SLOT( dateChanged( const TQDate& ) ) );
+ connect( edit, TQ_SIGNAL( dateChanged( const TQDate& ) ),
+ this, TQ_SLOT( dateChanged( const TQDate& ) ) );
}
void DateEdit::dateChanged( const TQDate &date )
diff --git a/libtdepim/tests/testdateedit.h b/libtdepim/tests/testdateedit.h
index 73c9ec91..82fbddb9 100644
--- a/libtdepim/tests/testdateedit.h
+++ b/libtdepim/tests/testdateedit.h
@@ -26,7 +26,7 @@
class DateEdit : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/tests/testdistrlist.h b/libtdepim/tests/testdistrlist.h
index 1e602a33..62375ffc 100644
--- a/libtdepim/tests/testdistrlist.h
+++ b/libtdepim/tests/testdistrlist.h
@@ -23,7 +23,7 @@
class TestDistrList : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/libtdepim/weaver.cpp b/libtdepim/weaver.cpp
index b1dba8de..5743b57b 100644
--- a/libtdepim/weaver.cpp
+++ b/libtdepim/weaver.cpp
@@ -1,5 +1,4 @@
-/* -*- C++ -*-
-
+/*
This file implements the Weaver, Job and Thread classes.
$ Author: Mirko Boehm $
diff --git a/libtdepim/weaver.h b/libtdepim/weaver.h
index d914d980..b949a110 100644
--- a/libtdepim/weaver.h
+++ b/libtdepim/weaver.h
@@ -1,5 +1,4 @@
-/* -*- C++ -*-
-
+/*
This file declares the Weaver, Job and Thread classes.
$ Author: Mirko Boehm $
@@ -30,7 +29,7 @@ extern "C"
#include <tqmutex.h>
#include <tqevent.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KPIM {
namespace ThreadWeaver {
@@ -163,7 +162,7 @@ namespace ThreadWeaver {
*/
class KDE_EXPORT Job : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
/** Construct a Job object. */
@@ -296,7 +295,7 @@ namespace ThreadWeaver {
which it assigns jobs from it's queue. */
class KDE_EXPORT Weaver : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
Weaver (TQObject* parent=0, const char* name=0,
diff --git a/libtdepim/weaverextensions.cpp b/libtdepim/weaverextensions.cpp
index 9859b6d6..01d68ff7 100644
--- a/libtdepim/weaverextensions.cpp
+++ b/libtdepim/weaverextensions.cpp
@@ -1,5 +1,4 @@
-/* -*- C++ -*-
-
+/*
This file implements the Weaver Extensions basics.
$ Author: Mirko Boehm $
@@ -26,14 +25,14 @@ namespace ThreadWeaver {
void WeaverExtension::attach (Weaver *w)
{
- connect (w, TQT_SIGNAL (threadCreated (Thread *) ),
- TQT_SLOT (threadCreated (Thread *) ) );
- connect (w, TQT_SIGNAL (threadDestroyed (Thread *) ),
- TQT_SLOT (threadDestroyed (Thread *) ) );
- connect (w, TQT_SIGNAL (threadBusy (Thread *) ),
- TQT_SLOT (threadBusy (Thread *) ) );
- connect (w, TQT_SIGNAL (threadSuspended (Thread *) ),
- TQT_SLOT (threadSuspended (Thread *) ) );
+ connect (w, TQ_SIGNAL (threadCreated (Thread *) ),
+ TQ_SLOT (threadCreated (Thread *) ) );
+ connect (w, TQ_SIGNAL (threadDestroyed (Thread *) ),
+ TQ_SLOT (threadDestroyed (Thread *) ) );
+ connect (w, TQ_SIGNAL (threadBusy (Thread *) ),
+ TQ_SLOT (threadBusy (Thread *) ) );
+ connect (w, TQ_SIGNAL (threadSuspended (Thread *) ),
+ TQ_SLOT (threadSuspended (Thread *) ) );
}
WeaverExtension::~WeaverExtension()
diff --git a/libtdepim/weaverextensions.h b/libtdepim/weaverextensions.h
index 7c2cf170..52984a29 100644
--- a/libtdepim/weaverextensions.h
+++ b/libtdepim/weaverextensions.h
@@ -1,5 +1,4 @@
-/* -*- C++ -*-
-
+/*
This file declares the Weaver Extensions basics.
$ Author: Mirko Boehm $
@@ -32,7 +31,7 @@ namespace ThreadWeaver {
programs. Derive from it to actually create an extension. */
class WeaverExtension : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
WeaverExtension ( TQObject *parent = 0, const char *name = 0);
diff --git a/libtdepim/weaverlogger.cpp b/libtdepim/weaverlogger.cpp
index e5164c80..0a1b5a95 100644
--- a/libtdepim/weaverlogger.cpp
+++ b/libtdepim/weaverlogger.cpp
@@ -1,5 +1,4 @@
-/* -*- C++ -*-
-
+/*
This file implements the Thread Logger.
$ Author: Mirko Boehm $
diff --git a/libtdepim/weaverlogger.h b/libtdepim/weaverlogger.h
index 962968a1..889f080e 100644
--- a/libtdepim/weaverlogger.h
+++ b/libtdepim/weaverlogger.h
@@ -1,5 +1,4 @@
-/* -*- C++ -*-
-
+/*
This file declares the Thread Logger.
$ Author: Mirko Boehm $
@@ -25,7 +24,7 @@ namespace ThreadWeaver {
information about thread execution. */
class WeaverThreadLogger : public WeaverExtension
{
- Q_OBJECT
+ TQ_OBJECT
public:
WeaverThreadLogger( TQObject *parent = 0, const char *name = 0);
diff --git a/mimelib/Changes b/mimelib/Changes
index ce961cce..4f1d7467 100644
--- a/mimelib/Changes
+++ b/mimelib/Changes
@@ -97,7 +97,7 @@ o Added utility functions for doing end-of-line marker conversions:
Jan 25, 1997
-o Parsers for entities (entity.cc) and bodies (body.cc) changed to handle
+o Parsers for entities (entity.cpp) and bodies (body.cpp) changed to handle
CR LF end-of-line (DOS and MIME) in addition to LF end-of-line (UNIX
and C).
@@ -169,7 +169,7 @@ o Added member function CreateFieldBody() to DwField.
o Improvements to the wrapper classes used in the examples.
-o New wrapper class MessageWithAttachments, used in Example 5 (exampl05.cc).
+o New wrapper class MessageWithAttachments, used in Example 5 (exampl05.cpp).
o The documentation now includes a tutorial.
diff --git a/plugins/kmail/CMakeL10n.txt b/plugins/kmail/CMakeL10n.txt
index b585ce4a..c1800882 100644
--- a/plugins/kmail/CMakeL10n.txt
+++ b/plugins/kmail/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_auto_add_subdirectories( )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/kmail-plugins-desktops/"
+ SOURCES *.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/plugins/kmail/bodypartformatter/CMakeLists.txt b/plugins/kmail/bodypartformatter/CMakeLists.txt
index 910dbb2e..732a62bc 100644
--- a/plugins/kmail/bodypartformatter/CMakeLists.txt
+++ b/plugins/kmail/bodypartformatter/CMakeLists.txt
@@ -45,9 +45,11 @@ link_directories(
##### other data ################################
-install( FILES
- text_vcard.desktop text_calendar.desktop text_xdiff.desktop
- DESTINATION ${DATA_INSTALL_DIR}/kmail/plugins/bodypartformatter )
+tde_create_translated_desktop(
+ SOURCE text_vcard.desktop text_calendar.desktop text_xdiff.desktop
+ DESTINATION ${DATA_INSTALL_DIR}/kmail/plugins/bodypartformatter
+ PO_DIR kmail-plugins-desktops
+)
##### libkmail_bodypartformatter_text_vcard (module)
diff --git a/plugins/kmail/bodypartformatter/attendeeselector.cpp b/plugins/kmail/bodypartformatter/attendeeselector.cpp
index 08bf9c00..c0c89307 100644
--- a/plugins/kmail/bodypartformatter/attendeeselector.cpp
+++ b/plugins/kmail/bodypartformatter/attendeeselector.cpp
@@ -38,15 +38,15 @@ AttendeeSelector::AttendeeSelector(TQWidget * parent)
layout->setMargin( 0 );
ui->addButton->setGuiItem( KStdGuiItem::add() );
- connect( ui->addButton, TQT_SIGNAL(clicked()), TQT_SLOT(addClicked()) );
+ connect( ui->addButton, TQ_SIGNAL(clicked()), TQ_SLOT(addClicked()) );
ui->removeButton->setGuiItem( KStdGuiItem::remove() );
- connect( ui->removeButton, TQT_SIGNAL(clicked()), TQT_SLOT(removeClicked()) );
+ connect( ui->removeButton, TQ_SIGNAL(clicked()), TQ_SLOT(removeClicked()) );
ui->attendeeEdit->setClickMessage( i18n("Click to add a new attendee") );
- connect( ui->attendeeEdit, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(textChanged(const TQString&)) );
- connect( ui->attendeeEdit, TQT_SIGNAL(returnPressed(const TQString&)), TQT_SLOT(addClicked()) );
+ connect( ui->attendeeEdit, TQ_SIGNAL(textChanged(const TQString&)), TQ_SLOT(textChanged(const TQString&)) );
+ connect( ui->attendeeEdit, TQ_SIGNAL(returnPressed(const TQString&)), TQ_SLOT(addClicked()) );
- connect( ui->attendeeList, TQT_SIGNAL(selectionChanged()), TQT_SLOT(selectionChanged()) );
+ connect( ui->attendeeList, TQ_SIGNAL(selectionChanged()), TQ_SLOT(selectionChanged()) );
}
TQStringList AttendeeSelector::attendees() const
diff --git a/plugins/kmail/bodypartformatter/attendeeselector.h b/plugins/kmail/bodypartformatter/attendeeselector.h
index f111ac53..05c73d5f 100644
--- a/plugins/kmail/bodypartformatter/attendeeselector.h
+++ b/plugins/kmail/bodypartformatter/attendeeselector.h
@@ -29,7 +29,7 @@ class AttendeeSelectorWidget;
*/
class AttendeeSelector : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
AttendeeSelector( TQWidget *parent = 0 );
diff --git a/plugins/kmail/bodypartformatter/delegateselector.h b/plugins/kmail/bodypartformatter/delegateselector.h
index 9f34e3c5..775c8858 100644
--- a/plugins/kmail/bodypartformatter/delegateselector.h
+++ b/plugins/kmail/bodypartformatter/delegateselector.h
@@ -33,7 +33,7 @@ class TQCheckBox;
*/
class DelegateSelector : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/plugins/kmail/bodypartformatter/text_calendar.cpp b/plugins/kmail/bodypartformatter/text_calendar.cpp
index bfe78c61..da28a1f0 100644
--- a/plugins/kmail/bodypartformatter/text_calendar.cpp
+++ b/plugins/kmail/bodypartformatter/text_calendar.cpp
@@ -80,7 +80,7 @@
#include <tqdir.h>
#include <tqtextstream.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <dcopclient.h>
#include <dcopref.h>
diff --git a/plugins/kmail/bodypartformatter/text_calendar.desktop b/plugins/kmail/bodypartformatter/text_calendar.desktop
index 2f9ab0a2..09a6acb4 100644
--- a/plugins/kmail/bodypartformatter/text_calendar.desktop
+++ b/plugins/kmail/bodypartformatter/text_calendar.desktop
@@ -1,83 +1,7 @@
[Misc]
Name=Application Octetstream
-Name[af]=Application/Octet-stream
-Name[ca]=Aplicació Octetstream
-Name[cs]=Aplikace octetstream
-Name[da]=Program oktetstrøm
-Name[eo]=Aplikaĵa Bitokfluo
-Name[es]=Aplicación en flujo de octetos
-Name[eu]=Aplikazioa/zortzikote-jarioa
-Name[fa]=Octetstream کاربرد
-Name[fi]=Octetstream-sovellus
-Name[fr]=Application (flux d'octets)
-Name[fy]=Applikaasje octetstream
-Name[gl]=Aplicación Octetstream
-Name[hu]=Alkalmazás-adatfolyam
-Name[ja]=アプリケーション オクテット ストリーム
-Name[kk]=Қолданбаның бинарлы ағымы
-Name[km]=Octetstream កម្មវិធី
-Name[ms]=Aliran Oktet Aplikasi
-Name[nb]=Program Octetstrøm
-Name[ne]=अक्टेस्ट्रिम अनुप्रयोग
-Name[nl]=Applicatie octetstroom
-Name[nn]=Oktettstraum frå program
-Name[pl]=Dane binarne
-Name[pt]=Aplicação Sequência Binária
-Name[pt_BR]=Aplicativo Octetstream
-Name[ru]=Бинарный поток приложения
-Name[sl]=Programski Octetstream
-Name[sr]=Апликација Octetstream
-Name[sr@Latn]=Aplikacija Octetstream
-Name[sv]=Program-oktettström
-Name[ta]=பயன்பாட்டு எண்மம்
-Name[tg]=Миқдори зиёди бинарии барномот
-Name[tr]=Uygulama Sekizli Akışı
-Name[zh_CN]=应用程序 Octetstream
+
Comment=A bodypart formatter plugin for text/calendar
-Comment[af]='n Data (boodskap lyf) formateer inprop module vir 'text/calendar'
-Comment[bg]=Редактор с поддръжка на форматиране за текст/календар
-Comment[bs]=Dodatak za formatiranje tijela poruke za text/calendar
-Comment[ca]=Un endollable formatador del cos per a text/calendar
-Comment[cs]=Formátovač těla emailu pro typ text/calendar
-Comment[da]=Et bodypart formateringsplugin for text/calendar
-Comment[de]=Ein Textinhalt-Formatierer für text/calendar
-Comment[el]=Ένα πρόσθετο μορφοποιητή για text/calendar
-Comment[es]=Un accesorio de formato para el cuerpo de text/calendar
-Comment[et]=Põhiosa vormindamisplugin (MIME tüübile text/calendar)
-Comment[eu]=Testu/egutegientzako gorputz-zati formateatzaile bat
-Comment[fa]=یک وصلۀ قالب دهندۀ جزء بدنه برای متن/تقویم
-Comment[fi]=Muokkausliitännäinen text/calendar-muodolle
-Comment[fr]=Module de formatage pour le text/calendar
-Comment[fy]=In opmaakplugin foar text/calendar
-Comment[gl]=Unha extensión para formatear o corpo do texto/calendario
-Comment[hu]=Formázómodul text/calendar adatfolyamok kezeléséhez
-Comment[is]=Sniðmátstól fyrir text/calendar
-Comment[it]=Un plugin per formattare il corpo di text/calendar
-Comment[ja]=text/calendar 用の Bodypart フォーマッタ プラグイン
-Comment[kk]=Text/calendar бөлімін пішімдеу модулі
-Comment[km]=កម្មវិធី​ជំនួយ​កម្មវិធី​ធ្វើ​ទ្រង់ទ្រាយ​ផ្នែក​តួ សម្រាប់​អត្ថបទ/ប្រតិទិន
-Comment[lt]=text/calendar formatavimo priedas
-Comment[ms]=Plugin pemformat bahagian isi untuk teks/kalendar
-Comment[nb]=En formaterer for meldingstekster i tekst/kalender
-Comment[nds]=En Hööftdeel-Formateermoduul för text/calendar
-Comment[ne]=पाठ/क्यालेन्डरका लागि मुख्यभाग ढाँचाबद्ध गर्ने प्लगइन
-Comment[nl]=Een opmaakplugin voor text/calendar
-Comment[nn]=Eit programtillegg for meldingstekstformatering i tekst/kalender
-Comment[pl]=Wtyczka formatująca dla typu text/calendar
-Comment[pt]=Um 'plugin' de formatação para text/calendar
-Comment[pt_BR]=Um plug-in formatador de componente para o tipo text/calendar
-Comment[ru]=Форматирование text/calendar
-Comment[sk]=Modul pre formátovanie tela pre text/calendar
-Comment[sl]=Oblikovalni vstavek za text/calendar
-Comment[sr]=Прикључак за форматитање тела за text/calendar
-Comment[sr@Latn]=Priključak za formatitanje tela za text/calendar
-Comment[sv]=Ett insticksprogram för brevtextformatering av text/calendar
-Comment[ta]=உரை அல்லது நாள்காட்டிகான அங்க அமைப்பு சொருகி
-Comment[tg]=Модули ба андозадарории text/calendar
-Comment[tr]=text/calendar için bir gövde biçimleyici eklentisi
-Comment[uk]=Втулок форматування для text/calendar
-Comment[zh_CN]=text/calendar 的格式化插件
-Comment[zh_TW]=text/calendar 格式化外掛程式
[Plugin]
Type=text/calendar
diff --git a/plugins/kmail/bodypartformatter/text_vcard.cpp b/plugins/kmail/bodypartformatter/text_vcard.cpp
index 3f0f9014..c5e1297a 100644
--- a/plugins/kmail/bodypartformatter/text_vcard.cpp
+++ b/plugins/kmail/bodypartformatter/text_vcard.cpp
@@ -1,4 +1,4 @@
-/* -*- mode: C++; c-file-style: "gnu" -*-
+/*
text_vcard.cpp
This file is part of KMail, the KDE mail client.
@@ -63,7 +63,7 @@ using TDEABC::Addressee;
#include "addresseeview.h"
using KPIM::AddresseeView;
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace {
diff --git a/plugins/kmail/bodypartformatter/text_vcard.desktop b/plugins/kmail/bodypartformatter/text_vcard.desktop
index ae697bd5..315ecc53 100644
--- a/plugins/kmail/bodypartformatter/text_vcard.desktop
+++ b/plugins/kmail/bodypartformatter/text_vcard.desktop
@@ -1,84 +1,7 @@
[Misc]
Name=Application Octetstream
-Name[af]=Application/Octet-stream
-Name[ca]=Aplicació Octetstream
-Name[cs]=Aplikace octetstream
-Name[da]=Program oktetstrøm
-Name[eo]=Aplikaĵa Bitokfluo
-Name[es]=Aplicación en flujo de octetos
-Name[eu]=Aplikazioa/zortzikote-jarioa
-Name[fa]=Octetstream کاربرد
-Name[fi]=Octetstream-sovellus
-Name[fr]=Application (flux d'octets)
-Name[fy]=Applikaasje octetstream
-Name[gl]=Aplicación Octetstream
-Name[hu]=Alkalmazás-adatfolyam
-Name[ja]=アプリケーション オクテット ストリーム
-Name[kk]=Қолданбаның бинарлы ағымы
-Name[km]=Octetstream កម្មវិធី
-Name[ms]=Aliran Oktet Aplikasi
-Name[nb]=Program Octetstrøm
-Name[ne]=अक्टेस्ट्रिम अनुप्रयोग
-Name[nl]=Applicatie octetstroom
-Name[nn]=Oktettstraum frå program
-Name[pl]=Dane binarne
-Name[pt]=Aplicação Sequência Binária
-Name[pt_BR]=Aplicativo Octetstream
-Name[ru]=Бинарный поток приложения
-Name[sl]=Programski Octetstream
-Name[sr]=Апликација Octetstream
-Name[sr@Latn]=Aplikacija Octetstream
-Name[sv]=Program-oktettström
-Name[ta]=பயன்பாட்டு எண்மம்
-Name[tg]=Миқдори зиёди бинарии барномот
-Name[tr]=Uygulama Sekizli Akışı
-Name[zh_CN]=应用程序 Octetstream
+
Comment=A bodypart formatter plugin for text/vcard
-Comment[af]='n Data (boodskap lyf) formateer inprop module vir 'text/vcard'
-Comment[bg]=Редактор с поддръжка на форматиране за текст/vcard
-Comment[br]=Arload tresañ Xfig
-Comment[bs]=Dodatak za formatiranje tijela poruke za text/vcard
-Comment[ca]=Un endollable formatador del cos per a text/vcard
-Comment[cs]=Formátovač těla emailu pro typ text/vcard
-Comment[da]=Et bodypart formateringsplugin for text/vcard
-Comment[de]=Ein Textinhalt-Formatierer für text/vcard
-Comment[el]=Ένα πρόσθετο μορφοποιητή για text/vcard
-Comment[es]=Un accesorio de formato para el cuerpo de text/vcard
-Comment[et]=Põhiosa vormindamisplugin (MIME tüübile text/vcard)
-Comment[eu]=Testu/vcard-en gorputz-zati formateatzaile bat
-Comment[fa]=یک وصلۀ قالب دهندۀ جزء بدنه برای متن/vcard
-Comment[fi]=Muokkausliitännäinen text/vcard-muodolle
-Comment[fr]=Un formateur de partie de corps pour text/vcard
-Comment[fy]=In opmaakplugin foar text/vcard
-Comment[gl]=Unha extensión para formatear o corpo do texto/vcard
-Comment[hu]=Formázómodul text/vcard adatfolyamok kezeléséhez
-Comment[is]=Sniðmátstól fyrir text/vcard
-Comment[it]=Un plugin per formattare il corpo di text/vcard
-Comment[ja]=text/vcard 用の Bodypart フォーマッタ プラグイン
-Comment[kk]=Text/vcard бөлімін пішімдеу модулі
-Comment[km]=កម្មវិធី​ជំនួយ​កម្មវិធី​ធ្វើ​ទ្រង់ទ្រាយ​ផ្នែក​តួ សម្រាប់​អត្ថបទ/vcard
-Comment[lt]= Teksto/vcard formatavimo priedas
-Comment[ms]=Plugin pemformat bahagian isi untuk teks/vcard
-Comment[nb]=Et programtillegg for text/vcard for brødtekst-formatering
-Comment[nds]=En Hööftdeel-Formateermoduul för text/vcard
-Comment[ne]=पाठ/भिकार्ड का लागि मुख्यभाग ढाँचाबद्ध गर्ने प्लगइन
-Comment[nl]=Een opmaakplugin voor text/vcard
-Comment[nn]=Eit programtillegg for brødtekstformatering i tekst/vCard
-Comment[pl]=Wtyczka formatująca dla typu text/vcard
-Comment[pt]=Um 'plugin' de formatação para text/vcard
-Comment[pt_BR]=Um plug-in formatador de componente para o tipo text/vcard
-Comment[ru]=Форматирование text/vcard
-Comment[sk]=Modul pre formátovanie tela pre text/vcard
-Comment[sl]=Oblikovalni vstavek za text/vcard
-Comment[sr]=Прикључак за форматитање тела за text/vcard
-Comment[sr@Latn]=Priključak za formatitanje tela za text/vcard
-Comment[sv]=Ett insticksprogram för brevtextformatering av text/vcard
-Comment[ta]=உரை அல்லது விஅட்டைக்கான அங்க அமைப்பு சொருகி
-Comment[tg]=Модули ба андозадарории text/vcard
-Comment[tr]=text/vcard için bir gövde biçimleyici eklentisi
-Comment[uk]=Втулок форматування для text/vcard
-Comment[zh_CN]=text/vcard 的格式化插件
-Comment[zh_TW]=text/vCard 格式化外掛程式
[Plugin]
Type=text/x-vcard
diff --git a/plugins/kmail/bodypartformatter/text_xdiff.desktop b/plugins/kmail/bodypartformatter/text_xdiff.desktop
index cadd1d27..4a91c950 100644
--- a/plugins/kmail/bodypartformatter/text_xdiff.desktop
+++ b/plugins/kmail/bodypartformatter/text_xdiff.desktop
@@ -1,81 +1,8 @@
[Misc]
Name=Application Octetstream
-Name[af]=Application/Octet-stream
-Name[ca]=Aplicació Octetstream
-Name[cs]=Aplikace octetstream
-Name[da]=Program oktetstrøm
-Name[eo]=Aplikaĵa Bitokfluo
-Name[es]=Aplicación en flujo de octetos
-Name[eu]=Aplikazioa/zortzikote-jarioa
-Name[fa]=Octetstream کاربرد
-Name[fi]=Octetstream-sovellus
-Name[fr]=Application (flux d'octets)
-Name[fy]=Applikaasje octetstream
-Name[gl]=Aplicación Octetstream
-Name[hu]=Alkalmazás-adatfolyam
-Name[ja]=アプリケーション オクテット ストリーム
-Name[kk]=Қолданбаның бинарлы ағымы
-Name[km]=Octetstream កម្មវិធី
-Name[ms]=Aliran Oktet Aplikasi
-Name[nb]=Program Octetstrøm
-Name[ne]=अक्टेस्ट्रिम अनुप्रयोग
-Name[nl]=Applicatie octetstroom
-Name[nn]=Oktettstraum frå program
-Name[pl]=Dane binarne
-Name[pt]=Aplicação Sequência Binária
-Name[pt_BR]=Aplicativo Octetstream
-Name[ru]=Бинарный поток приложения
-Name[sl]=Programski Octetstream
-Name[sr]=Апликација Octetstream
-Name[sr@Latn]=Aplikacija Octetstream
-Name[sv]=Program-oktettström
-Name[ta]=பயன்பாட்டு எண்மம்
-Name[tg]=Миқдори зиёди бинарии барномот
-Name[tr]=Uygulama Sekizli Akışı
-Name[zh_CN]=应用程序 Octetstream
+
Comment=A bodypart formatter plugin for text/x-diff
-Comment[af]='n Data (boodskap lyf) formateer inprop module vir 'text/x-diff'
-Comment[bg]=Редактор с поддръжка на форматиране за текст/x-diff
-Comment[ca]=Un endollable formatador del cos per a text/x-diff
-Comment[cs]=Formátovač těla emailu pro typ text/x-diff
-Comment[da]=Et bodypart formateringsplugin for text/x-diff
-Comment[de]=Ein Bodypart-Formatierungsmodul für text/x-diff
-Comment[el]=Ένα πρόσθετο μορφοποιητή για text/x-diff
-Comment[es]=Una extensión de formato para el cuerpo de text/x-diff
-Comment[et]=Põhiosa vormindamisplugin (MIME tüübile text/x-diff)
-Comment[eu]=Testu/x-diff-en gorputz-zati formateatzaile bat
-Comment[fa]=یک وصلۀ قالب دهندۀ جزء بدنه برای متن/x-diff
-Comment[fi]=Muokkausliitännäinen text/x-diff-muodolle
-Comment[fr]=Un formateur de partie de corps pour text/x-diff
-Comment[fy]=In opmaakplugin foar text/x-diff
-Comment[gl]=Unha extensión para formatear o corpo do texto/x-diff
-Comment[hu]=Formázómodul text/x-diff adatok kezeléséhez
-Comment[is]=Sniðmátstól fyrir text/x-diff
-Comment[it]=Un plugin per formattare il corpo di text/x-diff
-Comment[ja]=text/x-diff 用の bodypart フォーマッタプラグイン
-Comment[kk]=Text/x-diff бөлімін пішімдеу модулі
-Comment[km]=កម្មវិធី​ជំនួយ​កម្មវិធី​ធ្វើ​ទ្រង់ទ្រាយ​ផ្នែក​តួ សម្រាប់​អត្ថបទ/x-diff
-Comment[lt]=text/x-diff formatavimo priedas
-Comment[ms]=Plugin pemformat bahagian untuk teks/x-diff
-Comment[nb]=Et programtillegg for text/x-diff for brødtekst-formatering
-Comment[nds]=En Hööftdeel-Formateermoduul för text/x-diff
-Comment[ne]=पाठ/x-diff का लागि मुख्यभाग ढाँचाबद्ध गर्ने प्लगइन
-Comment[nl]=Een opmaakplugin voor text/x-diff
-Comment[nn]=Eit programtilllegg for text/x-diff for brødtekstformatering
-Comment[pl]=Wtyczka formatująca dla text/x-diff
-Comment[pt]=Um 'plugin' de formatação para text/x-diff
-Comment[pt_BR]=Um plug-in formatador de componente para o tipo text/x-diff
-Comment[ru]=Форматирование text/x-diff
-Comment[sk]=Modul pre formátovanie tela pre text/x-diff
-Comment[sl]=Oblikovalni vstavek za text/x-diff
-Comment[sr]=Прикључак за форматитање тела за text/x-diff
-Comment[sr@Latn]=Priključak za formatitanje tela za text/x-diff
-Comment[sv]=Ett insticksprogram för brevtextformatering av text/x-diff
-Comment[ta]=text/x-diffக்கான ஒரு பகுதி வடிவமைப்பான் சொருகுப்பொருள்
-Comment[tr]=text/x-diff için bir gövde biçimleyici eklentisi
-Comment[uk]=Втулок форматування для text/x-diff
-Comment[zh_CN]=text/x-diff 的格式化插件
-Comment[zh_TW]=text/x-diff 格式化外掛程式
+
[Plugin]
Type=text/x-diff
X-TDE-Library=libkmail_bodypartformatter_text_xdiff
diff --git a/tdeabc/CMakeL10n.txt b/tdeabc/CMakeL10n.txt
index b585ce4a..d2fd5881 100644
--- a/tdeabc/CMakeL10n.txt
+++ b/tdeabc/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_auto_add_subdirectories( )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/tdeabc-desktops/"
+ SOURCES *.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/tdeabc/frontend/main.cpp b/tdeabc/frontend/main.cpp
index 0e941e01..706d94e7 100644
--- a/tdeabc/frontend/main.cpp
+++ b/tdeabc/frontend/main.cpp
@@ -15,6 +15,6 @@ int main( int argc, char ** argv )
MainWindow *w = new MainWindow;
w->show();
- app.connect( &app, TQT_SIGNAL( lastWindowClosed() ), &app, TQT_SLOT( quit() ) );
+ app.connect( &app, TQ_SIGNAL( lastWindowClosed() ), &app, TQ_SLOT( quit() ) );
return app.exec();
}
diff --git a/tdeabc/frontend/mainWindow.ui b/tdeabc/frontend/mainWindow.ui
index 240114a6..4bce4b34 100644
--- a/tdeabc/frontend/mainWindow.ui
+++ b/tdeabc/frontend/mainWindow.ui
@@ -1365,7 +1365,7 @@
<variable>TQString mCurrentAddress</variable>
<variable>TQString mCurrentPhone</variable>
</variables>
-<Q_SLOTS>
+<slots>
<slot>init()</slot>
<slot>destroy()</slot>
<slot>fileSave()</slot>
@@ -1404,6 +1404,6 @@
<slot>addressBookLocked()</slot>
<slot>addressBookUnlocked()</slot>
<slot>fileOpenStd()</slot>
-</Q_SLOTS>
+</slots>
<layoutdefaults spacing="6" margin="11"/>
</UI>
diff --git a/tdeabc/frontend/mainWindow.ui.h b/tdeabc/frontend/mainWindow.ui.h
index 8e678b93..5a32e6cc 100644
--- a/tdeabc/frontend/mainWindow.ui.h
+++ b/tdeabc/frontend/mainWindow.ui.h
@@ -39,12 +39,12 @@ void MainWindow::init()
mEmailListView->header()->hide();
mCategoryListView->header()->hide();
- connect( mAddressBook, TQT_SIGNAL( addressBookChanged( AddressBook * ) ),
- TQT_SLOT( addressBookChanged() ) );
- connect( mAddressBook, TQT_SIGNAL( addressBookLocked( AddressBook * ) ),
- TQT_SLOT( addressBookLocked() ) );
- connect( mAddressBook, TQT_SIGNAL( addressBookUnlocked( AddressBook * ) ),
- TQT_SLOT( addressBookUnlocked() ) );
+ connect( mAddressBook, TQ_SIGNAL( addressBookChanged( AddressBook * ) ),
+ TQ_SLOT( addressBookChanged() ) );
+ connect( mAddressBook, TQ_SIGNAL( addressBookLocked( AddressBook * ) ),
+ TQ_SLOT( addressBookLocked() ) );
+ connect( mAddressBook, TQ_SIGNAL( addressBookUnlocked( AddressBook * ) ),
+ TQ_SLOT( addressBookUnlocked() ) );
}
void MainWindow::destroy()
diff --git a/tdeabc/tdeabc2mutt/tdeabc2mutt.cpp b/tdeabc/tdeabc2mutt/tdeabc2mutt.cpp
index d36582ba..ea688aac 100644
--- a/tdeabc/tdeabc2mutt/tdeabc2mutt.cpp
+++ b/tdeabc/tdeabc2mutt/tdeabc2mutt.cpp
@@ -42,8 +42,8 @@ void KABC2Mutt::run()
mAddressBook = TDEABC::StdAddressBook::self( true );
TDEABC::StdAddressBook::setAutomaticSave( false );
- connect( mAddressBook, TQT_SIGNAL( addressBookChanged( AddressBook* ) ),
- this, TQT_SLOT( loadingFinished() ) );
+ connect( mAddressBook, TQ_SIGNAL( addressBookChanged( AddressBook* ) ),
+ this, TQ_SLOT( loadingFinished() ) );
}
void KABC2Mutt::loadingFinished()
diff --git a/tdeabc/tdeabc2mutt/tdeabc2mutt.h b/tdeabc/tdeabc2mutt/tdeabc2mutt.h
index a0e58a59..6c9960c7 100644
--- a/tdeabc/tdeabc2mutt/tdeabc2mutt.h
+++ b/tdeabc/tdeabc2mutt/tdeabc2mutt.h
@@ -24,7 +24,7 @@
class KABC2Mutt : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tdeabc/tdeabcdistlistupdater/CMakeLists.txt b/tdeabc/tdeabcdistlistupdater/CMakeLists.txt
index ddbdd7c9..a71b55ea 100644
--- a/tdeabc/tdeabcdistlistupdater/CMakeLists.txt
+++ b/tdeabc/tdeabcdistlistupdater/CMakeLists.txt
@@ -27,9 +27,10 @@ link_directories(
##### other data ################################
-install(
- FILES tdeabcdistlistupdater.desktop
+tde_create_translated_desktop(
+ SOURCE tdeabcdistlistupdater.desktop
DESTINATION ${AUTOSTART_INSTALL_DIR}
+ PO_DIR tdeabc-desktops
)
diff --git a/tdeabc/tdeabcdistlistupdater/tdeabcdistlistupdater.desktop b/tdeabc/tdeabcdistlistupdater/tdeabcdistlistupdater.desktop
index 5b6a8f59..ab5ef348 100644
--- a/tdeabc/tdeabcdistlistupdater/tdeabcdistlistupdater.desktop
+++ b/tdeabc/tdeabcdistlistupdater/tdeabcdistlistupdater.desktop
@@ -1,10 +1,12 @@
[Desktop Entry]
Name=tdeabcdistlistupdater
+
+Comment=Tool to update the old distribution lists to the new ones.
+
Exec=tdeabcdistlistupdater --disable-autostart
Icon=application-vnd.tde.misc
Type=Application
-Comment=Tool to update the old distribution lists to the new ones.
Terminal=false
NoDisplay=true
-X-TDE-autostart-condition=tdeabcdistlistupdaterrc:Startup:EnableAutostart:true
OnlyShowIn=TDE;
+X-TDE-autostart-condition=tdeabcdistlistupdaterrc:Startup:EnableAutostart:true
diff --git a/tdefile-plugins/CMakeL10n.txt b/tdefile-plugins/CMakeL10n.txt
index b585ce4a..af16c09a 100644
--- a/tdefile-plugins/CMakeL10n.txt
+++ b/tdefile-plugins/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_auto_add_subdirectories( )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/tdefile-desktops/"
+ SOURCES *.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/tdefile-plugins/ics/CMakeLists.txt b/tdefile-plugins/ics/CMakeLists.txt
index 66c10071..49bf0bc9 100644
--- a/tdefile-plugins/ics/CMakeLists.txt
+++ b/tdefile-plugins/ics/CMakeLists.txt
@@ -28,7 +28,11 @@ link_directories(
##### other data ################################
-install( FILES tdefile_ics.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE tdefile_ics.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR tdefile-desktops
+)
##### tdefile_ics (module) ########################
diff --git a/tdefile-plugins/ics/tdefile_ics.desktop b/tdefile-plugins/ics/tdefile_ics.desktop
index ef4c1763..57d781c2 100644
--- a/tdefile-plugins/ics/tdefile_ics.desktop
+++ b/tdefile-plugins/ics/tdefile_ics.desktop
@@ -1,54 +1,7 @@
[Desktop Entry]
-Type=Service
Name=ICS information
-Name[af]=ICS informasie
-Name[be]=Інфармацыя аб ICS
-Name[bg]=ICS информация
-Name[br]=Titouroù ICS
-Name[ca]=Informació ICS
-Name[cs]=Informace o ICS
-Name[da]=ICS-information
-Name[de]=ICS-Information
-Name[el]=Πληροφορίες ICS
-Name[eo]=ICS-Informo
-Name[es]=Información ICS
-Name[et]=ICS info
-Name[eu]=ICS informazioa
-Name[fa]=اطلاعات ICS
-Name[fi]=ICS-tiedot
-Name[fr]=Information sur ICS
-Name[fy]=ICS-ynformaasje
-Name[gl]=Información ICS
-Name[he]=מידע של ICS
-Name[hu]=ICS-jellemzők
-Name[is]=ICS upplýsingar
-Name[it]=Informazioni ICS
-Name[ja]=ICS 情報
-Name[kk]=ICS ақпараты
-Name[km]=ព័ត៌មាន ICS
-Name[lt]=ICS informacija
-Name[mk]=Информација за ICS
-Name[ms]=Maklumat ICS
-Name[nb]=ICS-informasjon
-Name[nds]=ICS-Informatschoon
-Name[ne]=ICS सूचना
-Name[nl]=ICS-informatie
-Name[nn]=ICS-informasjon
-Name[pa]=ICS ਜਾਣਕਾਰੀ
-Name[pl]=Informacja ICS
-Name[pt]=Informação ICS
-Name[pt_BR]=Informações ICS
-Name[ru]=Информация ICS
-Name[sk]=Informácie o ICS
-Name[sl]=Podatki ICS
-Name[sr]=ICS информације
-Name[sr@Latn]=ICS informacije
-Name[sv]=ICS-information
-Name[ta]=ICS தகவல்
-Name[tr]=ICS bilgisi
-Name[uk]=Інформація про ICS
-Name[zh_CN]=ICS 信息
-Name[zh_TW]=ICS 資訊
+
+Type=Service
X-TDE-ServiceTypes=KFilePlugin
X-TDE-Library=tdefile_ics
MimeType=text/calendar
diff --git a/tdefile-plugins/ics/tdefile_ics.h b/tdefile-plugins/ics/tdefile_ics.h
index 756a11be..aa8e6c2e 100644
--- a/tdefile-plugins/ics/tdefile_ics.h
+++ b/tdefile-plugins/ics/tdefile_ics.h
@@ -26,7 +26,7 @@ class TQStringList;
class ICSPlugin : public KFilePlugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
ICSPlugin( TQObject *parent, const char *name, const TQStringList& args );
diff --git a/tdefile-plugins/palm-databases/tdefile_palm.cpp b/tdefile-plugins/palm-databases/tdefile_palm.cpp
index e995b136..e0a4db02 100644
--- a/tdefile-plugins/palm-databases/tdefile_palm.cpp
+++ b/tdefile-plugins/palm-databases/tdefile_palm.cpp
@@ -115,7 +115,7 @@ bool KPalmPlugin::readInfo( KFileMetaInfo& info, uint /*what*/ )
{
// int pi_file_set_info((struct pi_file * pf, struct DBInfo * infop));
//info["tuteTextTechnical"].value("An integer").toInt()
-// Do the stuff with low-level functions. See lines 1119-1142 of pi-file.cc for writing, 244-273 for reading.
+// Do the stuff with low-level functions. See lines 1119-1142 of pi-file.cpp for writing, 244-273 for reading.
}*/
#include "tdefile_palm.moc"
diff --git a/tdefile-plugins/palm-databases/tdefile_palm.desktop b/tdefile-plugins/palm-databases/tdefile_palm.desktop
index d9adb981..e7d730d6 100644
--- a/tdefile-plugins/palm-databases/tdefile_palm.desktop
+++ b/tdefile-plugins/palm-databases/tdefile_palm.desktop
@@ -1,57 +1,7 @@
[Desktop Entry]
-Type=Service
Name=PalmOS Database Info
-Name[af]=PalmOS databasis informasie
-Name[be]=Інфармацыя аб базе дадзеных PalmOS
-Name[bg]=Информация за БД на PalmOS
-Name[br]=Titouroù diwar-benn ar stlennvon PalmOS
-Name[bs]=Informacije o PalmOS bazi podataka
-Name[ca]=Informació de base de dades PalmOS
-Name[cs]=Informace o databázi PalmOS
-Name[da]=PalmOS database-info
-Name[de]=PalmOS Datenbank-Informationen
-Name[el]=Πληροφορίες βάσης δεδομένων PalmOS
-Name[eo]=PalmOS-Datumbazinformo
-Name[es]=Info. de la base de datos de PalmOS
-Name[et]=PalmOS andmebaasi info
-Name[eu]=PalmOS datu-base informazioa
-Name[fa]=اطلاعات دادگان PalmOS
-Name[fi]=PalmOS-tietokannan tiedot
-Name[fr]=Informations sur les bases de données PalmOS
-Name[fy]=PalmOS-database ynformaasje
-Name[ga]=Eolas faoin Bhunachar Sonraí PalmOS
-Name[gl]=Información de Base de Datos de PalmOS
-Name[he]=מידע אודות בסיס הנתונים של PalmOS
-Name[hu]=PalmOS adatbázis-jellemzők
-Name[is]=PalmOS gagnagrunnsupplýsingar
-Name[it]=Informazioni database PalmOs
-Name[ja]=PalmOS データベース 情報
-Name[kk]=PalmOS деректер қорының мәліметі
-Name[km]=ព័ត៌មាន​មូលដ្ឋាន​ទិន្នន័យ PalmOS
-Name[lt]=PalmOS duomenų bazės info
-Name[mk]=Информации за PalmOS-база на податоци
-Name[ms]=Maklumat Pangkalan Data PalmOS
-Name[nb]=PalmOS Database info
-Name[nds]=PalmOS-Datenbank-Informatschonen
-Name[ne]=PalmOS डाटाबेस सूचना
-Name[nl]=PalmOS-database informatie
-Name[nn]=PalmOS-databaseinfo
-Name[pl]=Baza danych PalmOS
-Name[pt]=Informações de Base de Dados PalmOS
-Name[pt_BR]=Informações da Base de Dados do PalmOS
-Name[ru]=Сведения о базе данных PalmOS
-Name[se]=PalmOS-diehtovuođđodieđut
-Name[sk]=Informácie o databázach PalmOS
-Name[sl]=Informacije zbirke podatkov za PalmOS
-Name[sr]=Информације о PalmOS базама података
-Name[sr@Latn]=Informacije o PalmOS bazama podataka
-Name[sv]=PalmOS-databasinformation
-Name[ta]=பால்ம்OS தரவுத்தள தகவல்
-Name[tg]=Иттилоот дар бораи бонки додаҳои PalmOS
-Name[tr]=PalmOS Veritabanı Bilgisi
-Name[uk]=Інформація про базу даних PalmOS
-Name[zh_CN]=PalmOS 数据库信息
-Name[zh_TW]=PalmOS 資料庫資訊
+
+Type=Service
X-TDE-ServiceTypes=KFilePlugin
X-TDE-Library=tdefile_palm
MimeType=application/vnd.palm
diff --git a/tdefile-plugins/palm-databases/tdefile_palm.h b/tdefile-plugins/palm-databases/tdefile_palm.h
index 22124aa7..e9521543 100644
--- a/tdefile-plugins/palm-databases/tdefile_palm.h
+++ b/tdefile-plugins/palm-databases/tdefile_palm.h
@@ -28,7 +28,7 @@ class TQStringList;
class KPalmPlugin: public KFilePlugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tdefile-plugins/rfc822/tdefile_rfc822.desktop b/tdefile-plugins/rfc822/tdefile_rfc822.desktop
index 448a7357..b82a148d 100644
--- a/tdefile-plugins/rfc822/tdefile_rfc822.desktop
+++ b/tdefile-plugins/rfc822/tdefile_rfc822.desktop
@@ -1,60 +1,7 @@
[Desktop Entry]
-Type=Service
Name=Email Info
-Name[af]=E-pos informasie
-Name[be]=Інфармацыя аб паведамленні электроннай пошты
-Name[bg]=Информация за е-поща
-Name[br]=Titouroù postel
-Name[ca]=Informació de correu-e
-Name[cs]=Informace o emailu
-Name[cy]=Gwybodaeth Ebost
-Name[da]=E-mail-info
-Name[de]=E-Mail-Info
-Name[el]=Πληροφορίες Email
-Name[eo]=Retpoŝt-informo
-Name[es]=Info de correo electrónico
-Name[et]=Kirja info
-Name[eu]=E-posta informazioa
-Name[fa]=اطلاعات رایانامه
-Name[fi]=Sähköpostitiedot
-Name[fr]=Informations sur le courrier électronique
-Name[fy]=E-port-ynformaasje
-Name[gl]=Información de Correo-e
-Name[he]=מידע על דוא"ל
-Name[hi]=ई-मेल जानकारी
-Name[hr]=Email Informacije
-Name[hu]=E-mail-jellemzők
-Name[is]=Tölvupóst upplýsingar
-Name[it]=Informazioni di posta elettronica
-Name[ja]=Eメール 情報
-Name[kk]=Эл.пошта мәліметі
-Name[km]=ព័ត៌មាន​អ៊ីមែល
-Name[lt]=E. pašto info
-Name[mk]=Информации за е-пошта
-Name[ms]=Info Emel
-Name[nb]=E-post-info
-Name[nds]=Nettbreef-Informatschonen
-Name[ne]=इमेल सूचना
-Name[nl]=E-mail-informatie
-Name[nn]=Epost-info
-Name[pa]=ਈ-ਪੱਤਰ ਜਾਣਕਾਰੀ
-Name[pl]=Informacja o e-mailu
-Name[pt]=Informação do E-Mail
-Name[pt_BR]=Informações sobre E-mail
-Name[ro]=Informaţii e-mail
-Name[ru]=Сведения об электронной почте
-Name[se]=E-boastadieđut
-Name[sk]=Informácie o emaily
-Name[sl]=Informacije o e-pošti
-Name[sr]=Е-поштанске информације
-Name[sr@Latn]=E-poštanske informacije
-Name[sv]=E-postinformation
-Name[ta]=மின்னஞ்சல் தகவல்
-Name[tg]=Иттилоот дар бораи почтаи электронӣ
-Name[tr]=E-Posta Bilgisi
-Name[uk]=Інформація про повідомлення ел. пошти
-Name[zh_CN]=电子邮件信息
-Name[zh_TW]=電子郵件資訊
+
+Type=Service
X-TDE-ServiceTypes=KFilePlugin
X-TDE-Library=tdefile_rfc822
MimeType=message/rfc822
diff --git a/tdefile-plugins/rfc822/tdefile_rfc822.h b/tdefile-plugins/rfc822/tdefile_rfc822.h
index c8f3f2f8..cf33ade9 100644
--- a/tdefile-plugins/rfc822/tdefile_rfc822.h
+++ b/tdefile-plugins/rfc822/tdefile_rfc822.h
@@ -26,7 +26,7 @@ class TQStringList;
class KRfc822Plugin: public KFilePlugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tdefile-plugins/vcf/CMakeLists.txt b/tdefile-plugins/vcf/CMakeLists.txt
index c0a8944a..9edcb169 100644
--- a/tdefile-plugins/vcf/CMakeLists.txt
+++ b/tdefile-plugins/vcf/CMakeLists.txt
@@ -23,7 +23,11 @@ link_directories(
##### other data ################################
-install( FILES tdefile_vcf.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE tdefile_vcf.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR tdefile-desktops
+)
##### tdefile_vcf (module) ########################
diff --git a/tdefile-plugins/vcf/tdefile_vcf.desktop b/tdefile-plugins/vcf/tdefile_vcf.desktop
index 036a6c0d..e7f5c43f 100644
--- a/tdefile-plugins/vcf/tdefile_vcf.desktop
+++ b/tdefile-plugins/vcf/tdefile_vcf.desktop
@@ -1,63 +1,7 @@
[Desktop Entry]
-Type=Service
Name=vCard Info
-Name[af]=Vkaart Inligting
-Name[be]=Інфармацыя аб vCard
-Name[bg]=Информация за vCard
-Name[br]=Titouroù diwar-benn vCard
-Name[ca]=Informació de vCard
-Name[cs]=VCard info
-Name[cy]=Gwybodaeth vCard
-Name[da]=VCard-info
-Name[de]=vCard-Info
-Name[el]=Πληροφορίες vCard
-Name[eo]=vCard-informo
-Name[es]=Info de vCard
-Name[et]=vCardi info
-Name[eu]=vCard informazioa
-Name[fa]=اطلاعات vCard
-Name[fi]=vCard-tiedot
-Name[fr]=Informations vCard
-Name[fy]=vCard-ynformaasje
-Name[gl]=Información de vCard
-Name[he]=מידע vCard
-Name[hi]=वी-कार्ड जानकारी
-Name[hu]=VCard-jellemzők
-Name[is]=vCard upplýsingar
-Name[it]=Informazioni vCard
-Name[ja]=vCard 情報
-Name[kk]=vCard мәліметі
-Name[km]=ព័ត៌មាន vCard
-Name[lt]=vCard informacija
-Name[mk]=Информации за vCard
-Name[ms]=Info vCard
-Name[mt]=Informazzjoni vCard
-Name[nb]=vCard info
-Name[nds]=vCard-Informatschonen
-Name[ne]=भी कार्ड सुचना
-Name[nl]=vCard-informatie
-Name[nn]=vCard-info
-Name[nso]=Tshedimoso ya vKarata
-Name[pa]=vCard ਜਾਣਕਾਰੀ
-Name[pl]=Informacja vCard
-Name[pt]=Informação do vCard
-Name[pt_BR]=Informações sobre vCard
-Name[ro]=Informaţii vCard
-Name[ru]=Сведения о визитке vCard
-Name[se]=vCard-dieđut
-Name[sl]=Informacije o vCard
-Name[sr]=vCard информације
-Name[sr@Latn]=vCard informacije
-Name[sv]=vCard-information
-Name[ta]=விஅட்டை தகவல்
-Name[tg]=Иттилоот дар бораи визиткаи vCard
-Name[tr]=VCard Bilgisi
-Name[uk]=Інформація про vCard
-Name[ven]=Mafhungo a vCard
-Name[xh]=Inkcukacha ye vCard
-Name[zh_CN]=vCard 信息
-Name[zh_TW]=vCard 資訊
-Name[zu]=Ulwazi lwe-vCard
+
+Type=Service
X-TDE-ServiceTypes=KFilePlugin
X-TDE-Library=tdefile_vcf
MimeType=text/x-vcard
diff --git a/tdefile-plugins/vcf/tdefile_vcf.h b/tdefile-plugins/vcf/tdefile_vcf.h
index de5243e1..bc724b8f 100644
--- a/tdefile-plugins/vcf/tdefile_vcf.h
+++ b/tdefile-plugins/vcf/tdefile_vcf.h
@@ -26,7 +26,7 @@ class TQStringList;
class KVcfPlugin: public KFilePlugin
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tdeioslave/CMakeL10n.txt b/tdeioslave/CMakeL10n.txt
index b585ce4a..0197a9ac 100644
--- a/tdeioslave/CMakeL10n.txt
+++ b/tdeioslave/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_auto_add_subdirectories( )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/tdeioslave-desktops/"
+ SOURCES *.protocol
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/tdeioslave/imap4/CMakeLists.txt b/tdeioslave/imap4/CMakeLists.txt
index f427c258..041aeffc 100644
--- a/tdeioslave/imap4/CMakeLists.txt
+++ b/tdeioslave/imap4/CMakeLists.txt
@@ -27,18 +27,20 @@ link_directories(
##### other data ################################
-install( FILES
- imap4.protocol imaps.protocol
- DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE imap4.protocol imaps.protocol
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR tdeioslave-desktops
+)
##### tdeio_imap4 (module) ########################
tde_add_kpart( tdeio_imap4
SOURCES
- imapcommand.cc imaplist.cc mailaddress.cc mimeheader.cc
- rfcdecoder.cc imap4.cc imapinfo.cc imapparser.cc
- mailheader.cc mimehdrline.cc mimeio.cc
+ imapcommand.cpp imaplist.cpp mailaddress.cpp mimeheader.cpp
+ rfcdecoder.cpp imap4.cpp imapinfo.cpp imapparser.cpp
+ mailheader.cpp mimehdrline.cpp mimeio.cpp
LINK emailfunctions-static kmime-shared tdeio-shared ${SASL_LIBRARY}
DESTINATION ${PLUGIN_INSTALL_DIR}
)
diff --git a/tdeioslave/imap4/Makefile.am b/tdeioslave/imap4/Makefile.am
index f52af2c6..34497bf6 100644
--- a/tdeioslave/imap4/Makefile.am
+++ b/tdeioslave/imap4/Makefile.am
@@ -7,9 +7,9 @@ INCLUDES= -I$(top_srcdir)/libkmime \
kde_module_LTLIBRARIES = tdeio_imap4.la
-tdeio_imap4_la_SOURCES = imapcommand.cc imaplist.cc mailaddress.cc \
- mimeheader.cc rfcdecoder.cc imap4.cc imapinfo.cc imapparser.cc mailheader.cc \
- mimehdrline.cc mimeio.cc
+tdeio_imap4_la_SOURCES = imapcommand.cpp imaplist.cpp mailaddress.cpp \
+ mimeheader.cpp rfcdecoder.cpp imap4.cpp imapinfo.cpp imapparser.cpp mailheader.cpp \
+ mimehdrline.cpp mimeio.cpp
tdeio_imap4_la_LIBADD = $(LIB_TDEIO) $(SASL2_LIBS) ../../libkmime/libkmime.la \
../../libemailfunctions/libemailfunctions.la
tdeio_imap4_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) -module $(KDE_PLUGIN)
@@ -21,6 +21,6 @@ kdelnk_DATA = imap4.protocol imaps.protocol
kdelnkdir = $(kde_servicesdir)
messages:
- $(XGETTEXT) *.cc -o $(podir)/tdeio_imap4.pot
+ $(XGETTEXT) *.cpp -o $(podir)/tdeio_imap4.pot
include $(top_srcdir)/admin/Doxyfile.am
diff --git a/tdeioslave/imap4/imap4.cc b/tdeioslave/imap4/imap4.cc
deleted file mode 100644
index 7dea2c5d..00000000
--- a/tdeioslave/imap4/imap4.cc
+++ /dev/null
@@ -1,2746 +0,0 @@
-/**********************************************************************
- *
- * imap4.cc - IMAP4rev1 KIOSlave
- * Copyright (C) 2001-2002 Michael Haeckel <haeckel@kde.org>
- * Copyright (C) 1999 John Corey <jcorey@fruity.ath.cx>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Send comments and bug fixes to jcorey@fruity.ath.cx
- *
- *********************************************************************/
-
-/**
- * @class IMAP4Protocol
- * @note References:
- * - RFC 2060 - Internet Message Access Protocol - Version 4rev1 - December 1996
- * - RFC 2192 - IMAP URL Scheme - September 1997
- * - RFC 1731 - IMAP Authentication Mechanisms - December 1994
- * (Discusses KERBEROSv4, GSSAPI, and S/Key)
- * - RFC 2195 - IMAP/POP AUTHorize Extension for Simple Challenge/Response
- * - September 1997 (CRAM-MD5 authentication method)
- * - RFC 2104 - HMAC: Keyed-Hashing for Message Authentication - February 1997
- * - RFC 2086 - IMAP4 ACL extension - January 1997
- * - http://www.ietf.org/internet-drafts/draft-daboo-imap-annotatemore-05.txt
- * IMAP ANNOTATEMORE draft - April 2004.
- *
- *
- * Supported URLs:
- * \verbatim
-imap://server/
-imap://user:pass@server/
-imap://user;AUTH=method:pass@server/
-imap://server/folder/
- * \endverbatim
- * These URLs cause the following actions (in order):
- * - Prompt for user/pass, list all folders in home directory
- * - Uses LOGIN to log in
- * - Uses AUTHENTICATE to log in
- * - List messages in folder
- *
- * @note API notes:
- * Not receiving the required write access for a folder means
- * ERR_CANNOT_OPEN_FOR_WRITING.
- * ERR_DOES_NOT_EXIST is reserved for folders.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "imap4.h"
-
-#include "rfcdecoder.h"
-
-#include <sys/stat.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <errno.h>
-
-#ifdef HAVE_LIBSASL2
-extern "C" {
-#include <sasl/sasl.h>
-}
-#endif
-
-#include <tqbuffer.h>
-#include <tqdatetime.h>
-#include <tqregexp.h>
-#include <tdeprotocolmanager.h>
-#include <tdemessagebox.h>
-#include <kdebug.h>
-#include <tdeio/connection.h>
-#include <tdeio/slaveinterface.h>
-#include <tdeio/passdlg.h>
-#include <tdelocale.h>
-#include <kmimetype.h>
-#include <kmdcodec.h>
-
-#include "tdepimmacros.h"
-
-#define IMAP_PROTOCOL "imap"
-#define IMAP_SSL_PROTOCOL "imaps"
-const int ImapPort = 143;
-const int ImapsPort = 993;
-
-using namespace TDEIO;
-
-extern "C"
-{
- void sigalrm_handler (int);
- KDE_EXPORT int kdemain (int argc, char **argv);
-}
-
-int
-kdemain (int argc, char **argv)
-{
- kdDebug(7116) << "IMAP4::kdemain" << endl;
-
- TDEInstance instance ("tdeio_imap4");
- if (argc != 4)
- {
- fprintf(stderr, "Usage: tdeio_imap4 protocol domain-socket1 domain-socket2\n");
- ::exit (-1);
- }
-
-#ifdef HAVE_LIBSASL2
- if ( sasl_client_init( NULL ) != SASL_OK ) {
- fprintf(stderr, "SASL library initialization failed!\n");
- ::exit (-1);
- }
-#endif
-
- //set debug handler
-
- IMAP4Protocol *slave;
- if (strcasecmp (argv[1], IMAP_SSL_PROTOCOL) == 0)
- slave = new IMAP4Protocol (argv[2], argv[3], true);
- else if (strcasecmp (argv[1], IMAP_PROTOCOL) == 0)
- slave = new IMAP4Protocol (argv[2], argv[3], false);
- else
- abort ();
- slave->dispatchLoop ();
- delete slave;
-
-#ifdef HAVE_LIBSASL2
- sasl_done();
-#endif
-
- return 0;
-}
-
-void
-sigchld_handler (int signo)
-{
- // A signal handler that calls for example waitpid has to save errno
- // before and restore it afterwards.
- // (cf. https://www.securecoding.cert.org/confluence/display/cplusplus/ERR32-CPP.+Do+not+rely+on+indeterminate+values+of+errno)
- const int save_errno = errno;
- int pid, status;
-
- while (signo == SIGCHLD)
- {
- pid = waitpid (-1, &status, WNOHANG);
- if (pid <= 0)
- {
- // Reinstall signal handler, since Linux resets to default after
- // the signal occurred ( BSD handles it different, but it should do
- // no harm ).
- signal (SIGCHLD, sigchld_handler);
- break;
- }
- }
-
- errno = save_errno;
-}
-
-IMAP4Protocol::IMAP4Protocol (const TQCString & pool, const TQCString & app, bool isSSL):TCPSlaveBase ((isSSL ? 993 : 143),
- (isSSL ? IMAP_SSL_PROTOCOL : IMAP_PROTOCOL), pool,
- app, isSSL), imapParser (), mimeIO (), outputBuffer(outputCache)
-{
- outputBufferIndex = 0;
- mySSL = isSSL;
- readBuffer[0] = 0x00;
- relayEnabled = false;
- readBufferLen = 0;
- cacheOutput = false;
- decodeContent = false;
- mTimeOfLastNoop = TQDateTime();
-}
-
-IMAP4Protocol::~IMAP4Protocol ()
-{
- closeDescriptor();
- kdDebug(7116) << "IMAP4: Finishing" << endl;
-}
-
-void
-IMAP4Protocol::get (const KURL & _url)
-{
- if (!makeLogin()) return;
- kdDebug(7116) << "IMAP4::get - " << _url.prettyURL() << endl;
- TQString aBox, aSequence, aType, aSection, aValidity, aDelimiter, aInfo;
- enum IMAP_TYPE aEnum =
- parseURL (_url, aBox, aSection, aType, aSequence, aValidity, aDelimiter, aInfo);
- if (aEnum != ITYPE_ATTACH)
- mimeType (getMimeType(aEnum));
- if (aInfo == "DECODE")
- decodeContent = true;
-
- if (aSequence == "0:0" && getState() == ISTATE_SELECT)
- {
- imapCommand *cmd = doCommand (imapCommand::clientNoop());
- completeQueue.removeRef(cmd);
- }
-
- if (aSequence.isEmpty ())
- {
- aSequence = "1:*";
- }
-
- mProcessedSize = 0;
- imapCommand *cmd = NULL;
- if (!assureBox (aBox, true)) return;
-
-#ifdef USE_VALIDITY
- if (selectInfo.uidValidityAvailable () && !aValidity.isEmpty ()
- && selectInfo.uidValidity () != aValidity.toULong ())
- {
- // this url is stale
- error (ERR_COULD_NOT_READ, _url.prettyURL());
- return;
- }
- else
-#endif
- {
- // The "section" specified by the application can be:
- // * empty (which means body, size and flags)
- // * a known keyword, like STRUCTURE, ENVELOPE, HEADER, BODY.PEEK[...]
- // (in which case the slave has some logic to add the necessary items)
- // * Otherwise, it specifies the exact data items to request. In this case, all
- // the logic is in the app.
-
- TQString aUpper = aSection.upper();
- if (aUpper.find ("STRUCTURE") != -1)
- {
- aSection = "BODYSTRUCTURE";
- }
- else if (aUpper.find ("ENVELOPE") != -1)
- {
- aSection = "UID RFC822.SIZE FLAGS ENVELOPE";
- if (hasCapability("IMAP4rev1")) {
- aSection += " BODY.PEEK[HEADER.FIELDS (REFERENCES)]";
- } else {
- // imap4 does not know HEADER.FIELDS
- aSection += " RFC822.HEADER.LINES (REFERENCES)";
- }
- }
- else if (aUpper == "HEADER")
- {
- aSection = "UID RFC822.HEADER RFC822.SIZE FLAGS";
- }
- else if (aUpper.find ("BODY.PEEK[") != -1)
- {
- if (aUpper.find ("BODY.PEEK[]") != -1)
- {
- if (!hasCapability("IMAP4rev1")) // imap4 does not know BODY.PEEK[]
- aSection.replace("BODY.PEEK[]", "RFC822.PEEK");
- }
- aSection.prepend("UID RFC822.SIZE FLAGS ");
- }
- else if (aSection.isEmpty())
- {
- aSection = "UID BODY[] RFC822.SIZE FLAGS";
- }
- if (aEnum == ITYPE_BOX || aEnum == ITYPE_DIR_AND_BOX)
- {
- // write the digest header
- cacheOutput = true;
- outputLine
- ("Content-Type: multipart/digest; boundary=\"IMAPDIGEST\"\r\n", 55);
- if (selectInfo.recentAvailable ())
- outputLineStr ("X-Recent: " +
- TQString::number(selectInfo.recent ()) + "\r\n");
- if (selectInfo.countAvailable ())
- outputLineStr ("X-Count: " + TQString::number(selectInfo.count ()) +
- "\r\n");
- if (selectInfo.unseenAvailable ())
- outputLineStr ("X-Unseen: " +
- TQString::number(selectInfo.unseen ()) + "\r\n");
- if (selectInfo.uidValidityAvailable ())
- outputLineStr ("X-uidValidity: " +
- TQString::number(selectInfo.uidValidity ()) +
- "\r\n");
- if (selectInfo.uidNextAvailable ())
- outputLineStr ("X-UidNext: " +
- TQString::number(selectInfo.uidNext ()) + "\r\n");
- if (selectInfo.flagsAvailable ())
- outputLineStr ("X-Flags: " + TQString::number(selectInfo.flags ()) +
- "\r\n");
- if (selectInfo.permanentFlagsAvailable ())
- outputLineStr ("X-PermanentFlags: " +
- TQString::number(selectInfo.permanentFlags ()) + "\r\n");
- if (selectInfo.readWriteAvailable ()) {
- if (selectInfo.readWrite()) {
- outputLine ("X-Access: Read/Write\r\n", 22);
- } else {
- outputLine ("X-Access: Read only\r\n", 21);
- }
- }
- outputLine ("\r\n", 2);
- flushOutput(TQString());
- cacheOutput = false;
- }
-
- if (aEnum == ITYPE_MSG || (aEnum == ITYPE_ATTACH && !decodeContent))
- relayEnabled = true; // normal mode, relay data
-
- if (aSequence != "0:0")
- {
- TQString contentEncoding;
- if (aEnum == ITYPE_ATTACH && decodeContent)
- {
- // get the MIME header and fill getLastHandled()
- TQString mySection = aSection;
- mySection.replace("]", ".MIME]");
- cmd = sendCommand (imapCommand::clientFetch (aSequence, mySection));
- do
- {
- while (!parseLoop ()) ;
- }
- while (!cmd->isComplete ());
- completeQueue.removeRef (cmd);
- // get the content encoding now because getLastHandled will be cleared
- if (getLastHandled() && getLastHandled()->getHeader())
- contentEncoding = getLastHandled()->getHeader()->getEncoding();
-
- // from here on collect the data
- // it is send to the client in flushOutput in one go
- // needed to decode the content
- cacheOutput = true;
- }
-
- cmd = sendCommand (imapCommand::clientFetch (aSequence, aSection));
- int res;
- aUpper = aSection.upper();
- do
- {
- while (!(res = parseLoop())) ;
- if (res == -1) break;
-
- mailHeader *lastone = 0;
- imapCache *cache = getLastHandled ();
- if (cache)
- lastone = cache->getHeader ();
-
- if (cmd && !cmd->isComplete ())
- {
- if ((aUpper.find ("BODYSTRUCTURE") != -1)
- || (aUpper.find ("FLAGS") != -1)
- || (aUpper.find ("UID") != -1)
- || (aUpper.find ("ENVELOPE") != -1)
- || (aUpper.find ("BODY.PEEK[0]") != -1
- && (aEnum == ITYPE_BOX || aEnum == ITYPE_DIR_AND_BOX)))
- {
- if (aEnum == ITYPE_BOX || aEnum == ITYPE_DIR_AND_BOX)
- {
- // write the mime header (default is here message/rfc822)
- outputLine ("--IMAPDIGEST\r\n", 14);
- cacheOutput = true;
- if (cache && cache->getUid () != 0)
- outputLineStr ("X-UID: " +
- TQString::number(cache->getUid ()) + "\r\n");
- if (cache && cache->getSize () != 0)
- outputLineStr ("X-Length: " +
- TQString::number(cache->getSize ()) + "\r\n");
- if (cache && !cache->getDate ().isEmpty())
- outputLineStr ("X-Date: " + cache->getDate () + "\r\n");
- if (cache && cache->getFlags () != 0)
- outputLineStr ("X-Flags: " +
- TQString::number(cache->getFlags ()) + "\r\n");
- } else cacheOutput = true;
- if ( lastone && !decodeContent )
- lastone->outputPart (*this);
- cacheOutput = false;
- flushOutput(contentEncoding);
- }
- } // if not complete
- }
- while (cmd && !cmd->isComplete ());
- if (aEnum == ITYPE_BOX || aEnum == ITYPE_DIR_AND_BOX)
- {
- // write the end boundary
- outputLine ("--IMAPDIGEST--\r\n", 16);
- }
-
- completeQueue.removeRef (cmd);
- }
- }
-
- // just to keep everybody happy when no data arrived
- data (TQByteArray ());
-
- finished ();
- relayEnabled = false;
- cacheOutput = false;
- kdDebug(7116) << "IMAP4::get - finished" << endl;
-}
-
-void
-IMAP4Protocol::listDir (const KURL & _url)
-{
- kdDebug(7116) << " IMAP4::listDir - " << _url.prettyURL() << endl;
-
- if (_url.path().isEmpty())
- {
- KURL url = _url;
- url.setPath("/");
- redirection( url );
- finished();
- return;
- }
-
- TQString myBox, mySequence, myLType, mySection, myValidity, myDelimiter, myInfo;
- // parseURL with caching
- enum IMAP_TYPE myType =
- parseURL (_url, myBox, mySection, myLType, mySequence, myValidity,
- myDelimiter, myInfo, true);
-
- if (!makeLogin()) return;
-
- if (myType == ITYPE_DIR || myType == ITYPE_DIR_AND_BOX)
- {
- TQString listStr = myBox;
- imapCommand *cmd;
-
- if (!listStr.isEmpty () && !listStr.endsWith(myDelimiter) &&
- mySection != "FOLDERONLY")
- listStr += myDelimiter;
-
- if (mySection.isEmpty())
- {
- listStr += "%";
- } else if (mySection == "COMPLETE") {
- listStr += "*";
- }
- kdDebug(7116) << "IMAP4Protocol::listDir - listStr=" << listStr << endl;
- cmd =
- doCommand (imapCommand::clientList ("", listStr,
- (myLType == "LSUB" || myLType == "LSUBNOCHECK")));
- if (cmd->result () == "OK")
- {
- TQString mailboxName;
- UDSEntry entry;
- UDSAtom atom;
- KURL aURL = _url;
- if (aURL.path().find(';') != -1)
- aURL.setPath(aURL.path().left(aURL.path().find(';')));
-
- kdDebug(7116) << "IMAP4Protocol::listDir - got " << listResponses.count () << endl;
-
- if (myLType == "LSUB")
- {
- // fire the same command as LIST to check if the box really exists
- TQValueList<imapList> listResponsesSave = listResponses;
- doCommand (imapCommand::clientList ("", listStr, false));
- for (TQValueListIterator < imapList > it = listResponsesSave.begin ();
- it != listResponsesSave.end (); ++it)
- {
- bool boxOk = false;
- for (TQValueListIterator < imapList > it2 = listResponses.begin ();
- it2 != listResponses.end (); ++it2)
- {
- if ((*it2).name() == (*it).name())
- {
- boxOk = true;
- // copy the flags from the LIST-command
- (*it) = (*it2);
- break;
- }
- }
- if (boxOk)
- doListEntry (aURL, myBox, (*it), (mySection != "FOLDERONLY"));
- else // this folder is dead
- kdDebug(7116) << "IMAP4Protocol::listDir - suppress " << (*it).name() << endl;
- }
- listResponses = listResponsesSave;
- }
- else // LIST or LSUBNOCHECK
- {
- for (TQValueListIterator < imapList > it = listResponses.begin ();
- it != listResponses.end (); ++it)
- {
- doListEntry (aURL, myBox, (*it), (mySection != "FOLDERONLY"));
- }
- }
- entry.clear ();
- listEntry (entry, true);
- }
- else
- {
- error (ERR_CANNOT_ENTER_DIRECTORY, _url.prettyURL());
- completeQueue.removeRef (cmd);
- return;
- }
- completeQueue.removeRef (cmd);
- }
- if ((myType == ITYPE_BOX || myType == ITYPE_DIR_AND_BOX)
- && myLType != "LIST" && myLType != "LSUB" && myLType != "LSUBNOCHECK")
- {
- KURL aURL = _url;
- aURL.setQuery (TQString());
- const TQString encodedUrl = aURL.url(0, 106); // utf-8
-
- if (!_url.query ().isEmpty ())
- {
- TQString query = KURL::decode_string (_url.query ());
- query = query.right (query.length () - 1);
- if (!query.isEmpty())
- {
- imapCommand *cmd = NULL;
-
- if (!assureBox (myBox, true)) return;
-
- if (!selectInfo.countAvailable() || selectInfo.count())
- {
- cmd = doCommand (imapCommand::clientSearch (query));
- if (cmd->result() != "OK")
- {
- error(ERR_UNSUPPORTED_ACTION, _url.prettyURL());
- completeQueue.removeRef (cmd);
- return;
- }
- completeQueue.removeRef (cmd);
-
- TQStringList list = getResults ();
- int stretch = 0;
-
- if (selectInfo.uidNextAvailable ())
- stretch = TQString::number(selectInfo.uidNext ()).length ();
- UDSEntry entry;
- imapCache fake;
-
- for (TQStringList::ConstIterator it = list.begin(); it != list.end();
- ++it)
- {
- fake.setUid((*it).toULong());
- doListEntry (encodedUrl, stretch, &fake);
- }
- entry.clear ();
- listEntry (entry, true);
- }
- }
- }
- else
- {
- if (!assureBox (myBox, true)) return;
-
- kdDebug(7116) << "IMAP4: select returned:" << endl;
- if (selectInfo.recentAvailable ())
- kdDebug(7116) << "Recent: " << selectInfo.recent () << "d" << endl;
- if (selectInfo.countAvailable ())
- kdDebug(7116) << "Count: " << selectInfo.count () << "d" << endl;
- if (selectInfo.unseenAvailable ())
- kdDebug(7116) << "Unseen: " << selectInfo.unseen () << "d" << endl;
- if (selectInfo.uidValidityAvailable ())
- kdDebug(7116) << "uidValidity: " << selectInfo.uidValidity () << "d" << endl;
- if (selectInfo.flagsAvailable ())
- kdDebug(7116) << "Flags: " << selectInfo.flags () << "d" << endl;
- if (selectInfo.permanentFlagsAvailable ())
- kdDebug(7116) << "PermanentFlags: " << selectInfo.permanentFlags () << "d" << endl;
- if (selectInfo.readWriteAvailable ())
- kdDebug(7116) << "Access: " << (selectInfo.readWrite ()? "Read/Write" : "Read only") << endl;
-
-#ifdef USE_VALIDITY
- if (selectInfo.uidValidityAvailable ()
- && selectInfo.uidValidity () != myValidity.toULong ())
- {
- //redirect
- KURL newUrl = _url;
-
- newUrl.setPath ("/" + myBox + ";UIDVALIDITY=" +
- TQString::number(selectInfo.uidValidity ()));
- kdDebug(7116) << "IMAP4::listDir - redirecting to " << newUrl.prettyURL() << endl;
- redirection (newUrl);
-
-
- }
- else
-#endif
- if (selectInfo.count () > 0)
- {
- int stretch = 0;
-
- if (selectInfo.uidNextAvailable ())
- stretch = TQString::number(selectInfo.uidNext ()).length ();
- // kdDebug(7116) << selectInfo.uidNext() << "d used to stretch " << stretch << endl;
- UDSEntry entry;
-
- if (mySequence.isEmpty()) mySequence = "1:*";
-
- bool withSubject = mySection.isEmpty();
- if (mySection.isEmpty()) mySection = "UID RFC822.SIZE ENVELOPE";
-
- bool withFlags = mySection.upper().find("FLAGS") != -1;
- imapCommand *fetch =
- sendCommand (imapCommand::
- clientFetch (mySequence, mySection));
- imapCache *cache;
- do
- {
- while (!parseLoop ()) ;
-
- cache = getLastHandled ();
-
- if (cache && !fetch->isComplete())
- doListEntry (encodedUrl, stretch, cache, withFlags, withSubject);
- }
- while (!fetch->isComplete ());
- entry.clear ();
- listEntry (entry, true);
- }
- }
- }
- if ( !selectInfo.alert().isNull() ) {
- if ( !myBox.isEmpty() ) {
- warning( i18n( "Message from %1 while processing '%2': %3" ).arg( myHost, myBox, selectInfo.alert() ) );
- } else {
- warning( i18n( "Message from %1: %2" ).arg( myHost, TQString(selectInfo.alert()) ) );
- }
- selectInfo.setAlert( 0 );
- }
-
- kdDebug(7116) << "IMAP4Protocol::listDir - Finishing listDir" << endl;
- finished ();
-}
-
-void
-IMAP4Protocol::setHost (const TQString & _host, int _port,
- const TQString & _user, const TQString & _pass)
-{
- if (myHost != _host || myPort != _port || myUser != _user || myPass != _pass)
- { // what's the point of doing 4 string compares to avoid 4 string copies?
- // DF: I guess to avoid calling closeConnection() unnecessarily.
- if (!myHost.isEmpty ())
- closeConnection ();
- myHost = _host;
- if (_port == 0)
- myPort = (mySSL) ? ImapsPort : ImapPort;
- else
- myPort = _port;
- myUser = _user;
- myPass = _pass;
- }
-}
-
-void
-IMAP4Protocol::parseRelay (const TQByteArray & buffer)
-{
- if (relayEnabled) {
- // relay data immediately
- data( buffer );
- mProcessedSize += buffer.size();
- processedSize( mProcessedSize );
- } else if (cacheOutput)
- {
- // collect data
- if ( !outputBuffer.isOpen() ) {
- outputBuffer.open(IO_WriteOnly);
- }
- outputBuffer.at(outputBufferIndex);
- outputBuffer.writeBlock(buffer, buffer.size());
- outputBufferIndex += buffer.size();
- }
-}
-
-void
-IMAP4Protocol::parseRelay (ulong len)
-{
- if (relayEnabled)
- totalSize (len);
-}
-
-
-bool IMAP4Protocol::parseRead(TQByteArray & buffer, ulong len, ulong relay)
-{
- char buf[8192];
- while (buffer.size() < len)
- {
- ssize_t readLen = myRead(buf, TQMIN(len - buffer.size(), sizeof(buf) - 1));
- if (readLen == 0)
- {
- kdDebug(7116) << "parseRead: readLen == 0 - connection broken" << endl;
- error (ERR_CONNECTION_BROKEN, myHost);
- setState(ISTATE_CONNECT);
- closeConnection();
- return FALSE;
- }
- if (relay > buffer.size())
- {
- TQByteArray relayData;
- ssize_t relbuf = relay - buffer.size();
- int currentRelay = TQMIN(relbuf, readLen);
- relayData.setRawData(buf, currentRelay);
- parseRelay(relayData);
- relayData.resetRawData(buf, currentRelay);
- }
- {
- TQBuffer stream (buffer);
- stream.open (IO_WriteOnly);
- stream.at (buffer.size ());
- stream.writeBlock (buf, readLen);
- stream.close ();
- }
- }
- return (buffer.size() == len);
-}
-
-
-bool IMAP4Protocol::parseReadLine (TQByteArray & buffer, ulong relay)
-{
- if (myHost.isEmpty()) return FALSE;
-
- while (true) {
- ssize_t copyLen = 0;
- if (readBufferLen > 0)
- {
- while (copyLen < readBufferLen && readBuffer[copyLen] != '\n') copyLen++;
- if (copyLen < readBufferLen) copyLen++;
- if (relay > 0)
- {
- TQByteArray relayData;
-
- if (copyLen < (ssize_t) relay)
- relay = copyLen;
- relayData.setRawData (readBuffer, relay);
- parseRelay (relayData);
- relayData.resetRawData (readBuffer, relay);
-// kdDebug(7116) << "relayed : " << relay << "d" << endl;
- }
- // append to buffer
- {
- TQBuffer stream (buffer);
-
- stream.open (IO_WriteOnly);
- stream.at (buffer.size ());
- stream.writeBlock (readBuffer, copyLen);
- stream.close ();
-// kdDebug(7116) << "appended " << copyLen << "d got now " << buffer.size() << endl;
- }
-
- readBufferLen -= copyLen;
- if (readBufferLen)
- memmove(readBuffer, &readBuffer[copyLen], readBufferLen);
- if (buffer[buffer.size() - 1] == '\n') return TRUE;
- }
- if (!isConnectionValid())
- {
- kdDebug(7116) << "parseReadLine - connection broken" << endl;
- error (ERR_CONNECTION_BROKEN, myHost);
- setState(ISTATE_CONNECT);
- closeConnection();
- return FALSE;
- }
- if (!waitForResponse( responseTimeout() ))
- {
- error(ERR_SERVER_TIMEOUT, myHost);
- setState(ISTATE_CONNECT);
- closeConnection();
- return FALSE;
- }
- readBufferLen = read(readBuffer, IMAP_BUFFER - 1);
- if (readBufferLen == 0)
- {
- kdDebug(7116) << "parseReadLine: readBufferLen == 0 - connection broken" << endl;
- error (ERR_CONNECTION_BROKEN, myHost);
- setState(ISTATE_CONNECT);
- closeConnection();
- return FALSE;
- }
- }
-}
-
-void
-IMAP4Protocol::setSubURL (const KURL & _url)
-{
- kdDebug(7116) << "IMAP4::setSubURL - " << _url.prettyURL() << endl;
- TDEIO::TCPSlaveBase::setSubURL (_url);
-}
-
-void
-IMAP4Protocol::put (const KURL & _url, int, bool, bool)
-{
- kdDebug(7116) << "IMAP4::put - " << _url.prettyURL() << endl;
-// TDEIO::TCPSlaveBase::put(_url,permissions,overwrite,resume);
- TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
- enum IMAP_TYPE aType =
- parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
-
- // see if it is a box
- if (aType != ITYPE_BOX && aType != ITYPE_DIR_AND_BOX)
- {
- if (aBox[aBox.length () - 1] == '/')
- aBox = aBox.right (aBox.length () - 1);
- imapCommand *cmd = doCommand (imapCommand::clientCreate (aBox));
-
- if (cmd->result () != "OK") {
- error (ERR_COULD_NOT_WRITE, _url.prettyURL());
- completeQueue.removeRef (cmd);
- return;
- }
- completeQueue.removeRef (cmd);
- }
- else
- {
- TQPtrList < TQByteArray > bufferList;
- int length = 0;
-
- int result;
- // Loop until we got 'dataEnd'
- do
- {
- TQByteArray *buffer = new TQByteArray ();
- dataReq (); // Request for data
- result = readData (*buffer);
- if (result > 0)
- {
- bufferList.append (buffer);
- length += result;
- } else {
- delete buffer;
- }
- }
- while (result > 0);
-
- if (result != 0)
- {
- error (ERR_ABORTED, _url.prettyURL());
- return;
- }
-
- imapCommand *cmd =
- sendCommand (imapCommand::clientAppend (aBox, aSection, length));
- while (!parseLoop ()) ;
-
- // see if server is waiting
- if (!cmd->isComplete () && !getContinuation ().isEmpty ())
- {
- bool sendOk = true;
- ulong wrote = 0;
-
- TQByteArray *buffer;
- // send data to server
- while (!bufferList.isEmpty () && sendOk)
- {
- buffer = bufferList.take (0);
-
- sendOk =
- (write (buffer->data (), buffer->size ()) ==
- (ssize_t) buffer->size ());
- wrote += buffer->size ();
- processedSize(wrote);
- delete buffer;
- if (!sendOk)
- {
- error (ERR_CONNECTION_BROKEN, myHost);
- completeQueue.removeRef (cmd);
- setState(ISTATE_CONNECT);
- closeConnection();
- return;
- }
- }
- parseWriteLine ("");
- // Wait until cmd is complete, or connection breaks.
- while (!cmd->isComplete () && getState() != ISTATE_NO)
- parseLoop ();
- if ( getState() == ISTATE_NO ) {
- // TODO KDE4: pass cmd->resultInfo() as third argument.
- // ERR_CONNECTION_BROKEN expects a host, no way to pass details about the problem.
- error( ERR_CONNECTION_BROKEN, myHost );
- completeQueue.removeRef (cmd);
- closeConnection();
- return;
- }
- else if (cmd->result () != "OK") {
- error( ERR_SLAVE_DEFINED, cmd->resultInfo() );
- completeQueue.removeRef (cmd);
- return;
- }
- else
- {
- if (hasCapability("UIDPLUS"))
- {
- TQString uid = cmd->resultInfo();
- if (uid.find("APPENDUID") != -1)
- {
- uid = uid.section(" ", 2, 2);
- uid.truncate(uid.length()-1);
- infoMessage("UID "+uid);
- }
- }
- // MUST reselect to get the new message
- else if (aBox == getCurrentBox ())
- {
- cmd =
- doCommand (imapCommand::
- clientSelect (aBox, !selectInfo.readWrite ()));
- completeQueue.removeRef (cmd);
- }
- }
- }
- else
- {
- //error (ERR_COULD_NOT_WRITE, myHost);
- // Better ship the error message, e.g. "Over Quota"
- error (ERR_SLAVE_DEFINED, cmd->resultInfo());
- completeQueue.removeRef (cmd);
- return;
- }
-
- completeQueue.removeRef (cmd);
- }
-
- finished ();
-}
-
-void
-IMAP4Protocol::mkdir (const KURL & _url, int)
-{
- kdDebug(7116) << "IMAP4::mkdir - " << _url.prettyURL() << endl;
- TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
- parseURL(_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
- kdDebug(7116) << "IMAP4::mkdir - create " << aBox << endl;
- imapCommand *cmd = doCommand (imapCommand::clientCreate(aBox));
-
- if (cmd->result () != "OK")
- {
- kdDebug(7116) << "IMAP4::mkdir - " << cmd->resultInfo() << endl;
- error (ERR_COULD_NOT_MKDIR, _url.prettyURL());
- completeQueue.removeRef (cmd);
- return;
- }
- completeQueue.removeRef (cmd);
-
- // start a new listing to find the type of the folder
- enum IMAP_TYPE type =
- parseURL(_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
- if (type == ITYPE_BOX)
- {
- bool ask = ( aInfo.find( "ASKUSER" ) != -1 );
- if ( ask &&
- messageBox(QuestionYesNo,
- i18n("The following folder will be created on the server: %1 "
- "What do you want to store in this folder?").arg( aBox ),
- i18n("Create Folder"),
- i18n("&Messages"), i18n("&Subfolders")) == KMessageBox::No )
- {
- cmd = doCommand(imapCommand::clientDelete(aBox));
- completeQueue.removeRef (cmd);
- cmd = doCommand(imapCommand::clientCreate(aBox + aDelimiter));
- if (cmd->result () != "OK")
- {
- error (ERR_COULD_NOT_MKDIR, _url.prettyURL());
- completeQueue.removeRef (cmd);
- return;
- }
- completeQueue.removeRef (cmd);
- }
- }
-
- cmd = doCommand(imapCommand::clientSubscribe(aBox));
- completeQueue.removeRef(cmd);
-
- finished ();
-}
-
-void
-IMAP4Protocol::copy (const KURL & src, const KURL & dest, int, bool overwrite)
-{
- kdDebug(7116) << "IMAP4::copy - [" << (overwrite ? "Overwrite" : "NoOverwrite") << "] " << src.prettyURL() << " -> " << dest.prettyURL() << endl;
- TQString sBox, sSequence, sLType, sSection, sValidity, sDelimiter, sInfo;
- TQString dBox, dSequence, dLType, dSection, dValidity, dDelimiter, dInfo;
- enum IMAP_TYPE sType =
- parseURL (src, sBox, sSection, sLType, sSequence, sValidity, sDelimiter, sInfo);
- enum IMAP_TYPE dType =
- parseURL (dest, dBox, dSection, dLType, dSequence, dValidity, dDelimiter, dInfo);
-
- // see if we have to create anything
- if (dType != ITYPE_BOX && dType != ITYPE_DIR_AND_BOX)
- {
- // this might be konqueror
- int sub = dBox.find (sBox);
-
- // might be moving to upper folder
- if (sub > 0)
- {
- KURL testDir = dest;
-
- TQString subDir = dBox.right (dBox.length () - dBox.findRev ('/'));
- TQString topDir = dBox.left (sub);
- testDir.setPath ("/" + topDir);
- dType =
- parseURL (testDir, topDir, dSection, dLType, dSequence, dValidity,
- dDelimiter, dInfo);
-
- kdDebug(7116) << "IMAP4::copy - checking this destination " << topDir << endl;
- // see if this is what the user wants
- if (dType == ITYPE_BOX || dType == ITYPE_DIR_AND_BOX)
- {
- kdDebug(7116) << "IMAP4::copy - assuming this destination " << topDir << endl;
- dBox = topDir;
- }
- else
- {
-
- // maybe if we create a new mailbox
- topDir = "/" + topDir + subDir;
- testDir.setPath (topDir);
- kdDebug(7116) << "IMAP4::copy - checking this destination " << topDir << endl;
- dType =
- parseURL (testDir, topDir, dSection, dLType, dSequence, dValidity,
- dDelimiter, dInfo);
- if (dType != ITYPE_BOX && dType != ITYPE_DIR_AND_BOX)
- {
- // ok then we'll create a mailbox
- imapCommand *cmd = doCommand (imapCommand::clientCreate (topDir));
-
- // on success we'll use it, else we'll just try to create the given dir
- if (cmd->result () == "OK")
- {
- kdDebug(7116) << "IMAP4::copy - assuming this destination " << topDir << endl;
- dType = ITYPE_BOX;
- dBox = topDir;
- }
- else
- {
- completeQueue.removeRef (cmd);
- cmd = doCommand (imapCommand::clientCreate (dBox));
- if (cmd->result () == "OK")
- dType = ITYPE_BOX;
- else
- error (ERR_COULD_NOT_WRITE, dest.prettyURL());
- }
- completeQueue.removeRef (cmd);
- }
- }
-
- }
- }
- if (sType == ITYPE_MSG || sType == ITYPE_BOX || sType == ITYPE_DIR_AND_BOX)
- {
- //select the source box
- if (!assureBox(sBox, true)) return;
- kdDebug(7116) << "IMAP4::copy - " << sBox << " -> " << dBox << endl;
-
- //issue copy command
- imapCommand *cmd =
- doCommand (imapCommand::clientCopy (dBox, sSequence));
- if (cmd->result () != "OK")
- {
- kdError(5006) << "IMAP4::copy - " << cmd->resultInfo() << endl;
- error (ERR_COULD_NOT_WRITE, dest.prettyURL());
- completeQueue.removeRef (cmd);
- return;
- } else {
- if (hasCapability("UIDPLUS"))
- {
- TQString uid = cmd->resultInfo();
- if (uid.find("COPYUID") != -1)
- {
- uid = uid.section(" ", 2, 3);
- uid.truncate(uid.length()-1);
- infoMessage("UID "+uid);
- }
- }
- }
- completeQueue.removeRef (cmd);
- }
- else
- {
- error (ERR_ACCESS_DENIED, src.prettyURL());
- return;
- }
- finished ();
-}
-
-void
-IMAP4Protocol::del (const KURL & _url, bool isFile)
-{
- kdDebug(7116) << "IMAP4::del - [" << (isFile ? "File" : "NoFile") << "] " << _url.prettyURL() << endl;
- TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
- enum IMAP_TYPE aType =
- parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
-
- switch (aType)
- {
- case ITYPE_BOX:
- case ITYPE_DIR_AND_BOX:
- if (!aSequence.isEmpty ())
- {
- if (aSequence == "*")
- {
- if (!assureBox (aBox, false)) return;
- imapCommand *cmd = doCommand (imapCommand::clientExpunge ());
- if (cmd->result () != "OK") {
- error (ERR_CANNOT_DELETE, _url.prettyURL());
- completeQueue.removeRef (cmd);
- return;
- }
- completeQueue.removeRef (cmd);
- }
- else
- {
- // if open for read/write
- if (!assureBox (aBox, false)) return;
- imapCommand *cmd =
- doCommand (imapCommand::
- clientStore (aSequence, "+FLAGS.SILENT", "\\DELETED"));
- if (cmd->result () != "OK") {
- error (ERR_CANNOT_DELETE, _url.prettyURL());
- completeQueue.removeRef (cmd);
- return;
- }
- completeQueue.removeRef (cmd);
- }
- }
- else
- {
- if (getCurrentBox() == aBox)
- {
- imapCommand *cmd = doCommand(imapCommand::clientClose());
- completeQueue.removeRef(cmd);
- setState(ISTATE_LOGIN);
- }
- // We unsubscribe, otherwise we get ghost folders on UW-IMAP
- imapCommand *cmd = doCommand(imapCommand::clientUnsubscribe(aBox));
- completeQueue.removeRef(cmd);
- cmd = doCommand(imapCommand::clientDelete (aBox));
- // If this doesn't work, we try to empty the mailbox first
- if (cmd->result () != "OK")
- {
- completeQueue.removeRef(cmd);
- if (!assureBox(aBox, false)) return;
- bool stillOk = true;
- if (stillOk)
- {
- imapCommand *cmd = doCommand(
- imapCommand::clientStore("1:*", "+FLAGS.SILENT", "\\DELETED"));
- if (cmd->result () != "OK") stillOk = false;
- completeQueue.removeRef(cmd);
- }
- if (stillOk)
- {
- imapCommand *cmd = doCommand(imapCommand::clientClose());
- if (cmd->result () != "OK") stillOk = false;
- completeQueue.removeRef(cmd);
- setState(ISTATE_LOGIN);
- }
- if (stillOk)
- {
- imapCommand *cmd = doCommand (imapCommand::clientDelete(aBox));
- if (cmd->result () != "OK") stillOk = false;
- completeQueue.removeRef(cmd);
- }
- if (!stillOk)
- {
- error (ERR_COULD_NOT_RMDIR, _url.prettyURL());
- return;
- }
- } else {
- completeQueue.removeRef (cmd);
- }
- }
- break;
-
- case ITYPE_DIR:
- {
- imapCommand *cmd = doCommand (imapCommand::clientDelete (aBox));
- if (cmd->result () != "OK") {
- error (ERR_COULD_NOT_RMDIR, _url.prettyURL());
- completeQueue.removeRef (cmd);
- return;
- }
- completeQueue.removeRef (cmd);
- }
- break;
-
- case ITYPE_MSG:
- {
- // if open for read/write
- if (!assureBox (aBox, false)) return;
- imapCommand *cmd =
- doCommand (imapCommand::
- clientStore (aSequence, "+FLAGS.SILENT", "\\DELETED"));
- if (cmd->result () != "OK") {
- error (ERR_CANNOT_DELETE, _url.prettyURL());
- completeQueue.removeRef (cmd);
- return;
- }
- completeQueue.removeRef (cmd);
- }
- break;
-
- case ITYPE_UNKNOWN:
- case ITYPE_ATTACH:
- error (ERR_CANNOT_DELETE, _url.prettyURL());
- break;
- }
- finished ();
-}
-
-/*
- * Copy a mail: data = 'C' + srcURL (KURL) + destURL (KURL)
- * Capabilities: data = 'c'. Result shipped in infoMessage() signal
- * No-op: data = 'N'
- * Namespace: data = 'n'. Result shipped in infoMessage() signal
- * The format is: section=namespace=delimiter
- * Note that the namespace can be empty
- * Unsubscribe: data = 'U' + URL (KURL)
- * Subscribe: data = 'u' + URL (KURL)
- * Change the status: data = 'S' + URL (KURL) + Flags (TQCString)
- * ACL commands: data = 'A' + command + URL (KURL) + command-dependent args
- * AnnotateMore commands: data = 'M' + 'G'et/'S'et + URL + entry + command-dependent args
- * Search: data = 'E' + URL (KURL)
- * Quota commands: data = 'Q' + 'R'oot/'G'et/'S'et + URL + entry + command-dependent args
- * Custom command: data = 'X' + 'N'ormal/'E'xtended + command + command-dependent args
- */
-void
-IMAP4Protocol::special (const TQByteArray & aData)
-{
- kdDebug(7116) << "IMAP4Protocol::special" << endl;
- if (!makeLogin()) return;
-
- TQDataStream stream(aData, IO_ReadOnly);
-
- int tmp;
- stream >> tmp;
-
- switch (tmp) {
- case 'C':
- {
- // copy
- KURL src;
- KURL dest;
- stream >> src >> dest;
- copy(src, dest, 0, FALSE);
- break;
- }
- case 'c':
- {
- // capabilities
- infoMessage(imapCapabilities.join(" "));
- finished();
- break;
- }
- case 'N':
- {
- // NOOP
- imapCommand *cmd = doCommand(imapCommand::clientNoop());
- if (cmd->result () != "OK")
- {
- kdDebug(7116) << "NOOP did not succeed - connection broken" << endl;
- completeQueue.removeRef (cmd);
- error (ERR_CONNECTION_BROKEN, myHost);
- return;
- }
- completeQueue.removeRef (cmd);
- finished();
- break;
- }
- case 'n':
- {
- // namespace in the form "section=namespace=delimiter"
- // entries are separated by ,
- infoMessage( imapNamespaces.join(",") );
- finished();
- break;
- }
- case 'U':
- {
- // unsubscribe
- KURL _url;
- stream >> _url;
- TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
- parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
- imapCommand *cmd = doCommand(imapCommand::clientUnsubscribe(aBox));
- if (cmd->result () != "OK")
- {
- completeQueue.removeRef (cmd);
- error(ERR_SLAVE_DEFINED, i18n("Unsubscribe of folder %1 "
- "failed. The server returned: %2")
- .arg(_url.prettyURL())
- .arg(cmd->resultInfo()));
- return;
- }
- completeQueue.removeRef (cmd);
- finished();
- break;
- }
- case 'u':
- {
- // subscribe
- KURL _url;
- stream >> _url;
- TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
- parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
- imapCommand *cmd = doCommand(imapCommand::clientSubscribe(aBox));
- if (cmd->result () != "OK")
- {
- completeQueue.removeRef (cmd);
- error(ERR_SLAVE_DEFINED, i18n("Subscribe of folder %1 "
- "failed. The server returned: %2")
- .arg(_url.prettyURL())
- .arg(cmd->resultInfo()));
- return;
- }
- completeQueue.removeRef (cmd);
- finished();
- break;
- }
- case 'A':
- {
- // acl
- int cmd;
- stream >> cmd;
- if ( hasCapability( "ACL" ) ) {
- specialACLCommand( cmd, stream );
- } else {
- error( ERR_UNSUPPORTED_ACTION, "ACL" );
- }
- break;
- }
- case 'M':
- {
- // annotatemore
- int cmd;
- stream >> cmd;
- if ( hasCapability( "ANNOTATEMORE" ) ) {
- specialAnnotateMoreCommand( cmd, stream );
- } else {
- error( ERR_UNSUPPORTED_ACTION, "ANNOTATEMORE" );
- }
- break;
- }
- case 'Q':
- {
- // quota
- int cmd;
- stream >> cmd;
- if ( hasCapability( "QUOTA" ) ) {
- specialQuotaCommand( cmd, stream );
- } else {
- error( ERR_UNSUPPORTED_ACTION, "QUOTA" );
- }
- break;
- }
- case 'S':
- {
- // status
- KURL _url;
- TQCString newFlags;
- stream >> _url >> newFlags;
-
- TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
- parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
- if (!assureBox(aBox, false)) return;
-
- // make sure we only touch flags we know
- TQCString knownFlags = "\\SEEN \\ANSWERED \\FLAGGED \\DRAFT";
- const imapInfo info = getSelected();
- if ( info.permanentFlagsAvailable() && (info.permanentFlags() & imapInfo::User) ) {
- knownFlags += " KMAILFORWARDED KMAILTODO KMAILWATCHED KMAILIGNORED $FORWARDED $TODO $WATCHED $IGNORED";
- }
-
- imapCommand *cmd = doCommand (imapCommand::
- clientStore (aSequence, "-FLAGS.SILENT", knownFlags));
- if (cmd->result () != "OK")
- {
- completeQueue.removeRef (cmd);
- error(ERR_COULD_NOT_WRITE, i18n("Changing the flags of message %1 "
- "failed.").arg(_url.prettyURL()));
- return;
- }
- completeQueue.removeRef (cmd);
- if (!newFlags.isEmpty())
- {
- cmd = doCommand (imapCommand::
- clientStore (aSequence, "+FLAGS.SILENT", newFlags));
- if (cmd->result () != "OK")
- {
- completeQueue.removeRef (cmd);
- error(ERR_COULD_NOT_WRITE, i18n("Changing the flags of message %1 "
- "failed.").arg(_url.prettyURL()));
- return;
- }
- completeQueue.removeRef (cmd);
- }
- finished();
- break;
- }
- case 's':
- {
- // seen
- KURL _url;
- bool seen;
- TQCString newFlags;
- stream >> _url >> seen;
-
- TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
- parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
- if ( !assureBox(aBox, true) ) // read-only because changing SEEN should be possible even then
- return;
-
- imapCommand *cmd;
- if ( seen )
- cmd = doCommand( imapCommand::clientStore( aSequence, "+FLAGS.SILENT", "\\SEEN" ) );
- else
- cmd = doCommand( imapCommand::clientStore( aSequence, "-FLAGS.SILENT", "\\SEEN" ) );
-
- if (cmd->result () != "OK")
- {
- completeQueue.removeRef (cmd);
- error(ERR_COULD_NOT_WRITE, i18n("Changing the flags of message %1 "
- "failed.").arg(_url.prettyURL()));
- return;
- }
- completeQueue.removeRef (cmd);
- finished();
- break;
- }
-
- case 'E':
- {
- // search
- specialSearchCommand( stream );
- break;
- }
- case 'X':
- {
- // custom command
- specialCustomCommand( stream );
- break;
- }
- default:
- kdWarning(7116) << "Unknown command in special(): " << tmp << endl;
- error( ERR_UNSUPPORTED_ACTION, TQString(TQChar(tmp)) );
- break;
- }
-}
-
-void
-IMAP4Protocol::specialACLCommand( int command, TQDataStream& stream )
-{
- // All commands start with the URL to the box
- KURL _url;
- stream >> _url;
- TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
- parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
-
- switch( command ) {
- case 'S': // SETACL
- {
- TQString user, acl;
- stream >> user >> acl;
- kdDebug(7116) << "SETACL " << aBox << " " << user << " " << acl << endl;
- imapCommand *cmd = doCommand(imapCommand::clientSetACL(aBox, user, acl));
- if (cmd->result () != "OK")
- {
- error(ERR_SLAVE_DEFINED, i18n("Setting the Access Control List on folder %1 "
- "for user %2 failed. The server returned: %3")
- .arg(_url.prettyURL())
- .arg(user)
- .arg(cmd->resultInfo()));
- return;
- }
- completeQueue.removeRef (cmd);
- finished();
- break;
- }
- case 'D': // DELETEACL
- {
- TQString user;
- stream >> user;
- kdDebug(7116) << "DELETEACL " << aBox << " " << user << endl;
- imapCommand *cmd = doCommand(imapCommand::clientDeleteACL(aBox, user));
- if (cmd->result () != "OK")
- {
- error(ERR_SLAVE_DEFINED, i18n("Deleting the Access Control List on folder %1 "
- "for user %2 failed. The server returned: %3")
- .arg(_url.prettyURL())
- .arg(user)
- .arg(cmd->resultInfo()));
- return;
- }
- completeQueue.removeRef (cmd);
- finished();
- break;
- }
- case 'G': // GETACL
- {
- kdDebug(7116) << "GETACL " << aBox << endl;
- imapCommand *cmd = doCommand(imapCommand::clientGetACL(aBox));
- if (cmd->result () != "OK")
- {
- error(ERR_SLAVE_DEFINED, i18n("Retrieving the Access Control List on folder %1 "
- "failed. The server returned: %2")
- .arg(_url.prettyURL())
- .arg(cmd->resultInfo()));
- return;
- }
- // Returning information to the application from a special() command isn't easy.
- // I'm reusing the infoMessage trick seen above (for capabilities), but this
- // limits me to a string instead of a stringlist. Using DQUOTE as separator,
- // because it's forbidden in userids by rfc3501
- kdDebug(7116) << getResults() << endl;
- infoMessage(getResults().join( "\"" ));
- finished();
- break;
- }
- case 'L': // LISTRIGHTS
- {
- // Do we need this one? It basically shows which rights are tied together, but that's all?
- error( ERR_UNSUPPORTED_ACTION, TQString(TQChar(command)) );
- break;
- }
- case 'M': // MYRIGHTS
- {
- kdDebug(7116) << "MYRIGHTS " << aBox << endl;
- imapCommand *cmd = doCommand(imapCommand::clientMyRights(aBox));
- if (cmd->result () != "OK")
- {
- error(ERR_SLAVE_DEFINED, i18n("Retrieving the Access Control List on folder %1 "
- "failed. The server returned: %2")
- .arg(_url.prettyURL())
- .arg(cmd->resultInfo()));
- return;
- }
- TQStringList lst = getResults();
- kdDebug(7116) << "myrights results: " << lst << endl;
- if ( !lst.isEmpty() ) {
- Q_ASSERT( lst.count() == 1 );
- infoMessage( lst.first() );
- }
- finished();
- break;
- }
- default:
- kdWarning(7116) << "Unknown special ACL command:" << command << endl;
- error( ERR_UNSUPPORTED_ACTION, TQString(TQChar(command)) );
- }
-}
-
-void
-IMAP4Protocol::specialSearchCommand( TQDataStream& stream )
-{
- kdDebug(7116) << "IMAP4Protocol::specialSearchCommand" << endl;
- KURL _url;
- stream >> _url;
- TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
- parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
- if (!assureBox(aBox, true)) return;
-
- imapCommand *cmd = doCommand (imapCommand::clientSearch( aSection ));
- if (cmd->result () != "OK")
- {
- error(ERR_SLAVE_DEFINED, i18n("Searching of folder %1 "
- "failed. The server returned: %2")
- .arg(aBox)
- .arg(cmd->resultInfo()));
- return;
- }
- completeQueue.removeRef(cmd);
- TQStringList lst = getResults();
- kdDebug(7116) << "IMAP4Protocol::specialSearchCommand '" << aSection <<
- "' returns " << lst << endl;
- infoMessage( lst.join( " " ) );
-
- finished();
-}
-
-void
-IMAP4Protocol::specialCustomCommand( TQDataStream& stream )
-{
- kdDebug(7116) << "IMAP4Protocol::specialCustomCommand" << endl;
-
- TQString command, arguments;
- int type;
- stream >> type;
- stream >> command >> arguments;
-
- /**
- * In 'normal' mode we send the command with all information in one go
- * and retrieve the result.
- */
- if ( type == 'N' ) {
- kdDebug(7116) << "IMAP4Protocol::specialCustomCommand: normal mode" << endl;
- imapCommand *cmd = doCommand (imapCommand::clientCustom( command, arguments ));
- if (cmd->result () != "OK")
- {
- error(ERR_SLAVE_DEFINED, i18n("Custom command %1:%2 "
- "failed. The server returned: %3")
- .arg(command)
- .arg(arguments)
- .arg(cmd->resultInfo()));
- return;
- }
- completeQueue.removeRef(cmd);
- TQStringList lst = getResults();
- kdDebug(7116) << "IMAP4Protocol::specialCustomCommand '" << command <<
- ":" << arguments <<
- "' returns " << lst << endl;
- infoMessage( lst.join( " " ) );
-
- finished();
- } else
- /**
- * In 'extended' mode we send a first header and push the data of the request in
- * streaming mode.
- */
- if ( type == 'E' ) {
- kdDebug(7116) << "IMAP4Protocol::specialCustomCommand: extended mode" << endl;
- imapCommand *cmd = sendCommand (imapCommand::clientCustom( command, TQString() ));
- while ( !parseLoop () ) ;
-
- // see if server is waiting
- if (!cmd->isComplete () && !getContinuation ().isEmpty ())
- {
- const TQByteArray buffer = arguments.utf8();
-
- // send data to server
- bool sendOk = (write (buffer.data (), buffer.size ()) == (ssize_t)buffer.size ());
- processedSize( buffer.size() );
-
- if ( !sendOk ) {
- error ( ERR_CONNECTION_BROKEN, myHost );
- completeQueue.removeRef ( cmd );
- setState(ISTATE_CONNECT);
- closeConnection();
- return;
- }
- }
- parseWriteLine ("");
-
- do
- {
- while (!parseLoop ()) ;
- }
- while (!cmd->isComplete ());
-
- completeQueue.removeRef (cmd);
-
- TQStringList lst = getResults();
- kdDebug(7116) << "IMAP4Protocol::specialCustomCommand: returns " << lst << endl;
- infoMessage( lst.join( " " ) );
-
- finished ();
- }
-}
-
-void
-IMAP4Protocol::specialAnnotateMoreCommand( int command, TQDataStream& stream )
-{
- // All commands start with the URL to the box
- KURL _url;
- stream >> _url;
- TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
- parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
-
- switch( command ) {
- case 'S': // SETANNOTATION
- {
- // Params:
- // KURL URL of the mailbox
- // TQString entry (should be an actual entry name, no % or *; empty for server entries)
- // TQMap<TQString,TQString> attributes (name and value)
- TQString entry;
- TQMap<TQString, TQString> attributes;
- stream >> entry >> attributes;
- kdDebug(7116) << "SETANNOTATION " << aBox << " " << entry << " " << attributes.count() << " attributes" << endl;
- imapCommand *cmd = doCommand(imapCommand::clientSetAnnotation(aBox, entry, attributes));
- if (cmd->result () != "OK")
- {
- error(ERR_SLAVE_DEFINED, i18n("Setting the annotation %1 on folder %2 "
- " failed. The server returned: %3")
- .arg(entry)
- .arg(_url.prettyURL())
- .arg(cmd->resultInfo()));
- return;
- }
- completeQueue.removeRef (cmd);
- finished();
- break;
- }
- case 'G': // GETANNOTATION.
- {
- // Params:
- // KURL URL of the mailbox
- // TQString entry (should be an actual entry name, no % or *; empty for server entries)
- // TQStringList attributes (list of attributes to be retrieved, possibly with % or *)
- TQString entry;
- TQStringList attributeNames;
- stream >> entry >> attributeNames;
- kdDebug(7116) << "GETANNOTATION " << aBox << " " << entry << " " << attributeNames << endl;
- imapCommand *cmd = doCommand(imapCommand::clientGetAnnotation(aBox, entry, attributeNames));
- if (cmd->result () != "OK")
- {
- error(ERR_SLAVE_DEFINED, i18n("Retrieving the annotation %1 on folder %2 "
- "failed. The server returned: %3")
- .arg(entry)
- .arg(_url.prettyURL())
- .arg(cmd->resultInfo()));
- return;
- }
- // Returning information to the application from a special() command isn't easy.
- // I'm reusing the infoMessage trick seen above (for capabilities and acls), but this
- // limits me to a string instead of a stringlist. Let's use \r as separator.
- kdDebug(7116) << getResults() << endl;
- infoMessage(getResults().join( "\r" ));
- finished();
- break;
- }
- default:
- kdWarning(7116) << "Unknown special annotate command:" << command << endl;
- error( ERR_UNSUPPORTED_ACTION, TQString(TQChar(command)) );
- }
-}
-
-void
-IMAP4Protocol::specialQuotaCommand( int command, TQDataStream& stream )
-{
- // All commands start with the URL to the box
- KURL _url;
- stream >> _url;
- TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
- parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
-
- switch( command ) {
- case 'R': // GETQUOTAROOT
- {
- kdDebug(7116) << "QUOTAROOT " << aBox << endl;
- imapCommand *cmd = doCommand(imapCommand::clientGetQuotaroot( aBox ) );
- if (cmd->result () != "OK")
- {
- error(ERR_SLAVE_DEFINED, i18n("Retrieving the quota root information on folder %1 "
- "failed. The server returned: %2")
- .arg(_url.prettyURL())
- .arg(cmd->resultInfo()));
- return;
- }
- infoMessage(getResults().join( "\r" ));
- finished();
- break;
- }
- case 'G': // GETQUOTA
- {
- kdDebug(7116) << "GETQUOTA command" << endl;
- kdWarning(7116) << "UNIMPLEMENTED" << endl;
- break;
- }
- case 'S': // SETQUOTA
- {
- kdDebug(7116) << "SETQUOTA command" << endl;
- kdWarning(7116) << "UNIMPLEMENTED" << endl;
- break;
- }
- default:
- kdWarning(7116) << "Unknown special quota command:" << command << endl;
- error( ERR_UNSUPPORTED_ACTION, TQString(TQChar(command)) );
- }
-}
-
-void
-IMAP4Protocol::rename (const KURL & src, const KURL & dest, bool overwrite)
-{
- kdDebug(7116) << "IMAP4::rename - [" << (overwrite ? "Overwrite" : "NoOverwrite") << "] " << src.prettyURL() << " -> " << dest.prettyURL() << endl;
- TQString sBox, sSequence, sLType, sSection, sValidity, sDelimiter, sInfo;
- TQString dBox, dSequence, dLType, dSection, dValidity, dDelimiter, dInfo;
- enum IMAP_TYPE sType =
- parseURL (src, sBox, sSection, sLType, sSequence, sValidity, sDelimiter, sInfo, false);
- enum IMAP_TYPE dType =
- parseURL (dest, dBox, dSection, dLType, dSequence, dValidity, dDelimiter, dInfo, false);
-
- if (dType == ITYPE_UNKNOWN)
- {
- switch (sType)
- {
- case ITYPE_BOX:
- case ITYPE_DIR:
- case ITYPE_DIR_AND_BOX:
- {
- if (getState() == ISTATE_SELECT && sBox == getCurrentBox())
- {
- kdDebug(7116) << "IMAP4::rename - close " << getCurrentBox() << endl;
- // mailbox can only be renamed if it is closed
- imapCommand *cmd = doCommand (imapCommand::clientClose());
- bool ok = cmd->result() == "OK";
- completeQueue.removeRef(cmd);
- if (!ok)
- {
- kdWarning(7116) << "Unable to close mailbox!" << endl;
- error(ERR_CANNOT_RENAME, src.path());
- return;
- }
- setState(ISTATE_LOGIN);
- }
- imapCommand *cmd = doCommand (imapCommand::clientRename (sBox, dBox));
- if (cmd->result () != "OK") {
- error (ERR_CANNOT_RENAME, src.path());
- completeQueue.removeRef (cmd);
- return;
- }
- completeQueue.removeRef (cmd);
- }
- break;
-
- case ITYPE_MSG:
- case ITYPE_ATTACH:
- case ITYPE_UNKNOWN:
- error (ERR_CANNOT_RENAME, src.path());
- break;
- }
- }
- else
- {
- error (ERR_CANNOT_RENAME, src.path());
- return;
- }
- finished ();
-}
-
-void
-IMAP4Protocol::slave_status ()
-{
- bool connected = (getState() != ISTATE_NO) && isConnectionValid();
- kdDebug(7116) << "IMAP4::slave_status " << connected << endl;
- slaveStatus ( connected ? myHost : TQString(), connected );
-}
-
-void
-IMAP4Protocol::dispatch (int command, const TQByteArray & data)
-{
- kdDebug(7116) << "IMAP4::dispatch - command=" << command << endl;
- TDEIO::TCPSlaveBase::dispatch (command, data);
-}
-
-void
-IMAP4Protocol::stat (const KURL & _url)
-{
- kdDebug(7116) << "IMAP4::stat - " << _url.prettyURL() << endl;
- TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
- // parseURL with caching
- enum IMAP_TYPE aType =
- parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter,
- aInfo, true);
-
- UDSEntry entry;
- UDSAtom atom;
-
- atom.m_uds = UDS_NAME;
- atom.m_str = aBox;
- entry.append (atom);
-
- if (!aSection.isEmpty())
- {
- if (getState() == ISTATE_SELECT && aBox == getCurrentBox())
- {
- imapCommand *cmd = doCommand (imapCommand::clientClose());
- bool ok = cmd->result() == "OK";
- completeQueue.removeRef(cmd);
- if (!ok)
- {
- error(ERR_COULD_NOT_STAT, aBox);
- return;
- }
- setState(ISTATE_LOGIN);
- }
- bool ok = false;
- TQString cmdInfo;
- if (aType == ITYPE_MSG || aType == ITYPE_ATTACH)
- ok = true;
- else
- {
- imapCommand *cmd = doCommand(imapCommand::clienStatus(aBox, aSection));
- ok = cmd->result() == "OK";
- cmdInfo = cmd->resultInfo();
- completeQueue.removeRef(cmd);
- }
- if (!ok)
- {
- bool found = false;
- imapCommand *cmd = doCommand (imapCommand::clientList ("", aBox));
- if (cmd->result () == "OK")
- {
- for (TQValueListIterator < imapList > it = listResponses.begin ();
- it != listResponses.end (); ++it)
- {
- if (aBox == (*it).name ()) found = true;
- }
- }
- completeQueue.removeRef (cmd);
- if (found)
- error(ERR_COULD_NOT_STAT, aBox);
- else
- error(TDEIO::ERR_DOES_NOT_EXIST, aBox);
- return;
- }
- if ((aSection == "UIDNEXT" && geStatus().uidNextAvailable())
- || (aSection == "UNSEEN" && geStatus().unseenAvailable()))
- {
- atom.m_uds = UDS_SIZE;
- atom.m_str = TQString();
- atom.m_long = (aSection == "UIDNEXT") ? geStatus().uidNext()
- : geStatus().unseen();
- entry.append(atom);
- }
- } else
- if (aType == ITYPE_BOX || aType == ITYPE_DIR_AND_BOX || aType == ITYPE_MSG ||
- aType == ITYPE_ATTACH)
- {
- ulong validity = 0;
- // see if the box is already in select/examine state
- if (aBox == getCurrentBox ())
- validity = selectInfo.uidValidity ();
- else
- {
- // do a status lookup on the box
- // only do this if the box is not selected
- // the server might change the validity for new select/examine
- imapCommand *cmd =
- doCommand (imapCommand::clienStatus (aBox, "UIDVALIDITY"));
- completeQueue.removeRef (cmd);
- validity = geStatus ().uidValidity ();
- }
- validity = 0; // temporary
-
- if (aType == ITYPE_BOX || aType == ITYPE_DIR_AND_BOX)
- {
- // has no or an invalid uidvalidity
- if (validity > 0 && validity != aValidity.toULong ())
- {
- //redirect
- KURL newUrl = _url;
-
- newUrl.setPath ("/" + aBox + ";UIDVALIDITY=" +
- TQString::number(validity));
- kdDebug(7116) << "IMAP4::stat - redirecting to " << newUrl.prettyURL() << endl;
- redirection (newUrl);
- }
- }
- else if (aType == ITYPE_MSG || aType == ITYPE_ATTACH)
- {
- //must determine if this message exists
- //cause konqueror will check this on paste operations
-
- // has an invalid uidvalidity
- // or no messages in box
- if (validity > 0 && validity != aValidity.toULong ())
- {
- aType = ITYPE_UNKNOWN;
- kdDebug(7116) << "IMAP4::stat - url has invalid validity [" << validity << "d] " << _url.prettyURL() << endl;
- }
- }
- }
-
- atom.m_uds = UDS_MIME_TYPE;
- atom.m_str = getMimeType (aType);
- entry.append (atom);
-
- kdDebug(7116) << "IMAP4: stat: " << atom.m_str << endl;
- switch (aType)
- {
- case ITYPE_DIR:
- atom.m_uds = UDS_FILE_TYPE;
- atom.m_str = TQString();
- atom.m_long = S_IFDIR;
- entry.append (atom);
- break;
-
- case ITYPE_BOX:
- case ITYPE_DIR_AND_BOX:
- atom.m_uds = UDS_FILE_TYPE;
- atom.m_str = TQString();
- atom.m_long = S_IFDIR;
- entry.append (atom);
- break;
-
- case ITYPE_MSG:
- case ITYPE_ATTACH:
- atom.m_uds = UDS_FILE_TYPE;
- atom.m_str = TQString();
- atom.m_long = S_IFREG;
- entry.append (atom);
- break;
-
- case ITYPE_UNKNOWN:
- error (ERR_DOES_NOT_EXIST, _url.prettyURL());
- break;
- }
-
- statEntry (entry);
- kdDebug(7116) << "IMAP4::stat - Finishing stat" << endl;
- finished ();
-}
-
-void IMAP4Protocol::openConnection()
-{
- if (makeLogin()) connected();
-}
-
-void IMAP4Protocol::closeConnection()
-{
- if (getState() == ISTATE_NO) return;
- if (getState() == ISTATE_SELECT && metaData("expunge") == "auto")
- {
- imapCommand *cmd = doCommand (imapCommand::clientExpunge());
- completeQueue.removeRef (cmd);
- }
- if (getState() != ISTATE_CONNECT)
- {
- imapCommand *cmd = doCommand (imapCommand::clientLogout());
- completeQueue.removeRef (cmd);
- }
- closeDescriptor();
- setState(ISTATE_NO);
- completeQueue.clear();
- sentQueue.clear();
- lastHandled = 0;
- currentBox = TQString();
- readBufferLen = 0;
-}
-
-bool IMAP4Protocol::makeLogin ()
-{
- if (getState () == ISTATE_LOGIN || getState () == ISTATE_SELECT)
- return true;
-
- kdDebug(7116) << "IMAP4::makeLogin - checking login" << endl;
- bool alreadyConnected = getState() == ISTATE_CONNECT;
- kdDebug(7116) << "IMAP4::makeLogin - alreadyConnected " << alreadyConnected << endl;
- if (alreadyConnected || connectToHost (myHost.latin1(), myPort))
- {
-// fcntl (m_iSock, F_SETFL, (fcntl (m_iSock, F_GETFL) | O_NDELAY));
-
- setState(ISTATE_CONNECT);
-
- myAuth = metaData("auth");
- myTLS = metaData("tls");
- kdDebug(7116) << "myAuth: " << myAuth << endl;
-
- imapCommand *cmd;
-
- unhandled.clear ();
- if (!alreadyConnected) while (!parseLoop ()) ; //get greeting
- TQString greeting;
- if (!unhandled.isEmpty()) greeting = unhandled.first().stripWhiteSpace();
- unhandled.clear (); //get rid of it
- cmd = doCommand (new imapCommand ("CAPABILITY", ""));
-
- kdDebug(7116) << "IMAP4: setHost: capability" << endl;
- for (TQStringList::Iterator it = imapCapabilities.begin ();
- it != imapCapabilities.end (); ++it)
- {
- kdDebug(7116) << "'" << (*it) << "'" << endl;
- }
- completeQueue.removeRef (cmd);
-
- if (!hasCapability("IMAP4") && !hasCapability("IMAP4rev1"))
- {
- error(ERR_COULD_NOT_LOGIN, i18n("The server %1 supports neither "
- "IMAP4 nor IMAP4rev1.\nIt identified itself with: %2")
- .arg(myHost).arg(greeting));
- closeConnection();
- return false;
- }
-
- if (metaData("nologin") == "on") return TRUE;
-
- if (myTLS == "on" && !hasCapability(TQString("STARTTLS")))
- {
- error(ERR_COULD_NOT_LOGIN, i18n("The server does not support TLS.\n"
- "Disable this security feature to connect unencrypted."));
- closeConnection();
- return false;
- }
- if ((myTLS == "on" || (canUseTLS() && myTLS != "off")) &&
- hasCapability(TQString("STARTTLS")))
- {
- imapCommand *cmd = doCommand (imapCommand::clientStartTLS());
- if (cmd->result () == "OK")
- {
- completeQueue.removeRef(cmd);
- int tlsrc = startTLS();
- if (tlsrc == 1)
- {
- kdDebug(7116) << "TLS mode has been enabled." << endl;
- imapCommand *cmd2 = doCommand (new imapCommand ("CAPABILITY", ""));
- for (TQStringList::Iterator it = imapCapabilities.begin ();
- it != imapCapabilities.end (); ++it)
- {
- kdDebug(7116) << "'" << (*it) << "'" << endl;
- }
- completeQueue.removeRef (cmd2);
- } else {
- kdWarning(7116) << "TLS mode setup has failed. Aborting." << endl;
- error (ERR_COULD_NOT_LOGIN, i18n("Starting TLS failed."));
- closeConnection();
- return false;
- }
- } else completeQueue.removeRef(cmd);
- }
-
- if (myAuth.isEmpty () || myAuth == "*") {
- if (hasCapability (TQString ("LOGINDISABLED"))) {
- error (ERR_COULD_NOT_LOGIN, i18n("LOGIN is disabled by the server."));
- closeConnection();
- return false;
- }
- }
- else {
- if (!hasCapability (TQString ("AUTH=") + myAuth)) {
- error (ERR_COULD_NOT_LOGIN, i18n("The authentication method %1 is not "
- "supported by the server.").arg(myAuth));
- closeConnection();
- return false;
- }
- }
-
- if ( greeting.contains( TQRegExp( "Cyrus IMAP4 v2.1" ) ) ) {
- removeCapability( "ANNOTATEMORE" );
- }
-
- // starting from Cyrus IMAP 2.3.9, shared seen flags are available
- TQRegExp regExp( "Cyrus\\sIMAP[4]{0,1}\\sv(\\d+)\\.(\\d+)\\.(\\d+)", false );
- if ( regExp.search( greeting ) >= 0 ) {
- const int major = regExp.cap( 1 ).toInt();
- const int minor = regExp.cap( 2 ).toInt();
- const int patch = regExp.cap( 3 ).toInt();
- if ( major > 2 || (major == 2 && (minor > 3 || (minor == 3 && patch > 9))) ) {
- kdDebug(7116) << k_funcinfo << "Cyrus IMAP >= 2.3.9 detected, enabling shared seen flag support" << endl;
- imapCapabilities.append( "x-kmail-sharedseen" );
- }
- }
-
- kdDebug(7116) << "IMAP4::makeLogin - attempting login" << endl;
-
- TDEIO::AuthInfo authInfo;
- authInfo.username = myUser;
- authInfo.password = myPass;
- authInfo.prompt = i18n ("Username and password for your IMAP account:");
-
- kdDebug(7116) << "IMAP4::makeLogin - open_PassDlg said user=" << myUser << " pass=xx" << endl;
-
- TQString resultInfo;
- if (myAuth.isEmpty () || myAuth == "*")
- {
- if (myUser.isEmpty () || myPass.isEmpty ()) {
- if(openPassDlg (authInfo)) {
- myUser = authInfo.username;
- myPass = authInfo.password;
- }
- }
- if (!clientLogin (myUser, myPass, resultInfo))
- error(TDEIO::ERR_COULD_NOT_AUTHENTICATE, i18n("Unable to login. Probably the "
- "password is wrong.\nThe server %1 replied:\n%2").arg(myHost).arg(resultInfo));
- }
- else
- {
-#ifdef HAVE_LIBSASL2
- if (!clientAuthenticate (this, authInfo, myHost, myAuth, mySSL, resultInfo))
- error(TDEIO::ERR_COULD_NOT_AUTHENTICATE, i18n("Unable to authenticate via %1.\n"
- "The server %2 replied:\n%3").arg(myAuth).arg(myHost).arg(resultInfo));
- else {
- myUser = authInfo.username;
- myPass = authInfo.password;
- }
-#else
- error(TDEIO::ERR_COULD_NOT_LOGIN, i18n("SASL authentication is not compiled into tdeio_imap4."));
-#endif
- }
- if ( hasCapability("NAMESPACE") )
- {
- // get all namespaces and save the namespace - delimiter association
- cmd = doCommand( imapCommand::clientNamespace() );
- if (cmd->result () == "OK")
- {
- kdDebug(7116) << "makeLogin - registered namespaces" << endl;
- }
- completeQueue.removeRef (cmd);
- }
- // get the default delimiter (empty listing)
- cmd = doCommand( imapCommand::clientList("", "") );
- if (cmd->result () == "OK")
- {
- TQValueListIterator < imapList > it = listResponses.begin();
- if ( it == listResponses.end() )
- {
- // empty answer - this is a buggy imap server
- // as a fallback we fire a normal listing and take the first answer
- completeQueue.removeRef (cmd);
- cmd = doCommand( imapCommand::clientList("", "%") );
- if (cmd->result () == "OK")
- {
- it = listResponses.begin();
- }
- }
- if ( it != listResponses.end() )
- {
- namespaceToDelimiter[TQString()] = (*it).hierarchyDelimiter();
- kdDebug(7116) << "makeLogin - delimiter for empty ns='" <<
- (*it).hierarchyDelimiter() << "'" << endl;
- if ( !hasCapability("NAMESPACE") )
- {
- // server does not support namespaces
- TQString nsentry = TQString::number( 0 ) + "=="
- + (*it).hierarchyDelimiter();
- imapNamespaces.append( nsentry );
- }
- }
- }
- completeQueue.removeRef (cmd);
- } else {
- kdDebug(7116) << "makeLogin - NO login" << endl;
- }
-
- return getState() == ISTATE_LOGIN;
-}
-
-void
-IMAP4Protocol::parseWriteLine (const TQString & aStr)
-{
- //kdDebug(7116) << "Writing: " << aStr << endl;
- TQCString writer = aStr.utf8();
- int len = writer.length();
-
- // append CRLF if necessary
- if (len == 0 || (writer[len - 1] != '\n')) {
- len += 2;
- writer += "\r\n";
- }
-
- // write it
- write(writer.data(), len);
-}
-
-TQString
-IMAP4Protocol::getMimeType (enum IMAP_TYPE aType)
-{
- switch (aType)
- {
- case ITYPE_DIR:
- return "inode/directory";
- break;
-
- case ITYPE_BOX:
- return "message/digest";
- break;
-
- case ITYPE_DIR_AND_BOX:
- return "message/directory";
- break;
-
- case ITYPE_MSG:
- return "message/rfc822";
- break;
-
- // this should be handled by flushOutput
- case ITYPE_ATTACH:
- return "application/octet-stream";
- break;
-
- case ITYPE_UNKNOWN:
- default:
- return "unknown/unknown";
- }
-}
-
-
-
-void
-IMAP4Protocol::doListEntry (const KURL & _url, int stretch, imapCache * cache,
- bool withFlags, bool withSubject)
-{
- KURL aURL = _url;
- aURL.setQuery (TQString());
- const TQString encodedUrl = aURL.url(0, 106); // utf-8
- doListEntry(encodedUrl, stretch, cache, withFlags, withSubject);
-}
-
-
-
-void
-IMAP4Protocol::doListEntry (const TQString & encodedUrl, int stretch, imapCache * cache,
- bool withFlags, bool withSubject)
-{
- if (cache)
- {
- UDSEntry entry;
- UDSAtom atom;
-
- entry.clear ();
-
- const TQString uid = TQString::number(cache->getUid());
-
- atom.m_uds = UDS_NAME;
- atom.m_str = uid;
- atom.m_long = 0;
- if (stretch > 0)
- {
- atom.m_str = "0000000000000000" + atom.m_str;
- atom.m_str = atom.m_str.right (stretch);
- }
- if (withSubject)
- {
- mailHeader *header = cache->getHeader();
- if (header)
- atom.m_str += " " + header->getSubject();
- }
- entry.append (atom);
-
- atom.m_uds = UDS_URL;
- atom.m_str = encodedUrl; // utf-8
- if (atom.m_str[atom.m_str.length () - 1] != '/')
- atom.m_str += '/';
- atom.m_str += ";UID=" + uid;
- atom.m_long = 0;
- entry.append (atom);
-
- atom.m_uds = UDS_FILE_TYPE;
- atom.m_str = TQString();
- atom.m_long = S_IFREG;
- entry.append (atom);
-
- atom.m_uds = UDS_SIZE;
- atom.m_long = cache->getSize();
- entry.append (atom);
-
- atom.m_uds = UDS_MIME_TYPE;
- atom.m_str = "message/rfc822";
- atom.m_long = 0;
- entry.append (atom);
-
- atom.m_uds = UDS_USER;
- atom.m_str = myUser;
- entry.append (atom);
-
- atom.m_uds = TDEIO::UDS_ACCESS;
- atom.m_long = (withFlags) ? cache->getFlags() : S_IRUSR | S_IXUSR | S_IWUSR;
- entry.append (atom);
-
- listEntry (entry, false);
- }
-}
-
-void
-IMAP4Protocol::doListEntry (const KURL & _url, const TQString & myBox,
- const imapList & item, bool appendPath)
-{
- KURL aURL = _url;
- aURL.setQuery (TQString());
- UDSEntry entry;
- UDSAtom atom;
- int hdLen = item.hierarchyDelimiter().length();
-
- {
- // mailboxName will be appended to the path if appendPath is true
- TQString mailboxName = item.name ();
-
- // some beautification
- if (mailboxName.find (myBox) == 0 && mailboxName.length() > myBox.length())
- {
- mailboxName =
- mailboxName.right (mailboxName.length () - myBox.length ());
- }
- if (mailboxName[0] == '/')
- mailboxName = mailboxName.right (mailboxName.length () - 1);
- if (mailboxName.left(hdLen) == item.hierarchyDelimiter())
- mailboxName = mailboxName.right(mailboxName.length () - hdLen);
- if (mailboxName.right(hdLen) == item.hierarchyDelimiter())
- mailboxName.truncate(mailboxName.length () - hdLen);
-
- atom.m_uds = UDS_NAME;
- if (!item.hierarchyDelimiter().isEmpty() &&
- mailboxName.find(item.hierarchyDelimiter()) != -1)
- atom.m_str = mailboxName.section(item.hierarchyDelimiter(), -1);
- else
- atom.m_str = mailboxName;
-
- // konqueror will die with an assertion failure otherwise
- if (atom.m_str.isEmpty ())
- atom.m_str = "..";
-
- if (!atom.m_str.isEmpty ())
- {
- atom.m_long = 0;
- entry.append (atom);
-
- if (!item.noSelect ())
- {
- atom.m_uds = UDS_MIME_TYPE;
- if (!item.noInferiors ())
- {
- atom.m_str = "message/directory";
- } else {
- atom.m_str = "message/digest";
- }
- atom.m_long = 0;
- entry.append (atom);
- mailboxName += '/';
-
- // explicitly set this as a directory for KFileDialog
- atom.m_uds = UDS_FILE_TYPE;
- atom.m_str = TQString();
- atom.m_long = S_IFDIR;
- entry.append (atom);
- }
- else if (!item.noInferiors ())
- {
- atom.m_uds = UDS_MIME_TYPE;
- atom.m_str = "inode/directory";
- atom.m_long = 0;
- entry.append (atom);
- mailboxName += '/';
-
- // explicitly set this as a directory for KFileDialog
- atom.m_uds = UDS_FILE_TYPE;
- atom.m_str = TQString();
- atom.m_long = S_IFDIR;
- entry.append (atom);
- }
- else
- {
- atom.m_uds = UDS_MIME_TYPE;
- atom.m_str = "unknown/unknown";
- atom.m_long = 0;
- entry.append (atom);
- }
-
- atom.m_uds = UDS_URL;
- TQString path = aURL.path();
- atom.m_str = aURL.url (0, 106); // utf-8
- if (appendPath)
- {
- if (path[path.length() - 1] == '/' && !path.isEmpty() && path != "/")
- path.truncate(path.length() - 1);
- if (!path.isEmpty() && path != "/"
- && path.right(hdLen) != item.hierarchyDelimiter()) {
- path += item.hierarchyDelimiter();
- }
- path += mailboxName;
- if (path.upper() == "/INBOX/") {
- // make sure the client can rely on INBOX
- path = path.upper();
- }
- }
- aURL.setPath(path);
- atom.m_str = aURL.url(0, 106); // utf-8
- atom.m_long = 0;
- entry.append (atom);
-
- atom.m_uds = UDS_USER;
- atom.m_str = myUser;
- entry.append (atom);
-
- atom.m_uds = UDS_ACCESS;
- atom.m_long = S_IRUSR | S_IXUSR | S_IWUSR;
- entry.append (atom);
-
- atom.m_uds = UDS_EXTRA;
- atom.m_str = item.attributesAsString();
- atom.m_long = 0;
- entry.append (atom);
-
- listEntry (entry, false);
- }
- }
-}
-
-enum IMAP_TYPE
-IMAP4Protocol::parseURL (const KURL & _url, TQString & _box,
- TQString & _section, TQString & _type, TQString & _uid,
- TQString & _validity, TQString & _hierarchyDelimiter,
- TQString & _info, bool cache)
-{
- enum IMAP_TYPE retVal;
- retVal = ITYPE_UNKNOWN;
-
- imapParser::parseURL (_url, _box, _section, _type, _uid, _validity, _info);
-// kdDebug(7116) << "URL: query - '" << KURL::decode_string(_url.query()) << "'" << endl;
-
- // get the delimiter
- TQString myNamespace = namespaceForBox( _box );
- kdDebug(7116) << "IMAP4::parseURL - namespace=" << myNamespace << endl;
- if ( namespaceToDelimiter.contains(myNamespace) )
- {
- _hierarchyDelimiter = namespaceToDelimiter[myNamespace];
- kdDebug(7116) << "IMAP4::parseURL - delimiter=" << _hierarchyDelimiter << endl;
- }
-
- if (!_box.isEmpty ())
- {
- kdDebug(7116) << "IMAP4::parseURL - box=" << _box << endl;
-
- if (makeLogin ())
- {
- if (getCurrentBox () != _box ||
- _type == "LIST" || _type == "LSUB" || _type == "LSUBNOCHECK")
- {
- if ( cache )
- {
- // assume a normal box
- retVal = ITYPE_DIR_AND_BOX;
- } else
- {
- // start a listing for the box to get the type
- imapCommand *cmd;
-
- cmd = doCommand (imapCommand::clientList ("", _box));
- if (cmd->result () == "OK")
- {
- for (TQValueListIterator < imapList > it = listResponses.begin ();
- it != listResponses.end (); ++it)
- {
- //kdDebug(7116) << "IMAP4::parseURL - checking " << _box << " to " << (*it).name() << endl;
- if (_box == (*it).name ())
- {
- if ( !(*it).hierarchyDelimiter().isEmpty() )
- _hierarchyDelimiter = (*it).hierarchyDelimiter();
- if ((*it).noSelect ())
- {
- retVal = ITYPE_DIR;
- }
- else if ((*it).noInferiors ())
- {
- retVal = ITYPE_BOX;
- }
- else
- {
- retVal = ITYPE_DIR_AND_BOX;
- }
- }
- }
- // if we got no list response for the box see if it's a prefix
- if ( retVal == ITYPE_UNKNOWN &&
- namespaceToDelimiter.contains(_box) ) {
- retVal = ITYPE_DIR;
- }
- } else {
- kdDebug(7116) << "IMAP4::parseURL - got error for " << _box << endl;
- }
- completeQueue.removeRef (cmd);
- } // cache
- }
- else // current == box
- {
- retVal = ITYPE_BOX;
- }
- }
- else
- kdDebug(7116) << "IMAP4::parseURL: no login!" << endl;
-
- }
- else // empty box
- {
- // the root is just a dir
- kdDebug(7116) << "IMAP4: parseURL: box [root]" << endl;
- retVal = ITYPE_DIR;
- }
-
- // see if it is a real sequence or a simple uid
- if (retVal == ITYPE_BOX || retVal == ITYPE_DIR_AND_BOX)
- {
- if (!_uid.isEmpty ())
- {
- if (_uid.find (':') == -1 && _uid.find (',') == -1
- && _uid.find ('*') == -1)
- retVal = ITYPE_MSG;
- }
- }
- if (retVal == ITYPE_MSG)
- {
- if ( (_section.find ("BODY.PEEK[", 0, false) != -1 ||
- _section.find ("BODY[", 0, false) != -1) &&
- _section.find(".MIME") == -1 &&
- _section.find(".HEADER") == -1 )
- retVal = ITYPE_ATTACH;
- }
- if ( _hierarchyDelimiter.isEmpty() &&
- (_type == "LIST" || _type == "LSUB" || _type == "LSUBNOCHECK") )
- {
- // this shouldn't happen but when the delimiter is really empty
- // we try to reconstruct it from the URL
- if (!_box.isEmpty())
- {
- int start = _url.path().findRev(_box);
- if (start != -1)
- _hierarchyDelimiter = _url.path().mid(start-1, start);
- kdDebug(7116) << "IMAP4::parseURL - reconstructed delimiter:" << _hierarchyDelimiter
- << " from URL " << _url.path() << endl;
- }
- if (_hierarchyDelimiter.isEmpty())
- _hierarchyDelimiter = "/";
- }
- kdDebug(7116) << "IMAP4::parseURL - return " << retVal << endl;
-
- return retVal;
-}
-
-int
-IMAP4Protocol::outputLine (const TQCString & _str, int len)
-{
- if (len == -1) {
- len = _str.length();
- }
-
- if (cacheOutput)
- {
- if ( !outputBuffer.isOpen() ) {
- outputBuffer.open(IO_WriteOnly);
- }
- outputBuffer.at(outputBufferIndex);
- outputBuffer.writeBlock(_str.data(), len);
- outputBufferIndex += len;
- return 0;
- }
-
- TQByteArray temp;
- bool relay = relayEnabled;
-
- relayEnabled = true;
- temp.setRawData (_str.data (), len);
- parseRelay (temp);
- temp.resetRawData (_str.data (), len);
-
- relayEnabled = relay;
- return 0;
-}
-
-void IMAP4Protocol::flushOutput(TQString contentEncoding)
-{
- // send out cached data to the application
- if (outputBufferIndex == 0)
- return;
- outputBuffer.close();
- outputCache.resize(outputBufferIndex);
- if (decodeContent)
- {
- // get the coding from the MIME header
- TQByteArray decoded;
- if (contentEncoding.find("quoted-printable", 0, false) == 0)
- decoded = KCodecs::quotedPrintableDecode(outputCache);
- else if (contentEncoding.find("base64", 0, false) == 0)
- KCodecs::base64Decode(outputCache, decoded);
- else
- decoded = outputCache;
-
- TQString mimetype = KMimeType::findByContent( decoded )->name();
- kdDebug(7116) << "IMAP4::flushOutput - mimeType " << mimetype << endl;
- mimeType(mimetype);
- decodeContent = false;
- data( decoded );
- } else {
- data( outputCache );
- }
- mProcessedSize += outputBufferIndex;
- processedSize( mProcessedSize );
- outputBufferIndex = 0;
- outputCache[0] = '\0';
- outputBuffer.setBuffer(outputCache);
-}
-
-ssize_t IMAP4Protocol::myRead(void *data, ssize_t len)
-{
- if (readBufferLen)
- {
- ssize_t copyLen = (len < readBufferLen) ? len : readBufferLen;
- memcpy(data, readBuffer, copyLen);
- readBufferLen -= copyLen;
- if (readBufferLen) memmove(readBuffer, &readBuffer[copyLen], readBufferLen);
- return copyLen;
- }
- if (!isConnectionValid()) return 0;
- waitForResponse( responseTimeout() );
- return read(data, len);
-}
-
-bool
-IMAP4Protocol::assureBox (const TQString & aBox, bool readonly)
-{
- if (aBox.isEmpty()) return false;
-
- imapCommand *cmd = 0;
-
- if (aBox != getCurrentBox () || (!getSelected().readWrite() && !readonly))
- {
- // open the box with the appropriate mode
- kdDebug(7116) << "IMAP4Protocol::assureBox - opening box" << endl;
- selectInfo = imapInfo();
- cmd = doCommand (imapCommand::clientSelect (aBox, readonly));
- bool ok = cmd->result() == "OK";
- TQString cmdInfo = cmd->resultInfo();
- completeQueue.removeRef (cmd);
-
- if (!ok)
- {
- bool found = false;
- cmd = doCommand (imapCommand::clientList ("", aBox));
- if (cmd->result () == "OK")
- {
- for (TQValueListIterator < imapList > it = listResponses.begin ();
- it != listResponses.end (); ++it)
- {
- if (aBox == (*it).name ()) found = true;
- }
- }
- completeQueue.removeRef (cmd);
- if (found) {
- if (cmdInfo.find("permission", 0, false) != -1) {
- // not allowed to enter this folder
- error(ERR_ACCESS_DENIED, cmdInfo);
- } else {
- error(ERR_SLAVE_DEFINED, i18n("Unable to open folder %1. The server replied: %2").arg(aBox).arg(cmdInfo));
- }
- } else {
- error(TDEIO::ERR_DOES_NOT_EXIST, aBox);
- }
- return false;
- }
- }
- else
- {
- // Give the server a chance to deliver updates every ten seconds.
- // Doing this means a server roundtrip and since assureBox is called
- // after every mail, we do it with a timeout.
- kdDebug(7116) << "IMAP4Protocol::assureBox - reusing box" << endl;
- if ( mTimeOfLastNoop.secsTo( TQDateTime::currentDateTime() ) > 10 ) {
- cmd = doCommand (imapCommand::clientNoop ());
- completeQueue.removeRef (cmd);
- mTimeOfLastNoop = TQDateTime::currentDateTime();
- kdDebug(7116) << "IMAP4Protocol::assureBox - noop timer fired" << endl;
- }
- }
-
- // if it is the mode we want
- if (!getSelected().readWrite() && !readonly)
- {
- error(TDEIO::ERR_CANNOT_OPEN_FOR_WRITING, aBox);
- return false;
- }
-
- return true;
-}
diff --git a/tdeioslave/imap4/imap4.cpp b/tdeioslave/imap4/imap4.cpp
new file mode 100644
index 00000000..449711de
--- /dev/null
+++ b/tdeioslave/imap4/imap4.cpp
@@ -0,0 +1,2746 @@
+/**********************************************************************
+ *
+ * imap4.cpp - IMAP4rev1 KIOSlave
+ * Copyright (C) 2001-2002 Michael Haeckel <haeckel@kde.org>
+ * Copyright (C) 1999 John Corey <jcorey@fruity.ath.cx>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Send comments and bug fixes to jcorey@fruity.ath.cx
+ *
+ *********************************************************************/
+
+/**
+ * @class IMAP4Protocol
+ * @note References:
+ * - RFC 2060 - Internet Message Access Protocol - Version 4rev1 - December 1996
+ * - RFC 2192 - IMAP URL Scheme - September 1997
+ * - RFC 1731 - IMAP Authentication Mechanisms - December 1994
+ * (Discusses KERBEROSv4, GSSAPI, and S/Key)
+ * - RFC 2195 - IMAP/POP AUTHorize Extension for Simple Challenge/Response
+ * - September 1997 (CRAM-MD5 authentication method)
+ * - RFC 2104 - HMAC: Keyed-Hashing for Message Authentication - February 1997
+ * - RFC 2086 - IMAP4 ACL extension - January 1997
+ * - http://www.ietf.org/internet-drafts/draft-daboo-imap-annotatemore-05.txt
+ * IMAP ANNOTATEMORE draft - April 2004.
+ *
+ *
+ * Supported URLs:
+ * \verbatim
+imap://server/
+imap://user:pass@server/
+imap://user;AUTH=method:pass@server/
+imap://server/folder/
+ * \endverbatim
+ * These URLs cause the following actions (in order):
+ * - Prompt for user/pass, list all folders in home directory
+ * - Uses LOGIN to log in
+ * - Uses AUTHENTICATE to log in
+ * - List messages in folder
+ *
+ * @note API notes:
+ * Not receiving the required write access for a folder means
+ * ERR_CANNOT_OPEN_FOR_WRITING.
+ * ERR_DOES_NOT_EXIST is reserved for folders.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "imap4.h"
+
+#include "rfcdecoder.h"
+
+#include <sys/stat.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <signal.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <errno.h>
+
+#ifdef HAVE_LIBSASL2
+extern "C" {
+#include <sasl/sasl.h>
+}
+#endif
+
+#include <tqbuffer.h>
+#include <tqdatetime.h>
+#include <tqregexp.h>
+#include <tdeprotocolmanager.h>
+#include <tdemessagebox.h>
+#include <kdebug.h>
+#include <tdeio/connection.h>
+#include <tdeio/slaveinterface.h>
+#include <tdeio/passdlg.h>
+#include <tdelocale.h>
+#include <kmimetype.h>
+#include <kmdcodec.h>
+
+#include <kdemacros.h>
+
+#define IMAP_PROTOCOL "imap"
+#define IMAP_SSL_PROTOCOL "imaps"
+const int ImapPort = 143;
+const int ImapsPort = 993;
+
+using namespace TDEIO;
+
+extern "C"
+{
+ void sigalrm_handler (int);
+ KDE_EXPORT int kdemain (int argc, char **argv);
+}
+
+int
+kdemain (int argc, char **argv)
+{
+ kdDebug(7116) << "IMAP4::kdemain" << endl;
+
+ TDEInstance instance ("tdeio_imap4");
+ if (argc != 4)
+ {
+ fprintf(stderr, "Usage: tdeio_imap4 protocol domain-socket1 domain-socket2\n");
+ ::exit (-1);
+ }
+
+#ifdef HAVE_LIBSASL2
+ if ( sasl_client_init( NULL ) != SASL_OK ) {
+ fprintf(stderr, "SASL library initialization failed!\n");
+ ::exit (-1);
+ }
+#endif
+
+ //set debug handler
+
+ IMAP4Protocol *slave;
+ if (strcasecmp (argv[1], IMAP_SSL_PROTOCOL) == 0)
+ slave = new IMAP4Protocol (argv[2], argv[3], true);
+ else if (strcasecmp (argv[1], IMAP_PROTOCOL) == 0)
+ slave = new IMAP4Protocol (argv[2], argv[3], false);
+ else
+ abort ();
+ slave->dispatchLoop ();
+ delete slave;
+
+#ifdef HAVE_LIBSASL2
+ sasl_done();
+#endif
+
+ return 0;
+}
+
+void
+sigchld_handler (int signo)
+{
+ // A signal handler that calls for example waitpid has to save errno
+ // before and restore it afterwards.
+ // (cf. https://www.securecoding.cert.org/confluence/display/cplusplus/ERR32-CPP.+Do+not+rely+on+indeterminate+values+of+errno)
+ const int save_errno = errno;
+ int pid, status;
+
+ while (signo == SIGCHLD)
+ {
+ pid = waitpid (-1, &status, WNOHANG);
+ if (pid <= 0)
+ {
+ // Reinstall signal handler, since Linux resets to default after
+ // the signal occurred ( BSD handles it different, but it should do
+ // no harm ).
+ signal (SIGCHLD, sigchld_handler);
+ break;
+ }
+ }
+
+ errno = save_errno;
+}
+
+IMAP4Protocol::IMAP4Protocol (const TQCString & pool, const TQCString & app, bool isSSL):TCPSlaveBase ((isSSL ? 993 : 143),
+ (isSSL ? IMAP_SSL_PROTOCOL : IMAP_PROTOCOL), pool,
+ app, isSSL), imapParser (), mimeIO (), outputBuffer(outputCache)
+{
+ outputBufferIndex = 0;
+ mySSL = isSSL;
+ readBuffer[0] = 0x00;
+ relayEnabled = false;
+ readBufferLen = 0;
+ cacheOutput = false;
+ decodeContent = false;
+ mTimeOfLastNoop = TQDateTime();
+}
+
+IMAP4Protocol::~IMAP4Protocol ()
+{
+ closeDescriptor();
+ kdDebug(7116) << "IMAP4: Finishing" << endl;
+}
+
+void
+IMAP4Protocol::get (const KURL & _url)
+{
+ if (!makeLogin()) return;
+ kdDebug(7116) << "IMAP4::get - " << _url.prettyURL() << endl;
+ TQString aBox, aSequence, aType, aSection, aValidity, aDelimiter, aInfo;
+ enum IMAP_TYPE aEnum =
+ parseURL (_url, aBox, aSection, aType, aSequence, aValidity, aDelimiter, aInfo);
+ if (aEnum != ITYPE_ATTACH)
+ mimeType (getMimeType(aEnum));
+ if (aInfo == "DECODE")
+ decodeContent = true;
+
+ if (aSequence == "0:0" && getState() == ISTATE_SELECT)
+ {
+ imapCommand *cmd = doCommand (imapCommand::clientNoop());
+ completeQueue.removeRef(cmd);
+ }
+
+ if (aSequence.isEmpty ())
+ {
+ aSequence = "1:*";
+ }
+
+ mProcessedSize = 0;
+ imapCommand *cmd = NULL;
+ if (!assureBox (aBox, true)) return;
+
+#ifdef USE_VALIDITY
+ if (selectInfo.uidValidityAvailable () && !aValidity.isEmpty ()
+ && selectInfo.uidValidity () != aValidity.toULong ())
+ {
+ // this url is stale
+ error (ERR_COULD_NOT_READ, _url.prettyURL());
+ return;
+ }
+ else
+#endif
+ {
+ // The "section" specified by the application can be:
+ // * empty (which means body, size and flags)
+ // * a known keyword, like STRUCTURE, ENVELOPE, HEADER, BODY.PEEK[...]
+ // (in which case the slave has some logic to add the necessary items)
+ // * Otherwise, it specifies the exact data items to request. In this case, all
+ // the logic is in the app.
+
+ TQString aUpper = aSection.upper();
+ if (aUpper.find ("STRUCTURE") != -1)
+ {
+ aSection = "BODYSTRUCTURE";
+ }
+ else if (aUpper.find ("ENVELOPE") != -1)
+ {
+ aSection = "UID RFC822.SIZE FLAGS ENVELOPE";
+ if (hasCapability("IMAP4rev1")) {
+ aSection += " BODY.PEEK[HEADER.FIELDS (REFERENCES)]";
+ } else {
+ // imap4 does not know HEADER.FIELDS
+ aSection += " RFC822.HEADER.LINES (REFERENCES)";
+ }
+ }
+ else if (aUpper == "HEADER")
+ {
+ aSection = "UID RFC822.HEADER RFC822.SIZE FLAGS";
+ }
+ else if (aUpper.find ("BODY.PEEK[") != -1)
+ {
+ if (aUpper.find ("BODY.PEEK[]") != -1)
+ {
+ if (!hasCapability("IMAP4rev1")) // imap4 does not know BODY.PEEK[]
+ aSection.replace("BODY.PEEK[]", "RFC822.PEEK");
+ }
+ aSection.prepend("UID RFC822.SIZE FLAGS ");
+ }
+ else if (aSection.isEmpty())
+ {
+ aSection = "UID BODY[] RFC822.SIZE FLAGS";
+ }
+ if (aEnum == ITYPE_BOX || aEnum == ITYPE_DIR_AND_BOX)
+ {
+ // write the digest header
+ cacheOutput = true;
+ outputLine
+ ("Content-Type: multipart/digest; boundary=\"IMAPDIGEST\"\r\n", 55);
+ if (selectInfo.recentAvailable ())
+ outputLineStr ("X-Recent: " +
+ TQString::number(selectInfo.recent ()) + "\r\n");
+ if (selectInfo.countAvailable ())
+ outputLineStr ("X-Count: " + TQString::number(selectInfo.count ()) +
+ "\r\n");
+ if (selectInfo.unseenAvailable ())
+ outputLineStr ("X-Unseen: " +
+ TQString::number(selectInfo.unseen ()) + "\r\n");
+ if (selectInfo.uidValidityAvailable ())
+ outputLineStr ("X-uidValidity: " +
+ TQString::number(selectInfo.uidValidity ()) +
+ "\r\n");
+ if (selectInfo.uidNextAvailable ())
+ outputLineStr ("X-UidNext: " +
+ TQString::number(selectInfo.uidNext ()) + "\r\n");
+ if (selectInfo.flagsAvailable ())
+ outputLineStr ("X-Flags: " + TQString::number(selectInfo.flags ()) +
+ "\r\n");
+ if (selectInfo.permanentFlagsAvailable ())
+ outputLineStr ("X-PermanentFlags: " +
+ TQString::number(selectInfo.permanentFlags ()) + "\r\n");
+ if (selectInfo.readWriteAvailable ()) {
+ if (selectInfo.readWrite()) {
+ outputLine ("X-Access: Read/Write\r\n", 22);
+ } else {
+ outputLine ("X-Access: Read only\r\n", 21);
+ }
+ }
+ outputLine ("\r\n", 2);
+ flushOutput(TQString());
+ cacheOutput = false;
+ }
+
+ if (aEnum == ITYPE_MSG || (aEnum == ITYPE_ATTACH && !decodeContent))
+ relayEnabled = true; // normal mode, relay data
+
+ if (aSequence != "0:0")
+ {
+ TQString contentEncoding;
+ if (aEnum == ITYPE_ATTACH && decodeContent)
+ {
+ // get the MIME header and fill getLastHandled()
+ TQString mySection = aSection;
+ mySection.replace("]", ".MIME]");
+ cmd = sendCommand (imapCommand::clientFetch (aSequence, mySection));
+ do
+ {
+ while (!parseLoop ()) ;
+ }
+ while (!cmd->isComplete ());
+ completeQueue.removeRef (cmd);
+ // get the content encoding now because getLastHandled will be cleared
+ if (getLastHandled() && getLastHandled()->getHeader())
+ contentEncoding = getLastHandled()->getHeader()->getEncoding();
+
+ // from here on collect the data
+ // it is send to the client in flushOutput in one go
+ // needed to decode the content
+ cacheOutput = true;
+ }
+
+ cmd = sendCommand (imapCommand::clientFetch (aSequence, aSection));
+ int res;
+ aUpper = aSection.upper();
+ do
+ {
+ while (!(res = parseLoop())) ;
+ if (res == -1) break;
+
+ mailHeader *lastone = 0;
+ imapCache *cache = getLastHandled ();
+ if (cache)
+ lastone = cache->getHeader ();
+
+ if (cmd && !cmd->isComplete ())
+ {
+ if ((aUpper.find ("BODYSTRUCTURE") != -1)
+ || (aUpper.find ("FLAGS") != -1)
+ || (aUpper.find ("UID") != -1)
+ || (aUpper.find ("ENVELOPE") != -1)
+ || (aUpper.find ("BODY.PEEK[0]") != -1
+ && (aEnum == ITYPE_BOX || aEnum == ITYPE_DIR_AND_BOX)))
+ {
+ if (aEnum == ITYPE_BOX || aEnum == ITYPE_DIR_AND_BOX)
+ {
+ // write the mime header (default is here message/rfc822)
+ outputLine ("--IMAPDIGEST\r\n", 14);
+ cacheOutput = true;
+ if (cache && cache->getUid () != 0)
+ outputLineStr ("X-UID: " +
+ TQString::number(cache->getUid ()) + "\r\n");
+ if (cache && cache->getSize () != 0)
+ outputLineStr ("X-Length: " +
+ TQString::number(cache->getSize ()) + "\r\n");
+ if (cache && !cache->getDate ().isEmpty())
+ outputLineStr ("X-Date: " + cache->getDate () + "\r\n");
+ if (cache && cache->getFlags () != 0)
+ outputLineStr ("X-Flags: " +
+ TQString::number(cache->getFlags ()) + "\r\n");
+ } else cacheOutput = true;
+ if ( lastone && !decodeContent )
+ lastone->outputPart (*this);
+ cacheOutput = false;
+ flushOutput(contentEncoding);
+ }
+ } // if not complete
+ }
+ while (cmd && !cmd->isComplete ());
+ if (aEnum == ITYPE_BOX || aEnum == ITYPE_DIR_AND_BOX)
+ {
+ // write the end boundary
+ outputLine ("--IMAPDIGEST--\r\n", 16);
+ }
+
+ completeQueue.removeRef (cmd);
+ }
+ }
+
+ // just to keep everybody happy when no data arrived
+ data (TQByteArray ());
+
+ finished ();
+ relayEnabled = false;
+ cacheOutput = false;
+ kdDebug(7116) << "IMAP4::get - finished" << endl;
+}
+
+void
+IMAP4Protocol::listDir (const KURL & _url)
+{
+ kdDebug(7116) << " IMAP4::listDir - " << _url.prettyURL() << endl;
+
+ if (_url.path().isEmpty())
+ {
+ KURL url = _url;
+ url.setPath("/");
+ redirection( url );
+ finished();
+ return;
+ }
+
+ TQString myBox, mySequence, myLType, mySection, myValidity, myDelimiter, myInfo;
+ // parseURL with caching
+ enum IMAP_TYPE myType =
+ parseURL (_url, myBox, mySection, myLType, mySequence, myValidity,
+ myDelimiter, myInfo, true);
+
+ if (!makeLogin()) return;
+
+ if (myType == ITYPE_DIR || myType == ITYPE_DIR_AND_BOX)
+ {
+ TQString listStr = myBox;
+ imapCommand *cmd;
+
+ if (!listStr.isEmpty () && !listStr.endsWith(myDelimiter) &&
+ mySection != "FOLDERONLY")
+ listStr += myDelimiter;
+
+ if (mySection.isEmpty())
+ {
+ listStr += "%";
+ } else if (mySection == "COMPLETE") {
+ listStr += "*";
+ }
+ kdDebug(7116) << "IMAP4Protocol::listDir - listStr=" << listStr << endl;
+ cmd =
+ doCommand (imapCommand::clientList ("", listStr,
+ (myLType == "LSUB" || myLType == "LSUBNOCHECK")));
+ if (cmd->result () == "OK")
+ {
+ TQString mailboxName;
+ UDSEntry entry;
+ UDSAtom atom;
+ KURL aURL = _url;
+ if (aURL.path().find(';') != -1)
+ aURL.setPath(aURL.path().left(aURL.path().find(';')));
+
+ kdDebug(7116) << "IMAP4Protocol::listDir - got " << listResponses.count () << endl;
+
+ if (myLType == "LSUB")
+ {
+ // fire the same command as LIST to check if the box really exists
+ TQValueList<imapList> listResponsesSave = listResponses;
+ doCommand (imapCommand::clientList ("", listStr, false));
+ for (TQValueListIterator < imapList > it = listResponsesSave.begin ();
+ it != listResponsesSave.end (); ++it)
+ {
+ bool boxOk = false;
+ for (TQValueListIterator < imapList > it2 = listResponses.begin ();
+ it2 != listResponses.end (); ++it2)
+ {
+ if ((*it2).name() == (*it).name())
+ {
+ boxOk = true;
+ // copy the flags from the LIST-command
+ (*it) = (*it2);
+ break;
+ }
+ }
+ if (boxOk)
+ doListEntry (aURL, myBox, (*it), (mySection != "FOLDERONLY"));
+ else // this folder is dead
+ kdDebug(7116) << "IMAP4Protocol::listDir - suppress " << (*it).name() << endl;
+ }
+ listResponses = listResponsesSave;
+ }
+ else // LIST or LSUBNOCHECK
+ {
+ for (TQValueListIterator < imapList > it = listResponses.begin ();
+ it != listResponses.end (); ++it)
+ {
+ doListEntry (aURL, myBox, (*it), (mySection != "FOLDERONLY"));
+ }
+ }
+ entry.clear ();
+ listEntry (entry, true);
+ }
+ else
+ {
+ error (ERR_CANNOT_ENTER_DIRECTORY, _url.prettyURL());
+ completeQueue.removeRef (cmd);
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ }
+ if ((myType == ITYPE_BOX || myType == ITYPE_DIR_AND_BOX)
+ && myLType != "LIST" && myLType != "LSUB" && myLType != "LSUBNOCHECK")
+ {
+ KURL aURL = _url;
+ aURL.setQuery (TQString());
+ const TQString encodedUrl = aURL.url(0, 106); // utf-8
+
+ if (!_url.query ().isEmpty ())
+ {
+ TQString query = KURL::decode_string (_url.query ());
+ query = query.right (query.length () - 1);
+ if (!query.isEmpty())
+ {
+ imapCommand *cmd = NULL;
+
+ if (!assureBox (myBox, true)) return;
+
+ if (!selectInfo.countAvailable() || selectInfo.count())
+ {
+ cmd = doCommand (imapCommand::clientSearch (query));
+ if (cmd->result() != "OK")
+ {
+ error(ERR_UNSUPPORTED_ACTION, _url.prettyURL());
+ completeQueue.removeRef (cmd);
+ return;
+ }
+ completeQueue.removeRef (cmd);
+
+ TQStringList list = getResults ();
+ int stretch = 0;
+
+ if (selectInfo.uidNextAvailable ())
+ stretch = TQString::number(selectInfo.uidNext ()).length ();
+ UDSEntry entry;
+ imapCache fake;
+
+ for (TQStringList::ConstIterator it = list.begin(); it != list.end();
+ ++it)
+ {
+ fake.setUid((*it).toULong());
+ doListEntry (encodedUrl, stretch, &fake);
+ }
+ entry.clear ();
+ listEntry (entry, true);
+ }
+ }
+ }
+ else
+ {
+ if (!assureBox (myBox, true)) return;
+
+ kdDebug(7116) << "IMAP4: select returned:" << endl;
+ if (selectInfo.recentAvailable ())
+ kdDebug(7116) << "Recent: " << selectInfo.recent () << "d" << endl;
+ if (selectInfo.countAvailable ())
+ kdDebug(7116) << "Count: " << selectInfo.count () << "d" << endl;
+ if (selectInfo.unseenAvailable ())
+ kdDebug(7116) << "Unseen: " << selectInfo.unseen () << "d" << endl;
+ if (selectInfo.uidValidityAvailable ())
+ kdDebug(7116) << "uidValidity: " << selectInfo.uidValidity () << "d" << endl;
+ if (selectInfo.flagsAvailable ())
+ kdDebug(7116) << "Flags: " << selectInfo.flags () << "d" << endl;
+ if (selectInfo.permanentFlagsAvailable ())
+ kdDebug(7116) << "PermanentFlags: " << selectInfo.permanentFlags () << "d" << endl;
+ if (selectInfo.readWriteAvailable ())
+ kdDebug(7116) << "Access: " << (selectInfo.readWrite ()? "Read/Write" : "Read only") << endl;
+
+#ifdef USE_VALIDITY
+ if (selectInfo.uidValidityAvailable ()
+ && selectInfo.uidValidity () != myValidity.toULong ())
+ {
+ //redirect
+ KURL newUrl = _url;
+
+ newUrl.setPath ("/" + myBox + ";UIDVALIDITY=" +
+ TQString::number(selectInfo.uidValidity ()));
+ kdDebug(7116) << "IMAP4::listDir - redirecting to " << newUrl.prettyURL() << endl;
+ redirection (newUrl);
+
+
+ }
+ else
+#endif
+ if (selectInfo.count () > 0)
+ {
+ int stretch = 0;
+
+ if (selectInfo.uidNextAvailable ())
+ stretch = TQString::number(selectInfo.uidNext ()).length ();
+ // kdDebug(7116) << selectInfo.uidNext() << "d used to stretch " << stretch << endl;
+ UDSEntry entry;
+
+ if (mySequence.isEmpty()) mySequence = "1:*";
+
+ bool withSubject = mySection.isEmpty();
+ if (mySection.isEmpty()) mySection = "UID RFC822.SIZE ENVELOPE";
+
+ bool withFlags = mySection.upper().find("FLAGS") != -1;
+ imapCommand *fetch =
+ sendCommand (imapCommand::
+ clientFetch (mySequence, mySection));
+ imapCache *cache;
+ do
+ {
+ while (!parseLoop ()) ;
+
+ cache = getLastHandled ();
+
+ if (cache && !fetch->isComplete())
+ doListEntry (encodedUrl, stretch, cache, withFlags, withSubject);
+ }
+ while (!fetch->isComplete ());
+ entry.clear ();
+ listEntry (entry, true);
+ }
+ }
+ }
+ if ( !selectInfo.alert().isNull() ) {
+ if ( !myBox.isEmpty() ) {
+ warning( i18n( "Message from %1 while processing '%2': %3" ).arg( myHost, myBox, selectInfo.alert() ) );
+ } else {
+ warning( i18n( "Message from %1: %2" ).arg( myHost, TQString(selectInfo.alert()) ) );
+ }
+ selectInfo.setAlert( 0 );
+ }
+
+ kdDebug(7116) << "IMAP4Protocol::listDir - Finishing listDir" << endl;
+ finished ();
+}
+
+void
+IMAP4Protocol::setHost (const TQString & _host, int _port,
+ const TQString & _user, const TQString & _pass)
+{
+ if (myHost != _host || myPort != _port || myUser != _user || myPass != _pass)
+ { // what's the point of doing 4 string compares to avoid 4 string copies?
+ // DF: I guess to avoid calling closeConnection() unnecessarily.
+ if (!myHost.isEmpty ())
+ closeConnection ();
+ myHost = _host;
+ if (_port == 0)
+ myPort = (mySSL) ? ImapsPort : ImapPort;
+ else
+ myPort = _port;
+ myUser = _user;
+ myPass = _pass;
+ }
+}
+
+void
+IMAP4Protocol::parseRelay (const TQByteArray & buffer)
+{
+ if (relayEnabled) {
+ // relay data immediately
+ data( buffer );
+ mProcessedSize += buffer.size();
+ processedSize( mProcessedSize );
+ } else if (cacheOutput)
+ {
+ // collect data
+ if ( !outputBuffer.isOpen() ) {
+ outputBuffer.open(IO_WriteOnly);
+ }
+ outputBuffer.at(outputBufferIndex);
+ outputBuffer.writeBlock(buffer, buffer.size());
+ outputBufferIndex += buffer.size();
+ }
+}
+
+void
+IMAP4Protocol::parseRelay (ulong len)
+{
+ if (relayEnabled)
+ totalSize (len);
+}
+
+
+bool IMAP4Protocol::parseRead(TQByteArray & buffer, ulong len, ulong relay)
+{
+ char buf[8192];
+ while (buffer.size() < len)
+ {
+ ssize_t readLen = myRead(buf, TQMIN(len - buffer.size(), sizeof(buf) - 1));
+ if (readLen == 0)
+ {
+ kdDebug(7116) << "parseRead: readLen == 0 - connection broken" << endl;
+ error (ERR_CONNECTION_BROKEN, myHost);
+ setState(ISTATE_CONNECT);
+ closeConnection();
+ return FALSE;
+ }
+ if (relay > buffer.size())
+ {
+ TQByteArray relayData;
+ ssize_t relbuf = relay - buffer.size();
+ int currentRelay = TQMIN(relbuf, readLen);
+ relayData.setRawData(buf, currentRelay);
+ parseRelay(relayData);
+ relayData.resetRawData(buf, currentRelay);
+ }
+ {
+ TQBuffer stream (buffer);
+ stream.open (IO_WriteOnly);
+ stream.at (buffer.size ());
+ stream.writeBlock (buf, readLen);
+ stream.close ();
+ }
+ }
+ return (buffer.size() == len);
+}
+
+
+bool IMAP4Protocol::parseReadLine (TQByteArray & buffer, ulong relay)
+{
+ if (myHost.isEmpty()) return FALSE;
+
+ while (true) {
+ ssize_t copyLen = 0;
+ if (readBufferLen > 0)
+ {
+ while (copyLen < readBufferLen && readBuffer[copyLen] != '\n') copyLen++;
+ if (copyLen < readBufferLen) copyLen++;
+ if (relay > 0)
+ {
+ TQByteArray relayData;
+
+ if (copyLen < (ssize_t) relay)
+ relay = copyLen;
+ relayData.setRawData (readBuffer, relay);
+ parseRelay (relayData);
+ relayData.resetRawData (readBuffer, relay);
+// kdDebug(7116) << "relayed : " << relay << "d" << endl;
+ }
+ // append to buffer
+ {
+ TQBuffer stream (buffer);
+
+ stream.open (IO_WriteOnly);
+ stream.at (buffer.size ());
+ stream.writeBlock (readBuffer, copyLen);
+ stream.close ();
+// kdDebug(7116) << "appended " << copyLen << "d got now " << buffer.size() << endl;
+ }
+
+ readBufferLen -= copyLen;
+ if (readBufferLen)
+ memmove(readBuffer, &readBuffer[copyLen], readBufferLen);
+ if (buffer[buffer.size() - 1] == '\n') return TRUE;
+ }
+ if (!isConnectionValid())
+ {
+ kdDebug(7116) << "parseReadLine - connection broken" << endl;
+ error (ERR_CONNECTION_BROKEN, myHost);
+ setState(ISTATE_CONNECT);
+ closeConnection();
+ return FALSE;
+ }
+ if (!waitForResponse( responseTimeout() ))
+ {
+ error(ERR_SERVER_TIMEOUT, myHost);
+ setState(ISTATE_CONNECT);
+ closeConnection();
+ return FALSE;
+ }
+ readBufferLen = read(readBuffer, IMAP_BUFFER - 1);
+ if (readBufferLen == 0)
+ {
+ kdDebug(7116) << "parseReadLine: readBufferLen == 0 - connection broken" << endl;
+ error (ERR_CONNECTION_BROKEN, myHost);
+ setState(ISTATE_CONNECT);
+ closeConnection();
+ return FALSE;
+ }
+ }
+}
+
+void
+IMAP4Protocol::setSubURL (const KURL & _url)
+{
+ kdDebug(7116) << "IMAP4::setSubURL - " << _url.prettyURL() << endl;
+ TDEIO::TCPSlaveBase::setSubURL (_url);
+}
+
+void
+IMAP4Protocol::put (const KURL & _url, int, bool, bool)
+{
+ kdDebug(7116) << "IMAP4::put - " << _url.prettyURL() << endl;
+// TDEIO::TCPSlaveBase::put(_url,permissions,overwrite,resume);
+ TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
+ enum IMAP_TYPE aType =
+ parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
+
+ // see if it is a box
+ if (aType != ITYPE_BOX && aType != ITYPE_DIR_AND_BOX)
+ {
+ if (aBox[aBox.length () - 1] == '/')
+ aBox = aBox.right (aBox.length () - 1);
+ imapCommand *cmd = doCommand (imapCommand::clientCreate (aBox));
+
+ if (cmd->result () != "OK") {
+ error (ERR_COULD_NOT_WRITE, _url.prettyURL());
+ completeQueue.removeRef (cmd);
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ }
+ else
+ {
+ TQPtrList < TQByteArray > bufferList;
+ int length = 0;
+
+ int result;
+ // Loop until we got 'dataEnd'
+ do
+ {
+ TQByteArray *buffer = new TQByteArray ();
+ dataReq (); // Request for data
+ result = readData (*buffer);
+ if (result > 0)
+ {
+ bufferList.append (buffer);
+ length += result;
+ } else {
+ delete buffer;
+ }
+ }
+ while (result > 0);
+
+ if (result != 0)
+ {
+ error (ERR_ABORTED, _url.prettyURL());
+ return;
+ }
+
+ imapCommand *cmd =
+ sendCommand (imapCommand::clientAppend (aBox, aSection, length));
+ while (!parseLoop ()) ;
+
+ // see if server is waiting
+ if (!cmd->isComplete () && !getContinuation ().isEmpty ())
+ {
+ bool sendOk = true;
+ ulong wrote = 0;
+
+ TQByteArray *buffer;
+ // send data to server
+ while (!bufferList.isEmpty () && sendOk)
+ {
+ buffer = bufferList.take (0);
+
+ sendOk =
+ (write (buffer->data (), buffer->size ()) ==
+ (ssize_t) buffer->size ());
+ wrote += buffer->size ();
+ processedSize(wrote);
+ delete buffer;
+ if (!sendOk)
+ {
+ error (ERR_CONNECTION_BROKEN, myHost);
+ completeQueue.removeRef (cmd);
+ setState(ISTATE_CONNECT);
+ closeConnection();
+ return;
+ }
+ }
+ parseWriteLine ("");
+ // Wait until cmd is complete, or connection breaks.
+ while (!cmd->isComplete () && getState() != ISTATE_NO)
+ parseLoop ();
+ if ( getState() == ISTATE_NO ) {
+ // TODO KDE4: pass cmd->resultInfo() as third argument.
+ // ERR_CONNECTION_BROKEN expects a host, no way to pass details about the problem.
+ error( ERR_CONNECTION_BROKEN, myHost );
+ completeQueue.removeRef (cmd);
+ closeConnection();
+ return;
+ }
+ else if (cmd->result () != "OK") {
+ error( ERR_SLAVE_DEFINED, cmd->resultInfo() );
+ completeQueue.removeRef (cmd);
+ return;
+ }
+ else
+ {
+ if (hasCapability("UIDPLUS"))
+ {
+ TQString uid = cmd->resultInfo();
+ if (uid.find("APPENDUID") != -1)
+ {
+ uid = uid.section(" ", 2, 2);
+ uid.truncate(uid.length()-1);
+ infoMessage("UID "+uid);
+ }
+ }
+ // MUST reselect to get the new message
+ else if (aBox == getCurrentBox ())
+ {
+ cmd =
+ doCommand (imapCommand::
+ clientSelect (aBox, !selectInfo.readWrite ()));
+ completeQueue.removeRef (cmd);
+ }
+ }
+ }
+ else
+ {
+ //error (ERR_COULD_NOT_WRITE, myHost);
+ // Better ship the error message, e.g. "Over Quota"
+ error (ERR_SLAVE_DEFINED, cmd->resultInfo());
+ completeQueue.removeRef (cmd);
+ return;
+ }
+
+ completeQueue.removeRef (cmd);
+ }
+
+ finished ();
+}
+
+void
+IMAP4Protocol::mkdir (const KURL & _url, int)
+{
+ kdDebug(7116) << "IMAP4::mkdir - " << _url.prettyURL() << endl;
+ TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
+ parseURL(_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
+ kdDebug(7116) << "IMAP4::mkdir - create " << aBox << endl;
+ imapCommand *cmd = doCommand (imapCommand::clientCreate(aBox));
+
+ if (cmd->result () != "OK")
+ {
+ kdDebug(7116) << "IMAP4::mkdir - " << cmd->resultInfo() << endl;
+ error (ERR_COULD_NOT_MKDIR, _url.prettyURL());
+ completeQueue.removeRef (cmd);
+ return;
+ }
+ completeQueue.removeRef (cmd);
+
+ // start a new listing to find the type of the folder
+ enum IMAP_TYPE type =
+ parseURL(_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
+ if (type == ITYPE_BOX)
+ {
+ bool ask = ( aInfo.find( "ASKUSER" ) != -1 );
+ if ( ask &&
+ messageBox(QuestionYesNo,
+ i18n("The following folder will be created on the server: %1 "
+ "What do you want to store in this folder?").arg( aBox ),
+ i18n("Create Folder"),
+ i18n("&Messages"), i18n("&Subfolders")) == KMessageBox::No )
+ {
+ cmd = doCommand(imapCommand::clientDelete(aBox));
+ completeQueue.removeRef (cmd);
+ cmd = doCommand(imapCommand::clientCreate(aBox + aDelimiter));
+ if (cmd->result () != "OK")
+ {
+ error (ERR_COULD_NOT_MKDIR, _url.prettyURL());
+ completeQueue.removeRef (cmd);
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ }
+ }
+
+ cmd = doCommand(imapCommand::clientSubscribe(aBox));
+ completeQueue.removeRef(cmd);
+
+ finished ();
+}
+
+void
+IMAP4Protocol::copy (const KURL & src, const KURL & dest, int, bool overwrite)
+{
+ kdDebug(7116) << "IMAP4::copy - [" << (overwrite ? "Overwrite" : "NoOverwrite") << "] " << src.prettyURL() << " -> " << dest.prettyURL() << endl;
+ TQString sBox, sSequence, sLType, sSection, sValidity, sDelimiter, sInfo;
+ TQString dBox, dSequence, dLType, dSection, dValidity, dDelimiter, dInfo;
+ enum IMAP_TYPE sType =
+ parseURL (src, sBox, sSection, sLType, sSequence, sValidity, sDelimiter, sInfo);
+ enum IMAP_TYPE dType =
+ parseURL (dest, dBox, dSection, dLType, dSequence, dValidity, dDelimiter, dInfo);
+
+ // see if we have to create anything
+ if (dType != ITYPE_BOX && dType != ITYPE_DIR_AND_BOX)
+ {
+ // this might be konqueror
+ int sub = dBox.find (sBox);
+
+ // might be moving to upper folder
+ if (sub > 0)
+ {
+ KURL testDir = dest;
+
+ TQString subDir = dBox.right (dBox.length () - dBox.findRev ('/'));
+ TQString topDir = dBox.left (sub);
+ testDir.setPath ("/" + topDir);
+ dType =
+ parseURL (testDir, topDir, dSection, dLType, dSequence, dValidity,
+ dDelimiter, dInfo);
+
+ kdDebug(7116) << "IMAP4::copy - checking this destination " << topDir << endl;
+ // see if this is what the user wants
+ if (dType == ITYPE_BOX || dType == ITYPE_DIR_AND_BOX)
+ {
+ kdDebug(7116) << "IMAP4::copy - assuming this destination " << topDir << endl;
+ dBox = topDir;
+ }
+ else
+ {
+
+ // maybe if we create a new mailbox
+ topDir = "/" + topDir + subDir;
+ testDir.setPath (topDir);
+ kdDebug(7116) << "IMAP4::copy - checking this destination " << topDir << endl;
+ dType =
+ parseURL (testDir, topDir, dSection, dLType, dSequence, dValidity,
+ dDelimiter, dInfo);
+ if (dType != ITYPE_BOX && dType != ITYPE_DIR_AND_BOX)
+ {
+ // ok then we'll create a mailbox
+ imapCommand *cmd = doCommand (imapCommand::clientCreate (topDir));
+
+ // on success we'll use it, else we'll just try to create the given dir
+ if (cmd->result () == "OK")
+ {
+ kdDebug(7116) << "IMAP4::copy - assuming this destination " << topDir << endl;
+ dType = ITYPE_BOX;
+ dBox = topDir;
+ }
+ else
+ {
+ completeQueue.removeRef (cmd);
+ cmd = doCommand (imapCommand::clientCreate (dBox));
+ if (cmd->result () == "OK")
+ dType = ITYPE_BOX;
+ else
+ error (ERR_COULD_NOT_WRITE, dest.prettyURL());
+ }
+ completeQueue.removeRef (cmd);
+ }
+ }
+
+ }
+ }
+ if (sType == ITYPE_MSG || sType == ITYPE_BOX || sType == ITYPE_DIR_AND_BOX)
+ {
+ //select the source box
+ if (!assureBox(sBox, true)) return;
+ kdDebug(7116) << "IMAP4::copy - " << sBox << " -> " << dBox << endl;
+
+ //issue copy command
+ imapCommand *cmd =
+ doCommand (imapCommand::clientCopy (dBox, sSequence));
+ if (cmd->result () != "OK")
+ {
+ kdError(5006) << "IMAP4::copy - " << cmd->resultInfo() << endl;
+ error (ERR_COULD_NOT_WRITE, dest.prettyURL());
+ completeQueue.removeRef (cmd);
+ return;
+ } else {
+ if (hasCapability("UIDPLUS"))
+ {
+ TQString uid = cmd->resultInfo();
+ if (uid.find("COPYUID") != -1)
+ {
+ uid = uid.section(" ", 2, 3);
+ uid.truncate(uid.length()-1);
+ infoMessage("UID "+uid);
+ }
+ }
+ }
+ completeQueue.removeRef (cmd);
+ }
+ else
+ {
+ error (ERR_ACCESS_DENIED, src.prettyURL());
+ return;
+ }
+ finished ();
+}
+
+void
+IMAP4Protocol::del (const KURL & _url, bool isFile)
+{
+ kdDebug(7116) << "IMAP4::del - [" << (isFile ? "File" : "NoFile") << "] " << _url.prettyURL() << endl;
+ TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
+ enum IMAP_TYPE aType =
+ parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
+
+ switch (aType)
+ {
+ case ITYPE_BOX:
+ case ITYPE_DIR_AND_BOX:
+ if (!aSequence.isEmpty ())
+ {
+ if (aSequence == "*")
+ {
+ if (!assureBox (aBox, false)) return;
+ imapCommand *cmd = doCommand (imapCommand::clientExpunge ());
+ if (cmd->result () != "OK") {
+ error (ERR_CANNOT_DELETE, _url.prettyURL());
+ completeQueue.removeRef (cmd);
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ }
+ else
+ {
+ // if open for read/write
+ if (!assureBox (aBox, false)) return;
+ imapCommand *cmd =
+ doCommand (imapCommand::
+ clientStore (aSequence, "+FLAGS.SILENT", "\\DELETED"));
+ if (cmd->result () != "OK") {
+ error (ERR_CANNOT_DELETE, _url.prettyURL());
+ completeQueue.removeRef (cmd);
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ }
+ }
+ else
+ {
+ if (getCurrentBox() == aBox)
+ {
+ imapCommand *cmd = doCommand(imapCommand::clientClose());
+ completeQueue.removeRef(cmd);
+ setState(ISTATE_LOGIN);
+ }
+ // We unsubscribe, otherwise we get ghost folders on UW-IMAP
+ imapCommand *cmd = doCommand(imapCommand::clientUnsubscribe(aBox));
+ completeQueue.removeRef(cmd);
+ cmd = doCommand(imapCommand::clientDelete (aBox));
+ // If this doesn't work, we try to empty the mailbox first
+ if (cmd->result () != "OK")
+ {
+ completeQueue.removeRef(cmd);
+ if (!assureBox(aBox, false)) return;
+ bool stillOk = true;
+ if (stillOk)
+ {
+ imapCommand *cmd = doCommand(
+ imapCommand::clientStore("1:*", "+FLAGS.SILENT", "\\DELETED"));
+ if (cmd->result () != "OK") stillOk = false;
+ completeQueue.removeRef(cmd);
+ }
+ if (stillOk)
+ {
+ imapCommand *cmd = doCommand(imapCommand::clientClose());
+ if (cmd->result () != "OK") stillOk = false;
+ completeQueue.removeRef(cmd);
+ setState(ISTATE_LOGIN);
+ }
+ if (stillOk)
+ {
+ imapCommand *cmd = doCommand (imapCommand::clientDelete(aBox));
+ if (cmd->result () != "OK") stillOk = false;
+ completeQueue.removeRef(cmd);
+ }
+ if (!stillOk)
+ {
+ error (ERR_COULD_NOT_RMDIR, _url.prettyURL());
+ return;
+ }
+ } else {
+ completeQueue.removeRef (cmd);
+ }
+ }
+ break;
+
+ case ITYPE_DIR:
+ {
+ imapCommand *cmd = doCommand (imapCommand::clientDelete (aBox));
+ if (cmd->result () != "OK") {
+ error (ERR_COULD_NOT_RMDIR, _url.prettyURL());
+ completeQueue.removeRef (cmd);
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ }
+ break;
+
+ case ITYPE_MSG:
+ {
+ // if open for read/write
+ if (!assureBox (aBox, false)) return;
+ imapCommand *cmd =
+ doCommand (imapCommand::
+ clientStore (aSequence, "+FLAGS.SILENT", "\\DELETED"));
+ if (cmd->result () != "OK") {
+ error (ERR_CANNOT_DELETE, _url.prettyURL());
+ completeQueue.removeRef (cmd);
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ }
+ break;
+
+ case ITYPE_UNKNOWN:
+ case ITYPE_ATTACH:
+ error (ERR_CANNOT_DELETE, _url.prettyURL());
+ break;
+ }
+ finished ();
+}
+
+/*
+ * Copy a mail: data = 'C' + srcURL (KURL) + destURL (KURL)
+ * Capabilities: data = 'c'. Result shipped in infoMessage() signal
+ * No-op: data = 'N'
+ * Namespace: data = 'n'. Result shipped in infoMessage() signal
+ * The format is: section=namespace=delimiter
+ * Note that the namespace can be empty
+ * Unsubscribe: data = 'U' + URL (KURL)
+ * Subscribe: data = 'u' + URL (KURL)
+ * Change the status: data = 'S' + URL (KURL) + Flags (TQCString)
+ * ACL commands: data = 'A' + command + URL (KURL) + command-dependent args
+ * AnnotateMore commands: data = 'M' + 'G'et/'S'et + URL + entry + command-dependent args
+ * Search: data = 'E' + URL (KURL)
+ * Quota commands: data = 'Q' + 'R'oot/'G'et/'S'et + URL + entry + command-dependent args
+ * Custom command: data = 'X' + 'N'ormal/'E'xtended + command + command-dependent args
+ */
+void
+IMAP4Protocol::special (const TQByteArray & aData)
+{
+ kdDebug(7116) << "IMAP4Protocol::special" << endl;
+ if (!makeLogin()) return;
+
+ TQDataStream stream(aData, IO_ReadOnly);
+
+ int tmp;
+ stream >> tmp;
+
+ switch (tmp) {
+ case 'C':
+ {
+ // copy
+ KURL src;
+ KURL dest;
+ stream >> src >> dest;
+ copy(src, dest, 0, FALSE);
+ break;
+ }
+ case 'c':
+ {
+ // capabilities
+ infoMessage(imapCapabilities.join(" "));
+ finished();
+ break;
+ }
+ case 'N':
+ {
+ // NOOP
+ imapCommand *cmd = doCommand(imapCommand::clientNoop());
+ if (cmd->result () != "OK")
+ {
+ kdDebug(7116) << "NOOP did not succeed - connection broken" << endl;
+ completeQueue.removeRef (cmd);
+ error (ERR_CONNECTION_BROKEN, myHost);
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ finished();
+ break;
+ }
+ case 'n':
+ {
+ // namespace in the form "section=namespace=delimiter"
+ // entries are separated by ,
+ infoMessage( imapNamespaces.join(",") );
+ finished();
+ break;
+ }
+ case 'U':
+ {
+ // unsubscribe
+ KURL _url;
+ stream >> _url;
+ TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
+ parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
+ imapCommand *cmd = doCommand(imapCommand::clientUnsubscribe(aBox));
+ if (cmd->result () != "OK")
+ {
+ completeQueue.removeRef (cmd);
+ error(ERR_SLAVE_DEFINED, i18n("Unsubscribe of folder %1 "
+ "failed. The server returned: %2")
+ .arg(_url.prettyURL())
+ .arg(cmd->resultInfo()));
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ finished();
+ break;
+ }
+ case 'u':
+ {
+ // subscribe
+ KURL _url;
+ stream >> _url;
+ TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
+ parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
+ imapCommand *cmd = doCommand(imapCommand::clientSubscribe(aBox));
+ if (cmd->result () != "OK")
+ {
+ completeQueue.removeRef (cmd);
+ error(ERR_SLAVE_DEFINED, i18n("Subscribe of folder %1 "
+ "failed. The server returned: %2")
+ .arg(_url.prettyURL())
+ .arg(cmd->resultInfo()));
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ finished();
+ break;
+ }
+ case 'A':
+ {
+ // acl
+ int cmd;
+ stream >> cmd;
+ if ( hasCapability( "ACL" ) ) {
+ specialACLCommand( cmd, stream );
+ } else {
+ error( ERR_UNSUPPORTED_ACTION, "ACL" );
+ }
+ break;
+ }
+ case 'M':
+ {
+ // annotatemore
+ int cmd;
+ stream >> cmd;
+ if ( hasCapability( "ANNOTATEMORE" ) ) {
+ specialAnnotateMoreCommand( cmd, stream );
+ } else {
+ error( ERR_UNSUPPORTED_ACTION, "ANNOTATEMORE" );
+ }
+ break;
+ }
+ case 'Q':
+ {
+ // quota
+ int cmd;
+ stream >> cmd;
+ if ( hasCapability( "QUOTA" ) ) {
+ specialQuotaCommand( cmd, stream );
+ } else {
+ error( ERR_UNSUPPORTED_ACTION, "QUOTA" );
+ }
+ break;
+ }
+ case 'S':
+ {
+ // status
+ KURL _url;
+ TQCString newFlags;
+ stream >> _url >> newFlags;
+
+ TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
+ parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
+ if (!assureBox(aBox, false)) return;
+
+ // make sure we only touch flags we know
+ TQCString knownFlags = "\\SEEN \\ANSWERED \\FLAGGED \\DRAFT";
+ const imapInfo info = getSelected();
+ if ( info.permanentFlagsAvailable() && (info.permanentFlags() & imapInfo::User) ) {
+ knownFlags += " KMAILFORWARDED KMAILTODO KMAILWATCHED KMAILIGNORED $FORWARDED $TODO $WATCHED $IGNORED";
+ }
+
+ imapCommand *cmd = doCommand (imapCommand::
+ clientStore (aSequence, "-FLAGS.SILENT", knownFlags));
+ if (cmd->result () != "OK")
+ {
+ completeQueue.removeRef (cmd);
+ error(ERR_COULD_NOT_WRITE, i18n("Changing the flags of message %1 "
+ "failed.").arg(_url.prettyURL()));
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ if (!newFlags.isEmpty())
+ {
+ cmd = doCommand (imapCommand::
+ clientStore (aSequence, "+FLAGS.SILENT", newFlags));
+ if (cmd->result () != "OK")
+ {
+ completeQueue.removeRef (cmd);
+ error(ERR_COULD_NOT_WRITE, i18n("Changing the flags of message %1 "
+ "failed.").arg(_url.prettyURL()));
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ }
+ finished();
+ break;
+ }
+ case 's':
+ {
+ // seen
+ KURL _url;
+ bool seen;
+ TQCString newFlags;
+ stream >> _url >> seen;
+
+ TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
+ parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
+ if ( !assureBox(aBox, true) ) // read-only because changing SEEN should be possible even then
+ return;
+
+ imapCommand *cmd;
+ if ( seen )
+ cmd = doCommand( imapCommand::clientStore( aSequence, "+FLAGS.SILENT", "\\SEEN" ) );
+ else
+ cmd = doCommand( imapCommand::clientStore( aSequence, "-FLAGS.SILENT", "\\SEEN" ) );
+
+ if (cmd->result () != "OK")
+ {
+ completeQueue.removeRef (cmd);
+ error(ERR_COULD_NOT_WRITE, i18n("Changing the flags of message %1 "
+ "failed.").arg(_url.prettyURL()));
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ finished();
+ break;
+ }
+
+ case 'E':
+ {
+ // search
+ specialSearchCommand( stream );
+ break;
+ }
+ case 'X':
+ {
+ // custom command
+ specialCustomCommand( stream );
+ break;
+ }
+ default:
+ kdWarning(7116) << "Unknown command in special(): " << tmp << endl;
+ error( ERR_UNSUPPORTED_ACTION, TQString(TQChar(tmp)) );
+ break;
+ }
+}
+
+void
+IMAP4Protocol::specialACLCommand( int command, TQDataStream& stream )
+{
+ // All commands start with the URL to the box
+ KURL _url;
+ stream >> _url;
+ TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
+ parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
+
+ switch( command ) {
+ case 'S': // SETACL
+ {
+ TQString user, acl;
+ stream >> user >> acl;
+ kdDebug(7116) << "SETACL " << aBox << " " << user << " " << acl << endl;
+ imapCommand *cmd = doCommand(imapCommand::clientSetACL(aBox, user, acl));
+ if (cmd->result () != "OK")
+ {
+ error(ERR_SLAVE_DEFINED, i18n("Setting the Access Control List on folder %1 "
+ "for user %2 failed. The server returned: %3")
+ .arg(_url.prettyURL())
+ .arg(user)
+ .arg(cmd->resultInfo()));
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ finished();
+ break;
+ }
+ case 'D': // DELETEACL
+ {
+ TQString user;
+ stream >> user;
+ kdDebug(7116) << "DELETEACL " << aBox << " " << user << endl;
+ imapCommand *cmd = doCommand(imapCommand::clientDeleteACL(aBox, user));
+ if (cmd->result () != "OK")
+ {
+ error(ERR_SLAVE_DEFINED, i18n("Deleting the Access Control List on folder %1 "
+ "for user %2 failed. The server returned: %3")
+ .arg(_url.prettyURL())
+ .arg(user)
+ .arg(cmd->resultInfo()));
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ finished();
+ break;
+ }
+ case 'G': // GETACL
+ {
+ kdDebug(7116) << "GETACL " << aBox << endl;
+ imapCommand *cmd = doCommand(imapCommand::clientGetACL(aBox));
+ if (cmd->result () != "OK")
+ {
+ error(ERR_SLAVE_DEFINED, i18n("Retrieving the Access Control List on folder %1 "
+ "failed. The server returned: %2")
+ .arg(_url.prettyURL())
+ .arg(cmd->resultInfo()));
+ return;
+ }
+ // Returning information to the application from a special() command isn't easy.
+ // I'm reusing the infoMessage trick seen above (for capabilities), but this
+ // limits me to a string instead of a stringlist. Using DQUOTE as separator,
+ // because it's forbidden in userids by rfc3501
+ kdDebug(7116) << getResults() << endl;
+ infoMessage(getResults().join( "\"" ));
+ finished();
+ break;
+ }
+ case 'L': // LISTRIGHTS
+ {
+ // Do we need this one? It basically shows which rights are tied together, but that's all?
+ error( ERR_UNSUPPORTED_ACTION, TQString(TQChar(command)) );
+ break;
+ }
+ case 'M': // MYRIGHTS
+ {
+ kdDebug(7116) << "MYRIGHTS " << aBox << endl;
+ imapCommand *cmd = doCommand(imapCommand::clientMyRights(aBox));
+ if (cmd->result () != "OK")
+ {
+ error(ERR_SLAVE_DEFINED, i18n("Retrieving the Access Control List on folder %1 "
+ "failed. The server returned: %2")
+ .arg(_url.prettyURL())
+ .arg(cmd->resultInfo()));
+ return;
+ }
+ TQStringList lst = getResults();
+ kdDebug(7116) << "myrights results: " << lst << endl;
+ if ( !lst.isEmpty() ) {
+ Q_ASSERT( lst.count() == 1 );
+ infoMessage( lst.first() );
+ }
+ finished();
+ break;
+ }
+ default:
+ kdWarning(7116) << "Unknown special ACL command:" << command << endl;
+ error( ERR_UNSUPPORTED_ACTION, TQString(TQChar(command)) );
+ }
+}
+
+void
+IMAP4Protocol::specialSearchCommand( TQDataStream& stream )
+{
+ kdDebug(7116) << "IMAP4Protocol::specialSearchCommand" << endl;
+ KURL _url;
+ stream >> _url;
+ TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
+ parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
+ if (!assureBox(aBox, true)) return;
+
+ imapCommand *cmd = doCommand (imapCommand::clientSearch( aSection ));
+ if (cmd->result () != "OK")
+ {
+ error(ERR_SLAVE_DEFINED, i18n("Searching of folder %1 "
+ "failed. The server returned: %2")
+ .arg(aBox)
+ .arg(cmd->resultInfo()));
+ return;
+ }
+ completeQueue.removeRef(cmd);
+ TQStringList lst = getResults();
+ kdDebug(7116) << "IMAP4Protocol::specialSearchCommand '" << aSection <<
+ "' returns " << lst << endl;
+ infoMessage( lst.join( " " ) );
+
+ finished();
+}
+
+void
+IMAP4Protocol::specialCustomCommand( TQDataStream& stream )
+{
+ kdDebug(7116) << "IMAP4Protocol::specialCustomCommand" << endl;
+
+ TQString command, arguments;
+ int type;
+ stream >> type;
+ stream >> command >> arguments;
+
+ /**
+ * In 'normal' mode we send the command with all information in one go
+ * and retrieve the result.
+ */
+ if ( type == 'N' ) {
+ kdDebug(7116) << "IMAP4Protocol::specialCustomCommand: normal mode" << endl;
+ imapCommand *cmd = doCommand (imapCommand::clientCustom( command, arguments ));
+ if (cmd->result () != "OK")
+ {
+ error(ERR_SLAVE_DEFINED, i18n("Custom command %1:%2 "
+ "failed. The server returned: %3")
+ .arg(command)
+ .arg(arguments)
+ .arg(cmd->resultInfo()));
+ return;
+ }
+ completeQueue.removeRef(cmd);
+ TQStringList lst = getResults();
+ kdDebug(7116) << "IMAP4Protocol::specialCustomCommand '" << command <<
+ ":" << arguments <<
+ "' returns " << lst << endl;
+ infoMessage( lst.join( " " ) );
+
+ finished();
+ } else
+ /**
+ * In 'extended' mode we send a first header and push the data of the request in
+ * streaming mode.
+ */
+ if ( type == 'E' ) {
+ kdDebug(7116) << "IMAP4Protocol::specialCustomCommand: extended mode" << endl;
+ imapCommand *cmd = sendCommand (imapCommand::clientCustom( command, TQString() ));
+ while ( !parseLoop () ) ;
+
+ // see if server is waiting
+ if (!cmd->isComplete () && !getContinuation ().isEmpty ())
+ {
+ const TQByteArray buffer = arguments.utf8();
+
+ // send data to server
+ bool sendOk = (write (buffer.data (), buffer.size ()) == (ssize_t)buffer.size ());
+ processedSize( buffer.size() );
+
+ if ( !sendOk ) {
+ error ( ERR_CONNECTION_BROKEN, myHost );
+ completeQueue.removeRef ( cmd );
+ setState(ISTATE_CONNECT);
+ closeConnection();
+ return;
+ }
+ }
+ parseWriteLine ("");
+
+ do
+ {
+ while (!parseLoop ()) ;
+ }
+ while (!cmd->isComplete ());
+
+ completeQueue.removeRef (cmd);
+
+ TQStringList lst = getResults();
+ kdDebug(7116) << "IMAP4Protocol::specialCustomCommand: returns " << lst << endl;
+ infoMessage( lst.join( " " ) );
+
+ finished ();
+ }
+}
+
+void
+IMAP4Protocol::specialAnnotateMoreCommand( int command, TQDataStream& stream )
+{
+ // All commands start with the URL to the box
+ KURL _url;
+ stream >> _url;
+ TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
+ parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
+
+ switch( command ) {
+ case 'S': // SETANNOTATION
+ {
+ // Params:
+ // KURL URL of the mailbox
+ // TQString entry (should be an actual entry name, no % or *; empty for server entries)
+ // TQMap<TQString,TQString> attributes (name and value)
+ TQString entry;
+ TQMap<TQString, TQString> attributes;
+ stream >> entry >> attributes;
+ kdDebug(7116) << "SETANNOTATION " << aBox << " " << entry << " " << attributes.count() << " attributes" << endl;
+ imapCommand *cmd = doCommand(imapCommand::clientSetAnnotation(aBox, entry, attributes));
+ if (cmd->result () != "OK")
+ {
+ error(ERR_SLAVE_DEFINED, i18n("Setting the annotation %1 on folder %2 "
+ " failed. The server returned: %3")
+ .arg(entry)
+ .arg(_url.prettyURL())
+ .arg(cmd->resultInfo()));
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ finished();
+ break;
+ }
+ case 'G': // GETANNOTATION.
+ {
+ // Params:
+ // KURL URL of the mailbox
+ // TQString entry (should be an actual entry name, no % or *; empty for server entries)
+ // TQStringList attributes (list of attributes to be retrieved, possibly with % or *)
+ TQString entry;
+ TQStringList attributeNames;
+ stream >> entry >> attributeNames;
+ kdDebug(7116) << "GETANNOTATION " << aBox << " " << entry << " " << attributeNames << endl;
+ imapCommand *cmd = doCommand(imapCommand::clientGetAnnotation(aBox, entry, attributeNames));
+ if (cmd->result () != "OK")
+ {
+ error(ERR_SLAVE_DEFINED, i18n("Retrieving the annotation %1 on folder %2 "
+ "failed. The server returned: %3")
+ .arg(entry)
+ .arg(_url.prettyURL())
+ .arg(cmd->resultInfo()));
+ return;
+ }
+ // Returning information to the application from a special() command isn't easy.
+ // I'm reusing the infoMessage trick seen above (for capabilities and acls), but this
+ // limits me to a string instead of a stringlist. Let's use \r as separator.
+ kdDebug(7116) << getResults() << endl;
+ infoMessage(getResults().join( "\r" ));
+ finished();
+ break;
+ }
+ default:
+ kdWarning(7116) << "Unknown special annotate command:" << command << endl;
+ error( ERR_UNSUPPORTED_ACTION, TQString(TQChar(command)) );
+ }
+}
+
+void
+IMAP4Protocol::specialQuotaCommand( int command, TQDataStream& stream )
+{
+ // All commands start with the URL to the box
+ KURL _url;
+ stream >> _url;
+ TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
+ parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter, aInfo);
+
+ switch( command ) {
+ case 'R': // GETQUOTAROOT
+ {
+ kdDebug(7116) << "QUOTAROOT " << aBox << endl;
+ imapCommand *cmd = doCommand(imapCommand::clientGetQuotaroot( aBox ) );
+ if (cmd->result () != "OK")
+ {
+ error(ERR_SLAVE_DEFINED, i18n("Retrieving the quota root information on folder %1 "
+ "failed. The server returned: %2")
+ .arg(_url.prettyURL())
+ .arg(cmd->resultInfo()));
+ return;
+ }
+ infoMessage(getResults().join( "\r" ));
+ finished();
+ break;
+ }
+ case 'G': // GETQUOTA
+ {
+ kdDebug(7116) << "GETQUOTA command" << endl;
+ kdWarning(7116) << "UNIMPLEMENTED" << endl;
+ break;
+ }
+ case 'S': // SETQUOTA
+ {
+ kdDebug(7116) << "SETQUOTA command" << endl;
+ kdWarning(7116) << "UNIMPLEMENTED" << endl;
+ break;
+ }
+ default:
+ kdWarning(7116) << "Unknown special quota command:" << command << endl;
+ error( ERR_UNSUPPORTED_ACTION, TQString(TQChar(command)) );
+ }
+}
+
+void
+IMAP4Protocol::rename (const KURL & src, const KURL & dest, bool overwrite)
+{
+ kdDebug(7116) << "IMAP4::rename - [" << (overwrite ? "Overwrite" : "NoOverwrite") << "] " << src.prettyURL() << " -> " << dest.prettyURL() << endl;
+ TQString sBox, sSequence, sLType, sSection, sValidity, sDelimiter, sInfo;
+ TQString dBox, dSequence, dLType, dSection, dValidity, dDelimiter, dInfo;
+ enum IMAP_TYPE sType =
+ parseURL (src, sBox, sSection, sLType, sSequence, sValidity, sDelimiter, sInfo, false);
+ enum IMAP_TYPE dType =
+ parseURL (dest, dBox, dSection, dLType, dSequence, dValidity, dDelimiter, dInfo, false);
+
+ if (dType == ITYPE_UNKNOWN)
+ {
+ switch (sType)
+ {
+ case ITYPE_BOX:
+ case ITYPE_DIR:
+ case ITYPE_DIR_AND_BOX:
+ {
+ if (getState() == ISTATE_SELECT && sBox == getCurrentBox())
+ {
+ kdDebug(7116) << "IMAP4::rename - close " << getCurrentBox() << endl;
+ // mailbox can only be renamed if it is closed
+ imapCommand *cmd = doCommand (imapCommand::clientClose());
+ bool ok = cmd->result() == "OK";
+ completeQueue.removeRef(cmd);
+ if (!ok)
+ {
+ kdWarning(7116) << "Unable to close mailbox!" << endl;
+ error(ERR_CANNOT_RENAME, src.path());
+ return;
+ }
+ setState(ISTATE_LOGIN);
+ }
+ imapCommand *cmd = doCommand (imapCommand::clientRename (sBox, dBox));
+ if (cmd->result () != "OK") {
+ error (ERR_CANNOT_RENAME, src.path());
+ completeQueue.removeRef (cmd);
+ return;
+ }
+ completeQueue.removeRef (cmd);
+ }
+ break;
+
+ case ITYPE_MSG:
+ case ITYPE_ATTACH:
+ case ITYPE_UNKNOWN:
+ error (ERR_CANNOT_RENAME, src.path());
+ break;
+ }
+ }
+ else
+ {
+ error (ERR_CANNOT_RENAME, src.path());
+ return;
+ }
+ finished ();
+}
+
+void
+IMAP4Protocol::slave_status ()
+{
+ bool connected = (getState() != ISTATE_NO) && isConnectionValid();
+ kdDebug(7116) << "IMAP4::slave_status " << connected << endl;
+ slaveStatus ( connected ? myHost : TQString(), connected );
+}
+
+void
+IMAP4Protocol::dispatch (int command, const TQByteArray & data)
+{
+ kdDebug(7116) << "IMAP4::dispatch - command=" << command << endl;
+ TDEIO::TCPSlaveBase::dispatch (command, data);
+}
+
+void
+IMAP4Protocol::stat (const KURL & _url)
+{
+ kdDebug(7116) << "IMAP4::stat - " << _url.prettyURL() << endl;
+ TQString aBox, aSequence, aLType, aSection, aValidity, aDelimiter, aInfo;
+ // parseURL with caching
+ enum IMAP_TYPE aType =
+ parseURL (_url, aBox, aSection, aLType, aSequence, aValidity, aDelimiter,
+ aInfo, true);
+
+ UDSEntry entry;
+ UDSAtom atom;
+
+ atom.m_uds = UDS_NAME;
+ atom.m_str = aBox;
+ entry.append (atom);
+
+ if (!aSection.isEmpty())
+ {
+ if (getState() == ISTATE_SELECT && aBox == getCurrentBox())
+ {
+ imapCommand *cmd = doCommand (imapCommand::clientClose());
+ bool ok = cmd->result() == "OK";
+ completeQueue.removeRef(cmd);
+ if (!ok)
+ {
+ error(ERR_COULD_NOT_STAT, aBox);
+ return;
+ }
+ setState(ISTATE_LOGIN);
+ }
+ bool ok = false;
+ TQString cmdInfo;
+ if (aType == ITYPE_MSG || aType == ITYPE_ATTACH)
+ ok = true;
+ else
+ {
+ imapCommand *cmd = doCommand(imapCommand::clienStatus(aBox, aSection));
+ ok = cmd->result() == "OK";
+ cmdInfo = cmd->resultInfo();
+ completeQueue.removeRef(cmd);
+ }
+ if (!ok)
+ {
+ bool found = false;
+ imapCommand *cmd = doCommand (imapCommand::clientList ("", aBox));
+ if (cmd->result () == "OK")
+ {
+ for (TQValueListIterator < imapList > it = listResponses.begin ();
+ it != listResponses.end (); ++it)
+ {
+ if (aBox == (*it).name ()) found = true;
+ }
+ }
+ completeQueue.removeRef (cmd);
+ if (found)
+ error(ERR_COULD_NOT_STAT, aBox);
+ else
+ error(TDEIO::ERR_DOES_NOT_EXIST, aBox);
+ return;
+ }
+ if ((aSection == "UIDNEXT" && geStatus().uidNextAvailable())
+ || (aSection == "UNSEEN" && geStatus().unseenAvailable()))
+ {
+ atom.m_uds = UDS_SIZE;
+ atom.m_str = TQString();
+ atom.m_long = (aSection == "UIDNEXT") ? geStatus().uidNext()
+ : geStatus().unseen();
+ entry.append(atom);
+ }
+ } else
+ if (aType == ITYPE_BOX || aType == ITYPE_DIR_AND_BOX || aType == ITYPE_MSG ||
+ aType == ITYPE_ATTACH)
+ {
+ ulong validity = 0;
+ // see if the box is already in select/examine state
+ if (aBox == getCurrentBox ())
+ validity = selectInfo.uidValidity ();
+ else
+ {
+ // do a status lookup on the box
+ // only do this if the box is not selected
+ // the server might change the validity for new select/examine
+ imapCommand *cmd =
+ doCommand (imapCommand::clienStatus (aBox, "UIDVALIDITY"));
+ completeQueue.removeRef (cmd);
+ validity = geStatus ().uidValidity ();
+ }
+ validity = 0; // temporary
+
+ if (aType == ITYPE_BOX || aType == ITYPE_DIR_AND_BOX)
+ {
+ // has no or an invalid uidvalidity
+ if (validity > 0 && validity != aValidity.toULong ())
+ {
+ //redirect
+ KURL newUrl = _url;
+
+ newUrl.setPath ("/" + aBox + ";UIDVALIDITY=" +
+ TQString::number(validity));
+ kdDebug(7116) << "IMAP4::stat - redirecting to " << newUrl.prettyURL() << endl;
+ redirection (newUrl);
+ }
+ }
+ else if (aType == ITYPE_MSG || aType == ITYPE_ATTACH)
+ {
+ //must determine if this message exists
+ //cause konqueror will check this on paste operations
+
+ // has an invalid uidvalidity
+ // or no messages in box
+ if (validity > 0 && validity != aValidity.toULong ())
+ {
+ aType = ITYPE_UNKNOWN;
+ kdDebug(7116) << "IMAP4::stat - url has invalid validity [" << validity << "d] " << _url.prettyURL() << endl;
+ }
+ }
+ }
+
+ atom.m_uds = UDS_MIME_TYPE;
+ atom.m_str = getMimeType (aType);
+ entry.append (atom);
+
+ kdDebug(7116) << "IMAP4: stat: " << atom.m_str << endl;
+ switch (aType)
+ {
+ case ITYPE_DIR:
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_str = TQString();
+ atom.m_long = S_IFDIR;
+ entry.append (atom);
+ break;
+
+ case ITYPE_BOX:
+ case ITYPE_DIR_AND_BOX:
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_str = TQString();
+ atom.m_long = S_IFDIR;
+ entry.append (atom);
+ break;
+
+ case ITYPE_MSG:
+ case ITYPE_ATTACH:
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_str = TQString();
+ atom.m_long = S_IFREG;
+ entry.append (atom);
+ break;
+
+ case ITYPE_UNKNOWN:
+ error (ERR_DOES_NOT_EXIST, _url.prettyURL());
+ break;
+ }
+
+ statEntry (entry);
+ kdDebug(7116) << "IMAP4::stat - Finishing stat" << endl;
+ finished ();
+}
+
+void IMAP4Protocol::openConnection()
+{
+ if (makeLogin()) connected();
+}
+
+void IMAP4Protocol::closeConnection()
+{
+ if (getState() == ISTATE_NO) return;
+ if (getState() == ISTATE_SELECT && metaData("expunge") == "auto")
+ {
+ imapCommand *cmd = doCommand (imapCommand::clientExpunge());
+ completeQueue.removeRef (cmd);
+ }
+ if (getState() != ISTATE_CONNECT)
+ {
+ imapCommand *cmd = doCommand (imapCommand::clientLogout());
+ completeQueue.removeRef (cmd);
+ }
+ closeDescriptor();
+ setState(ISTATE_NO);
+ completeQueue.clear();
+ sentQueue.clear();
+ lastHandled = 0;
+ currentBox = TQString();
+ readBufferLen = 0;
+}
+
+bool IMAP4Protocol::makeLogin ()
+{
+ if (getState () == ISTATE_LOGIN || getState () == ISTATE_SELECT)
+ return true;
+
+ kdDebug(7116) << "IMAP4::makeLogin - checking login" << endl;
+ bool alreadyConnected = getState() == ISTATE_CONNECT;
+ kdDebug(7116) << "IMAP4::makeLogin - alreadyConnected " << alreadyConnected << endl;
+ if (alreadyConnected || connectToHost (myHost.latin1(), myPort))
+ {
+// fcntl (m_iSock, F_SETFL, (fcntl (m_iSock, F_GETFL) | O_NDELAY));
+
+ setState(ISTATE_CONNECT);
+
+ myAuth = metaData("auth");
+ myTLS = metaData("tls");
+ kdDebug(7116) << "myAuth: " << myAuth << endl;
+
+ imapCommand *cmd;
+
+ unhandled.clear ();
+ if (!alreadyConnected) while (!parseLoop ()) ; //get greeting
+ TQString greeting;
+ if (!unhandled.isEmpty()) greeting = unhandled.first().stripWhiteSpace();
+ unhandled.clear (); //get rid of it
+ cmd = doCommand (new imapCommand ("CAPABILITY", ""));
+
+ kdDebug(7116) << "IMAP4: setHost: capability" << endl;
+ for (TQStringList::Iterator it = imapCapabilities.begin ();
+ it != imapCapabilities.end (); ++it)
+ {
+ kdDebug(7116) << "'" << (*it) << "'" << endl;
+ }
+ completeQueue.removeRef (cmd);
+
+ if (!hasCapability("IMAP4") && !hasCapability("IMAP4rev1"))
+ {
+ error(ERR_COULD_NOT_LOGIN, i18n("The server %1 supports neither "
+ "IMAP4 nor IMAP4rev1.\nIt identified itself with: %2")
+ .arg(myHost).arg(greeting));
+ closeConnection();
+ return false;
+ }
+
+ if (metaData("nologin") == "on") return TRUE;
+
+ if (myTLS == "on" && !hasCapability(TQString("STARTTLS")))
+ {
+ error(ERR_COULD_NOT_LOGIN, i18n("The server does not support TLS.\n"
+ "Disable this security feature to connect unencrypted."));
+ closeConnection();
+ return false;
+ }
+ if ((myTLS == "on" || (canUseTLS() && myTLS != "off")) &&
+ hasCapability(TQString("STARTTLS")))
+ {
+ imapCommand *cmd = doCommand (imapCommand::clientStartTLS());
+ if (cmd->result () == "OK")
+ {
+ completeQueue.removeRef(cmd);
+ int tlsrc = startTLS();
+ if (tlsrc == 1)
+ {
+ kdDebug(7116) << "TLS mode has been enabled." << endl;
+ imapCommand *cmd2 = doCommand (new imapCommand ("CAPABILITY", ""));
+ for (TQStringList::Iterator it = imapCapabilities.begin ();
+ it != imapCapabilities.end (); ++it)
+ {
+ kdDebug(7116) << "'" << (*it) << "'" << endl;
+ }
+ completeQueue.removeRef (cmd2);
+ } else {
+ kdWarning(7116) << "TLS mode setup has failed. Aborting." << endl;
+ error (ERR_COULD_NOT_LOGIN, i18n("Starting TLS failed."));
+ closeConnection();
+ return false;
+ }
+ } else completeQueue.removeRef(cmd);
+ }
+
+ if (myAuth.isEmpty () || myAuth == "*") {
+ if (hasCapability (TQString ("LOGINDISABLED"))) {
+ error (ERR_COULD_NOT_LOGIN, i18n("LOGIN is disabled by the server."));
+ closeConnection();
+ return false;
+ }
+ }
+ else {
+ if (!hasCapability (TQString ("AUTH=") + myAuth)) {
+ error (ERR_COULD_NOT_LOGIN, i18n("The authentication method %1 is not "
+ "supported by the server.").arg(myAuth));
+ closeConnection();
+ return false;
+ }
+ }
+
+ if ( greeting.contains( TQRegExp( "Cyrus IMAP4 v2.1" ) ) ) {
+ removeCapability( "ANNOTATEMORE" );
+ }
+
+ // starting from Cyrus IMAP 2.3.9, shared seen flags are available
+ TQRegExp regExp( "Cyrus\\sIMAP[4]{0,1}\\sv(\\d+)\\.(\\d+)\\.(\\d+)", false );
+ if ( regExp.search( greeting ) >= 0 ) {
+ const int major = regExp.cap( 1 ).toInt();
+ const int minor = regExp.cap( 2 ).toInt();
+ const int patch = regExp.cap( 3 ).toInt();
+ if ( major > 2 || (major == 2 && (minor > 3 || (minor == 3 && patch > 9))) ) {
+ kdDebug(7116) << k_funcinfo << "Cyrus IMAP >= 2.3.9 detected, enabling shared seen flag support" << endl;
+ imapCapabilities.append( "x-kmail-sharedseen" );
+ }
+ }
+
+ kdDebug(7116) << "IMAP4::makeLogin - attempting login" << endl;
+
+ TDEIO::AuthInfo authInfo;
+ authInfo.username = myUser;
+ authInfo.password = myPass;
+ authInfo.prompt = i18n ("Username and password for your IMAP account:");
+
+ kdDebug(7116) << "IMAP4::makeLogin - open_PassDlg said user=" << myUser << " pass=xx" << endl;
+
+ TQString resultInfo;
+ if (myAuth.isEmpty () || myAuth == "*")
+ {
+ if (myUser.isEmpty () || myPass.isEmpty ()) {
+ if(openPassDlg (authInfo)) {
+ myUser = authInfo.username;
+ myPass = authInfo.password;
+ }
+ }
+ if (!clientLogin (myUser, myPass, resultInfo))
+ error(TDEIO::ERR_COULD_NOT_AUTHENTICATE, i18n("Unable to login. Probably the "
+ "password is wrong.\nThe server %1 replied:\n%2").arg(myHost).arg(resultInfo));
+ }
+ else
+ {
+#ifdef HAVE_LIBSASL2
+ if (!clientAuthenticate (this, authInfo, myHost, myAuth, mySSL, resultInfo))
+ error(TDEIO::ERR_COULD_NOT_AUTHENTICATE, i18n("Unable to authenticate via %1.\n"
+ "The server %2 replied:\n%3").arg(myAuth).arg(myHost).arg(resultInfo));
+ else {
+ myUser = authInfo.username;
+ myPass = authInfo.password;
+ }
+#else
+ error(TDEIO::ERR_COULD_NOT_LOGIN, i18n("SASL authentication is not compiled into tdeio_imap4."));
+#endif
+ }
+ if ( hasCapability("NAMESPACE") )
+ {
+ // get all namespaces and save the namespace - delimiter association
+ cmd = doCommand( imapCommand::clientNamespace() );
+ if (cmd->result () == "OK")
+ {
+ kdDebug(7116) << "makeLogin - registered namespaces" << endl;
+ }
+ completeQueue.removeRef (cmd);
+ }
+ // get the default delimiter (empty listing)
+ cmd = doCommand( imapCommand::clientList("", "") );
+ if (cmd->result () == "OK")
+ {
+ TQValueListIterator < imapList > it = listResponses.begin();
+ if ( it == listResponses.end() )
+ {
+ // empty answer - this is a buggy imap server
+ // as a fallback we fire a normal listing and take the first answer
+ completeQueue.removeRef (cmd);
+ cmd = doCommand( imapCommand::clientList("", "%") );
+ if (cmd->result () == "OK")
+ {
+ it = listResponses.begin();
+ }
+ }
+ if ( it != listResponses.end() )
+ {
+ namespaceToDelimiter[TQString()] = (*it).hierarchyDelimiter();
+ kdDebug(7116) << "makeLogin - delimiter for empty ns='" <<
+ (*it).hierarchyDelimiter() << "'" << endl;
+ if ( !hasCapability("NAMESPACE") )
+ {
+ // server does not support namespaces
+ TQString nsentry = TQString::number( 0 ) + "=="
+ + (*it).hierarchyDelimiter();
+ imapNamespaces.append( nsentry );
+ }
+ }
+ }
+ completeQueue.removeRef (cmd);
+ } else {
+ kdDebug(7116) << "makeLogin - NO login" << endl;
+ }
+
+ return getState() == ISTATE_LOGIN;
+}
+
+void
+IMAP4Protocol::parseWriteLine (const TQString & aStr)
+{
+ //kdDebug(7116) << "Writing: " << aStr << endl;
+ TQCString writer = aStr.utf8();
+ int len = writer.length();
+
+ // append CRLF if necessary
+ if (len == 0 || (writer[len - 1] != '\n')) {
+ len += 2;
+ writer += "\r\n";
+ }
+
+ // write it
+ write(writer.data(), len);
+}
+
+TQString
+IMAP4Protocol::getMimeType (enum IMAP_TYPE aType)
+{
+ switch (aType)
+ {
+ case ITYPE_DIR:
+ return "inode/directory";
+ break;
+
+ case ITYPE_BOX:
+ return "message/digest";
+ break;
+
+ case ITYPE_DIR_AND_BOX:
+ return "message/directory";
+ break;
+
+ case ITYPE_MSG:
+ return "message/rfc822";
+ break;
+
+ // this should be handled by flushOutput
+ case ITYPE_ATTACH:
+ return "application/octet-stream";
+ break;
+
+ case ITYPE_UNKNOWN:
+ default:
+ return "unknown/unknown";
+ }
+}
+
+
+
+void
+IMAP4Protocol::doListEntry (const KURL & _url, int stretch, imapCache * cache,
+ bool withFlags, bool withSubject)
+{
+ KURL aURL = _url;
+ aURL.setQuery (TQString());
+ const TQString encodedUrl = aURL.url(0, 106); // utf-8
+ doListEntry(encodedUrl, stretch, cache, withFlags, withSubject);
+}
+
+
+
+void
+IMAP4Protocol::doListEntry (const TQString & encodedUrl, int stretch, imapCache * cache,
+ bool withFlags, bool withSubject)
+{
+ if (cache)
+ {
+ UDSEntry entry;
+ UDSAtom atom;
+
+ entry.clear ();
+
+ const TQString uid = TQString::number(cache->getUid());
+
+ atom.m_uds = UDS_NAME;
+ atom.m_str = uid;
+ atom.m_long = 0;
+ if (stretch > 0)
+ {
+ atom.m_str = "0000000000000000" + atom.m_str;
+ atom.m_str = atom.m_str.right (stretch);
+ }
+ if (withSubject)
+ {
+ mailHeader *header = cache->getHeader();
+ if (header)
+ atom.m_str += " " + header->getSubject();
+ }
+ entry.append (atom);
+
+ atom.m_uds = UDS_URL;
+ atom.m_str = encodedUrl; // utf-8
+ if (atom.m_str[atom.m_str.length () - 1] != '/')
+ atom.m_str += '/';
+ atom.m_str += ";UID=" + uid;
+ atom.m_long = 0;
+ entry.append (atom);
+
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_str = TQString();
+ atom.m_long = S_IFREG;
+ entry.append (atom);
+
+ atom.m_uds = UDS_SIZE;
+ atom.m_long = cache->getSize();
+ entry.append (atom);
+
+ atom.m_uds = UDS_MIME_TYPE;
+ atom.m_str = "message/rfc822";
+ atom.m_long = 0;
+ entry.append (atom);
+
+ atom.m_uds = UDS_USER;
+ atom.m_str = myUser;
+ entry.append (atom);
+
+ atom.m_uds = TDEIO::UDS_ACCESS;
+ atom.m_long = (withFlags) ? cache->getFlags() : S_IRUSR | S_IXUSR | S_IWUSR;
+ entry.append (atom);
+
+ listEntry (entry, false);
+ }
+}
+
+void
+IMAP4Protocol::doListEntry (const KURL & _url, const TQString & myBox,
+ const imapList & item, bool appendPath)
+{
+ KURL aURL = _url;
+ aURL.setQuery (TQString());
+ UDSEntry entry;
+ UDSAtom atom;
+ int hdLen = item.hierarchyDelimiter().length();
+
+ {
+ // mailboxName will be appended to the path if appendPath is true
+ TQString mailboxName = item.name ();
+
+ // some beautification
+ if (mailboxName.find (myBox) == 0 && mailboxName.length() > myBox.length())
+ {
+ mailboxName =
+ mailboxName.right (mailboxName.length () - myBox.length ());
+ }
+ if (mailboxName[0] == '/')
+ mailboxName = mailboxName.right (mailboxName.length () - 1);
+ if (mailboxName.left(hdLen) == item.hierarchyDelimiter())
+ mailboxName = mailboxName.right(mailboxName.length () - hdLen);
+ if (mailboxName.right(hdLen) == item.hierarchyDelimiter())
+ mailboxName.truncate(mailboxName.length () - hdLen);
+
+ atom.m_uds = UDS_NAME;
+ if (!item.hierarchyDelimiter().isEmpty() &&
+ mailboxName.find(item.hierarchyDelimiter()) != -1)
+ atom.m_str = mailboxName.section(item.hierarchyDelimiter(), -1);
+ else
+ atom.m_str = mailboxName;
+
+ // konqueror will die with an assertion failure otherwise
+ if (atom.m_str.isEmpty ())
+ atom.m_str = "..";
+
+ if (!atom.m_str.isEmpty ())
+ {
+ atom.m_long = 0;
+ entry.append (atom);
+
+ if (!item.noSelect ())
+ {
+ atom.m_uds = UDS_MIME_TYPE;
+ if (!item.noInferiors ())
+ {
+ atom.m_str = "message/directory";
+ } else {
+ atom.m_str = "message/digest";
+ }
+ atom.m_long = 0;
+ entry.append (atom);
+ mailboxName += '/';
+
+ // explicitly set this as a directory for KFileDialog
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_str = TQString();
+ atom.m_long = S_IFDIR;
+ entry.append (atom);
+ }
+ else if (!item.noInferiors ())
+ {
+ atom.m_uds = UDS_MIME_TYPE;
+ atom.m_str = "inode/directory";
+ atom.m_long = 0;
+ entry.append (atom);
+ mailboxName += '/';
+
+ // explicitly set this as a directory for KFileDialog
+ atom.m_uds = UDS_FILE_TYPE;
+ atom.m_str = TQString();
+ atom.m_long = S_IFDIR;
+ entry.append (atom);
+ }
+ else
+ {
+ atom.m_uds = UDS_MIME_TYPE;
+ atom.m_str = "unknown/unknown";
+ atom.m_long = 0;
+ entry.append (atom);
+ }
+
+ atom.m_uds = UDS_URL;
+ TQString path = aURL.path();
+ atom.m_str = aURL.url (0, 106); // utf-8
+ if (appendPath)
+ {
+ if (path[path.length() - 1] == '/' && !path.isEmpty() && path != "/")
+ path.truncate(path.length() - 1);
+ if (!path.isEmpty() && path != "/"
+ && path.right(hdLen) != item.hierarchyDelimiter()) {
+ path += item.hierarchyDelimiter();
+ }
+ path += mailboxName;
+ if (path.upper() == "/INBOX/") {
+ // make sure the client can rely on INBOX
+ path = path.upper();
+ }
+ }
+ aURL.setPath(path);
+ atom.m_str = aURL.url(0, 106); // utf-8
+ atom.m_long = 0;
+ entry.append (atom);
+
+ atom.m_uds = UDS_USER;
+ atom.m_str = myUser;
+ entry.append (atom);
+
+ atom.m_uds = UDS_ACCESS;
+ atom.m_long = S_IRUSR | S_IXUSR | S_IWUSR;
+ entry.append (atom);
+
+ atom.m_uds = UDS_EXTRA;
+ atom.m_str = item.attributesAsString();
+ atom.m_long = 0;
+ entry.append (atom);
+
+ listEntry (entry, false);
+ }
+ }
+}
+
+enum IMAP_TYPE
+IMAP4Protocol::parseURL (const KURL & _url, TQString & _box,
+ TQString & _section, TQString & _type, TQString & _uid,
+ TQString & _validity, TQString & _hierarchyDelimiter,
+ TQString & _info, bool cache)
+{
+ enum IMAP_TYPE retVal;
+ retVal = ITYPE_UNKNOWN;
+
+ imapParser::parseURL (_url, _box, _section, _type, _uid, _validity, _info);
+// kdDebug(7116) << "URL: query - '" << KURL::decode_string(_url.query()) << "'" << endl;
+
+ // get the delimiter
+ TQString myNamespace = namespaceForBox( _box );
+ kdDebug(7116) << "IMAP4::parseURL - namespace=" << myNamespace << endl;
+ if ( namespaceToDelimiter.contains(myNamespace) )
+ {
+ _hierarchyDelimiter = namespaceToDelimiter[myNamespace];
+ kdDebug(7116) << "IMAP4::parseURL - delimiter=" << _hierarchyDelimiter << endl;
+ }
+
+ if (!_box.isEmpty ())
+ {
+ kdDebug(7116) << "IMAP4::parseURL - box=" << _box << endl;
+
+ if (makeLogin ())
+ {
+ if (getCurrentBox () != _box ||
+ _type == "LIST" || _type == "LSUB" || _type == "LSUBNOCHECK")
+ {
+ if ( cache )
+ {
+ // assume a normal box
+ retVal = ITYPE_DIR_AND_BOX;
+ } else
+ {
+ // start a listing for the box to get the type
+ imapCommand *cmd;
+
+ cmd = doCommand (imapCommand::clientList ("", _box));
+ if (cmd->result () == "OK")
+ {
+ for (TQValueListIterator < imapList > it = listResponses.begin ();
+ it != listResponses.end (); ++it)
+ {
+ //kdDebug(7116) << "IMAP4::parseURL - checking " << _box << " to " << (*it).name() << endl;
+ if (_box == (*it).name ())
+ {
+ if ( !(*it).hierarchyDelimiter().isEmpty() )
+ _hierarchyDelimiter = (*it).hierarchyDelimiter();
+ if ((*it).noSelect ())
+ {
+ retVal = ITYPE_DIR;
+ }
+ else if ((*it).noInferiors ())
+ {
+ retVal = ITYPE_BOX;
+ }
+ else
+ {
+ retVal = ITYPE_DIR_AND_BOX;
+ }
+ }
+ }
+ // if we got no list response for the box see if it's a prefix
+ if ( retVal == ITYPE_UNKNOWN &&
+ namespaceToDelimiter.contains(_box) ) {
+ retVal = ITYPE_DIR;
+ }
+ } else {
+ kdDebug(7116) << "IMAP4::parseURL - got error for " << _box << endl;
+ }
+ completeQueue.removeRef (cmd);
+ } // cache
+ }
+ else // current == box
+ {
+ retVal = ITYPE_BOX;
+ }
+ }
+ else
+ kdDebug(7116) << "IMAP4::parseURL: no login!" << endl;
+
+ }
+ else // empty box
+ {
+ // the root is just a dir
+ kdDebug(7116) << "IMAP4: parseURL: box [root]" << endl;
+ retVal = ITYPE_DIR;
+ }
+
+ // see if it is a real sequence or a simple uid
+ if (retVal == ITYPE_BOX || retVal == ITYPE_DIR_AND_BOX)
+ {
+ if (!_uid.isEmpty ())
+ {
+ if (_uid.find (':') == -1 && _uid.find (',') == -1
+ && _uid.find ('*') == -1)
+ retVal = ITYPE_MSG;
+ }
+ }
+ if (retVal == ITYPE_MSG)
+ {
+ if ( (_section.find ("BODY.PEEK[", 0, false) != -1 ||
+ _section.find ("BODY[", 0, false) != -1) &&
+ _section.find(".MIME") == -1 &&
+ _section.find(".HEADER") == -1 )
+ retVal = ITYPE_ATTACH;
+ }
+ if ( _hierarchyDelimiter.isEmpty() &&
+ (_type == "LIST" || _type == "LSUB" || _type == "LSUBNOCHECK") )
+ {
+ // this shouldn't happen but when the delimiter is really empty
+ // we try to reconstruct it from the URL
+ if (!_box.isEmpty())
+ {
+ int start = _url.path().findRev(_box);
+ if (start != -1)
+ _hierarchyDelimiter = _url.path().mid(start-1, start);
+ kdDebug(7116) << "IMAP4::parseURL - reconstructed delimiter:" << _hierarchyDelimiter
+ << " from URL " << _url.path() << endl;
+ }
+ if (_hierarchyDelimiter.isEmpty())
+ _hierarchyDelimiter = "/";
+ }
+ kdDebug(7116) << "IMAP4::parseURL - return " << retVal << endl;
+
+ return retVal;
+}
+
+int
+IMAP4Protocol::outputLine (const TQCString & _str, int len)
+{
+ if (len == -1) {
+ len = _str.length();
+ }
+
+ if (cacheOutput)
+ {
+ if ( !outputBuffer.isOpen() ) {
+ outputBuffer.open(IO_WriteOnly);
+ }
+ outputBuffer.at(outputBufferIndex);
+ outputBuffer.writeBlock(_str.data(), len);
+ outputBufferIndex += len;
+ return 0;
+ }
+
+ TQByteArray temp;
+ bool relay = relayEnabled;
+
+ relayEnabled = true;
+ temp.setRawData (_str.data (), len);
+ parseRelay (temp);
+ temp.resetRawData (_str.data (), len);
+
+ relayEnabled = relay;
+ return 0;
+}
+
+void IMAP4Protocol::flushOutput(TQString contentEncoding)
+{
+ // send out cached data to the application
+ if (outputBufferIndex == 0)
+ return;
+ outputBuffer.close();
+ outputCache.resize(outputBufferIndex);
+ if (decodeContent)
+ {
+ // get the coding from the MIME header
+ TQByteArray decoded;
+ if (contentEncoding.find("quoted-printable", 0, false) == 0)
+ decoded = KCodecs::quotedPrintableDecode(outputCache);
+ else if (contentEncoding.find("base64", 0, false) == 0)
+ KCodecs::base64Decode(outputCache, decoded);
+ else
+ decoded = outputCache;
+
+ TQString mimetype = KMimeType::findByContent( decoded )->name();
+ kdDebug(7116) << "IMAP4::flushOutput - mimeType " << mimetype << endl;
+ mimeType(mimetype);
+ decodeContent = false;
+ data( decoded );
+ } else {
+ data( outputCache );
+ }
+ mProcessedSize += outputBufferIndex;
+ processedSize( mProcessedSize );
+ outputBufferIndex = 0;
+ outputCache[0] = '\0';
+ outputBuffer.setBuffer(outputCache);
+}
+
+ssize_t IMAP4Protocol::myRead(void *data, ssize_t len)
+{
+ if (readBufferLen)
+ {
+ ssize_t copyLen = (len < readBufferLen) ? len : readBufferLen;
+ memcpy(data, readBuffer, copyLen);
+ readBufferLen -= copyLen;
+ if (readBufferLen) memmove(readBuffer, &readBuffer[copyLen], readBufferLen);
+ return copyLen;
+ }
+ if (!isConnectionValid()) return 0;
+ waitForResponse( responseTimeout() );
+ return read(data, len);
+}
+
+bool
+IMAP4Protocol::assureBox (const TQString & aBox, bool readonly)
+{
+ if (aBox.isEmpty()) return false;
+
+ imapCommand *cmd = 0;
+
+ if (aBox != getCurrentBox () || (!getSelected().readWrite() && !readonly))
+ {
+ // open the box with the appropriate mode
+ kdDebug(7116) << "IMAP4Protocol::assureBox - opening box" << endl;
+ selectInfo = imapInfo();
+ cmd = doCommand (imapCommand::clientSelect (aBox, readonly));
+ bool ok = cmd->result() == "OK";
+ TQString cmdInfo = cmd->resultInfo();
+ completeQueue.removeRef (cmd);
+
+ if (!ok)
+ {
+ bool found = false;
+ cmd = doCommand (imapCommand::clientList ("", aBox));
+ if (cmd->result () == "OK")
+ {
+ for (TQValueListIterator < imapList > it = listResponses.begin ();
+ it != listResponses.end (); ++it)
+ {
+ if (aBox == (*it).name ()) found = true;
+ }
+ }
+ completeQueue.removeRef (cmd);
+ if (found) {
+ if (cmdInfo.find("permission", 0, false) != -1) {
+ // not allowed to enter this folder
+ error(ERR_ACCESS_DENIED, cmdInfo);
+ } else {
+ error(ERR_SLAVE_DEFINED, i18n("Unable to open folder %1. The server replied: %2").arg(aBox).arg(cmdInfo));
+ }
+ } else {
+ error(TDEIO::ERR_DOES_NOT_EXIST, aBox);
+ }
+ return false;
+ }
+ }
+ else
+ {
+ // Give the server a chance to deliver updates every ten seconds.
+ // Doing this means a server roundtrip and since assureBox is called
+ // after every mail, we do it with a timeout.
+ kdDebug(7116) << "IMAP4Protocol::assureBox - reusing box" << endl;
+ if ( mTimeOfLastNoop.secsTo( TQDateTime::currentDateTime() ) > 10 ) {
+ cmd = doCommand (imapCommand::clientNoop ());
+ completeQueue.removeRef (cmd);
+ mTimeOfLastNoop = TQDateTime::currentDateTime();
+ kdDebug(7116) << "IMAP4Protocol::assureBox - noop timer fired" << endl;
+ }
+ }
+
+ // if it is the mode we want
+ if (!getSelected().readWrite() && !readonly)
+ {
+ error(TDEIO::ERR_CANNOT_OPEN_FOR_WRITING, aBox);
+ return false;
+ }
+
+ return true;
+}
diff --git a/tdeioslave/imap4/imapcommand.cc b/tdeioslave/imap4/imapcommand.cc
deleted file mode 100644
index e3e68fa8..00000000
--- a/tdeioslave/imap4/imapcommand.cc
+++ /dev/null
@@ -1,408 +0,0 @@
-/**********************************************************************
- *
- * imapcommand.cc - IMAP4rev1 command handler
- * Copyright (C) 2000 Sven Carstens <s.carstens@gmx.de>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Send comments and bug fixes to s.carstens@gmx.de
- *
- *********************************************************************/
-
-#include "imapcommand.h"
-#include "rfcdecoder.h"
-
-/*#include <stdlib.h>
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <sys/stat.h>
-
-#include <fcntl.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#include <errno.h>
-#include <signal.h>
-#include <stdio.h>
-#include <netdb.h>
-#include <unistd.h>
-#include <stdlib.h>
-
-#include <tqregexp.h>
-#include <tqbuffer.h>
-
-#include <tdeprotocolmanager.h>
-#include <ksock.h>
-#include <kdebug.h>
-#include <kinstance.h>
-#include <tdeio/connection.h>
-#include <tdeio/slaveinterface.h>
-#include <tdeio/passdlg.h>
-#include <tdelocale.h> */
-
-imapCommand::imapCommand ()
-{
- mComplete = false;
- mId = TQString();
-}
-
-imapCommand::imapCommand (const TQString & command, const TQString & parameter)
-// aCommand(NULL),
-// mResult(NULL),
-// mParameter(NULL)
-{
- mComplete = false;
- aCommand = command;
- aParameter = parameter;
- mId = TQString();
-}
-
-bool
-imapCommand::isComplete ()
-{
- return mComplete;
-}
-
-const TQString &
-imapCommand::result ()
-{
- return mResult;
-}
-
-const TQString &
-imapCommand::resultInfo ()
-{
- return mResultInfo;
-}
-
-const TQString &
-imapCommand::id ()
-{
- return mId;
-}
-
-const TQString &
-imapCommand::parameter ()
-{
- return aParameter;
-}
-
-const TQString &
-imapCommand::command ()
-{
- return aCommand;
-}
-
-void
-imapCommand::setId (const TQString & id)
-{
- if (mId.isEmpty ())
- mId = id;
-}
-
-void
-imapCommand::setComplete ()
-{
- mComplete = true;
-}
-
-void
-imapCommand::setResult (const TQString & result)
-{
- mResult = result;
-}
-
-void
-imapCommand::setResultInfo (const TQString & result)
-{
- mResultInfo = result;
-}
-
-void
-imapCommand::setCommand (const TQString & command)
-{
- aCommand = command;
-}
-
-void
-imapCommand::setParameter (const TQString & parameter)
-{
- aParameter = parameter;
-}
-
-const TQString
-imapCommand::getStr ()
-{
- if (parameter().isEmpty())
- return id() + " " + command() + "\r\n";
- else
- return id() + " " + command() + " " + parameter() + "\r\n";
-}
-
-imapCommand *
-imapCommand::clientNoop ()
-{
- return new imapCommand ("NOOP", "");
-}
-
-imapCommand *
-imapCommand::clientFetch (ulong uid, const TQString & fields, bool nouid)
-{
- return clientFetch (uid, uid, fields, nouid);
-}
-
-imapCommand *
-imapCommand::clientFetch (ulong fromUid, ulong toUid, const TQString & fields,
- bool nouid)
-{
- TQString uid = TQString::number(fromUid);
-
- if (fromUid != toUid)
- {
- uid += ":";
- if (toUid < fromUid)
- uid += "*";
- else
- uid += TQString::number(toUid);
- }
- return clientFetch (uid, fields, nouid);
-}
-
-imapCommand *
-imapCommand::clientFetch (const TQString & sequence, const TQString & fields,
- bool nouid)
-{
- return new imapCommand (nouid ? "FETCH" : "UID FETCH",
- sequence + " (" + fields + ")");
-}
-
-imapCommand *
-imapCommand::clientList (const TQString & reference, const TQString & path,
- bool lsub)
-{
- return new imapCommand (lsub ? "LSUB" : "LIST",
- TQString ("\"") + rfcDecoder::toIMAP (reference) +
- "\" \"" + rfcDecoder::toIMAP (path) + "\"");
-}
-
-imapCommand *
-imapCommand::clientSelect (const TQString & path, bool examine)
-{
- Q_UNUSED(examine);
- /** @note We use always SELECT, because UW-IMAP doesn't check for new mail, when
- used with the "mbox driver" and the folder is opened with EXAMINE
- and Courier can't append to a mailbox that is in EXAMINE state */
- return new imapCommand ("SELECT",
- TQString ("\"") + rfcDecoder::toIMAP (path) + "\"");
-}
-
-imapCommand *
-imapCommand::clientClose()
-{
- return new imapCommand("CLOSE", "");
-}
-
-imapCommand *
-imapCommand::clientCopy (const TQString & box, const TQString & sequence,
- bool nouid)
-{
- return new imapCommand (nouid ? "COPY" : "UID COPY",
- sequence + " \"" + rfcDecoder::toIMAP (box) + "\"");
-}
-
-imapCommand *
-imapCommand::clientAppend (const TQString & box, const TQString & flags,
- ulong size)
-{
- return new imapCommand ("APPEND",
- "\"" + rfcDecoder::toIMAP (box) + "\" " +
- ((flags.isEmpty()) ? "" : ("(" + flags + ") ")) +
- "{" + TQString::number(size) + "}");
-}
-
-imapCommand *
-imapCommand::clienStatus (const TQString & path, const TQString & parameters)
-{
- return new imapCommand ("STATUS",
- TQString ("\"") + rfcDecoder::toIMAP (path) +
- "\" (" + parameters + ")");
-}
-
-imapCommand *
-imapCommand::clientCreate (const TQString & path)
-{
- return new imapCommand ("CREATE",
- TQString ("\"") + rfcDecoder::toIMAP (path) + "\"");
-}
-
-imapCommand *
-imapCommand::clientDelete (const TQString & path)
-{
- return new imapCommand ("DELETE",
- TQString ("\"") + rfcDecoder::toIMAP (path) + "\"");
-}
-
-imapCommand *
-imapCommand::clientSubscribe (const TQString & path)
-{
- return new imapCommand ("SUBSCRIBE",
- TQString ("\"") + rfcDecoder::toIMAP (path) + "\"");
-}
-
-imapCommand *
-imapCommand::clientUnsubscribe (const TQString & path)
-{
- return new imapCommand ("UNSUBSCRIBE",
- TQString ("\"") + rfcDecoder::toIMAP (path) + "\"");
-}
-
-imapCommand *
-imapCommand::clientExpunge ()
-{
- return new imapCommand ("EXPUNGE", TQString (""));
-}
-
-imapCommand *
-imapCommand::clientRename (const TQString & src, const TQString & dest)
-{
- return new imapCommand ("RENAME",
- TQString ("\"") + rfcDecoder::toIMAP (src) +
- "\" \"" + rfcDecoder::toIMAP (dest) + "\"");
-}
-
-imapCommand *
-imapCommand::clientSearch (const TQString & search, bool nouid)
-{
- return new imapCommand (nouid ? "SEARCH" : "UID SEARCH", search);
-}
-
-imapCommand *
-imapCommand::clientStore (const TQString & set, const TQString & item,
- const TQString & data, bool nouid)
-{
- return new imapCommand (nouid ? "STORE" : "UID STORE",
- set + " " + item + " (" + data + ")");
-}
-
-imapCommand *
-imapCommand::clientLogout ()
-{
- return new imapCommand ("LOGOUT", "");
-}
-
-imapCommand *
-imapCommand::clientStartTLS ()
-{
- return new imapCommand ("STARTTLS", "");
-}
-
-imapCommand *
-imapCommand::clientSetACL( const TQString& box, const TQString& user, const TQString& acl )
-{
- return new imapCommand ("SETACL", TQString("\"") + rfcDecoder::toIMAP (box)
- + "\" \"" + rfcDecoder::toIMAP (user)
- + "\" \"" + rfcDecoder::toIMAP (acl) + "\"");
-}
-
-imapCommand *
-imapCommand::clientDeleteACL( const TQString& box, const TQString& user )
-{
- return new imapCommand ("DELETEACL", TQString("\"") + rfcDecoder::toIMAP (box)
- + "\" \"" + rfcDecoder::toIMAP (user)
- + "\"");
-}
-
-imapCommand *
-imapCommand::clientGetACL( const TQString& box )
-{
- return new imapCommand ("GETACL", TQString("\"") + rfcDecoder::toIMAP (box)
- + "\"");
-}
-
-imapCommand *
-imapCommand::clientListRights( const TQString& box, const TQString& user )
-{
- return new imapCommand ("LISTRIGHTS", TQString("\"") + rfcDecoder::toIMAP (box)
- + "\" \"" + rfcDecoder::toIMAP (user)
- + "\"");
-}
-
-imapCommand *
-imapCommand::clientMyRights( const TQString& box )
-{
- return new imapCommand ("MYRIGHTS", TQString("\"") + rfcDecoder::toIMAP (box)
- + "\"");
-}
-
-imapCommand *
-imapCommand::clientSetAnnotation( const TQString& box, const TQString& entry, const TQMap<TQString, TQString>& attributes )
-{
- TQString parameter = TQString("\"") + rfcDecoder::toIMAP (box)
- + "\" \"" + rfcDecoder::toIMAP (entry)
- + "\" (";
- for( TQMap<TQString,TQString>::ConstIterator it = attributes.begin(); it != attributes.end(); ++it ) {
- parameter += "\"";
- parameter += rfcDecoder::toIMAP (it.key());
- parameter += "\" \"";
- parameter += rfcDecoder::toIMAP (it.data());
- parameter += "\" ";
- }
- // Turn last space into a ')'
- parameter[parameter.length()-1] = ')';
-
- return new imapCommand ("SETANNOTATION", parameter);
-}
-
-imapCommand *
-imapCommand::clientGetAnnotation( const TQString& box, const TQString& entry, const TQStringList& attributeNames )
-{
- TQString parameter = TQString("\"") + rfcDecoder::toIMAP (box)
- + "\" \"" + rfcDecoder::toIMAP (entry)
- + "\" ";
- if ( attributeNames.count() == 1 )
- parameter += "\"" + rfcDecoder::toIMAP (attributeNames.first()) + '"';
- else {
- parameter += '(';
- for( TQStringList::ConstIterator it = attributeNames.begin(); it != attributeNames.end(); ++it ) {
- parameter += "\"" + rfcDecoder::toIMAP (*it) + "\" ";
- }
- // Turn last space into a ')'
- parameter[parameter.length()-1] = ')';
- }
- return new imapCommand ("GETANNOTATION", parameter);
-}
-
-imapCommand *
-imapCommand::clientNamespace()
-{
- return new imapCommand("NAMESPACE", "");
-}
-
-imapCommand *
-imapCommand::clientGetQuotaroot( const TQString& box )
-{
- TQString parameter = TQString("\"") + rfcDecoder::toIMAP (box) + '"';
- return new imapCommand ("GETQUOTAROOT", parameter);
-}
-
-imapCommand *
-imapCommand::clientCustom( const TQString& command, const TQString& arguments )
-{
- return new imapCommand (command, arguments);
-}
-
diff --git a/tdeioslave/imap4/imapcommand.cpp b/tdeioslave/imap4/imapcommand.cpp
new file mode 100644
index 00000000..97d0a91c
--- /dev/null
+++ b/tdeioslave/imap4/imapcommand.cpp
@@ -0,0 +1,408 @@
+/**********************************************************************
+ *
+ * imapcommand.cpp - IMAP4rev1 command handler
+ * Copyright (C) 2000 Sven Carstens <s.carstens@gmx.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Send comments and bug fixes to s.carstens@gmx.de
+ *
+ *********************************************************************/
+
+#include "imapcommand.h"
+#include "rfcdecoder.h"
+
+/*#include <stdlib.h>
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/wait.h>
+#include <sys/stat.h>
+
+#include <fcntl.h>
+
+#include <netinet/in.h>
+#include <arpa/inet.h>
+
+#include <errno.h>
+#include <signal.h>
+#include <stdio.h>
+#include <netdb.h>
+#include <unistd.h>
+#include <stdlib.h>
+
+#include <tqregexp.h>
+#include <tqbuffer.h>
+
+#include <tdeprotocolmanager.h>
+#include <ksock.h>
+#include <kdebug.h>
+#include <kinstance.h>
+#include <tdeio/connection.h>
+#include <tdeio/slaveinterface.h>
+#include <tdeio/passdlg.h>
+#include <tdelocale.h> */
+
+imapCommand::imapCommand ()
+{
+ mComplete = false;
+ mId = TQString();
+}
+
+imapCommand::imapCommand (const TQString & command, const TQString & parameter)
+// aCommand(NULL),
+// mResult(NULL),
+// mParameter(NULL)
+{
+ mComplete = false;
+ aCommand = command;
+ aParameter = parameter;
+ mId = TQString();
+}
+
+bool
+imapCommand::isComplete ()
+{
+ return mComplete;
+}
+
+const TQString &
+imapCommand::result ()
+{
+ return mResult;
+}
+
+const TQString &
+imapCommand::resultInfo ()
+{
+ return mResultInfo;
+}
+
+const TQString &
+imapCommand::id ()
+{
+ return mId;
+}
+
+const TQString &
+imapCommand::parameter ()
+{
+ return aParameter;
+}
+
+const TQString &
+imapCommand::command ()
+{
+ return aCommand;
+}
+
+void
+imapCommand::setId (const TQString & id)
+{
+ if (mId.isEmpty ())
+ mId = id;
+}
+
+void
+imapCommand::setComplete ()
+{
+ mComplete = true;
+}
+
+void
+imapCommand::setResult (const TQString & result)
+{
+ mResult = result;
+}
+
+void
+imapCommand::setResultInfo (const TQString & result)
+{
+ mResultInfo = result;
+}
+
+void
+imapCommand::setCommand (const TQString & command)
+{
+ aCommand = command;
+}
+
+void
+imapCommand::setParameter (const TQString & parameter)
+{
+ aParameter = parameter;
+}
+
+const TQString
+imapCommand::getStr ()
+{
+ if (parameter().isEmpty())
+ return id() + " " + command() + "\r\n";
+ else
+ return id() + " " + command() + " " + parameter() + "\r\n";
+}
+
+imapCommand *
+imapCommand::clientNoop ()
+{
+ return new imapCommand ("NOOP", "");
+}
+
+imapCommand *
+imapCommand::clientFetch (ulong uid, const TQString & fields, bool nouid)
+{
+ return clientFetch (uid, uid, fields, nouid);
+}
+
+imapCommand *
+imapCommand::clientFetch (ulong fromUid, ulong toUid, const TQString & fields,
+ bool nouid)
+{
+ TQString uid = TQString::number(fromUid);
+
+ if (fromUid != toUid)
+ {
+ uid += ":";
+ if (toUid < fromUid)
+ uid += "*";
+ else
+ uid += TQString::number(toUid);
+ }
+ return clientFetch (uid, fields, nouid);
+}
+
+imapCommand *
+imapCommand::clientFetch (const TQString & sequence, const TQString & fields,
+ bool nouid)
+{
+ return new imapCommand (nouid ? "FETCH" : "UID FETCH",
+ sequence + " (" + fields + ")");
+}
+
+imapCommand *
+imapCommand::clientList (const TQString & reference, const TQString & path,
+ bool lsub)
+{
+ return new imapCommand (lsub ? "LSUB" : "LIST",
+ TQString ("\"") + rfcDecoder::toIMAP (reference) +
+ "\" \"" + rfcDecoder::toIMAP (path) + "\"");
+}
+
+imapCommand *
+imapCommand::clientSelect (const TQString & path, bool examine)
+{
+ Q_UNUSED(examine);
+ /** @note We use always SELECT, because UW-IMAP doesn't check for new mail, when
+ used with the "mbox driver" and the folder is opened with EXAMINE
+ and Courier can't append to a mailbox that is in EXAMINE state */
+ return new imapCommand ("SELECT",
+ TQString ("\"") + rfcDecoder::toIMAP (path) + "\"");
+}
+
+imapCommand *
+imapCommand::clientClose()
+{
+ return new imapCommand("CLOSE", "");
+}
+
+imapCommand *
+imapCommand::clientCopy (const TQString & box, const TQString & sequence,
+ bool nouid)
+{
+ return new imapCommand (nouid ? "COPY" : "UID COPY",
+ sequence + " \"" + rfcDecoder::toIMAP (box) + "\"");
+}
+
+imapCommand *
+imapCommand::clientAppend (const TQString & box, const TQString & flags,
+ ulong size)
+{
+ return new imapCommand ("APPEND",
+ "\"" + rfcDecoder::toIMAP (box) + "\" " +
+ ((flags.isEmpty()) ? "" : ("(" + flags + ") ")) +
+ "{" + TQString::number(size) + "}");
+}
+
+imapCommand *
+imapCommand::clienStatus (const TQString & path, const TQString & parameters)
+{
+ return new imapCommand ("STATUS",
+ TQString ("\"") + rfcDecoder::toIMAP (path) +
+ "\" (" + parameters + ")");
+}
+
+imapCommand *
+imapCommand::clientCreate (const TQString & path)
+{
+ return new imapCommand ("CREATE",
+ TQString ("\"") + rfcDecoder::toIMAP (path) + "\"");
+}
+
+imapCommand *
+imapCommand::clientDelete (const TQString & path)
+{
+ return new imapCommand ("DELETE",
+ TQString ("\"") + rfcDecoder::toIMAP (path) + "\"");
+}
+
+imapCommand *
+imapCommand::clientSubscribe (const TQString & path)
+{
+ return new imapCommand ("SUBSCRIBE",
+ TQString ("\"") + rfcDecoder::toIMAP (path) + "\"");
+}
+
+imapCommand *
+imapCommand::clientUnsubscribe (const TQString & path)
+{
+ return new imapCommand ("UNSUBSCRIBE",
+ TQString ("\"") + rfcDecoder::toIMAP (path) + "\"");
+}
+
+imapCommand *
+imapCommand::clientExpunge ()
+{
+ return new imapCommand ("EXPUNGE", TQString (""));
+}
+
+imapCommand *
+imapCommand::clientRename (const TQString & src, const TQString & dest)
+{
+ return new imapCommand ("RENAME",
+ TQString ("\"") + rfcDecoder::toIMAP (src) +
+ "\" \"" + rfcDecoder::toIMAP (dest) + "\"");
+}
+
+imapCommand *
+imapCommand::clientSearch (const TQString & search, bool nouid)
+{
+ return new imapCommand (nouid ? "SEARCH" : "UID SEARCH", search);
+}
+
+imapCommand *
+imapCommand::clientStore (const TQString & set, const TQString & item,
+ const TQString & data, bool nouid)
+{
+ return new imapCommand (nouid ? "STORE" : "UID STORE",
+ set + " " + item + " (" + data + ")");
+}
+
+imapCommand *
+imapCommand::clientLogout ()
+{
+ return new imapCommand ("LOGOUT", "");
+}
+
+imapCommand *
+imapCommand::clientStartTLS ()
+{
+ return new imapCommand ("STARTTLS", "");
+}
+
+imapCommand *
+imapCommand::clientSetACL( const TQString& box, const TQString& user, const TQString& acl )
+{
+ return new imapCommand ("SETACL", TQString("\"") + rfcDecoder::toIMAP (box)
+ + "\" \"" + rfcDecoder::toIMAP (user)
+ + "\" \"" + rfcDecoder::toIMAP (acl) + "\"");
+}
+
+imapCommand *
+imapCommand::clientDeleteACL( const TQString& box, const TQString& user )
+{
+ return new imapCommand ("DELETEACL", TQString("\"") + rfcDecoder::toIMAP (box)
+ + "\" \"" + rfcDecoder::toIMAP (user)
+ + "\"");
+}
+
+imapCommand *
+imapCommand::clientGetACL( const TQString& box )
+{
+ return new imapCommand ("GETACL", TQString("\"") + rfcDecoder::toIMAP (box)
+ + "\"");
+}
+
+imapCommand *
+imapCommand::clientListRights( const TQString& box, const TQString& user )
+{
+ return new imapCommand ("LISTRIGHTS", TQString("\"") + rfcDecoder::toIMAP (box)
+ + "\" \"" + rfcDecoder::toIMAP (user)
+ + "\"");
+}
+
+imapCommand *
+imapCommand::clientMyRights( const TQString& box )
+{
+ return new imapCommand ("MYRIGHTS", TQString("\"") + rfcDecoder::toIMAP (box)
+ + "\"");
+}
+
+imapCommand *
+imapCommand::clientSetAnnotation( const TQString& box, const TQString& entry, const TQMap<TQString, TQString>& attributes )
+{
+ TQString parameter = TQString("\"") + rfcDecoder::toIMAP (box)
+ + "\" \"" + rfcDecoder::toIMAP (entry)
+ + "\" (";
+ for( TQMap<TQString,TQString>::ConstIterator it = attributes.begin(); it != attributes.end(); ++it ) {
+ parameter += "\"";
+ parameter += rfcDecoder::toIMAP (it.key());
+ parameter += "\" \"";
+ parameter += rfcDecoder::toIMAP (it.data());
+ parameter += "\" ";
+ }
+ // Turn last space into a ')'
+ parameter[parameter.length()-1] = ')';
+
+ return new imapCommand ("SETANNOTATION", parameter);
+}
+
+imapCommand *
+imapCommand::clientGetAnnotation( const TQString& box, const TQString& entry, const TQStringList& attributeNames )
+{
+ TQString parameter = TQString("\"") + rfcDecoder::toIMAP (box)
+ + "\" \"" + rfcDecoder::toIMAP (entry)
+ + "\" ";
+ if ( attributeNames.count() == 1 )
+ parameter += "\"" + rfcDecoder::toIMAP (attributeNames.first()) + '"';
+ else {
+ parameter += '(';
+ for( TQStringList::ConstIterator it = attributeNames.begin(); it != attributeNames.end(); ++it ) {
+ parameter += "\"" + rfcDecoder::toIMAP (*it) + "\" ";
+ }
+ // Turn last space into a ')'
+ parameter[parameter.length()-1] = ')';
+ }
+ return new imapCommand ("GETANNOTATION", parameter);
+}
+
+imapCommand *
+imapCommand::clientNamespace()
+{
+ return new imapCommand("NAMESPACE", "");
+}
+
+imapCommand *
+imapCommand::clientGetQuotaroot( const TQString& box )
+{
+ TQString parameter = TQString("\"") + rfcDecoder::toIMAP (box) + '"';
+ return new imapCommand ("GETQUOTAROOT", parameter);
+}
+
+imapCommand *
+imapCommand::clientCustom( const TQString& command, const TQString& arguments )
+{
+ return new imapCommand (command, arguments);
+}
+
diff --git a/tdeioslave/imap4/imapinfo.cc b/tdeioslave/imap4/imapinfo.cc
deleted file mode 100644
index 3e21ee77..00000000
--- a/tdeioslave/imap4/imapinfo.cc
+++ /dev/null
@@ -1,239 +0,0 @@
-/**********************************************************************
- *
- * imapinfo.cc - IMAP4rev1 SELECT / EXAMINE handler
- * Copyright (C) 2000 Sven Carstens <s.carstens@gmx.de>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Send comments and bug fixes to
- *
- *********************************************************************/
-
-/*
- References:
- RFC 2060 - Internet Message Access Protocol - Version 4rev1 - December 1996
- RFC 2192 - IMAP URL Scheme - September 1997
- RFC 1731 - IMAP Authentication Mechanisms - December 1994
- (Discusses KERBEROSv4, GSSAPI, and S/Key)
- RFC 2195 - IMAP/POP AUTHorize Extension for Simple Challenge/Response
- - September 1997 (CRAM-MD5 authentication method)
- RFC 2104 - HMAC: Keyed-Hashing for Message Authentication - February 1997
-
- Supported URLs:
- imap://server/ - Prompt for user/pass, list all folders in home directory
- imap://user:pass@server/ - Uses LOGIN to log in
- imap://user;AUTH=method:pass@server/ - Uses AUTHENTICATE to log in
-
- imap://server/folder/ - List messages in folder
- */
-
-#include "imapinfo.h"
-#include "imapparser.h"
-
-#include <kdebug.h>
-
-imapInfo::imapInfo ():count_ (0),
-recent_ (0),
-unseen_ (0),
-uidValidity_ (0),
-uidNext_ (0),
-flags_ (0),
-permanentFlags_ (0),
-readWrite_ (false),
-countAvailable_ (false),
-recentAvailable_ (false),
-unseenAvailable_ (false),
-uidValidityAvailable_ (false),
-uidNextAvailable_ (false),
-flagsAvailable_ (false),
-permanentFlagsAvailable_ (false), readWriteAvailable_ (false)
-{
-}
-
-imapInfo::imapInfo (const imapInfo & mi):count_ (mi.count_),
-recent_ (mi.recent_),
-unseen_ (mi.unseen_),
-uidValidity_ (mi.uidValidity_),
-uidNext_ (mi.uidNext_),
-flags_ (mi.flags_),
-permanentFlags_ (mi.permanentFlags_),
-readWrite_ (mi.readWrite_),
-countAvailable_ (mi.countAvailable_),
-recentAvailable_ (mi.recentAvailable_),
-unseenAvailable_ (mi.unseenAvailable_),
-uidValidityAvailable_ (mi.uidValidityAvailable_),
-uidNextAvailable_ (mi.uidNextAvailable_),
-flagsAvailable_ (mi.flagsAvailable_),
-permanentFlagsAvailable_ (mi.permanentFlagsAvailable_),
-readWriteAvailable_ (mi.readWriteAvailable_)
-{
-}
-
-imapInfo & imapInfo::operator = (const imapInfo & mi)
-{
- // Avoid a = a.
- if (this == &mi)
- return *this;
-
- count_ = mi.count_;
- recent_ = mi.recent_;
- unseen_ = mi.unseen_;
- uidValidity_ = mi.uidValidity_;
- uidNext_ = mi.uidNext_;
- flags_ = mi.flags_;
- permanentFlags_ = mi.permanentFlags_;
- readWrite_ = mi.readWrite_;
- countAvailable_ = mi.countAvailable_;
- recentAvailable_ = mi.recentAvailable_;
- unseenAvailable_ = mi.unseenAvailable_;
- uidValidityAvailable_ = mi.uidValidityAvailable_;
- uidNextAvailable_ = mi.uidNextAvailable_;
- flagsAvailable_ = mi.flagsAvailable_;
- permanentFlagsAvailable_ = mi.permanentFlagsAvailable_;
- readWriteAvailable_ = mi.readWriteAvailable_;
-
- return *this;
-}
-
-imapInfo::imapInfo (const TQStringList & list):count_ (0),
-recent_ (0),
-unseen_ (0),
-uidValidity_ (0),
-uidNext_ (0),
-flags_ (0),
-permanentFlags_ (0),
-readWrite_ (false),
-countAvailable_ (false),
-recentAvailable_ (false),
-unseenAvailable_ (false),
-uidValidityAvailable_ (false),
-uidNextAvailable_ (false),
-flagsAvailable_ (false),
-permanentFlagsAvailable_ (false), readWriteAvailable_ (false)
-{
- for (TQStringList::ConstIterator it (list.begin ()); it != list.end (); ++it)
- {
- TQString line (*it);
-
- line.truncate(line.length() - 2);
- TQStringList tokens(TQStringList::split (' ', line));
-
- kdDebug(7116) << "Processing: " << line << endl;
- if (tokens[0] != "*")
- continue;
-
- if (tokens[1] == "OK")
- {
- if (tokens[2] == "[UNSEEN")
- setUnseen (tokens[3].left (tokens[3].length () - 1).toULong ());
-
- else if (tokens[2] == "[UIDVALIDITY")
- setUidValidity (tokens[3].left (tokens[3].length () - 1).toULong ());
-
- else if (tokens[2] == "[UIDNEXT")
- setUidNext (tokens[3].left (tokens[3].length () - 1).toULong ());
-
- else if (tokens[2] == "[PERMANENTFLAGS")
- {
- int flagsStart = line.find('(');
- int flagsEnd = line.find(')');
-
- kdDebug(7116) << "Checking permFlags from " << flagsStart << " to " << flagsEnd << endl;
- if ((-1 != flagsStart) && (-1 != flagsEnd) && flagsStart < flagsEnd)
- setPermanentFlags (_flags (line.mid (flagsStart, flagsEnd).latin1()));
-
- }
- else if (tokens[2] == "[READ-WRITE")
- {
- setReadWrite (true);
- }
- else if (tokens[2] == "[READ-ONLY")
- {
- setReadWrite (false);
- }
- else
- {
- kdDebug(7116) << "unknown token2: " << tokens[2] << endl;
- }
- }
- else if (tokens[1] == "FLAGS")
- {
- int flagsStart = line.find ('(');
- int flagsEnd = line.find (')');
-
- if ((-1 != flagsStart) && (-1 != flagsEnd) && flagsStart < flagsEnd)
- setFlags (_flags (line.mid (flagsStart, flagsEnd).latin1() ));
- }
- else
- {
- if (tokens[2] == "EXISTS")
- setCount (tokens[1].toULong ());
-
- else if (tokens[2] == "RECENT")
- setRecent (tokens[1].toULong ());
-
- else
- kdDebug(7116) << "unknown token1/2: " << tokens[1] << " " << tokens[2] << endl;
- }
- }
-
-}
-
-ulong imapInfo::_flags (const TQCString & inFlags)
-{
- ulong flags = 0;
- parseString flagsString;
- flagsString.data.duplicate(inFlags.data(), inFlags.length());
- if ( flagsString.isEmpty() ) {
- return flags;
- }
-
- if (flagsString[0] == '(')
- flagsString.pos++;
-
- while (!flagsString.isEmpty () && flagsString[0] != ')')
- {
- TQCString entry = imapParser::parseOneWordC(flagsString).upper();
-
- if (entry.isEmpty ())
- flagsString.clear();
- else if (0 != entry.contains ("\\SEEN"))
- flags ^= Seen;
- else if (0 != entry.contains ("\\ANSWERED"))
- flags ^= Answered;
- else if (0 != entry.contains ("\\FLAGGED"))
- flags ^= Flagged;
- else if (0 != entry.contains ("\\DELETED"))
- flags ^= Deleted;
- else if (0 != entry.contains ("\\DRAFT"))
- flags ^= Draft;
- else if (0 != entry.contains ("\\RECENT"))
- flags ^= Recent;
- else if (0 != entry.contains ("\\*"))
- flags ^= User;
-
- // non standard kmail falgs
- else if ( entry.contains( "KMAILFORWARDED" ) || entry.contains( "$FORWARDED" ) )
- flags = flags | Forwarded;
- else if ( entry.contains( "KMAILTODO" ) || entry.contains( "$TODO" ) )
- flags = flags | Todo;
- else if ( entry.contains( "KMAILWATCHED" ) || entry.contains( "$WATCHED" ) )
- flags = flags | Watched;
- else if ( entry.contains( "KMAILIGNORED" ) || entry.contains( "$IGNORED" ) )
- flags = flags | Ignored;
- }
-
- return flags;
-}
diff --git a/tdeioslave/imap4/imapinfo.cpp b/tdeioslave/imap4/imapinfo.cpp
new file mode 100644
index 00000000..453808e7
--- /dev/null
+++ b/tdeioslave/imap4/imapinfo.cpp
@@ -0,0 +1,239 @@
+/**********************************************************************
+ *
+ * imapinfo.cpp - IMAP4rev1 SELECT / EXAMINE handler
+ * Copyright (C) 2000 Sven Carstens <s.carstens@gmx.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Send comments and bug fixes to
+ *
+ *********************************************************************/
+
+/*
+ References:
+ RFC 2060 - Internet Message Access Protocol - Version 4rev1 - December 1996
+ RFC 2192 - IMAP URL Scheme - September 1997
+ RFC 1731 - IMAP Authentication Mechanisms - December 1994
+ (Discusses KERBEROSv4, GSSAPI, and S/Key)
+ RFC 2195 - IMAP/POP AUTHorize Extension for Simple Challenge/Response
+ - September 1997 (CRAM-MD5 authentication method)
+ RFC 2104 - HMAC: Keyed-Hashing for Message Authentication - February 1997
+
+ Supported URLs:
+ imap://server/ - Prompt for user/pass, list all folders in home directory
+ imap://user:pass@server/ - Uses LOGIN to log in
+ imap://user;AUTH=method:pass@server/ - Uses AUTHENTICATE to log in
+
+ imap://server/folder/ - List messages in folder
+ */
+
+#include "imapinfo.h"
+#include "imapparser.h"
+
+#include <kdebug.h>
+
+imapInfo::imapInfo ():count_ (0),
+recent_ (0),
+unseen_ (0),
+uidValidity_ (0),
+uidNext_ (0),
+flags_ (0),
+permanentFlags_ (0),
+readWrite_ (false),
+countAvailable_ (false),
+recentAvailable_ (false),
+unseenAvailable_ (false),
+uidValidityAvailable_ (false),
+uidNextAvailable_ (false),
+flagsAvailable_ (false),
+permanentFlagsAvailable_ (false), readWriteAvailable_ (false)
+{
+}
+
+imapInfo::imapInfo (const imapInfo & mi):count_ (mi.count_),
+recent_ (mi.recent_),
+unseen_ (mi.unseen_),
+uidValidity_ (mi.uidValidity_),
+uidNext_ (mi.uidNext_),
+flags_ (mi.flags_),
+permanentFlags_ (mi.permanentFlags_),
+readWrite_ (mi.readWrite_),
+countAvailable_ (mi.countAvailable_),
+recentAvailable_ (mi.recentAvailable_),
+unseenAvailable_ (mi.unseenAvailable_),
+uidValidityAvailable_ (mi.uidValidityAvailable_),
+uidNextAvailable_ (mi.uidNextAvailable_),
+flagsAvailable_ (mi.flagsAvailable_),
+permanentFlagsAvailable_ (mi.permanentFlagsAvailable_),
+readWriteAvailable_ (mi.readWriteAvailable_)
+{
+}
+
+imapInfo & imapInfo::operator = (const imapInfo & mi)
+{
+ // Avoid a = a.
+ if (this == &mi)
+ return *this;
+
+ count_ = mi.count_;
+ recent_ = mi.recent_;
+ unseen_ = mi.unseen_;
+ uidValidity_ = mi.uidValidity_;
+ uidNext_ = mi.uidNext_;
+ flags_ = mi.flags_;
+ permanentFlags_ = mi.permanentFlags_;
+ readWrite_ = mi.readWrite_;
+ countAvailable_ = mi.countAvailable_;
+ recentAvailable_ = mi.recentAvailable_;
+ unseenAvailable_ = mi.unseenAvailable_;
+ uidValidityAvailable_ = mi.uidValidityAvailable_;
+ uidNextAvailable_ = mi.uidNextAvailable_;
+ flagsAvailable_ = mi.flagsAvailable_;
+ permanentFlagsAvailable_ = mi.permanentFlagsAvailable_;
+ readWriteAvailable_ = mi.readWriteAvailable_;
+
+ return *this;
+}
+
+imapInfo::imapInfo (const TQStringList & list):count_ (0),
+recent_ (0),
+unseen_ (0),
+uidValidity_ (0),
+uidNext_ (0),
+flags_ (0),
+permanentFlags_ (0),
+readWrite_ (false),
+countAvailable_ (false),
+recentAvailable_ (false),
+unseenAvailable_ (false),
+uidValidityAvailable_ (false),
+uidNextAvailable_ (false),
+flagsAvailable_ (false),
+permanentFlagsAvailable_ (false), readWriteAvailable_ (false)
+{
+ for (TQStringList::ConstIterator it (list.begin ()); it != list.end (); ++it)
+ {
+ TQString line (*it);
+
+ line.truncate(line.length() - 2);
+ TQStringList tokens(TQStringList::split (' ', line));
+
+ kdDebug(7116) << "Processing: " << line << endl;
+ if (tokens[0] != "*")
+ continue;
+
+ if (tokens[1] == "OK")
+ {
+ if (tokens[2] == "[UNSEEN")
+ setUnseen (tokens[3].left (tokens[3].length () - 1).toULong ());
+
+ else if (tokens[2] == "[UIDVALIDITY")
+ setUidValidity (tokens[3].left (tokens[3].length () - 1).toULong ());
+
+ else if (tokens[2] == "[UIDNEXT")
+ setUidNext (tokens[3].left (tokens[3].length () - 1).toULong ());
+
+ else if (tokens[2] == "[PERMANENTFLAGS")
+ {
+ int flagsStart = line.find('(');
+ int flagsEnd = line.find(')');
+
+ kdDebug(7116) << "Checking permFlags from " << flagsStart << " to " << flagsEnd << endl;
+ if ((-1 != flagsStart) && (-1 != flagsEnd) && flagsStart < flagsEnd)
+ setPermanentFlags (_flags (line.mid (flagsStart, flagsEnd).latin1()));
+
+ }
+ else if (tokens[2] == "[READ-WRITE")
+ {
+ setReadWrite (true);
+ }
+ else if (tokens[2] == "[READ-ONLY")
+ {
+ setReadWrite (false);
+ }
+ else
+ {
+ kdDebug(7116) << "unknown token2: " << tokens[2] << endl;
+ }
+ }
+ else if (tokens[1] == "FLAGS")
+ {
+ int flagsStart = line.find ('(');
+ int flagsEnd = line.find (')');
+
+ if ((-1 != flagsStart) && (-1 != flagsEnd) && flagsStart < flagsEnd)
+ setFlags (_flags (line.mid (flagsStart, flagsEnd).latin1() ));
+ }
+ else
+ {
+ if (tokens[2] == "EXISTS")
+ setCount (tokens[1].toULong ());
+
+ else if (tokens[2] == "RECENT")
+ setRecent (tokens[1].toULong ());
+
+ else
+ kdDebug(7116) << "unknown token1/2: " << tokens[1] << " " << tokens[2] << endl;
+ }
+ }
+
+}
+
+ulong imapInfo::_flags (const TQCString & inFlags)
+{
+ ulong flags = 0;
+ parseString flagsString;
+ flagsString.data.duplicate(inFlags.data(), inFlags.length());
+ if ( flagsString.isEmpty() ) {
+ return flags;
+ }
+
+ if (flagsString[0] == '(')
+ flagsString.pos++;
+
+ while (!flagsString.isEmpty () && flagsString[0] != ')')
+ {
+ TQCString entry = imapParser::parseOneWordC(flagsString).upper();
+
+ if (entry.isEmpty ())
+ flagsString.clear();
+ else if (0 != entry.contains ("\\SEEN"))
+ flags ^= Seen;
+ else if (0 != entry.contains ("\\ANSWERED"))
+ flags ^= Answered;
+ else if (0 != entry.contains ("\\FLAGGED"))
+ flags ^= Flagged;
+ else if (0 != entry.contains ("\\DELETED"))
+ flags ^= Deleted;
+ else if (0 != entry.contains ("\\DRAFT"))
+ flags ^= Draft;
+ else if (0 != entry.contains ("\\RECENT"))
+ flags ^= Recent;
+ else if (0 != entry.contains ("\\*"))
+ flags ^= User;
+
+ // non standard kmail falgs
+ else if ( entry.contains( "KMAILFORWARDED" ) || entry.contains( "$FORWARDED" ) )
+ flags = flags | Forwarded;
+ else if ( entry.contains( "KMAILTODO" ) || entry.contains( "$TODO" ) )
+ flags = flags | Todo;
+ else if ( entry.contains( "KMAILWATCHED" ) || entry.contains( "$WATCHED" ) )
+ flags = flags | Watched;
+ else if ( entry.contains( "KMAILIGNORED" ) || entry.contains( "$IGNORED" ) )
+ flags = flags | Ignored;
+ }
+
+ return flags;
+}
diff --git a/tdeioslave/imap4/imaplist.cc b/tdeioslave/imap4/imaplist.cc
deleted file mode 100644
index f9113bda..00000000
--- a/tdeioslave/imap4/imaplist.cc
+++ /dev/null
@@ -1,135 +0,0 @@
-/**********************************************************************
- *
- * imapinfo.cc - IMAP4rev1 EXAMINE / SELECT handler
- * Copyright (C) 2000 Sven Carstens <s.carstens@gmx.de>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Send comments and bug fixes to
- *
- *********************************************************************/
-
-/*
- References:
- RFC 2060 - Internet Message Access Protocol - Version 4rev1 - December 1996
- RFC 2192 - IMAP URL Scheme - September 1997
- RFC 1731 - IMAP Authentication Mechanisms - December 1994
- (Discusses KERBEROSv4, GSSAPI, and S/Key)
- RFC 2195 - IMAP/POP AUTHorize Extension for Simple Challenge/Response
- - September 1997 (CRAM-MD5 authentication method)
- RFC 2104 - HMAC: Keyed-Hashing for Message Authentication - February 1997
-
- Supported URLs:
- imap://server/ - Prompt for user/pass, list all folders in home directory
- imap://user:pass@server/ - Uses LOGIN to log in
- imap://user;AUTH=method:pass@server/ - Uses AUTHENTICATE to log in
-
- imap://server/folder/ - List messages in folder
- */
-
-#include "rfcdecoder.h"
-#include "imaplist.h"
-#include "imapparser.h"
-
-#include <kdebug.h>
-
-imapList::imapList (): parser_(0), noInferiors_ (false),
-noSelect_ (false), marked_ (false), unmarked_ (false),
-hasChildren_ (false), hasNoChildren_ (false)
-{
-}
-
-imapList::imapList (const imapList & lr):parser_(lr.parser_),
-hierarchyDelimiter_ (lr.hierarchyDelimiter_),
-name_ (lr.name_),
-noInferiors_ (lr.noInferiors_),
-noSelect_ (lr.noSelect_), marked_ (lr.marked_), unmarked_ (lr.unmarked_),
-hasChildren_ (lr.hasChildren_), hasNoChildren_ (lr.hasNoChildren_),
-attributes_ (lr.attributes_)
-{
-}
-
-imapList & imapList::operator = (const imapList & lr)
-{
- // Avoid a = a.
- if (this == &lr)
- return *this;
-
- parser_ = lr.parser_;
- hierarchyDelimiter_ = lr.hierarchyDelimiter_;
- name_ = lr.name_;
- noInferiors_ = lr.noInferiors_;
- noSelect_ = lr.noSelect_;
- marked_ = lr.marked_;
- unmarked_ = lr.unmarked_;
- hasChildren_ = lr.hasChildren_;
- hasNoChildren_ = lr.hasNoChildren_;
- attributes_ = lr.attributes_;
-
- return *this;
-}
-
-imapList::imapList (const TQString & inStr, imapParser &parser)
-: parser_(&parser),
-noInferiors_ (false),
-noSelect_ (false),
-marked_ (false), unmarked_ (false), hasChildren_ (false),
-hasNoChildren_ (false)
-{
- parseString s;
- s.data.duplicate(inStr.latin1(), inStr.length());
-
- if (s[0] != '(')
- return; //not proper format for us
-
- s.pos++; // tie off (
-
- parseAttributes( s );
-
- s.pos++; // tie off )
- parser_->skipWS (s);
-
- hierarchyDelimiter_ = parser_->parseOneWordC(s);
- if (hierarchyDelimiter_ == "NIL")
- hierarchyDelimiter_ = TQString();
- name_ = rfcDecoder::fromIMAP (parser_->parseLiteral (s)); // decode modified UTF7
-}
-
-void imapList::parseAttributes( parseString & str )
-{
- TQCString attribute, orig;
-
- while ( !str.isEmpty () && str[0] != ')' )
- {
- orig = parser_->parseOneWordC(str);
- attributes_ << orig;
- attribute = orig.lower();
- if (-1 != attribute.find ("\\noinferiors"))
- noInferiors_ = true;
- else if (-1 != attribute.find ("\\noselect"))
- noSelect_ = true;
- else if (-1 != attribute.find ("\\marked"))
- marked_ = true;
- else if (-1 != attribute.find ("\\unmarked"))
- unmarked_ = true;
- else if (-1 != attribute.find ("\\haschildren"))
- hasChildren_ = true;
- else if (-1 != attribute.find ("\\hasnochildren"))
- hasNoChildren_ = true;
- else
- kdDebug(7116) << "imapList::imapList: bogus attribute " << attribute << endl;
- }
-}
-
diff --git a/tdeioslave/imap4/imaplist.cpp b/tdeioslave/imap4/imaplist.cpp
new file mode 100644
index 00000000..51062c47
--- /dev/null
+++ b/tdeioslave/imap4/imaplist.cpp
@@ -0,0 +1,135 @@
+/**********************************************************************
+ *
+ * imapinfo.cpp - IMAP4rev1 EXAMINE / SELECT handler
+ * Copyright (C) 2000 Sven Carstens <s.carstens@gmx.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Send comments and bug fixes to
+ *
+ *********************************************************************/
+
+/*
+ References:
+ RFC 2060 - Internet Message Access Protocol - Version 4rev1 - December 1996
+ RFC 2192 - IMAP URL Scheme - September 1997
+ RFC 1731 - IMAP Authentication Mechanisms - December 1994
+ (Discusses KERBEROSv4, GSSAPI, and S/Key)
+ RFC 2195 - IMAP/POP AUTHorize Extension for Simple Challenge/Response
+ - September 1997 (CRAM-MD5 authentication method)
+ RFC 2104 - HMAC: Keyed-Hashing for Message Authentication - February 1997
+
+ Supported URLs:
+ imap://server/ - Prompt for user/pass, list all folders in home directory
+ imap://user:pass@server/ - Uses LOGIN to log in
+ imap://user;AUTH=method:pass@server/ - Uses AUTHENTICATE to log in
+
+ imap://server/folder/ - List messages in folder
+ */
+
+#include "rfcdecoder.h"
+#include "imaplist.h"
+#include "imapparser.h"
+
+#include <kdebug.h>
+
+imapList::imapList (): parser_(0), noInferiors_ (false),
+noSelect_ (false), marked_ (false), unmarked_ (false),
+hasChildren_ (false), hasNoChildren_ (false)
+{
+}
+
+imapList::imapList (const imapList & lr):parser_(lr.parser_),
+hierarchyDelimiter_ (lr.hierarchyDelimiter_),
+name_ (lr.name_),
+noInferiors_ (lr.noInferiors_),
+noSelect_ (lr.noSelect_), marked_ (lr.marked_), unmarked_ (lr.unmarked_),
+hasChildren_ (lr.hasChildren_), hasNoChildren_ (lr.hasNoChildren_),
+attributes_ (lr.attributes_)
+{
+}
+
+imapList & imapList::operator = (const imapList & lr)
+{
+ // Avoid a = a.
+ if (this == &lr)
+ return *this;
+
+ parser_ = lr.parser_;
+ hierarchyDelimiter_ = lr.hierarchyDelimiter_;
+ name_ = lr.name_;
+ noInferiors_ = lr.noInferiors_;
+ noSelect_ = lr.noSelect_;
+ marked_ = lr.marked_;
+ unmarked_ = lr.unmarked_;
+ hasChildren_ = lr.hasChildren_;
+ hasNoChildren_ = lr.hasNoChildren_;
+ attributes_ = lr.attributes_;
+
+ return *this;
+}
+
+imapList::imapList (const TQString & inStr, imapParser &parser)
+: parser_(&parser),
+noInferiors_ (false),
+noSelect_ (false),
+marked_ (false), unmarked_ (false), hasChildren_ (false),
+hasNoChildren_ (false)
+{
+ parseString s;
+ s.data.duplicate(inStr.latin1(), inStr.length());
+
+ if (s[0] != '(')
+ return; //not proper format for us
+
+ s.pos++; // tie off (
+
+ parseAttributes( s );
+
+ s.pos++; // tie off )
+ parser_->skipWS (s);
+
+ hierarchyDelimiter_ = parser_->parseOneWordC(s);
+ if (hierarchyDelimiter_ == "NIL")
+ hierarchyDelimiter_ = TQString();
+ name_ = rfcDecoder::fromIMAP (parser_->parseLiteral (s)); // decode modified UTF7
+}
+
+void imapList::parseAttributes( parseString & str )
+{
+ TQCString attribute, orig;
+
+ while ( !str.isEmpty () && str[0] != ')' )
+ {
+ orig = parser_->parseOneWordC(str);
+ attributes_ << orig;
+ attribute = orig.lower();
+ if (-1 != attribute.find ("\\noinferiors"))
+ noInferiors_ = true;
+ else if (-1 != attribute.find ("\\noselect"))
+ noSelect_ = true;
+ else if (-1 != attribute.find ("\\marked"))
+ marked_ = true;
+ else if (-1 != attribute.find ("\\unmarked"))
+ unmarked_ = true;
+ else if (-1 != attribute.find ("\\haschildren"))
+ hasChildren_ = true;
+ else if (-1 != attribute.find ("\\hasnochildren"))
+ hasNoChildren_ = true;
+ else
+ kdDebug(7116) << "imapList::imapList: bogus attribute " << attribute << endl;
+ }
+}
+
diff --git a/tdeioslave/imap4/imapparser.cc b/tdeioslave/imap4/imapparser.cc
deleted file mode 100644
index eb154cc5..00000000
--- a/tdeioslave/imap4/imapparser.cc
+++ /dev/null
@@ -1,2094 +0,0 @@
-/**********************************************************************
- *
- * imapparser.cc - IMAP4rev1 Parser
- * Copyright (C) 2001-2002 Michael Haeckel <haeckel@kde.org>
- * Copyright (C) 2000 s.carstens@gmx.de
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Send comments and bug fixes to s.carstens@gmx.de
- *
- *********************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "rfcdecoder.h"
-
-#include "imapparser.h"
-
-#include "imapinfo.h"
-
-#include "mailheader.h"
-#include "mimeheader.h"
-#include "mailaddress.h"
-
-#include <sys/types.h>
-
-#include <stdlib.h>
-#include <unistd.h>
-
-#ifdef HAVE_LIBSASL2
-extern "C" {
-#include <sasl/sasl.h>
-}
-#endif
-
-#include <tqregexp.h>
-#include <tqbuffer.h>
-#include <tqstring.h>
-#include <tqstringlist.h>
-
-#include <kdebug.h>
-#include <kmdcodec.h>
-#include <kurl.h>
-
-#include <kasciistricmp.h>
-#include <kasciistringtools.h>
-
-#ifdef HAVE_LIBSASL2
-static sasl_callback_t callbacks[] = {
- { SASL_CB_ECHOPROMPT, NULL, NULL },
- { SASL_CB_NOECHOPROMPT, NULL, NULL },
- { SASL_CB_GETREALM, NULL, NULL },
- { SASL_CB_USER, NULL, NULL },
- { SASL_CB_AUTHNAME, NULL, NULL },
- { SASL_CB_PASS, NULL, NULL },
- { SASL_CB_CANON_USER, NULL, NULL },
- { SASL_CB_LIST_END, NULL, NULL }
-};
-#endif
-
-imapParser::imapParser ()
-{
- sentQueue.setAutoDelete (false);
- completeQueue.setAutoDelete (true);
- currentState = ISTATE_NO;
- commandCounter = 0;
- lastHandled = 0;
-}
-
-imapParser::~imapParser ()
-{
- delete lastHandled;
- lastHandled = 0;
-}
-
-imapCommand *
-imapParser::doCommand (imapCommand * aCmd)
-{
- int pl = 0;
- sendCommand (aCmd);
- while (pl != -1 && !aCmd->isComplete ()) {
- while ((pl = parseLoop ()) == 0)
- ;
- }
-
- return aCmd;
-}
-
-imapCommand *
-imapParser::sendCommand (imapCommand * aCmd)
-{
- aCmd->setId (TQString::number(commandCounter++));
- sentQueue.append (aCmd);
-
- continuation.resize(0);
- const TQString& command = aCmd->command();
-
- if (command == "SELECT" || command == "EXAMINE")
- {
- // we need to know which box we are selecting
- parseString p;
- p.fromString(aCmd->parameter());
- currentBox = parseOneWordC(p);
- kdDebug(7116) << "imapParser::sendCommand - setting current box to " << currentBox << endl;
- }
- else if (command == "CLOSE")
- {
- // we no longer have a box open
- currentBox = TQString();
- }
- else if (command.find ("SEARCH") != -1
- || command == "GETACL"
- || command == "LISTRIGHTS"
- || command == "MYRIGHTS"
- || command == "GETANNOTATION"
- || command == "NAMESPACE"
- || command == "GETQUOTAROOT"
- || command == "GETQUOTA"
- || command == "X-GET-OTHER-USERS"
- || command == "X-GET-DELEGATES"
- || command == "X-GET-OUT-OF-OFFICE")
- {
- lastResults.clear ();
- }
- else if (command == "LIST"
- || command == "LSUB")
- {
- listResponses.clear ();
- }
- parseWriteLine (aCmd->getStr ());
- return aCmd;
-}
-
-bool
-imapParser::clientLogin (const TQString & aUser, const TQString & aPass,
- TQString & resultInfo)
-{
- imapCommand *cmd;
- bool retVal = false;
-
- cmd =
- doCommand (new
- imapCommand ("LOGIN", "\"" + rfcDecoder::quoteIMAP(aUser)
- + "\" \"" + rfcDecoder::quoteIMAP(aPass) + "\""));
-
- if (cmd->result () == "OK")
- {
- currentState = ISTATE_LOGIN;
- retVal = true;
- }
- resultInfo = cmd->resultInfo();
- completeQueue.removeRef (cmd);
-
- return retVal;
-}
-
-#ifdef HAVE_LIBSASL2
-static bool sasl_interact( TDEIO::SlaveBase *slave, TDEIO::AuthInfo &ai, void *in )
-{
- kdDebug(7116) << "sasl_interact" << endl;
- sasl_interact_t *interact = ( sasl_interact_t * ) in;
-
- //some mechanisms do not require username && pass, so it doesn't need a popup
- //window for getting this info
- for ( ; interact->id != SASL_CB_LIST_END; interact++ ) {
- if ( interact->id == SASL_CB_AUTHNAME ||
- interact->id == SASL_CB_PASS ) {
-
- if ( ai.username.isEmpty() || ai.password.isEmpty() ) {
- if (!slave->openPassDlg(ai))
- return false;
- }
- break;
- }
- }
-
- interact = ( sasl_interact_t * ) in;
- while( interact->id != SASL_CB_LIST_END ) {
- kdDebug(7116) << "SASL_INTERACT id: " << interact->id << endl;
- switch( interact->id ) {
- case SASL_CB_USER:
- case SASL_CB_AUTHNAME:
- kdDebug(7116) << "SASL_CB_[USER|AUTHNAME]: '" << ai.username << "'" << endl;
- interact->result = strdup( ai.username.utf8() );
- interact->len = strlen( (const char *) interact->result );
- break;
- case SASL_CB_PASS:
- kdDebug(7116) << "SASL_CB_PASS: [hidden] " << endl;
- interact->result = strdup( ai.password.utf8() );
- interact->len = strlen( (const char *) interact->result );
- break;
- default:
- interact->result = 0;
- interact->len = 0;
- break;
- }
- interact++;
- }
- return true;
-}
-#endif
-
-bool
-imapParser::clientAuthenticate ( TDEIO::SlaveBase *slave, TDEIO::AuthInfo &ai,
- const TQString & aFTQDN, const TQString & aAuth, bool isSSL, TQString & resultInfo)
-{
- bool retVal = false;
-#ifdef HAVE_LIBSASL2
- int result;
- sasl_conn_t *conn = 0;
- sasl_interact_t *client_interact = 0;
- const char *out = 0;
- uint outlen = 0;
- const char *mechusing = 0;
- TQByteArray tmp, challenge;
-
- kdDebug(7116) << "aAuth: " << aAuth << " FTQDN: " << aFTQDN << " isSSL: " << isSSL << endl;
-
- // see if server supports this authenticator
- if (!hasCapability ("AUTH=" + aAuth))
- return false;
-
-// result = sasl_client_new( isSSL ? "imaps" : "imap",
- result = sasl_client_new( "imap", /* FIXME: with cyrus-imapd, even imaps' digest-uri
- must be 'imap'. I don't know if it's good or bad. */
- aFTQDN.latin1(),
- 0, 0, callbacks, 0, &conn );
-
- if ( result != SASL_OK ) {
- kdDebug(7116) << "sasl_client_new failed with: " << result << endl;
- resultInfo = TQString::fromUtf8( sasl_errdetail( conn ) );
- return false;
- }
-
- do {
- result = sasl_client_start(conn, aAuth.latin1(), &client_interact,
- hasCapability("SASL-IR") ? &out : 0, &outlen, &mechusing);
-
- if ( result == SASL_INTERACT ) {
- if ( !sasl_interact( slave, ai, client_interact ) ) {
- sasl_dispose( &conn );
- return false;
- }
- }
- } while ( result == SASL_INTERACT );
-
- if ( result != SASL_CONTINUE && result != SASL_OK ) {
- kdDebug(7116) << "sasl_client_start failed with: " << result << endl;
- resultInfo = TQString::fromUtf8( sasl_errdetail( conn ) );
- sasl_dispose( &conn );
- return false;
- }
- imapCommand *cmd;
-
- tmp.setRawData( out, outlen );
- KCodecs::base64Encode( tmp, challenge );
- tmp.resetRawData( out, outlen );
- // then lets try it
- TQString firstCommand = aAuth;
- if ( !challenge.isEmpty() ) {
- firstCommand += " ";
- firstCommand += TQString::fromLatin1( challenge.data(), challenge.size() );
- }
- cmd = sendCommand (new imapCommand ("AUTHENTICATE", firstCommand.latin1()));
-
- int pl = 0;
- while ( pl != -1 && !cmd->isComplete () )
- {
- //read the next line
- while ((pl = parseLoop()) == 0) ;
-
- if (!continuation.isEmpty())
- {
-// kdDebug(7116) << "S: " << TQCString(continuation.data(),continuation.size()+1) << endl;
- if ( continuation.size() > 4 ) {
- tmp.setRawData( continuation.data() + 2, continuation.size() - 4 );
- KCodecs::base64Decode( tmp, challenge );
-// kdDebug(7116) << "S-1: " << TQCString(challenge.data(),challenge.size()+1) << endl;
- tmp.resetRawData( continuation.data() + 2, continuation.size() - 4 );
- }
-
- do {
- result = sasl_client_step(conn, challenge.isEmpty() ? 0 : challenge.data(),
- challenge.size(),
- &client_interact,
- &out, &outlen);
-
- if (result == SASL_INTERACT) {
- if ( !sasl_interact( slave, ai, client_interact ) ) {
- sasl_dispose( &conn );
- return false;
- }
- }
- } while ( result == SASL_INTERACT );
-
- if ( result != SASL_CONTINUE && result != SASL_OK ) {
- kdDebug(7116) << "sasl_client_step failed with: " << result << endl;
- resultInfo = TQString::fromUtf8( sasl_errdetail( conn ) );
- sasl_dispose( &conn );
- return false;
- }
-
- tmp.setRawData( out, outlen );
-// kdDebug(7116) << "C-1: " << TQCString(tmp.data(),tmp.size()+1) << endl;
- KCodecs::base64Encode( tmp, challenge );
- tmp.resetRawData( out, outlen );
-// kdDebug(7116) << "C: " << TQCString(challenge.data(),challenge.size()+1) << endl;
- parseWriteLine (challenge);
- continuation.resize(0);
- }
- }
-
- if (cmd->result () == "OK")
- {
- currentState = ISTATE_LOGIN;
- retVal = true;
- }
- resultInfo = cmd->resultInfo();
- completeQueue.removeRef (cmd);
-
- sasl_dispose( &conn ); //we don't use sasl_en/decode(), so it's safe to dispose the connection.
-#endif //HAVE_LIBSASL2
- return retVal;
-}
-
-void
-imapParser::parseUntagged (parseString & result)
-{
- //kdDebug(7116) << "imapParser::parseUntagged - '" << result.cstr() << "'" << endl;
-
- parseOneWordC(result); // *
- TQByteArray what = parseLiteral (result); // see whats coming next
-
- if(!what.isEmpty ()) {
- switch (what[0])
- {
- //the status responses
- case 'B': // BAD or BYE
- if (tqstrncmp(what, "BAD", what.size()) == 0)
- {
- parseResult (what, result);
- }
- else if (tqstrncmp(what, "BYE", what.size()) == 0)
- {
- parseResult (what, result);
- if ( sentQueue.count() ) {
- // BYE that interrupts a command -> copy the reason for it
- imapCommand *current = sentQueue.at (0);
- current->setResultInfo(result.cstr());
- }
- currentState = ISTATE_NO;
- }
- break;
-
- case 'N': // NO
- if (what[1] == 'O' && what.size() == 2)
- {
- parseResult (what, result);
- }
- else if (tqstrncmp(what, "NAMESPACE", what.size()) == 0)
- {
- parseNamespace (result);
- }
- break;
-
- case 'O': // OK
- if (what[1] == 'K' && what.size() == 2)
- {
- parseResult (what, result);
- } else if (tqstrncmp(what, "OTHER-USER", 10) == 0) { // X-GET-OTHER-USER
- parseOtherUser (result);
- } else if (tqstrncmp(what, "OUT-OF-OFFICE", 13) == 0) { // X-GET-OUT-OF-OFFICE
- parseOutOfOffice (result);
- }
- break;
- case 'D':
- if (tqstrncmp(what, "DELEGATE", 8) == 0) { // X-GET-DELEGATES
- parseDelegate (result);
- }
- break;
-
- case 'P': // PREAUTH
- if (tqstrncmp(what, "PREAUTH", what.size()) == 0)
- {
- parseResult (what, result);
- currentState = ISTATE_LOGIN;
- }
- break;
-
- // parse the other responses
- case 'C': // CAPABILITY
- if (tqstrncmp(what, "CAPABILITY", what.size()) == 0)
- {
- parseCapability (result);
- }
- break;
-
- case 'F': // FLAGS
- if (tqstrncmp(what, "FLAGS", what.size()) == 0)
- {
- parseFlags (result);
- }
- break;
-
- case 'L': // LIST or LSUB or LISTRIGHTS
- if (tqstrncmp(what, "LIST", what.size()) == 0)
- {
- parseList (result);
- }
- else if (tqstrncmp(what, "LSUB", what.size()) == 0)
- {
- parseLsub (result);
- }
- else if (tqstrncmp(what, "LISTRIGHTS", what.size()) == 0)
- {
- parseListRights (result);
- }
- break;
-
- case 'M': // MYRIGHTS
- if (tqstrncmp(what, "MYRIGHTS", what.size()) == 0)
- {
- parseMyRights (result);
- }
- break;
- case 'S': // SEARCH or STATUS
- if (tqstrncmp(what, "SEARCH", what.size()) == 0)
- {
- parseSearch (result);
- }
- else if (tqstrncmp(what, "STATUS", what.size()) == 0)
- {
- parsetStatus (result);
- }
- break;
-
- case 'A': // ACL or ANNOTATION
- if (tqstrncmp(what, "ACL", what.size()) == 0)
- {
- parseAcl (result);
- }
- else if (tqstrncmp(what, "ANNOTATION", what.size()) == 0)
- {
- parseAnnotation (result);
- }
- break;
- case 'Q': // QUOTA or QUOTAROOT
- if ( what.size() > 5 && tqstrncmp(what, "QUOTAROOT", what.size()) == 0)
- {
- parseQuotaRoot( result );
- }
- else if (tqstrncmp(what, "QUOTA", what.size()) == 0)
- {
- parseQuota( result );
- }
- break;
- case 'X': // Custom command
- {
- parseCustom( result );
- }
- break;
- default:
- //better be a number
- {
- ulong number;
- bool valid;
-
- number = TQCString(what, what.size() + 1).toUInt(&valid);
- if (valid)
- {
- what = parseLiteral (result);
- if(!what.isEmpty ()) {
- switch (what[0])
- {
- case 'E':
- if (tqstrncmp(what, "EXISTS", what.size()) == 0)
- {
- parseExists (number, result);
- }
- else if (tqstrncmp(what, "EXPUNGE", what.size()) == 0)
- {
- parseExpunge (number, result);
- }
- break;
-
- case 'F':
- if (tqstrncmp(what, "FETCH", what.size()) == 0)
- {
- seenUid = TQString();
- parseFetch (number, result);
- }
- break;
-
- case 'S':
- if (tqstrncmp(what, "STORE", what.size()) == 0) // deprecated store
- {
- seenUid = TQString();
- parseFetch (number, result);
- }
- break;
-
- case 'R':
- if (tqstrncmp(what, "RECENT", what.size()) == 0)
- {
- parseRecent (number, result);
- }
- break;
- default:
- break;
- }
- }
- }
- }
- break;
- } //switch
- }
-} //func
-
-
-void
-imapParser::parseResult (TQByteArray & result, parseString & rest,
- const TQString & command)
-{
- if (command == "SELECT")
- selectInfo.setReadWrite(true);
-
- if (rest[0] == '[')
- {
- rest.pos++;
- TQCString option = parseOneWordC(rest, TRUE);
-
- switch (option[0])
- {
- case 'A': // ALERT
- if (option == "ALERT")
- {
- rest.pos = rest.data.find(']', rest.pos) + 1;
- // The alert text is after [ALERT].
- // Is this correct or do we need to care about litterals?
- selectInfo.setAlert( rest.cstr() );
- }
- break;
-
- case 'N': // NEWNAME
- if (option == "NEWNAME")
- {
- }
- break;
-
- case 'P': //PARSE or PERMANENTFLAGS
- if (option == "PARSE")
- {
- }
- else if (option == "PERMANENTFLAGS")
- {
- uint end = rest.data.find(']', rest.pos);
- TQCString flags(rest.data.data() + rest.pos, end - rest.pos);
- selectInfo.setPermanentFlags (flags);
- rest.pos = end;
- }
- break;
-
- case 'R': //READ-ONLY or READ-WRITE
- if (option == "READ-ONLY")
- {
- selectInfo.setReadWrite (false);
- }
- else if (option == "READ-WRITE")
- {
- selectInfo.setReadWrite (true);
- }
- break;
-
- case 'T': //TRYCREATE
- if (option == "TRYCREATE")
- {
- }
- break;
-
- case 'U': //UIDVALIDITY or UNSEEN
- if (option == "UIDVALIDITY")
- {
- ulong value;
- if (parseOneNumber (rest, value))
- selectInfo.setUidValidity (value);
- }
- else if (option == "UNSEEN")
- {
- ulong value;
- if (parseOneNumber (rest, value))
- selectInfo.setUnseen (value);
- }
- else if (option == "UIDNEXT")
- {
- ulong value;
- if (parseOneNumber (rest, value))
- selectInfo.setUidNext (value);
- }
- else
- break;
-
- }
- if (rest[0] == ']')
- rest.pos++; //tie off ]
- skipWS (rest);
- }
-
- if (command.isEmpty())
- {
- // This happens when parsing an intermediate result line (those that start with '*').
- // No state change involved, so we can stop here.
- return;
- }
-
- switch (command[0].latin1 ())
- {
- case 'A':
- if (command == "AUTHENTICATE")
- if (tqstrncmp(result, "OK", result.size()) == 0)
- currentState = ISTATE_LOGIN;
- break;
-
- case 'L':
- if (command == "LOGIN")
- if (tqstrncmp(result, "OK", result.size()) == 0)
- currentState = ISTATE_LOGIN;
- break;
-
- case 'E':
- if (command == "EXAMINE")
- {
- if (tqstrncmp(result, "OK", result.size()) == 0)
- currentState = ISTATE_SELECT;
- else
- {
- if (currentState == ISTATE_SELECT)
- currentState = ISTATE_LOGIN;
- currentBox = TQString();
- }
- kdDebug(7116) << "imapParser::parseResult - current box is now " << currentBox << endl;
- }
- break;
-
- case 'S':
- if (command == "SELECT")
- {
- if (tqstrncmp(result, "OK", result.size()) == 0)
- currentState = ISTATE_SELECT;
- else
- {
- if (currentState == ISTATE_SELECT)
- currentState = ISTATE_LOGIN;
- currentBox = TQString();
- }
- kdDebug(7116) << "imapParser::parseResult - current box is now " << currentBox << endl;
- }
- break;
-
- default:
- break;
- }
-
-}
-
-void imapParser::parseCapability (parseString & result)
-{
- TQCString temp( result.cstr() );
- imapCapabilities = TQStringList::split ( ' ', KPIM::kAsciiToLower( temp.data() ) );
-}
-
-void imapParser::parseFlags (parseString & result)
-{
- selectInfo.setFlags(result.cstr());
-}
-
-void imapParser::parseList (parseString & result)
-{
- imapList this_one;
-
- if (result[0] != '(')
- return; //not proper format for us
-
- result.pos++; // tie off (
-
- this_one.parseAttributes( result );
-
- result.pos++; // tie off )
- skipWS (result);
-
- this_one.setHierarchyDelimiter(parseLiteralC(result));
- this_one.setName (rfcDecoder::fromIMAP(parseLiteralC(result))); // decode modified UTF7
-
- listResponses.append (this_one);
-}
-
-void imapParser::parseLsub (parseString & result)
-{
- imapList this_one (result.cstr(), *this);
- listResponses.append (this_one);
-}
-
-void imapParser::parseListRights (parseString & result)
-{
- parseOneWordC (result); // skip mailbox name
- parseOneWordC (result); // skip user id
- int outlen = 1;
- while ( outlen ) {
- TQCString word = parseOneWordC (result, false, &outlen);
- lastResults.append (word);
- }
-}
-
-void imapParser::parseAcl (parseString & result)
-{
- parseOneWordC (result); // skip mailbox name
- int outlen = 1;
- // The result is user1 perm1 user2 perm2 etc. The caller will sort it out.
- while ( outlen && !result.isEmpty() ) {
- TQCString word = parseLiteralC (result, false, false, &outlen);
- lastResults.append (word);
- }
-}
-
-void imapParser::parseAnnotation (parseString & result)
-{
- parseOneWordC (result); // skip mailbox name
- skipWS (result);
- parseOneWordC (result); // skip entry name (we know it since we don't allow wildcards in it)
- skipWS (result);
- if (result.isEmpty() || result[0] != '(')
- return;
- result.pos++;
- skipWS (result);
- int outlen = 1;
- // The result is name1 value1 name2 value2 etc. The caller will sort it out.
- while ( outlen && !result.isEmpty() && result[0] != ')' ) {
- TQCString word = parseLiteralC (result, false, false, &outlen);
- lastResults.append (word);
- }
-}
-
-
-void imapParser::parseQuota (parseString & result)
-{
- // quota_response ::= "QUOTA" SP astring SP quota_list
- // quota_list ::= "(" #quota_resource ")"
- // quota_resource ::= atom SP number SP number
- TQCString root = parseOneWordC( result );
- if ( root.isEmpty() ) {
- lastResults.append( "" );
- } else {
- lastResults.append( root );
- }
- if (result.isEmpty() || result[0] != '(')
- return;
- result.pos++;
- skipWS (result);
- TQStringList triplet;
- int outlen = 1;
- while ( outlen && !result.isEmpty() && result[0] != ')' ) {
- TQCString word = parseLiteralC (result, false, false, &outlen);
- triplet.append(word);
- }
- lastResults.append( triplet.join(" ") );
-}
-
-void imapParser::parseQuotaRoot (parseString & result)
-{
- // quotaroot_response
- // ::= "QUOTAROOT" SP astring *(SP astring)
- parseOneWordC (result); // skip mailbox name
- skipWS (result);
- if ( result.isEmpty() )
- return;
- TQStringList roots;
- int outlen = 1;
- while ( outlen && !result.isEmpty() ) {
- TQCString word = parseLiteralC (result, false, false, &outlen);
- roots.append (word);
- }
- lastResults.append( roots.isEmpty()? "" : roots.join(" ") );
-}
-
-void imapParser::parseCustom (parseString & result)
-{
- int outlen = 1;
- TQCString word = parseLiteralC (result, false, false, &outlen);
- lastResults.append( word );
-}
-
-void imapParser::parseOtherUser (parseString & result)
-{
- lastResults.append( parseOneWordC( result ) );
-}
-
-void imapParser::parseDelegate (parseString & result)
-{
- const TQString email = parseOneWordC( result );
-
- TQStringList rights;
- int outlen = 1;
- while ( outlen && !result.isEmpty() ) {
- TQCString word = parseLiteralC( result, false, false, &outlen );
- rights.append( word );
- }
-
- lastResults.append( email + ':' + rights.join( "," ) );
-}
-
-void imapParser::parseOutOfOffice (parseString & result)
-{
- const TQString state = parseOneWordC (result);
- parseOneWordC (result); // skip encoding
-
- int outlen = 1;
- TQCString msg = parseLiteralC (result, false, false, &outlen);
-
- lastResults.append( state + '^' + TQString::fromUtf8( msg ) );
-}
-
-void imapParser::parseMyRights (parseString & result)
-{
- parseOneWordC (result); // skip mailbox name
- Q_ASSERT( lastResults.isEmpty() ); // we can only be called once
- lastResults.append (parseOneWordC (result) );
-}
-
-void imapParser::parseSearch (parseString & result)
-{
- ulong value;
-
- while (parseOneNumber (result, value))
- {
- lastResults.append (TQString::number(value));
- }
-}
-
-void imapParser::parsetStatus (parseString & inWords)
-{
- lasStatus = imapInfo ();
-
- parseLiteralC(inWords); // swallow the box
- if (inWords.isEmpty() || inWords[0] != '(')
- return;
-
- inWords.pos++;
- skipWS (inWords);
-
- while (!inWords.isEmpty() && inWords[0] != ')')
- {
- ulong value;
-
- TQCString label = parseOneWordC(inWords);
- if (parseOneNumber (inWords, value))
- {
- if (label == "MESSAGES")
- lasStatus.setCount (value);
- else if (label == "RECENT")
- lasStatus.setRecent (value);
- else if (label == "UIDVALIDITY")
- lasStatus.setUidValidity (value);
- else if (label == "UNSEEN")
- lasStatus.setUnseen (value);
- else if (label == "UIDNEXT")
- lasStatus.setUidNext (value);
- }
- }
-
- if (inWords[0] == ')')
- inWords.pos++;
- skipWS (inWords);
-}
-
-void imapParser::parseExists (ulong value, parseString & result)
-{
- selectInfo.setCount (value);
- result.pos = result.data.size();
-}
-
-void imapParser::parseExpunge (ulong value, parseString & result)
-{
- Q_UNUSED(value);
- Q_UNUSED(result);
-}
-
-void imapParser::parseAddressList (parseString & inWords, TQPtrList<mailAddress>& list)
-{
- if (inWords.isEmpty())
- return;
- if (inWords[0] != '(')
- {
- parseOneWordC (inWords); // parse NIL
- }
- else
- {
- inWords.pos++;
- skipWS (inWords);
-
- while (!inWords.isEmpty () && inWords[0] != ')')
- {
- if (inWords[0] == '(') {
- mailAddress *addr = new mailAddress;
- parseAddress(inWords, *addr);
- list.append(addr);
- } else {
- break;
- }
- }
-
- if (!inWords.isEmpty() && inWords[0] == ')')
- inWords.pos++;
- skipWS (inWords);
- }
-}
-
-const mailAddress& imapParser::parseAddress (parseString & inWords, mailAddress& retVal)
-{
- inWords.pos++;
- skipWS (inWords);
-
- retVal.setFullName(parseLiteralC(inWords));
- retVal.setCommentRaw(parseLiteralC(inWords));
- retVal.setUser(parseLiteralC(inWords));
- retVal.setHost(parseLiteralC(inWords));
-
- if (!inWords.isEmpty() && inWords[0] == ')')
- inWords.pos++;
- skipWS (inWords);
-
- return retVal;
-}
-
-mailHeader * imapParser::parseEnvelope (parseString & inWords)
-{
- mailHeader *envelope = 0;
-
- if (inWords[0] != '(')
- return envelope;
- inWords.pos++;
- skipWS (inWords);
-
- envelope = new mailHeader;
-
- //date
- envelope->setDate(parseLiteralC(inWords));
-
- //subject
- envelope->setSubject(parseLiteralC(inWords));
-
- TQPtrList<mailAddress> list;
- list.setAutoDelete(true);
-
- //from
- parseAddressList(inWords, list);
- if (!list.isEmpty()) {
- envelope->setFrom(*list.last());
- list.clear();
- }
-
- //sender
- parseAddressList(inWords, list);
- if (!list.isEmpty()) {
- envelope->setSender(*list.last());
- list.clear();
- }
-
- //reply-to
- parseAddressList(inWords, list);
- if (!list.isEmpty()) {
- envelope->setReplyTo(*list.last());
- list.clear();
- }
-
- //to
- parseAddressList (inWords, envelope->to());
-
- //cc
- parseAddressList (inWords, envelope->cc());
-
- //bcc
- parseAddressList (inWords, envelope->bcc());
-
- //in-reply-to
- envelope->setInReplyTo(parseLiteralC(inWords));
-
- //message-id
- envelope->setMessageId(parseLiteralC(inWords));
-
- // see if we have more to come
- while (!inWords.isEmpty () && inWords[0] != ')')
- {
- //eat the extensions to this part
- if (inWords[0] == '(')
- parseSentence (inWords);
- else
- parseLiteralC (inWords);
- }
-
- if (!inWords.isEmpty() && inWords[0] == ')')
- inWords.pos++;
- skipWS (inWords);
-
- return envelope;
-}
-
-// parse parameter pairs into a dictionary
-// caller must clean up the dictionary items
-TQAsciiDict < TQString > imapParser::parseDisposition (parseString & inWords)
-{
- TQCString disposition;
- TQAsciiDict < TQString > retVal (17, false);
-
- // return value is a shallow copy
- retVal.setAutoDelete (false);
-
- if (inWords[0] != '(')
- {
- //disposition only
- disposition = parseOneWordC (inWords);
- }
- else
- {
- inWords.pos++;
- skipWS (inWords);
-
- //disposition
- disposition = parseOneWordC (inWords);
- retVal = parseParameters (inWords);
- if (inWords[0] != ')')
- return retVal;
- inWords.pos++;
- skipWS (inWords);
- }
-
- if (!disposition.isEmpty ())
- {
- retVal.insert ("content-disposition", new TQString(disposition));
- }
-
- return retVal;
-}
-
-// parse parameter pairs into a dictionary
-// caller must clean up the dictionary items
-TQAsciiDict < TQString > imapParser::parseParameters (parseString & inWords)
-{
- TQAsciiDict < TQString > retVal (17, false);
-
- // return value is a shallow copy
- retVal.setAutoDelete (false);
-
- if (inWords[0] != '(')
- {
- //better be NIL
- parseOneWordC (inWords);
- }
- else
- {
- inWords.pos++;
- skipWS (inWords);
-
- while (!inWords.isEmpty () && inWords[0] != ')')
- {
- TQCString l1 = parseLiteralC(inWords);
- TQCString l2 = parseLiteralC(inWords);
- retVal.insert (l1, new TQString(l2));
- }
-
- if (inWords[0] != ')')
- return retVal;
- inWords.pos++;
- skipWS (inWords);
- }
-
- return retVal;
-}
-
-mimeHeader * imapParser::parseSimplePart (parseString & inWords,
- TQString & inSection, mimeHeader * localPart)
-{
- TQCString subtype;
- TQCString typeStr;
- TQAsciiDict < TQString > parameters (17, false);
- ulong size;
-
- parameters.setAutoDelete (true);
-
- if (inWords[0] != '(')
- return 0;
-
- if (!localPart)
- localPart = new mimeHeader;
-
- localPart->setPartSpecifier (inSection);
-
- inWords.pos++;
- skipWS (inWords);
-
- //body type
- typeStr = parseLiteralC(inWords);
-
- //body subtype
- subtype = parseLiteralC(inWords);
-
- localPart->setType (typeStr + "/" + subtype);
-
- //body parameter parenthesized list
- parameters = parseParameters (inWords);
- {
- TQAsciiDictIterator < TQString > it (parameters);
-
- while (it.current ())
- {
- localPart->setTypeParm (it.currentKey (), *(it.current ()));
- ++it;
- }
- parameters.clear ();
- }
-
- //body id
- localPart->setID (parseLiteralC(inWords));
-
- //body description
- localPart->setDescription (parseLiteralC(inWords));
-
- //body encoding
- localPart->setEncoding (parseLiteralC(inWords));
-
- //body size
- if (parseOneNumber (inWords, size))
- localPart->setLength (size);
-
- // type specific extensions
- if (localPart->getType().upper() == "MESSAGE/RFC822")
- {
- //envelope structure
- mailHeader *envelope = parseEnvelope (inWords);
-
- //body structure
- parseBodyStructure (inWords, inSection, envelope);
-
- localPart->setNestedMessage (envelope);
-
- //text lines
- ulong lines;
- parseOneNumber (inWords, lines);
- }
- else
- {
- if (typeStr == "TEXT")
- {
- //text lines
- ulong lines;
- parseOneNumber (inWords, lines);
- }
-
- // md5
- parseLiteralC(inWords);
-
- // body disposition
- parameters = parseDisposition (inWords);
- {
- TQString *disposition = parameters["content-disposition"];
-
- if (disposition)
- localPart->setDisposition (disposition->ascii ());
- parameters.remove ("content-disposition");
- TQAsciiDictIterator < TQString > it (parameters);
- while (it.current ())
- {
- localPart->setDispositionParm (it.currentKey (),
- *(it.current ()));
- ++it;
- }
-
- parameters.clear ();
- }
-
- // body language
- parseSentence (inWords);
- }
-
- // see if we have more to come
- while (!inWords.isEmpty () && inWords[0] != ')')
- {
- //eat the extensions to this part
- if (inWords[0] == '(')
- parseSentence (inWords);
- else
- parseLiteralC(inWords);
- }
- if (inWords[0] == ')')
- inWords.pos++;
- skipWS (inWords);
-
- return localPart;
-}
-
-mimeHeader * imapParser::parseBodyStructure (parseString & inWords,
- TQString & inSection, mimeHeader * localPart)
-{
- bool init = false;
- if (inSection.isEmpty())
- {
- // first run
- init = true;
- // assume one part
- inSection = "1";
- }
- int section = 0;
-
- if (inWords[0] != '(')
- {
- // skip ""
- parseOneWordC (inWords);
- return 0;
- }
- inWords.pos++;
- skipWS (inWords);
-
- if (inWords[0] == '(')
- {
- TQByteArray subtype;
- TQAsciiDict < TQString > parameters (17, false);
- TQString outSection;
- parameters.setAutoDelete (true);
- if (!localPart)
- localPart = new mimeHeader;
- else
- {
- // might be filled from an earlier run
- localPart->clearNestedParts ();
- localPart->clearTypeParameters ();
- localPart->clearDispositionParameters ();
- // an envelope was passed in so this is the multipart header
- outSection = inSection + ".HEADER";
- }
- if (inWords[0] == '(' && init)
- inSection = "0";
-
- // set the section
- if ( !outSection.isEmpty() ) {
- localPart->setPartSpecifier(outSection);
- } else {
- localPart->setPartSpecifier(inSection);
- }
-
- // is multipart (otherwise it is a simplepart and handled later)
- while (inWords[0] == '(')
- {
- outSection = TQString::number(++section);
- if (!init)
- outSection = inSection + "." + outSection;
- mimeHeader *subpart = parseBodyStructure (inWords, outSection, 0);
- localPart->addNestedPart (subpart);
- }
-
- // fetch subtype
- subtype = parseOneWordC (inWords);
-
- localPart->setType ("MULTIPART/" + b2c(subtype));
-
- // fetch parameters
- parameters = parseParameters (inWords);
- {
- TQAsciiDictIterator < TQString > it (parameters);
-
- while (it.current ())
- {
- localPart->setTypeParm (it.currentKey (), *(it.current ()));
- ++it;
- }
- parameters.clear ();
- }
-
- // body disposition
- parameters = parseDisposition (inWords);
- {
- TQString *disposition = parameters["content-disposition"];
-
- if (disposition)
- localPart->setDisposition (disposition->ascii ());
- parameters.remove ("content-disposition");
- TQAsciiDictIterator < TQString > it (parameters);
- while (it.current ())
- {
- localPart->setDispositionParm (it.currentKey (),
- *(it.current ()));
- ++it;
- }
- parameters.clear ();
- }
-
- // body language
- parseSentence (inWords);
-
- }
- else
- {
- // is simple part
- inWords.pos--;
- inWords.data[inWords.pos] = '('; //fake a sentence
- if ( localPart )
- inSection = inSection + ".1";
- localPart = parseSimplePart (inWords, inSection, localPart);
- inWords.pos--;
- inWords.data[inWords.pos] = ')'; //remove fake
- }
-
- // see if we have more to come
- while (!inWords.isEmpty () && inWords[0] != ')')
- {
- //eat the extensions to this part
- if (inWords[0] == '(')
- parseSentence (inWords);
- else
- parseLiteralC(inWords);
- }
-
- if (inWords[0] == ')')
- inWords.pos++;
- skipWS (inWords);
-
- return localPart;
-}
-
-void imapParser::parseBody (parseString & inWords)
-{
- // see if we got a part specifier
- if (inWords[0] == '[')
- {
- TQCString specifier;
- TQCString label;
- inWords.pos++;
-
- specifier = parseOneWordC (inWords, TRUE);
-
- if (inWords[0] == '(')
- {
- inWords.pos++;
-
- while (!inWords.isEmpty () && inWords[0] != ')')
- {
- label = parseOneWordC (inWords);
- }
-
- if (!inWords.isEmpty () && inWords[0] == ')')
- inWords.pos++;
- }
- if (!inWords.isEmpty () && inWords[0] == ']')
- inWords.pos++;
- skipWS (inWords);
-
- // parse the header
- if (specifier == "0")
- {
- mailHeader *envelope = 0;
- if (lastHandled)
- envelope = lastHandled->getHeader ();
-
- if (!envelope || seenUid.isEmpty ())
- {
- kdDebug(7116) << "imapParser::parseBody - discarding " << envelope << " " << seenUid.ascii () << endl;
- // don't know where to put it, throw it away
- parseLiteralC(inWords, true);
- }
- else
- {
- kdDebug(7116) << "imapParser::parseBody - reading " << envelope << " " << seenUid.ascii () << endl;
- // fill it up with data
- TQString theHeader = parseLiteralC(inWords, true);
- mimeIOTQString myIO;
-
- myIO.setString (theHeader);
- envelope->parseHeader (myIO);
-
- }
- }
- else if (specifier == "HEADER.FIELDS")
- {
- // BODY[HEADER.FIELDS (References)] {n}
- //kdDebug(7116) << "imapParser::parseBody - HEADER.FIELDS: "
- // << TQCString(label.data(), label.size()+1) << endl;
- if (label == "REFERENCES")
- {
- mailHeader *envelope = 0;
- if (lastHandled)
- envelope = lastHandled->getHeader ();
-
- if (!envelope || seenUid.isEmpty ())
- {
- kdDebug(7116) << "imapParser::parseBody - discarding " << envelope << " " << seenUid.ascii () << endl;
- // don't know where to put it, throw it away
- parseLiteralC (inWords, true);
- }
- else
- {
- TQCString references = parseLiteralC(inWords, true);
- int start = references.find ('<');
- int end = references.findRev ('>');
- if (start < end)
- references = references.mid (start, end - start + 1);
- envelope->setReferences(references.simplifyWhiteSpace());
- }
- }
- else
- { // not a header we care about throw it away
- parseLiteralC(inWords, true);
- }
- }
- else
- {
- if (specifier.find(".MIME") != -1)
- {
- mailHeader *envelope = new mailHeader;
- TQString theHeader = parseLiteralC(inWords, false);
- mimeIOTQString myIO;
- myIO.setString (theHeader);
- envelope->parseHeader (myIO);
- if (lastHandled)
- lastHandled->setHeader (envelope);
- return;
- }
- // throw it away
- kdDebug(7116) << "imapParser::parseBody - discarding " << seenUid.ascii () << endl;
- parseLiteralC(inWords, true);
- }
-
- }
- else // no part specifier
- {
- mailHeader *envelope = 0;
- if (lastHandled)
- envelope = lastHandled->getHeader ();
-
- if (!envelope || seenUid.isEmpty ())
- {
- kdDebug(7116) << "imapParser::parseBody - discarding " << envelope << " " << seenUid.ascii () << endl;
- // don't know where to put it, throw it away
- parseSentence (inWords);
- }
- else
- {
- kdDebug(7116) << "imapParser::parseBody - reading " << envelope << " " << seenUid.ascii () << endl;
- // fill it up with data
- TQString section;
- mimeHeader *body = parseBodyStructure (inWords, section, envelope);
- if (body != envelope)
- delete body;
- }
- }
-}
-
-void imapParser::parseFetch (ulong /* value */, parseString & inWords)
-{
- if (inWords[0] != '(')
- return;
- inWords.pos++;
- skipWS (inWords);
-
- delete lastHandled;
- lastHandled = 0;
-
- while (!inWords.isEmpty () && inWords[0] != ')')
- {
- if (inWords[0] == '(')
- parseSentence (inWords);
- else
- {
- TQCString word = parseLiteralC(inWords, false, true);
-
- if(!word.isEmpty()) {
- switch (word[0])
- {
- case 'E':
- if (word == "ENVELOPE")
- {
- mailHeader *envelope = 0;
-
- if (lastHandled)
- envelope = lastHandled->getHeader ();
- else
- lastHandled = new imapCache();
-
- if (envelope && !envelope->getMessageId ().isEmpty ())
- {
- // we have seen this one already
- // or don't know where to put it
- parseSentence (inWords);
- }
- else
- {
- envelope = parseEnvelope (inWords);
- if (envelope)
- {
- envelope->setPartSpecifier (seenUid + ".0");
- lastHandled->setHeader (envelope);
- lastHandled->setUid (seenUid.toULong ());
- }
- }
- }
- break;
-
- case 'B':
- if (word == "BODY")
- {
- parseBody (inWords);
- }
- else if (word == "BODY[]" )
- {
- // Do the same as with "RFC822"
- parseLiteralC(inWords, true);
- }
- else if (word == "BODYSTRUCTURE")
- {
- mailHeader *envelope = 0;
-
- if (lastHandled)
- envelope = lastHandled->getHeader ();
-
- // fill it up with data
- TQString section;
- mimeHeader *body =
- parseBodyStructure (inWords, section, envelope);
- TQByteArray data;
- TQDataStream stream( data, IO_WriteOnly );
- if (body) body->serialize(stream);
- parseRelay(data);
-
- delete body;
- }
- break;
-
- case 'U':
- if (word == "UID")
- {
- seenUid = parseOneWordC(inWords);
- mailHeader *envelope = 0;
- if (lastHandled)
- envelope = lastHandled->getHeader ();
- else
- lastHandled = new imapCache();
-
- if (seenUid.isEmpty ())
- {
- // unknown what to do
- kdDebug(7116) << "imapParser::parseFetch - UID empty" << endl;
- }
- else
- {
- lastHandled->setUid (seenUid.toULong ());
- }
- if (envelope)
- envelope->setPartSpecifier (seenUid);
- }
- break;
-
- case 'R':
- if (word == "RFC822.SIZE")
- {
- ulong size;
- parseOneNumber (inWords, size);
-
- if (!lastHandled) lastHandled = new imapCache();
- lastHandled->setSize (size);
- }
- else if (word.find ("RFC822") == 0)
- {
- // might be RFC822 RFC822.TEXT RFC822.HEADER
- parseLiteralC(inWords, true);
- }
- break;
-
- case 'I':
- if (word == "INTERNALDATE")
- {
- TQCString date = parseOneWordC(inWords);
- if (!lastHandled) lastHandled = new imapCache();
- lastHandled->setDate(date);
- }
- break;
-
- case 'F':
- if (word == "FLAGS")
- {
- //kdDebug(7116) << "GOT FLAGS " << inWords.cstr() << endl;
- if (!lastHandled) lastHandled = new imapCache();
- lastHandled->setFlags (imapInfo::_flags (inWords.cstr()));
- }
- break;
-
- default:
- parseLiteralC(inWords);
- break;
- }
- } else {
- parseLiteralC(inWords);
- }
- }
- }
-
- // see if we have more to come
- while (!inWords.isEmpty () && inWords[0] != ')')
- {
- //eat the extensions to this part
- if (inWords[0] == '(')
- parseSentence (inWords);
- else
- parseLiteralC(inWords);
- }
-
- if (inWords.isEmpty() || inWords[0] != ')')
- return;
- inWords.pos++;
- skipWS (inWords);
-}
-
-
-// default parser
-void imapParser::parseSentence (parseString & inWords)
-{
- bool first = true;
- int stack = 0;
-
- //find the first nesting parentheses
-
- while (!inWords.isEmpty () && (stack != 0 || first))
- {
- first = false;
- skipWS (inWords);
-
- unsigned char ch = inWords[0];
- switch (ch)
- {
- case '(':
- inWords.pos++;
- ++stack;
- break;
- case ')':
- inWords.pos++;
- --stack;
- break;
- case '[':
- inWords.pos++;
- ++stack;
- break;
- case ']':
- inWords.pos++;
- --stack;
- break;
- default:
- parseLiteralC(inWords);
- skipWS (inWords);
- break;
- }
- }
- skipWS (inWords);
-}
-
-void imapParser::parseRecent (ulong value, parseString & result)
-{
- selectInfo.setRecent (value);
- result.pos = result.data.size();
-}
-
-void imapParser::parseNamespace (parseString & result)
-{
- if ( result[0] != '(' )
- return;
-
- TQString delimEmpty;
- if ( namespaceToDelimiter.contains( TQString() ) )
- delimEmpty = namespaceToDelimiter[TQString()];
-
- namespaceToDelimiter.clear();
- imapNamespaces.clear();
-
- // remember what section we're in (user, other users, shared)
- int ns = -1;
- bool personalAvailable = false;
- while ( !result.isEmpty() )
- {
- if ( result[0] == '(' )
- {
- result.pos++; // tie off (
- if ( result[0] == '(' )
- {
- // new namespace section
- result.pos++; // tie off (
- ++ns;
- }
- // namespace prefix
- TQCString prefix = parseOneWordC( result );
- // delimiter
- TQCString delim = parseOneWordC( result );
- kdDebug(7116) << "imapParser::parseNamespace ns='" << prefix <<
- "',delim='" << delim << "'" << endl;
- if ( ns == 0 )
- {
- // at least one personal ns
- personalAvailable = true;
- }
- TQString nsentry = TQString::number( ns ) + "=" + TQString(prefix) +
- "=" + TQString(delim);
- imapNamespaces.append( nsentry );
- if ( prefix.right( 1 ) == delim ) {
- // strip delimiter to get a correct entry for comparisons
- prefix.resize( prefix.length() );
- }
- namespaceToDelimiter[prefix] = delim;
-
- result.pos++; // tie off )
- skipWS( result );
- } else if ( result[0] == ')' )
- {
- result.pos++; // tie off )
- skipWS( result );
- } else if ( result[0] == 'N' )
- {
- // drop NIL
- ++ns;
- parseOneWordC( result );
- } else {
- // drop whatever it is
- parseOneWordC( result );
- }
- }
- if ( !delimEmpty.isEmpty() ) {
- // remember default delimiter
- namespaceToDelimiter[TQString()] = delimEmpty;
- if ( !personalAvailable )
- {
- // at least one personal ns would be nice
- kdDebug(7116) << "imapParser::parseNamespace - registering own personal ns" << endl;
- TQString nsentry = "0==" + delimEmpty;
- imapNamespaces.append( nsentry );
- }
- }
-}
-
-int imapParser::parseLoop ()
-{
- parseString result;
-
- if (!parseReadLine(result.data)) return -1;
-
- //kdDebug(7116) << result.cstr(); // includes \n
-
- if (result.data.isEmpty())
- return 0;
- if (!sentQueue.count ())
- {
- // maybe greeting or BYE everything else SHOULD not happen, use NOOP or IDLE
- kdDebug(7116) << "imapParser::parseLoop - unhandledResponse: \n" << result.cstr() << endl;
- unhandled << result.cstr();
- }
- else
- {
- imapCommand *current = sentQueue.at (0);
- switch (result[0])
- {
- case '*':
- result.data.resize(result.data.size() - 2); // tie off CRLF
- parseUntagged (result);
- break;
- case '+':
- continuation.duplicate(result.data);
- break;
- default:
- {
- TQCString tag = parseLiteralC(result);
- if (current->id() == tag.data())
- {
- result.data.resize(result.data.size() - 2); // tie off CRLF
- TQByteArray resultCode = parseLiteral (result); //the result
- current->setResult (resultCode);
- current->setResultInfo(result.cstr());
- current->setComplete ();
-
- sentQueue.removeRef (current);
- completeQueue.append (current);
- if (result.length())
- parseResult (resultCode, result, current->command());
- }
- else
- {
- kdDebug(7116) << "imapParser::parseLoop - unknown tag '" << tag << "'" << endl;
- TQCString cstr = tag + " " + result.cstr();
- result.data = cstr;
- result.pos = 0;
- result.data.resize(cstr.length());
- }
- }
- break;
- }
- }
-
- return 1;
-}
-
-void
-imapParser::parseRelay (const TQByteArray & buffer)
-{
- Q_UNUSED(buffer);
- tqWarning
- ("imapParser::parseRelay - virtual function not reimplemented - data lost");
-}
-
-void
-imapParser::parseRelay (ulong len)
-{
- Q_UNUSED(len);
- tqWarning
- ("imapParser::parseRelay - virtual function not reimplemented - announcement lost");
-}
-
-bool imapParser::parseRead (TQByteArray & buffer, ulong len, ulong relay)
-{
- Q_UNUSED(buffer);
- Q_UNUSED(len);
- Q_UNUSED(relay);
- tqWarning
- ("imapParser::parseRead - virtual function not reimplemented - no data read");
- return FALSE;
-}
-
-bool imapParser::parseReadLine (TQByteArray & buffer, ulong relay)
-{
- Q_UNUSED(buffer);
- Q_UNUSED(relay);
- tqWarning
- ("imapParser::parseReadLine - virtual function not reimplemented - no data read");
- return FALSE;
-}
-
-void
-imapParser::parseWriteLine (const TQString & str)
-{
- Q_UNUSED(str);
- tqWarning
- ("imapParser::parseWriteLine - virtual function not reimplemented - no data written");
-}
-
-void
-imapParser::parseURL (const KURL & _url, TQString & _box, TQString & _section,
- TQString & _type, TQString & _uid, TQString & _validity, TQString & _info)
-{
- TQStringList parameters;
-
- _box = _url.path ();
- kdDebug(7116) << "imapParser::parseURL " << _box << endl;
- int paramStart = _box.find("/;");
- if ( paramStart > -1 )
- {
- TQString paramString = _box.right( _box.length() - paramStart-2 );
- parameters = TQStringList::split (';', paramString); //split parameters
- _box.truncate( paramStart ); // strip parameters
- }
- // extract parameters
- for (TQStringList::ConstIterator it (parameters.begin ());
- it != parameters.end (); ++it)
- {
- TQString temp = (*it);
-
- int pt = temp.find ('/');
- if (pt > 0)
- {
- if (temp.findRev ('"', pt) == -1 || temp.find('"', pt) == -1)
- {
- // if we have non-quoted '/' separator we'll just nuke it
- temp.truncate(pt);
- }
- }
- if (temp.find ("section=", 0, false) == 0)
- _section = temp.right (temp.length () - 8);
- else if (temp.find ("type=", 0, false) == 0)
- _type = temp.right (temp.length () - 5);
- else if (temp.find ("uid=", 0, false) == 0)
- _uid = temp.right (temp.length () - 4);
- else if (temp.find ("uidvalidity=", 0, false) == 0)
- _validity = temp.right (temp.length () - 12);
- else if (temp.find ("info=", 0, false) == 0)
- _info = temp.right (temp.length () - 5);
- }
-// kdDebug(7116) << "URL: section= " << _section << ", type= " << _type << ", uid= " << _uid << endl;
-// kdDebug(7116) << "URL: user() " << _url.user() << endl;
-// kdDebug(7116) << "URL: path() " << _url.path() << endl;
-// kdDebug(7116) << "URL: encodedPathAndQuery() " << _url.encodedPathAndQuery() << endl;
-
- if (!_box.isEmpty ())
- {
- // strip /
- if (_box[0] == '/')
- _box = _box.right (_box.length () - 1);
- if (!_box.isEmpty () && _box[_box.length () - 1] == '/')
- _box.truncate(_box.length() - 1);
- }
- kdDebug(7116) << "URL: box= " << _box << ", section= " << _section << ", type= "
- << _type << ", uid= " << _uid << ", validity= " << _validity << ", info= " << _info << endl;
-}
-
-
-TQCString imapParser::parseLiteralC(parseString & inWords, bool relay, bool stopAtBracket, int *outlen) {
-
- if (!inWords.isEmpty() && inWords[0] == '{')
- {
- TQCString retVal;
- long srunLen = inWords.find ('}', 1); // Can return -1, so use a signed long
- if (srunLen > 0)
- {
- ulong runLen = (ulong)srunLen;
- bool proper;
- ulong runLenSave = runLen + 1;
- TQCString tmpstr(runLen);
- inWords.takeMidNoResize(tmpstr, 1, runLen - 1);
- runLen = tmpstr.toULong (&proper);
- inWords.pos += runLenSave;
- if (proper)
- {
- //now get the literal from the server
- if (relay)
- parseRelay (runLen);
- TQByteArray rv;
- parseRead (rv, runLen, relay ? runLen : 0);
- rv.resize(TQMAX(runLen, rv.size())); // what's the point?
- retVal = b2c(rv);
- inWords.clear();
- parseReadLine (inWords.data); // must get more
-
- // no duplicate data transfers
- relay = false;
- }
- else
- {
- kdDebug(7116) << "imapParser::parseLiteral - error parsing {} - " /*<< strLen*/ << endl;
- }
- }
- else
- {
- inWords.clear();
- kdDebug(7116) << "imapParser::parseLiteral - error parsing unmatched {" << endl;
- }
- if (outlen) {
- *outlen = retVal.length(); // optimize me
- }
- skipWS (inWords);
- return retVal;
- }
-
- return parseOneWordC(inWords, stopAtBracket, outlen);
-}
-
-// does not know about literals ( {7} literal )
-TQCString imapParser::parseOneWordC (parseString & inWords, bool stopAtBracket, int *outLen)
-{
- uint retValSize = 0;
- uint len = inWords.length();
- if (len == 0) {
- return TQCString();
- }
-
- if (len > 0 && inWords[0] == '"')
- {
- unsigned int i = 1;
- bool quote = FALSE;
- while (i < len && (inWords[i] != '"' || quote))
- {
- if (inWords[i] == '\\') quote = !quote;
- else quote = FALSE;
- i++;
- }
- if (i < len)
- {
- TQCString retVal(i);
- inWords.pos++;
- inWords.takeLeftNoResize(retVal, i - 1);
- len = i - 1;
- int offset = 0;
- for (unsigned int j = 0; j <= len; j++) {
- if (retVal[j] == '\\') {
- offset++;
- j++;
- }
- retVal[j - offset] = retVal[j];
- }
- retVal[len - offset] = 0;
- retValSize = len - offset;
- inWords.pos += i;
- skipWS (inWords);
- if (outLen) {
- *outLen = retValSize;
- }
- return retVal;
- }
- else
- {
- kdDebug(7116) << "imapParser::parseOneWord - error parsing unmatched \"" << endl;
- TQCString retVal = inWords.cstr();
- retValSize = len;
- inWords.clear();
- if (outLen) {
- *outLen = retValSize;
- }
- return retVal;
- }
- }
- else
- {
- // not quoted
- unsigned int i;
- // search for end
- for (i = 0; i < len; ++i) {
- char ch = inWords[i];
- if (ch <= ' ' || ch == '(' || ch == ')' ||
- (stopAtBracket && (ch == '[' || ch == ']')))
- break;
- }
-
- TQCString retVal(i+1);
- inWords.takeLeftNoResize(retVal, i);
- retValSize = i;
- inWords.pos += i;
-
- if (retVal == "NIL") {
- retVal.truncate(0);
- retValSize = 0;
- }
- skipWS (inWords);
- if (outLen) {
- *outLen = retValSize;
- }
- return retVal;
- }
-}
-
-bool imapParser::parseOneNumber (parseString & inWords, ulong & num)
-{
- bool valid;
- num = parseOneWordC(inWords, TRUE).toULong(&valid);
- return valid;
-}
-
-bool imapParser::hasCapability (const TQString & cap)
-{
- TQString c = cap.lower();
-// kdDebug(7116) << "imapParser::hasCapability - Looking for '" << cap << "'" << endl;
- for (TQStringList::ConstIterator it = imapCapabilities.begin ();
- it != imapCapabilities.end (); ++it)
- {
-// kdDebug(7116) << "imapParser::hasCapability - Examining '" << (*it) << "'" << endl;
- if ( !(kasciistricmp(c.ascii(), (*it).ascii())) )
- {
- return true;
- }
- }
- return false;
-}
-
-void imapParser::removeCapability (const TQString & cap)
-{
- imapCapabilities.remove(cap.lower());
-}
-
-TQString imapParser::namespaceForBox( const TQString & box )
-{
- kdDebug(7116) << "imapParse::namespaceForBox " << box << endl;
- TQString myNamespace;
- if ( !box.isEmpty() )
- {
- TQValueList<TQString> list = namespaceToDelimiter.keys();
- TQString cleanPrefix;
- for ( TQValueList<TQString>::Iterator it = list.begin(); it != list.end(); ++it )
- {
- if ( !(*it).isEmpty() && box.find( *it ) != -1 )
- return (*it);
- }
- }
- return myNamespace;
-}
-
diff --git a/tdeioslave/imap4/imapparser.cpp b/tdeioslave/imap4/imapparser.cpp
new file mode 100644
index 00000000..d833b639
--- /dev/null
+++ b/tdeioslave/imap4/imapparser.cpp
@@ -0,0 +1,2094 @@
+/**********************************************************************
+ *
+ * imapparser.cpp - IMAP4rev1 Parser
+ * Copyright (C) 2001-2002 Michael Haeckel <haeckel@kde.org>
+ * Copyright (C) 2000 s.carstens@gmx.de
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Send comments and bug fixes to s.carstens@gmx.de
+ *
+ *********************************************************************/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "rfcdecoder.h"
+
+#include "imapparser.h"
+
+#include "imapinfo.h"
+
+#include "mailheader.h"
+#include "mimeheader.h"
+#include "mailaddress.h"
+
+#include <sys/types.h>
+
+#include <stdlib.h>
+#include <unistd.h>
+
+#ifdef HAVE_LIBSASL2
+extern "C" {
+#include <sasl/sasl.h>
+}
+#endif
+
+#include <tqregexp.h>
+#include <tqbuffer.h>
+#include <tqstring.h>
+#include <tqstringlist.h>
+
+#include <kdebug.h>
+#include <kmdcodec.h>
+#include <kurl.h>
+
+#include <kasciistricmp.h>
+#include <kasciistringtools.h>
+
+#ifdef HAVE_LIBSASL2
+static sasl_callback_t callbacks[] = {
+ { SASL_CB_ECHOPROMPT, NULL, NULL },
+ { SASL_CB_NOECHOPROMPT, NULL, NULL },
+ { SASL_CB_GETREALM, NULL, NULL },
+ { SASL_CB_USER, NULL, NULL },
+ { SASL_CB_AUTHNAME, NULL, NULL },
+ { SASL_CB_PASS, NULL, NULL },
+ { SASL_CB_CANON_USER, NULL, NULL },
+ { SASL_CB_LIST_END, NULL, NULL }
+};
+#endif
+
+imapParser::imapParser ()
+{
+ sentQueue.setAutoDelete (false);
+ completeQueue.setAutoDelete (true);
+ currentState = ISTATE_NO;
+ commandCounter = 0;
+ lastHandled = 0;
+}
+
+imapParser::~imapParser ()
+{
+ delete lastHandled;
+ lastHandled = 0;
+}
+
+imapCommand *
+imapParser::doCommand (imapCommand * aCmd)
+{
+ int pl = 0;
+ sendCommand (aCmd);
+ while (pl != -1 && !aCmd->isComplete ()) {
+ while ((pl = parseLoop ()) == 0)
+ ;
+ }
+
+ return aCmd;
+}
+
+imapCommand *
+imapParser::sendCommand (imapCommand * aCmd)
+{
+ aCmd->setId (TQString::number(commandCounter++));
+ sentQueue.append (aCmd);
+
+ continuation.resize(0);
+ const TQString& command = aCmd->command();
+
+ if (command == "SELECT" || command == "EXAMINE")
+ {
+ // we need to know which box we are selecting
+ parseString p;
+ p.fromString(aCmd->parameter());
+ currentBox = parseOneWordC(p);
+ kdDebug(7116) << "imapParser::sendCommand - setting current box to " << currentBox << endl;
+ }
+ else if (command == "CLOSE")
+ {
+ // we no longer have a box open
+ currentBox = TQString();
+ }
+ else if (command.find ("SEARCH") != -1
+ || command == "GETACL"
+ || command == "LISTRIGHTS"
+ || command == "MYRIGHTS"
+ || command == "GETANNOTATION"
+ || command == "NAMESPACE"
+ || command == "GETQUOTAROOT"
+ || command == "GETQUOTA"
+ || command == "X-GET-OTHER-USERS"
+ || command == "X-GET-DELEGATES"
+ || command == "X-GET-OUT-OF-OFFICE")
+ {
+ lastResults.clear ();
+ }
+ else if (command == "LIST"
+ || command == "LSUB")
+ {
+ listResponses.clear ();
+ }
+ parseWriteLine (aCmd->getStr ());
+ return aCmd;
+}
+
+bool
+imapParser::clientLogin (const TQString & aUser, const TQString & aPass,
+ TQString & resultInfo)
+{
+ imapCommand *cmd;
+ bool retVal = false;
+
+ cmd =
+ doCommand (new
+ imapCommand ("LOGIN", "\"" + rfcDecoder::quoteIMAP(aUser)
+ + "\" \"" + rfcDecoder::quoteIMAP(aPass) + "\""));
+
+ if (cmd->result () == "OK")
+ {
+ currentState = ISTATE_LOGIN;
+ retVal = true;
+ }
+ resultInfo = cmd->resultInfo();
+ completeQueue.removeRef (cmd);
+
+ return retVal;
+}
+
+#ifdef HAVE_LIBSASL2
+static bool sasl_interact( TDEIO::SlaveBase *slave, TDEIO::AuthInfo &ai, void *in )
+{
+ kdDebug(7116) << "sasl_interact" << endl;
+ sasl_interact_t *interact = ( sasl_interact_t * ) in;
+
+ //some mechanisms do not require username && pass, so it doesn't need a popup
+ //window for getting this info
+ for ( ; interact->id != SASL_CB_LIST_END; interact++ ) {
+ if ( interact->id == SASL_CB_AUTHNAME ||
+ interact->id == SASL_CB_PASS ) {
+
+ if ( ai.username.isEmpty() || ai.password.isEmpty() ) {
+ if (!slave->openPassDlg(ai))
+ return false;
+ }
+ break;
+ }
+ }
+
+ interact = ( sasl_interact_t * ) in;
+ while( interact->id != SASL_CB_LIST_END ) {
+ kdDebug(7116) << "SASL_INTERACT id: " << interact->id << endl;
+ switch( interact->id ) {
+ case SASL_CB_USER:
+ case SASL_CB_AUTHNAME:
+ kdDebug(7116) << "SASL_CB_[USER|AUTHNAME]: '" << ai.username << "'" << endl;
+ interact->result = strdup( ai.username.utf8() );
+ interact->len = strlen( (const char *) interact->result );
+ break;
+ case SASL_CB_PASS:
+ kdDebug(7116) << "SASL_CB_PASS: [hidden] " << endl;
+ interact->result = strdup( ai.password.utf8() );
+ interact->len = strlen( (const char *) interact->result );
+ break;
+ default:
+ interact->result = 0;
+ interact->len = 0;
+ break;
+ }
+ interact++;
+ }
+ return true;
+}
+#endif
+
+bool
+imapParser::clientAuthenticate ( TDEIO::SlaveBase *slave, TDEIO::AuthInfo &ai,
+ const TQString & aFTQDN, const TQString & aAuth, bool isSSL, TQString & resultInfo)
+{
+ bool retVal = false;
+#ifdef HAVE_LIBSASL2
+ int result;
+ sasl_conn_t *conn = 0;
+ sasl_interact_t *client_interact = 0;
+ const char *out = 0;
+ uint outlen = 0;
+ const char *mechusing = 0;
+ TQByteArray tmp, challenge;
+
+ kdDebug(7116) << "aAuth: " << aAuth << " FTQDN: " << aFTQDN << " isSSL: " << isSSL << endl;
+
+ // see if server supports this authenticator
+ if (!hasCapability ("AUTH=" + aAuth))
+ return false;
+
+// result = sasl_client_new( isSSL ? "imaps" : "imap",
+ result = sasl_client_new( "imap", /* FIXME: with cyrus-imapd, even imaps' digest-uri
+ must be 'imap'. I don't know if it's good or bad. */
+ aFTQDN.latin1(),
+ 0, 0, callbacks, 0, &conn );
+
+ if ( result != SASL_OK ) {
+ kdDebug(7116) << "sasl_client_new failed with: " << result << endl;
+ resultInfo = TQString::fromUtf8( sasl_errdetail( conn ) );
+ return false;
+ }
+
+ do {
+ result = sasl_client_start(conn, aAuth.latin1(), &client_interact,
+ hasCapability("SASL-IR") ? &out : 0, &outlen, &mechusing);
+
+ if ( result == SASL_INTERACT ) {
+ if ( !sasl_interact( slave, ai, client_interact ) ) {
+ sasl_dispose( &conn );
+ return false;
+ }
+ }
+ } while ( result == SASL_INTERACT );
+
+ if ( result != SASL_CONTINUE && result != SASL_OK ) {
+ kdDebug(7116) << "sasl_client_start failed with: " << result << endl;
+ resultInfo = TQString::fromUtf8( sasl_errdetail( conn ) );
+ sasl_dispose( &conn );
+ return false;
+ }
+ imapCommand *cmd;
+
+ tmp.setRawData( out, outlen );
+ KCodecs::base64Encode( tmp, challenge );
+ tmp.resetRawData( out, outlen );
+ // then lets try it
+ TQString firstCommand = aAuth;
+ if ( !challenge.isEmpty() ) {
+ firstCommand += " ";
+ firstCommand += TQString::fromLatin1( challenge.data(), challenge.size() );
+ }
+ cmd = sendCommand (new imapCommand ("AUTHENTICATE", firstCommand.latin1()));
+
+ int pl = 0;
+ while ( pl != -1 && !cmd->isComplete () )
+ {
+ //read the next line
+ while ((pl = parseLoop()) == 0) ;
+
+ if (!continuation.isEmpty())
+ {
+// kdDebug(7116) << "S: " << TQCString(continuation.data(),continuation.size()+1) << endl;
+ if ( continuation.size() > 4 ) {
+ tmp.setRawData( continuation.data() + 2, continuation.size() - 4 );
+ KCodecs::base64Decode( tmp, challenge );
+// kdDebug(7116) << "S-1: " << TQCString(challenge.data(),challenge.size()+1) << endl;
+ tmp.resetRawData( continuation.data() + 2, continuation.size() - 4 );
+ }
+
+ do {
+ result = sasl_client_step(conn, challenge.isEmpty() ? 0 : challenge.data(),
+ challenge.size(),
+ &client_interact,
+ &out, &outlen);
+
+ if (result == SASL_INTERACT) {
+ if ( !sasl_interact( slave, ai, client_interact ) ) {
+ sasl_dispose( &conn );
+ return false;
+ }
+ }
+ } while ( result == SASL_INTERACT );
+
+ if ( result != SASL_CONTINUE && result != SASL_OK ) {
+ kdDebug(7116) << "sasl_client_step failed with: " << result << endl;
+ resultInfo = TQString::fromUtf8( sasl_errdetail( conn ) );
+ sasl_dispose( &conn );
+ return false;
+ }
+
+ tmp.setRawData( out, outlen );
+// kdDebug(7116) << "C-1: " << TQCString(tmp.data(),tmp.size()+1) << endl;
+ KCodecs::base64Encode( tmp, challenge );
+ tmp.resetRawData( out, outlen );
+// kdDebug(7116) << "C: " << TQCString(challenge.data(),challenge.size()+1) << endl;
+ parseWriteLine (challenge);
+ continuation.resize(0);
+ }
+ }
+
+ if (cmd->result () == "OK")
+ {
+ currentState = ISTATE_LOGIN;
+ retVal = true;
+ }
+ resultInfo = cmd->resultInfo();
+ completeQueue.removeRef (cmd);
+
+ sasl_dispose( &conn ); //we don't use sasl_en/decode(), so it's safe to dispose the connection.
+#endif //HAVE_LIBSASL2
+ return retVal;
+}
+
+void
+imapParser::parseUntagged (parseString & result)
+{
+ //kdDebug(7116) << "imapParser::parseUntagged - '" << result.cstr() << "'" << endl;
+
+ parseOneWordC(result); // *
+ TQByteArray what = parseLiteral (result); // see whats coming next
+
+ if(!what.isEmpty ()) {
+ switch (what[0])
+ {
+ //the status responses
+ case 'B': // BAD or BYE
+ if (tqstrncmp(what, "BAD", what.size()) == 0)
+ {
+ parseResult (what, result);
+ }
+ else if (tqstrncmp(what, "BYE", what.size()) == 0)
+ {
+ parseResult (what, result);
+ if ( sentQueue.count() ) {
+ // BYE that interrupts a command -> copy the reason for it
+ imapCommand *current = sentQueue.at (0);
+ current->setResultInfo(result.cstr());
+ }
+ currentState = ISTATE_NO;
+ }
+ break;
+
+ case 'N': // NO
+ if (what[1] == 'O' && what.size() == 2)
+ {
+ parseResult (what, result);
+ }
+ else if (tqstrncmp(what, "NAMESPACE", what.size()) == 0)
+ {
+ parseNamespace (result);
+ }
+ break;
+
+ case 'O': // OK
+ if (what[1] == 'K' && what.size() == 2)
+ {
+ parseResult (what, result);
+ } else if (tqstrncmp(what, "OTHER-USER", 10) == 0) { // X-GET-OTHER-USER
+ parseOtherUser (result);
+ } else if (tqstrncmp(what, "OUT-OF-OFFICE", 13) == 0) { // X-GET-OUT-OF-OFFICE
+ parseOutOfOffice (result);
+ }
+ break;
+ case 'D':
+ if (tqstrncmp(what, "DELEGATE", 8) == 0) { // X-GET-DELEGATES
+ parseDelegate (result);
+ }
+ break;
+
+ case 'P': // PREAUTH
+ if (tqstrncmp(what, "PREAUTH", what.size()) == 0)
+ {
+ parseResult (what, result);
+ currentState = ISTATE_LOGIN;
+ }
+ break;
+
+ // parse the other responses
+ case 'C': // CAPABILITY
+ if (tqstrncmp(what, "CAPABILITY", what.size()) == 0)
+ {
+ parseCapability (result);
+ }
+ break;
+
+ case 'F': // FLAGS
+ if (tqstrncmp(what, "FLAGS", what.size()) == 0)
+ {
+ parseFlags (result);
+ }
+ break;
+
+ case 'L': // LIST or LSUB or LISTRIGHTS
+ if (tqstrncmp(what, "LIST", what.size()) == 0)
+ {
+ parseList (result);
+ }
+ else if (tqstrncmp(what, "LSUB", what.size()) == 0)
+ {
+ parseLsub (result);
+ }
+ else if (tqstrncmp(what, "LISTRIGHTS", what.size()) == 0)
+ {
+ parseListRights (result);
+ }
+ break;
+
+ case 'M': // MYRIGHTS
+ if (tqstrncmp(what, "MYRIGHTS", what.size()) == 0)
+ {
+ parseMyRights (result);
+ }
+ break;
+ case 'S': // SEARCH or STATUS
+ if (tqstrncmp(what, "SEARCH", what.size()) == 0)
+ {
+ parseSearch (result);
+ }
+ else if (tqstrncmp(what, "STATUS", what.size()) == 0)
+ {
+ parsetStatus (result);
+ }
+ break;
+
+ case 'A': // ACL or ANNOTATION
+ if (tqstrncmp(what, "ACL", what.size()) == 0)
+ {
+ parseAcl (result);
+ }
+ else if (tqstrncmp(what, "ANNOTATION", what.size()) == 0)
+ {
+ parseAnnotation (result);
+ }
+ break;
+ case 'Q': // QUOTA or QUOTAROOT
+ if ( what.size() > 5 && tqstrncmp(what, "QUOTAROOT", what.size()) == 0)
+ {
+ parseQuotaRoot( result );
+ }
+ else if (tqstrncmp(what, "QUOTA", what.size()) == 0)
+ {
+ parseQuota( result );
+ }
+ break;
+ case 'X': // Custom command
+ {
+ parseCustom( result );
+ }
+ break;
+ default:
+ //better be a number
+ {
+ ulong number;
+ bool valid;
+
+ number = TQCString(what, what.size() + 1).toUInt(&valid);
+ if (valid)
+ {
+ what = parseLiteral (result);
+ if(!what.isEmpty ()) {
+ switch (what[0])
+ {
+ case 'E':
+ if (tqstrncmp(what, "EXISTS", what.size()) == 0)
+ {
+ parseExists (number, result);
+ }
+ else if (tqstrncmp(what, "EXPUNGE", what.size()) == 0)
+ {
+ parseExpunge (number, result);
+ }
+ break;
+
+ case 'F':
+ if (tqstrncmp(what, "FETCH", what.size()) == 0)
+ {
+ seenUid = TQString();
+ parseFetch (number, result);
+ }
+ break;
+
+ case 'S':
+ if (tqstrncmp(what, "STORE", what.size()) == 0) // deprecated store
+ {
+ seenUid = TQString();
+ parseFetch (number, result);
+ }
+ break;
+
+ case 'R':
+ if (tqstrncmp(what, "RECENT", what.size()) == 0)
+ {
+ parseRecent (number, result);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ }
+ break;
+ } //switch
+ }
+} //func
+
+
+void
+imapParser::parseResult (TQByteArray & result, parseString & rest,
+ const TQString & command)
+{
+ if (command == "SELECT")
+ selectInfo.setReadWrite(true);
+
+ if (rest[0] == '[')
+ {
+ rest.pos++;
+ TQCString option = parseOneWordC(rest, TRUE);
+
+ switch (option[0])
+ {
+ case 'A': // ALERT
+ if (option == "ALERT")
+ {
+ rest.pos = rest.data.find(']', rest.pos) + 1;
+ // The alert text is after [ALERT].
+ // Is this correct or do we need to care about litterals?
+ selectInfo.setAlert( rest.cstr() );
+ }
+ break;
+
+ case 'N': // NEWNAME
+ if (option == "NEWNAME")
+ {
+ }
+ break;
+
+ case 'P': //PARSE or PERMANENTFLAGS
+ if (option == "PARSE")
+ {
+ }
+ else if (option == "PERMANENTFLAGS")
+ {
+ uint end = rest.data.find(']', rest.pos);
+ TQCString flags(rest.data.data() + rest.pos, end - rest.pos);
+ selectInfo.setPermanentFlags (flags);
+ rest.pos = end;
+ }
+ break;
+
+ case 'R': //READ-ONLY or READ-WRITE
+ if (option == "READ-ONLY")
+ {
+ selectInfo.setReadWrite (false);
+ }
+ else if (option == "READ-WRITE")
+ {
+ selectInfo.setReadWrite (true);
+ }
+ break;
+
+ case 'T': //TRYCREATE
+ if (option == "TRYCREATE")
+ {
+ }
+ break;
+
+ case 'U': //UIDVALIDITY or UNSEEN
+ if (option == "UIDVALIDITY")
+ {
+ ulong value;
+ if (parseOneNumber (rest, value))
+ selectInfo.setUidValidity (value);
+ }
+ else if (option == "UNSEEN")
+ {
+ ulong value;
+ if (parseOneNumber (rest, value))
+ selectInfo.setUnseen (value);
+ }
+ else if (option == "UIDNEXT")
+ {
+ ulong value;
+ if (parseOneNumber (rest, value))
+ selectInfo.setUidNext (value);
+ }
+ else
+ break;
+
+ }
+ if (rest[0] == ']')
+ rest.pos++; //tie off ]
+ skipWS (rest);
+ }
+
+ if (command.isEmpty())
+ {
+ // This happens when parsing an intermediate result line (those that start with '*').
+ // No state change involved, so we can stop here.
+ return;
+ }
+
+ switch (command[0].latin1 ())
+ {
+ case 'A':
+ if (command == "AUTHENTICATE")
+ if (tqstrncmp(result, "OK", result.size()) == 0)
+ currentState = ISTATE_LOGIN;
+ break;
+
+ case 'L':
+ if (command == "LOGIN")
+ if (tqstrncmp(result, "OK", result.size()) == 0)
+ currentState = ISTATE_LOGIN;
+ break;
+
+ case 'E':
+ if (command == "EXAMINE")
+ {
+ if (tqstrncmp(result, "OK", result.size()) == 0)
+ currentState = ISTATE_SELECT;
+ else
+ {
+ if (currentState == ISTATE_SELECT)
+ currentState = ISTATE_LOGIN;
+ currentBox = TQString();
+ }
+ kdDebug(7116) << "imapParser::parseResult - current box is now " << currentBox << endl;
+ }
+ break;
+
+ case 'S':
+ if (command == "SELECT")
+ {
+ if (tqstrncmp(result, "OK", result.size()) == 0)
+ currentState = ISTATE_SELECT;
+ else
+ {
+ if (currentState == ISTATE_SELECT)
+ currentState = ISTATE_LOGIN;
+ currentBox = TQString();
+ }
+ kdDebug(7116) << "imapParser::parseResult - current box is now " << currentBox << endl;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+}
+
+void imapParser::parseCapability (parseString & result)
+{
+ TQCString temp( result.cstr() );
+ imapCapabilities = TQStringList::split ( ' ', KPIM::kAsciiToLower( temp.data() ) );
+}
+
+void imapParser::parseFlags (parseString & result)
+{
+ selectInfo.setFlags(result.cstr());
+}
+
+void imapParser::parseList (parseString & result)
+{
+ imapList this_one;
+
+ if (result[0] != '(')
+ return; //not proper format for us
+
+ result.pos++; // tie off (
+
+ this_one.parseAttributes( result );
+
+ result.pos++; // tie off )
+ skipWS (result);
+
+ this_one.setHierarchyDelimiter(parseLiteralC(result));
+ this_one.setName (rfcDecoder::fromIMAP(parseLiteralC(result))); // decode modified UTF7
+
+ listResponses.append (this_one);
+}
+
+void imapParser::parseLsub (parseString & result)
+{
+ imapList this_one (result.cstr(), *this);
+ listResponses.append (this_one);
+}
+
+void imapParser::parseListRights (parseString & result)
+{
+ parseOneWordC (result); // skip mailbox name
+ parseOneWordC (result); // skip user id
+ int outlen = 1;
+ while ( outlen ) {
+ TQCString word = parseOneWordC (result, false, &outlen);
+ lastResults.append (word);
+ }
+}
+
+void imapParser::parseAcl (parseString & result)
+{
+ parseOneWordC (result); // skip mailbox name
+ int outlen = 1;
+ // The result is user1 perm1 user2 perm2 etc. The caller will sort it out.
+ while ( outlen && !result.isEmpty() ) {
+ TQCString word = parseLiteralC (result, false, false, &outlen);
+ lastResults.append (word);
+ }
+}
+
+void imapParser::parseAnnotation (parseString & result)
+{
+ parseOneWordC (result); // skip mailbox name
+ skipWS (result);
+ parseOneWordC (result); // skip entry name (we know it since we don't allow wildcards in it)
+ skipWS (result);
+ if (result.isEmpty() || result[0] != '(')
+ return;
+ result.pos++;
+ skipWS (result);
+ int outlen = 1;
+ // The result is name1 value1 name2 value2 etc. The caller will sort it out.
+ while ( outlen && !result.isEmpty() && result[0] != ')' ) {
+ TQCString word = parseLiteralC (result, false, false, &outlen);
+ lastResults.append (word);
+ }
+}
+
+
+void imapParser::parseQuota (parseString & result)
+{
+ // quota_response ::= "QUOTA" SP astring SP quota_list
+ // quota_list ::= "(" #quota_resource ")"
+ // quota_resource ::= atom SP number SP number
+ TQCString root = parseOneWordC( result );
+ if ( root.isEmpty() ) {
+ lastResults.append( "" );
+ } else {
+ lastResults.append( root );
+ }
+ if (result.isEmpty() || result[0] != '(')
+ return;
+ result.pos++;
+ skipWS (result);
+ TQStringList triplet;
+ int outlen = 1;
+ while ( outlen && !result.isEmpty() && result[0] != ')' ) {
+ TQCString word = parseLiteralC (result, false, false, &outlen);
+ triplet.append(word);
+ }
+ lastResults.append( triplet.join(" ") );
+}
+
+void imapParser::parseQuotaRoot (parseString & result)
+{
+ // quotaroot_response
+ // ::= "QUOTAROOT" SP astring *(SP astring)
+ parseOneWordC (result); // skip mailbox name
+ skipWS (result);
+ if ( result.isEmpty() )
+ return;
+ TQStringList roots;
+ int outlen = 1;
+ while ( outlen && !result.isEmpty() ) {
+ TQCString word = parseLiteralC (result, false, false, &outlen);
+ roots.append (word);
+ }
+ lastResults.append( roots.isEmpty()? "" : roots.join(" ") );
+}
+
+void imapParser::parseCustom (parseString & result)
+{
+ int outlen = 1;
+ TQCString word = parseLiteralC (result, false, false, &outlen);
+ lastResults.append( word );
+}
+
+void imapParser::parseOtherUser (parseString & result)
+{
+ lastResults.append( parseOneWordC( result ) );
+}
+
+void imapParser::parseDelegate (parseString & result)
+{
+ const TQString email = parseOneWordC( result );
+
+ TQStringList rights;
+ int outlen = 1;
+ while ( outlen && !result.isEmpty() ) {
+ TQCString word = parseLiteralC( result, false, false, &outlen );
+ rights.append( word );
+ }
+
+ lastResults.append( email + ':' + rights.join( "," ) );
+}
+
+void imapParser::parseOutOfOffice (parseString & result)
+{
+ const TQString state = parseOneWordC (result);
+ parseOneWordC (result); // skip encoding
+
+ int outlen = 1;
+ TQCString msg = parseLiteralC (result, false, false, &outlen);
+
+ lastResults.append( state + '^' + TQString::fromUtf8( msg ) );
+}
+
+void imapParser::parseMyRights (parseString & result)
+{
+ parseOneWordC (result); // skip mailbox name
+ Q_ASSERT( lastResults.isEmpty() ); // we can only be called once
+ lastResults.append (parseOneWordC (result) );
+}
+
+void imapParser::parseSearch (parseString & result)
+{
+ ulong value;
+
+ while (parseOneNumber (result, value))
+ {
+ lastResults.append (TQString::number(value));
+ }
+}
+
+void imapParser::parsetStatus (parseString & inWords)
+{
+ lasStatus = imapInfo ();
+
+ parseLiteralC(inWords); // swallow the box
+ if (inWords.isEmpty() || inWords[0] != '(')
+ return;
+
+ inWords.pos++;
+ skipWS (inWords);
+
+ while (!inWords.isEmpty() && inWords[0] != ')')
+ {
+ ulong value;
+
+ TQCString label = parseOneWordC(inWords);
+ if (parseOneNumber (inWords, value))
+ {
+ if (label == "MESSAGES")
+ lasStatus.setCount (value);
+ else if (label == "RECENT")
+ lasStatus.setRecent (value);
+ else if (label == "UIDVALIDITY")
+ lasStatus.setUidValidity (value);
+ else if (label == "UNSEEN")
+ lasStatus.setUnseen (value);
+ else if (label == "UIDNEXT")
+ lasStatus.setUidNext (value);
+ }
+ }
+
+ if (inWords[0] == ')')
+ inWords.pos++;
+ skipWS (inWords);
+}
+
+void imapParser::parseExists (ulong value, parseString & result)
+{
+ selectInfo.setCount (value);
+ result.pos = result.data.size();
+}
+
+void imapParser::parseExpunge (ulong value, parseString & result)
+{
+ Q_UNUSED(value);
+ Q_UNUSED(result);
+}
+
+void imapParser::parseAddressList (parseString & inWords, TQPtrList<mailAddress>& list)
+{
+ if (inWords.isEmpty())
+ return;
+ if (inWords[0] != '(')
+ {
+ parseOneWordC (inWords); // parse NIL
+ }
+ else
+ {
+ inWords.pos++;
+ skipWS (inWords);
+
+ while (!inWords.isEmpty () && inWords[0] != ')')
+ {
+ if (inWords[0] == '(') {
+ mailAddress *addr = new mailAddress;
+ parseAddress(inWords, *addr);
+ list.append(addr);
+ } else {
+ break;
+ }
+ }
+
+ if (!inWords.isEmpty() && inWords[0] == ')')
+ inWords.pos++;
+ skipWS (inWords);
+ }
+}
+
+const mailAddress& imapParser::parseAddress (parseString & inWords, mailAddress& retVal)
+{
+ inWords.pos++;
+ skipWS (inWords);
+
+ retVal.setFullName(parseLiteralC(inWords));
+ retVal.setCommentRaw(parseLiteralC(inWords));
+ retVal.setUser(parseLiteralC(inWords));
+ retVal.setHost(parseLiteralC(inWords));
+
+ if (!inWords.isEmpty() && inWords[0] == ')')
+ inWords.pos++;
+ skipWS (inWords);
+
+ return retVal;
+}
+
+mailHeader * imapParser::parseEnvelope (parseString & inWords)
+{
+ mailHeader *envelope = 0;
+
+ if (inWords[0] != '(')
+ return envelope;
+ inWords.pos++;
+ skipWS (inWords);
+
+ envelope = new mailHeader;
+
+ //date
+ envelope->setDate(parseLiteralC(inWords));
+
+ //subject
+ envelope->setSubject(parseLiteralC(inWords));
+
+ TQPtrList<mailAddress> list;
+ list.setAutoDelete(true);
+
+ //from
+ parseAddressList(inWords, list);
+ if (!list.isEmpty()) {
+ envelope->setFrom(*list.last());
+ list.clear();
+ }
+
+ //sender
+ parseAddressList(inWords, list);
+ if (!list.isEmpty()) {
+ envelope->setSender(*list.last());
+ list.clear();
+ }
+
+ //reply-to
+ parseAddressList(inWords, list);
+ if (!list.isEmpty()) {
+ envelope->setReplyTo(*list.last());
+ list.clear();
+ }
+
+ //to
+ parseAddressList (inWords, envelope->to());
+
+ //cc
+ parseAddressList (inWords, envelope->cc());
+
+ //bcc
+ parseAddressList (inWords, envelope->bcc());
+
+ //in-reply-to
+ envelope->setInReplyTo(parseLiteralC(inWords));
+
+ //message-id
+ envelope->setMessageId(parseLiteralC(inWords));
+
+ // see if we have more to come
+ while (!inWords.isEmpty () && inWords[0] != ')')
+ {
+ //eat the extensions to this part
+ if (inWords[0] == '(')
+ parseSentence (inWords);
+ else
+ parseLiteralC (inWords);
+ }
+
+ if (!inWords.isEmpty() && inWords[0] == ')')
+ inWords.pos++;
+ skipWS (inWords);
+
+ return envelope;
+}
+
+// parse parameter pairs into a dictionary
+// caller must clean up the dictionary items
+TQAsciiDict < TQString > imapParser::parseDisposition (parseString & inWords)
+{
+ TQCString disposition;
+ TQAsciiDict < TQString > retVal (17, false);
+
+ // return value is a shallow copy
+ retVal.setAutoDelete (false);
+
+ if (inWords[0] != '(')
+ {
+ //disposition only
+ disposition = parseOneWordC (inWords);
+ }
+ else
+ {
+ inWords.pos++;
+ skipWS (inWords);
+
+ //disposition
+ disposition = parseOneWordC (inWords);
+ retVal = parseParameters (inWords);
+ if (inWords[0] != ')')
+ return retVal;
+ inWords.pos++;
+ skipWS (inWords);
+ }
+
+ if (!disposition.isEmpty ())
+ {
+ retVal.insert ("content-disposition", new TQString(disposition));
+ }
+
+ return retVal;
+}
+
+// parse parameter pairs into a dictionary
+// caller must clean up the dictionary items
+TQAsciiDict < TQString > imapParser::parseParameters (parseString & inWords)
+{
+ TQAsciiDict < TQString > retVal (17, false);
+
+ // return value is a shallow copy
+ retVal.setAutoDelete (false);
+
+ if (inWords[0] != '(')
+ {
+ //better be NIL
+ parseOneWordC (inWords);
+ }
+ else
+ {
+ inWords.pos++;
+ skipWS (inWords);
+
+ while (!inWords.isEmpty () && inWords[0] != ')')
+ {
+ TQCString l1 = parseLiteralC(inWords);
+ TQCString l2 = parseLiteralC(inWords);
+ retVal.insert (l1, new TQString(l2));
+ }
+
+ if (inWords[0] != ')')
+ return retVal;
+ inWords.pos++;
+ skipWS (inWords);
+ }
+
+ return retVal;
+}
+
+mimeHeader * imapParser::parseSimplePart (parseString & inWords,
+ TQString & inSection, mimeHeader * localPart)
+{
+ TQCString subtype;
+ TQCString typeStr;
+ TQAsciiDict < TQString > parameters (17, false);
+ ulong size;
+
+ parameters.setAutoDelete (true);
+
+ if (inWords[0] != '(')
+ return 0;
+
+ if (!localPart)
+ localPart = new mimeHeader;
+
+ localPart->setPartSpecifier (inSection);
+
+ inWords.pos++;
+ skipWS (inWords);
+
+ //body type
+ typeStr = parseLiteralC(inWords);
+
+ //body subtype
+ subtype = parseLiteralC(inWords);
+
+ localPart->setType (typeStr + "/" + subtype);
+
+ //body parameter parenthesized list
+ parameters = parseParameters (inWords);
+ {
+ TQAsciiDictIterator < TQString > it (parameters);
+
+ while (it.current ())
+ {
+ localPart->setTypeParm (it.currentKey (), *(it.current ()));
+ ++it;
+ }
+ parameters.clear ();
+ }
+
+ //body id
+ localPart->setID (parseLiteralC(inWords));
+
+ //body description
+ localPart->setDescription (parseLiteralC(inWords));
+
+ //body encoding
+ localPart->setEncoding (parseLiteralC(inWords));
+
+ //body size
+ if (parseOneNumber (inWords, size))
+ localPart->setLength (size);
+
+ // type specific extensions
+ if (localPart->getType().upper() == "MESSAGE/RFC822")
+ {
+ //envelope structure
+ mailHeader *envelope = parseEnvelope (inWords);
+
+ //body structure
+ parseBodyStructure (inWords, inSection, envelope);
+
+ localPart->setNestedMessage (envelope);
+
+ //text lines
+ ulong lines;
+ parseOneNumber (inWords, lines);
+ }
+ else
+ {
+ if (typeStr == "TEXT")
+ {
+ //text lines
+ ulong lines;
+ parseOneNumber (inWords, lines);
+ }
+
+ // md5
+ parseLiteralC(inWords);
+
+ // body disposition
+ parameters = parseDisposition (inWords);
+ {
+ TQString *disposition = parameters["content-disposition"];
+
+ if (disposition)
+ localPart->setDisposition (disposition->ascii ());
+ parameters.remove ("content-disposition");
+ TQAsciiDictIterator < TQString > it (parameters);
+ while (it.current ())
+ {
+ localPart->setDispositionParm (it.currentKey (),
+ *(it.current ()));
+ ++it;
+ }
+
+ parameters.clear ();
+ }
+
+ // body language
+ parseSentence (inWords);
+ }
+
+ // see if we have more to come
+ while (!inWords.isEmpty () && inWords[0] != ')')
+ {
+ //eat the extensions to this part
+ if (inWords[0] == '(')
+ parseSentence (inWords);
+ else
+ parseLiteralC(inWords);
+ }
+ if (inWords[0] == ')')
+ inWords.pos++;
+ skipWS (inWords);
+
+ return localPart;
+}
+
+mimeHeader * imapParser::parseBodyStructure (parseString & inWords,
+ TQString & inSection, mimeHeader * localPart)
+{
+ bool init = false;
+ if (inSection.isEmpty())
+ {
+ // first run
+ init = true;
+ // assume one part
+ inSection = "1";
+ }
+ int section = 0;
+
+ if (inWords[0] != '(')
+ {
+ // skip ""
+ parseOneWordC (inWords);
+ return 0;
+ }
+ inWords.pos++;
+ skipWS (inWords);
+
+ if (inWords[0] == '(')
+ {
+ TQByteArray subtype;
+ TQAsciiDict < TQString > parameters (17, false);
+ TQString outSection;
+ parameters.setAutoDelete (true);
+ if (!localPart)
+ localPart = new mimeHeader;
+ else
+ {
+ // might be filled from an earlier run
+ localPart->clearNestedParts ();
+ localPart->clearTypeParameters ();
+ localPart->clearDispositionParameters ();
+ // an envelope was passed in so this is the multipart header
+ outSection = inSection + ".HEADER";
+ }
+ if (inWords[0] == '(' && init)
+ inSection = "0";
+
+ // set the section
+ if ( !outSection.isEmpty() ) {
+ localPart->setPartSpecifier(outSection);
+ } else {
+ localPart->setPartSpecifier(inSection);
+ }
+
+ // is multipart (otherwise it is a simplepart and handled later)
+ while (inWords[0] == '(')
+ {
+ outSection = TQString::number(++section);
+ if (!init)
+ outSection = inSection + "." + outSection;
+ mimeHeader *subpart = parseBodyStructure (inWords, outSection, 0);
+ localPart->addNestedPart (subpart);
+ }
+
+ // fetch subtype
+ subtype = parseOneWordC (inWords);
+
+ localPart->setType ("MULTIPART/" + b2c(subtype));
+
+ // fetch parameters
+ parameters = parseParameters (inWords);
+ {
+ TQAsciiDictIterator < TQString > it (parameters);
+
+ while (it.current ())
+ {
+ localPart->setTypeParm (it.currentKey (), *(it.current ()));
+ ++it;
+ }
+ parameters.clear ();
+ }
+
+ // body disposition
+ parameters = parseDisposition (inWords);
+ {
+ TQString *disposition = parameters["content-disposition"];
+
+ if (disposition)
+ localPart->setDisposition (disposition->ascii ());
+ parameters.remove ("content-disposition");
+ TQAsciiDictIterator < TQString > it (parameters);
+ while (it.current ())
+ {
+ localPart->setDispositionParm (it.currentKey (),
+ *(it.current ()));
+ ++it;
+ }
+ parameters.clear ();
+ }
+
+ // body language
+ parseSentence (inWords);
+
+ }
+ else
+ {
+ // is simple part
+ inWords.pos--;
+ inWords.data[inWords.pos] = '('; //fake a sentence
+ if ( localPart )
+ inSection = inSection + ".1";
+ localPart = parseSimplePart (inWords, inSection, localPart);
+ inWords.pos--;
+ inWords.data[inWords.pos] = ')'; //remove fake
+ }
+
+ // see if we have more to come
+ while (!inWords.isEmpty () && inWords[0] != ')')
+ {
+ //eat the extensions to this part
+ if (inWords[0] == '(')
+ parseSentence (inWords);
+ else
+ parseLiteralC(inWords);
+ }
+
+ if (inWords[0] == ')')
+ inWords.pos++;
+ skipWS (inWords);
+
+ return localPart;
+}
+
+void imapParser::parseBody (parseString & inWords)
+{
+ // see if we got a part specifier
+ if (inWords[0] == '[')
+ {
+ TQCString specifier;
+ TQCString label;
+ inWords.pos++;
+
+ specifier = parseOneWordC (inWords, TRUE);
+
+ if (inWords[0] == '(')
+ {
+ inWords.pos++;
+
+ while (!inWords.isEmpty () && inWords[0] != ')')
+ {
+ label = parseOneWordC (inWords);
+ }
+
+ if (!inWords.isEmpty () && inWords[0] == ')')
+ inWords.pos++;
+ }
+ if (!inWords.isEmpty () && inWords[0] == ']')
+ inWords.pos++;
+ skipWS (inWords);
+
+ // parse the header
+ if (specifier == "0")
+ {
+ mailHeader *envelope = 0;
+ if (lastHandled)
+ envelope = lastHandled->getHeader ();
+
+ if (!envelope || seenUid.isEmpty ())
+ {
+ kdDebug(7116) << "imapParser::parseBody - discarding " << envelope << " " << seenUid.ascii () << endl;
+ // don't know where to put it, throw it away
+ parseLiteralC(inWords, true);
+ }
+ else
+ {
+ kdDebug(7116) << "imapParser::parseBody - reading " << envelope << " " << seenUid.ascii () << endl;
+ // fill it up with data
+ TQString theHeader = parseLiteralC(inWords, true);
+ mimeIOTQString myIO;
+
+ myIO.setString (theHeader);
+ envelope->parseHeader (myIO);
+
+ }
+ }
+ else if (specifier == "HEADER.FIELDS")
+ {
+ // BODY[HEADER.FIELDS (References)] {n}
+ //kdDebug(7116) << "imapParser::parseBody - HEADER.FIELDS: "
+ // << TQCString(label.data(), label.size()+1) << endl;
+ if (label == "REFERENCES")
+ {
+ mailHeader *envelope = 0;
+ if (lastHandled)
+ envelope = lastHandled->getHeader ();
+
+ if (!envelope || seenUid.isEmpty ())
+ {
+ kdDebug(7116) << "imapParser::parseBody - discarding " << envelope << " " << seenUid.ascii () << endl;
+ // don't know where to put it, throw it away
+ parseLiteralC (inWords, true);
+ }
+ else
+ {
+ TQCString references = parseLiteralC(inWords, true);
+ int start = references.find ('<');
+ int end = references.findRev ('>');
+ if (start < end)
+ references = references.mid (start, end - start + 1);
+ envelope->setReferences(references.simplifyWhiteSpace());
+ }
+ }
+ else
+ { // not a header we care about throw it away
+ parseLiteralC(inWords, true);
+ }
+ }
+ else
+ {
+ if (specifier.find(".MIME") != -1)
+ {
+ mailHeader *envelope = new mailHeader;
+ TQString theHeader = parseLiteralC(inWords, false);
+ mimeIOTQString myIO;
+ myIO.setString (theHeader);
+ envelope->parseHeader (myIO);
+ if (lastHandled)
+ lastHandled->setHeader (envelope);
+ return;
+ }
+ // throw it away
+ kdDebug(7116) << "imapParser::parseBody - discarding " << seenUid.ascii () << endl;
+ parseLiteralC(inWords, true);
+ }
+
+ }
+ else // no part specifier
+ {
+ mailHeader *envelope = 0;
+ if (lastHandled)
+ envelope = lastHandled->getHeader ();
+
+ if (!envelope || seenUid.isEmpty ())
+ {
+ kdDebug(7116) << "imapParser::parseBody - discarding " << envelope << " " << seenUid.ascii () << endl;
+ // don't know where to put it, throw it away
+ parseSentence (inWords);
+ }
+ else
+ {
+ kdDebug(7116) << "imapParser::parseBody - reading " << envelope << " " << seenUid.ascii () << endl;
+ // fill it up with data
+ TQString section;
+ mimeHeader *body = parseBodyStructure (inWords, section, envelope);
+ if (body != envelope)
+ delete body;
+ }
+ }
+}
+
+void imapParser::parseFetch (ulong /* value */, parseString & inWords)
+{
+ if (inWords[0] != '(')
+ return;
+ inWords.pos++;
+ skipWS (inWords);
+
+ delete lastHandled;
+ lastHandled = 0;
+
+ while (!inWords.isEmpty () && inWords[0] != ')')
+ {
+ if (inWords[0] == '(')
+ parseSentence (inWords);
+ else
+ {
+ TQCString word = parseLiteralC(inWords, false, true);
+
+ if(!word.isEmpty()) {
+ switch (word[0])
+ {
+ case 'E':
+ if (word == "ENVELOPE")
+ {
+ mailHeader *envelope = 0;
+
+ if (lastHandled)
+ envelope = lastHandled->getHeader ();
+ else
+ lastHandled = new imapCache();
+
+ if (envelope && !envelope->getMessageId ().isEmpty ())
+ {
+ // we have seen this one already
+ // or don't know where to put it
+ parseSentence (inWords);
+ }
+ else
+ {
+ envelope = parseEnvelope (inWords);
+ if (envelope)
+ {
+ envelope->setPartSpecifier (seenUid + ".0");
+ lastHandled->setHeader (envelope);
+ lastHandled->setUid (seenUid.toULong ());
+ }
+ }
+ }
+ break;
+
+ case 'B':
+ if (word == "BODY")
+ {
+ parseBody (inWords);
+ }
+ else if (word == "BODY[]" )
+ {
+ // Do the same as with "RFC822"
+ parseLiteralC(inWords, true);
+ }
+ else if (word == "BODYSTRUCTURE")
+ {
+ mailHeader *envelope = 0;
+
+ if (lastHandled)
+ envelope = lastHandled->getHeader ();
+
+ // fill it up with data
+ TQString section;
+ mimeHeader *body =
+ parseBodyStructure (inWords, section, envelope);
+ TQByteArray data;
+ TQDataStream stream( data, IO_WriteOnly );
+ if (body) body->serialize(stream);
+ parseRelay(data);
+
+ delete body;
+ }
+ break;
+
+ case 'U':
+ if (word == "UID")
+ {
+ seenUid = parseOneWordC(inWords);
+ mailHeader *envelope = 0;
+ if (lastHandled)
+ envelope = lastHandled->getHeader ();
+ else
+ lastHandled = new imapCache();
+
+ if (seenUid.isEmpty ())
+ {
+ // unknown what to do
+ kdDebug(7116) << "imapParser::parseFetch - UID empty" << endl;
+ }
+ else
+ {
+ lastHandled->setUid (seenUid.toULong ());
+ }
+ if (envelope)
+ envelope->setPartSpecifier (seenUid);
+ }
+ break;
+
+ case 'R':
+ if (word == "RFC822.SIZE")
+ {
+ ulong size;
+ parseOneNumber (inWords, size);
+
+ if (!lastHandled) lastHandled = new imapCache();
+ lastHandled->setSize (size);
+ }
+ else if (word.find ("RFC822") == 0)
+ {
+ // might be RFC822 RFC822.TEXT RFC822.HEADER
+ parseLiteralC(inWords, true);
+ }
+ break;
+
+ case 'I':
+ if (word == "INTERNALDATE")
+ {
+ TQCString date = parseOneWordC(inWords);
+ if (!lastHandled) lastHandled = new imapCache();
+ lastHandled->setDate(date);
+ }
+ break;
+
+ case 'F':
+ if (word == "FLAGS")
+ {
+ //kdDebug(7116) << "GOT FLAGS " << inWords.cstr() << endl;
+ if (!lastHandled) lastHandled = new imapCache();
+ lastHandled->setFlags (imapInfo::_flags (inWords.cstr()));
+ }
+ break;
+
+ default:
+ parseLiteralC(inWords);
+ break;
+ }
+ } else {
+ parseLiteralC(inWords);
+ }
+ }
+ }
+
+ // see if we have more to come
+ while (!inWords.isEmpty () && inWords[0] != ')')
+ {
+ //eat the extensions to this part
+ if (inWords[0] == '(')
+ parseSentence (inWords);
+ else
+ parseLiteralC(inWords);
+ }
+
+ if (inWords.isEmpty() || inWords[0] != ')')
+ return;
+ inWords.pos++;
+ skipWS (inWords);
+}
+
+
+// default parser
+void imapParser::parseSentence (parseString & inWords)
+{
+ bool first = true;
+ int stack = 0;
+
+ //find the first nesting parentheses
+
+ while (!inWords.isEmpty () && (stack != 0 || first))
+ {
+ first = false;
+ skipWS (inWords);
+
+ unsigned char ch = inWords[0];
+ switch (ch)
+ {
+ case '(':
+ inWords.pos++;
+ ++stack;
+ break;
+ case ')':
+ inWords.pos++;
+ --stack;
+ break;
+ case '[':
+ inWords.pos++;
+ ++stack;
+ break;
+ case ']':
+ inWords.pos++;
+ --stack;
+ break;
+ default:
+ parseLiteralC(inWords);
+ skipWS (inWords);
+ break;
+ }
+ }
+ skipWS (inWords);
+}
+
+void imapParser::parseRecent (ulong value, parseString & result)
+{
+ selectInfo.setRecent (value);
+ result.pos = result.data.size();
+}
+
+void imapParser::parseNamespace (parseString & result)
+{
+ if ( result[0] != '(' )
+ return;
+
+ TQString delimEmpty;
+ if ( namespaceToDelimiter.contains( TQString() ) )
+ delimEmpty = namespaceToDelimiter[TQString()];
+
+ namespaceToDelimiter.clear();
+ imapNamespaces.clear();
+
+ // remember what section we're in (user, other users, shared)
+ int ns = -1;
+ bool personalAvailable = false;
+ while ( !result.isEmpty() )
+ {
+ if ( result[0] == '(' )
+ {
+ result.pos++; // tie off (
+ if ( result[0] == '(' )
+ {
+ // new namespace section
+ result.pos++; // tie off (
+ ++ns;
+ }
+ // namespace prefix
+ TQCString prefix = parseOneWordC( result );
+ // delimiter
+ TQCString delim = parseOneWordC( result );
+ kdDebug(7116) << "imapParser::parseNamespace ns='" << prefix <<
+ "',delim='" << delim << "'" << endl;
+ if ( ns == 0 )
+ {
+ // at least one personal ns
+ personalAvailable = true;
+ }
+ TQString nsentry = TQString::number( ns ) + "=" + TQString(prefix) +
+ "=" + TQString(delim);
+ imapNamespaces.append( nsentry );
+ if ( prefix.right( 1 ) == delim ) {
+ // strip delimiter to get a correct entry for comparisons
+ prefix.resize( prefix.length() );
+ }
+ namespaceToDelimiter[prefix] = delim;
+
+ result.pos++; // tie off )
+ skipWS( result );
+ } else if ( result[0] == ')' )
+ {
+ result.pos++; // tie off )
+ skipWS( result );
+ } else if ( result[0] == 'N' )
+ {
+ // drop NIL
+ ++ns;
+ parseOneWordC( result );
+ } else {
+ // drop whatever it is
+ parseOneWordC( result );
+ }
+ }
+ if ( !delimEmpty.isEmpty() ) {
+ // remember default delimiter
+ namespaceToDelimiter[TQString()] = delimEmpty;
+ if ( !personalAvailable )
+ {
+ // at least one personal ns would be nice
+ kdDebug(7116) << "imapParser::parseNamespace - registering own personal ns" << endl;
+ TQString nsentry = "0==" + delimEmpty;
+ imapNamespaces.append( nsentry );
+ }
+ }
+}
+
+int imapParser::parseLoop ()
+{
+ parseString result;
+
+ if (!parseReadLine(result.data)) return -1;
+
+ //kdDebug(7116) << result.cstr(); // includes \n
+
+ if (result.data.isEmpty())
+ return 0;
+ if (!sentQueue.count ())
+ {
+ // maybe greeting or BYE everything else SHOULD not happen, use NOOP or IDLE
+ kdDebug(7116) << "imapParser::parseLoop - unhandledResponse: \n" << result.cstr() << endl;
+ unhandled << result.cstr();
+ }
+ else
+ {
+ imapCommand *current = sentQueue.at (0);
+ switch (result[0])
+ {
+ case '*':
+ result.data.resize(result.data.size() - 2); // tie off CRLF
+ parseUntagged (result);
+ break;
+ case '+':
+ continuation.duplicate(result.data);
+ break;
+ default:
+ {
+ TQCString tag = parseLiteralC(result);
+ if (current->id() == tag.data())
+ {
+ result.data.resize(result.data.size() - 2); // tie off CRLF
+ TQByteArray resultCode = parseLiteral (result); //the result
+ current->setResult (resultCode);
+ current->setResultInfo(result.cstr());
+ current->setComplete ();
+
+ sentQueue.removeRef (current);
+ completeQueue.append (current);
+ if (result.length())
+ parseResult (resultCode, result, current->command());
+ }
+ else
+ {
+ kdDebug(7116) << "imapParser::parseLoop - unknown tag '" << tag << "'" << endl;
+ TQCString cstr = tag + " " + result.cstr();
+ result.data = cstr;
+ result.pos = 0;
+ result.data.resize(cstr.length());
+ }
+ }
+ break;
+ }
+ }
+
+ return 1;
+}
+
+void
+imapParser::parseRelay (const TQByteArray & buffer)
+{
+ Q_UNUSED(buffer);
+ tqWarning
+ ("imapParser::parseRelay - virtual function not reimplemented - data lost");
+}
+
+void
+imapParser::parseRelay (ulong len)
+{
+ Q_UNUSED(len);
+ tqWarning
+ ("imapParser::parseRelay - virtual function not reimplemented - announcement lost");
+}
+
+bool imapParser::parseRead (TQByteArray & buffer, ulong len, ulong relay)
+{
+ Q_UNUSED(buffer);
+ Q_UNUSED(len);
+ Q_UNUSED(relay);
+ tqWarning
+ ("imapParser::parseRead - virtual function not reimplemented - no data read");
+ return FALSE;
+}
+
+bool imapParser::parseReadLine (TQByteArray & buffer, ulong relay)
+{
+ Q_UNUSED(buffer);
+ Q_UNUSED(relay);
+ tqWarning
+ ("imapParser::parseReadLine - virtual function not reimplemented - no data read");
+ return FALSE;
+}
+
+void
+imapParser::parseWriteLine (const TQString & str)
+{
+ Q_UNUSED(str);
+ tqWarning
+ ("imapParser::parseWriteLine - virtual function not reimplemented - no data written");
+}
+
+void
+imapParser::parseURL (const KURL & _url, TQString & _box, TQString & _section,
+ TQString & _type, TQString & _uid, TQString & _validity, TQString & _info)
+{
+ TQStringList parameters;
+
+ _box = _url.path ();
+ kdDebug(7116) << "imapParser::parseURL " << _box << endl;
+ int paramStart = _box.find("/;");
+ if ( paramStart > -1 )
+ {
+ TQString paramString = _box.right( _box.length() - paramStart-2 );
+ parameters = TQStringList::split (';', paramString); //split parameters
+ _box.truncate( paramStart ); // strip parameters
+ }
+ // extract parameters
+ for (TQStringList::ConstIterator it (parameters.begin ());
+ it != parameters.end (); ++it)
+ {
+ TQString temp = (*it);
+
+ int pt = temp.find ('/');
+ if (pt > 0)
+ {
+ if (temp.findRev ('"', pt) == -1 || temp.find('"', pt) == -1)
+ {
+ // if we have non-quoted '/' separator we'll just nuke it
+ temp.truncate(pt);
+ }
+ }
+ if (temp.find ("section=", 0, false) == 0)
+ _section = temp.right (temp.length () - 8);
+ else if (temp.find ("type=", 0, false) == 0)
+ _type = temp.right (temp.length () - 5);
+ else if (temp.find ("uid=", 0, false) == 0)
+ _uid = temp.right (temp.length () - 4);
+ else if (temp.find ("uidvalidity=", 0, false) == 0)
+ _validity = temp.right (temp.length () - 12);
+ else if (temp.find ("info=", 0, false) == 0)
+ _info = temp.right (temp.length () - 5);
+ }
+// kdDebug(7116) << "URL: section= " << _section << ", type= " << _type << ", uid= " << _uid << endl;
+// kdDebug(7116) << "URL: user() " << _url.user() << endl;
+// kdDebug(7116) << "URL: path() " << _url.path() << endl;
+// kdDebug(7116) << "URL: encodedPathAndQuery() " << _url.encodedPathAndQuery() << endl;
+
+ if (!_box.isEmpty ())
+ {
+ // strip /
+ if (_box[0] == '/')
+ _box = _box.right (_box.length () - 1);
+ if (!_box.isEmpty () && _box[_box.length () - 1] == '/')
+ _box.truncate(_box.length() - 1);
+ }
+ kdDebug(7116) << "URL: box= " << _box << ", section= " << _section << ", type= "
+ << _type << ", uid= " << _uid << ", validity= " << _validity << ", info= " << _info << endl;
+}
+
+
+TQCString imapParser::parseLiteralC(parseString & inWords, bool relay, bool stopAtBracket, int *outlen) {
+
+ if (!inWords.isEmpty() && inWords[0] == '{')
+ {
+ TQCString retVal;
+ long srunLen = inWords.find ('}', 1); // Can return -1, so use a signed long
+ if (srunLen > 0)
+ {
+ ulong runLen = (ulong)srunLen;
+ bool proper;
+ ulong runLenSave = runLen + 1;
+ TQCString tmpstr(runLen);
+ inWords.takeMidNoResize(tmpstr, 1, runLen - 1);
+ runLen = tmpstr.toULong (&proper);
+ inWords.pos += runLenSave;
+ if (proper)
+ {
+ //now get the literal from the server
+ if (relay)
+ parseRelay (runLen);
+ TQByteArray rv;
+ parseRead (rv, runLen, relay ? runLen : 0);
+ rv.resize(TQMAX(runLen, rv.size())); // what's the point?
+ retVal = b2c(rv);
+ inWords.clear();
+ parseReadLine (inWords.data); // must get more
+
+ // no duplicate data transfers
+ relay = false;
+ }
+ else
+ {
+ kdDebug(7116) << "imapParser::parseLiteral - error parsing {} - " /*<< strLen*/ << endl;
+ }
+ }
+ else
+ {
+ inWords.clear();
+ kdDebug(7116) << "imapParser::parseLiteral - error parsing unmatched {" << endl;
+ }
+ if (outlen) {
+ *outlen = retVal.length(); // optimize me
+ }
+ skipWS (inWords);
+ return retVal;
+ }
+
+ return parseOneWordC(inWords, stopAtBracket, outlen);
+}
+
+// does not know about literals ( {7} literal )
+TQCString imapParser::parseOneWordC (parseString & inWords, bool stopAtBracket, int *outLen)
+{
+ uint retValSize = 0;
+ uint len = inWords.length();
+ if (len == 0) {
+ return TQCString();
+ }
+
+ if (len > 0 && inWords[0] == '"')
+ {
+ unsigned int i = 1;
+ bool quote = FALSE;
+ while (i < len && (inWords[i] != '"' || quote))
+ {
+ if (inWords[i] == '\\') quote = !quote;
+ else quote = FALSE;
+ i++;
+ }
+ if (i < len)
+ {
+ TQCString retVal(i);
+ inWords.pos++;
+ inWords.takeLeftNoResize(retVal, i - 1);
+ len = i - 1;
+ int offset = 0;
+ for (unsigned int j = 0; j <= len; j++) {
+ if (retVal[j] == '\\') {
+ offset++;
+ j++;
+ }
+ retVal[j - offset] = retVal[j];
+ }
+ retVal[len - offset] = 0;
+ retValSize = len - offset;
+ inWords.pos += i;
+ skipWS (inWords);
+ if (outLen) {
+ *outLen = retValSize;
+ }
+ return retVal;
+ }
+ else
+ {
+ kdDebug(7116) << "imapParser::parseOneWord - error parsing unmatched \"" << endl;
+ TQCString retVal = inWords.cstr();
+ retValSize = len;
+ inWords.clear();
+ if (outLen) {
+ *outLen = retValSize;
+ }
+ return retVal;
+ }
+ }
+ else
+ {
+ // not quoted
+ unsigned int i;
+ // search for end
+ for (i = 0; i < len; ++i) {
+ char ch = inWords[i];
+ if (ch <= ' ' || ch == '(' || ch == ')' ||
+ (stopAtBracket && (ch == '[' || ch == ']')))
+ break;
+ }
+
+ TQCString retVal(i+1);
+ inWords.takeLeftNoResize(retVal, i);
+ retValSize = i;
+ inWords.pos += i;
+
+ if (retVal == "NIL") {
+ retVal.truncate(0);
+ retValSize = 0;
+ }
+ skipWS (inWords);
+ if (outLen) {
+ *outLen = retValSize;
+ }
+ return retVal;
+ }
+}
+
+bool imapParser::parseOneNumber (parseString & inWords, ulong & num)
+{
+ bool valid;
+ num = parseOneWordC(inWords, TRUE).toULong(&valid);
+ return valid;
+}
+
+bool imapParser::hasCapability (const TQString & cap)
+{
+ TQString c = cap.lower();
+// kdDebug(7116) << "imapParser::hasCapability - Looking for '" << cap << "'" << endl;
+ for (TQStringList::ConstIterator it = imapCapabilities.begin ();
+ it != imapCapabilities.end (); ++it)
+ {
+// kdDebug(7116) << "imapParser::hasCapability - Examining '" << (*it) << "'" << endl;
+ if ( !(kasciistricmp(c.ascii(), (*it).ascii())) )
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+void imapParser::removeCapability (const TQString & cap)
+{
+ imapCapabilities.remove(cap.lower());
+}
+
+TQString imapParser::namespaceForBox( const TQString & box )
+{
+ kdDebug(7116) << "imapParse::namespaceForBox " << box << endl;
+ TQString myNamespace;
+ if ( !box.isEmpty() )
+ {
+ TQValueList<TQString> list = namespaceToDelimiter.keys();
+ TQString cleanPrefix;
+ for ( TQValueList<TQString>::Iterator it = list.begin(); it != list.end(); ++it )
+ {
+ if ( !(*it).isEmpty() && box.find( *it ) != -1 )
+ return (*it);
+ }
+ }
+ return myNamespace;
+}
+
diff --git a/tdeioslave/imap4/mailaddress.cc b/tdeioslave/imap4/mailaddress.cc
deleted file mode 100644
index 38a1a330..00000000
--- a/tdeioslave/imap4/mailaddress.cc
+++ /dev/null
@@ -1,324 +0,0 @@
-/**********************************************************************
- *
- * mailaddress.cc - mail address parser
- * Copyright (C) 2000 Sven Carstens <s.carstens@gmx.de>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Send comments and bug fixes to
- *
- *********************************************************************/
-
-
-#include "mailaddress.h"
-#include "rfcdecoder.h"
-#include "mimehdrline.h"
-#include <kmime_util.h>
-
-mailAddress::mailAddress ()
-{
-}
-
-mailAddress::mailAddress (const mailAddress & lr):
-user (lr.user),
-host (lr.host),
-rawFullName (lr.rawFullName),
-rawComment (lr.rawComment)
-{
-// kdDebug(7116) << "mailAddress::mailAddress - " << getStr() << endl;
-}
-
-mailAddress & mailAddress::operator = (const mailAddress & lr)
-{
- // Avoid a = a.
- if (this == &lr)
- return *this;
-
- user = lr.user;
- host = lr.host;
- rawFullName = lr.rawFullName;
- rawComment = lr.rawComment;
-
-// kdDebug(7116) << "mailAddress::operator= - " << getStr() << endl;
-
- return *this;
-}
-
-
-
-
-mailAddress::~mailAddress ()
-{
-}
-
-mailAddress::mailAddress (char *aCStr)
-{
- parseAddress (aCStr);
-}
-
-int
-mailAddress::parseAddress (char *aCStr)
-{
- int retVal = 0;
- int skip;
- uint len;
- int pt;
-
- if (aCStr)
- {
- //skip leading white space
- skip = mimeHdrLine::skipWS ((const char *) aCStr);
- if (skip > 0)
- {
- aCStr += skip;
- retVal += skip;
- }
- while (*aCStr)
- {
- int advance;
-
- switch (*aCStr)
- {
- case '"':
- advance = mimeHdrLine::parseQuoted ('"', '"', aCStr);
- rawFullName += TQCString (aCStr, advance + 1);
- break;
- case '(':
- advance = mimeHdrLine::parseQuoted ('(', ')', aCStr);
- rawComment += TQCString (aCStr, advance + 1);
- break;
- case '<':
- advance = mimeHdrLine::parseQuoted ('<', '>', aCStr);
- user = TQCString (aCStr, advance + 1); // copy it
- len = advance;
- user = user.mid (1, len - 2); // strip <>
- len -= 2;
- pt = user.find('@');
- host = user.right (len - pt - 1); // split it into host
- user.truncate(pt); // and user
- break;
- default:
- advance = mimeHdrLine::parseWord ((const char *) aCStr);
- //if we've seen a FQ mailname the rest must be quoted or is just junk
- if (user.isEmpty ())
- {
- if (*aCStr != ',')
- {
- rawFullName += TQCString (aCStr, advance + 1);
- if (mimeHdrLine::skipWS ((const char *) &aCStr[advance]) > 0)
- {
- rawFullName += ' ';
- }
- }
- }
- break;
- }
- if (advance)
- {
- retVal += advance;
- aCStr += advance;
- }
- else
- break;
- advance = mimeHdrLine::skipWS ((const char *) aCStr);
- if (advance > 0)
- {
- retVal += advance;
- aCStr += advance;
- }
- //reached end of current address
- if (*aCStr == ',')
- {
- advance++;
- break;
- }
- }
- //let's see what we've got
- if (rawFullName.isEmpty ())
- {
- if (user.isEmpty ())
- retVal = 0;
- else
- {
- if (host.isEmpty ())
- {
- rawFullName = user;
- user.truncate(0);
- }
- }
- }
- else if (user.isEmpty ())
- {
- pt = rawFullName.find ('@');
- if (pt >= 0)
- {
- user = rawFullName;
- host = user.right (user.length () - pt - 1);
- user.truncate(pt);
- rawFullName.truncate(0);
- }
- }
-
-#if 0
-// dead
- if (!rawFullName.isEmpty ())
- {
-// if(fullName[0] == '"')
-// fullName = fullName.mid(1,fullName.length()-2);
-// fullName = fullName.simplifyWhiteSpace().stripWhiteSpace();
-// fullName = rfcDecoder::decodeRFC2047String(fullName.ascii());
- }
-#endif
- if (!rawComment.isEmpty ())
- {
- if (rawComment[0] == '(')
- rawComment = rawComment.mid (1, rawComment.length () - 2);
- rawComment = rawComment.stripWhiteSpace ();
-// comment = rfcDecoder::decodeRFC2047String(comment.ascii());
- }
- }
- else
- {
- //debug();
- }
- return retVal;
-}
-
-const TQCString
-mailAddress::getStr () const
-{
- TQCString retVal(128); // Should be generally big enough
-
- if (!rawFullName.isEmpty ())
- {
- TQCString tmpName( rawFullName );
- KMime::addQuotes( tmpName, false );
- retVal = tmpName + " ";
- }
- if (!user.isEmpty ())
- {
- retVal += '<';
- retVal += user;
- if (!host.isEmpty ()) {
- retVal += '@';
- retVal += host;
- }
- retVal += '>';
- }
- if (!rawComment.isEmpty ())
- {
- retVal += " (" + rawComment + ')';
- }
-// kdDebug(7116) << "mailAddress::getStr - '" << retVal << "'" << endl;
- return retVal;
-}
-
-bool
-mailAddress::isEmpty () const
-{
- return user.isEmpty ();
-}
-
-void
-mailAddress::setFullName (const TQString & _str)
-{
- rawFullName = rfcDecoder::encodeRFC2047String (_str).latin1 ();
-}
-const TQString
-mailAddress::getFullName () const
-{
- return rfcDecoder::decodeRFC2047String (rawFullName);
-}
-
-void
-mailAddress::setCommentRaw (const TQCString & _str)
-{
- rawComment = _str;
-}
-
-void
-mailAddress::setComment (const TQString & _str)
-{
- rawComment = rfcDecoder::encodeRFC2047String (_str).latin1 ();
-}
-const TQString
-mailAddress::getComment () const
-{
- return rfcDecoder::decodeRFC2047String (rawComment);
-}
-
-const TQCString &
-mailAddress::getCommentRaw () const
-{
- return rawComment;
-}
-
-TQString
-mailAddress::emailAddrAsAnchor (const mailAddress & adr, bool shortAdr)
-{
- TQString retVal;
- if (!adr.getFullName ().isEmpty ())
- {
- // should do some umlaut escaping
- retVal += adr.getFullName () + " ";
- }
- if (!adr.getUser ().isEmpty () && !shortAdr)
- {
- retVal += "&lt;" + adr.getUser ();
- if (!adr.getHost ().isEmpty ())
- retVal += "@" + adr.getHost ();
- retVal += "&gt; ";
- }
- if (!adr.getComment ().isEmpty ())
- {
- // should do some umlaut escaping
- retVal = '(' + adr.getComment () + ')';
- }
-
- if (!adr.getUser ().isEmpty ())
- {
- TQString mail;
- mail = adr.getUser ();
- if (!mail.isEmpty () && !adr.getHost ().isEmpty ())
- mail += "@" + adr.getHost ();
- if (!mail.isEmpty ())
- retVal = "<A HREF=\"mailto:" + mail + "\">" + retVal + "</A>";
- }
- return retVal;
-}
-
-TQString
-mailAddress::emailAddrAsAnchor (const TQPtrList < mailAddress > &list, bool value)
-{
- TQString retVal;
- TQPtrListIterator < mailAddress > it (list);
-
- while (it.current ())
- {
- retVal += emailAddrAsAnchor ((*it.current ()), value) + "<BR></BR>\n";
- ++it;
- }
-
- return retVal;
-}
-
-
-void mailAddress::clear() {
- user.truncate(0);
- host.truncate(0);
- rawFullName.truncate(0);
- rawComment.truncate(0);
-}
-
diff --git a/tdeioslave/imap4/mailaddress.cpp b/tdeioslave/imap4/mailaddress.cpp
new file mode 100644
index 00000000..8bb5831e
--- /dev/null
+++ b/tdeioslave/imap4/mailaddress.cpp
@@ -0,0 +1,324 @@
+/**********************************************************************
+ *
+ * mailaddress.cpp - mail address parser
+ * Copyright (C) 2000 Sven Carstens <s.carstens@gmx.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Send comments and bug fixes to
+ *
+ *********************************************************************/
+
+
+#include "mailaddress.h"
+#include "rfcdecoder.h"
+#include "mimehdrline.h"
+#include <kmime_util.h>
+
+mailAddress::mailAddress ()
+{
+}
+
+mailAddress::mailAddress (const mailAddress & lr):
+user (lr.user),
+host (lr.host),
+rawFullName (lr.rawFullName),
+rawComment (lr.rawComment)
+{
+// kdDebug(7116) << "mailAddress::mailAddress - " << getStr() << endl;
+}
+
+mailAddress & mailAddress::operator = (const mailAddress & lr)
+{
+ // Avoid a = a.
+ if (this == &lr)
+ return *this;
+
+ user = lr.user;
+ host = lr.host;
+ rawFullName = lr.rawFullName;
+ rawComment = lr.rawComment;
+
+// kdDebug(7116) << "mailAddress::operator= - " << getStr() << endl;
+
+ return *this;
+}
+
+
+
+
+mailAddress::~mailAddress ()
+{
+}
+
+mailAddress::mailAddress (char *aCStr)
+{
+ parseAddress (aCStr);
+}
+
+int
+mailAddress::parseAddress (char *aCStr)
+{
+ int retVal = 0;
+ int skip;
+ uint len;
+ int pt;
+
+ if (aCStr)
+ {
+ //skip leading white space
+ skip = mimeHdrLine::skipWS ((const char *) aCStr);
+ if (skip > 0)
+ {
+ aCStr += skip;
+ retVal += skip;
+ }
+ while (*aCStr)
+ {
+ int advance;
+
+ switch (*aCStr)
+ {
+ case '"':
+ advance = mimeHdrLine::parseQuoted ('"', '"', aCStr);
+ rawFullName += TQCString (aCStr, advance + 1);
+ break;
+ case '(':
+ advance = mimeHdrLine::parseQuoted ('(', ')', aCStr);
+ rawComment += TQCString (aCStr, advance + 1);
+ break;
+ case '<':
+ advance = mimeHdrLine::parseQuoted ('<', '>', aCStr);
+ user = TQCString (aCStr, advance + 1); // copy it
+ len = advance;
+ user = user.mid (1, len - 2); // strip <>
+ len -= 2;
+ pt = user.find('@');
+ host = user.right (len - pt - 1); // split it into host
+ user.truncate(pt); // and user
+ break;
+ default:
+ advance = mimeHdrLine::parseWord ((const char *) aCStr);
+ //if we've seen a FQ mailname the rest must be quoted or is just junk
+ if (user.isEmpty ())
+ {
+ if (*aCStr != ',')
+ {
+ rawFullName += TQCString (aCStr, advance + 1);
+ if (mimeHdrLine::skipWS ((const char *) &aCStr[advance]) > 0)
+ {
+ rawFullName += ' ';
+ }
+ }
+ }
+ break;
+ }
+ if (advance)
+ {
+ retVal += advance;
+ aCStr += advance;
+ }
+ else
+ break;
+ advance = mimeHdrLine::skipWS ((const char *) aCStr);
+ if (advance > 0)
+ {
+ retVal += advance;
+ aCStr += advance;
+ }
+ //reached end of current address
+ if (*aCStr == ',')
+ {
+ advance++;
+ break;
+ }
+ }
+ //let's see what we've got
+ if (rawFullName.isEmpty ())
+ {
+ if (user.isEmpty ())
+ retVal = 0;
+ else
+ {
+ if (host.isEmpty ())
+ {
+ rawFullName = user;
+ user.truncate(0);
+ }
+ }
+ }
+ else if (user.isEmpty ())
+ {
+ pt = rawFullName.find ('@');
+ if (pt >= 0)
+ {
+ user = rawFullName;
+ host = user.right (user.length () - pt - 1);
+ user.truncate(pt);
+ rawFullName.truncate(0);
+ }
+ }
+
+#if 0
+// dead
+ if (!rawFullName.isEmpty ())
+ {
+// if(fullName[0] == '"')
+// fullName = fullName.mid(1,fullName.length()-2);
+// fullName = fullName.simplifyWhiteSpace().stripWhiteSpace();
+// fullName = rfcDecoder::decodeRFC2047String(fullName.ascii());
+ }
+#endif
+ if (!rawComment.isEmpty ())
+ {
+ if (rawComment[0] == '(')
+ rawComment = rawComment.mid (1, rawComment.length () - 2);
+ rawComment = rawComment.stripWhiteSpace ();
+// comment = rfcDecoder::decodeRFC2047String(comment.ascii());
+ }
+ }
+ else
+ {
+ //debug();
+ }
+ return retVal;
+}
+
+const TQCString
+mailAddress::getStr () const
+{
+ TQCString retVal(128); // Should be generally big enough
+
+ if (!rawFullName.isEmpty ())
+ {
+ TQCString tmpName( rawFullName );
+ KMime::addQuotes( tmpName, false );
+ retVal = tmpName + " ";
+ }
+ if (!user.isEmpty ())
+ {
+ retVal += '<';
+ retVal += user;
+ if (!host.isEmpty ()) {
+ retVal += '@';
+ retVal += host;
+ }
+ retVal += '>';
+ }
+ if (!rawComment.isEmpty ())
+ {
+ retVal += " (" + rawComment + ')';
+ }
+// kdDebug(7116) << "mailAddress::getStr - '" << retVal << "'" << endl;
+ return retVal;
+}
+
+bool
+mailAddress::isEmpty () const
+{
+ return user.isEmpty ();
+}
+
+void
+mailAddress::setFullName (const TQString & _str)
+{
+ rawFullName = rfcDecoder::encodeRFC2047String (_str).latin1 ();
+}
+const TQString
+mailAddress::getFullName () const
+{
+ return rfcDecoder::decodeRFC2047String (rawFullName);
+}
+
+void
+mailAddress::setCommentRaw (const TQCString & _str)
+{
+ rawComment = _str;
+}
+
+void
+mailAddress::setComment (const TQString & _str)
+{
+ rawComment = rfcDecoder::encodeRFC2047String (_str).latin1 ();
+}
+const TQString
+mailAddress::getComment () const
+{
+ return rfcDecoder::decodeRFC2047String (rawComment);
+}
+
+const TQCString &
+mailAddress::getCommentRaw () const
+{
+ return rawComment;
+}
+
+TQString
+mailAddress::emailAddrAsAnchor (const mailAddress & adr, bool shortAdr)
+{
+ TQString retVal;
+ if (!adr.getFullName ().isEmpty ())
+ {
+ // should do some umlaut escaping
+ retVal += adr.getFullName () + " ";
+ }
+ if (!adr.getUser ().isEmpty () && !shortAdr)
+ {
+ retVal += "&lt;" + adr.getUser ();
+ if (!adr.getHost ().isEmpty ())
+ retVal += "@" + adr.getHost ();
+ retVal += "&gt; ";
+ }
+ if (!adr.getComment ().isEmpty ())
+ {
+ // should do some umlaut escaping
+ retVal = '(' + adr.getComment () + ')';
+ }
+
+ if (!adr.getUser ().isEmpty ())
+ {
+ TQString mail;
+ mail = adr.getUser ();
+ if (!mail.isEmpty () && !adr.getHost ().isEmpty ())
+ mail += "@" + adr.getHost ();
+ if (!mail.isEmpty ())
+ retVal = "<A HREF=\"mailto:" + mail + "\">" + retVal + "</A>";
+ }
+ return retVal;
+}
+
+TQString
+mailAddress::emailAddrAsAnchor (const TQPtrList < mailAddress > &list, bool value)
+{
+ TQString retVal;
+ TQPtrListIterator < mailAddress > it (list);
+
+ while (it.current ())
+ {
+ retVal += emailAddrAsAnchor ((*it.current ()), value) + "<BR></BR>\n";
+ ++it;
+ }
+
+ return retVal;
+}
+
+
+void mailAddress::clear() {
+ user.truncate(0);
+ host.truncate(0);
+ rawFullName.truncate(0);
+ rawComment.truncate(0);
+}
+
diff --git a/tdeioslave/imap4/mailheader.cc b/tdeioslave/imap4/mailheader.cc
deleted file mode 100644
index c520b909..00000000
--- a/tdeioslave/imap4/mailheader.cc
+++ /dev/null
@@ -1,203 +0,0 @@
-/***************************************************************************
- mailheader.cc - description
- -------------------
- begin : Tue Oct 24 2000
- copyright : (C) 2000 by Sven Carstens
- email : s.carstens@gmx.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include "mailheader.h"
-#include "rfcdecoder.h"
-
-mailHeader::mailHeader ()
-{
- toAdr.setAutoDelete (true);
- ccAdr.setAutoDelete (true);
- bccAdr.setAutoDelete (true);
- setType ("text/plain");
- gmt_offset = 0;
-}
-
-mailHeader::~mailHeader ()
-{
-}
-
-void
-mailHeader::addHdrLine (mimeHdrLine * inLine)
-{
- mimeHdrLine *addLine = new mimeHdrLine (inLine);
-
- const TQCString label(addLine->getLabel());
- TQCString value(addLine->getValue());
-
- if (!tqstricmp (label, "Return-Path")) {
- returnpathAdr.parseAddress (value.data ());
- goto out;
- }
- if (!tqstricmp (label, "Sender")) {
- senderAdr.parseAddress (value.data ());
- goto out;
- }
- if (!tqstricmp (label, "From")) {
- fromAdr.parseAddress (value.data ());
- goto out;
- }
- if (!tqstricmp (label, "Reply-To")) {
- replytoAdr.parseAddress (value.data ());
- goto out;
- }
- if (!tqstricmp (label, "To")) {
- mailHeader::parseAddressList (value, &toAdr);
- goto out;
- }
- if (!tqstricmp (label, "CC")) {
- mailHeader::parseAddressList (value, &ccAdr);
- goto out;
- }
- if (!tqstricmp (label, "BCC")) {
- mailHeader::parseAddressList (value, &bccAdr);
- goto out;
- }
- if (!tqstricmp (label, "Subject")) {
- _subject = value.simplifyWhiteSpace();
- goto out;
- }
- if (!tqstricmp (label.data (), "Date")) {
- mDate = value;
- goto out;
- }
- if (!tqstricmp (label.data (), "Message-ID")) {
- int start = value.findRev ('<');
- int end = value.findRev ('>');
- if (start < end)
- messageID = value.mid (start, end - start + 1);
- else {
- tqWarning("bad Message-ID");
- /* messageID = value; */
- }
- goto out;
- }
- if (!tqstricmp (label.data (), "In-Reply-To")) {
- int start = value.findRev ('<');
- int end = value.findRev ('>');
- if (start < end)
- inReplyTo = value.mid (start, end - start + 1);
- goto out;
- }
-
- // everything else is handled by mimeHeader
- mimeHeader::addHdrLine (inLine);
- delete addLine;
- return;
-
- out:
-// cout << label.data() << ": '" << value.data() << "'" << endl;
-
- //need only to add this line if not handled by mimeHeader
- originalHdrLines.append (addLine);
-}
-
-void
-mailHeader::outputHeader (mimeIO & useIO)
-{
- static const TQCString __returnPath("Return-Path: ", 14);
- static const TQCString __from ("From: ", 7);
- static const TQCString __sender ("Sender: ", 9);
- static const TQCString __replyTo ("Reply-To: ", 11);
- static const TQCString __to ("To: ", 5);
- static const TQCString __cc ("CC: ", 5);
- static const TQCString __bcc ("BCC: ", 6);
- static const TQCString __subject ("Subject: ", 10);
- static const TQCString __messageId ("Message-ID: ", 13);
- static const TQCString __inReplyTo ("In-Reply-To: ", 14);
- static const TQCString __references("References: ", 13);
- static const TQCString __date ("Date: ", 7);
-
- if (!returnpathAdr.isEmpty())
- useIO.outputMimeLine(__returnPath + returnpathAdr.getStr());
- if (!fromAdr.isEmpty())
- useIO.outputMimeLine(__from + fromAdr.getStr());
- if (!senderAdr.isEmpty())
- useIO.outputMimeLine(__sender + senderAdr.getStr());
- if (!replytoAdr.isEmpty())
- useIO.outputMimeLine(__replyTo + replytoAdr.getStr());
-
- if (toAdr.count())
- useIO.outputMimeLine(mimeHdrLine::truncateLine(__to +
- mailHeader::getAddressStr(&toAdr)));
- if (ccAdr.count())
- useIO.outputMimeLine(mimeHdrLine::truncateLine(__cc +
- mailHeader::getAddressStr(&ccAdr)));
- if (bccAdr.count())
- useIO.outputMimeLine(mimeHdrLine::truncateLine(__bcc +
- mailHeader::getAddressStr(&bccAdr)));
- if (!_subject.isEmpty())
- useIO.outputMimeLine(mimeHdrLine::truncateLine(__subject + _subject));
- if (!messageID.isEmpty())
- useIO.outputMimeLine(mimeHdrLine::truncateLine(__messageId + messageID));
- if (!inReplyTo.isEmpty())
- useIO.outputMimeLine(mimeHdrLine::truncateLine(__inReplyTo + inReplyTo));
- if (!references.isEmpty())
- useIO.outputMimeLine(mimeHdrLine::truncateLine(__references + references));
-
- if (!mDate.isEmpty())
- useIO.outputMimeLine(__date + mDate);
- mimeHeader::outputHeader(useIO);
-}
-
-int
-mailHeader::parseAddressList (const char *inCStr,
- TQPtrList < mailAddress > *aList)
-{
- int advance = 0;
- int skip = 1;
- char *aCStr = (char *) inCStr;
-
- if (!aCStr || !aList)
- return 0;
- while (skip > 0)
- {
- mailAddress *aAddress = new mailAddress;
- skip = aAddress->parseAddress (aCStr);
- if (skip)
- {
- aCStr += skip;
- if (skip < 0)
- advance -= skip;
- else
- advance += skip;
- aList->append (aAddress);
- }
- else
- {
- delete aAddress;
- break;
- }
- }
- return advance;
-}
-
-TQCString
-mailHeader::getAddressStr (TQPtrList < mailAddress > *aList)
-{
- TQCString retVal;
-
- TQPtrListIterator < mailAddress > it = TQPtrListIterator < mailAddress > (*aList);
- while (it.current ())
- {
- retVal += it.current ()->getStr ();
- ++it;
- if (it.current ())
- retVal += ", ";
- }
- return retVal;
-}
diff --git a/tdeioslave/imap4/mailheader.cpp b/tdeioslave/imap4/mailheader.cpp
new file mode 100644
index 00000000..28eec1f0
--- /dev/null
+++ b/tdeioslave/imap4/mailheader.cpp
@@ -0,0 +1,203 @@
+/***************************************************************************
+ mailheader.cpp - description
+ -------------------
+ begin : Tue Oct 24 2000
+ copyright : (C) 2000 by Sven Carstens
+ email : s.carstens@gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include "mailheader.h"
+#include "rfcdecoder.h"
+
+mailHeader::mailHeader ()
+{
+ toAdr.setAutoDelete (true);
+ ccAdr.setAutoDelete (true);
+ bccAdr.setAutoDelete (true);
+ setType ("text/plain");
+ gmt_offset = 0;
+}
+
+mailHeader::~mailHeader ()
+{
+}
+
+void
+mailHeader::addHdrLine (mimeHdrLine * inLine)
+{
+ mimeHdrLine *addLine = new mimeHdrLine (inLine);
+
+ const TQCString label(addLine->getLabel());
+ TQCString value(addLine->getValue());
+
+ if (!tqstricmp (label, "Return-Path")) {
+ returnpathAdr.parseAddress (value.data ());
+ goto out;
+ }
+ if (!tqstricmp (label, "Sender")) {
+ senderAdr.parseAddress (value.data ());
+ goto out;
+ }
+ if (!tqstricmp (label, "From")) {
+ fromAdr.parseAddress (value.data ());
+ goto out;
+ }
+ if (!tqstricmp (label, "Reply-To")) {
+ replytoAdr.parseAddress (value.data ());
+ goto out;
+ }
+ if (!tqstricmp (label, "To")) {
+ mailHeader::parseAddressList (value, &toAdr);
+ goto out;
+ }
+ if (!tqstricmp (label, "CC")) {
+ mailHeader::parseAddressList (value, &ccAdr);
+ goto out;
+ }
+ if (!tqstricmp (label, "BCC")) {
+ mailHeader::parseAddressList (value, &bccAdr);
+ goto out;
+ }
+ if (!tqstricmp (label, "Subject")) {
+ _subject = value.simplifyWhiteSpace();
+ goto out;
+ }
+ if (!tqstricmp (label.data (), "Date")) {
+ mDate = value;
+ goto out;
+ }
+ if (!tqstricmp (label.data (), "Message-ID")) {
+ int start = value.findRev ('<');
+ int end = value.findRev ('>');
+ if (start < end)
+ messageID = value.mid (start, end - start + 1);
+ else {
+ tqWarning("bad Message-ID");
+ /* messageID = value; */
+ }
+ goto out;
+ }
+ if (!tqstricmp (label.data (), "In-Reply-To")) {
+ int start = value.findRev ('<');
+ int end = value.findRev ('>');
+ if (start < end)
+ inReplyTo = value.mid (start, end - start + 1);
+ goto out;
+ }
+
+ // everything else is handled by mimeHeader
+ mimeHeader::addHdrLine (inLine);
+ delete addLine;
+ return;
+
+ out:
+// cout << label.data() << ": '" << value.data() << "'" << endl;
+
+ //need only to add this line if not handled by mimeHeader
+ originalHdrLines.append (addLine);
+}
+
+void
+mailHeader::outputHeader (mimeIO & useIO)
+{
+ static const TQCString __returnPath("Return-Path: ", 14);
+ static const TQCString __from ("From: ", 7);
+ static const TQCString __sender ("Sender: ", 9);
+ static const TQCString __replyTo ("Reply-To: ", 11);
+ static const TQCString __to ("To: ", 5);
+ static const TQCString __cc ("CC: ", 5);
+ static const TQCString __bcc ("BCC: ", 6);
+ static const TQCString __subject ("Subject: ", 10);
+ static const TQCString __messageId ("Message-ID: ", 13);
+ static const TQCString __inReplyTo ("In-Reply-To: ", 14);
+ static const TQCString __references("References: ", 13);
+ static const TQCString __date ("Date: ", 7);
+
+ if (!returnpathAdr.isEmpty())
+ useIO.outputMimeLine(__returnPath + returnpathAdr.getStr());
+ if (!fromAdr.isEmpty())
+ useIO.outputMimeLine(__from + fromAdr.getStr());
+ if (!senderAdr.isEmpty())
+ useIO.outputMimeLine(__sender + senderAdr.getStr());
+ if (!replytoAdr.isEmpty())
+ useIO.outputMimeLine(__replyTo + replytoAdr.getStr());
+
+ if (toAdr.count())
+ useIO.outputMimeLine(mimeHdrLine::truncateLine(__to +
+ mailHeader::getAddressStr(&toAdr)));
+ if (ccAdr.count())
+ useIO.outputMimeLine(mimeHdrLine::truncateLine(__cc +
+ mailHeader::getAddressStr(&ccAdr)));
+ if (bccAdr.count())
+ useIO.outputMimeLine(mimeHdrLine::truncateLine(__bcc +
+ mailHeader::getAddressStr(&bccAdr)));
+ if (!_subject.isEmpty())
+ useIO.outputMimeLine(mimeHdrLine::truncateLine(__subject + _subject));
+ if (!messageID.isEmpty())
+ useIO.outputMimeLine(mimeHdrLine::truncateLine(__messageId + messageID));
+ if (!inReplyTo.isEmpty())
+ useIO.outputMimeLine(mimeHdrLine::truncateLine(__inReplyTo + inReplyTo));
+ if (!references.isEmpty())
+ useIO.outputMimeLine(mimeHdrLine::truncateLine(__references + references));
+
+ if (!mDate.isEmpty())
+ useIO.outputMimeLine(__date + mDate);
+ mimeHeader::outputHeader(useIO);
+}
+
+int
+mailHeader::parseAddressList (const char *inCStr,
+ TQPtrList < mailAddress > *aList)
+{
+ int advance = 0;
+ int skip = 1;
+ char *aCStr = (char *) inCStr;
+
+ if (!aCStr || !aList)
+ return 0;
+ while (skip > 0)
+ {
+ mailAddress *aAddress = new mailAddress;
+ skip = aAddress->parseAddress (aCStr);
+ if (skip)
+ {
+ aCStr += skip;
+ if (skip < 0)
+ advance -= skip;
+ else
+ advance += skip;
+ aList->append (aAddress);
+ }
+ else
+ {
+ delete aAddress;
+ break;
+ }
+ }
+ return advance;
+}
+
+TQCString
+mailHeader::getAddressStr (TQPtrList < mailAddress > *aList)
+{
+ TQCString retVal;
+
+ TQPtrListIterator < mailAddress > it = TQPtrListIterator < mailAddress > (*aList);
+ while (it.current ())
+ {
+ retVal += it.current ()->getStr ();
+ ++it;
+ if (it.current ())
+ retVal += ", ";
+ }
+ return retVal;
+}
diff --git a/tdeioslave/imap4/mimehdrline.cc b/tdeioslave/imap4/mimehdrline.cc
deleted file mode 100644
index 9646ed26..00000000
--- a/tdeioslave/imap4/mimehdrline.cc
+++ /dev/null
@@ -1,521 +0,0 @@
-/***************************************************************************
- mimehdrline.cc - description
- -------------------
- begin : Wed Oct 11 2000
- copyright : (C) 2000 by Sven Carstens
- email : s.carstens@gmx.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include <config.h>
-#include <iostream>
-#include <ctype.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "mimehdrline.h"
-#include "rfcdecoder.h"
-
-using namespace std;
-
-const char *wdays[] = {
- "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
-};
-
-const char *months[] = {
- "Jan", "Feb", "Mar", "Apr", "May", "Jun",
- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
-};
-
-mimeHdrLine::mimeHdrLine ():
-mimeValue ((const char *) NULL), mimeLabel ((const char *) NULL)
-{
-}
-
-mimeHdrLine::mimeHdrLine (const TQCString & aLabel, const TQCString & aValue):
-mimeValue (aValue),
-mimeLabel (aLabel)
-{
-}
-
-mimeHdrLine::mimeHdrLine (mimeHdrLine * aHdrLine):
-mimeValue (aHdrLine->mimeValue), mimeLabel (aHdrLine->mimeLabel)
-{
-}
-
-mimeHdrLine::~mimeHdrLine ()
-{
-}
-
-int
-mimeHdrLine::appendStr (const char *inCStr)
-{
- int retVal = 0;
- int skip;
- char *aCStr = (char *) inCStr;
-
- if (aCStr)
- {
- skip = skipWS (aCStr);
- if (skip && !mimeLabel.isEmpty ())
- {
- if (skip > 0)
- {
- mimeValue += TQCString (aCStr, skip + 1);
- aCStr += skip;
- retVal += skip;
- skip = parseFullLine (aCStr);
- mimeValue += TQCString (aCStr, skip + 1);
- retVal += skip;
- aCStr += skip;
- }
- }
- else
- {
- if (mimeLabel.isEmpty ())
- return setStr (aCStr);
- }
- }
- return retVal;
-}
-
-/** parse a Line into the class
-move input ptr accordingly
-and report characters slurped */
-int
-mimeHdrLine::setStr (const char *inCStr)
-{
- int retVal = 0;
- char *aCStr = (char *) inCStr;
-// char *begin = aCStr;
- mimeLabel = TQCString ((const char *) NULL);
- mimeValue = TQCString ((const char *) NULL);
-
- if (aCStr)
- {
- // can't have spaces on normal lines
- if (!skipWS (aCStr))
- {
- int label = 0, advance;
- while ((advance = parseWord (&aCStr[label])))
- {
- label += advance;
- }
- if (label && aCStr[label - 1] != ':')
- retVal = 0;
- else
- {
- mimeLabel = TQCString (aCStr, label); //length including zero
- retVal += label;
- aCStr += label;
- }
- }
- if (retVal)
- {
- int skip;
- skip = skipWS (aCStr);
- if (skip < 0)
- skip *= -1;
- aCStr += skip;
- retVal += skip;
- skip = parseFullLine (aCStr);
- mimeValue = TQCString (aCStr, skip + 1);
- retVal += skip;
- aCStr += skip;
- }
- else
- {
- //Skip malformed line
- while (*aCStr && *aCStr != '\r' && *aCStr != '\n')
- {
- retVal--;
- aCStr++;
- }
- if (*aCStr == '\r')
- {
- retVal--;
- aCStr++;
- }
- if (*aCStr == '\n')
- {
- retVal--;
- aCStr++;
- }
- }
- }
- else
- {
- //debug
- }
- return retVal;
-}
-
-/** slurp one word*/
-int
-mimeHdrLine::parseWord (const char *inCStr)
-{
- int retVal = 0;
- char *aCStr = (char *) inCStr;
-
- if (aCStr && *aCStr)
- {
- if (*aCStr == '"')
- return mimeHdrLine::parseQuoted ('"', '"', aCStr);
- else
- return mimeHdrLine::parseHalfWord (aCStr);
- }
- else
- {
- //debug();
- }
- return retVal;
-}
-
-/** slurp one word*/
-int
-mimeHdrLine::parseQuoted (char startQuote, char endQuote, const char *inCStr)
-{
- char *aCStr = (char *) inCStr;
- int retVal = 0;
-
- if (aCStr && *aCStr)
- {
- if (*aCStr == startQuote)
- {
- aCStr++;
- retVal++;
- }
- else
- return 0;
- while (*aCStr && *aCStr != endQuote)
- {
- //skip over backticks
- if (*aCStr == '\\')
- {
- aCStr++;
- retVal++;
- }
- //eat this
- aCStr++;
- retVal++;
- }
- if (*aCStr == endQuote)
- {
- aCStr++;
- retVal++;
- }
- }
- else
- {
- //debug();
- }
- return retVal;
-}
-
-/** slurp one alphanumerical word without continuation*/
-int
-mimeHdrLine::parseAlphaNum (const char *inCStr)
-{
- int retVal = 0;
- char *aCStr = (char *) inCStr;
-
- if (aCStr)
- {
- while (*aCStr && isalnum (*aCStr))
- {
- //skip over backticks
- if (*aCStr == '\\')
- {
- aCStr++;
- retVal++;
- }
- //eat this
- aCStr++;
- retVal++;
- }
- }
- else
- {
- //debug();
- }
- return retVal;
-}
-
-int
-mimeHdrLine::parseHalfWord (const char *inCStr)
-{
- int retVal = 0;
- char *aCStr = (char *) inCStr;
-
- if (aCStr && *aCStr)
- {
- if (isalnum (*aCStr))
- return mimeHdrLine::parseAlphaNum (aCStr);
- //skip over backticks
- if (*aCStr == '\\')
- {
- aCStr++;
- retVal++;
- }
- else if (!isspace (*aCStr))
- {
- //eat this
- aCStr++;
- retVal++;
- }
- }
- else
- {
- //debug();
- }
- return retVal;
-}
-
-/** slurp one line without continuation*/
-int
-mimeHdrLine::parseHalfLine (const char *inCStr)
-{
- int retVal = 0;
- char *aCStr = (char *) inCStr;
-
- if (aCStr)
- {
- while (*aCStr && *aCStr != '\n')
- {
- //skip over backticks
- if (*aCStr == '\\')
- {
- aCStr++;
- retVal++;
- }
- //eat this
- aCStr++;
- retVal++;
- }
- if (*aCStr == '\n')
- {
- aCStr++;
- retVal++;
- }
- }
- else
- {
- //debug();
- }
- return retVal;
-}
-
-/** skip all white space characters including continuation*/
-int
-mimeHdrLine::skipWS (const char *inCStr)
-{
- int retVal = 0;
- char *aCStr = (char *) inCStr;
-
- if (aCStr && *aCStr)
- {
- while (*aCStr == ' ' || *aCStr == '\t')
- {
- aCStr++;
- retVal++;
- }
- //check out for continuation lines
- if (*aCStr == '\r')
- {
- aCStr++;
- retVal++;
- }
- if (*aCStr++ == '\n')
- if (*aCStr == '\t' || *aCStr == ' ')
- {
- int skip = mimeHdrLine::skipWS (aCStr);
- if (skip < 0)
- skip *= -1;
- retVal += 1 + skip;
- }
- else
- {
- retVal = -retVal - 1;
- }
- }
- else
- {
- //debug();
- }
- return retVal;
-}
-
-/** parses continuated lines */
-int
-mimeHdrLine::parseFullLine (const char *inCStr)
-{
- int retVal = 0;
- char *aCStr = (char *) inCStr;
- int skip;
-
- if (aCStr)
- {
- //skip leading white space
- skip = skipWS (aCStr);
- if (skip > 0)
- {
- aCStr += skip;
- retVal += skip;
- }
- while (*aCStr)
- {
- int advance;
-
- if ((advance = parseHalfLine (aCStr)))
- {
- retVal += advance;
- aCStr += advance;
- }
- else if ((advance = skipWS (aCStr)))
- {
- if (advance > 0)
- {
- retVal += advance;
- aCStr += advance;
- }
- else
- {
- retVal -= advance;
- break;
- }
- }
- else
- break;
- }
- }
- else
- {
- //debug();
- }
- return retVal;
-}
-
-/** parses continuated lines */
-int
-mimeHdrLine::parseSeparator (char separator, const char *inCStr)
-{
- char *aCStr = (char *) inCStr;
- int retVal = 0;
- int skip;
-
- if (aCStr)
- {
- //skip leading white space
- skip = skipWS (aCStr);
- if (skip > 0)
- {
- aCStr += skip;
- retVal += skip;
- }
- while (*aCStr)
- {
- int advance;
-
- if (*aCStr != separator)
- {
- if ((advance = mimeHdrLine::parseWord (aCStr)))
- {
- retVal += advance;
- aCStr += advance;
- }
- else if ((advance = mimeHdrLine::skipWS (aCStr)))
- {
- if (advance > 0)
- {
- retVal += advance;
- aCStr += advance;
- }
- else
- {
- retVal -= advance;
- break;
- }
- }
- else
- break;
- }
- else
- {
- //include separator in result
- retVal++;
- aCStr++;
- break;
- }
- }
- }
- else
- {
- //debug();
- }
- return retVal;
-}
-
-/** return the label */
-
-const TQCString&
-mimeHdrLine::getLabel ()
-{
- return mimeLabel;
-}
-
-/** return the value */
-const TQCString&
-mimeHdrLine::getValue ()
-{
- return mimeValue;
-}
-
-
-// FIXME: very inefficient still
-TQCString
-mimeHdrLine::truncateLine(TQCString aLine, unsigned int truncate)
-{
- int cutHere;
- TQCString retVal;
- uint len = aLine.length();
-
- // see if we have a line of the form "key: value" (like "Subject: bla")
- // then we do not want to truncate between key and value
- int validStart = aLine.find(": ");
- if (validStart > -1) {
- validStart += 2;
- }
- while (len > truncate) {
- cutHere = aLine.findRev(' ', truncate);
- if (cutHere < 1 || cutHere < validStart) {
- cutHere = aLine.findRev('\t', truncate);
- if (cutHere < 1) {
- cutHere = aLine.find(' ', 1);
- if (cutHere < 1) {
- cutHere = aLine.find('\t', 1);
- if (cutHere < 1) {
- // simply truncate
- return aLine.left(truncate);
- }
- }
- }
- }
-
- retVal += aLine.left(cutHere) + '\n';
- int chop = len - cutHere;
- aLine = aLine.right(chop);
- len -= chop;
- }
- retVal += aLine;
-
- return retVal;
-}
-
diff --git a/tdeioslave/imap4/mimehdrline.cpp b/tdeioslave/imap4/mimehdrline.cpp
new file mode 100644
index 00000000..591d3386
--- /dev/null
+++ b/tdeioslave/imap4/mimehdrline.cpp
@@ -0,0 +1,521 @@
+/***************************************************************************
+ mimehdrline.cpp - description
+ -------------------
+ begin : Wed Oct 11 2000
+ copyright : (C) 2000 by Sven Carstens
+ email : s.carstens@gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <config.h>
+#include <iostream>
+#include <ctype.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "mimehdrline.h"
+#include "rfcdecoder.h"
+
+using namespace std;
+
+const char *wdays[] = {
+ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
+};
+
+const char *months[] = {
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+};
+
+mimeHdrLine::mimeHdrLine ():
+mimeValue ((const char *) NULL), mimeLabel ((const char *) NULL)
+{
+}
+
+mimeHdrLine::mimeHdrLine (const TQCString & aLabel, const TQCString & aValue):
+mimeValue (aValue),
+mimeLabel (aLabel)
+{
+}
+
+mimeHdrLine::mimeHdrLine (mimeHdrLine * aHdrLine):
+mimeValue (aHdrLine->mimeValue), mimeLabel (aHdrLine->mimeLabel)
+{
+}
+
+mimeHdrLine::~mimeHdrLine ()
+{
+}
+
+int
+mimeHdrLine::appendStr (const char *inCStr)
+{
+ int retVal = 0;
+ int skip;
+ char *aCStr = (char *) inCStr;
+
+ if (aCStr)
+ {
+ skip = skipWS (aCStr);
+ if (skip && !mimeLabel.isEmpty ())
+ {
+ if (skip > 0)
+ {
+ mimeValue += TQCString (aCStr, skip + 1);
+ aCStr += skip;
+ retVal += skip;
+ skip = parseFullLine (aCStr);
+ mimeValue += TQCString (aCStr, skip + 1);
+ retVal += skip;
+ aCStr += skip;
+ }
+ }
+ else
+ {
+ if (mimeLabel.isEmpty ())
+ return setStr (aCStr);
+ }
+ }
+ return retVal;
+}
+
+/** parse a Line into the class
+move input ptr accordingly
+and report characters slurped */
+int
+mimeHdrLine::setStr (const char *inCStr)
+{
+ int retVal = 0;
+ char *aCStr = (char *) inCStr;
+// char *begin = aCStr;
+ mimeLabel = TQCString ((const char *) NULL);
+ mimeValue = TQCString ((const char *) NULL);
+
+ if (aCStr)
+ {
+ // can't have spaces on normal lines
+ if (!skipWS (aCStr))
+ {
+ int label = 0, advance;
+ while ((advance = parseWord (&aCStr[label])))
+ {
+ label += advance;
+ }
+ if (label && aCStr[label - 1] != ':')
+ retVal = 0;
+ else
+ {
+ mimeLabel = TQCString (aCStr, label); //length including zero
+ retVal += label;
+ aCStr += label;
+ }
+ }
+ if (retVal)
+ {
+ int skip;
+ skip = skipWS (aCStr);
+ if (skip < 0)
+ skip *= -1;
+ aCStr += skip;
+ retVal += skip;
+ skip = parseFullLine (aCStr);
+ mimeValue = TQCString (aCStr, skip + 1);
+ retVal += skip;
+ aCStr += skip;
+ }
+ else
+ {
+ //Skip malformed line
+ while (*aCStr && *aCStr != '\r' && *aCStr != '\n')
+ {
+ retVal--;
+ aCStr++;
+ }
+ if (*aCStr == '\r')
+ {
+ retVal--;
+ aCStr++;
+ }
+ if (*aCStr == '\n')
+ {
+ retVal--;
+ aCStr++;
+ }
+ }
+ }
+ else
+ {
+ //debug
+ }
+ return retVal;
+}
+
+/** slurp one word*/
+int
+mimeHdrLine::parseWord (const char *inCStr)
+{
+ int retVal = 0;
+ char *aCStr = (char *) inCStr;
+
+ if (aCStr && *aCStr)
+ {
+ if (*aCStr == '"')
+ return mimeHdrLine::parseQuoted ('"', '"', aCStr);
+ else
+ return mimeHdrLine::parseHalfWord (aCStr);
+ }
+ else
+ {
+ //debug();
+ }
+ return retVal;
+}
+
+/** slurp one word*/
+int
+mimeHdrLine::parseQuoted (char startQuote, char endQuote, const char *inCStr)
+{
+ char *aCStr = (char *) inCStr;
+ int retVal = 0;
+
+ if (aCStr && *aCStr)
+ {
+ if (*aCStr == startQuote)
+ {
+ aCStr++;
+ retVal++;
+ }
+ else
+ return 0;
+ while (*aCStr && *aCStr != endQuote)
+ {
+ //skip over backticks
+ if (*aCStr == '\\')
+ {
+ aCStr++;
+ retVal++;
+ }
+ //eat this
+ aCStr++;
+ retVal++;
+ }
+ if (*aCStr == endQuote)
+ {
+ aCStr++;
+ retVal++;
+ }
+ }
+ else
+ {
+ //debug();
+ }
+ return retVal;
+}
+
+/** slurp one alphanumerical word without continuation*/
+int
+mimeHdrLine::parseAlphaNum (const char *inCStr)
+{
+ int retVal = 0;
+ char *aCStr = (char *) inCStr;
+
+ if (aCStr)
+ {
+ while (*aCStr && isalnum (*aCStr))
+ {
+ //skip over backticks
+ if (*aCStr == '\\')
+ {
+ aCStr++;
+ retVal++;
+ }
+ //eat this
+ aCStr++;
+ retVal++;
+ }
+ }
+ else
+ {
+ //debug();
+ }
+ return retVal;
+}
+
+int
+mimeHdrLine::parseHalfWord (const char *inCStr)
+{
+ int retVal = 0;
+ char *aCStr = (char *) inCStr;
+
+ if (aCStr && *aCStr)
+ {
+ if (isalnum (*aCStr))
+ return mimeHdrLine::parseAlphaNum (aCStr);
+ //skip over backticks
+ if (*aCStr == '\\')
+ {
+ aCStr++;
+ retVal++;
+ }
+ else if (!isspace (*aCStr))
+ {
+ //eat this
+ aCStr++;
+ retVal++;
+ }
+ }
+ else
+ {
+ //debug();
+ }
+ return retVal;
+}
+
+/** slurp one line without continuation*/
+int
+mimeHdrLine::parseHalfLine (const char *inCStr)
+{
+ int retVal = 0;
+ char *aCStr = (char *) inCStr;
+
+ if (aCStr)
+ {
+ while (*aCStr && *aCStr != '\n')
+ {
+ //skip over backticks
+ if (*aCStr == '\\')
+ {
+ aCStr++;
+ retVal++;
+ }
+ //eat this
+ aCStr++;
+ retVal++;
+ }
+ if (*aCStr == '\n')
+ {
+ aCStr++;
+ retVal++;
+ }
+ }
+ else
+ {
+ //debug();
+ }
+ return retVal;
+}
+
+/** skip all white space characters including continuation*/
+int
+mimeHdrLine::skipWS (const char *inCStr)
+{
+ int retVal = 0;
+ char *aCStr = (char *) inCStr;
+
+ if (aCStr && *aCStr)
+ {
+ while (*aCStr == ' ' || *aCStr == '\t')
+ {
+ aCStr++;
+ retVal++;
+ }
+ //check out for continuation lines
+ if (*aCStr == '\r')
+ {
+ aCStr++;
+ retVal++;
+ }
+ if (*aCStr++ == '\n')
+ if (*aCStr == '\t' || *aCStr == ' ')
+ {
+ int skip = mimeHdrLine::skipWS (aCStr);
+ if (skip < 0)
+ skip *= -1;
+ retVal += 1 + skip;
+ }
+ else
+ {
+ retVal = -retVal - 1;
+ }
+ }
+ else
+ {
+ //debug();
+ }
+ return retVal;
+}
+
+/** parses continuated lines */
+int
+mimeHdrLine::parseFullLine (const char *inCStr)
+{
+ int retVal = 0;
+ char *aCStr = (char *) inCStr;
+ int skip;
+
+ if (aCStr)
+ {
+ //skip leading white space
+ skip = skipWS (aCStr);
+ if (skip > 0)
+ {
+ aCStr += skip;
+ retVal += skip;
+ }
+ while (*aCStr)
+ {
+ int advance;
+
+ if ((advance = parseHalfLine (aCStr)))
+ {
+ retVal += advance;
+ aCStr += advance;
+ }
+ else if ((advance = skipWS (aCStr)))
+ {
+ if (advance > 0)
+ {
+ retVal += advance;
+ aCStr += advance;
+ }
+ else
+ {
+ retVal -= advance;
+ break;
+ }
+ }
+ else
+ break;
+ }
+ }
+ else
+ {
+ //debug();
+ }
+ return retVal;
+}
+
+/** parses continuated lines */
+int
+mimeHdrLine::parseSeparator (char separator, const char *inCStr)
+{
+ char *aCStr = (char *) inCStr;
+ int retVal = 0;
+ int skip;
+
+ if (aCStr)
+ {
+ //skip leading white space
+ skip = skipWS (aCStr);
+ if (skip > 0)
+ {
+ aCStr += skip;
+ retVal += skip;
+ }
+ while (*aCStr)
+ {
+ int advance;
+
+ if (*aCStr != separator)
+ {
+ if ((advance = mimeHdrLine::parseWord (aCStr)))
+ {
+ retVal += advance;
+ aCStr += advance;
+ }
+ else if ((advance = mimeHdrLine::skipWS (aCStr)))
+ {
+ if (advance > 0)
+ {
+ retVal += advance;
+ aCStr += advance;
+ }
+ else
+ {
+ retVal -= advance;
+ break;
+ }
+ }
+ else
+ break;
+ }
+ else
+ {
+ //include separator in result
+ retVal++;
+ aCStr++;
+ break;
+ }
+ }
+ }
+ else
+ {
+ //debug();
+ }
+ return retVal;
+}
+
+/** return the label */
+
+const TQCString&
+mimeHdrLine::getLabel ()
+{
+ return mimeLabel;
+}
+
+/** return the value */
+const TQCString&
+mimeHdrLine::getValue ()
+{
+ return mimeValue;
+}
+
+
+// FIXME: very inefficient still
+TQCString
+mimeHdrLine::truncateLine(TQCString aLine, unsigned int truncate)
+{
+ int cutHere;
+ TQCString retVal;
+ uint len = aLine.length();
+
+ // see if we have a line of the form "key: value" (like "Subject: bla")
+ // then we do not want to truncate between key and value
+ int validStart = aLine.find(": ");
+ if (validStart > -1) {
+ validStart += 2;
+ }
+ while (len > truncate) {
+ cutHere = aLine.findRev(' ', truncate);
+ if (cutHere < 1 || cutHere < validStart) {
+ cutHere = aLine.findRev('\t', truncate);
+ if (cutHere < 1) {
+ cutHere = aLine.find(' ', 1);
+ if (cutHere < 1) {
+ cutHere = aLine.find('\t', 1);
+ if (cutHere < 1) {
+ // simply truncate
+ return aLine.left(truncate);
+ }
+ }
+ }
+ }
+
+ retVal += aLine.left(cutHere) + '\n';
+ int chop = len - cutHere;
+ aLine = aLine.right(chop);
+ len -= chop;
+ }
+ retVal += aLine;
+
+ return retVal;
+}
+
diff --git a/tdeioslave/imap4/mimeheader.cc b/tdeioslave/imap4/mimeheader.cc
deleted file mode 100644
index d0916ba5..00000000
--- a/tdeioslave/imap4/mimeheader.cc
+++ /dev/null
@@ -1,745 +0,0 @@
-/***************************************************************************
- mimeheader.cc - description
- -------------------
- begin : Fri Oct 20 2000
- copyright : (C) 2000 by Sven Carstens
- email : s.carstens@gmx.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include "mimeheader.h"
-#include "mimehdrline.h"
-#include "mailheader.h"
-#include "rfcdecoder.h"
-
-#include <tqregexp.h>
-
-// #include <iostream.h>
-#include <tdeglobal.h>
-#include <kinstance.h>
-#include <kiconloader.h>
-#include <kmimetype.h>
-#include <kmimemagic.h>
-#include <kmdcodec.h>
-#include <kdebug.h>
-
-mimeHeader::mimeHeader ():
-typeList (17, false), dispositionList (17, false)
-{
- // Case insensitive hashes are killing us. Also are they too small?
- originalHdrLines.setAutoDelete (true);
- additionalHdrLines.setAutoDelete (false); // is also in original lines
- nestedParts.setAutoDelete (true);
- typeList.setAutoDelete (true);
- dispositionList.setAutoDelete (true);
- nestedMessage = NULL;
- contentLength = 0;
- contentType = "application/octet-stream";
-}
-
-mimeHeader::~mimeHeader ()
-{
-}
-
-/*
-TQPtrList<mimeHeader> mimeHeader::getAllParts()
-{
- TQPtrList<mimeHeader> retVal;
-
- // caller is responsible for clearing
- retVal.setAutoDelete( false );
- nestedParts.setAutoDelete( false );
-
- // shallow copy
- retVal = nestedParts;
-
- // can't have duplicate pointers
- nestedParts.clear();
-
- // restore initial state
- nestedParts.setAutoDelete( true );
-
- return retVal;
-} */
-
-void
-mimeHeader::addHdrLine (mimeHdrLine * aHdrLine)
-{
- mimeHdrLine *addLine = new mimeHdrLine (aHdrLine);
- if (addLine)
- {
- originalHdrLines.append (addLine);
- if (tqstrnicmp (addLine->getLabel (), "Content-", 8))
- {
- additionalHdrLines.append (addLine);
- }
- else
- {
- int skip;
- const char *aCStr = addLine->getValue ().data ();
- TQDict < TQString > *aList = 0;
-
- skip = mimeHdrLine::parseSeparator (';', aCStr);
- if (skip > 0)
- {
- int cut = 0;
- if (skip >= 2)
- {
- if (aCStr[skip - 1] == '\r')
- cut++;
- if (aCStr[skip - 1] == '\n')
- cut++;
- if (aCStr[skip - 2] == '\r')
- cut++;
- if (aCStr[skip - 1] == ';')
- cut++;
- }
- TQCString mimeValue = TQCString (aCStr, skip - cut + 1); // cutting of one because of 0x00
-
-
- if (!tqstricmp (addLine->getLabel (), "Content-Disposition"))
- {
- aList = &dispositionList;
- _contentDisposition = mimeValue;
- }
- else if (!tqstricmp (addLine->getLabel (), "Content-Type"))
- {
- aList = &typeList;
- contentType = mimeValue;
- }
- else
- if (!tqstricmp (addLine->getLabel (), "Content-Transfer-Encoding"))
- {
- contentEncoding = mimeValue;
- }
- else if (!tqstricmp (addLine->getLabel (), "Content-ID"))
- {
- contentID = mimeValue;
- }
- else if (!tqstricmp (addLine->getLabel (), "Content-Description"))
- {
- _contentDescription = mimeValue;
- }
- else if (!tqstricmp (addLine->getLabel (), "Content-MD5"))
- {
- contentMD5 = mimeValue;
- }
- else if (!tqstricmp (addLine->getLabel (), "Content-Length"))
- {
- contentLength = mimeValue.toULong ();
- }
- else
- {
- additionalHdrLines.append (addLine);
- }
-// cout << addLine->getLabel().data() << ": '" << mimeValue.data() << "'" << endl;
-
- aCStr += skip;
- while ((skip = mimeHdrLine::parseSeparator (';', aCStr)))
- {
- if (skip > 0)
- {
- addParameter (TQCString (aCStr, skip).simplifyWhiteSpace(), aList);
-// cout << "-- '" << aParm.data() << "'" << endl;
- mimeValue = TQCString (addLine->getValue ().data (), skip);
- aCStr += skip;
- }
- else
- break;
- }
- }
- }
- }
-}
-
-void
-mimeHeader::addParameter (const TQCString& aParameter, TQDict < TQString > *aList)
-{
- if ( !aList )
- return;
-
- TQString *aValue;
- TQCString aLabel;
- int pos = aParameter.find ('=');
-// cout << aParameter.left(pos).data();
- aValue = new TQString ();
- aValue->setLatin1 (aParameter.right (aParameter.length () - pos - 1));
- aLabel = aParameter.left (pos);
- if ((*aValue)[0] == '"')
- *aValue = aValue->mid (1, aValue->length () - 2);
-
- aList->insert (aLabel, aValue);
-// cout << "=" << aValue->data() << endl;
-}
-
-TQString
-mimeHeader::getDispositionParm (const TQCString& aStr)
-{
- return getParameter (aStr, &dispositionList);
-}
-
-TQString
-mimeHeader::getTypeParm (const TQCString& aStr)
-{
- return getParameter (aStr, &typeList);
-}
-
-void
-mimeHeader::setDispositionParm (const TQCString& aLabel, const TQString& aValue)
-{
- setParameter (aLabel, aValue, &dispositionList);
- return;
-}
-
-void
-mimeHeader::setTypeParm (const TQCString& aLabel, const TQString& aValue)
-{
- setParameter (aLabel, aValue, &typeList);
-}
-
-TQDictIterator < TQString > mimeHeader::getDispositionIterator ()
-{
- return TQDictIterator < TQString > (dispositionList);
-}
-
-TQDictIterator < TQString > mimeHeader::getTypeIterator ()
-{
- return TQDictIterator < TQString > (typeList);
-}
-
-TQPtrListIterator < mimeHdrLine > mimeHeader::getOriginalIterator ()
-{
- return TQPtrListIterator < mimeHdrLine > (originalHdrLines);
-}
-
-TQPtrListIterator < mimeHdrLine > mimeHeader::getAdditionalIterator ()
-{
- return TQPtrListIterator < mimeHdrLine > (additionalHdrLines);
-}
-
-void
-mimeHeader::outputHeader (mimeIO & useIO)
-{
- if (!getDisposition ().isEmpty ())
- {
- useIO.outputMimeLine (TQCString ("Content-Disposition: ")
- + getDisposition ()
- + outputParameter (&dispositionList));
- }
-
- if (!getType ().isEmpty ())
- {
- useIO.outputMimeLine (TQCString ("Content-Type: ")
- + getType () + outputParameter (&typeList));
- }
- if (!getDescription ().isEmpty ())
- useIO.outputMimeLine (TQCString ("Content-Description: ") +
- getDescription ());
- if (!getID ().isEmpty ())
- useIO.outputMimeLine (TQCString ("Content-ID: ") + getID ());
- if (!getMD5 ().isEmpty ())
- useIO.outputMimeLine (TQCString ("Content-MD5: ") + getMD5 ());
- if (!getEncoding ().isEmpty ())
- useIO.outputMimeLine (TQCString ("Content-Transfer-Encoding: ") +
- getEncoding ());
-
- TQPtrListIterator < mimeHdrLine > ait = getAdditionalIterator ();
- while (ait.current ())
- {
- useIO.outputMimeLine (ait.current ()->getLabel () + ": " +
- ait.current ()->getValue ());
- ++ait;
- }
- useIO.outputMimeLine (TQCString (""));
-}
-
-TQString
-mimeHeader::getParameter (const TQCString& aStr, TQDict < TQString > *aDict)
-{
- TQString retVal, *found;
- if (aDict)
- {
- //see if it is a normal parameter
- found = aDict->find (aStr);
- if (!found)
- {
- //might be a continuated or encoded parameter
- found = aDict->find (aStr + "*");
- if (!found)
- {
- //continuated parameter
- TQString decoded, encoded;
- int part = 0;
-
- do
- {
- TQCString search;
- search.setNum (part);
- search = aStr + "*" + search;
- found = aDict->find (search);
- if (!found)
- {
- found = aDict->find (search + "*");
- if (found)
- encoded += rfcDecoder::encodeRFC2231String (*found);
- }
- else
- {
- encoded += *found;
- }
- part++;
- }
- while (found);
- if (encoded.find ('\'') >= 0)
- {
- retVal = rfcDecoder::decodeRFC2231String (encoded.local8Bit ());
- }
- else
- {
- retVal =
- rfcDecoder::decodeRFC2231String (TQCString ("''") +
- encoded.local8Bit ());
- }
- }
- else
- {
- //simple encoded parameter
- retVal = rfcDecoder::decodeRFC2231String (found->local8Bit ());
- }
- }
- else
- {
- retVal = *found;
- }
- }
- return retVal;
-}
-
-void
-mimeHeader::setParameter (const TQCString& aLabel, const TQString& aValue,
- TQDict < TQString > *aDict)
-{
- bool encoded = true;
- uint vlen, llen;
- TQString val = aValue;
-
- if (aDict)
- {
-
- //see if it needs to get encoded
- if (encoded && aLabel.find ('*') == -1)
- {
- val = rfcDecoder::encodeRFC2231String (aValue);
- }
- //kdDebug(7116) << "mimeHeader::setParameter() - val = '" << val << "'" << endl;
- //see if it needs to be truncated
- vlen = val.length();
- llen = aLabel.length();
- if (vlen + llen + 4 > 80 && llen < 80 - 8 - 2 )
- {
- const int limit = 80 - 8 - 2 - (int)llen;
- // the -2 is there to allow extending the length of a part of val
- // by 1 or 2 in order to prevent an encoded character from being
- // split in half
- int i = 0;
- TQString shortValue;
- TQCString shortLabel;
-
- while (!val.isEmpty ())
- {
- int partLen; // the length of the next part of the value
- if ( limit >= int(vlen) ) {
- // the rest of the value fits completely into one continued header
- partLen = vlen;
- }
- else {
- partLen = limit;
- // make sure that we don't split an encoded char in half
- if ( val[partLen-1] == '%' ) {
- partLen += 2;
- }
- else if ( partLen > 1 && val[partLen-2] == '%' ) {
- partLen += 1;
- }
- // make sure partLen does not exceed vlen (could happen in case of
- // an incomplete encoded char)
- if ( partLen > int(vlen) ) {
- partLen = vlen;
- }
- }
- shortValue = val.left( partLen );
- shortLabel.setNum (i);
- shortLabel = aLabel + "*" + shortLabel;
- val = val.right( vlen - partLen );
- vlen = vlen - partLen;
- if (encoded)
- {
- if (i == 0)
- {
- shortValue = "''" + shortValue;
- }
- shortLabel += "*";
- }
- //kdDebug(7116) << "mimeHeader::setParameter() - shortLabel = '" << shortLabel << "'" << endl;
- //kdDebug(7116) << "mimeHeader::setParameter() - shortValue = '" << shortValue << "'" << endl;
- //kdDebug(7116) << "mimeHeader::setParameter() - val = '" << val << "'" << endl;
- aDict->insert (shortLabel, new TQString (shortValue));
- i++;
- }
- }
- else
- {
- aDict->insert (aLabel, new TQString (val));
- }
- }
-}
-
-TQCString
-mimeHeader::outputParameter (TQDict < TQString > *aDict)
-{
- TQCString retVal;
- if (aDict)
- {
- TQDictIterator < TQString > it (*aDict);
- while (it.current ())
- {
- retVal += (";\n\t" + it.currentKey () + "=").latin1 ();
- if (it.current ()->find (' ') > 0 || it.current ()->find (';') > 0)
- {
- retVal += '"' + it.current ()->utf8 () + '"';
- }
- else
- {
- retVal += it.current ()->utf8 ();
- }
- // << it.current()->utf8() << "'";
- ++it;
- }
- retVal += "\n";
- }
- return retVal;
-}
-
-void
-mimeHeader::outputPart (mimeIO & useIO)
-{
- TQPtrListIterator < mimeHeader > nestedParts = getNestedIterator ();
- TQCString boundary;
- if (!getTypeParm ("boundary").isEmpty ())
- boundary = getTypeParm ("boundary").latin1 ();
-
- outputHeader (useIO);
- if (!getPreBody ().isEmpty ())
- useIO.outputMimeLine (getPreBody ());
- if (getNestedMessage ())
- getNestedMessage ()->outputPart (useIO);
- while (nestedParts.current ())
- {
- if (!boundary.isEmpty ())
- useIO.outputMimeLine ("--" + boundary);
- nestedParts.current ()->outputPart (useIO);
- ++nestedParts;
- }
- if (!boundary.isEmpty ())
- useIO.outputMimeLine ("--" + boundary + "--");
- if (!getPostBody ().isEmpty ())
- useIO.outputMimeLine (getPostBody ());
-}
-
-int
-mimeHeader::parsePart (mimeIO & useIO, const TQString& boundary)
-{
- int retVal = 0;
- bool mbox = false;
- TQCString preNested, postNested;
- mbox = parseHeader (useIO);
-
- kdDebug(7116) << "mimeHeader::parsePart - parsing part '" << getType () << "'" << endl;
- if (!tqstrnicmp (getType (), "Multipart", 9))
- {
- retVal = parseBody (useIO, preNested, getTypeParm ("boundary")); //this is a message in mime format stuff
- setPreBody (preNested);
- int localRetVal;
- do
- {
- mimeHeader *aHeader = new mimeHeader;
-
- // set default type for multipart/digest
- if (!tqstrnicmp (getType (), "Multipart/Digest", 16))
- aHeader->setType ("Message/RFC822");
-
- localRetVal = aHeader->parsePart (useIO, getTypeParm ("boundary"));
- addNestedPart (aHeader);
- }
- while (localRetVal); //get nested stuff
- }
- if (!tqstrnicmp (getType (), "Message/RFC822", 14))
- {
- mailHeader *msgHeader = new mailHeader;
- retVal = msgHeader->parsePart (useIO, boundary);
- setNestedMessage (msgHeader);
- }
- else
- {
- retVal = parseBody (useIO, postNested, boundary, mbox); //just a simple part remaining
- setPostBody (postNested);
- }
- return retVal;
-}
-
-int
-mimeHeader::parseBody (mimeIO & useIO, TQCString & messageBody,
- const TQString& boundary, bool mbox)
-{
- TQCString inputStr;
- TQCString buffer;
- TQString partBoundary;
- TQString partEnd;
- int retVal = 0; //default is last part
-
- if (!boundary.isEmpty ())
- {
- partBoundary = TQString ("--") + boundary;
- partEnd = TQString ("--") + boundary + "--";
- }
-
- while (useIO.inputLine (inputStr))
- {
- //check for the end of all parts
- if (!partEnd.isEmpty ()
- && !tqstrnicmp (inputStr, partEnd.latin1 (), partEnd.length () - 1))
- {
- retVal = 0; //end of these parts
- break;
- }
- else if (!partBoundary.isEmpty ()
- && !tqstrnicmp (inputStr, partBoundary.latin1 (),
- partBoundary.length () - 1))
- {
- retVal = 1; //continue with next part
- break;
- }
- else if (mbox && inputStr.find ("From ") == 0)
- {
- retVal = 0; // end of mbox
- break;
- }
- buffer += inputStr;
- if (buffer.length () > 16384)
- {
- messageBody += buffer;
- buffer = "";
- }
- }
-
- messageBody += buffer;
- return retVal;
-}
-
-bool
-mimeHeader::parseHeader (mimeIO & useIO)
-{
- bool mbox = false;
- bool first = true;
- mimeHdrLine my_line;
- TQCString inputStr;
-
- kdDebug(7116) << "mimeHeader::parseHeader - starting parsing" << endl;
- while (useIO.inputLine (inputStr))
- {
- int appended;
- if (inputStr.find ("From ") != 0 || !first)
- {
- first = false;
- appended = my_line.appendStr (inputStr);
- if (!appended)
- {
- addHdrLine (&my_line);
- appended = my_line.setStr (inputStr);
- }
- if (appended <= 0)
- break;
- }
- else
- {
- mbox = true;
- first = false;
- }
- inputStr = (const char *) NULL;
- }
-
- kdDebug(7116) << "mimeHeader::parseHeader - finished parsing" << endl;
- return mbox;
-}
-
-mimeHeader *
-mimeHeader::bodyPart (const TQString & _str)
-{
- // see if it is nested a little deeper
- int pt = _str.find('.');
- if (pt != -1)
- {
- TQString tempStr = _str;
- mimeHeader *tempPart;
-
- tempStr = _str.right (_str.length () - pt - 1);
- if (nestedMessage)
- {
- kdDebug(7116) << "mimeHeader::bodyPart - recursing message" << endl;
- tempPart = nestedMessage->nestedParts.at (_str.left(pt).toULong() - 1);
- }
- else
- {
- kdDebug(7116) << "mimeHeader::bodyPart - recursing mixed" << endl;
- tempPart = nestedParts.at (_str.left(pt).toULong() - 1);
- }
- if (tempPart)
- tempPart = tempPart->bodyPart (tempStr);
- return tempPart;
- }
-
- kdDebug(7116) << "mimeHeader::bodyPart - returning part " << _str << endl;
- // or pick just the plain part
- if (nestedMessage)
- {
- kdDebug(7116) << "mimeHeader::bodyPart - message" << endl;
- return nestedMessage->nestedParts.at (_str.toULong () - 1);
- }
- kdDebug(7116) << "mimeHeader::bodyPart - mixed" << endl;
- return nestedParts.at (_str.toULong () - 1);
-}
-
-void mimeHeader::serialize(TQDataStream& stream)
-{
- int nestedcount = nestedParts.count();
- if (nestedParts.isEmpty() && nestedMessage)
- nestedcount = 1;
- stream << nestedcount << contentType << TQString (getTypeParm ("name")) << _contentDescription
- << _contentDisposition << contentEncoding << contentLength << partSpecifier;
- // serialize nested message
- if (nestedMessage)
- nestedMessage->serialize(stream);
-
- // serialize nested parts
- if (!nestedParts.isEmpty())
- {
- TQPtrListIterator < mimeHeader > it(nestedParts);
- mimeHeader* part;
- while ( (part = it.current()) != 0 )
- {
- ++it;
- part->serialize(stream);
- }
- }
-}
-
-#ifdef KMAIL_COMPATIBLE
-// compatibility subroutines
-TQString
-mimeHeader::bodyDecoded ()
-{
- kdDebug(7116) << "mimeHeader::bodyDecoded" << endl;
- TQByteArray temp;
-
- temp = bodyDecodedBinary ();
- return TQString::fromLatin1 (temp.data (), temp.count ());
-}
-
-TQByteArray
-mimeHeader::bodyDecodedBinary ()
-{
- TQByteArray retVal;
-
- if (contentEncoding.find ("quoted-printable", 0, false) == 0)
- retVal = KCodecs::quotedPrintableDecode(postMultipartBody);
- else if (contentEncoding.find ("base64", 0, false) == 0)
- KCodecs::base64Decode(postMultipartBody, retVal);
- else retVal = postMultipartBody;
-
- kdDebug(7116) << "mimeHeader::bodyDecodedBinary - size is " << retVal.size () << endl;
- return retVal;
-}
-
-void
-mimeHeader::setBodyEncodedBinary (const TQByteArray & _arr)
-{
- setBodyEncoded (_arr);
-}
-
-void
-mimeHeader::setBodyEncoded (const TQByteArray & _arr)
-{
- TQByteArray setVal;
-
- kdDebug(7116) << "mimeHeader::setBodyEncoded - in size " << _arr.size () << endl;
- if (contentEncoding.find ("quoted-printable", 0, false) == 0)
- setVal = KCodecs::quotedPrintableEncode(_arr);
- else if (contentEncoding.find ("base64", 0, false) == 0)
- KCodecs::base64Encode(_arr, setVal);
- else
- setVal.duplicate (_arr);
- kdDebug(7116) << "mimeHeader::setBodyEncoded - out size " << setVal.size () << endl;
-
- postMultipartBody.duplicate (setVal);
- kdDebug(7116) << "mimeHeader::setBodyEncoded - out size " << postMultipartBody.size () << endl;
-}
-
-TQString
-mimeHeader::iconName ()
-{
- TQString fileName;
-
- // FIXME: bug? Why throw away this data?
- fileName =
- KMimeType::mimeType (contentType.lower ())->icon (TQString(), false);
- fileName =
- TDEGlobal::instance ()->iconLoader ()->iconPath (fileName, TDEIcon::Desktop);
-// if (fileName.isEmpty())
-// fileName = TDEGlobal::instance()->iconLoader()->iconPath( "unknown", TDEIcon::Desktop );
- return fileName;
-}
-
-void
-mimeHeader::setNestedMessage (mailHeader * inPart, bool destroy)
-{
-// if(nestedMessage && destroy) delete nestedMessage;
- nestedMessage = inPart;
-}
-
-TQString
-mimeHeader::headerAsString ()
-{
- mimeIOTQString myIO;
-
- outputHeader (myIO);
- return myIO.getString ();
-}
-
-TQString
-mimeHeader::magicSetType (bool aAutoDecode)
-{
- TQString mimetype;
- TQByteArray body;
- KMimeMagicResult *result;
-
- KMimeMagic::self ()->setFollowLinks (TRUE); // is it necessary ?
-
- if (aAutoDecode)
- body = bodyDecodedBinary ();
- else
- body = postMultipartBody;
-
- result = KMimeMagic::self ()->findBufferType (body);
- mimetype = result->mimeType ();
- contentType = mimetype;
- return mimetype;
-}
-#endif
diff --git a/tdeioslave/imap4/mimeheader.cpp b/tdeioslave/imap4/mimeheader.cpp
new file mode 100644
index 00000000..d9d2c7d2
--- /dev/null
+++ b/tdeioslave/imap4/mimeheader.cpp
@@ -0,0 +1,745 @@
+/***************************************************************************
+ mimeheader.cpp - description
+ -------------------
+ begin : Fri Oct 20 2000
+ copyright : (C) 2000 by Sven Carstens
+ email : s.carstens@gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include "mimeheader.h"
+#include "mimehdrline.h"
+#include "mailheader.h"
+#include "rfcdecoder.h"
+
+#include <tqregexp.h>
+
+// #include <iostream.h>
+#include <tdeglobal.h>
+#include <kinstance.h>
+#include <kiconloader.h>
+#include <kmimetype.h>
+#include <kmimemagic.h>
+#include <kmdcodec.h>
+#include <kdebug.h>
+
+mimeHeader::mimeHeader ():
+typeList (17, false), dispositionList (17, false)
+{
+ // Case insensitive hashes are killing us. Also are they too small?
+ originalHdrLines.setAutoDelete (true);
+ additionalHdrLines.setAutoDelete (false); // is also in original lines
+ nestedParts.setAutoDelete (true);
+ typeList.setAutoDelete (true);
+ dispositionList.setAutoDelete (true);
+ nestedMessage = NULL;
+ contentLength = 0;
+ contentType = "application/octet-stream";
+}
+
+mimeHeader::~mimeHeader ()
+{
+}
+
+/*
+TQPtrList<mimeHeader> mimeHeader::getAllParts()
+{
+ TQPtrList<mimeHeader> retVal;
+
+ // caller is responsible for clearing
+ retVal.setAutoDelete( false );
+ nestedParts.setAutoDelete( false );
+
+ // shallow copy
+ retVal = nestedParts;
+
+ // can't have duplicate pointers
+ nestedParts.clear();
+
+ // restore initial state
+ nestedParts.setAutoDelete( true );
+
+ return retVal;
+} */
+
+void
+mimeHeader::addHdrLine (mimeHdrLine * aHdrLine)
+{
+ mimeHdrLine *addLine = new mimeHdrLine (aHdrLine);
+ if (addLine)
+ {
+ originalHdrLines.append (addLine);
+ if (tqstrnicmp (addLine->getLabel (), "Content-", 8))
+ {
+ additionalHdrLines.append (addLine);
+ }
+ else
+ {
+ int skip;
+ const char *aCStr = addLine->getValue ().data ();
+ TQDict < TQString > *aList = 0;
+
+ skip = mimeHdrLine::parseSeparator (';', aCStr);
+ if (skip > 0)
+ {
+ int cut = 0;
+ if (skip >= 2)
+ {
+ if (aCStr[skip - 1] == '\r')
+ cut++;
+ if (aCStr[skip - 1] == '\n')
+ cut++;
+ if (aCStr[skip - 2] == '\r')
+ cut++;
+ if (aCStr[skip - 1] == ';')
+ cut++;
+ }
+ TQCString mimeValue = TQCString (aCStr, skip - cut + 1); // cutting of one because of 0x00
+
+
+ if (!tqstricmp (addLine->getLabel (), "Content-Disposition"))
+ {
+ aList = &dispositionList;
+ _contentDisposition = mimeValue;
+ }
+ else if (!tqstricmp (addLine->getLabel (), "Content-Type"))
+ {
+ aList = &typeList;
+ contentType = mimeValue;
+ }
+ else
+ if (!tqstricmp (addLine->getLabel (), "Content-Transfer-Encoding"))
+ {
+ contentEncoding = mimeValue;
+ }
+ else if (!tqstricmp (addLine->getLabel (), "Content-ID"))
+ {
+ contentID = mimeValue;
+ }
+ else if (!tqstricmp (addLine->getLabel (), "Content-Description"))
+ {
+ _contentDescription = mimeValue;
+ }
+ else if (!tqstricmp (addLine->getLabel (), "Content-MD5"))
+ {
+ contentMD5 = mimeValue;
+ }
+ else if (!tqstricmp (addLine->getLabel (), "Content-Length"))
+ {
+ contentLength = mimeValue.toULong ();
+ }
+ else
+ {
+ additionalHdrLines.append (addLine);
+ }
+// cout << addLine->getLabel().data() << ": '" << mimeValue.data() << "'" << endl;
+
+ aCStr += skip;
+ while ((skip = mimeHdrLine::parseSeparator (';', aCStr)))
+ {
+ if (skip > 0)
+ {
+ addParameter (TQCString (aCStr, skip).simplifyWhiteSpace(), aList);
+// cout << "-- '" << aParm.data() << "'" << endl;
+ mimeValue = TQCString (addLine->getValue ().data (), skip);
+ aCStr += skip;
+ }
+ else
+ break;
+ }
+ }
+ }
+ }
+}
+
+void
+mimeHeader::addParameter (const TQCString& aParameter, TQDict < TQString > *aList)
+{
+ if ( !aList )
+ return;
+
+ TQString *aValue;
+ TQCString aLabel;
+ int pos = aParameter.find ('=');
+// cout << aParameter.left(pos).data();
+ aValue = new TQString ();
+ aValue->setLatin1 (aParameter.right (aParameter.length () - pos - 1));
+ aLabel = aParameter.left (pos);
+ if ((*aValue)[0] == '"')
+ *aValue = aValue->mid (1, aValue->length () - 2);
+
+ aList->insert (aLabel, aValue);
+// cout << "=" << aValue->data() << endl;
+}
+
+TQString
+mimeHeader::getDispositionParm (const TQCString& aStr)
+{
+ return getParameter (aStr, &dispositionList);
+}
+
+TQString
+mimeHeader::getTypeParm (const TQCString& aStr)
+{
+ return getParameter (aStr, &typeList);
+}
+
+void
+mimeHeader::setDispositionParm (const TQCString& aLabel, const TQString& aValue)
+{
+ setParameter (aLabel, aValue, &dispositionList);
+ return;
+}
+
+void
+mimeHeader::setTypeParm (const TQCString& aLabel, const TQString& aValue)
+{
+ setParameter (aLabel, aValue, &typeList);
+}
+
+TQDictIterator < TQString > mimeHeader::getDispositionIterator ()
+{
+ return TQDictIterator < TQString > (dispositionList);
+}
+
+TQDictIterator < TQString > mimeHeader::getTypeIterator ()
+{
+ return TQDictIterator < TQString > (typeList);
+}
+
+TQPtrListIterator < mimeHdrLine > mimeHeader::getOriginalIterator ()
+{
+ return TQPtrListIterator < mimeHdrLine > (originalHdrLines);
+}
+
+TQPtrListIterator < mimeHdrLine > mimeHeader::getAdditionalIterator ()
+{
+ return TQPtrListIterator < mimeHdrLine > (additionalHdrLines);
+}
+
+void
+mimeHeader::outputHeader (mimeIO & useIO)
+{
+ if (!getDisposition ().isEmpty ())
+ {
+ useIO.outputMimeLine (TQCString ("Content-Disposition: ")
+ + getDisposition ()
+ + outputParameter (&dispositionList));
+ }
+
+ if (!getType ().isEmpty ())
+ {
+ useIO.outputMimeLine (TQCString ("Content-Type: ")
+ + getType () + outputParameter (&typeList));
+ }
+ if (!getDescription ().isEmpty ())
+ useIO.outputMimeLine (TQCString ("Content-Description: ") +
+ getDescription ());
+ if (!getID ().isEmpty ())
+ useIO.outputMimeLine (TQCString ("Content-ID: ") + getID ());
+ if (!getMD5 ().isEmpty ())
+ useIO.outputMimeLine (TQCString ("Content-MD5: ") + getMD5 ());
+ if (!getEncoding ().isEmpty ())
+ useIO.outputMimeLine (TQCString ("Content-Transfer-Encoding: ") +
+ getEncoding ());
+
+ TQPtrListIterator < mimeHdrLine > ait = getAdditionalIterator ();
+ while (ait.current ())
+ {
+ useIO.outputMimeLine (ait.current ()->getLabel () + ": " +
+ ait.current ()->getValue ());
+ ++ait;
+ }
+ useIO.outputMimeLine (TQCString (""));
+}
+
+TQString
+mimeHeader::getParameter (const TQCString& aStr, TQDict < TQString > *aDict)
+{
+ TQString retVal, *found;
+ if (aDict)
+ {
+ //see if it is a normal parameter
+ found = aDict->find (aStr);
+ if (!found)
+ {
+ //might be a continuated or encoded parameter
+ found = aDict->find (aStr + "*");
+ if (!found)
+ {
+ //continuated parameter
+ TQString decoded, encoded;
+ int part = 0;
+
+ do
+ {
+ TQCString search;
+ search.setNum (part);
+ search = aStr + "*" + search;
+ found = aDict->find (search);
+ if (!found)
+ {
+ found = aDict->find (search + "*");
+ if (found)
+ encoded += rfcDecoder::encodeRFC2231String (*found);
+ }
+ else
+ {
+ encoded += *found;
+ }
+ part++;
+ }
+ while (found);
+ if (encoded.find ('\'') >= 0)
+ {
+ retVal = rfcDecoder::decodeRFC2231String (encoded.local8Bit ());
+ }
+ else
+ {
+ retVal =
+ rfcDecoder::decodeRFC2231String (TQCString ("''") +
+ encoded.local8Bit ());
+ }
+ }
+ else
+ {
+ //simple encoded parameter
+ retVal = rfcDecoder::decodeRFC2231String (found->local8Bit ());
+ }
+ }
+ else
+ {
+ retVal = *found;
+ }
+ }
+ return retVal;
+}
+
+void
+mimeHeader::setParameter (const TQCString& aLabel, const TQString& aValue,
+ TQDict < TQString > *aDict)
+{
+ bool encoded = true;
+ uint vlen, llen;
+ TQString val = aValue;
+
+ if (aDict)
+ {
+
+ //see if it needs to get encoded
+ if (encoded && aLabel.find ('*') == -1)
+ {
+ val = rfcDecoder::encodeRFC2231String (aValue);
+ }
+ //kdDebug(7116) << "mimeHeader::setParameter() - val = '" << val << "'" << endl;
+ //see if it needs to be truncated
+ vlen = val.length();
+ llen = aLabel.length();
+ if (vlen + llen + 4 > 80 && llen < 80 - 8 - 2 )
+ {
+ const int limit = 80 - 8 - 2 - (int)llen;
+ // the -2 is there to allow extending the length of a part of val
+ // by 1 or 2 in order to prevent an encoded character from being
+ // split in half
+ int i = 0;
+ TQString shortValue;
+ TQCString shortLabel;
+
+ while (!val.isEmpty ())
+ {
+ int partLen; // the length of the next part of the value
+ if ( limit >= int(vlen) ) {
+ // the rest of the value fits completely into one continued header
+ partLen = vlen;
+ }
+ else {
+ partLen = limit;
+ // make sure that we don't split an encoded char in half
+ if ( val[partLen-1] == '%' ) {
+ partLen += 2;
+ }
+ else if ( partLen > 1 && val[partLen-2] == '%' ) {
+ partLen += 1;
+ }
+ // make sure partLen does not exceed vlen (could happen in case of
+ // an incomplete encoded char)
+ if ( partLen > int(vlen) ) {
+ partLen = vlen;
+ }
+ }
+ shortValue = val.left( partLen );
+ shortLabel.setNum (i);
+ shortLabel = aLabel + "*" + shortLabel;
+ val = val.right( vlen - partLen );
+ vlen = vlen - partLen;
+ if (encoded)
+ {
+ if (i == 0)
+ {
+ shortValue = "''" + shortValue;
+ }
+ shortLabel += "*";
+ }
+ //kdDebug(7116) << "mimeHeader::setParameter() - shortLabel = '" << shortLabel << "'" << endl;
+ //kdDebug(7116) << "mimeHeader::setParameter() - shortValue = '" << shortValue << "'" << endl;
+ //kdDebug(7116) << "mimeHeader::setParameter() - val = '" << val << "'" << endl;
+ aDict->insert (shortLabel, new TQString (shortValue));
+ i++;
+ }
+ }
+ else
+ {
+ aDict->insert (aLabel, new TQString (val));
+ }
+ }
+}
+
+TQCString
+mimeHeader::outputParameter (TQDict < TQString > *aDict)
+{
+ TQCString retVal;
+ if (aDict)
+ {
+ TQDictIterator < TQString > it (*aDict);
+ while (it.current ())
+ {
+ retVal += (";\n\t" + it.currentKey () + "=").latin1 ();
+ if (it.current ()->find (' ') > 0 || it.current ()->find (';') > 0)
+ {
+ retVal += '"' + it.current ()->utf8 () + '"';
+ }
+ else
+ {
+ retVal += it.current ()->utf8 ();
+ }
+ // << it.current()->utf8() << "'";
+ ++it;
+ }
+ retVal += "\n";
+ }
+ return retVal;
+}
+
+void
+mimeHeader::outputPart (mimeIO & useIO)
+{
+ TQPtrListIterator < mimeHeader > nestedParts = getNestedIterator ();
+ TQCString boundary;
+ if (!getTypeParm ("boundary").isEmpty ())
+ boundary = getTypeParm ("boundary").latin1 ();
+
+ outputHeader (useIO);
+ if (!getPreBody ().isEmpty ())
+ useIO.outputMimeLine (getPreBody ());
+ if (getNestedMessage ())
+ getNestedMessage ()->outputPart (useIO);
+ while (nestedParts.current ())
+ {
+ if (!boundary.isEmpty ())
+ useIO.outputMimeLine ("--" + boundary);
+ nestedParts.current ()->outputPart (useIO);
+ ++nestedParts;
+ }
+ if (!boundary.isEmpty ())
+ useIO.outputMimeLine ("--" + boundary + "--");
+ if (!getPostBody ().isEmpty ())
+ useIO.outputMimeLine (getPostBody ());
+}
+
+int
+mimeHeader::parsePart (mimeIO & useIO, const TQString& boundary)
+{
+ int retVal = 0;
+ bool mbox = false;
+ TQCString preNested, postNested;
+ mbox = parseHeader (useIO);
+
+ kdDebug(7116) << "mimeHeader::parsePart - parsing part '" << getType () << "'" << endl;
+ if (!tqstrnicmp (getType (), "Multipart", 9))
+ {
+ retVal = parseBody (useIO, preNested, getTypeParm ("boundary")); //this is a message in mime format stuff
+ setPreBody (preNested);
+ int localRetVal;
+ do
+ {
+ mimeHeader *aHeader = new mimeHeader;
+
+ // set default type for multipart/digest
+ if (!tqstrnicmp (getType (), "Multipart/Digest", 16))
+ aHeader->setType ("Message/RFC822");
+
+ localRetVal = aHeader->parsePart (useIO, getTypeParm ("boundary"));
+ addNestedPart (aHeader);
+ }
+ while (localRetVal); //get nested stuff
+ }
+ if (!tqstrnicmp (getType (), "Message/RFC822", 14))
+ {
+ mailHeader *msgHeader = new mailHeader;
+ retVal = msgHeader->parsePart (useIO, boundary);
+ setNestedMessage (msgHeader);
+ }
+ else
+ {
+ retVal = parseBody (useIO, postNested, boundary, mbox); //just a simple part remaining
+ setPostBody (postNested);
+ }
+ return retVal;
+}
+
+int
+mimeHeader::parseBody (mimeIO & useIO, TQCString & messageBody,
+ const TQString& boundary, bool mbox)
+{
+ TQCString inputStr;
+ TQCString buffer;
+ TQString partBoundary;
+ TQString partEnd;
+ int retVal = 0; //default is last part
+
+ if (!boundary.isEmpty ())
+ {
+ partBoundary = TQString ("--") + boundary;
+ partEnd = TQString ("--") + boundary + "--";
+ }
+
+ while (useIO.inputLine (inputStr))
+ {
+ //check for the end of all parts
+ if (!partEnd.isEmpty ()
+ && !tqstrnicmp (inputStr, partEnd.latin1 (), partEnd.length () - 1))
+ {
+ retVal = 0; //end of these parts
+ break;
+ }
+ else if (!partBoundary.isEmpty ()
+ && !tqstrnicmp (inputStr, partBoundary.latin1 (),
+ partBoundary.length () - 1))
+ {
+ retVal = 1; //continue with next part
+ break;
+ }
+ else if (mbox && inputStr.find ("From ") == 0)
+ {
+ retVal = 0; // end of mbox
+ break;
+ }
+ buffer += inputStr;
+ if (buffer.length () > 16384)
+ {
+ messageBody += buffer;
+ buffer = "";
+ }
+ }
+
+ messageBody += buffer;
+ return retVal;
+}
+
+bool
+mimeHeader::parseHeader (mimeIO & useIO)
+{
+ bool mbox = false;
+ bool first = true;
+ mimeHdrLine my_line;
+ TQCString inputStr;
+
+ kdDebug(7116) << "mimeHeader::parseHeader - starting parsing" << endl;
+ while (useIO.inputLine (inputStr))
+ {
+ int appended;
+ if (inputStr.find ("From ") != 0 || !first)
+ {
+ first = false;
+ appended = my_line.appendStr (inputStr);
+ if (!appended)
+ {
+ addHdrLine (&my_line);
+ appended = my_line.setStr (inputStr);
+ }
+ if (appended <= 0)
+ break;
+ }
+ else
+ {
+ mbox = true;
+ first = false;
+ }
+ inputStr = (const char *) NULL;
+ }
+
+ kdDebug(7116) << "mimeHeader::parseHeader - finished parsing" << endl;
+ return mbox;
+}
+
+mimeHeader *
+mimeHeader::bodyPart (const TQString & _str)
+{
+ // see if it is nested a little deeper
+ int pt = _str.find('.');
+ if (pt != -1)
+ {
+ TQString tempStr = _str;
+ mimeHeader *tempPart;
+
+ tempStr = _str.right (_str.length () - pt - 1);
+ if (nestedMessage)
+ {
+ kdDebug(7116) << "mimeHeader::bodyPart - recursing message" << endl;
+ tempPart = nestedMessage->nestedParts.at (_str.left(pt).toULong() - 1);
+ }
+ else
+ {
+ kdDebug(7116) << "mimeHeader::bodyPart - recursing mixed" << endl;
+ tempPart = nestedParts.at (_str.left(pt).toULong() - 1);
+ }
+ if (tempPart)
+ tempPart = tempPart->bodyPart (tempStr);
+ return tempPart;
+ }
+
+ kdDebug(7116) << "mimeHeader::bodyPart - returning part " << _str << endl;
+ // or pick just the plain part
+ if (nestedMessage)
+ {
+ kdDebug(7116) << "mimeHeader::bodyPart - message" << endl;
+ return nestedMessage->nestedParts.at (_str.toULong () - 1);
+ }
+ kdDebug(7116) << "mimeHeader::bodyPart - mixed" << endl;
+ return nestedParts.at (_str.toULong () - 1);
+}
+
+void mimeHeader::serialize(TQDataStream& stream)
+{
+ int nestedcount = nestedParts.count();
+ if (nestedParts.isEmpty() && nestedMessage)
+ nestedcount = 1;
+ stream << nestedcount << contentType << TQString (getTypeParm ("name")) << _contentDescription
+ << _contentDisposition << contentEncoding << contentLength << partSpecifier;
+ // serialize nested message
+ if (nestedMessage)
+ nestedMessage->serialize(stream);
+
+ // serialize nested parts
+ if (!nestedParts.isEmpty())
+ {
+ TQPtrListIterator < mimeHeader > it(nestedParts);
+ mimeHeader* part;
+ while ( (part = it.current()) != 0 )
+ {
+ ++it;
+ part->serialize(stream);
+ }
+ }
+}
+
+#ifdef KMAIL_COMPATIBLE
+// compatibility subroutines
+TQString
+mimeHeader::bodyDecoded ()
+{
+ kdDebug(7116) << "mimeHeader::bodyDecoded" << endl;
+ TQByteArray temp;
+
+ temp = bodyDecodedBinary ();
+ return TQString::fromLatin1 (temp.data (), temp.count ());
+}
+
+TQByteArray
+mimeHeader::bodyDecodedBinary ()
+{
+ TQByteArray retVal;
+
+ if (contentEncoding.find ("quoted-printable", 0, false) == 0)
+ retVal = KCodecs::quotedPrintableDecode(postMultipartBody);
+ else if (contentEncoding.find ("base64", 0, false) == 0)
+ KCodecs::base64Decode(postMultipartBody, retVal);
+ else retVal = postMultipartBody;
+
+ kdDebug(7116) << "mimeHeader::bodyDecodedBinary - size is " << retVal.size () << endl;
+ return retVal;
+}
+
+void
+mimeHeader::setBodyEncodedBinary (const TQByteArray & _arr)
+{
+ setBodyEncoded (_arr);
+}
+
+void
+mimeHeader::setBodyEncoded (const TQByteArray & _arr)
+{
+ TQByteArray setVal;
+
+ kdDebug(7116) << "mimeHeader::setBodyEncoded - in size " << _arr.size () << endl;
+ if (contentEncoding.find ("quoted-printable", 0, false) == 0)
+ setVal = KCodecs::quotedPrintableEncode(_arr);
+ else if (contentEncoding.find ("base64", 0, false) == 0)
+ KCodecs::base64Encode(_arr, setVal);
+ else
+ setVal.duplicate (_arr);
+ kdDebug(7116) << "mimeHeader::setBodyEncoded - out size " << setVal.size () << endl;
+
+ postMultipartBody.duplicate (setVal);
+ kdDebug(7116) << "mimeHeader::setBodyEncoded - out size " << postMultipartBody.size () << endl;
+}
+
+TQString
+mimeHeader::iconName ()
+{
+ TQString fileName;
+
+ // FIXME: bug? Why throw away this data?
+ fileName =
+ KMimeType::mimeType (contentType.lower ())->icon (TQString(), false);
+ fileName =
+ TDEGlobal::instance ()->iconLoader ()->iconPath (fileName, TDEIcon::Desktop);
+// if (fileName.isEmpty())
+// fileName = TDEGlobal::instance()->iconLoader()->iconPath( "unknown", TDEIcon::Desktop );
+ return fileName;
+}
+
+void
+mimeHeader::setNestedMessage (mailHeader * inPart, bool destroy)
+{
+// if(nestedMessage && destroy) delete nestedMessage;
+ nestedMessage = inPart;
+}
+
+TQString
+mimeHeader::headerAsString ()
+{
+ mimeIOTQString myIO;
+
+ outputHeader (myIO);
+ return myIO.getString ();
+}
+
+TQString
+mimeHeader::magicSetType (bool aAutoDecode)
+{
+ TQString mimetype;
+ TQByteArray body;
+ KMimeMagicResult *result;
+
+ KMimeMagic::self ()->setFollowLinks (TRUE); // is it necessary ?
+
+ if (aAutoDecode)
+ body = bodyDecodedBinary ();
+ else
+ body = postMultipartBody;
+
+ result = KMimeMagic::self ()->findBufferType (body);
+ mimetype = result->mimeType ();
+ contentType = mimetype;
+ return mimetype;
+}
+#endif
diff --git a/tdeioslave/imap4/mimeio.cc b/tdeioslave/imap4/mimeio.cc
deleted file mode 100644
index 757c11a4..00000000
--- a/tdeioslave/imap4/mimeio.cc
+++ /dev/null
@@ -1,188 +0,0 @@
-/***************************************************************************
- mimeio.cc - description
- -------------------
- begin : Wed Oct 25 2000
- copyright : (C) 2000 by Sven Carstens
- email : s.carstens@gmx.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-
-#include <iostream>
-using namespace std;
-
-#include "mimeio.h"
-
-mimeIO::mimeIO ()
-{
- theCRLF = "\r\n";
- crlfLen = 2;
-}
-
-mimeIO::~mimeIO ()
-{
-}
-
-int
-mimeIO::inputLine (TQCString & aLine)
-{
- char input;
-
- aLine = (const char *) NULL;
- while (inputChar (input))
- {
- aLine += input;
- if (input == '\n')
- break;
- }
-// cout << aLine.length() << " - " << aLine;
- return aLine.length ();
-}
-
-int
-mimeIO::outputLine (const TQCString & aLine, int len)
-{
- int i;
-
- if (len == -1) {
- len = aLine.length();
- }
- int start = len;
- for (i = 0; i < start; i++)
- if (!outputChar (aLine[i]))
- break;
- return i;
-}
-
-int
-mimeIO::outputMimeLine (const TQCString & inLine)
-{
- int retVal = 0;
- TQCString aLine = inLine;
- int len = inLine.length();
-
- int theLF = aLine.findRev ('\n');
- if (theLF == len - 1 && theLF != -1)
- {
- //we have a trailing LF, now check for CR
- if (aLine[theLF - 1] == '\r')
- theLF--;
- //truncate the line
- aLine.truncate(theLF);
- len = theLF;
- theLF = -1;
- }
- //now truncate the line
- {
- int start, end, offset;
- start = 0;
- end = aLine.find ('\n', start);
- while (end >= 0)
- {
- offset = 1;
- if (end && aLine[end - 1] == '\r')
- {
- offset++;
- end--;
- }
- outputLine (aLine.mid (start, end - start) + theCRLF, end - start + crlfLen);
- start = end + offset;
- end = aLine.find ('\n', start);
- }
- outputLine (aLine.mid (start, len - start) + theCRLF, len - start + crlfLen);
- }
- return retVal;
-}
-
-int
-mimeIO::inputChar (char &aChar)
-{
- if (cin.eof ())
- {
-// cout << "EOF" << endl;
- return 0;
- }
- cin.get (aChar);
- return 1;
-}
-
-int
-mimeIO::outputChar (char aChar)
-{
- cout << aChar;
- return 1;
-}
-
-void
-mimeIO::setCRLF (const char *aCRLF)
-{
- theCRLF = aCRLF;
- crlfLen = strlen(aCRLF);
-}
-
-mimeIOTQFile::mimeIOTQFile (const TQString & aName):
-mimeIO (),
-myFile (aName)
-{
- myFile.open (IO_ReadOnly);
-}
-
-mimeIOTQFile::~mimeIOTQFile ()
-{
- myFile.close ();
-}
-
-int
-mimeIOTQFile::outputLine (const TQCString &, int)
-{
- return 0;
-}
-
-int
-mimeIOTQFile::inputLine (TQCString & data)
-{
- data.resize( 1024 );
- myFile.readLine (data.data(), 1024);
-
- return data.length ();
-}
-
-mimeIOTQString::mimeIOTQString ()
-{
-}
-
-mimeIOTQString::~mimeIOTQString ()
-{
-}
-
-int
-mimeIOTQString::outputLine (const TQCString & _str, int len)
-{
- if (len == -1) {
- len = _str.length();
- }
- theString += _str;
- return len;
-}
-
-int
-mimeIOTQString::inputLine (TQCString & _str)
-{
- if (theString.isEmpty ())
- return 0;
-
- int i = theString.find ('\n');
-
- if (i == -1)
- return 0;
- _str = theString.left (i + 1).latin1 ();
- theString = theString.right (theString.length () - i - 1);
- return _str.length ();
-}
diff --git a/tdeioslave/imap4/mimeio.cpp b/tdeioslave/imap4/mimeio.cpp
new file mode 100644
index 00000000..a3315c26
--- /dev/null
+++ b/tdeioslave/imap4/mimeio.cpp
@@ -0,0 +1,188 @@
+/***************************************************************************
+ mimeio.cpp - description
+ -------------------
+ begin : Wed Oct 25 2000
+ copyright : (C) 2000 by Sven Carstens
+ email : s.carstens@gmx.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <iostream>
+using namespace std;
+
+#include "mimeio.h"
+
+mimeIO::mimeIO ()
+{
+ theCRLF = "\r\n";
+ crlfLen = 2;
+}
+
+mimeIO::~mimeIO ()
+{
+}
+
+int
+mimeIO::inputLine (TQCString & aLine)
+{
+ char input;
+
+ aLine = (const char *) NULL;
+ while (inputChar (input))
+ {
+ aLine += input;
+ if (input == '\n')
+ break;
+ }
+// cout << aLine.length() << " - " << aLine;
+ return aLine.length ();
+}
+
+int
+mimeIO::outputLine (const TQCString & aLine, int len)
+{
+ int i;
+
+ if (len == -1) {
+ len = aLine.length();
+ }
+ int start = len;
+ for (i = 0; i < start; i++)
+ if (!outputChar (aLine[i]))
+ break;
+ return i;
+}
+
+int
+mimeIO::outputMimeLine (const TQCString & inLine)
+{
+ int retVal = 0;
+ TQCString aLine = inLine;
+ int len = inLine.length();
+
+ int theLF = aLine.findRev ('\n');
+ if (theLF == len - 1 && theLF != -1)
+ {
+ //we have a trailing LF, now check for CR
+ if (aLine[theLF - 1] == '\r')
+ theLF--;
+ //truncate the line
+ aLine.truncate(theLF);
+ len = theLF;
+ theLF = -1;
+ }
+ //now truncate the line
+ {
+ int start, end, offset;
+ start = 0;
+ end = aLine.find ('\n', start);
+ while (end >= 0)
+ {
+ offset = 1;
+ if (end && aLine[end - 1] == '\r')
+ {
+ offset++;
+ end--;
+ }
+ outputLine (aLine.mid (start, end - start) + theCRLF, end - start + crlfLen);
+ start = end + offset;
+ end = aLine.find ('\n', start);
+ }
+ outputLine (aLine.mid (start, len - start) + theCRLF, len - start + crlfLen);
+ }
+ return retVal;
+}
+
+int
+mimeIO::inputChar (char &aChar)
+{
+ if (cin.eof ())
+ {
+// cout << "EOF" << endl;
+ return 0;
+ }
+ cin.get (aChar);
+ return 1;
+}
+
+int
+mimeIO::outputChar (char aChar)
+{
+ cout << aChar;
+ return 1;
+}
+
+void
+mimeIO::setCRLF (const char *aCRLF)
+{
+ theCRLF = aCRLF;
+ crlfLen = strlen(aCRLF);
+}
+
+mimeIOTQFile::mimeIOTQFile (const TQString & aName):
+mimeIO (),
+myFile (aName)
+{
+ myFile.open (IO_ReadOnly);
+}
+
+mimeIOTQFile::~mimeIOTQFile ()
+{
+ myFile.close ();
+}
+
+int
+mimeIOTQFile::outputLine (const TQCString &, int)
+{
+ return 0;
+}
+
+int
+mimeIOTQFile::inputLine (TQCString & data)
+{
+ data.resize( 1024 );
+ myFile.readLine (data.data(), 1024);
+
+ return data.length ();
+}
+
+mimeIOTQString::mimeIOTQString ()
+{
+}
+
+mimeIOTQString::~mimeIOTQString ()
+{
+}
+
+int
+mimeIOTQString::outputLine (const TQCString & _str, int len)
+{
+ if (len == -1) {
+ len = _str.length();
+ }
+ theString += _str;
+ return len;
+}
+
+int
+mimeIOTQString::inputLine (TQCString & _str)
+{
+ if (theString.isEmpty ())
+ return 0;
+
+ int i = theString.find ('\n');
+
+ if (i == -1)
+ return 0;
+ _str = theString.left (i + 1).latin1 ();
+ theString = theString.right (theString.length () - i - 1);
+ return _str.length ();
+}
diff --git a/tdeioslave/imap4/rfcdecoder.cc b/tdeioslave/imap4/rfcdecoder.cc
deleted file mode 100644
index 41a50ec1..00000000
--- a/tdeioslave/imap4/rfcdecoder.cc
+++ /dev/null
@@ -1,668 +0,0 @@
-/**********************************************************************
- *
- * rfcdecoder.cc - handler for various rfc/mime encodings
- * Copyright (C) 2000 s.carstens@gmx.de
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Send comments and bug fixes to s.carstens@gmx.de
- *
- *********************************************************************/
-#include "rfcdecoder.h"
-
-#include <ctype.h>
-#include <sys/types.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <tqtextcodec.h>
-#include <tqbuffer.h>
-#include <tqregexp.h>
-#include <kmdcodec.h>
-
-// This part taken from rfc 2192 IMAP URL Scheme. C. Newman. September 1997.
-// adapted to QT-Toolkit by Sven Carstens <s.carstens@gmx.de> 2000
-
-static unsigned char base64chars[] =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,";
-#define UNDEFINED 64
-#define MAXLINE 76
-
-/* UTF16 definitions */
-#define UTF16MASK 0x03FFUL
-#define UTF16SHIFT 10
-#define UTF16BASE 0x10000UL
-#define UTF16HIGHSTART 0xD800UL
-#define UTF16HIGHEND 0xDBFFUL
-#define UTF16LOSTART 0xDC00UL
-#define UTF16LOEND 0xDFFFUL
-
-/* Convert an IMAP mailbox to a Unicode path
- */
-TQString rfcDecoder::fromIMAP (const TQString & inSrc)
-{
- unsigned char c, i, bitcount;
- unsigned long ucs4, utf16, bitbuf;
- unsigned char base64[256], utf8[6];
- unsigned long srcPtr = 0;
- TQCString dst;
- TQCString src = inSrc.ascii ();
- uint srcLen = inSrc.length();
-
- /* initialize modified base64 decoding table */
- memset (base64, UNDEFINED, sizeof (base64));
- for (i = 0; i < sizeof (base64chars); ++i)
- {
- base64[(int)base64chars[i]] = i;
- }
-
- /* loop until end of string */
- while (srcPtr < srcLen)
- {
- c = src[srcPtr++];
- /* deal with literal characters and &- */
- if (c != '&' || src[srcPtr] == '-')
- {
- /* encode literally */
- dst += c;
- /* skip over the '-' if this is an &- sequence */
- if (c == '&')
- srcPtr++;
- }
- else
- {
- /* convert modified UTF-7 -> UTF-16 -> UCS-4 -> UTF-8 -> HEX */
- bitbuf = 0;
- bitcount = 0;
- ucs4 = 0;
- while ((c = base64[(unsigned char) src[srcPtr]]) != UNDEFINED)
- {
- ++srcPtr;
- bitbuf = (bitbuf << 6) | c;
- bitcount += 6;
- /* enough bits for a UTF-16 character? */
- if (bitcount >= 16)
- {
- bitcount -= 16;
- utf16 = (bitcount ? bitbuf >> bitcount : bitbuf) & 0xffff;
- /* convert UTF16 to UCS4 */
- if (utf16 >= UTF16HIGHSTART && utf16 <= UTF16HIGHEND)
- {
- ucs4 = (utf16 - UTF16HIGHSTART) << UTF16SHIFT;
- continue;
- }
- else if (utf16 >= UTF16LOSTART && utf16 <= UTF16LOEND)
- {
- ucs4 += utf16 - UTF16LOSTART + UTF16BASE;
- }
- else
- {
- ucs4 = utf16;
- }
- /* convert UTF-16 range of UCS4 to UTF-8 */
- if (ucs4 <= 0x7fUL)
- {
- utf8[0] = ucs4;
- i = 1;
- }
- else if (ucs4 <= 0x7ffUL)
- {
- utf8[0] = 0xc0 | (ucs4 >> 6);
- utf8[1] = 0x80 | (ucs4 & 0x3f);
- i = 2;
- }
- else if (ucs4 <= 0xffffUL)
- {
- utf8[0] = 0xe0 | (ucs4 >> 12);
- utf8[1] = 0x80 | ((ucs4 >> 6) & 0x3f);
- utf8[2] = 0x80 | (ucs4 & 0x3f);
- i = 3;
- }
- else
- {
- utf8[0] = 0xf0 | (ucs4 >> 18);
- utf8[1] = 0x80 | ((ucs4 >> 12) & 0x3f);
- utf8[2] = 0x80 | ((ucs4 >> 6) & 0x3f);
- utf8[3] = 0x80 | (ucs4 & 0x3f);
- i = 4;
- }
- /* copy it */
- for (c = 0; c < i; ++c)
- {
- dst += utf8[c];
- }
- }
- }
- /* skip over trailing '-' in modified UTF-7 encoding */
- if (src[srcPtr] == '-')
- ++srcPtr;
- }
- }
- return TQString::fromUtf8 (dst.data ());
-}
-
-/* replace " with \" and \ with \\ " and \ characters */
-TQString rfcDecoder::quoteIMAP(const TQString &src)
-{
- uint len = src.length();
- TQString result;
- result.reserve(2 * len);
- for (unsigned int i = 0; i < len; i++)
- {
- if (src[i] == '"' || src[i] == '\\')
- result += '\\';
- result += src[i];
- }
- //result.squeeze(); - unnecessary and slow
- return result;
-}
-
-/* Convert Unicode path to modified UTF-7 IMAP mailbox
- */
-TQString rfcDecoder::toIMAP (const TQString & inSrc)
-{
- unsigned int utf8pos, utf8total, c, utf7mode, bitstogo, utf16flag;
- unsigned long ucs4, bitbuf;
- TQCString src = inSrc.utf8 ();
- TQString dst;
-
- ulong srcPtr = 0;
- utf7mode = 0;
- utf8total = 0;
- bitstogo = 0;
- utf8pos = 0;
- bitbuf = 0;
- ucs4 = 0;
- while (srcPtr < src.length ())
- {
- c = (unsigned char) src[srcPtr++];
- /* normal character? */
- if (c >= ' ' && c <= '~')
- {
- /* switch out of UTF-7 mode */
- if (utf7mode)
- {
- if (bitstogo)
- {
- dst += base64chars[(bitbuf << (6 - bitstogo)) & 0x3F];
- bitstogo = 0;
- }
- dst += '-';
- utf7mode = 0;
- }
- dst += c;
- /* encode '&' as '&-' */
- if (c == '&')
- {
- dst += '-';
- }
- continue;
- }
- /* switch to UTF-7 mode */
- if (!utf7mode)
- {
- dst += '&';
- utf7mode = 1;
- }
- /* Encode US-ASCII characters as themselves */
- if (c < 0x80)
- {
- ucs4 = c;
- utf8total = 1;
- }
- else if (utf8total)
- {
- /* save UTF8 bits into UCS4 */
- ucs4 = (ucs4 << 6) | (c & 0x3FUL);
- if (++utf8pos < utf8total)
- {
- continue;
- }
- }
- else
- {
- utf8pos = 1;
- if (c < 0xE0)
- {
- utf8total = 2;
- ucs4 = c & 0x1F;
- }
- else if (c < 0xF0)
- {
- utf8total = 3;
- ucs4 = c & 0x0F;
- }
- else
- {
- /* NOTE: can't convert UTF8 sequences longer than 4 */
- utf8total = 4;
- ucs4 = c & 0x03;
- }
- continue;
- }
- /* loop to split ucs4 into two utf16 chars if necessary */
- utf8total = 0;
- do
- {
- if (ucs4 >= UTF16BASE)
- {
- ucs4 -= UTF16BASE;
- bitbuf = (bitbuf << 16) | ((ucs4 >> UTF16SHIFT) + UTF16HIGHSTART);
- ucs4 = (ucs4 & UTF16MASK) + UTF16LOSTART;
- utf16flag = 1;
- }
- else
- {
- bitbuf = (bitbuf << 16) | ucs4;
- utf16flag = 0;
- }
- bitstogo += 16;
- /* spew out base64 */
- while (bitstogo >= 6)
- {
- bitstogo -= 6;
- dst += base64chars[(bitstogo ? (bitbuf >> bitstogo) : bitbuf) & 0x3F];
- }
- }
- while (utf16flag);
- }
- /* if in UTF-7 mode, finish in ASCII */
- if (utf7mode)
- {
- if (bitstogo)
- {
- dst += base64chars[(bitbuf << (6 - bitstogo)) & 0x3F];
- }
- dst += '-';
- }
- return quoteIMAP(dst);
-}
-
-//-----------------------------------------------------------------------------
-TQString rfcDecoder::decodeQuoting(const TQString &aStr)
-{
- TQString result;
- unsigned int strLength(aStr.length());
- for (unsigned int i = 0; i < strLength ; i++)
- {
- if (aStr[i] == "\\") i++;
- result += aStr[i];
- }
- return result;
-}
-
-//-----------------------------------------------------------------------------
-TQTextCodec *
-rfcDecoder::codecForName (const TQString & _str)
-{
- if (_str.isEmpty ())
- return NULL;
- return TQTextCodec::codecForName (_str.lower ().
- replace ("windows", "cp").latin1 ());
-}
-
-//-----------------------------------------------------------------------------
-const TQString
-rfcDecoder::decodeRFC2047String (const TQString & _str)
-{
- TQString throw_away;
-
- return decodeRFC2047String (_str, throw_away);
-}
-
-//-----------------------------------------------------------------------------
-const TQString
-rfcDecoder::decodeRFC2047String (const TQString & _str, TQString & charset)
-{
- TQString throw_away;
-
- return decodeRFC2047String (_str, charset, throw_away);
-}
-
-//-----------------------------------------------------------------------------
-const TQString
-rfcDecoder::decodeRFC2047String (const TQString & _str, TQString & charset,
- TQString & language)
-{
- //do we have a rfc string
- if (_str.find("=?") < 0)
- return _str;
-
- TQCString aStr = _str.ascii (); // TQString.length() means Unicode chars
- TQCString result;
- char *pos, *beg, *end, *mid = NULL;
- TQCString str;
- char encoding = 0, ch;
- bool valid;
- const int maxLen = 200;
- int i;
-
-// result.truncate(aStr.length());
- for (pos = aStr.data (); *pos; pos++)
- {
- if (pos[0] != '=' || pos[1] != '?')
- {
- result += *pos;
- continue;
- }
- beg = pos + 2;
- end = beg;
- valid = TRUE;
- // parse charset name
- for (i = 2, pos += 2;
- i < maxLen && (*pos != '?' && (ispunct (*pos) || isalnum (*pos)));
- i++)
- pos++;
- if (*pos != '?' || i < 4 || i >= maxLen)
- valid = FALSE;
- else
- {
- charset = TQCString (beg, i - 1); // -2 + 1 for the zero
- int pt = charset.findRev('*');
- if (pt != -1)
- {
- // save language for later usage
- language = charset.right (charset.length () - pt - 1);
-
- // tie off language as defined in rfc2047
- charset.truncate(pt);
- }
- // get encoding and check delimiting question marks
- encoding = toupper (pos[1]);
- if (pos[2] != '?'
- || (encoding != 'Q' && encoding != 'B' && encoding != 'q'
- && encoding != 'b'))
- valid = FALSE;
- pos += 3;
- i += 3;
-// kdDebug(7116) << "rfcDecoder::decodeRFC2047String - charset " << charset << " - language " << language << " - '" << pos << "'" << endl;
- }
- if (valid)
- {
- mid = pos;
- // search for end of encoded part
- while (i < maxLen && *pos && !(*pos == '?' && *(pos + 1) == '='))
- {
- i++;
- pos++;
- }
- end = pos + 2; //end now points to the first char after the encoded string
- if (i >= maxLen || !*pos)
- valid = FALSE;
- }
- if (valid)
- {
- ch = *pos;
- *pos = '\0';
- str = TQCString (mid).left ((int) (mid - pos - 1));
- if (encoding == 'Q')
- {
- // decode quoted printable text
- for (i = str.length () - 1; i >= 0; i--)
- if (str[i] == '_')
- str[i] = ' ';
-// kdDebug(7116) << "rfcDecoder::decodeRFC2047String - before QP '" << str << "'" << endl;
-
- str = KCodecs::quotedPrintableDecode(str);
-// kdDebug(7116) << "rfcDecoder::decodeRFC2047String - after QP '" << str << "'" << endl;
- }
- else
- {
- // decode base64 text
- str = KCodecs::base64Decode(str);
- }
- *pos = ch;
- int len = str.length();
- for (i = 0; i < len; i++)
- result += (char) (TQChar) str[i];
-
- pos = end - 1;
- }
- else
- {
-// kdDebug(7116) << "rfcDecoder::decodeRFC2047String - invalid" << endl;
- //result += "=?";
- //pos = beg -1; // because pos gets increased shortly afterwards
- pos = beg - 2;
- result += *pos++;
- result += *pos;
- }
- }
- if (!charset.isEmpty ())
- {
- TQTextCodec *aCodec = codecForName (charset.ascii ());
- if (aCodec)
- {
-// kdDebug(7116) << "Codec is " << aCodec->name() << endl;
- return aCodec->toUnicode (result);
- }
- }
- return result;
-}
-
-
-//-----------------------------------------------------------------------------
-const char especials[17] = "()<>@,;:\"/[]?.= ";
-
-const TQString
-rfcDecoder::encodeRFC2047String (const TQString & _str)
-{
- if (_str.isEmpty ())
- return _str;
- const signed char *latin = reinterpret_cast<const signed char *>(_str.latin1()), *l, *start, *stop;
- char hexcode;
- int numQuotes, i;
- int rptr = 0;
- // My stats show this number results in 12 resize() out of 73,000
- int resultLen = 3 * _str.length() / 2;
- TQCString result(resultLen);
-
- while (*latin)
- {
- l = latin;
- start = latin;
- while (*l)
- {
- if (*l == 32)
- start = l + 1;
- if (*l < 0)
- break;
- l++;
- }
- if (*l)
- {
- numQuotes = 1;
- while (*l)
- {
- /* The encoded word must be limited to 75 character */
- for (i = 0; i < 16; i++)
- if (*l == especials[i])
- numQuotes++;
- if (*l < 0)
- numQuotes++;
- /* Stop after 58 = 75 - 17 characters or at "<user@host..." */
- if (l - start + 2 * numQuotes >= 58 || *l == 60)
- break;
- l++;
- }
- if (*l)
- {
- stop = l - 1;
- while (stop >= start && *stop != 32)
- stop--;
- if (stop <= start)
- stop = l;
- }
- else
- stop = l;
- if (resultLen - rptr - 1 <= start - latin + 1 + 16 /* =?iso-88... */) {
- resultLen += (start - latin + 1) * 2 + 20; // more space
- result.resize(resultLen);
- }
- while (latin < start)
- {
- result[rptr++] = *latin;
- latin++;
- }
- strcpy(&result[rptr], "=?iso-8859-1?q?"); rptr += 15;
- if (resultLen - rptr - 1 <= 3*(stop - latin + 1)) {
- resultLen += (stop - latin + 1) * 4 + 20; // more space
- result.resize(resultLen);
- }
- while (latin < stop) // can add up to 3 chars/iteration
- {
- numQuotes = 0;
- for (i = 0; i < 16; i++)
- if (*latin == especials[i])
- numQuotes = 1;
- if (*latin < 0)
- numQuotes = 1;
- if (numQuotes)
- {
- result[rptr++] = '=';
- hexcode = ((*latin & 0xF0) >> 4) + 48;
- if (hexcode >= 58)
- hexcode += 7;
- result[rptr++] = hexcode;
- hexcode = (*latin & 0x0F) + 48;
- if (hexcode >= 58)
- hexcode += 7;
- result[rptr++] = hexcode;
- }
- else
- {
- result[rptr++] = *latin;
- }
- latin++;
- }
- result[rptr++] = '?';
- result[rptr++] = '=';
- }
- else
- {
- while (*latin)
- {
- if (rptr == resultLen - 1) {
- resultLen += 30;
- result.resize(resultLen);
- }
- result[rptr++] = *latin;
- latin++;
- }
- }
- }
- result[rptr] = 0;
- //free (latinStart);
- return result;
-}
-
-
-//-----------------------------------------------------------------------------
-const TQString
-rfcDecoder::encodeRFC2231String (const TQString & _str)
-{
- if (_str.isEmpty ())
- return _str;
- signed char *latin = (signed char *) calloc (1, _str.length () + 1);
- char *latin_us = (char *) latin;
- strcpy (latin_us, _str.latin1 ());
- signed char *l = latin;
- char hexcode;
- int i;
- bool quote;
- while (*l)
- {
- if (*l < 0)
- break;
- l++;
- }
- if (!*l) {
- free(latin);
- return _str;
- }
- TQCString result;
- l = latin;
- while (*l)
- {
- quote = *l < 0;
- for (i = 0; i < 16; i++)
- if (*l == especials[i])
- quote = true;
- if (quote)
- {
- result += "%";
- hexcode = ((*l & 0xF0) >> 4) + 48;
- if (hexcode >= 58)
- hexcode += 7;
- result += hexcode;
- hexcode = (*l & 0x0F) + 48;
- if (hexcode >= 58)
- hexcode += 7;
- result += hexcode;
- }
- else
- {
- result += *l;
- }
- l++;
- }
- free (latin);
- return result;
-}
-
-
-//-----------------------------------------------------------------------------
-const TQString
-rfcDecoder::decodeRFC2231String (const TQString & _str)
-{
- int p = _str.find ('\'');
-
- //see if it is an rfc string
- if (p < 0)
- return _str;
-
- int l = _str.findRev ('\'');
-
- //second is language
- if (p >= l)
- return _str;
-
- //first is charset or empty
- TQString charset = _str.left (p);
- TQString st = _str.mid (l + 1);
- TQString language = _str.mid (p + 1, l - p - 1);
-
- //kdDebug(7116) << "Charset: " << charset << " Language: " << language << endl;
-
- char ch, ch2;
- p = 0;
- while (p < (int) st.length ())
- {
- if (st.at (p) == 37)
- {
- ch = st.at (p + 1).latin1 () - 48;
- if (ch > 16)
- ch -= 7;
- ch2 = st.at (p + 2).latin1 () - 48;
- if (ch2 > 16)
- ch2 -= 7;
- st.at (p) = ch * 16 + ch2;
- st.remove (p + 1, 2);
- }
- p++;
- }
- return st;
-}
diff --git a/tdeioslave/imap4/rfcdecoder.cpp b/tdeioslave/imap4/rfcdecoder.cpp
new file mode 100644
index 00000000..36111bf1
--- /dev/null
+++ b/tdeioslave/imap4/rfcdecoder.cpp
@@ -0,0 +1,668 @@
+/**********************************************************************
+ *
+ * rfcdecoder.cpp - handler for various rfc/mime encodings
+ * Copyright (C) 2000 s.carstens@gmx.de
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Send comments and bug fixes to s.carstens@gmx.de
+ *
+ *********************************************************************/
+#include "rfcdecoder.h"
+
+#include <ctype.h>
+#include <sys/types.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <tqtextcodec.h>
+#include <tqbuffer.h>
+#include <tqregexp.h>
+#include <kmdcodec.h>
+
+// This part taken from rfc 2192 IMAP URL Scheme. C. Newman. September 1997.
+// adapted to QT-Toolkit by Sven Carstens <s.carstens@gmx.de> 2000
+
+static unsigned char base64chars[] =
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,";
+#define UNDEFINED 64
+#define MAXLINE 76
+
+/* UTF16 definitions */
+#define UTF16MASK 0x03FFUL
+#define UTF16SHIFT 10
+#define UTF16BASE 0x10000UL
+#define UTF16HIGHSTART 0xD800UL
+#define UTF16HIGHEND 0xDBFFUL
+#define UTF16LOSTART 0xDC00UL
+#define UTF16LOEND 0xDFFFUL
+
+/* Convert an IMAP mailbox to a Unicode path
+ */
+TQString rfcDecoder::fromIMAP (const TQString & inSrc)
+{
+ unsigned char c, i, bitcount;
+ unsigned long ucs4, utf16, bitbuf;
+ unsigned char base64[256], utf8[6];
+ unsigned long srcPtr = 0;
+ TQCString dst;
+ TQCString src = inSrc.ascii ();
+ uint srcLen = inSrc.length();
+
+ /* initialize modified base64 decoding table */
+ memset (base64, UNDEFINED, sizeof (base64));
+ for (i = 0; i < sizeof (base64chars); ++i)
+ {
+ base64[(int)base64chars[i]] = i;
+ }
+
+ /* loop until end of string */
+ while (srcPtr < srcLen)
+ {
+ c = src[srcPtr++];
+ /* deal with literal characters and &- */
+ if (c != '&' || src[srcPtr] == '-')
+ {
+ /* encode literally */
+ dst += c;
+ /* skip over the '-' if this is an &- sequence */
+ if (c == '&')
+ srcPtr++;
+ }
+ else
+ {
+ /* convert modified UTF-7 -> UTF-16 -> UCS-4 -> UTF-8 -> HEX */
+ bitbuf = 0;
+ bitcount = 0;
+ ucs4 = 0;
+ while ((c = base64[(unsigned char) src[srcPtr]]) != UNDEFINED)
+ {
+ ++srcPtr;
+ bitbuf = (bitbuf << 6) | c;
+ bitcount += 6;
+ /* enough bits for a UTF-16 character? */
+ if (bitcount >= 16)
+ {
+ bitcount -= 16;
+ utf16 = (bitcount ? bitbuf >> bitcount : bitbuf) & 0xffff;
+ /* convert UTF16 to UCS4 */
+ if (utf16 >= UTF16HIGHSTART && utf16 <= UTF16HIGHEND)
+ {
+ ucs4 = (utf16 - UTF16HIGHSTART) << UTF16SHIFT;
+ continue;
+ }
+ else if (utf16 >= UTF16LOSTART && utf16 <= UTF16LOEND)
+ {
+ ucs4 += utf16 - UTF16LOSTART + UTF16BASE;
+ }
+ else
+ {
+ ucs4 = utf16;
+ }
+ /* convert UTF-16 range of UCS4 to UTF-8 */
+ if (ucs4 <= 0x7fUL)
+ {
+ utf8[0] = ucs4;
+ i = 1;
+ }
+ else if (ucs4 <= 0x7ffUL)
+ {
+ utf8[0] = 0xc0 | (ucs4 >> 6);
+ utf8[1] = 0x80 | (ucs4 & 0x3f);
+ i = 2;
+ }
+ else if (ucs4 <= 0xffffUL)
+ {
+ utf8[0] = 0xe0 | (ucs4 >> 12);
+ utf8[1] = 0x80 | ((ucs4 >> 6) & 0x3f);
+ utf8[2] = 0x80 | (ucs4 & 0x3f);
+ i = 3;
+ }
+ else
+ {
+ utf8[0] = 0xf0 | (ucs4 >> 18);
+ utf8[1] = 0x80 | ((ucs4 >> 12) & 0x3f);
+ utf8[2] = 0x80 | ((ucs4 >> 6) & 0x3f);
+ utf8[3] = 0x80 | (ucs4 & 0x3f);
+ i = 4;
+ }
+ /* copy it */
+ for (c = 0; c < i; ++c)
+ {
+ dst += utf8[c];
+ }
+ }
+ }
+ /* skip over trailing '-' in modified UTF-7 encoding */
+ if (src[srcPtr] == '-')
+ ++srcPtr;
+ }
+ }
+ return TQString::fromUtf8 (dst.data ());
+}
+
+/* replace " with \" and \ with \\ " and \ characters */
+TQString rfcDecoder::quoteIMAP(const TQString &src)
+{
+ uint len = src.length();
+ TQString result;
+ result.reserve(2 * len);
+ for (unsigned int i = 0; i < len; i++)
+ {
+ if (src[i] == '"' || src[i] == '\\')
+ result += '\\';
+ result += src[i];
+ }
+ //result.squeeze(); - unnecessary and slow
+ return result;
+}
+
+/* Convert Unicode path to modified UTF-7 IMAP mailbox
+ */
+TQString rfcDecoder::toIMAP (const TQString & inSrc)
+{
+ unsigned int utf8pos, utf8total, c, utf7mode, bitstogo, utf16flag;
+ unsigned long ucs4, bitbuf;
+ TQCString src = inSrc.utf8 ();
+ TQString dst;
+
+ ulong srcPtr = 0;
+ utf7mode = 0;
+ utf8total = 0;
+ bitstogo = 0;
+ utf8pos = 0;
+ bitbuf = 0;
+ ucs4 = 0;
+ while (srcPtr < src.length ())
+ {
+ c = (unsigned char) src[srcPtr++];
+ /* normal character? */
+ if (c >= ' ' && c <= '~')
+ {
+ /* switch out of UTF-7 mode */
+ if (utf7mode)
+ {
+ if (bitstogo)
+ {
+ dst += base64chars[(bitbuf << (6 - bitstogo)) & 0x3F];
+ bitstogo = 0;
+ }
+ dst += '-';
+ utf7mode = 0;
+ }
+ dst += c;
+ /* encode '&' as '&-' */
+ if (c == '&')
+ {
+ dst += '-';
+ }
+ continue;
+ }
+ /* switch to UTF-7 mode */
+ if (!utf7mode)
+ {
+ dst += '&';
+ utf7mode = 1;
+ }
+ /* Encode US-ASCII characters as themselves */
+ if (c < 0x80)
+ {
+ ucs4 = c;
+ utf8total = 1;
+ }
+ else if (utf8total)
+ {
+ /* save UTF8 bits into UCS4 */
+ ucs4 = (ucs4 << 6) | (c & 0x3FUL);
+ if (++utf8pos < utf8total)
+ {
+ continue;
+ }
+ }
+ else
+ {
+ utf8pos = 1;
+ if (c < 0xE0)
+ {
+ utf8total = 2;
+ ucs4 = c & 0x1F;
+ }
+ else if (c < 0xF0)
+ {
+ utf8total = 3;
+ ucs4 = c & 0x0F;
+ }
+ else
+ {
+ /* NOTE: can't convert UTF8 sequences longer than 4 */
+ utf8total = 4;
+ ucs4 = c & 0x03;
+ }
+ continue;
+ }
+ /* loop to split ucs4 into two utf16 chars if necessary */
+ utf8total = 0;
+ do
+ {
+ if (ucs4 >= UTF16BASE)
+ {
+ ucs4 -= UTF16BASE;
+ bitbuf = (bitbuf << 16) | ((ucs4 >> UTF16SHIFT) + UTF16HIGHSTART);
+ ucs4 = (ucs4 & UTF16MASK) + UTF16LOSTART;
+ utf16flag = 1;
+ }
+ else
+ {
+ bitbuf = (bitbuf << 16) | ucs4;
+ utf16flag = 0;
+ }
+ bitstogo += 16;
+ /* spew out base64 */
+ while (bitstogo >= 6)
+ {
+ bitstogo -= 6;
+ dst += base64chars[(bitstogo ? (bitbuf >> bitstogo) : bitbuf) & 0x3F];
+ }
+ }
+ while (utf16flag);
+ }
+ /* if in UTF-7 mode, finish in ASCII */
+ if (utf7mode)
+ {
+ if (bitstogo)
+ {
+ dst += base64chars[(bitbuf << (6 - bitstogo)) & 0x3F];
+ }
+ dst += '-';
+ }
+ return quoteIMAP(dst);
+}
+
+//-----------------------------------------------------------------------------
+TQString rfcDecoder::decodeQuoting(const TQString &aStr)
+{
+ TQString result;
+ unsigned int strLength(aStr.length());
+ for (unsigned int i = 0; i < strLength ; i++)
+ {
+ if (aStr[i] == "\\") i++;
+ result += aStr[i];
+ }
+ return result;
+}
+
+//-----------------------------------------------------------------------------
+TQTextCodec *
+rfcDecoder::codecForName (const TQString & _str)
+{
+ if (_str.isEmpty ())
+ return NULL;
+ return TQTextCodec::codecForName (_str.lower ().
+ replace ("windows", "cp").latin1 ());
+}
+
+//-----------------------------------------------------------------------------
+const TQString
+rfcDecoder::decodeRFC2047String (const TQString & _str)
+{
+ TQString throw_away;
+
+ return decodeRFC2047String (_str, throw_away);
+}
+
+//-----------------------------------------------------------------------------
+const TQString
+rfcDecoder::decodeRFC2047String (const TQString & _str, TQString & charset)
+{
+ TQString throw_away;
+
+ return decodeRFC2047String (_str, charset, throw_away);
+}
+
+//-----------------------------------------------------------------------------
+const TQString
+rfcDecoder::decodeRFC2047String (const TQString & _str, TQString & charset,
+ TQString & language)
+{
+ //do we have a rfc string
+ if (_str.find("=?") < 0)
+ return _str;
+
+ TQCString aStr = _str.ascii (); // TQString.length() means Unicode chars
+ TQCString result;
+ char *pos, *beg, *end, *mid = NULL;
+ TQCString str;
+ char encoding = 0, ch;
+ bool valid;
+ const int maxLen = 200;
+ int i;
+
+// result.truncate(aStr.length());
+ for (pos = aStr.data (); *pos; pos++)
+ {
+ if (pos[0] != '=' || pos[1] != '?')
+ {
+ result += *pos;
+ continue;
+ }
+ beg = pos + 2;
+ end = beg;
+ valid = TRUE;
+ // parse charset name
+ for (i = 2, pos += 2;
+ i < maxLen && (*pos != '?' && (ispunct (*pos) || isalnum (*pos)));
+ i++)
+ pos++;
+ if (*pos != '?' || i < 4 || i >= maxLen)
+ valid = FALSE;
+ else
+ {
+ charset = TQCString (beg, i - 1); // -2 + 1 for the zero
+ int pt = charset.findRev('*');
+ if (pt != -1)
+ {
+ // save language for later usage
+ language = charset.right (charset.length () - pt - 1);
+
+ // tie off language as defined in rfc2047
+ charset.truncate(pt);
+ }
+ // get encoding and check delimiting question marks
+ encoding = toupper (pos[1]);
+ if (pos[2] != '?'
+ || (encoding != 'Q' && encoding != 'B' && encoding != 'q'
+ && encoding != 'b'))
+ valid = FALSE;
+ pos += 3;
+ i += 3;
+// kdDebug(7116) << "rfcDecoder::decodeRFC2047String - charset " << charset << " - language " << language << " - '" << pos << "'" << endl;
+ }
+ if (valid)
+ {
+ mid = pos;
+ // search for end of encoded part
+ while (i < maxLen && *pos && !(*pos == '?' && *(pos + 1) == '='))
+ {
+ i++;
+ pos++;
+ }
+ end = pos + 2; //end now points to the first char after the encoded string
+ if (i >= maxLen || !*pos)
+ valid = FALSE;
+ }
+ if (valid)
+ {
+ ch = *pos;
+ *pos = '\0';
+ str = TQCString (mid).left ((int) (mid - pos - 1));
+ if (encoding == 'Q')
+ {
+ // decode quoted printable text
+ for (i = str.length () - 1; i >= 0; i--)
+ if (str[i] == '_')
+ str[i] = ' ';
+// kdDebug(7116) << "rfcDecoder::decodeRFC2047String - before QP '" << str << "'" << endl;
+
+ str = KCodecs::quotedPrintableDecode(str);
+// kdDebug(7116) << "rfcDecoder::decodeRFC2047String - after QP '" << str << "'" << endl;
+ }
+ else
+ {
+ // decode base64 text
+ str = KCodecs::base64Decode(str);
+ }
+ *pos = ch;
+ int len = str.length();
+ for (i = 0; i < len; i++)
+ result += (char) (TQChar) str[i];
+
+ pos = end - 1;
+ }
+ else
+ {
+// kdDebug(7116) << "rfcDecoder::decodeRFC2047String - invalid" << endl;
+ //result += "=?";
+ //pos = beg -1; // because pos gets increased shortly afterwards
+ pos = beg - 2;
+ result += *pos++;
+ result += *pos;
+ }
+ }
+ if (!charset.isEmpty ())
+ {
+ TQTextCodec *aCodec = codecForName (charset.ascii ());
+ if (aCodec)
+ {
+// kdDebug(7116) << "Codec is " << aCodec->name() << endl;
+ return aCodec->toUnicode (result);
+ }
+ }
+ return result;
+}
+
+
+//-----------------------------------------------------------------------------
+const char especials[17] = "()<>@,;:\"/[]?.= ";
+
+const TQString
+rfcDecoder::encodeRFC2047String (const TQString & _str)
+{
+ if (_str.isEmpty ())
+ return _str;
+ const signed char *latin = reinterpret_cast<const signed char *>(_str.latin1()), *l, *start, *stop;
+ char hexcode;
+ int numQuotes, i;
+ int rptr = 0;
+ // My stats show this number results in 12 resize() out of 73,000
+ int resultLen = 3 * _str.length() / 2;
+ TQCString result(resultLen);
+
+ while (*latin)
+ {
+ l = latin;
+ start = latin;
+ while (*l)
+ {
+ if (*l == 32)
+ start = l + 1;
+ if (*l < 0)
+ break;
+ l++;
+ }
+ if (*l)
+ {
+ numQuotes = 1;
+ while (*l)
+ {
+ /* The encoded word must be limited to 75 character */
+ for (i = 0; i < 16; i++)
+ if (*l == especials[i])
+ numQuotes++;
+ if (*l < 0)
+ numQuotes++;
+ /* Stop after 58 = 75 - 17 characters or at "<user@host..." */
+ if (l - start + 2 * numQuotes >= 58 || *l == 60)
+ break;
+ l++;
+ }
+ if (*l)
+ {
+ stop = l - 1;
+ while (stop >= start && *stop != 32)
+ stop--;
+ if (stop <= start)
+ stop = l;
+ }
+ else
+ stop = l;
+ if (resultLen - rptr - 1 <= start - latin + 1 + 16 /* =?iso-88... */) {
+ resultLen += (start - latin + 1) * 2 + 20; // more space
+ result.resize(resultLen);
+ }
+ while (latin < start)
+ {
+ result[rptr++] = *latin;
+ latin++;
+ }
+ strcpy(&result[rptr], "=?iso-8859-1?q?"); rptr += 15;
+ if (resultLen - rptr - 1 <= 3*(stop - latin + 1)) {
+ resultLen += (stop - latin + 1) * 4 + 20; // more space
+ result.resize(resultLen);
+ }
+ while (latin < stop) // can add up to 3 chars/iteration
+ {
+ numQuotes = 0;
+ for (i = 0; i < 16; i++)
+ if (*latin == especials[i])
+ numQuotes = 1;
+ if (*latin < 0)
+ numQuotes = 1;
+ if (numQuotes)
+ {
+ result[rptr++] = '=';
+ hexcode = ((*latin & 0xF0) >> 4) + 48;
+ if (hexcode >= 58)
+ hexcode += 7;
+ result[rptr++] = hexcode;
+ hexcode = (*latin & 0x0F) + 48;
+ if (hexcode >= 58)
+ hexcode += 7;
+ result[rptr++] = hexcode;
+ }
+ else
+ {
+ result[rptr++] = *latin;
+ }
+ latin++;
+ }
+ result[rptr++] = '?';
+ result[rptr++] = '=';
+ }
+ else
+ {
+ while (*latin)
+ {
+ if (rptr == resultLen - 1) {
+ resultLen += 30;
+ result.resize(resultLen);
+ }
+ result[rptr++] = *latin;
+ latin++;
+ }
+ }
+ }
+ result[rptr] = 0;
+ //free (latinStart);
+ return result;
+}
+
+
+//-----------------------------------------------------------------------------
+const TQString
+rfcDecoder::encodeRFC2231String (const TQString & _str)
+{
+ if (_str.isEmpty ())
+ return _str;
+ signed char *latin = (signed char *) calloc (1, _str.length () + 1);
+ char *latin_us = (char *) latin;
+ strcpy (latin_us, _str.latin1 ());
+ signed char *l = latin;
+ char hexcode;
+ int i;
+ bool quote;
+ while (*l)
+ {
+ if (*l < 0)
+ break;
+ l++;
+ }
+ if (!*l) {
+ free(latin);
+ return _str;
+ }
+ TQCString result;
+ l = latin;
+ while (*l)
+ {
+ quote = *l < 0;
+ for (i = 0; i < 16; i++)
+ if (*l == especials[i])
+ quote = true;
+ if (quote)
+ {
+ result += "%";
+ hexcode = ((*l & 0xF0) >> 4) + 48;
+ if (hexcode >= 58)
+ hexcode += 7;
+ result += hexcode;
+ hexcode = (*l & 0x0F) + 48;
+ if (hexcode >= 58)
+ hexcode += 7;
+ result += hexcode;
+ }
+ else
+ {
+ result += *l;
+ }
+ l++;
+ }
+ free (latin);
+ return result;
+}
+
+
+//-----------------------------------------------------------------------------
+const TQString
+rfcDecoder::decodeRFC2231String (const TQString & _str)
+{
+ int p = _str.find ('\'');
+
+ //see if it is an rfc string
+ if (p < 0)
+ return _str;
+
+ int l = _str.findRev ('\'');
+
+ //second is language
+ if (p >= l)
+ return _str;
+
+ //first is charset or empty
+ TQString charset = _str.left (p);
+ TQString st = _str.mid (l + 1);
+ TQString language = _str.mid (p + 1, l - p - 1);
+
+ //kdDebug(7116) << "Charset: " << charset << " Language: " << language << endl;
+
+ char ch, ch2;
+ p = 0;
+ while (p < (int) st.length ())
+ {
+ if (st.at (p) == 37)
+ {
+ ch = st.at (p + 1).latin1 () - 48;
+ if (ch > 16)
+ ch -= 7;
+ ch2 = st.at (p + 2).latin1 () - 48;
+ if (ch2 > 16)
+ ch2 -= 7;
+ st.at (p) = ch * 16 + ch2;
+ st.remove (p + 1, 2);
+ }
+ p++;
+ }
+ return st;
+}
diff --git a/tdeioslave/mbox/CMakeLists.txt b/tdeioslave/mbox/CMakeLists.txt
index e74682fa..27e51538 100644
--- a/tdeioslave/mbox/CMakeLists.txt
+++ b/tdeioslave/mbox/CMakeLists.txt
@@ -23,14 +23,18 @@ link_directories(
##### other data ################################
-install( FILES mbox.protocol DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE mbox.protocol
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR tdeioslave-desktops
+)
##### tdeio_mbox (module) #########################
tde_add_kpart( tdeio_mbox
SOURCES
- mbox.cc mboxfile.cc readmbox.cc stat.cc urlinfo.cc
+ mbox.cpp mboxfile.cpp readmbox.cpp stat.cpp urlinfo.cpp
LINK tdeio-shared
DESTINATION ${PLUGIN_INSTALL_DIR}
)
diff --git a/tdeioslave/mbox/Makefile.am b/tdeioslave/mbox/Makefile.am
index b95ae1b5..b890ebf3 100644
--- a/tdeioslave/mbox/Makefile.am
+++ b/tdeioslave/mbox/Makefile.am
@@ -7,11 +7,11 @@ METASOURCES = AUTO
kde_module_LTLIBRARIES = tdeio_mbox.la
tdeio_mbox_la_SOURCES = \
- mbox.cc \
- mboxfile.cc \
- readmbox.cc \
- stat.cc \
- urlinfo.cc
+ mbox.cpp \
+ mboxfile.cpp \
+ readmbox.cpp \
+ stat.cpp \
+ urlinfo.cpp
tdeio_mbox_la_LIBADD = $(LIB_TDEIO) $(LIB_TQT) $(LIB_TDECORE)
tdeio_mbox_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) -module $(KDE_PLUGIN)
diff --git a/tdeioslave/mbox/mbox.cc b/tdeioslave/mbox/mbox.cc
deleted file mode 100644
index 5742baff..00000000
--- a/tdeioslave/mbox/mbox.cc
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * This is a simple tdeioslave to handle mbox-files.
- * Copyright (C) 2004 Mart Kelder (mart.kde@hccnet.nl)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#include "mbox.h"
-
-#include "readmbox.h"
-#include "stat.h"
-#include "urlinfo.h"
-
-#include <tqstring.h>
-#include <tqcstring.h>
-
-#include <kdebug.h>
-#include <tdelocale.h>
-#include <kinstance.h>
-#include <tdeglobal.h>
-#include <kurl.h>
-#include <tdeio/global.h>
-
-#include <stdlib.h>
-
-#include "tdepimmacros.h"
-
-#include "mbox.h"
-
-extern "C" { KDE_EXPORT int kdemain(int argc, char* argv[]); }
-
-int kdemain( int argc, char * argv[] )
-{
- TDELocale::setMainCatalogue("tdelibs");
- TDEInstance instance("tdeio_mbox");
- (void) TDEGlobal::locale();
-
- if (argc != 4) {
- fprintf(stderr, "Usage: tdeio_mbox protocol "
- "domain-socket1 domain-socket2\n");
- exit(-1);
- }
-
- MBoxProtocol slave(argv[2], argv[3]);
- slave.dispatchLoop();
-
- return 0;
-}
-
-MBoxProtocol::MBoxProtocol( const TQCString& arg1, const TQCString& arg2 )
- : TDEIO::SlaveBase( "mbox2", arg1, arg2 ),
- m_errorState( true )
-{
-
-}
-
-MBoxProtocol::~MBoxProtocol()
-{
-}
-
-void MBoxProtocol::get( const KURL& url )
-{
- m_errorState = false;
-
- UrlInfo info( url, UrlInfo::message );
- TQString line;
- TQByteArray ba_line;
-
- if( info.type() == UrlInfo::invalid && !m_errorState )
- {
- error( TDEIO::ERR_DOES_NOT_EXIST, info.url() );
- return;
- }
-
- ReadMBox mbox( &info, this );
-
- while( !mbox.atEnd() && !m_errorState)
- {
- line = mbox.currentLine();
- line += '\n';
- ba_line = TQCString( line.utf8() );
- ba_line.truncate( ba_line.size() - 1 ); //Removing training '\0'
- data( ba_line );
- mbox.nextLine();
- };
-
- if( !m_errorState )
- {
- data( TQByteArray() );
- finished();
- }
-}
-
-void MBoxProtocol::listDir( const KURL& url )
-{
- m_errorState = false;
-
- TDEIO::UDSEntry entry;
- UrlInfo info( url, UrlInfo::directory );
- ReadMBox mbox( &info, this, hasMetaData( "onlynew" ), hasMetaData( "savetime" ) );
-
- if( m_errorState )
- return;
-
- if( info.type() != UrlInfo::directory )
- {
- error( TDEIO::ERR_DOES_NOT_EXIST, info.url() );
- return;
- }
-
- while( !mbox.atEnd() && !m_errorState )
- {
- entry = Stat::stat( mbox, info );
- if( mbox.inListing() )
- listEntry( entry, false );
- }
-
- listEntry( TDEIO::UDSEntry(), true );
- finished();
-}
-
-void MBoxProtocol::stat( const KURL& url )
-{
- UrlInfo info( url );
- if( info.type() == UrlInfo::invalid )
- {
- error( TDEIO::ERR_DOES_NOT_EXIST, url.path() );
- return;
- } else
- {
- statEntry( Stat::stat( info ) );
- }
- finished();
-}
-
-void MBoxProtocol::mimetype( const KURL& url )
-{
- m_errorState = false;
-
- UrlInfo info( url );
-
- if( m_errorState )
- return;
-
- if( info.type() == UrlInfo::invalid )
- error( TDEIO::ERR_DOES_NOT_EXIST, i18n( "Invalid URL" ) );
- else
- mimeType( info.mimetype() );
- finished();
-}
-
-void MBoxProtocol::emitError( int errno, const TQString& arg )
-{
- m_errorState = true;
- error( errno, arg );
-}
-
diff --git a/tdeioslave/mbox/mbox.cpp b/tdeioslave/mbox/mbox.cpp
new file mode 100644
index 00000000..8f45dcaf
--- /dev/null
+++ b/tdeioslave/mbox/mbox.cpp
@@ -0,0 +1,168 @@
+/*
+ * This is a simple tdeioslave to handle mbox-files.
+ * Copyright (C) 2004 Mart Kelder (mart.kde@hccnet.nl)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#include "mbox.h"
+
+#include "readmbox.h"
+#include "stat.h"
+#include "urlinfo.h"
+
+#include <tqstring.h>
+#include <tqcstring.h>
+
+#include <kdebug.h>
+#include <tdelocale.h>
+#include <kinstance.h>
+#include <tdeglobal.h>
+#include <kurl.h>
+#include <tdeio/global.h>
+
+#include <stdlib.h>
+
+#include <kdemacros.h>
+
+#include "mbox.h"
+
+extern "C" { KDE_EXPORT int kdemain(int argc, char* argv[]); }
+
+int kdemain( int argc, char * argv[] )
+{
+ TDELocale::setMainCatalogue("tdelibs");
+ TDEInstance instance("tdeio_mbox");
+ (void) TDEGlobal::locale();
+
+ if (argc != 4) {
+ fprintf(stderr, "Usage: tdeio_mbox protocol "
+ "domain-socket1 domain-socket2\n");
+ exit(-1);
+ }
+
+ MBoxProtocol slave(argv[2], argv[3]);
+ slave.dispatchLoop();
+
+ return 0;
+}
+
+MBoxProtocol::MBoxProtocol( const TQCString& arg1, const TQCString& arg2 )
+ : TDEIO::SlaveBase( "mbox2", arg1, arg2 ),
+ m_errorState( true )
+{
+
+}
+
+MBoxProtocol::~MBoxProtocol()
+{
+}
+
+void MBoxProtocol::get( const KURL& url )
+{
+ m_errorState = false;
+
+ UrlInfo info( url, UrlInfo::message );
+ TQString line;
+ TQByteArray ba_line;
+
+ if( info.type() == UrlInfo::invalid && !m_errorState )
+ {
+ error( TDEIO::ERR_DOES_NOT_EXIST, info.url() );
+ return;
+ }
+
+ ReadMBox mbox( &info, this );
+
+ while( !mbox.atEnd() && !m_errorState)
+ {
+ line = mbox.currentLine();
+ line += '\n';
+ ba_line = TQCString( line.utf8() );
+ ba_line.truncate( ba_line.size() - 1 ); //Removing training '\0'
+ data( ba_line );
+ mbox.nextLine();
+ };
+
+ if( !m_errorState )
+ {
+ data( TQByteArray() );
+ finished();
+ }
+}
+
+void MBoxProtocol::listDir( const KURL& url )
+{
+ m_errorState = false;
+
+ TDEIO::UDSEntry entry;
+ UrlInfo info( url, UrlInfo::directory );
+ ReadMBox mbox( &info, this, hasMetaData( "onlynew" ), hasMetaData( "savetime" ) );
+
+ if( m_errorState )
+ return;
+
+ if( info.type() != UrlInfo::directory )
+ {
+ error( TDEIO::ERR_DOES_NOT_EXIST, info.url() );
+ return;
+ }
+
+ while( !mbox.atEnd() && !m_errorState )
+ {
+ entry = Stat::stat( mbox, info );
+ if( mbox.inListing() )
+ listEntry( entry, false );
+ }
+
+ listEntry( TDEIO::UDSEntry(), true );
+ finished();
+}
+
+void MBoxProtocol::stat( const KURL& url )
+{
+ UrlInfo info( url );
+ if( info.type() == UrlInfo::invalid )
+ {
+ error( TDEIO::ERR_DOES_NOT_EXIST, url.path() );
+ return;
+ } else
+ {
+ statEntry( Stat::stat( info ) );
+ }
+ finished();
+}
+
+void MBoxProtocol::mimetype( const KURL& url )
+{
+ m_errorState = false;
+
+ UrlInfo info( url );
+
+ if( m_errorState )
+ return;
+
+ if( info.type() == UrlInfo::invalid )
+ error( TDEIO::ERR_DOES_NOT_EXIST, i18n( "Invalid URL" ) );
+ else
+ mimeType( info.mimetype() );
+ finished();
+}
+
+void MBoxProtocol::emitError( int errno, const TQString& arg )
+{
+ m_errorState = true;
+ error( errno, arg );
+}
+
diff --git a/tdeioslave/mbox/mboxfile.cc b/tdeioslave/mbox/mboxfile.cpp
index 7297457e..7297457e 100644
--- a/tdeioslave/mbox/mboxfile.cc
+++ b/tdeioslave/mbox/mboxfile.cpp
diff --git a/tdeioslave/mbox/readmbox.cc b/tdeioslave/mbox/readmbox.cpp
index 942f369e..942f369e 100644
--- a/tdeioslave/mbox/readmbox.cc
+++ b/tdeioslave/mbox/readmbox.cpp
diff --git a/tdeioslave/mbox/stat.cc b/tdeioslave/mbox/stat.cpp
index 99267ca7..99267ca7 100644
--- a/tdeioslave/mbox/stat.cc
+++ b/tdeioslave/mbox/stat.cpp
diff --git a/tdeioslave/mbox/urlinfo.cc b/tdeioslave/mbox/urlinfo.cpp
index 4b359e40..4b359e40 100644
--- a/tdeioslave/mbox/urlinfo.cc
+++ b/tdeioslave/mbox/urlinfo.cpp
diff --git a/tdeioslave/opengroupware/opengroupware.cpp b/tdeioslave/opengroupware/opengroupware.cpp
index 304ff225..b202373e 100644
--- a/tdeioslave/opengroupware/opengroupware.cpp
+++ b/tdeioslave/opengroupware/opengroupware.cpp
@@ -45,7 +45,7 @@
#include <unistd.h>
#include <stdlib.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace TDEABC {
@@ -194,8 +194,8 @@ void OpenGroupware::getCalendar( const KURL &_url )
// FIXME do progress handling
mListEventsJob = TDEIO::davPropFind( url, props, "0", false );
- connect( mListEventsJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotGetCalendarListingResult( TDEIO::Job * ) ) );
+ connect( mListEventsJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotGetCalendarListingResult( TDEIO::Job * ) ) );
}
void OpenGroupware::getAddressbook( const KURL &url )
diff --git a/tdeioslave/opengroupware/opengroupware.h b/tdeioslave/opengroupware/opengroupware.h
index 151187db..597634c6 100644
--- a/tdeioslave/opengroupware/opengroupware.h
+++ b/tdeioslave/opengroupware/opengroupware.h
@@ -32,7 +32,7 @@ namespace TDEIO {
class OpenGroupware : public TQObject, public TDEIO::SlaveBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
OpenGroupware( const TQCString &protocol, const TQCString &pool,
diff --git a/tdeioslave/sieve/CMakeLists.txt b/tdeioslave/sieve/CMakeLists.txt
index 7e6628c8..56198188 100644
--- a/tdeioslave/sieve/CMakeLists.txt
+++ b/tdeioslave/sieve/CMakeLists.txt
@@ -23,7 +23,11 @@ link_directories(
##### other data ################################
-install( FILES sieve.protocol DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE sieve.protocol
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR tdeioslave-desktops
+)
##### tdeio_sieve (module) ########################
diff --git a/tdeioslave/sieve/sieve.cpp b/tdeioslave/sieve/sieve.cpp
index b3633640..0925b515 100644
--- a/tdeioslave/sieve/sieve.cpp
+++ b/tdeioslave/sieve/sieve.cpp
@@ -49,7 +49,7 @@ using std::exit;
#include <sys/stat.h>
#include <cassert>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
static const int debugArea = 7122;
diff --git a/tdeioslave/sieve/sieve.protocol b/tdeioslave/sieve/sieve.protocol
index da9668dc..6ede98f2 100644
--- a/tdeioslave/sieve/sieve.protocol
+++ b/tdeioslave/sieve/sieve.protocol
@@ -11,44 +11,7 @@ deleting=true
linking=false
moving=false
Icon=remote
+
Description=An ioslave for the Sieve mail filtering protocol
-Description[af]='n <i>IOSlave</i> vir die Sieve e-pos filter protokol
-Description[ca]=Un ioslave pel protocol de filtrar de correu Sieve
-Description[cs]=ioslave pro protokol filtrování zpráv Sieve
-Description[da]=En ioslave for Sieve mail filtreringsprotokollen
-Description[de]=Ein-/Ausgabemodul für das E-Mail-Filterprotokoll "Sieve"
-Description[el]=Ένας ioslave για το πρωτόκολλο φιλτραρίσματος αλληλογραφίας Sieve
-Description[es]=Un ioslave para el protocolo de filtrado de correo Sieve
-Description[et]=Sieve e-kirjade filtreerimise protokolli IO-moodul
-Description[eu]=Sieve posta iragazketa protokoloarentztko irteerako/sarrerako mendeko bat
-Description[fa]=یک ioslave برای قرارداد پالایش نامۀ Sieve
-Description[fi]=Siirräntätyöskentelijä Sieve-sähköpostiensuodatusyhteyskäytännölle
-Description[fr]=Un ioslave pour le protocole de filtrage de messagerie Sieve
-Description[fy]=In ioslave foar it Sieve-mailfilterprotokol
-Description[gl]=Un esclavo io para o protocolo de filtraxe de correo Sieve
-Description[hu]=TDE-protokoll a Sieve levélszűrő protokollhoz
-Description[is]=Ioslave fyrir Sieve tölvupóstsíu samskiptaregluna
-Description[it]=Un ioslave per il protocollo di filtraggio posta Sieve
-Description[ja]=Sieve メールフィルタプロトコル用 ioslave
-Description[kk]=Sieve поштаны сүзгілеу протоколының ioslave модулі
-Description[km]=ioslave សម្រាប់​ពិធីការ​ត្រង​សំបុត្រ Sieve
-Description[ms]=Hamba io untuk protokol tapisan mel saringan
-Description[nb]=En i/u-slave for e-postfilterprotokollen Sieve
-Description[nds]=In-/Utgaavmoduul för't Nettpostfilter-Protokoll Sieve
-Description[ne]=मेल फिल्टरिङ प्रोटोकल सिभ गर्नका लागि एउटा आइओस्लेभ
-Description[nl]=Een ioslave voor het Sieve-mailfilterprotocol
-Description[nn]=Ein i/u-slave for e-postfilterprotokollen Sieve
-Description[pl]=Wtyczka protokołu filtrowania poczty Sieve
-Description[pt]=Um 'ioslave' para o protocolo de filtragem de correio Sieve
-Description[pt_BR]=Um IO-Slave para o protocolo de filtragem de email Sieve
-Description[ru]=Канал протокола фильтра почты Sieve
-Description[sk]=ioslave pre protokol Sieve filtrovanie pošty
-Description[sl]=ioslave za protokol poštnega filtriranja Sieve
-Description[sr]=IOslave протокола за филтрирање поште Sieve
-Description[sr@Latn]=IOslave protokola za filtriranje pošte Sieve
-Description[sv]=En I/O-slav för brevfiltreringsprotokollet Sieve
-Description[ta]=Sieve அஞ்சல் வடிகட்டும் நெறிமுறைக்கான ஒரு ioslave
-Description[tr]=Sieve e-posta filtreleme protokolü için bir ioslave
-Description[uk]=Підлеглий В/В для протоколу фільтрування пошти Sieve
-Description[zh_CN]=邮件过滤协议仆人
+
X-DocPath=tdeioslave/sieve/index.html
diff --git a/tderesources/CMakeL10n.txt b/tderesources/CMakeL10n.txt
index b585ce4a..39b74f0d 100644
--- a/tderesources/CMakeL10n.txt
+++ b/tderesources/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_auto_add_subdirectories( )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/tderesources-desktops/"
+ SOURCES *.desktop *.protocol
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/tderesources/birthdays/CMakeLists.txt b/tderesources/birthdays/CMakeLists.txt
index 7ac1be77..720204d2 100644
--- a/tderesources/birthdays/CMakeLists.txt
+++ b/tderesources/birthdays/CMakeLists.txt
@@ -33,7 +33,11 @@ install( FILES
##### other data ################################
-install( FILES tdeabc.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal )
+tde_create_translated_desktop(
+ SOURCE tdeabc.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal
+ PO_DIR tderesources-desktops
+)
##### kcal_tdeabc (module) #######################
diff --git a/tderesources/birthdays/resourcetdeabc.cpp b/tderesources/birthdays/resourcetdeabc.cpp
index d36ebddd..2e937a7d 100644
--- a/tderesources/birthdays/resourcetdeabc.cpp
+++ b/tderesources/birthdays/resourcetdeabc.cpp
@@ -125,7 +125,7 @@ bool ResourceTDEABC::doOpen()
kdDebug(5800) << "ResourceTDEABC::doOpen()" << endl;
mAddressbook = TDEABC::StdAddressBook::self( true );
- connect( mAddressbook, TQT_SIGNAL(addressBookChanged(AddressBook*)), TQT_SLOT( reload() ) );
+ connect( mAddressbook, TQ_SIGNAL(addressBookChanged(AddressBook*)), TQ_SLOT( reload() ) );
return true;
}
@@ -220,7 +220,7 @@ bool ResourceTDEABC::doLoad()
TQString anniversary_string = (*it).custom( "KADDRESSBOOK", "X-Anniversary" );
if (anniversary_string.isEmpty() )
continue;
- TQDateTime anniversary = TQDate::fromString( anniversary_string, Qt::ISODate );
+ TQDateTime anniversary = TQDate::fromString( anniversary_string, TQt::ISODate );
if ( !anniversary.isValid() )
continue;
@@ -232,7 +232,7 @@ bool ResourceTDEABC::doLoad()
for ( addrIt = anniversaries.begin(); addrIt != anniversaries.end(); ++addrIt ) {
if ( name == (*addrIt).realName() ) {
TQDate spouseAnniversary =
- TQDate::fromString( (*addrIt).custom( "KADDRESSBOOK", "X-Anniversary" ), Qt::ISODate );
+ TQDate::fromString( (*addrIt).custom( "KADDRESSBOOK", "X-Anniversary" ), TQt::ISODate );
if ( anniversary == TQDateTime(spouseAnniversary) ) {
found = true;
break;
@@ -247,7 +247,7 @@ bool ResourceTDEABC::doLoad()
}
for ( addrIt = anniversaries.begin(); addrIt != anniversaries.end(); ++addrIt ) {
- TQDate anniversary = TQDate::fromString( (*addrIt).custom( "KADDRESSBOOK", "X-Anniversary" ), Qt::ISODate );
+ TQDate anniversary = TQDate::fromString( (*addrIt).custom( "KADDRESSBOOK", "X-Anniversary" ), TQt::ISODate );
kdDebug(5800) << "found a anniversary " << TQString(anniversary.toString()) << endl;
TQString name;
TQString name_1 = (*addrIt).nickName();
diff --git a/tderesources/birthdays/resourcetdeabc.h b/tderesources/birthdays/resourcetdeabc.h
index 5ba80ca1..93c15d94 100644
--- a/tderesources/birthdays/resourcetdeabc.h
+++ b/tderesources/birthdays/resourcetdeabc.h
@@ -33,7 +33,7 @@
#include "libkcal/resourcecalendar.h"
-#include "libtdepim/tdepimmacros.h"
+#include <kdemacros.h>
namespace TDEIO {
class FileCopyJob;
@@ -47,7 +47,7 @@ namespace KCal {
*/
class KDE_EXPORT ResourceTDEABC : public ResourceCalendar
{
- Q_OBJECT
+ TQ_OBJECT
friend class ResourceTDEABCConfig;
diff --git a/tderesources/birthdays/resourcetdeabcconfig.cpp b/tderesources/birthdays/resourcetdeabcconfig.cpp
index 0f9b3279..4b3b0a1d 100644
--- a/tderesources/birthdays/resourcetdeabcconfig.cpp
+++ b/tderesources/birthdays/resourcetdeabcconfig.cpp
@@ -61,13 +61,13 @@ ResourceTDEABCConfig::ResourceTDEABCConfig( TQWidget* parent, const char* name
mCategoryView->setEnabled( false );
topLayout->addMultiCellWidget( mCategoryView, 4, 4, 0, 1 );
- connect( mUseCategories, TQT_SIGNAL( toggled( bool ) ),
- mCategoryView, TQT_SLOT( setEnabled( bool ) ) );
+ connect( mUseCategories, TQ_SIGNAL( toggled( bool ) ),
+ mCategoryView, TQ_SLOT( setEnabled( bool ) ) );
mAlarmTimeEdit->setDisabled(true);
mALabel->setDisabled(true);
- connect(mAlarm, TQT_SIGNAL(clicked()), TQT_SLOT(alarmClicked()));
+ connect(mAlarm, TQ_SIGNAL(clicked()), TQ_SLOT(alarmClicked()));
setReadOnly( true );
diff --git a/tderesources/birthdays/resourcetdeabcconfig.h b/tderesources/birthdays/resourcetdeabcconfig.h
index 80efd02b..88ade268 100644
--- a/tderesources/birthdays/resourcetdeabcconfig.h
+++ b/tderesources/birthdays/resourcetdeabcconfig.h
@@ -40,7 +40,7 @@ namespace KCal {
*/
class ResourceTDEABCConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceTDEABCConfig( TQWidget* parent = 0, const char* name = 0 );
diff --git a/tderesources/birthdays/tdeabc.desktop b/tderesources/birthdays/tdeabc.desktop
index aafbce9c..44c6c369 100644
--- a/tderesources/birthdays/tdeabc.desktop
+++ b/tderesources/birthdays/tdeabc.desktop
@@ -1,59 +1,6 @@
[Desktop Entry]
Name=Birthdays From KAddressBook
-Name[af]=Verjaarsdae uit KAddressBook
-Name[ar]=تواريخ الميلد من KAddressBook
-Name[be]=Дні нараджэння з K Адраснай кнігі
-Name[bg]=Рождени дни от адресника
-Name[br]=Deizioù-ha-bloazioù eus KAddressBook
-Name[bs]=Rođendani iz KAddressBook adresara
-Name[ca]=Aniversaris des de KAddressBook
-Name[cs]=Narozeniny z Knihy adres
-Name[cy]=Penblwyddi o KLlyfrCyfeiriadau
-Name[da]=Fødselsdage fra KAddressBook
-Name[de]=Geburtstage aus dem Adressbuch
-Name[el]=Γενέθλια από το KAddressBook
-Name[eo]=Naskiĝdatoj de KAdresaro
-Name[es]=Cumpleaños desde KAddressBook
-Name[et]=Sünnipäevad TDE aadressiraamatust
-Name[eu]=Urtebetetzeak KAddressBook-etik
-Name[fa]=تولدها از KAddressBook
-Name[fi]=Syntymäpäivät TDE:n osoitekirjasta
-Name[fr]=Dates de naissance de KAddressBook
-Name[fy]=Jierddagen út KAddressBook
-Name[ga]=Breithlaethanta ó KAddressBook
-Name[gl]=Cumpreanos de KAddressBook
-Name[he]=ימי הולדת מתוך KAddressBook
-Name[hi]=के-एड्रेस-बुक से जन्मतिथि
-Name[hu]=Születésnapok a KAddressBookból
-Name[is]=Afmælisdagar úr KAddressBook
-Name[it]=Compleanni da KAddessBook
-Name[ja]=アドレス帳の誕生日
-Name[kk]=KAddressBook-тағы туған күндер
-Name[km]=ថ្ងៃ​ខួប​កំណើត​ពី KAddressBook
-Name[lt]=Gimtadieniai iš KAddressBook
-Name[mk]=Родендени од КАдресар
-Name[ms]=Tarikh Lahir dari KAddressBook
-Name[nb]=Bursdagsimport fra KAddressbook
-Name[nds]=Geboortsdaag ut KAdressbook
-Name[ne]=केडीई ठेगाना पुस्तिकामा भएका जन्मदिन
-Name[nl]=Verjaardagen uit KAddressBook
-Name[nn]=Fødselsdagar frå TDE-adresseboka
-Name[pl]=Urodziny z Książki adresowej
-Name[pt]=Aniversários do KAddressBook
-Name[pt_BR]=Datas de Nascimento do KAddressBook
-Name[ro]=Date de naştere din KAddressBook
-Name[ru]=Дни рождения из адресной книги TDE
-Name[sk]=Dátumy narodenia z adresára TDE
-Name[sl]=Rojstni dnevi iz Adresarja
-Name[sr]=Рођендани из KAddressBook-а
-Name[sr@Latn]=Rođendani iz KAddressBook-a
-Name[sv]=Födelsedagar från adressboken
-Name[ta]=கேமுகவரிபுத்தகத்தில் இருந்து பிறந்ததேதிகள்
-Name[tg]=Рӯзҳои таваллуд аз китоби адресии TDE
-Name[tr]=TDE Adres Defterinden Doğum Günleri
-Name[uk]=Дні народження з KAddressBook
-Name[zh_CN]=KAddressBook 中的生日
-Name[zh_TW]=自 KaddressBook 匯入生日
+
X-TDE-Library=kcal_tdeabc
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/blogging/API_Blog.h b/tderesources/blogging/API_Blog.h
index 5ad5b478..91f6e623 100644
--- a/tderesources/blogging/API_Blog.h
+++ b/tderesources/blogging/API_Blog.h
@@ -83,7 +83,7 @@ protected:
class APIBlog : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
APIBlog( const KURL &server, TQObject *parent = 0L, const char *name = 0L );
diff --git a/tderesources/blogging/blogging.desktop b/tderesources/blogging/blogging.desktop
index e2192733..531ec5a6 100644
--- a/tderesources/blogging/blogging.desktop
+++ b/tderesources/blogging/blogging.desktop
@@ -1,47 +1,6 @@
[Desktop Entry]
Name=Journals as Blogs on a Server
-Name[af]=Joernale as Blogs op 'n bediener
-Name[bg]=Дневници и блогове
-Name[ca]=Diaris com a blocs en un servidor
-Name[cs]=Deníky jako blogy na serveru
-Name[da]=Journaler som www-blogger på en server
-Name[de]=Journaleinträge als Blogs auf einem Server
-Name[el]=Εφημερίδες ως Blogs σε έναν εξυπηρετητή
-Name[es]=Diarios, como bitácoras en un servidor
-Name[et]=Päevik veebipäevikuna serveris
-Name[eu]=Egunkariak blog moduan zerbitzarian
-Name[fa]=نشریه‌ها به عنوان وب‌نوشتها روی یک کارساز
-Name[fi]=Päiväkirjat blogeina palvelimella
-Name[fr]=Journaux (blogs) sur un serveur
-Name[fy]=Journalen as blochs op in tsjinner
-Name[gl]=Xornais como Bitácoras nun Servidor
-Name[hu]=Naplók blogként tárolása a kiszolgálón
-Name[is]=Dagbækur sem blogg á þjóni
-Name[it]=Diari come blog su un server
-Name[ja]=サーバ上のブログとしてのジャーナル
-Name[kk]=Сервердегі күнделік блог ретінде
-Name[km]=ទិនានុប្បវត្តិ​ជា​កំណត់ហេតុ​បណ្ដាញ​នៅ​លើ​ម៉ាស៊ីន​បម្រើ
-Name[lt]=Dienynai kaip Blog'ai serveryje
-Name[ms]=Jurnal sebagai Blog pada pelayan
-Name[nb]=Dagbok som blogg på en tjener
-Name[nds]=Daagbookindräag as Blog op en Server
-Name[ne]=सर्भरमा बल्गका रुपका पत्रिका
-Name[nl]=Journalen als blogs op een server
-Name[nn]=Dagbøker som bloggar på ein tenar
-Name[pl]=Dzienniki jako blogi na serwerze
-Name[pt]=Diários como 'Blogs' num Servidor
-Name[pt_BR]=Diários como Blogs em um Servidor
-Name[ru]=Журналы (блоги) на сервере
-Name[sk]=Žurnály ako blogy na serveri
-Name[sl]=Dnevniki kot spletni dnevniki (blogi) na strežniku
-Name[sr]=Дневници као блогови на серверу
-Name[sr@Latn]=Dnevnici kao blogovi na serveru
-Name[sv]=Journaler som webbloggar på en server
-Name[ta]=சேவகனில் பேச்சுரைகள் பத்திரிககளாக உள்ளன
-Name[tr]=Web Günlüğü gibi, bir Sunucuya yazar
-Name[uk]=Журнали як веб-щоденники на сервері
-Name[zh_CN]=日记作为服务器上的博客日志
-Name[zh_TW]=日誌做為伺服器上的部落格
+
X-TDE-Library=kcal_blogging
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/blogging/bloggingcalendaradaptor.cpp b/tderesources/blogging/bloggingcalendaradaptor.cpp
index 2ed925a8..9c899e5c 100644
--- a/tderesources/blogging/bloggingcalendaradaptor.cpp
+++ b/tderesources/blogging/bloggingcalendaradaptor.cpp
@@ -102,17 +102,17 @@ void BloggingCalendarAdaptor::setAPI( KBlog::APIBlog *api )
delete mAPI;
mAPI = api;
mAuthenticated = false;
- connect( api, TQT_SIGNAL( userInfoRetrieved( const TQString &, const TQString &,
+ connect( api, TQ_SIGNAL( userInfoRetrieved( const TQString &, const TQString &,
const TQString & ) ),
- TQT_SLOT( slotUserInfoRetrieved( const TQString &, const TQString &,
+ TQ_SLOT( slotUserInfoRetrieved( const TQString &, const TQString &,
const TQString & ) ) );
- connect( api, TQT_SIGNAL( folderInfoRetrieved( const TQString &, const TQString & ) ),
- TQT_SLOT( slotFolderInfoRetrieved( const TQString&, const TQString & ) ) );
- connect( api, TQT_SIGNAL( itemOnServer( const KURL & ) ),
- TQT_SIGNAL( itemOnServer( const KURL & ) ) );
- connect( api, TQT_SIGNAL( itemDownloaded( KCal::Incidence *, const TQString &,
+ connect( api, TQ_SIGNAL( folderInfoRetrieved( const TQString &, const TQString & ) ),
+ TQ_SLOT( slotFolderInfoRetrieved( const TQString&, const TQString & ) ) );
+ connect( api, TQ_SIGNAL( itemOnServer( const KURL & ) ),
+ TQ_SIGNAL( itemOnServer( const KURL & ) ) );
+ connect( api, TQ_SIGNAL( itemDownloaded( KCal::Incidence *, const TQString &,
const KURL &, const TQString &, const TQString & ) ),
- TQT_SLOT( calendarItemDownloaded( KCal::Incidence *, const TQString &,
+ TQ_SLOT( calendarItemDownloaded( KCal::Incidence *, const TQString &,
const KURL &, const TQString &, const TQString & ) ) );
}
diff --git a/tderesources/blogging/bloggingcalendaradaptor.h b/tderesources/blogging/bloggingcalendaradaptor.h
index ee6d292a..527955fb 100644
--- a/tderesources/blogging/bloggingcalendaradaptor.h
+++ b/tderesources/blogging/bloggingcalendaradaptor.h
@@ -50,7 +50,7 @@ class BloggingUploadItem : public KPIM::GroupwareUploadItem
class BloggingCalendarAdaptor : public CalendarAdaptor
{
-Q_OBJECT
+TQ_OBJECT
public:
BloggingCalendarAdaptor();
diff --git a/tderesources/blogging/kcal_resourceblogging.h b/tderesources/blogging/kcal_resourceblogging.h
index 4e850d14..2e401d8f 100644
--- a/tderesources/blogging/kcal_resourceblogging.h
+++ b/tderesources/blogging/kcal_resourceblogging.h
@@ -22,7 +22,7 @@
#define KCAL_RESOURCEBLOGGING_H
#include <kcal_resourcegroupwarebase.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KBlog {
class APIBlog;
@@ -35,7 +35,7 @@ namespace KCal {
*/
class KDE_EXPORT ResourceBlogging : public ResourceGroupwareBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceBlogging();
diff --git a/tderesources/blogging/kcal_resourcebloggingconfig.h b/tderesources/blogging/kcal_resourcebloggingconfig.h
index b7584167..7d69f830 100644
--- a/tderesources/blogging/kcal_resourcebloggingconfig.h
+++ b/tderesources/blogging/kcal_resourcebloggingconfig.h
@@ -20,14 +20,14 @@
#ifndef KCAL_RESOURCEBLOGGINGCONFIG_H
#define KCAL_RESOURCEBLOGGINGCONFIG_H
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <kcal_resourcegroupwarebaseconfig.h>
namespace KCal {
class KDE_EXPORT ResourceBloggingConfig : public ResourceGroupwareBaseConfig
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceBloggingConfig( TQWidget *parent = 0, const char *name = 0 );
diff --git a/tderesources/blogging/resourcebloggingsettings.ui b/tderesources/blogging/resourcebloggingsettings.ui
index 7d7e0227..ce5b7a25 100644
--- a/tderesources/blogging/resourcebloggingsettings.ui
+++ b/tderesources/blogging/resourcebloggingsettings.ui
@@ -314,17 +314,10 @@
<tabstop>mCloseCategory</tabstop>
</tabstops>
<layoutdefaults spacing="5" margin="5"/>
-<includehints>
- <includehint>kcombobox.h</includehint>
- <includehint>klineedit.h</includehint>
- <includehint>kurlrequester.h</includehint>
- <includehint>klineedit.h</includehint>
- <includehint>kpushbutton.h</includehint>
- <includehint>klineedit.h</includehint>
- <includehint>kcombobox.h</includehint>
- <includehint>klineedit.h</includehint>
- <includehint>klineedit.h</includehint>
- <includehint>klineedit.h</includehint>
- <includehint>klineedit.h</includehint>
-</includehints>
+<includes>
+ <include location="global" impldecl="in implementation">kcombobox.h</include>
+ <include location="global" impldecl="in implementation">klineedit.h</include>
+ <include location="global" impldecl="in implementation">kpushbutton.h</include>
+ <include location="global" impldecl="in implementation">kurlrequester.h</include>
+</includes>
</UI>
diff --git a/tderesources/blogging/xmlrpcjob.h b/tderesources/blogging/xmlrpcjob.h
index d5838448..fbff25c9 100644
--- a/tderesources/blogging/xmlrpcjob.h
+++ b/tderesources/blogging/xmlrpcjob.h
@@ -1,4 +1,3 @@
-// -*- c++ -*-
/* This file is part of the KDE libraries
Copyright (C) 2004 Reinhold Kainhofer <reinhold@kainhofer.com>
Based on the davjob:
@@ -45,7 +44,7 @@ namespace TDEIO {
* @since 3.4
*/
class XmlrpcJob : public TransferJob {
-Q_OBJECT
+TQ_OBJECT
public:
diff --git a/tderesources/caldav/CMakeLists.txt b/tderesources/caldav/CMakeLists.txt
index b43b5461..33471c22 100644
--- a/tderesources/caldav/CMakeLists.txt
+++ b/tderesources/caldav/CMakeLists.txt
@@ -28,9 +28,11 @@ link_directories(
##### other data ################################
-install(
- FILES kcal_caldav.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal )
+tde_create_translated_desktop(
+ SOURCE kcal_caldav.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal
+ PO_DIR tderesources-desktops
+)
##### kcal_caldav (module) ######################
diff --git a/tderesources/caldav/config.cpp b/tderesources/caldav/config.cpp
index b83660f8..4a9888ea 100644
--- a/tderesources/caldav/config.cpp
+++ b/tderesources/caldav/config.cpp
@@ -167,12 +167,12 @@ void ResourceCalDavConfig::setupUI() {
mainLayout->addWidget(mRememberPassword, 8, 1);
mTasksUrl->setEnabled(mUseSTasks->isChecked());
- connect( mUseSTasks, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( slotSTasksToggled( bool ) ) );
+ connect( mUseSTasks, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( slotSTasksToggled( bool ) ) );
mJournalsUrl->setEnabled(mUseSJournals->isChecked());
- connect( mUseSJournals, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( slotSJournalsToggled( bool ) ) );
+ connect( mUseSJournals, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( slotSJournalsToggled( bool ) ) );
// configs
TQHBoxLayout* horizontal = new TQHBoxLayout(this);
diff --git a/tderesources/caldav/config.h b/tderesources/caldav/config.h
index fe03114c..4dec65f3 100644
--- a/tderesources/caldav/config.h
+++ b/tderesources/caldav/config.h
@@ -39,7 +39,7 @@ class CalDavSaveConfig;
*/
class KDE_EXPORT ResourceCalDavConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/caldav/configwidgets.cpp b/tderesources/caldav/configwidgets.cpp
index db620741..9f4f1e11 100644
--- a/tderesources/caldav/configwidgets.cpp
+++ b/tderesources/caldav/configwidgets.cpp
@@ -103,8 +103,8 @@ CalDavReloadConfig::CalDavReloadConfig( TQWidget *parent )
d->mGroup->insert( automaticReloadOnStartup, 1 );
d->mGroup->insert( noAutomaticReload, 0 );
- connect( intervalRadio, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( slotIntervalToggled( bool ) ) );
+ connect( intervalRadio, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( slotIntervalToggled( bool ) ) );
TQHBox *intervalBox = new TQHBox( groupBox );
//new TQLabel( i18nc( "@label:spinbox", "Interval in minutes:" ), intervalBox );
@@ -113,7 +113,7 @@ CalDavReloadConfig::CalDavReloadConfig( TQWidget *parent )
d->mIntervalSpin->setRange( 1, 900 );
d->mIntervalSpin->setEnabled( false );
- groupBox->setColumnLayout(1, Qt::Vertical);
+ groupBox->setColumnLayout(1, TQt::Vertical);
TQVBoxLayout *vbox = new TQVBoxLayout(groupBox->layout());
vbox->addWidget(intervalRadio);
vbox->addWidget(intervalBox);
@@ -179,8 +179,8 @@ CalDavSaveConfig::CalDavSaveConfig( TQWidget *parent )
d->mGroup->insert( onExit, 1 );
d->mGroup->insert( intervalRadio, 2 );
- connect( intervalRadio, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( slotIntervalToggled( bool ) ) );
+ connect( intervalRadio, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( slotIntervalToggled( bool ) ) );
TQHBox *intervalBox = new TQHBox( groupBox );
//new TQLabel( i18nc( "@label:spinbox", "Interval in minutes:" ), intervalBox );
@@ -206,7 +206,7 @@ CalDavSaveConfig::CalDavSaveConfig( TQWidget *parent )
intervalRadio->hide();
intervalBox->hide();
- groupBox->setColumnLayout(1, Qt::Vertical);
+ groupBox->setColumnLayout(1, TQt::Vertical);
TQVBoxLayout *vbox = new TQVBoxLayout(groupBox->layout());
vbox->addWidget(delay);
vbox->addWidget(every);
diff --git a/tderesources/caldav/configwidgets.h b/tderesources/caldav/configwidgets.h
index 1e524844..5bee6aa9 100644
--- a/tderesources/caldav/configwidgets.h
+++ b/tderesources/caldav/configwidgets.h
@@ -49,7 +49,7 @@ class ResourceCached;
*/
class KDE_EXPORT CalDavReloadConfig : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit CalDavReloadConfig( TQWidget *parent = 0 );
@@ -76,7 +76,7 @@ class KDE_EXPORT CalDavReloadConfig : public TQWidget
*/
class KDE_EXPORT CalDavSaveConfig : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit CalDavSaveConfig( TQWidget *parent = 0 );
diff --git a/tderesources/caldav/kcal_caldav.desktop b/tderesources/caldav/kcal_caldav.desktop
index ffdbd4d4..02d06ea3 100644
--- a/tderesources/caldav/kcal_caldav.desktop
+++ b/tderesources/caldav/kcal_caldav.desktop
@@ -1,50 +1,6 @@
[Desktop Entry]
Name=CalDAV Server (e.g. Google Calendar)
-Name[af]=CalDAV bediener (bv. Google Calendar)
-Name[bg]=Сървър CalDAV (e.g. Google Calendar)
-Name[br]=Servijer CalDAV (e.g. Google Calendar)
-Name[ca]=Servidor CalDAV (p.ex. Google Calendar)
-Name[cs]=CalDAV server (např. Google Calendar)
-Name[da]=CalDAV-server (f.eks. Google Calendar)
-Name[de]=CalDAV-Server (z. B. Google Calendar)
-Name[el]=Εξυπηρετητής CalDAV (π.χ. Google Calendar)
-Name[es]=Servidor CalDAV (por ejemplo, Google Calendar)
-Name[et]=CalDAV server (nt. Google Calendar)
-Name[eu]=CalDAV zerbitzaria (adib. Google Calendar)
-Name[fa]=کارساز CalDAV (مثلاً Google Calendar)
-Name[fi]=CalDAV-palvelin (esim. Google Calendar)
-Name[fr]=CalDAV Serveur (ex. Google Calendar)
-Name[fy]=CalDAV-tsjinner (Google Calendar)
-Name[ga]=Freastalaí CalDAV (m.sh. Google Calendar)
-Name[gl]=Servidor CalDAV (e.g. Google Calendar)
-Name[hu]=CalDAV-kiszolgáló (pl. Google Calendar)
-Name[is]=CalDAV þjónn (t.d. Google Calendar)
-Name[it]=Server CalDAV (per es. Google Calendar)
-Name[ja]=CalDAV サーバ (例 Google Calendar)
-Name[ka]=სერვერი CalDAV (მაგ., Google Calendar)
-Name[kk]=CalDAV сервері (мысалы Google Calendar)
-Name[km]=ម៉ាស៊ីន​បម្រើ CalDAV (ឧ. Google Calendar)
-Name[lt]=CalDAV serveris (pvz.: Google Calendar)
-Name[ms]=Pelayan CalDAV (misalnya Google Calendar)
-Name[nb]=CalDAV-tjener (f.eks. Google Calendar)
-Name[nds]=CalDAV-Server (t.B. Google Calendar)
-Name[ne]=समूह DAV सर्भर (जस्तै: खुला ग्रुपवेयर)
-Name[nl]=CalDAV-server (Google Calendar)
-Name[nn]=CalDAV-tenar (t.d. Google Calendar)
-Name[pl]=Serwer CalDAV (np. Google Calendar)
-Name[pt]=Servidor CalDAV (por exemplo Google Calendar)
-Name[pt_BR]=Servidor GroupDav (p. ex. Google Calendar)
-Name[ru]=Сервер CalDAV (например, Google Calendar)
-Name[sk]=CalDAV Server (napr. Google Calendar)
-Name[sl]=Strežnik CalDAV (npr. Google Calendar)
-Name[sr]=CalDAV сервер (нпр. Google Calendar)
-Name[sr@Latn]=CalDAV server (npr. Google Calendar)
-Name[sv]=CalDAV-server (t.ex. Google Calendar)
-Name[ta]=CalDAV சேவகன் (e.g. Google Calendar)
-Name[tr]=CalDAV Sunucusu (ör. Google Calendar)
-Name[uk]=Сервер CalDAV (напр., Google Calendar)
-Name[zh_CN]=CalDAV 服务器(如 Google Calendar)
-Name[zh_TW]=CalDAV 伺服器 (如: Google Calendar)
+
X-TDE-Library=kcal_caldav
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/caldav/resource.cpp b/tderesources/caldav/resource.cpp
index 8fae5c98..2c63da22 100644
--- a/tderesources/caldav/resource.cpp
+++ b/tderesources/caldav/resource.cpp
@@ -197,7 +197,7 @@ bool ResourceCalDav::doSave() {
clearChanges();
if (mWriteRetryTimer != NULL) {
if (mWriteRetryTimer->isActive() == false) {
- disconnect( mWriteRetryTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(doSave()) );
+ disconnect( mWriteRetryTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(doSave()) );
delete mWriteRetryTimer;
mWriteRetryTimer = NULL;
}
@@ -249,8 +249,8 @@ void ResourceCalDav::init() {
// creating jobs
// TQt4 handles this quite differently, as shown below,
// whereas TQt3 needs events (see ::event())
-// connect(mLoader, TQT_SIGNAL(finished()), this, TQT_SLOT(loadFinished()));
-// connect(mWriter, TQT_SIGNAL(finished()), this, TQT_SLOT(writingFinished()));
+// connect(mLoader, TQ_SIGNAL(finished()), this, TQ_SLOT(loadFinished()));
+// connect(mWriter, TQ_SIGNAL(finished()), this, TQ_SLOT(writingFinished()));
setType("ResourceCalDav");
}
@@ -850,7 +850,7 @@ bool ResourceCalDav::startWriting(const TQString& url, const TQString& tasksUrl,
if ((mLoader->running() == true) || (mLoadingQueue.isEmpty() == false) || (mWriter->running() == true) || (mWritingQueue.isEmpty() == false)) {
if (mWriteRetryTimer == NULL) {
mWriteRetryTimer = new TQTimer(this);
- connect( mWriteRetryTimer, TQT_SIGNAL(timeout()), TQT_SLOT(doSave()) );
+ connect( mWriteRetryTimer, TQ_SIGNAL(timeout()), TQ_SLOT(doSave()) );
}
mWriteRetryTimer->start(1000, TRUE);
return false;
@@ -995,7 +995,7 @@ void ResourceCalDav::writingFinished() {
}
// Give the remote system a few seconds to process the data before we allow any read operations
- TQTimer::singleShot( 3000, this, TQT_SLOT(releaseReadLockout()) );
+ TQTimer::singleShot( 3000, this, TQ_SLOT(releaseReadLockout()) );
// Writing queue and mWritingQueueReady flag are not shared resources, i.e. only one thread has an access to them.
// That's why no mutexes are required.
diff --git a/tderesources/caldav/resource.h b/tderesources/caldav/resource.h
index 2d0c3ec0..7e4bbdc5 100644
--- a/tderesources/caldav/resource.h
+++ b/tderesources/caldav/resource.h
@@ -26,7 +26,7 @@
#include <tdeabc/locknull.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tdeconfig.h>
namespace KCal {
@@ -43,7 +43,7 @@ class CalDavWriter;
*/
class KDE_EXPORT ResourceCalDav : public ResourceCached
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/carddav/CMakeLists.txt b/tderesources/carddav/CMakeLists.txt
index 11e139a2..4d821af0 100644
--- a/tderesources/carddav/CMakeLists.txt
+++ b/tderesources/carddav/CMakeLists.txt
@@ -28,9 +28,11 @@ link_directories(
##### other data ################################
-install(
- FILES tdeabc_carddav.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc )
+tde_create_translated_desktop(
+ SOURCE tdeabc_carddav.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc
+ PO_DIR tderesources-desktops
+)
##### tdeabc_carddav (module) #####################
diff --git a/tderesources/carddav/config.h b/tderesources/carddav/config.h
index e9919723..027dc069 100644
--- a/tderesources/carddav/config.h
+++ b/tderesources/carddav/config.h
@@ -38,7 +38,7 @@ class CardDavSaveConfig;
*/
class KDE_EXPORT ResourceCardDavConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/carddav/configwidgets.cpp b/tderesources/carddav/configwidgets.cpp
index d0e55a5f..60fc5ed2 100644
--- a/tderesources/carddav/configwidgets.cpp
+++ b/tderesources/carddav/configwidgets.cpp
@@ -102,8 +102,8 @@ CardDavReloadConfig::CardDavReloadConfig( TQWidget *parent )
d->mGroup->insert( automaticReloadOnStartup, 1 );
d->mGroup->insert( noAutomaticReload, 0 );
- connect( intervalRadio, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( slotIntervalToggled( bool ) ) );
+ connect( intervalRadio, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( slotIntervalToggled( bool ) ) );
TQHBox *intervalBox = new TQHBox( groupBox );
//new TQLabel( i18nc( "@label:spinbox", "Interval in minutes:" ), intervalBox );
@@ -112,7 +112,7 @@ CardDavReloadConfig::CardDavReloadConfig( TQWidget *parent )
d->mIntervalSpin->setRange( 1, 900 );
d->mIntervalSpin->setEnabled( false );
- groupBox->setColumnLayout(1, Qt::Vertical);
+ groupBox->setColumnLayout(1, TQt::Vertical);
TQVBoxLayout *vbox = new TQVBoxLayout(groupBox->layout());
vbox->addWidget(intervalRadio);
vbox->addWidget(intervalBox);
@@ -178,8 +178,8 @@ CardDavSaveConfig::CardDavSaveConfig( TQWidget *parent )
d->mGroup->insert( onExit, 1 );
d->mGroup->insert( intervalRadio, 2 );
- connect( intervalRadio, TQT_SIGNAL( toggled( bool ) ),
- TQT_SLOT( slotIntervalToggled( bool ) ) );
+ connect( intervalRadio, TQ_SIGNAL( toggled( bool ) ),
+ TQ_SLOT( slotIntervalToggled( bool ) ) );
TQHBox *intervalBox = new TQHBox( groupBox );
//new TQLabel( i18nc( "@label:spinbox", "Interval in minutes:" ), intervalBox );
@@ -205,7 +205,7 @@ CardDavSaveConfig::CardDavSaveConfig( TQWidget *parent )
intervalRadio->hide();
intervalBox->hide();
- groupBox->setColumnLayout(1, Qt::Vertical);
+ groupBox->setColumnLayout(1, TQt::Vertical);
TQVBoxLayout *vbox = new TQVBoxLayout(groupBox->layout());
vbox->addWidget(delay);
vbox->addWidget(every);
diff --git a/tderesources/carddav/configwidgets.h b/tderesources/carddav/configwidgets.h
index f63535c9..3fcb10f8 100644
--- a/tderesources/carddav/configwidgets.h
+++ b/tderesources/carddav/configwidgets.h
@@ -48,7 +48,7 @@ class ResourceCached;
*/
class KDE_EXPORT CardDavReloadConfig : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit CardDavReloadConfig( TQWidget *parent = 0 );
@@ -75,7 +75,7 @@ class KDE_EXPORT CardDavReloadConfig : public TQWidget
*/
class KDE_EXPORT CardDavSaveConfig : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
explicit CardDavSaveConfig( TQWidget *parent = 0 );
diff --git a/tderesources/carddav/resource.cpp b/tderesources/carddav/resource.cpp
index 69eb98e4..ddd6928e 100644
--- a/tderesources/carddav/resource.cpp
+++ b/tderesources/carddav/resource.cpp
@@ -197,7 +197,7 @@ bool ResourceCardDav::doSave() {
clearChanges();
if (mWriteRetryTimer != NULL) {
if (mWriteRetryTimer->isActive() == false) {
- disconnect( mWriteRetryTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(doSave()) );
+ disconnect( mWriteRetryTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(doSave()) );
delete mWriteRetryTimer;
mWriteRetryTimer = NULL;
}
@@ -256,8 +256,8 @@ void ResourceCardDav::init() {
// creating jobs
// TQt4 handles this quite differently, as shown below,
// whereas TQt3 needs events (see ::event())
-// connect(mLoader, TQT_SIGNAL(finished()), this, TQT_SLOT(loadFinished()));
-// connect(mWriter, TQT_SIGNAL(finished()), this, TQT_SLOT(writingFinished()));
+// connect(mLoader, TQ_SIGNAL(finished()), this, TQ_SLOT(loadFinished()));
+// connect(mWriter, TQ_SIGNAL(finished()), this, TQ_SLOT(writingFinished()));
setType("ResourceCardDav");
}
@@ -609,7 +609,7 @@ bool ResourceCardDav::startWriting(const TQString& url) {
if ((mLoader->running() == true) || (mLoadingQueue.isEmpty() == false) || (mWriter->running() == true) || (mWritingQueue.isEmpty() == false)) {
if (mWriteRetryTimer == NULL) {
mWriteRetryTimer = new TQTimer(this);
- connect( mWriteRetryTimer, TQT_SIGNAL(timeout()), TQT_SLOT(doSave()) );
+ connect( mWriteRetryTimer, TQ_SIGNAL(timeout()), TQ_SLOT(doSave()) );
}
mWriteRetryTimer->start(1000, TRUE);
return false;
diff --git a/tderesources/carddav/resource.h b/tderesources/carddav/resource.h
index caec0d07..e255714a 100644
--- a/tderesources/carddav/resource.h
+++ b/tderesources/carddav/resource.h
@@ -25,7 +25,7 @@
#include <tdeabc/locknull.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tdeconfig.h>
namespace TDEABC {
@@ -42,7 +42,7 @@ class CardDavWriter;
*/
class KDE_EXPORT ResourceCardDav : public ResourceCached
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/carddav/tdeabc_carddav.desktop b/tderesources/carddav/tdeabc_carddav.desktop
index a1efd4ab..fed13fe3 100644
--- a/tderesources/carddav/tdeabc_carddav.desktop
+++ b/tderesources/carddav/tdeabc_carddav.desktop
@@ -1,50 +1,6 @@
[Desktop Entry]
Name=CardDAV Server (e.g. Zimbra Contacts)
-Name[af]=CardDAV bediener (bv. Zimbra Contacts)
-Name[bg]=Сървър CardDAV (e.g. Zimbra Contacts)
-Name[br]=Servijer CardDAV (e.g. Zimbra Contacts)
-Name[ca]=Servidor CardDAV (p.ex. Zimbra Contacts)
-Name[cs]=CardDAV server (např. Zimbra Contacts)
-Name[da]=CardDAV-server (f.eks. Zimbra Contacts)
-Name[de]=CardDAV-Server (z. B. Zimbra Contacts)
-Name[el]=Εξυπηρετητής CardDAV (π.χ. Zimbra Contacts)
-Name[es]=Servidor CardDAV (por ejemplo, Zimbra Contacts)
-Name[et]=CardDAV server (nt. Zimbra Contacts)
-Name[eu]=CardDAV zerbitzaria (adib. Zimbra Contacts)
-Name[fa]=کارساز CardDAV (مثلاً Zimbra Contacts)
-Name[fi]=CardDAV-palvelin (esim. Zimbra Contacts)
-Name[fr]=CardDAV Serveur (ex. Zimbra Contacts)
-Name[fy]=CardDAV-tsjinner (Zimbra Contacts)
-Name[ga]=Freastalaí CardDAV (m.sh. Zimbra Contacts)
-Name[gl]=Servidor CardDAV (e.g. Zimbra Contacts)
-Name[hu]=CardDAV-kiszolgáló (pl. Zimbra Contacts)
-Name[is]=CardDAV þjónn (t.d. Zimbra Contacts)
-Name[it]=Server CardDAV (per es. Zimbra Contacts)
-Name[ja]=CardDAV サーバ (例 Zimbra Contacts)
-Name[ka]=სერვერი CardDAV (მაგ., Zimbra Contacts)
-Name[kk]=CardDAV сервері (мысалы Zimbra Contacts)
-Name[km]=ម៉ាស៊ីន​បម្រើ CardDAV (ឧ. Zimbra Contacts)
-Name[lt]=CardDAV serveris (pvz.: Zimbra Contacts)
-Name[ms]=Pelayan CardDAV (misalnya Zimbra Contacts)
-Name[nb]=CardDAV-tjener (f.eks. Zimbra Contacts)
-Name[nds]=CardDAV-Server (t.B. Zimbra Contacts)
-Name[ne]=समूह DAV सर्भर (जस्तै: खुला ग्रुपवेयर)
-Name[nl]=CardDAV-server (Zimbra Contacts)
-Name[nn]=CardDAV-tenar (t.d. Zimbra Contacts)
-Name[pl]=Serwer CardDAV (np. Zimbra Contacts)
-Name[pt]=Servidor CardDAV (por exemplo Zimbra Contacts)
-Name[pt_BR]=Servidor GroupDav (p. ex. Zimbra Contacts)
-Name[ru]=Сервер CardDAV (например, Zimbra Contacts)
-Name[sk]=CardDAV Server (napr. Zimbra Contacts)
-Name[sl]=Strežnik CardDAV (npr. Zimbra Contacts)
-Name[sr]=CardDAV сервер (нпр. Zimbra Contacts)
-Name[sr@Latn]=CardDAV server (npr. Zimbra Contacts)
-Name[sv]=CardDAV-server (t.ex. Zimbra Contacts)
-Name[ta]=CardDAV சேவகன் (e.g. Zimbra Contacts)
-Name[tr]=CardDAV Sunucusu (ör. Zimbra Contacts)
-Name[uk]=Сервер CardDAV (напр., Zimbra Contacts)
-Name[zh_CN]=CardDAV 服务器(如 Zimbra Contacts)
-Name[zh_TW]=CardDAV 伺服器 (如: Zimbra Contacts)
+
X-TDE-Library=tdeabc_carddav
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/egroupware/CMakeLists.txt b/tderesources/egroupware/CMakeLists.txt
index 11fe32a8..99d12624 100644
--- a/tderesources/egroupware/CMakeLists.txt
+++ b/tderesources/egroupware/CMakeLists.txt
@@ -33,9 +33,23 @@ install( FILES
##### other data ################################
-install( FILES tdeabc_xmlrpc.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc )
-install( FILES kcal_xmlrpc.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal )
-install( FILES knotes_xmlrpc.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/knotes )
+tde_create_translated_desktop(
+ SOURCE tdeabc_xmlrpc.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc
+ PO_DIR tderesources-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE kcal_xmlrpc.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal
+ PO_DIR tderesources-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE knotes_xmlrpc.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/knotes
+ PO_DIR tderesources-desktops
+)
##### egwcommon (static) ########################
diff --git a/tderesources/egroupware/debugdialog.h b/tderesources/egroupware/debugdialog.h
index bde17988..008e881e 100644
--- a/tderesources/egroupware/debugdialog.h
+++ b/tderesources/egroupware/debugdialog.h
@@ -31,7 +31,7 @@ class KTextBrowser;
*/
class DebugDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/egroupware/kcal_resourcexmlrpc.cpp b/tderesources/egroupware/kcal_resourcexmlrpc.cpp
index 676770ed..9ccc24b5 100644
--- a/tderesources/egroupware/kcal_resourcexmlrpc.cpp
+++ b/tderesources/egroupware/kcal_resourcexmlrpc.cpp
@@ -197,8 +197,8 @@ bool ResourceXMLRPC::doOpen()
args.insert( "password", mPrefs->password() );
mServer->call( "system.login", TQVariant( args ),
- this, TQT_SLOT( loginFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( loginFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
mSynchronizer->start();
@@ -214,8 +214,8 @@ void ResourceXMLRPC::doClose()
args.insert( "kp3", mKp3 );
mServer->call( "system.logout", TQVariant( args ),
- this, TQT_SLOT( logoutFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( logoutFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
mSynchronizer->start();
}
@@ -243,8 +243,8 @@ bool ResourceXMLRPC::doLoad()
args.insert( "end", TQDateTime( TQDate::currentDate().addDays( 2000 ) ) );
mServer->call( SearchEventsCommand, args,
- this, TQT_SLOT( listEventsFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( listEventsFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
args.clear();
columns.insert( "type", "task" );
@@ -253,16 +253,16 @@ bool ResourceXMLRPC::doLoad()
args.insert( "order", "id_parent" );
mServer->call( SearchTodosCommand, args,
- this, TQT_SLOT( listTodosFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( listTodosFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
mServer->call( LoadEventCategoriesCommand, TQVariant( TQStringVariantMap() ),
- this, TQT_SLOT( loadEventCategoriesFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( loadEventCategoriesFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
mServer->call( LoadTodoCategoriesCommand, TQVariant( false ),
- this, TQT_SLOT( loadTodoCategoriesFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( loadTodoCategoriesFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
return true;
}
@@ -286,8 +286,8 @@ bool ResourceXMLRPC::doSave()
args.insert( "id", idMapper().remoteId( (*evIt)->uid() ).toInt() );
mServer->call( AddEventCommand, TQVariant( args ),
- this, TQT_SLOT( updateEventFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( updateEventFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
counter++;
}
}
@@ -302,8 +302,8 @@ bool ResourceXMLRPC::doSave()
args.insert( "id", idMapper().remoteId( (*todoIt)->uid() ).toInt() );
mServer->call( AddTodoCommand, TQVariant( args ),
- this, TQT_SLOT( updateTodoFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( updateTodoFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
counter++;
}
}
@@ -340,8 +340,8 @@ bool ResourceXMLRPC::addEvent( Event* ev )
writeEvent( ev, args );
args.insert( "id", idMapper().remoteId( ev->uid() ).toInt() );
mServer->call( AddEventCommand, TQVariant( args ),
- this, TQT_SLOT( updateEventFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( updateEventFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
mCalendar.deleteIncidence( oldEvent );
mCalendar.addIncidence( ev );
@@ -350,8 +350,8 @@ bool ResourceXMLRPC::addEvent( Event* ev )
} else { // new event
writeEvent( ev, args );
mServer->call( AddEventCommand, TQVariant( args ),
- this, TQT_SLOT( addEventFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ),
+ this, TQ_SLOT( addEventFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ),
TQVariant( ev->uid() ) );
mCalendar.addEvent( ev );
@@ -369,9 +369,9 @@ bool ResourceXMLRPC::deleteEvent( Event* ev )
return false;
mServer->call( DeleteEventCommand, idMapper().remoteId( ev->uid() ).toInt(),
- this, TQT_SLOT( deleteEventFinished( const TQValueList<TQVariant>&,
+ this, TQ_SLOT( deleteEventFinished( const TQValueList<TQVariant>&,
const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ),
TQVariant( ev->uid() ) );
return true;
}
@@ -420,8 +420,8 @@ bool ResourceXMLRPC::addTodo( Todo *todo )
writeTodo( todo, args );
args.insert( "id", idMapper().remoteId( todo->uid() ).toInt() );
mServer->call( AddTodoCommand, TQVariant( args ),
- this, TQT_SLOT( updateTodoFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( updateTodoFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
mCalendar.deleteIncidence( oldTodo );
mCalendar.addIncidence( todo );
@@ -430,8 +430,8 @@ bool ResourceXMLRPC::addTodo( Todo *todo )
} else { // new todo
writeTodo( todo, args );
mServer->call( AddTodoCommand, TQVariant( args ),
- this, TQT_SLOT( addTodoFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ),
+ this, TQ_SLOT( addTodoFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ),
TQVariant( todo->uid() ) );
mCalendar.addTodo( todo );
@@ -449,9 +449,9 @@ bool ResourceXMLRPC::deleteTodo( Todo *todo )
return false;
mServer->call( DeleteTodoCommand, idMapper().remoteId( todo->uid() ).toInt(),
- this, TQT_SLOT( deleteTodoFinished( const TQValueList<TQVariant>&,
+ this, TQ_SLOT( deleteTodoFinished( const TQValueList<TQVariant>&,
const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ),
TQVariant( todo->uid() ) );
return true;
}
diff --git a/tderesources/egroupware/kcal_resourcexmlrpc.h b/tderesources/egroupware/kcal_resourcexmlrpc.h
index 776bc68b..b3eef632 100644
--- a/tderesources/egroupware/kcal_resourcexmlrpc.h
+++ b/tderesources/egroupware/kcal_resourcexmlrpc.h
@@ -29,7 +29,7 @@
#include <tdeconfig.h>
#include <kurl.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "libkcal/calendarlocal.h"
#include "libkcal/incidence.h"
@@ -52,7 +52,7 @@ class EGroupwarePrefs;
*/
class KDE_EXPORT ResourceXMLRPC : public ResourceCached
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/egroupware/kcal_resourcexmlrpcconfig.h b/tderesources/egroupware/kcal_resourcexmlrpcconfig.h
index 2790717f..0cd619c0 100644
--- a/tderesources/egroupware/kcal_resourcexmlrpcconfig.h
+++ b/tderesources/egroupware/kcal_resourcexmlrpcconfig.h
@@ -22,7 +22,7 @@
#define RESOURCEXMLRPCCONFIG_H
#include <tderesources/configwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KIntSpinBox;
class KLineEdit;
@@ -32,7 +32,7 @@ namespace KCal {
class KDE_EXPORT ResourceXMLRPCConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/egroupware/kcal_xmlrpc.desktop b/tderesources/egroupware/kcal_xmlrpc.desktop
index 99aa303e..65be66e5 100644
--- a/tderesources/egroupware/kcal_xmlrpc.desktop
+++ b/tderesources/egroupware/kcal_xmlrpc.desktop
@@ -1,48 +1,6 @@
[Desktop Entry]
Name=eGroupware Server (via XML-RPC)
-Name[af]=eGroupware Bediener (via XML-RPC)
-Name[bg]=Сървър eGroupware (чрез XML-RPC)
-Name[br]=Servijer eGroupware (gant XML-RPC)
-Name[ca]=Servidor eGroupware (via XML-RPC)
-Name[cs]=eGroupware Server (přes XML-RPC)
-Name[da]=eGroupware server (via XML-RPC)
-Name[el]=Εξυπηρετητής eGroupware (μέσω XML-RPC)
-Name[es]=Servidor de eGroupware (por medio de XML-RPC)
-Name[et]=eGroupware server (XML-RPC vahendusel)
-Name[eu]=eGroupware zerbitzaria (XML-RPC bidez)
-Name[fa]=کارساز eGroupware (از طریق XML-RPC)
-Name[fi]=eGroupware-palvelin (XML-RPC kautta)
-Name[fr]=Serveur eGroupware (via XML-RPC)
-Name[fy]=eGroupware-tsjinner (fia XML-RPC)
-Name[ga]=Freastalaí eGroupware (via XML-RPC)
-Name[gl]=Servidor eGroupware (mediante XML-RPC)
-Name[hu]=eGroupware-kiszolgáló (XML-RPC-n keresztül)
-Name[is]=eGroupware þjónn (gegnum XML-RPC)
-Name[it]=Server eGroupware (via XML-RPC)
-Name[ja]=eGroupware サーバ (XML-RPC 経由)
-Name[kk]=eGroupware сервері (XML-RPC арқылы)
-Name[km]=ម៉ាស៊ីន​បម្រើ eGroupware (តាម​រយៈ XML-RPC)
-Name[lt]=eGroupware serveris (per XML-RPC)
-Name[ms]=Pelayan eGroupware (melalui XML-RPC)
-Name[nb]=eGroupware-tjener (via XML-RPPC)
-Name[nds]=eGroupware-Server (över XML-RPC)
-Name[ne]=(XML-RPC मार्फत) eGroupware सर्भर
-Name[nl]=eGroupware-server (via XML-RPC)
-Name[nn]=eGroupware-tenar (via XML-RPC)
-Name[pl]=Serwer eGroupware (poprzez XML-RPC)
-Name[pt]=Servidor eGroupware (via XML-RPC)
-Name[pt_BR]=Servidor eGroupware (via XML-RPC)
-Name[ru]=Сервер eGroupware (через XML-RPC)
-Name[sk]=eGroupware Server (cez XML-RPC)
-Name[sl]=Strežnik eGroupware (preko XML-RPC)
-Name[sr]=eGroupware сервер (преко XML-RPC)
-Name[sr@Latn]=eGroupware server (preko XML-RPC)
-Name[sv]=eGroupware-server (via XML-RPC)
-Name[ta]=eGroupware சேவகன் (via XML-RPC)
-Name[tr]=eGroupware Sunucusu (XML-RPC ile)
-Name[uk]=Сервер eGroupware (через XML-RPC)
-Name[zh_CN]=eGroupware 服务器(通过 XML-RPC)
-Name[zh_TW]=eGroupware 伺服器(透過 XML-RPC)
+
X-TDE-Library=kcal_xmlrpc
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/egroupware/knotes_resourcexmlrpc.cpp b/tderesources/egroupware/knotes_resourcexmlrpc.cpp
index 9a477076..05306c87 100644
--- a/tderesources/egroupware/knotes_resourcexmlrpc.cpp
+++ b/tderesources/egroupware/knotes_resourcexmlrpc.cpp
@@ -123,8 +123,8 @@ bool ResourceXMLRPC::load()
args.insert( "password", mPrefs->password() );
mServer->call( "system.login", TQVariant( args ),
- this, TQT_SLOT( loginFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( loginFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
mSynchronizer->start();
@@ -135,8 +135,8 @@ bool ResourceXMLRPC::load()
args.insert( "order", "id_parent" );
mServer->call( SearchNotesCommand, args,
- this, TQT_SLOT( listNotesFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( listNotesFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
mSynchronizer->start();
@@ -163,15 +163,15 @@ bool ResourceXMLRPC::addNote( KCal::Journal *journal )
writeNote( journal, args );
args.insert( "id", mUidMap[ journal->uid() ].toInt() );
mServer->call( AddNoteCommand, TQVariant( args ),
- this, TQT_SLOT( updateNoteFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( updateNoteFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
mCalendar.addJournal( journal );
added = true;
}
} else {
mServer->call( AddNoteCommand, TQVariant( args ),
- this, TQT_SLOT( addNoteFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ),
+ this, TQ_SLOT( addNoteFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ),
TQVariant( journal->uid() ) );
mCalendar.addJournal( journal );
@@ -189,8 +189,8 @@ bool ResourceXMLRPC::deleteNote( KCal::Journal *journal )
int id = mUidMap[ journal->uid() ].toInt();
mServer->call( DeleteNoteCommand, id,
- this, TQT_SLOT( deleteNoteFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ),
+ this, TQ_SLOT( deleteNoteFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ),
TQVariant( journal->uid() ) );
mSynchronizer->start();
diff --git a/tderesources/egroupware/knotes_resourcexmlrpc.h b/tderesources/egroupware/knotes_resourcexmlrpc.h
index 2e91d66f..e0b19cfc 100644
--- a/tderesources/egroupware/knotes_resourcexmlrpc.h
+++ b/tderesources/egroupware/knotes_resourcexmlrpc.h
@@ -27,7 +27,7 @@
#include <tdeconfig.h>
#include <kurl.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "libkcal/calendarlocal.h"
#include "libkcal/journal.h"
@@ -48,7 +48,7 @@ class EGroupwarePrefs;
*/
class KDE_EXPORT ResourceXMLRPC : public ResourceNotes
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/egroupware/knotes_resourcexmlrpcconfig.h b/tderesources/egroupware/knotes_resourcexmlrpcconfig.h
index e087dbe2..25557d4f 100644
--- a/tderesources/egroupware/knotes_resourcexmlrpcconfig.h
+++ b/tderesources/egroupware/knotes_resourcexmlrpcconfig.h
@@ -22,7 +22,7 @@
#define RESOURCEXMLRPCCONFIG_H
#include <tderesources/configwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KIntSpinBox;
class KLineEdit;
@@ -32,7 +32,7 @@ namespace KNotes {
class KDE_EXPORT ResourceXMLRPCConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/egroupware/knotes_xmlrpc.desktop b/tderesources/egroupware/knotes_xmlrpc.desktop
index b2dc070b..925852e7 100644
--- a/tderesources/egroupware/knotes_xmlrpc.desktop
+++ b/tderesources/egroupware/knotes_xmlrpc.desktop
@@ -1,48 +1,6 @@
[Desktop Entry]
Name=eGroupware Server (via XML-RPC)
-Name[af]=eGroupware Bediener (via XML-RPC)
-Name[bg]=Сървър eGroupware (чрез XML-RPC)
-Name[br]=Servijer eGroupware (gant XML-RPC)
-Name[ca]=Servidor eGroupware (via XML-RPC)
-Name[cs]=eGroupware Server (přes XML-RPC)
-Name[da]=eGroupware server (via XML-RPC)
-Name[el]=Εξυπηρετητής eGroupware (μέσω XML-RPC)
-Name[es]=Servidor de eGroupware (por medio de XML-RPC)
-Name[et]=eGroupware server (XML-RPC vahendusel)
-Name[eu]=eGroupware zerbitzaria (XML-RPC bidez)
-Name[fa]=کارساز eGroupware (از طریق XML-RPC)
-Name[fi]=eGroupware-palvelin (XML-RPC kautta)
-Name[fr]=Serveur eGroupware (via XML-RPC)
-Name[fy]=eGroupware-tsjinner (fia XML-RPC)
-Name[ga]=Freastalaí eGroupware (via XML-RPC)
-Name[gl]=Servidor eGroupware (mediante XML-RPC)
-Name[hu]=eGroupware-kiszolgáló (XML-RPC-n keresztül)
-Name[is]=eGroupware þjónn (gegnum XML-RPC)
-Name[it]=Server eGroupware (via XML-RPC)
-Name[ja]=eGroupware サーバ (XML-RPC 経由)
-Name[kk]=eGroupware сервері (XML-RPC арқылы)
-Name[km]=ម៉ាស៊ីន​បម្រើ eGroupware (តាម​រយៈ XML-RPC)
-Name[lt]=eGroupware serveris (per XML-RPC)
-Name[ms]=Pelayan eGroupware (melalui XML-RPC)
-Name[nb]=eGroupware-tjener (via XML-RPPC)
-Name[nds]=eGroupware-Server (över XML-RPC)
-Name[ne]=(XML-RPC मार्फत) eGroupware सर्भर
-Name[nl]=eGroupware-server (via XML-RPC)
-Name[nn]=eGroupware-tenar (via XML-RPC)
-Name[pl]=Serwer eGroupware (poprzez XML-RPC)
-Name[pt]=Servidor eGroupware (via XML-RPC)
-Name[pt_BR]=Servidor eGroupware (via XML-RPC)
-Name[ru]=Сервер eGroupware (через XML-RPC)
-Name[sk]=eGroupware Server (cez XML-RPC)
-Name[sl]=Strežnik eGroupware (preko XML-RPC)
-Name[sr]=eGroupware сервер (преко XML-RPC)
-Name[sr@Latn]=eGroupware server (preko XML-RPC)
-Name[sv]=eGroupware-server (via XML-RPC)
-Name[ta]=eGroupware சேவகன் (via XML-RPC)
-Name[tr]=eGroupware Sunucusu (XML-RPC ile)
-Name[uk]=Сервер eGroupware (через XML-RPC)
-Name[zh_CN]=eGroupware 服务器(通过 XML-RPC)
-Name[zh_TW]=eGroupware 伺服器(透過 XML-RPC)
+
X-TDE-Library=knotes_xmlrpc
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/egroupware/synchronizer.h b/tderesources/egroupware/synchronizer.h
index ed9fd135..9e14fd93 100644
--- a/tderesources/egroupware/synchronizer.h
+++ b/tderesources/egroupware/synchronizer.h
@@ -37,8 +37,8 @@
...
job = TDEIO::file_copy( url, file, -1, true );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotResult( TDEIO::Job * ) ) );
mSynchronizer.start(); // will block here until the slot was called
...
diff --git a/tderesources/egroupware/tdeabc_resourcexmlrpc.cpp b/tderesources/egroupware/tdeabc_resourcexmlrpc.cpp
index dd791cd8..4e95f792 100644
--- a/tderesources/egroupware/tdeabc_resourcexmlrpc.cpp
+++ b/tderesources/egroupware/tdeabc_resourcexmlrpc.cpp
@@ -159,8 +159,8 @@ bool ResourceXMLRPC::doOpen()
args.insert( "password", mPrefs->password() );
mServer->call( "system.login", TQVariant( args ),
- this, TQT_SLOT( loginFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( loginFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
mSynchronizer->start();
@@ -174,8 +174,8 @@ void ResourceXMLRPC::doClose()
args.insert( "kp3", mKp3 );
mServer->call( "system.logout", TQVariant( args ),
- this, TQT_SLOT( logoutFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( logoutFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
mSynchronizer->start();
}
@@ -205,16 +205,16 @@ bool ResourceXMLRPC::asyncLoad()
args.insert( "include_users", "calendar" );
mServer->call( SearchContactsCommand, args,
- this, TQT_SLOT( listContactsFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( listContactsFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
mServer->call( LoadCategoriesCommand, TQVariant( false ),
- this, TQT_SLOT( loadCategoriesFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( loadCategoriesFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
mServer->call( LoadCustomFieldsCommand, TQVariant( TQValueList<TQVariant>() ),
- this, TQT_SLOT( loadCustomFieldsFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
+ this, TQ_SLOT( loadCustomFieldsFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( fault( int, const TQString&, const TQVariant& ) ) );
return true;
}
@@ -253,8 +253,8 @@ void ResourceXMLRPC::addContact( const Addressee& addr )
writeContact( addr, args );
mServer->call( AddContactCommand, args,
- this, TQT_SLOT( addContactFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( addContactFault( int, const TQString&, const TQVariant& ) ),
+ this, TQ_SLOT( addContactFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( addContactFault( int, const TQString&, const TQVariant& ) ),
TQVariant( addr.uid() ) );
}
@@ -270,8 +270,8 @@ void ResourceXMLRPC::updateContact( const Addressee& addr )
args.insert( "id", idMapper().remoteId( addr.uid() ) );
mServer->call( AddContactCommand, args,
- this, TQT_SLOT( updateContactFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( updateContactFault( int, const TQString&, const TQVariant& ) ),
+ this, TQ_SLOT( updateContactFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( updateContactFault( int, const TQString&, const TQVariant& ) ),
TQVariant( addr.uid() ) );
}
@@ -284,8 +284,8 @@ void ResourceXMLRPC::deleteContact( const Addressee& addr )
}
mServer->call( DeleteContactCommand, idMapper().remoteId( addr.uid() ),
- this, TQT_SLOT( deleteContactFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
- this, TQT_SLOT( deleteContactFault( int, const TQString&, const TQVariant& ) ),
+ this, TQ_SLOT( deleteContactFinished( const TQValueList<TQVariant>&, const TQVariant& ) ),
+ this, TQ_SLOT( deleteContactFault( int, const TQString&, const TQVariant& ) ),
TQVariant( addr.uid() ) );
}
diff --git a/tderesources/egroupware/tdeabc_resourcexmlrpc.h b/tderesources/egroupware/tdeabc_resourcexmlrpc.h
index 6458b809..d671912a 100644
--- a/tderesources/egroupware/tdeabc_resourcexmlrpc.h
+++ b/tderesources/egroupware/tdeabc_resourcexmlrpc.h
@@ -22,7 +22,7 @@
#define TDEABC_RESOURCEXMLRPC_H
#include <tqmap.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "libtdepim/tdeabcresourcecached.h"
@@ -39,7 +39,7 @@ class EGroupwarePrefs;
class KDE_EXPORT ResourceXMLRPC : public ResourceCached
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/egroupware/tdeabc_resourcexmlrpcconfig.h b/tderesources/egroupware/tdeabc_resourcexmlrpcconfig.h
index f4893c84..6208f684 100644
--- a/tderesources/egroupware/tdeabc_resourcexmlrpcconfig.h
+++ b/tderesources/egroupware/tdeabc_resourcexmlrpcconfig.h
@@ -22,7 +22,7 @@
#define RESOURCEXMLRPCCONFIG_H
#include <tderesources/configwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KLineEdit;
class KURLRequester;
@@ -31,7 +31,7 @@ namespace TDEABC {
class KDE_EXPORT ResourceXMLRPCConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/egroupware/tdeabc_xmlrpc.desktop b/tderesources/egroupware/tdeabc_xmlrpc.desktop
index cfd5bbcb..a723056c 100644
--- a/tderesources/egroupware/tdeabc_xmlrpc.desktop
+++ b/tderesources/egroupware/tdeabc_xmlrpc.desktop
@@ -1,48 +1,6 @@
[Desktop Entry]
Name=eGroupware Server (via XML-RPC)
-Name[af]=eGroupware Bediener (via XML-RPC)
-Name[bg]=Сървър eGroupware (чрез XML-RPC)
-Name[br]=Servijer eGroupware (gant XML-RPC)
-Name[ca]=Servidor eGroupware (via XML-RPC)
-Name[cs]=eGroupware Server (přes XML-RPC)
-Name[da]=eGroupware server (via XML-RPC)
-Name[el]=Εξυπηρετητής eGroupware (μέσω XML-RPC)
-Name[es]=Servidor de eGroupware (por medio de XML-RPC)
-Name[et]=eGroupware server (XML-RPC vahendusel)
-Name[eu]=eGroupware zerbitzaria (XML-RPC bidez)
-Name[fa]=کارساز eGroupware (از طریق XML-RPC)
-Name[fi]=eGroupware-palvelin (XML-RPC kautta)
-Name[fr]=Serveur eGroupware (via XML-RPC)
-Name[fy]=eGroupware-tsjinner (fia XML-RPC)
-Name[ga]=Freastalaí eGroupware (via XML-RPC)
-Name[gl]=Servidor eGroupware (mediante XML-RPC)
-Name[hu]=eGroupware-kiszolgáló (XML-RPC-n keresztül)
-Name[is]=eGroupware þjónn (gegnum XML-RPC)
-Name[it]=Server eGroupware (via XML-RPC)
-Name[ja]=eGroupware サーバ (XML-RPC 経由)
-Name[kk]=eGroupware сервері (XML-RPC арқылы)
-Name[km]=ម៉ាស៊ីន​បម្រើ eGroupware (តាម​រយៈ XML-RPC)
-Name[lt]=eGroupware serveris (per XML-RPC)
-Name[ms]=Pelayan eGroupware (melalui XML-RPC)
-Name[nb]=eGroupware-tjener (via XML-RPPC)
-Name[nds]=eGroupware-Server (över XML-RPC)
-Name[ne]=(XML-RPC मार्फत) eGroupware सर्भर
-Name[nl]=eGroupware-server (via XML-RPC)
-Name[nn]=eGroupware-tenar (via XML-RPC)
-Name[pl]=Serwer eGroupware (poprzez XML-RPC)
-Name[pt]=Servidor eGroupware (via XML-RPC)
-Name[pt_BR]=Servidor eGroupware (via XML-RPC)
-Name[ru]=Сервер eGroupware (через XML-RPC)
-Name[sk]=eGroupware Server (cez XML-RPC)
-Name[sl]=Strežnik eGroupware (preko XML-RPC)
-Name[sr]=eGroupware сервер (преко XML-RPC)
-Name[sr@Latn]=eGroupware server (preko XML-RPC)
-Name[sv]=eGroupware-server (via XML-RPC)
-Name[ta]=eGroupware சேவகன் (via XML-RPC)
-Name[tr]=eGroupware Sunucusu (XML-RPC ile)
-Name[uk]=Сервер eGroupware (через XML-RPC)
-Name[zh_CN]=eGroupware 服务器(通过 XML-RPC)
-Name[zh_TW]=eGroupware 伺服器(透過 XML-RPC)
+
X-TDE-Library=tdeabc_xmlrpc
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/egroupware/xmlrpciface.cpp b/tderesources/egroupware/xmlrpciface.cpp
index 4afb0b84..29d5563e 100644
--- a/tderesources/egroupware/xmlrpciface.cpp
+++ b/tderesources/egroupware/xmlrpciface.cpp
@@ -78,10 +78,10 @@ void Query::call( const TQString &server, const TQString &method,
job->addMetaData( "content-type", "Content-Type: text/xml; charset=utf-8" );
job->addMetaData( "ConnectTimeout", "50" );
- connect( job, TQT_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
- this, TQT_SLOT( slotData( TDEIO::Job *, const TQByteArray & ) ) );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- this, TQT_SLOT( slotResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
+ this, TQ_SLOT( slotData( TDEIO::Job *, const TQByteArray & ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ this, TQ_SLOT( slotResult( TDEIO::Job * ) ) );
m_pendingJobs.append( job );
}
@@ -222,7 +222,7 @@ TQString Query::marshal( const TQVariant &arg ) const
case TQVariant::ByteArray:
return "<value><base64>" + KCodecs::base64Encode( arg.toByteArray() ) + "</base64></value>\r\n";
case TQVariant::DateTime:
- return "<value><datetime.iso8601>" + arg.toDateTime().toString( Qt::ISODate ) + "</datetime.iso8601></value>\r\n";
+ return "<value><datetime.iso8601>" + arg.toDateTime().toString( TQt::ISODate ) + "</datetime.iso8601></value>\r\n";
case TQVariant::List:
{
TQString markup = "<value><array><data>\r\n";
@@ -279,7 +279,7 @@ TQVariant Query::demarshal( const TQDomElement &elem ) const
else if ( typeName == "base64" )
return TQVariant( KCodecs::base64Decode( TQCString(typeElement.text().latin1()) ) );
else if ( typeName == "datetime" || typeName == "datetime.iso8601" )
- return TQVariant( TQDateTime::fromString( typeElement.text(), Qt::ISODate ) );
+ return TQVariant( TQDateTime::fromString( typeElement.text(), TQt::ISODate ) );
else if ( typeName == "array" )
{
TQValueList<TQVariant> values;
@@ -360,9 +360,9 @@ void Server::call( const TQString &method, const TQValueList<TQVariant> &args,
kdWarning() << "Cannot execute call to " << method << ": empty server URL" << endl;
Query *query = Query::create( id, this );
- connect( query, TQT_SIGNAL( message( const TQValueList<TQVariant> &, const TQVariant& ) ), msgObj, messageSlot );
- connect( query, TQT_SIGNAL( fault( int, const TQString&, const TQVariant& ) ), faultObj, faultSlot );
- connect( query, TQT_SIGNAL( finished( Query* ) ), this, TQT_SLOT( queryFinished( Query* ) ) );
+ connect( query, TQ_SIGNAL( message( const TQValueList<TQVariant> &, const TQVariant& ) ), msgObj, messageSlot );
+ connect( query, TQ_SIGNAL( fault( int, const TQString&, const TQVariant& ) ), faultObj, faultSlot );
+ connect( query, TQ_SIGNAL( finished( Query* ) ), this, TQ_SLOT( queryFinished( Query* ) ) );
mPendingQueries.append( query );
query->call( m_url.url(), method, args, m_userAgent );
diff --git a/tderesources/egroupware/xmlrpciface.h b/tderesources/egroupware/xmlrpciface.h
index df2f3a6d..fb2f23df 100644
--- a/tderesources/egroupware/xmlrpciface.h
+++ b/tderesources/egroupware/xmlrpciface.h
@@ -32,7 +32,7 @@ namespace KXMLRPC
class Query : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -77,7 +77,7 @@ namespace KXMLRPC
class Server : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
Server( const KURL &url = KURL(),
diff --git a/tderesources/exchange/CMakeLists.txt b/tderesources/exchange/CMakeLists.txt
index fc2f9cc3..b3e107f7 100644
--- a/tderesources/exchange/CMakeLists.txt
+++ b/tderesources/exchange/CMakeLists.txt
@@ -27,7 +27,11 @@ link_directories(
##### other data ################################
-install( FILES exchange.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal )
+tde_create_translated_desktop(
+ SOURCE exchange.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal
+ PO_DIR tderesources-desktops
+)
##### resourcecalendarexchange (module) #########
diff --git a/tderesources/exchange/exchange.desktop b/tderesources/exchange/exchange.desktop
index 96f57cda..945c09b6 100644
--- a/tderesources/exchange/exchange.desktop
+++ b/tderesources/exchange/exchange.desktop
@@ -1,53 +1,8 @@
[Desktop Entry]
+Name=Exchange 2000 Server
+
Type=Service
X-TDE-Library=resourcecalendarexchange
X-TDE-ResourceFamily=calendar
X-TDE-ResourceType=exchange
X-TDE-ServiceTypes=TDEResources/Plugin
-Name=Exchange 2000 Server
-Name[af]=Exchange 2000 Bediener
-Name[be]=Сэрвэр Exchange 2000
-Name[bg]=Сървър Exchange 2000
-Name[br]=Servijer Exchange 2000
-Name[ca]=Servidor Exchange 2000
-Name[cs]=Exchange 2000 server
-Name[da]=Exchange 2000 server
-Name[el]=Εξυπηρετητής Exchange2000
-Name[es]=Servidor Exchange 2000
-Name[et]=Exchange 2000 server
-Name[eu]=Exchange 2000 zerbitzaria
-Name[fa]=کارساز Exchange ۲۰۰۰
-Name[fi]=Exchange 2000 -palvelin
-Name[fr]=Serveur Exchange2000
-Name[fy]=Exchange2000-tsjinner
-Name[ga]=Freastalaí Exchange 2000
-Name[gl]=Servidor Exchange 2000
-Name[hu]=Exchange 2000-kiszolgáló
-Name[is]=Exchange 2000 þjónn
-Name[it]=Server Exchange 2000
-Name[ja]=Exchange 2000 サーバ
-Name[kk]=MS Exchange 2000 сервері
-Name[km]=ម៉ាស៊ីន​បម្រើ Exchange ២០០០
-Name[lt]=Exchange 2000 serveris
-Name[mk]=Exchange 2000-сервер
-Name[ms]=Pelayan Exchange 2000
-Name[nb]=Exchange 2000-tjener
-Name[nds]=Exchange2000-Server
-Name[ne]=एक्सचेन्ज 2000 सर्भर
-Name[nl]=Exchange2000-server
-Name[nn]=Exchange 2000-tenar
-Name[pl]=Serwer Exchange 2000
-Name[pt]=Servidor Exchange 2000
-Name[pt_BR]=Servidor Exchange2000
-Name[ru]=Сервер Microsoft Exchange 2000
-Name[sk]=Exchange 2000 server
-Name[sl]=Strežnik Exchange 2000
-Name[sr]=Exchange 2000 сервер
-Name[sr@Latn]=Exchange 2000 server
-Name[sv]=Exchange 2000-server
-Name[ta]=பரிமாற்ற 2000 சேவகன்
-Name[tr]=Exchange 2000 Sunucusu
-Name[uk]=Сервер Exchange 2000
-Name[zh_CN]=Exchange 2000 服务器
-Name[zh_TW]=Exchange 2000 伺服器
-
diff --git a/tderesources/exchange/exchange_deprecated.desktop b/tderesources/exchange/exchange_deprecated.desktop
index eba22eed..69cb86cb 100644
--- a/tderesources/exchange/exchange_deprecated.desktop
+++ b/tderesources/exchange/exchange_deprecated.desktop
@@ -1,48 +1,4 @@
[Desktop Entry]
Hidden=true
-Name=Exchange 2000 Server (deprecated)
-Name[af]=Exchange 2000 Bediener (nie verder ondersteun)
-Name[bg]=Сървър Exchange 2000 (остаряло)
-Name[ca]=Servidor Exchange 2000 (desaconsellat)
-Name[cs]=Exchange 2000 server (zastaralé)
-Name[da]=Exchange 2000 server (forældet)
-Name[de]=Exchange 2000 Server (veraltet)
-Name[el]=Εξυπηρετητής Exchange2000 (ξεπερασμένος)
-Name[es]=Servidor Exchange 2000 (obsoleto)
-Name[et]=Exchange 2000 server (iganenud)
-Name[eu]=Exchange 2000 zerbitzaria (zaharkituta)
-Name[fa]=کارسازExchange ۲۰۰۰ (محکوم)
-Name[fi]=Exchange 2000 -palvelin (vanhentunut)
-Name[fr]=Serveur Exchange2000 (désuet)
-Name[fy]=Exchange 2000-tsjinner (ôfrieden)
-Name[ga]=Freastalaí Exchange 2000 (as dáta)
-Name[gl]=Servidor Exchange 2000 (desaprobado)
-Name[hu]=Exchange 2000-kiszolgáló (elavult)
-Name[is]=Exchange 2000 þjónn (úrelt)
-Name[it]=Server Exchange 2000 (deprecato)
-Name[ja]=Exchange 2000 サーバ (廃止予定)
-Name[kk]=MS Exchange 2000 сервері (ескірген)
-Name[km]=ម៉ាស៊ីន​បម្រើ Exchange ២០០០ (មិន​សូវ​ល្អ)
-Name[lt]=Exchange 2000 serveris (deprecated)
-Name[mk]=Exchange 2000-сервер (застарено)
-Name[ms]=Pelayan Exchange 2000 (tidak disetujui)
-Name[nb]=Exchange 2000-tjener (frarådet)
-Name[nds]=Exchange2000-Server (utlopen Ünnerstütten)
-Name[ne]=एक्सचेन्ज २००० सर्भर (अनुचित ठानिएको)
-Name[nl]=Exchange 2000-server (afgeraden)
-Name[nn]=Exchange 2000-tenar (frårådd)
-Name[pl]=Serwer Exchange 2000 (przestarzałe)
-Name[pt]=Servidor Exchange 2000 (depreciado)
-Name[pt_BR]=Servidor Exchange2000 (versão de compatibilidade)
-Name[ru]=Сервер Microsoft Exchange 2000 (устаревший)
-Name[sk]=Exchange 2000 server (deprecated)
-Name[sl]=Strežnik Exchange 2000 (opuščeno)
-Name[sr]=Exchange 2000 сервер (неодобраван)
-Name[sr@Latn]=Exchange 2000 server (neodobravan)
-Name[sv]=Exchange 2000-server (avråds från)
-Name[ta]=பரிமாற்ற 2000 சேவகன் (மாறுபாடானது)
-Name[tr]=Exchange 2000 Sunucusu
-Name[uk]=Сервер Exchange 2000 (застаріле)
-Name[zh_CN]=Exchange 2000 服务器(不推荐使用)
-Name[zh_TW]=Exchange 2000 伺服器(已廢除)
+Name=Exchange 2000 Server (deprecated)
diff --git a/tderesources/exchange/resourceexchange.cpp b/tderesources/exchange/resourceexchange.cpp
index ae65f9cd..a2cbbed0 100644
--- a/tderesources/exchange/resourceexchange.cpp
+++ b/tderesources/exchange/resourceexchange.cpp
@@ -123,18 +123,18 @@ bool ResourceExchange::doOpen()
kdDebug() << "ResourceExchange::doOpen()" << endl;
mClient = new ExchangeClient( mAccount, mTimeZoneId );
- connect( mClient, TQT_SIGNAL( downloadFinished( int, const TQString & ) ),
- TQT_SLOT( slotDownloadFinished( int, const TQString & ) ) );
- connect( mClient, TQT_SIGNAL( event( KCal::Event *, const KURL & ) ),
- TQT_SLOT( downloadedEvent( KCal::Event *, const KURL & ) ) );
+ connect( mClient, TQ_SIGNAL( downloadFinished( int, const TQString & ) ),
+ TQ_SLOT( slotDownloadFinished( int, const TQString & ) ) );
+ connect( mClient, TQ_SIGNAL( event( KCal::Event *, const KURL & ) ),
+ TQ_SLOT( downloadedEvent( KCal::Event *, const KURL & ) ) );
#if 0
kdDebug() << "Creating monitor" << endl;
TQHostAddress ip;
ip.setAddress( mAccount->host() );
mMonitor = new ExchangeMonitor( mAccount, ExchangeMonitor::CallBack, ip );
- connect( mMonitor, TQT_SIGNAL(notify( const TQValueList<long>& , const TQValueList<KURL>& )), this, TQT_SLOT(slotMonitorNotify( const TQValueList<long>& , const TQValueList<KURL>& )) );
- connect( mMonitor, TQT_SIGNAL(error(int , const TQString&)), this, TQT_SLOT(slotMonitorError(int , const TQString&)) );
+ connect( mMonitor, TQ_SIGNAL(notify( const TQValueList<long>& , const TQValueList<KURL>& )), this, TQ_SLOT(slotMonitorNotify( const TQValueList<long>& , const TQValueList<KURL>& )) );
+ connect( mMonitor, TQ_SIGNAL(error(int , const TQString&)), this, TQ_SLOT(slotMonitorError(int , const TQString&)) );
mMonitor->addWatch( mAccount->calendarURL(), ExchangeMonitor::UpdateNewMember, 1 );
#endif
diff --git a/tderesources/exchange/resourceexchange.h b/tderesources/exchange/resourceexchange.h
index 120a4de9..23113dad 100644
--- a/tderesources/exchange/resourceexchange.h
+++ b/tderesources/exchange/resourceexchange.h
@@ -47,7 +47,7 @@ class CalFormat;
// FIXME: Use ResourceCached
class ResourceExchange : public ResourceCalendar, public IncidenceBase::Observer
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/exchange/resourceexchangeconfig.cpp b/tderesources/exchange/resourceexchangeconfig.cpp
index 3b3bf14f..57ad9d0f 100644
--- a/tderesources/exchange/resourceexchangeconfig.cpp
+++ b/tderesources/exchange/resourceexchangeconfig.cpp
@@ -62,7 +62,7 @@ ResourceExchangeConfig::ResourceExchangeConfig( TQWidget* parent, const char* n
mAutoMailbox = new TQCheckBox( i18n( "Determine mailbox &automatically" ), this );
mainLayout->addMultiCellWidget( mAutoMailbox, 5, 5, 0, 1 );
- connect( mAutoMailbox, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotToggleAuto(bool)) );
+ connect( mAutoMailbox, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(slotToggleAuto(bool)) );
mMailboxEdit = new KLineEdit( this );
mainLayout->addWidget( new TQLabel( i18n( "Mailbox URL:" ), this ), 6, 0 );
@@ -70,11 +70,11 @@ ResourceExchangeConfig::ResourceExchangeConfig( TQWidget* parent, const char* n
mTryFindMailbox = new TQPushButton( i18n( "&Find" ), this );
mainLayout->addWidget( mTryFindMailbox, 6, 2 );
- connect( mTryFindMailbox, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotFindClicked()) );
+ connect( mTryFindMailbox, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotFindClicked()) );
label = new TQLabel( i18n( "Cache timeout:" ), this );
mCacheEdit = new KIntNumInput( this );
- connect(mCacheEdit, TQT_SIGNAL(valueChanged( int )), TQT_SLOT(slotCacheEditChanged( int )));
+ connect(mCacheEdit, TQ_SIGNAL(valueChanged( int )), TQ_SLOT(slotCacheEditChanged( int )));
mCacheEdit->setMinValue( 0 );
mainLayout->addWidget( label, 7, 0 );
mainLayout->addWidget( mCacheEdit, 7, 1 );
diff --git a/tderesources/exchange/resourceexchangeconfig.h b/tderesources/exchange/resourceexchangeconfig.h
index c008c2ce..f9332bad 100644
--- a/tderesources/exchange/resourceexchangeconfig.h
+++ b/tderesources/exchange/resourceexchangeconfig.h
@@ -36,7 +36,7 @@ namespace KCal {
class ResourceExchangeConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/featureplan/CMakeLists.txt b/tderesources/featureplan/CMakeLists.txt
index 76e279c8..c5229c62 100644
--- a/tderesources/featureplan/CMakeLists.txt
+++ b/tderesources/featureplan/CMakeLists.txt
@@ -36,9 +36,11 @@ link_directories(
##### other data ################################
-install( FILES
- kcal_resourcefeatureplan.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal )
+tde_create_translated_desktop(
+ SOURCE kcal_resourcefeatureplan.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal
+ PO_DIR tderesources-desktops
+)
##### kcal_resourcefeatureplan (module) #########
diff --git a/tderesources/featureplan/kcal_resourcefeatureplan.desktop b/tderesources/featureplan/kcal_resourcefeatureplan.desktop
index c43a0c6b..69d648b4 100644
--- a/tderesources/featureplan/kcal_resourcefeatureplan.desktop
+++ b/tderesources/featureplan/kcal_resourcefeatureplan.desktop
@@ -1,39 +1,6 @@
[Desktop Entry]
Name=XML Feature Plan
-Name[af]=XML eienskappe plan
-Name[ca]=Pla de característiques XML
-Name[cs]=XML plán vlastností
-Name[da]=XML Funktionsplan
-Name[el]=Σχέδιο χαρακτηριστικών XML
-Name[eo]=XML-Trajtplano
-Name[es]=Plan de características XML
-Name[et]=XML võimaluste plaan
-Name[eu]=XML eginbide plana
-Name[fa]=نقشۀ ویژگی XML
-Name[fi]=XML-ominaisuussuunnitelma
-Name[fr]=Plan de fonctionnalités XML
-Name[fy]=Funksjonaliteitsplanning yn XML
-Name[gl]=Plan de Características en XML
-Name[hu]=XML FeaturePlan
-Name[is]=XML fídusa áætlun
-Name[it]=Piano caratteristiche XML
-Name[km]=គ្រោង​លក្ខណៈ​ពិសេស XML
-Name[lt]=XML bruožų planas
-Name[ms]=Pelan Cirian XML
-Name[nds]=XML-Funkschonenplaan
-Name[ne]=एक्सएमएल विशेषता योजना
-Name[nl]=Functionaliteitsplanning in XML
-Name[pl]=Plan funkcjonalności XML
-Name[pt]=Plano de Funcionalidades em XML
-Name[pt_BR]=Plano de Funcionalidades XML
-Name[sk]=XML plán vlastností
-Name[sl]=Načrt zmožnosti v XML
-Name[sr]=XML план могућности
-Name[sr@Latn]=XML plan mogućnosti
-Name[ta]=XML பண்பு திட்டம்
-Name[tr]=XML Özellik Planı
-Name[zh_CN]=XML 特性计划
-Name[zh_TW]=XML 功能計畫
+
X-TDE-Library=kcal_resourcefeatureplan
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/featureplan/kcal_resourcefeatureplan.h b/tderesources/featureplan/kcal_resourcefeatureplan.h
index 2d492897..7b64e12a 100644
--- a/tderesources/featureplan/kcal_resourcefeatureplan.h
+++ b/tderesources/featureplan/kcal_resourcefeatureplan.h
@@ -29,7 +29,7 @@
#include <tdeabc/locknull.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tdeconfig.h>
namespace KCal {
@@ -39,7 +39,7 @@ namespace KCal {
*/
class KDE_EXPORT ResourceFeaturePlan : public ResourceCached
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceFeaturePlan( const TDEConfig * );
diff --git a/tderesources/featureplan/kcal_resourcefeatureplanconfig.h b/tderesources/featureplan/kcal_resourcefeatureplanconfig.h
index aa00123f..23809cea 100644
--- a/tderesources/featureplan/kcal_resourcefeatureplanconfig.h
+++ b/tderesources/featureplan/kcal_resourcefeatureplanconfig.h
@@ -23,7 +23,7 @@
#define RESOURCEFEATUREPLANCONFIG_H
#include <tderesources/configwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KLineEdit;
class KURLRequester;
@@ -33,7 +33,7 @@ namespace KCal {
class KDE_EXPORT ResourceFeaturePlanConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/groupdav/CMakeLists.txt b/tderesources/groupdav/CMakeLists.txt
index 13e314b9..8ee6f674 100644
--- a/tderesources/groupdav/CMakeLists.txt
+++ b/tderesources/groupdav/CMakeLists.txt
@@ -26,9 +26,20 @@ link_directories(
##### other data ################################
-install( FILES kcal_groupdav.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal )
+tde_create_translated_desktop(
+ SOURCE kcal_groupdav.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal
+ PO_DIR tderesources-desktops
+)
+
install( FILES uninstall.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal RENAME kcal_opengroupware.desktop )
-install( FILES tdeabc_groupdav.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc )
+
+tde_create_translated_desktop(
+ SOURCE tdeabc_groupdav.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc
+ PO_DIR tderesources-desktops
+)
+
install( FILES uninstall.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc RENAME tdeabc_opengroupware.desktop)
diff --git a/tderesources/groupdav/kcal_groupdav.desktop b/tderesources/groupdav/kcal_groupdav.desktop
index 99d2c4ff..2de0a148 100644
--- a/tderesources/groupdav/kcal_groupdav.desktop
+++ b/tderesources/groupdav/kcal_groupdav.desktop
@@ -1,50 +1,6 @@
[Desktop Entry]
Name=GroupDAV Server (e.g. OpenGroupware)
-Name[af]=GroupDAV bediener (bv. OpenGroupware)
-Name[bg]=Сървър GroupDAV (e.g. OpenGroupware)
-Name[br]=Servijer GroupDAV (e.g. OpenGroupware)
-Name[ca]=Servidor GroupDAV (p.ex. OpenGroupware)
-Name[cs]=GroupDAV server (např. OpenGroupware)
-Name[da]=GroupDAV-server (f.eks. OpenGroupware)
-Name[de]=GroupDAV-Server (z. B. OpenGroupware)
-Name[el]=Εξυπηρετητής GroupDAV (π.χ. OpenGroupware)
-Name[es]=Servidor GroupDAV (por ejemplo, OpenGroupware)
-Name[et]=GroupDAV server (nt. OpenGroupware)
-Name[eu]=GroupDAV zerbitzaria (adib. OpenGroupware)
-Name[fa]=کارساز GroupDAV (مثلاً OpenGroupware)
-Name[fi]=GroupDAV-palvelin (esim. OpenGroupware)
-Name[fr]=GroupDAV Serveur (ex. OpenGroupware)
-Name[fy]=GroupDAV-tsjinner (OpenGroupware)
-Name[ga]=Freastalaí GroupDAV (m.sh. OpenGroupware)
-Name[gl]=Servidor GroupDAV (e.g. OpenGroupware)
-Name[hu]=GroupDAV-kiszolgáló (pl. OpenGroupware)
-Name[is]=GroupDAV þjónn (t.d. OpenGroupware)
-Name[it]=Server GroupDAV (per es. OpenGroupware)
-Name[ja]=GroupDAV サーバ (例 OpenGroupware)
-Name[ka]=სერვერი GroupDAV (მაგ., OpenGroupware)
-Name[kk]=GroupDAV сервері (мысалы OpenGroupware)
-Name[km]=ម៉ាស៊ីន​បម្រើ GroupDAV (ឧ. OpenGroupware)
-Name[lt]=GroupDAV serveris (pvz.: OpenGroupware)
-Name[ms]=Pelayan GroupDAV (misalnya OpenGroupware)
-Name[nb]=GroupDAV-tjener (f.eks. OpenGroupware)
-Name[nds]=GroupDAV-Server (t.B. OpenGroupware)
-Name[ne]=समूह DAV सर्भर (जस्तै: खुला ग्रुपवेयर)
-Name[nl]=GroupDAV-server (OpenGroupware)
-Name[nn]=GroupDAV-tenar (t.d. OpenGroupware)
-Name[pl]=Serwer GroupDAV (np. OpenGroupware)
-Name[pt]=Servidor GroupDAV (por exemplo OpenGroupware)
-Name[pt_BR]=Servidor GroupDav (p. ex. OpenGroupware)
-Name[ru]=Сервер GroupDAV (например, OpenGroupware)
-Name[sk]=GroupDAV Server (napr. OpenGroupware)
-Name[sl]=Strežnik GroupDAV (npr. OpenGroupware)
-Name[sr]=GroupDAV сервер (нпр. OpenGroupware)
-Name[sr@Latn]=GroupDAV server (npr. OpenGroupware)
-Name[sv]=GroupDAV-server (t.ex. OpenGroupware)
-Name[ta]=GroupDAV சேவகன் (e.g. OpenGroupware)
-Name[tr]=GroupDAV Sunucusu (ör. OpenGroupware)
-Name[uk]=Сервер GroupDAV (напр., OpenGroupware)
-Name[zh_CN]=GroupDAV 服务器(如 OpenGroupware)
-Name[zh_TW]=GroupDAV 伺服器 (如: OpenGroupware)
+
X-TDE-Library=kcal_groupdav
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/groupdav/kcal_resourcegroupdav.h b/tderesources/groupdav/kcal_resourcegroupdav.h
index dba9bd27..68aa44a6 100644
--- a/tderesources/groupdav/kcal_resourcegroupdav.h
+++ b/tderesources/groupdav/kcal_resourcegroupdav.h
@@ -33,7 +33,7 @@ namespace KCal {
*/
class KDE_EXPORT ResourceGroupDav : public ResourceGroupwareBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceGroupDav();
diff --git a/tderesources/groupdav/tdeabc_groupdav.desktop b/tderesources/groupdav/tdeabc_groupdav.desktop
index c7db0ac6..0cf3f672 100644
--- a/tderesources/groupdav/tdeabc_groupdav.desktop
+++ b/tderesources/groupdav/tdeabc_groupdav.desktop
@@ -1,50 +1,6 @@
[Desktop Entry]
Name=GroupDAV Server (e.g. OpenGroupware)
-Name[af]=GroupDAV bediener (bv. OpenGroupware)
-Name[bg]=Сървър GroupDAV (e.g. OpenGroupware)
-Name[br]=Servijer GroupDAV (e.g. OpenGroupware)
-Name[ca]=Servidor GroupDAV (p.ex. OpenGroupware)
-Name[cs]=GroupDAV server (např. OpenGroupware)
-Name[da]=GroupDAV-server (f.eks. OpenGroupware)
-Name[de]=GroupDAV-Server (z. B. OpenGroupware)
-Name[el]=Εξυπηρετητής GroupDAV (π.χ. OpenGroupware)
-Name[es]=Servidor GroupDAV (por ejemplo, OpenGroupware)
-Name[et]=GroupDAV server (nt. OpenGroupware)
-Name[eu]=GroupDAV zerbitzaria (adib. OpenGroupware)
-Name[fa]=کارساز GroupDAV (مثلاً OpenGroupware)
-Name[fi]=GroupDAV-palvelin (esim. OpenGroupware)
-Name[fr]=GroupDAV Serveur (ex. OpenGroupware)
-Name[fy]=GroupDAV-tsjinner (OpenGroupware)
-Name[ga]=Freastalaí GroupDAV (m.sh. OpenGroupware)
-Name[gl]=Servidor GroupDAV (e.g. OpenGroupware)
-Name[hu]=GroupDAV-kiszolgáló (pl. OpenGroupware)
-Name[is]=GroupDAV þjónn (t.d. OpenGroupware)
-Name[it]=Server GroupDAV (per es. OpenGroupware)
-Name[ja]=GroupDAV サーバ (例 OpenGroupware)
-Name[ka]=სერვერი GroupDAV (მაგ., OpenGroupware)
-Name[kk]=GroupDAV сервері (мысалы OpenGroupware)
-Name[km]=ម៉ាស៊ីន​បម្រើ GroupDAV (ឧ. OpenGroupware)
-Name[lt]=GroupDAV serveris (pvz.: OpenGroupware)
-Name[ms]=Pelayan GroupDAV (misalnya OpenGroupware)
-Name[nb]=GroupDAV-tjener (f.eks. OpenGroupware)
-Name[nds]=GroupDAV-Server (t.B. OpenGroupware)
-Name[ne]=समूह DAV सर्भर (जस्तै: खुला ग्रुपवेयर)
-Name[nl]=GroupDAV-server (OpenGroupware)
-Name[nn]=GroupDAV-tenar (t.d. OpenGroupware)
-Name[pl]=Serwer GroupDAV (np. OpenGroupware)
-Name[pt]=Servidor GroupDAV (por exemplo OpenGroupware)
-Name[pt_BR]=Servidor GroupDav (p. ex. OpenGroupware)
-Name[ru]=Сервер GroupDAV (например, OpenGroupware)
-Name[sk]=GroupDAV Server (napr. OpenGroupware)
-Name[sl]=Strežnik GroupDAV (npr. OpenGroupware)
-Name[sr]=GroupDAV сервер (нпр. OpenGroupware)
-Name[sr@Latn]=GroupDAV server (npr. OpenGroupware)
-Name[sv]=GroupDAV-server (t.ex. OpenGroupware)
-Name[ta]=GroupDAV சேவகன் (e.g. OpenGroupware)
-Name[tr]=GroupDAV Sunucusu (ör. OpenGroupware)
-Name[uk]=Сервер GroupDAV (напр., OpenGroupware)
-Name[zh_CN]=GroupDAV 服务器(如 OpenGroupware)
-Name[zh_TW]=GroupDAV 伺服器 (如: OpenGroupware)
+
X-TDE-Library=tdeabc_groupdav
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/groupdav/tdeabc_resourcegroupdav.h b/tderesources/groupdav/tdeabc_resourcegroupdav.h
index 36b0456c..9057a8d8 100644
--- a/tderesources/groupdav/tdeabc_resourcegroupdav.h
+++ b/tderesources/groupdav/tdeabc_resourcegroupdav.h
@@ -23,13 +23,13 @@
#define TDEABC_RESOURCEGROUPDAV_H
#include "tdeabc_resourcegroupwarebase.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace TDEABC {
class KDE_EXPORT ResourceGroupDav : public ResourceGroupwareBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/groupware/kcal_groupware.desktop b/tderesources/groupware/kcal_groupware.desktop
index 55145035..12b71705 100644
--- a/tderesources/groupware/kcal_groupware.desktop
+++ b/tderesources/groupware/kcal_groupware.desktop
@@ -1,47 +1,6 @@
[Desktop Entry]
Name=Groupware Server
-Name[af]=Groupware bediener
-Name[ar]=خادم البرمجيات الجماعية
-Name[bg]=Сървър Groupware
-Name[br]=Servijer strollant
-Name[ca]=Servidor Groupware
-Name[cs]=Groupware server
-Name[el]=Εξυπηρετητής Groupware
-Name[es]=Servidor de Groupware
-Name[et]=Grupitöö server
-Name[eu]=Groupware zerbitzaria
-Name[fa]=کارساز Groupware
-Name[fi]=Groupware-palvelin
-Name[fr]=Serveur de travail collaboratif
-Name[fy]=Groupware-tsjinner
-Name[ga]=Freastalaí Groupware
-Name[gl]=Servidor de Traballo en Grupo
-Name[hu]=Groupware kiszolgáló
-Name[is]=Groupware þjónn
-Name[it]=Server Groupware
-Name[ja]=グループウェアサーバ
-Name[kk]=Groupware сервері
-Name[km]=ម៉ាស៊ីន​បម្រើ​កម្មវិធី​ពហុ​អ្នកប្រើ
-Name[lt]=Grupinio darbo serveris
-Name[ms]=Pelayan Groupware
-Name[nb]=Groupware-tjener
-Name[nds]=Groupware-Server
-Name[ne]=ग्रुपवेयर सर्भर
-Name[nl]=Groupware-server
-Name[nn]=Groupware-tenar
-Name[pl]=Serwer Groupware
-Name[pt]=Servidor de Groupware
-Name[pt_BR]=Servidor Groupware
-Name[ru]=Сервер Groupware
-Name[sl]=Strežnik za skupinsko delo
-Name[sr]=Groupware сервер
-Name[sr@Latn]=Groupware server
-Name[sv]=Grupprogramserver
-Name[ta]=குழுவாரி சேவகன்
-Name[tr]=Grupyazılımı(Groupware) Sunucusu
-Name[uk]=Сервер Groupware
-Name[zh_CN]=群件服务器
-Name[zh_TW]=群組伺服器
+
X-TDE-Library=kcal_groupware
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/groupware/kcal_resourcegroupware.cpp b/tderesources/groupware/kcal_resourcegroupware.cpp
index 6200773b..f3897d79 100644
--- a/tderesources/groupware/kcal_resourcegroupware.cpp
+++ b/tderesources/groupware/kcal_resourcegroupware.cpp
@@ -159,16 +159,16 @@ bool ResourceGroupware::doLoad()
mJobData = TQString();
mDownloadJob = KPIM::GroupwareJob::getCalendar( url );
- connect( mDownloadJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotJobResult( TDEIO::Job * ) ) );
- connect( mDownloadJob, TQT_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
- TQT_SLOT( slotJobData( TDEIO::Job *, const TQByteArray & ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotJobResult( TDEIO::Job * ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
+ TQ_SLOT( slotJobData( TDEIO::Job *, const TQByteArray & ) ) );
mProgress = KPIM::ProgressManager::instance()->createProgressItem(
KPIM::ProgressManager::getUniqueID(), i18n("Downloading calendar") );
connect( mProgress,
- TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
- TQT_SLOT( cancelLoad() ) );
+ TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
+ TQ_SLOT( cancelLoad() ) );
return true;
}
diff --git a/tderesources/groupware/kcal_resourcegroupware.h b/tderesources/groupware/kcal_resourcegroupware.h
index 323f6ade..56ad9ce6 100644
--- a/tderesources/groupware/kcal_resourcegroupware.h
+++ b/tderesources/groupware/kcal_resourcegroupware.h
@@ -41,7 +41,7 @@ namespace KCal {
*/
class ResourceGroupware : public ResourceCached
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceGroupware();
diff --git a/tderesources/groupware/kcal_resourcegroupwareconfig.h b/tderesources/groupware/kcal_resourcegroupwareconfig.h
index 7bfa34d4..53dcff7a 100644
--- a/tderesources/groupware/kcal_resourcegroupwareconfig.h
+++ b/tderesources/groupware/kcal_resourcegroupwareconfig.h
@@ -40,7 +40,7 @@ class ResourceCachedSaveConfig;
*/
class ResourceGroupwareConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceGroupwareConfig( TQWidget *parent = 0, const char *name = 0 );
diff --git a/tderesources/groupware/tdeabc_groupware.desktop b/tderesources/groupware/tdeabc_groupware.desktop
index 30721fa0..8533e85b 100644
--- a/tderesources/groupware/tdeabc_groupware.desktop
+++ b/tderesources/groupware/tdeabc_groupware.desktop
@@ -1,47 +1,6 @@
[Desktop Entry]
Name=Groupware Server
-Name[af]=Groupware bediener
-Name[ar]=خادم البرمجيات الجماعية
-Name[bg]=Сървър Groupware
-Name[br]=Servijer strollant
-Name[ca]=Servidor Groupware
-Name[cs]=Groupware server
-Name[el]=Εξυπηρετητής Groupware
-Name[es]=Servidor de Groupware
-Name[et]=Grupitöö server
-Name[eu]=Groupware zerbitzaria
-Name[fa]=کارساز Groupware
-Name[fi]=Groupware-palvelin
-Name[fr]=Serveur de travail collaboratif
-Name[fy]=Groupware-tsjinner
-Name[ga]=Freastalaí Groupware
-Name[gl]=Servidor de Traballo en Grupo
-Name[hu]=Groupware kiszolgáló
-Name[is]=Groupware þjónn
-Name[it]=Server Groupware
-Name[ja]=グループウェアサーバ
-Name[kk]=Groupware сервері
-Name[km]=ម៉ាស៊ីន​បម្រើ​កម្មវិធី​ពហុ​អ្នកប្រើ
-Name[lt]=Grupinio darbo serveris
-Name[ms]=Pelayan Groupware
-Name[nb]=Groupware-tjener
-Name[nds]=Groupware-Server
-Name[ne]=ग्रुपवेयर सर्भर
-Name[nl]=Groupware-server
-Name[nn]=Groupware-tenar
-Name[pl]=Serwer Groupware
-Name[pt]=Servidor de Groupware
-Name[pt_BR]=Servidor Groupware
-Name[ru]=Сервер Groupware
-Name[sl]=Strežnik za skupinsko delo
-Name[sr]=Groupware сервер
-Name[sr@Latn]=Groupware server
-Name[sv]=Grupprogramserver
-Name[ta]=குழுவாரி சேவகன்
-Name[tr]=Grupyazılımı(Groupware) Sunucusu
-Name[uk]=Сервер Groupware
-Name[zh_CN]=群件服务器
-Name[zh_TW]=群組伺服器
+
X-TDE-Library=tdeabc_groupware
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/groupware/tdeabc_resourcegroupware.cpp b/tderesources/groupware/tdeabc_resourcegroupware.cpp
index e8f0c0a2..b6b25911 100644
--- a/tderesources/groupware/tdeabc_resourcegroupware.cpp
+++ b/tderesources/groupware/tdeabc_resourcegroupware.cpp
@@ -244,18 +244,18 @@ bool ResourceGroupware::asyncLoad()
mJobData = TQString();
mDownloadJob = KPIM::GroupwareJob::getAddressBook( url );
- connect( mDownloadJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotJobResult( TDEIO::Job * ) ) );
- connect( mDownloadJob, TQT_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
- TQT_SLOT( slotJobData( TDEIO::Job *, const TQByteArray & ) ) );
- connect( mDownloadJob, TQT_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
- TQT_SLOT( slotJobPercent( TDEIO::Job *, unsigned long ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotJobResult( TDEIO::Job * ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
+ TQ_SLOT( slotJobData( TDEIO::Job *, const TQByteArray & ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
+ TQ_SLOT( slotJobPercent( TDEIO::Job *, unsigned long ) ) );
mProgress = KPIM::ProgressManager::instance()->createProgressItem(
KPIM::ProgressManager::getUniqueID(), i18n("Downloading addressbook") );
connect( mProgress,
- TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
- TQT_SLOT( cancelLoad() ) );
+ TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
+ TQ_SLOT( cancelLoad() ) );
return true;
}
diff --git a/tderesources/groupware/tdeabc_resourcegroupware.h b/tderesources/groupware/tdeabc_resourcegroupware.h
index 59bbc9a4..47d4a5fd 100644
--- a/tderesources/groupware/tdeabc_resourcegroupware.h
+++ b/tderesources/groupware/tdeabc_resourcegroupware.h
@@ -34,7 +34,7 @@ class GroupwarePrefs;
class ResourceGroupware : public ResourceCached
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/groupware/tdeabc_resourcegroupwareconfig.cpp b/tderesources/groupware/tdeabc_resourcegroupwareconfig.cpp
index e171c7e7..74e86600 100644
--- a/tderesources/groupware/tdeabc_resourcegroupwareconfig.cpp
+++ b/tderesources/groupware/tdeabc_resourcegroupwareconfig.cpp
@@ -106,7 +106,7 @@ ResourceGroupwareConfig::ResourceGroupwareConfig( TQWidget* parent, const char*
mainLayout->addWidget( label, 6, 0 );
mainLayout->addWidget( mAddressBookBox, 6, 1 );
- connect( updateButton, TQT_SIGNAL( clicked() ), TQT_SLOT( updateAddressBookList() ) );
+ connect( updateButton, TQ_SIGNAL( clicked() ), TQ_SLOT( updateAddressBookList() ) );
}
void ResourceGroupwareConfig::loadSettings( KRES::Resource *res )
diff --git a/tderesources/groupware/tdeabc_resourcegroupwareconfig.h b/tderesources/groupware/tdeabc_resourcegroupwareconfig.h
index 86825bbf..7cf839d9 100644
--- a/tderesources/groupware/tdeabc_resourcegroupwareconfig.h
+++ b/tderesources/groupware/tdeabc_resourcegroupwareconfig.h
@@ -35,7 +35,7 @@ class ResourceGroupware;
class ResourceGroupwareConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/groupwise/CMakeLists.txt b/tderesources/groupwise/CMakeLists.txt
index 5efc6153..f175e1db 100644
--- a/tderesources/groupwise/CMakeLists.txt
+++ b/tderesources/groupwise/CMakeLists.txt
@@ -28,8 +28,17 @@ link_directories(
##### other data ################################
-install( FILES kcal_groupwise.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal )
-install( FILES tdeabc_groupwise.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc )
+tde_create_translated_desktop(
+ SOURCE kcal_groupwise.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal
+ PO_DIR tderesources-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE tdeabc_groupwise.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc
+ PO_DIR tderesources-desktops
+)
##### kcal_groupwise (module) ###################
diff --git a/tderesources/groupwise/groupwisesettingswidget.cpp b/tderesources/groupwise/groupwisesettingswidget.cpp
index 48de8143..cbff52ac 100644
--- a/tderesources/groupwise/groupwisesettingswidget.cpp
+++ b/tderesources/groupwise/groupwisesettingswidget.cpp
@@ -27,8 +27,8 @@
GroupWiseSettingsWidget::GroupWiseSettingsWidget( TQWidget * parent )
: GroupWiseSettingsWidgetBase( parent )
{
- connect( m_settingsList, TQT_SIGNAL( itemRenamed( TQListViewItem *, int ) ),
- this, TQT_SLOT( slotItemRenamed( TQListViewItem *, int ) ) );
+ connect( m_settingsList, TQ_SIGNAL( itemRenamed( TQListViewItem *, int ) ),
+ this, TQ_SLOT( slotItemRenamed( TQListViewItem *, int ) ) );
}
void GroupWiseSettingsWidget::slotItemRenamed( TQListViewItem * item, int )
diff --git a/tderesources/groupwise/groupwisesettingswidget.h b/tderesources/groupwise/groupwisesettingswidget.h
index 9fff6aa7..9e81533d 100644
--- a/tderesources/groupwise/groupwisesettingswidget.h
+++ b/tderesources/groupwise/groupwisesettingswidget.h
@@ -30,7 +30,7 @@ class TQListViewItem;
class GroupWiseSettingsWidget : public GroupWiseSettingsWidgetBase
{
-Q_OBJECT
+TQ_OBJECT
public:
GroupWiseSettingsWidget( TQWidget * parent );
diff --git a/tderesources/groupwise/kcal_groupwise.desktop b/tderesources/groupwise/kcal_groupwise.desktop
index 4e006e2f..fbbbfbec 100644
--- a/tderesources/groupwise/kcal_groupwise.desktop
+++ b/tderesources/groupwise/kcal_groupwise.desktop
@@ -1,48 +1,6 @@
[Desktop Entry]
Name=Novell GroupWise Server
-Name[af]=Novell GroupWise bediener
-Name[bg]=Сървър Novell GroupWise
-Name[br]=Servijer Novell GroupWise
-Name[ca]=Servidor Novell GroupWise
-Name[cs]=Novell GroupWise server
-Name[da]=Novell GroupWise server
-Name[el]=Εξυπηρετητής Novell GroupWise
-Name[es]=Servidor de Novell GroupWise
-Name[et]=Novelli GroupWise server
-Name[eu]=Novell GroupWise zerbitzaria
-Name[fa]=کارساز Novell GroupWise
-Name[fi]=Novell GroupWise -palvelin
-Name[fr]=Serveur de travail collaboratif GroupWise de Novell
-Name[fy]=Novell GroupWise-tsjinner
-Name[ga]=Freastalaí Novell GroupWise
-Name[gl]=Servidor Novell GroupWise
-Name[hu]=Novell GroupWise kiszolgáló
-Name[is]=Novell GroupWise þjónn
-Name[it]=Server Novell GroupWise
-Name[ja]=Novell GroupWise サーバ
-Name[ka]=სერვერი Novell GroupWise
-Name[kk]=Novell GroupWise сервері
-Name[km]=ម៉ាស៊ីន​បម្រើ GroupWise របស់​ណូវែល
-Name[lt]=Novell GroupWise serveris
-Name[ms]=Pelayan Novell GroupWise
-Name[nb]=Novell GroupWise-tjener
-Name[nds]=Novell-GroupWise-Server
-Name[ne]=नोभेल समूहगत सर्भर
-Name[nl]=Novell GroupWise-server
-Name[nn]=Novell GroupWise-tenar
-Name[pl]=Serwer Novell GroupWise
-Name[pt]=Servidor Novell GroupWise
-Name[pt_BR]=Servidor GroupWise da Novell
-Name[ru]=Сервер Novell GroupWise
-Name[sl]=Strežnik Novell GroupWise
-Name[sr]=Novell-ов GroupWise сервер
-Name[sr@Latn]=Novell-ov GroupWise server
-Name[sv]=Novell Groupwise-server
-Name[ta]=Novell குழுவாரிச் சேவகன்
-Name[tr]=Novell GroupWise Sunucusu
-Name[uk]=Сервер Novell GroupWise
-Name[zh_CN]=Novell GroupWise 服务器
-Name[zh_TW]=Novell 群組伺服器
+
X-TDE-Library=kcal_groupwise
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/groupwise/kcal_resourcegroupwise.cpp b/tderesources/groupwise/kcal_resourcegroupwise.cpp
index a8a0727e..6c3db3a8 100644
--- a/tderesources/groupwise/kcal_resourcegroupwise.cpp
+++ b/tderesources/groupwise/kcal_resourcegroupwise.cpp
@@ -158,16 +158,16 @@ bool ResourceGroupwise::doLoad()
mJobData = TQString();
mDownloadJob = TDEIO::get( url, false, false );
- connect( mDownloadJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotJobResult( TDEIO::Job * ) ) );
- connect( mDownloadJob, TQT_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
- TQT_SLOT( slotJobData( TDEIO::Job *, const TQByteArray & ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotJobResult( TDEIO::Job * ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
+ TQ_SLOT( slotJobData( TDEIO::Job *, const TQByteArray & ) ) );
mProgress = KPIM::ProgressManager::instance()->createProgressItem(
KPIM::ProgressManager::getUniqueID(), i18n("Downloading calendar") );
connect( mProgress,
- TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
- TQT_SLOT( cancelLoad() ) );
+ TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
+ TQ_SLOT( cancelLoad() ) );
return true;
}
diff --git a/tderesources/groupwise/kcal_resourcegroupwise.h b/tderesources/groupwise/kcal_resourcegroupwise.h
index c4b330df..1bf1a5dc 100644
--- a/tderesources/groupwise/kcal_resourcegroupwise.h
+++ b/tderesources/groupwise/kcal_resourcegroupwise.h
@@ -30,7 +30,7 @@
#include <tdeabc/locknull.h>
#include <tdeio/job.h>
#include <tdeconfig.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class ngwt__Settings;
@@ -43,7 +43,7 @@ class GroupwisePrefsBase;
*/
class KDE_EXPORT ResourceGroupwise : public ResourceCached
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/groupwise/kcal_resourcegroupwiseconfig.cpp b/tderesources/groupwise/kcal_resourcegroupwiseconfig.cpp
index cb9f4493..bd081f5e 100644
--- a/tderesources/groupwise/kcal_resourcegroupwiseconfig.cpp
+++ b/tderesources/groupwise/kcal_resourcegroupwiseconfig.cpp
@@ -73,7 +73,7 @@ ResourceGroupwiseConfig::ResourceGroupwiseConfig( TQWidget* parent, const char*
mainLayout->addMultiCellWidget( mSaveConfig, 6, 6, 0, 1 );
settingsButton->hide();
- // connect( settingsButton, TQT_SIGNAL( clicked() ), TQT_SLOT( slotViewUserSettings() ) );
+ // connect( settingsButton, TQ_SIGNAL( clicked() ), TQ_SLOT( slotViewUserSettings() ) );
}
@@ -123,7 +123,7 @@ void ResourceGroupwiseConfig::slotViewUserSettings()
if ( s )
{
- KDialogBase * dialog = new KDialogBase( ::tqqt_cast<TQWidget*>(parent() ), "gwsettingswidget", true, i18n( "GroupWise Settings" ) );
+ KDialogBase * dialog = new KDialogBase( ::tqt_cast<TQWidget*>(parent() ), "gwsettingswidget", true, i18n( "GroupWise Settings" ) );
// TQVBoxLayout * layout = new TQVBoxLayout( dialog );
GroupWiseSettingsWidget * settingsWidget = new GroupWiseSettingsWidget( dialog );
dialog->setMainWidget( settingsWidget );
diff --git a/tderesources/groupwise/kcal_resourcegroupwiseconfig.h b/tderesources/groupwise/kcal_resourcegroupwiseconfig.h
index cea6ad69..e982b819 100644
--- a/tderesources/groupwise/kcal_resourcegroupwiseconfig.h
+++ b/tderesources/groupwise/kcal_resourcegroupwiseconfig.h
@@ -21,7 +21,7 @@
#define KCALRESOURCEGROUPWISECONFIG_H
#include <kurlrequester.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tderesources/resource.h>
#include <tderesources/configwidget.h>
@@ -41,7 +41,7 @@ class ResourceCachedSaveConfig;
*/
class KDE_EXPORT ResourceGroupwiseConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceGroupwiseConfig( TQWidget *parent = 0, const char *name = 0 );
diff --git a/tderesources/groupwise/soap/groupwiseserver.cpp b/tderesources/groupwise/soap/groupwiseserver.cpp
index 07342ec4..3ba461b9 100644
--- a/tderesources/groupwise/soap/groupwiseserver.cpp
+++ b/tderesources/groupwise/soap/groupwiseserver.cpp
@@ -114,7 +114,7 @@ int GroupwiseServer::gSoapOpen( struct soap *soap, const char *,
// kdDebug() << "Creating KSSLSocket()" << endl;
m_sock = new KSSLSocket();
m_sock->setTimeout( KProtocolManager::connectTimeout() );
- connect( m_sock, TQT_SIGNAL( sslFailure() ), TQT_SLOT( slotSslError() ) );
+ connect( m_sock, TQ_SIGNAL( sslFailure() ), TQ_SLOT( slotSslError() ) );
} else {
m_sock = new KExtendedSocket();
}
diff --git a/tderesources/groupwise/soap/groupwiseserver.h b/tderesources/groupwise/soap/groupwiseserver.h
index 0a0f70e0..31cd8f14 100644
--- a/tderesources/groupwise/soap/groupwiseserver.h
+++ b/tderesources/groupwise/soap/groupwiseserver.h
@@ -93,7 +93,7 @@ class DeltaInfo
class GroupwiseServer : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/groupwise/soap/gwconverter.cpp b/tderesources/groupwise/soap/gwconverter.cpp
index bda455f7..b842f15b 100644
--- a/tderesources/groupwise/soap/gwconverter.cpp
+++ b/tderesources/groupwise/soap/gwconverter.cpp
@@ -67,8 +67,8 @@ char* GWConverter::qStringToChar( const TQString &string )
TQDate GWConverter::charToTQDate( const char *str )
{
- if ( !str ) return TQDate(); // FIXME: Qt::ISODate is probably no good here because it expects yyyy-MM-dd not yyyyMMdd
- return TQDate::fromString( TQString::fromUtf8( str ), Qt::ISODate );
+ if ( !str ) return TQDate(); // FIXME: TQt::ISODate is probably no good here because it expects yyyy-MM-dd not yyyyMMdd
+ return TQDate::fromString( TQString::fromUtf8( str ), TQt::ISODate );
}
char *GWConverter::qDateTimeToChar( const TQDateTime &dt,
@@ -94,7 +94,7 @@ std::string* GWConverter::qDateTimeToString( const TQDateTime &dt )
TQDateTime GWConverter::stringToTQDateTime( const std::string* str )
{
- TQDateTime dt = TQDateTime::fromString( TQString::fromUtf8( str->c_str() ), Qt::ISODate );
+ TQDateTime dt = TQDateTime::fromString( TQString::fromUtf8( str->c_str() ), TQt::ISODate );
return dt;
}
@@ -111,15 +111,15 @@ std::string* GWConverter::qDateToString( const TQDate &date )
TQDate GWConverter::stringToTQDate( std::string* str )
{
//NB this ISODate may become unnecessary, if GW stops sending in yyyy-mm-dd format again
- return TQDate::fromString( TQString::fromLatin1( str->c_str() ), Qt::ISODate );
+ return TQDate::fromString( TQString::fromLatin1( str->c_str() ), TQt::ISODate );
}
TQDateTime GWConverter::charToTQDateTime( const char *str )
{
if ( !str ) return TQDateTime();
// kdDebug() << "charToTQDateTime(): " << str << endl;
- // as above re Qt::ISODate
- TQDateTime dt = TQDateTime::fromString( TQString::fromUtf8( str ), Qt::ISODate );
+ // as above re TQt::ISODate
+ TQDateTime dt = TQDateTime::fromString( TQString::fromUtf8( str ), TQt::ISODate );
// kdDebug() << " " << dt.toString() << endl;
return dt;
}
diff --git a/tderesources/groupwise/soap/incidenceconverter.cpp b/tderesources/groupwise/soap/incidenceconverter.cpp
index 84e28e69..5491f3db 100644
--- a/tderesources/groupwise/soap/incidenceconverter.cpp
+++ b/tderesources/groupwise/soap/incidenceconverter.cpp
@@ -543,7 +543,7 @@ bool IncidenceConverter::convertFromCalendarItem( ngwt__CalendarItem* item,
std::vector<xsd__date>::const_iterator it;
for ( it = dateList->begin(); it != dateList->end(); ++it ) {
- TQDate date = TQDate::fromString( s2q( *it ), Qt::ISODate );
+ TQDate date = TQDate::fromString( s2q( *it ), TQt::ISODate );
if ( date.isValid() )
}
}
@@ -689,7 +689,7 @@ void IncidenceConverter::setRecurrence( KCal::Incidence * incidence, ngwt__Calen
// recurrence date - try setting it using the recurrence start date - didn't help
/* std::string startDate;
- startDate.append( recur->recurStart().date().toString( Qt::ISODate ).utf8() );
+ startDate.append( recur->recurStart().date().toString( TQt::ISODate ).utf8() );
item->rdate = soap_new_ngwt__RecurrenceDateType( soap(), -1 );
item->rdate->date.push_back( startDate );*/
// exceptions list - try sending empty list even if no exceptions
@@ -704,7 +704,7 @@ void IncidenceConverter::setRecurrence( KCal::Incidence * incidence, ngwt__Calen
for ( KCal::DateList::ConstIterator it = exceptions.begin(); it != exceptions.end(); ++it )
{
std::string startDate;
- startDate.append( TQString((*it).toString( Qt::ISODate )).utf8() );
+ startDate.append( TQString((*it).toString( TQt::ISODate )).utf8() );
item->exdate->date.push_back( startDate );
}
}
diff --git a/tderesources/groupwise/soap/ksslsocket.cpp b/tderesources/groupwise/soap/ksslsocket.cpp
index 6bf74da5..b753249d 100644
--- a/tderesources/groupwise/soap/ksslsocket.cpp
+++ b/tderesources/groupwise/soap/ksslsocket.cpp
@@ -57,9 +57,9 @@ KSSLSocket::KSSLSocket() : KExtendedSocket()
setBlockingMode(false);
//Connect internal slots
- TQObject::connect( this, TQT_SIGNAL(connectionSuccess()), this, TQT_SLOT(slotConnected()) );
- TQObject::connect( this, TQT_SIGNAL(closed(int)), this, TQT_SLOT(slotDisconnected()) );
- TQObject::connect( this, TQT_SIGNAL(connectionFailed(int)), this, TQT_SLOT(slotDisconnected()));
+ TQObject::connect( this, TQ_SIGNAL(connectionSuccess()), this, TQ_SLOT(slotConnected()) );
+ TQObject::connect( this, TQ_SIGNAL(closed(int)), this, TQ_SLOT(slotDisconnected()) );
+ TQObject::connect( this, TQ_SIGNAL(connectionFailed(int)), this, TQ_SLOT(slotDisconnected()));
}
KSSLSocket::~KSSLSocket()
@@ -161,7 +161,7 @@ TQString KSSLSocket::metaData( const TQString &key )
}
/*
-I basically copied the below from tcpTDEIO::SlaveBase.hpp, with some modificaions and formatting.
+I basically copied the below from tcpTDEIO::SlaveBase.h, with some modificaions and formatting.
* Copyright (C) 2000 Alex Zepeda <zipzippy@sonic.net
* Copyright (C) 2001-2003 George Staikos <staikos@kde.org>
diff --git a/tderesources/groupwise/soap/ksslsocket.h b/tderesources/groupwise/soap/ksslsocket.h
index 42545948..aa4225b8 100644
--- a/tderesources/groupwise/soap/ksslsocket.h
+++ b/tderesources/groupwise/soap/ksslsocket.h
@@ -27,7 +27,7 @@ class KSSLSocketPrivate;
class KSSLSocket : public KExtendedSocket
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/groupwise/soap/stdsoap2.cpp b/tderesources/groupwise/soap/stdsoap2.cpp
index b83b2bb4..e3d42998 100644
--- a/tderesources/groupwise/soap/stdsoap2.cpp
+++ b/tderesources/groupwise/soap/stdsoap2.cpp
@@ -3827,9 +3827,6 @@ soap_accept(struct soap *soap)
#elif defined(PALM)
fcntl((SOAP_SOCKET)soap->master, F_SETFL, fcntl((SOAP_SOCKET)soap->master, F_GETFL,0)&~O_NONBLOCK);
fcntl((SOAP_SOCKET)soap->socket, F_SETFL, fcntl((SOAP_SOCKET)soap->socket, F_GETFL,0)&~O_NONBLOCK);
-#elif defined(SYMBIAN)
- long blocking = 0;
- ioctl((SOAP_SOCKET)soap->master, 0/*FIONBIO*/, &blocking);
#else
fcntl((SOAP_SOCKET)soap->master, F_SETFL, fcntl((SOAP_SOCKET)soap->master, F_GETFL)&~O_NONBLOCK);
fcntl((SOAP_SOCKET)soap->socket, F_SETFL, fcntl((SOAP_SOCKET)soap->socket, F_GETFL)&~O_NONBLOCK);
diff --git a/tderesources/groupwise/soap/stdsoap2.h b/tderesources/groupwise/soap/stdsoap2.h
index b68c2407..adb5037b 100644
--- a/tderesources/groupwise/soap/stdsoap2.h
+++ b/tderesources/groupwise/soap/stdsoap2.h
@@ -153,11 +153,6 @@ A commercial use license is available from Genivia, Inc., contact@genivia.com
# endif
#endif
-#ifdef __SYMBIAN32__
-# define SYMBIAN
-# undef WIN32
-#endif
-
#if defined(__palmos__) || defined(PALM_GCC) || defined(__PALMOS_TRAPS__)
# ifndef PALM
# define PALM
@@ -333,12 +328,6 @@ A commercial use license is available from Genivia, Inc., contact@genivia.com
# define O_NONBLOCK FNONBIO
# include <sys_socket.h>
# include "palmFunctions.h"
-# elif defined(SYMBIAN)
-# define WITH_LEAN
-# define WITH_NONAMESPACES
-# define HAVE_STRTOD /* use STRTOD since sscanf doesn't seem to work */
-# include <e32def.h>
-# include <sys/ioctl.h>
# elif defined(VXWORKS)
# define HAVE_STRRCHR
# define HAVE_STRTOD
@@ -445,9 +434,7 @@ A commercial use license is available from Genivia, Inc., contact@genivia.com
# include <sockLib.h>
# endif
# ifndef VXWORKS
-# ifndef SYMBIAN
-# include <strings.h>
-# endif
+# include <strings.h>
# endif
# ifdef SUN_OS
# include <sys/stream.h> /* SUN */
@@ -565,10 +552,7 @@ extern "C" {
#define SOAP_INVALID_SOCKET (-1)
#define soap_valid_socket(n) ((n) != SOAP_INVALID_SOCKET)
-#if defined(SYMBIAN)
-# define LONG64 long
-# define ULONG64 unsigned LONG64
-#elif !defined(WIN32) || defined(__GLIBC__) || defined(__GNU__)
+#if !defined(WIN32) || defined(__GLIBC__) || defined(__GNU__)
# ifndef LONG64
# define LONG64 long long
# define ULONG64 unsigned LONG64
@@ -583,8 +567,6 @@ extern "C" {
#if defined(WIN32)
# define soap_int32 __int32
-#elif defined(SYMBIAN)
-# define soap_int32 long
#elif defined(PALM)
# define soap_int32 Int32
#else
@@ -601,13 +583,8 @@ extern "C" {
# define SOAP_ERANGE ERANGE
# define SOAP_EINTR EINTR
# define SOAP_EAGAIN EAGAIN
-# ifdef SYMBIAN
-# define SOAP_EWOULDBLOCK 9898
-# define SOAP_EINPROGRESS 9899
-# else
-# define SOAP_EWOULDBLOCK EWOULDBLOCK
-# define SOAP_EINPROGRESS EINPROGRESS
-# endif
+# define SOAP_EWOULDBLOCK EWOULDBLOCK
+# define SOAP_EINPROGRESS EINPROGRESS
#endif
#ifdef WIN32
diff --git a/tderesources/groupwise/tdeabc_groupwise.desktop b/tderesources/groupwise/tdeabc_groupwise.desktop
index 2f982324..7b72c451 100644
--- a/tderesources/groupwise/tdeabc_groupwise.desktop
+++ b/tderesources/groupwise/tdeabc_groupwise.desktop
@@ -1,48 +1,6 @@
[Desktop Entry]
Name=Novell GroupWise Server
-Name[af]=Novell GroupWise bediener
-Name[bg]=Сървър Novell GroupWise
-Name[br]=Servijer Novell GroupWise
-Name[ca]=Servidor Novell GroupWise
-Name[cs]=Novell GroupWise server
-Name[da]=Novell GroupWise server
-Name[el]=Εξυπηρετητής Novell GroupWise
-Name[es]=Servidor de Novell GroupWise
-Name[et]=Novelli GroupWise server
-Name[eu]=Novell GroupWise zerbitzaria
-Name[fa]=کارساز Novell GroupWise
-Name[fi]=Novell GroupWise -palvelin
-Name[fr]=Serveur de travail collaboratif GroupWise de Novell
-Name[fy]=Novell GroupWise-tsjinner
-Name[ga]=Freastalaí Novell GroupWise
-Name[gl]=Servidor Novell GroupWise
-Name[hu]=Novell GroupWise kiszolgáló
-Name[is]=Novell GroupWise þjónn
-Name[it]=Server Novell GroupWise
-Name[ja]=Novell GroupWise サーバ
-Name[ka]=სერვერი Novell GroupWise
-Name[kk]=Novell GroupWise сервері
-Name[km]=ម៉ាស៊ីន​បម្រើ GroupWise របស់​ណូវែល
-Name[lt]=Novell GroupWise serveris
-Name[ms]=Pelayan Novell GroupWise
-Name[nb]=Novell GroupWise-tjener
-Name[nds]=Novell-GroupWise-Server
-Name[ne]=नोभेल समूहगत सर्भर
-Name[nl]=Novell GroupWise-server
-Name[nn]=Novell GroupWise-tenar
-Name[pl]=Serwer Novell GroupWise
-Name[pt]=Servidor Novell GroupWise
-Name[pt_BR]=Servidor GroupWise da Novell
-Name[ru]=Сервер Novell GroupWise
-Name[sl]=Strežnik Novell GroupWise
-Name[sr]=Novell-ов GroupWise сервер
-Name[sr@Latn]=Novell-ov GroupWise server
-Name[sv]=Novell Groupwise-server
-Name[ta]=Novell குழுவாரிச் சேவகன்
-Name[tr]=Novell GroupWise Sunucusu
-Name[uk]=Сервер Novell GroupWise
-Name[zh_CN]=Novell GroupWise 服务器
-Name[zh_TW]=Novell 群組伺服器
+
X-TDE-Library=tdeabc_groupwise
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/groupwise/tdeabc_resourcegroupwise.cpp b/tderesources/groupwise/tdeabc_resourcegroupwise.cpp
index 7c3ed791..04ecc769 100644
--- a/tderesources/groupwise/tdeabc_resourcegroupwise.cpp
+++ b/tderesources/groupwise/tdeabc_resourcegroupwise.cpp
@@ -288,8 +288,8 @@ bool ResourceGroupwise::asyncLoad()
{
mProgress = KPIM::ProgressManager::instance()->createProgressItem(
KPIM::ProgressManager::getUniqueID(), i18n( "Loading GroupWise resource %1" ).arg( resourceName() ), TQString(), true /*CanBeCancelled*/, mPrefs->url().startsWith("https" ) );
- connect( mProgress, TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
- TQT_SLOT( cancelLoad() ) );
+ connect( mProgress, TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
+ TQ_SLOT( cancelLoad() ) );
}
if ( addressBooks().isEmpty() ) {
@@ -349,15 +349,15 @@ void ResourceGroupwise::fetchAddressBooks( const BookType bookType )
mJob = TDEIO::get( url, false, false ); // TODO: make the GW jobs call finished if the URL
// contains no address book IDs
kdDebug() << " Job address: " << mJob << endl;
- connect( mJob, TQT_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
- TQT_SLOT( slotReadJobData( TDEIO::Job *, const TQByteArray & ) ) );
- connect( mJob, TQT_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
- TQT_SLOT( slotJobPercent( TDEIO::Job *, unsigned long ) ) );
+ connect( mJob, TQ_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
+ TQ_SLOT( slotReadJobData( TDEIO::Job *, const TQByteArray & ) ) );
+ connect( mJob, TQ_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
+ TQ_SLOT( slotJobPercent( TDEIO::Job *, unsigned long ) ) );
if ( bookType == System )
{
- connect( mJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( fetchSABResult( TDEIO::Job * ) ) );
+ connect( mJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( fetchSABResult( TDEIO::Job * ) ) );
mSABProgress = KPIM::ProgressManager::instance()->createProgressItem(
mProgress, KPIM::ProgressManager::getUniqueID(),
i18n( "Fetching System Address Book" ), TQString(),
@@ -366,8 +366,8 @@ void ResourceGroupwise::fetchAddressBooks( const BookType bookType )
}
else
{
- connect( mJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( fetchUABResult( TDEIO::Job * ) ) );
+ connect( mJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( fetchUABResult( TDEIO::Job * ) ) );
mUABProgress = KPIM::ProgressManager::instance()->createProgressItem(
mProgress, KPIM::ProgressManager::getUniqueID(),
i18n( "Fetching User Address Books" ), TQString(),
@@ -446,12 +446,12 @@ void ResourceGroupwise::updateSystemAddressBook()
mJob = TDEIO::get( url, false, false );
mJob->setInteractive( false );
- connect( mJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( updateSABResult( TDEIO::Job * ) ) );
- connect( mJob, TQT_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
- TQT_SLOT( slotUpdateJobData( TDEIO::Job *, const TQByteArray & ) ) );
- connect( mJob, TQT_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
- TQT_SLOT( slotJobPercent( TDEIO::Job *, unsigned long ) ) );
+ connect( mJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( updateSABResult( TDEIO::Job * ) ) );
+ connect( mJob, TQ_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
+ TQ_SLOT( slotUpdateJobData( TDEIO::Job *, const TQByteArray & ) ) );
+ connect( mJob, TQ_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
+ TQ_SLOT( slotJobPercent( TDEIO::Job *, unsigned long ) ) );
return;
}
diff --git a/tderesources/groupwise/tdeabc_resourcegroupwise.h b/tderesources/groupwise/tdeabc_resourcegroupwise.h
index fb1d075a..ccf74403 100644
--- a/tderesources/groupwise/tdeabc_resourcegroupwise.h
+++ b/tderesources/groupwise/tdeabc_resourcegroupwise.h
@@ -23,7 +23,7 @@
#include "soap/groupwiseserver.h"
#include <tdeabcresourcecached.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <libtdepim/progressmanager.h>
@@ -41,7 +41,7 @@ class KDE_EXPORT ResourceGroupwise : public ResourceCached
{
friend class ResourceGroupwiseConfig;
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -143,7 +143,7 @@ class KDE_EXPORT ResourceGroupwise : public ResourceCached
/** DATA PROCESSING SLOTS **/
void slotReadJobData( TDEIO::Job *, const TQByteArray & );
void slotUpdateJobData( TDEIO::Job *, const TQByteArray & );
- /** HELPER TQT_SLOT **/
+ /** HELPER TQ_SLOT **/
void slotJobPercent( TDEIO::Job *job, unsigned long percent );
void cancelLoad();
diff --git a/tderesources/groupwise/tdeabc_resourcegroupwiseconfig.cpp b/tderesources/groupwise/tdeabc_resourcegroupwiseconfig.cpp
index 49016cdd..69dd7a6f 100644
--- a/tderesources/groupwise/tdeabc_resourcegroupwiseconfig.cpp
+++ b/tderesources/groupwise/tdeabc_resourcegroupwiseconfig.cpp
@@ -102,7 +102,7 @@ ResourceGroupwiseConfig::ResourceGroupwiseConfig( TQWidget* parent, const char*
mainLayout->addWidget( label, 6, 0 );
mainLayout->addWidget( mAddressBookBox, 6, 1 );
- connect( updateButton, TQT_SIGNAL( clicked() ), TQT_SLOT( updateAddressBookList() ) );
+ connect( updateButton, TQ_SIGNAL( clicked() ), TQ_SLOT( updateAddressBookList() ) );
}
void ResourceGroupwiseConfig::loadSettings( KRES::Resource *res )
diff --git a/tderesources/groupwise/tdeabc_resourcegroupwiseconfig.h b/tderesources/groupwise/tdeabc_resourcegroupwiseconfig.h
index df62753a..2e3ccea4 100644
--- a/tderesources/groupwise/tdeabc_resourcegroupwiseconfig.h
+++ b/tderesources/groupwise/tdeabc_resourcegroupwiseconfig.h
@@ -23,7 +23,7 @@
#include "soap/groupwiseserver.h"
#include <tderesources/configwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqmap.h>
@@ -38,7 +38,7 @@ class ResourceGroupwise;
class KDE_EXPORT ResourceGroupwiseConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/groupwise/tdeioslave/CMakeLists.txt b/tderesources/groupwise/tdeioslave/CMakeLists.txt
index aec2c35d..20e6d525 100644
--- a/tderesources/groupwise/tdeioslave/CMakeLists.txt
+++ b/tderesources/groupwise/tdeioslave/CMakeLists.txt
@@ -25,9 +25,11 @@ link_directories(
##### other data ################################
-install( FILES
- groupwise.protocol groupwises.protocol
- DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE groupwise.protocol groupwises.protocol
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR tderesources-desktops
+)
##### tdeio_groupwise (module) ####################
diff --git a/tderesources/groupwise/tdeioslave/groupwise.cpp b/tderesources/groupwise/tdeioslave/groupwise.cpp
index 56021e68..1c68d654 100644
--- a/tderesources/groupwise/tdeioslave/groupwise.cpp
+++ b/tderesources/groupwise/tdeioslave/groupwise.cpp
@@ -44,7 +44,7 @@
#include <unistd.h>
#include <stdlib.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "groupwise.h"
@@ -295,14 +295,14 @@ void Groupwise::getAddressbook( const KURL &url )
GroupwiseServer server( u, user, pass, 0 );
- connect( &server, TQT_SIGNAL( readAddressBookTotalSize( int ) ),
- TQT_SLOT( slotReadAddressBookTotalSize( int ) ) );
- connect( &server, TQT_SIGNAL( readAddressBookProcessedSize( int ) ),
- TQT_SLOT( slotReadAddressBookProcessedSize( int ) ) );
- connect( &server, TQT_SIGNAL( errorMessage( const TQString &, bool ) ),
- TQT_SLOT( slotServerErrorMessage( const TQString &, bool ) ) );
- connect( &server, TQT_SIGNAL( gotAddressees( const TDEABC::Addressee::List ) ),
- TQT_SLOT( slotReadReceiveAddressees( const TDEABC::Addressee::List ) ) );
+ connect( &server, TQ_SIGNAL( readAddressBookTotalSize( int ) ),
+ TQ_SLOT( slotReadAddressBookTotalSize( int ) ) );
+ connect( &server, TQ_SIGNAL( readAddressBookProcessedSize( int ) ),
+ TQ_SLOT( slotReadAddressBookProcessedSize( int ) ) );
+ connect( &server, TQ_SIGNAL( errorMessage( const TQString &, bool ) ),
+ TQ_SLOT( slotServerErrorMessage( const TQString &, bool ) ) );
+ connect( &server, TQ_SIGNAL( gotAddressees( const TDEABC::Addressee::List ) ),
+ TQ_SLOT( slotReadReceiveAddressees( const TDEABC::Addressee::List ) ) );
kdDebug() << "Login" << endl;
if ( !server.login() ) {
@@ -369,10 +369,10 @@ void Groupwise::updateAddressbook( const KURL &url )
debugMessage( "update IDs: " + ids.join( "," ) );
GroupwiseServer server( u, user, pass, 0 );
- connect( &server, TQT_SIGNAL( errorMessage( const TQString &, bool ) ),
- TQT_SLOT( slotServerErrorMessage( const TQString &, bool ) ) );
- connect( &server, TQT_SIGNAL( gotAddressees( const TDEABC::Addressee::List ) ),
- TQT_SLOT( slotReadReceiveAddressees( const TDEABC::Addressee::List ) ) );
+ connect( &server, TQ_SIGNAL( errorMessage( const TQString &, bool ) ),
+ TQ_SLOT( slotServerErrorMessage( const TQString &, bool ) ) );
+ connect( &server, TQ_SIGNAL( gotAddressees( const TDEABC::Addressee::List ) ),
+ TQ_SLOT( slotReadReceiveAddressees( const TDEABC::Addressee::List ) ) );
kdDebug() << " Login" << endl;
if ( !server.login() ) {
diff --git a/tderesources/groupwise/tdeioslave/groupwise.h b/tderesources/groupwise/tdeioslave/groupwise.h
index 5004682d..73fb48bb 100644
--- a/tderesources/groupwise/tdeioslave/groupwise.h
+++ b/tderesources/groupwise/tdeioslave/groupwise.h
@@ -26,7 +26,7 @@
class Groupwise : public TQObject, public TDEIO::SlaveBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
void get( const KURL &url );
diff --git a/tderesources/kolab/kcal/CMakeLists.txt b/tderesources/kolab/kcal/CMakeLists.txt
index 9f932b5e..a9491d4d 100644
--- a/tderesources/kolab/kcal/CMakeLists.txt
+++ b/tderesources/kolab/kcal/CMakeLists.txt
@@ -26,9 +26,11 @@ link_directories(
##### other data ################################
-install(
- FILES kolab.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal )
+tde_create_translated_desktop(
+ SOURCE kolab.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal
+ PO_DIR tderesources-desktops
+)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/../uninstall.desktop
diff --git a/tderesources/kolab/kcal/kolab.desktop b/tderesources/kolab/kcal/kolab.desktop
index a2355a39..f5daa4b4 100644
--- a/tderesources/kolab/kcal/kolab.desktop
+++ b/tderesources/kolab/kcal/kolab.desktop
@@ -1,50 +1,6 @@
[Desktop Entry]
Name=Calendar on IMAP Server via KMail
-Name[af]=Kalender op IMAP bediener via KMail
-Name[bg]=Календар на сървър IMAP през KMail
-Name[br]=Deiziadur en ur servijer IMAP gant KMail
-Name[ca]=Calendari sobre servidor IMAP mitjançant KMail
-Name[cs]=Kalendář na IMAP serveru přes KMail
-Name[da]=Kalender på IMAP-server via KMail
-Name[de]=Kalender auf einem IMAP-Server via KMail
-Name[el]=Ημερολόγιο σε εξυπηρετητή IMAP μέσω του KMail
-Name[es]=Calendario en servidor IMAP por medio de KMail
-Name[et]=Kalender IMAP-serveris (KMaili vahendusel)
-Name[eu]=Egutegia IMAP zerbitzarian KMail-en bidez
-Name[fa]=تقویم روی کارساز IMAP از طریق KMail
-Name[fi]=Kalenteri IMAP-palvelimella KMailin avulla
-Name[fr]=Agenda sur serveur IMAP (via KMail)
-Name[fy]=Aginda op IMAP-tsjinner fia KMail
-Name[ga]=Féilire ar Fhreastalaí IMAP via KMail
-Name[gl]=Calendario no servidor IMAP mediante KMail
-Name[hu]=IMAP-kiszolgálón tárolt naptár a KMailen keresztül
-Name[is]=Dagatal á IMAP þjóni gegnum KMail
-Name[it]=Calendario su server IMAP via KMail
-Name[ja]=KMail 経由 IMAP サーバのカレンダー
-Name[kk]=KMail арқылы IMAP серверіндегі күнтізбе
-Name[km]=ប្រតិទិន​លើ​ម៉ាស៊ីន​បម្រើ IMAP តាម​រយៈ KMail
-Name[lt]=Kalendorius IMAP serveryje per KMail
-Name[mk]=Календар на IMAP-сервер преку КПошта
-Name[ms]=Kalendar pada pelayan IMAP melalui KMail
-Name[nb]=Kalender på IMAP-tjener via KMail
-Name[nds]=Kalenner op IMAP-Server över KMail
-Name[ne]=केडीई मेल मार्फत IMAP सर्भरमा क्यालेन्डर
-Name[nl]=Agenda op IMAP-server via KMail
-Name[nn]=Kalender på IMAP-tenar via KMail
-Name[pl]=Kalendarz na serwerze IMAP za pośrednictwem KMail
-Name[pt]=Calendário em Servidor IMAP via KMail
-Name[pt_BR]=Calendário em Servidor IMAP via KMail
-Name[ru]=Календарь на сервере IMAP через KMail
-Name[sk]=Kalendár na IMAP serveri pomocou KMail
-Name[sl]=Koledar na strežniku IMAP preko KMaila
-Name[sr]=Календар на IMAP серверу преко KMail-а
-Name[sr@Latn]=Kalendar na IMAP serveru preko KMail-a
-Name[sv]=Kalender på IMAP-server via Kmail
-Name[ta]=IMAP சேவையக வழியாக கேஅஞ்சலில் நாட்காட்டி
-Name[tr]=KMail Aracılığı ile IMAP Sunucusunda Takvim
-Name[uk]=Календар на сервері IMAP через KMail
-Name[zh_CN]=通过 KMail 访问 IMAP 服务器上的日历
-Name[zh_TW]=透過 KMail 取得 IMAP 伺服器上的行事曆
+
X-TDE-Library=kcal_kolab
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/kolab/kcal/resourcekolab.cpp b/tderesources/kolab/kcal/resourcekolab.cpp
index 869ddca8..24f6efe0 100644
--- a/tderesources/kolab/kcal/resourcekolab.cpp
+++ b/tderesources/kolab/kcal/resourcekolab.cpp
@@ -77,8 +77,8 @@ ResourceKolab::ResourceKolab( const TDEConfig *config )
setResourceName( i18n( "Kolab Server" ) );
}
setType( "imap" );
- connect( &mResourceChangedTimer, TQT_SIGNAL( timeout() ),
- this, TQT_SLOT( slotEmitResourceChanged() ) );
+ connect( &mResourceChangedTimer, TQ_SIGNAL( timeout() ),
+ this, TQ_SLOT( slotEmitResourceChanged() ) );
}
ResourceKolab::~ResourceKolab()
@@ -402,7 +402,7 @@ void ResourceKolab::resolveConflict( KCal::Incidence* inc, const TQString& subre
KIncidenceChooser* ch = new KIncidenceChooser();
ch->setIncidence( local ,inc );
if ( KIncidenceChooser::chooseMode == KIncidenceChooser::ask ) {
- connect ( this, TQT_SIGNAL( useGlobalMode() ), ch, TQT_SLOT ( useGlobalMode() ) );
+ connect ( this, TQ_SIGNAL( useGlobalMode() ), ch, TQ_SLOT ( useGlobalMode() ) );
if ( ch->exec() ) {
if ( KIncidenceChooser::chooseMode != KIncidenceChooser::ask ) {
emit useGlobalMode() ;
@@ -711,7 +711,7 @@ bool ResourceKolab::addIncidence( KCal::Incidence* incidence, const TQString& _s
/* Will be needed when kmail triggers a delete, so we don't delete the inocent
* incidence that's sharing the uid with this one */
- mOriginalUID2fakeUID[tqMakePair( incidence->schedulingID(), subResource )] = uid;
+ mOriginalUID2fakeUID[qMakePair( incidence->schedulingID(), subResource )] = uid;
}
}
/* Add to the cache if the add didn't come from KOrganizer, in which case
@@ -1185,7 +1185,7 @@ void ResourceKolab::setSubresourceActive( const TQString &subresource, bool v )
}
mResourceChangedTimer.changeInterval( 100 );
}
- TQTimer::singleShot( 0, this, TQT_SLOT(writeConfig()) );
+ TQTimer::singleShot( 0, this, TQ_SLOT(writeConfig()) );
}
bool ResourceKolab::subresourceWritable( const TQString& subresource ) const
diff --git a/tderesources/kolab/kcal/resourcekolab.h b/tderesources/kolab/kcal/resourcekolab.h
index 357c9804..a8404cd3 100644
--- a/tderesources/kolab/kcal/resourcekolab.h
+++ b/tderesources/kolab/kcal/resourcekolab.h
@@ -37,7 +37,7 @@
#include <tqtimer.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <libkcal/calendarlocal.h>
#include <libkcal/icalformat.h>
#include <libkcal/resourcecalendar.h>
@@ -51,7 +51,7 @@ class KDE_EXPORT ResourceKolab : public KCal::ResourceCalendar,
public KCal::IncidenceBase::Observer,
public Kolab::ResourceKolabBase
{
- Q_OBJECT
+ TQ_OBJECT
friend struct TemporarySilencer;
diff --git a/tderesources/kolab/knotes/CMakeLists.txt b/tderesources/kolab/knotes/CMakeLists.txt
index 8e10f3e5..a9f42059 100644
--- a/tderesources/kolab/knotes/CMakeLists.txt
+++ b/tderesources/kolab/knotes/CMakeLists.txt
@@ -26,9 +26,11 @@ link_directories(
##### other data ################################
-install(
- FILES kolabresource.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/knotes )
+tde_create_translated_desktop(
+ SOURCE kolabresource.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/knotes
+ PO_DIR tderesources-desktops
+)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/../uninstall.desktop
diff --git a/tderesources/kolab/knotes/kolabresource.desktop b/tderesources/kolab/knotes/kolabresource.desktop
index 8cdf00af..b35bc379 100644
--- a/tderesources/kolab/knotes/kolabresource.desktop
+++ b/tderesources/kolab/knotes/kolabresource.desktop
@@ -1,50 +1,6 @@
[Desktop Entry]
Name=IMAP Server via KMail
-Name[af]=IMAP bediener via KMail
-Name[bg]=Сървър IMAP през KMail
-Name[br]=Servijer IMAP gant KMail
-Name[ca]=Servidor IMAP mitjançant KMail
-Name[cs]=IMAP server přes KMail
-Name[da]=IMAP-server via KMail
-Name[de]=IMAP-Server via KMail
-Name[el]=Εξυπηρετητής IMAP μέσω του KMail
-Name[es]=Servidor IMAP por medio de KMail
-Name[et]=IMAP-server (KMaili vahendusel)
-Name[eu]=IMAP zerbitzaria KMail-en bidez
-Name[fa]=کارساز IMAP از طریق KMail
-Name[fi]=IMAP-palvelin KMailin avulla
-Name[fr]=Serveur IMAP (via KMail)
-Name[fy]=IMAP-tsjinner fia KMail
-Name[ga]=Freastalaí IMAP via KMail
-Name[gl]=Servidor MAP mediante KMail
-Name[hu]=IMAP-kiszolgáló a KMailen keresztül
-Name[is]=IMAP þjónn gegnum KMail
-Name[it]=Server IMAP via KMail
-Name[ja]=KMail 経由 IMAP サーバ
-Name[kk]=KMail арқылы IMAP сервері
-Name[km]=ម៉ាស៊ីន​បម្រើ IMAP តាម​រយៈ KMail
-Name[lt]=IMAP serveris per KMail
-Name[mk]=IMAP-сервер преку КПошта
-Name[ms]=Pelayan IMAP melalui KMail
-Name[nb]=IMAP-tjener via KMail
-Name[nds]=IMAP-Server över KMail
-Name[ne]=केडीई मेल मार्फत IMAP सर्भर
-Name[nl]=IMAP-server via KMail
-Name[nn]=IMAP-tenar via KMail
-Name[pl]=Serwer IMAP za pośrednictwem KMail
-Name[pt]=Servidor IMAP via KMail
-Name[pt_BR]=Servidor IMAP via KMail
-Name[ru]=Доступ к серверу IMAP через KMail
-Name[sk]=IMAP-server pomocou KMail
-Name[sl]=Strežnik IMAP preko KMaila
-Name[sr]=IMAP сервер преко KMail-а
-Name[sr@Latn]=IMAP server preko KMail-a
-Name[sv]=IMAP-server via Kmail
-Name[ta]=IMAP சேவகன் மூலாம் கேஅஞ்சல்
-Name[tr]=KMail aracılığı ile IMAP Sunucu
-Name[uk]=Сервер IMAP через KMail
-Name[zh_CN]=通过 KMail 访问 IMAP 服务器
-Name[zh_TW]=透過 KMail 取得 IMAP 伺服器
+
X-TDE-Library=knotes_kolab
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/kolab/knotes/resourcekolab.h b/tderesources/kolab/knotes/resourcekolab.h
index fb0d191b..5f1023b4 100644
--- a/tderesources/kolab/knotes/resourcekolab.h
+++ b/tderesources/kolab/knotes/resourcekolab.h
@@ -39,7 +39,7 @@
#include <libkcal/calendarlocal.h>
#include "../shared/resourcekolabbase.h"
#include "../shared/subresource.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace Kolab {
@@ -53,7 +53,7 @@ class KDE_EXPORT ResourceKolab : public ResourceNotes,
public KCal::IncidenceBase::Observer,
public ResourceKolabBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/kolab/shared/kmailconnection.cpp b/tderesources/kolab/shared/kmailconnection.cpp
index 8011c15d..ac4904a8 100644
--- a/tderesources/kolab/shared/kmailconnection.cpp
+++ b/tderesources/kolab/shared/kmailconnection.cpp
@@ -56,8 +56,8 @@ KMailConnection::KMailConnection( ResourceKolabBase* resource,
mDCOPClient->registerAs( objId, true );
kapp->dcopClient()->setNotifications( true );
- connect( kapp->dcopClient(), TQT_SIGNAL( applicationRemoved( const TQCString& ) ),
- this, TQT_SLOT( unregisteredFromDCOP( const TQCString& ) ) );
+ connect( kapp->dcopClient(), TQ_SIGNAL( applicationRemoved( const TQCString& ) ),
+ this, TQ_SLOT( unregisteredFromDCOP( const TQCString& ) ) );
}
KMailConnection::~KMailConnection()
diff --git a/tderesources/kolab/shared/kmailconnection.h b/tderesources/kolab/shared/kmailconnection.h
index 62003b5f..5497246a 100644
--- a/tderesources/kolab/shared/kmailconnection.h
+++ b/tderesources/kolab/shared/kmailconnection.h
@@ -49,7 +49,7 @@ class ResourceKolabBase;
This class provides the kmail connectivity for IMAP resources.
*/
class KMailConnection : public TQObject, public DCOPObject {
- Q_OBJECT
+ TQ_OBJECT
//
K_DCOP
diff --git a/tderesources/kolab/shared/kolabbase.cpp b/tderesources/kolab/shared/kolabbase.cpp
index 1dc5418b..5834fd1f 100644
--- a/tderesources/kolab/shared/kolabbase.cpp
+++ b/tderesources/kolab/shared/kolabbase.cpp
@@ -409,12 +409,12 @@ TQDomDocument KolabBase::domTree()
TQString KolabBase::dateTimeToString( const TQDateTime& time )
{
- return time.toString( Qt::ISODate ) + 'Z';
+ return time.toString( TQt::ISODate ) + 'Z';
}
TQString KolabBase::dateToString( const TQDate& date )
{
- return date.toString( Qt::ISODate );
+ return date.toString( TQt::ISODate );
}
TQDateTime KolabBase::stringToDateTime( const TQString& _date )
@@ -423,15 +423,15 @@ TQDateTime KolabBase::stringToDateTime( const TQString& _date )
//Deal with data from some clients that always append a Z to dates.
if ( date.endsWith( "ZZ" ) )
date.truncate( date.length() - 2 );
- //In TQt3, Qt::ISODate cannot handle a trailing Z for UTC, so remove if found.
+ //In TQt3, TQt::ISODate cannot handle a trailing Z for UTC, so remove if found.
else if ( date.endsWith( "Z" ) )
date.truncate( date.length() - 1 );
- return TQDateTime::fromString( date, Qt::ISODate );
+ return TQDateTime::fromString( date, TQt::ISODate );
}
TQDate KolabBase::stringToDate( const TQString& date )
{
- return TQDate::fromString( date, Qt::ISODate );
+ return TQDate::fromString( date, TQt::ISODate );
}
TQString KolabBase::sensitivityToString( Sensitivity s )
diff --git a/tderesources/kolab/tdeabc/CMakeLists.txt b/tderesources/kolab/tdeabc/CMakeLists.txt
index 9a77705c..9c348031 100644
--- a/tderesources/kolab/tdeabc/CMakeLists.txt
+++ b/tderesources/kolab/tdeabc/CMakeLists.txt
@@ -25,9 +25,11 @@ link_directories(
##### other data ################################
-install(
- FILES kolab.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc )
+tde_create_translated_desktop(
+ SOURCE kolab.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc
+ PO_DIR tderesources-desktops
+)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/../uninstall.desktop
diff --git a/tderesources/kolab/tdeabc/contact.cpp b/tderesources/kolab/tdeabc/contact.cpp
index 21583eb3..7d594735 100644
--- a/tderesources/kolab/tdeabc/contact.cpp
+++ b/tderesources/kolab/tdeabc/contact.cpp
@@ -33,6 +33,7 @@
#include "contact.h"
#include "resourcekolab.h"
+#include <tdeversion.h>
#include <tdeabc/addressee.h>
#include <tdeabc/stdaddressbook.h>
#include <libkcal/freebusyurlstore.h>
diff --git a/tderesources/kolab/tdeabc/kolab.desktop b/tderesources/kolab/tdeabc/kolab.desktop
index ca9713dc..61d05950 100644
--- a/tderesources/kolab/tdeabc/kolab.desktop
+++ b/tderesources/kolab/tdeabc/kolab.desktop
@@ -1,50 +1,6 @@
[Desktop Entry]
Name=Addressbook on IMAP Server via KMail
-Name[af]=Adresboek op IMAP bediener via KMail
-Name[bg]=Адресник на сървър IMAP през KMail
-Name[br]=Karned chomlec'hioù war ur servijer IMAP gant KMail
-Name[ca]=Llibreta d'adreces sobre servidor IMAP mitjançant KMail
-Name[cs]=Kniha adres na IMAP serveru přes KMail
-Name[da]=Adressebog på IMAP-server via KMail
-Name[de]=Adressbuch auf einem IMAP-Server via KMail
-Name[el]=Ημερολόγιο σε εξυπηρετητή IMAP μέσω του KMail
-Name[es]=Libreta de direcciones en servidor IMAP por medio de KMail
-Name[et]=Aadressiraamat IMAP-serveris (KMaili vahendusel)
-Name[eu]=Helbide-liburua IMAP zerbitzarian KMail-en bidez
-Name[fa]=کتاب نشانی روی کارساز IMAP از طریق KMail
-Name[fi]=Osoitekirja IMAP-palvelimella KMailin avulla
-Name[fr]=Carnet d'adresse sur serveur IMAP (via KMail)
-Name[fy]=Adresboek op IMAP-tsjinner fia KMail
-Name[ga]=Leabhar Seoltaí ar Fhreastalaí IMAP via KMail
-Name[gl]=Caderno de enderezos nun servidor IMAP mediante KMail
-Name[hu]=IMAP-kiszolgálón tárolt címjegyzék a KMailen keresztül
-Name[is]=Vistfangaskrá á IMAP þjóni gegnum KMail
-Name[it]=Rubrica indirizzi su server IMAP via KMail
-Name[ja]=KMail 経由 IMAP サーバのアドレス帳
-Name[kk]=KMail арқылы IMAP серверіндегі адрестік кітапша
-Name[km]=សៀវភៅ​អាសយដ្ឋាន​លើ​ម៉ាស៊ីន​បម្រើ IMAP តាម​រយៈ KMail
-Name[lt]=Adresų knygelė IMAP serveryje per KMail
-Name[mk]=Адресар на IMAP-сервер преку КПошта
-Name[ms]=Buku alamat pada pelayan IMAP melalui KMail
-Name[nb]=Adressebok på IMAP-tjener via KMail
-Name[nds]=Adressbook op IMAP-Server över KMail
-Name[ne]=केडीई मेल मार्फत IMAP सर्भरमा ठेगाना पुस्तिका
-Name[nl]=Adresboek op IMAP-server via KMail
-Name[nn]=Adressebok på IMAP-tenar via KMail
-Name[pl]=Książka adresowa na serwerze IMAP za pośrednictwem KMail
-Name[pt]=Livro de Endereços em Servidor IMAP via KMail
-Name[pt_BR]=Livro de Endereços em servidor IMAP via KMail
-Name[ru]=Адресная книга на сервере IMAP через KMail
-Name[sk]=Adresár na IMAP-serveri pomocou KMail
-Name[sl]=Adresar na strežniku IMAP preko KMaila
-Name[sr]=Адресар на IMAP серверу преко KMail-а
-Name[sr@Latn]=Adresar na IMAP serveru preko KMail-a
-Name[sv]=Adressbok på IMAP-server via Kmail
-Name[ta]=IMAP சேவகன் மூலம் கேஅஞ்சல் முகவரிப்புத்தகம்
-Name[tr]=KMail Aracılığı ile IMAP Sunucusunda Adres Defteri
-Name[uk]=Адресна книга на сервері IMAP через KMail
-Name[zh_CN]=通过 KMail 访问 IMAP 服务器上的地址簿
-Name[zh_TW]=透過 KMail 取得 IMAP 伺服器上的通訊錄
+
X-TDE-Library=tdeabc_kolab
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/kolab/tdeabc/resourcekolab.h b/tderesources/kolab/tdeabc/resourcekolab.h
index a19dfbaa..3347a177 100644
--- a/tderesources/kolab/tdeabc/resourcekolab.h
+++ b/tderesources/kolab/tdeabc/resourcekolab.h
@@ -38,7 +38,7 @@
#include "../shared/resourcekolabbase.h"
#include "../shared/subresource.h"
#include <kmail/kmailicalIface.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace TDEABC {
@@ -52,7 +52,7 @@ namespace TDEABC {
class KDE_EXPORT ResourceKolab : public KPIM::ResourceABC,
public Kolab::ResourceKolabBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/lib/addressbookadaptor.h b/tderesources/lib/addressbookadaptor.h
index a1a43f0e..5a754bc6 100644
--- a/tderesources/lib/addressbookadaptor.h
+++ b/tderesources/lib/addressbookadaptor.h
@@ -26,7 +26,7 @@
#include "groupwaredataadaptor.h"
#include <tdeabc/addressee.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <kurl.h>
namespace TDEABC {
diff --git a/tderesources/lib/calendaradaptor.h b/tderesources/lib/calendaradaptor.h
index 354a2795..dc203440 100644
--- a/tderesources/lib/calendaradaptor.h
+++ b/tderesources/lib/calendaradaptor.h
@@ -27,7 +27,7 @@
#include <libkcal/incidence.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <kurl.h>
namespace KPIM {
@@ -51,7 +51,7 @@ class CalendarUploadItem : public KPIM::GroupwareUploadItem
class KDE_EXPORT CalendarAdaptor : public KPIM::GroupwareDataAdaptor
{
- Q_OBJECT
+ TQ_OBJECT
public:
CalendarAdaptor();
diff --git a/tderesources/lib/davaddressbookadaptor.h b/tderesources/lib/davaddressbookadaptor.h
index 883d1510..fcb16afa 100644
--- a/tderesources/lib/davaddressbookadaptor.h
+++ b/tderesources/lib/davaddressbookadaptor.h
@@ -24,7 +24,7 @@
#include "addressbookadaptor.h"
#include "folderlister.h"
#include <tqdom.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace TDEABC {
diff --git a/tderesources/lib/davcalendaradaptor.h b/tderesources/lib/davcalendaradaptor.h
index 998a9cc7..ab1c9757 100644
--- a/tderesources/lib/davcalendaradaptor.h
+++ b/tderesources/lib/davcalendaradaptor.h
@@ -24,7 +24,7 @@
#include "calendaradaptor.h"
#include "folderlister.h"
#include <tqdom.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KCal {
diff --git a/tderesources/lib/folderconfig.cpp b/tderesources/lib/folderconfig.cpp
index e400c02f..facdf13b 100644
--- a/tderesources/lib/folderconfig.cpp
+++ b/tderesources/lib/folderconfig.cpp
@@ -47,12 +47,12 @@ FolderConfig::FolderConfig( TQWidget *parent )
TQBoxLayout *topLayout = new TQVBoxLayout( this );
topLayout->addSpacing( KDialog::spacingHint() );
- TQGroupBox *topBox = new TQGroupBox( 1, Qt::Horizontal, i18n("Folder Selection"),
+ TQGroupBox *topBox = new TQGroupBox( 1, TQt::Horizontal, i18n("Folder Selection"),
this );
topLayout->addWidget( topBox );
TQPushButton *button = new TQPushButton( i18n("Update Folder List"), topBox );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SIGNAL( updateFoldersClicked() ) );
+ connect( button, TQ_SIGNAL( clicked() ), TQ_SIGNAL( updateFoldersClicked() ) );
mFolderList = new FolderListView( topBox );
@@ -81,7 +81,7 @@ void FolderConfig::setFolderLister( FolderLister *f )
if ( suptypes.contains( FolderLister::Unknown ) ) types << FolderListView::Unknown;
mFolderList->setEnabledTypes( types );
- connect( mFolderLister, TQT_SIGNAL( foldersRead() ), TQT_SLOT( updateFolderList() ) );
+ connect( mFolderLister, TQ_SIGNAL( foldersRead() ), TQ_SLOT( updateFolderList() ) );
}
void FolderConfig::retrieveFolderList( const KURL &url )
diff --git a/tderesources/lib/folderconfig.h b/tderesources/lib/folderconfig.h
index a9b4c714..892128a4 100644
--- a/tderesources/lib/folderconfig.h
+++ b/tderesources/lib/folderconfig.h
@@ -24,7 +24,7 @@
#define KPIM_FOLDERCONFIG_H
#include <kurl.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqwidget.h>
// class TDEListView;
@@ -37,7 +37,7 @@ class FolderLister;
class KDE_EXPORT FolderConfig : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
FolderConfig( TQWidget *parent );
diff --git a/tderesources/lib/folderlister.cpp b/tderesources/lib/folderlister.cpp
index c12d3ae6..ec40e8cc 100644
--- a/tderesources/lib/folderlister.cpp
+++ b/tderesources/lib/folderlister.cpp
@@ -216,12 +216,12 @@ void FolderLister::setAdaptor( KPIM::GroupwareDataAdaptor *adaptor )
disconnect( mAdaptor, 0, this, 0 );
}
mAdaptor = adaptor;
- connect( mAdaptor, TQT_SIGNAL( folderInfoRetrieved( const KURL &,
+ connect( mAdaptor, TQ_SIGNAL( folderInfoRetrieved( const KURL &,
const TQString &, KPIM::FolderLister::ContentType ) ),
- this, TQT_SLOT( processFolderResult( const KURL &, const TQString &,
+ this, TQ_SLOT( processFolderResult( const KURL &, const TQString &,
KPIM::FolderLister::ContentType ) ) );
- connect( mAdaptor, TQT_SIGNAL( folderSubitemRetrieved( const KURL &, bool ) ),
- this, TQT_SLOT( folderSubitemRetrieved( const KURL &, bool ) ) );
+ connect( mAdaptor, TQ_SIGNAL( folderSubitemRetrieved( const KURL &, bool ) ),
+ this, TQ_SLOT( folderSubitemRetrieved( const KURL &, bool ) ) );
}
void FolderLister::folderSubitemRetrieved( const KURL &url, bool isFolder )
@@ -272,8 +272,8 @@ void FolderLister::doRetrieveFolder( const KURL &u )
kdDebug(7000) << "FolderLister::retrieveFolders: adjustedURL="
<< url.prettyURL() << endl;
- connect( listjob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotListJobResult( TDEIO::Job * ) ) );
+ connect( listjob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotListJobResult( TDEIO::Job * ) ) );
} else {
// TODO: Indicate a problem to the user!
kdWarning() << "Unable to create the folder list job for the url "
diff --git a/tderesources/lib/folderlister.h b/tderesources/lib/folderlister.h
index a1d3f2eb..8a5ba529 100644
--- a/tderesources/lib/folderlister.h
+++ b/tderesources/lib/folderlister.h
@@ -26,7 +26,7 @@
// #include "tderesources_groupwareprefs.h"
/*#include "groupwareresourcejob.h"*/
#include <kurl.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqvaluelist.h>
#include <tqstring.h>
@@ -47,7 +47,7 @@ class GroupwarePrefsBase;
class KDE_EXPORT FolderLister : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
enum Type { AddressBook, Calendar };
diff --git a/tderesources/lib/folderlistview.cpp b/tderesources/lib/folderlistview.cpp
index 4659bd46..f2427c48 100644
--- a/tderesources/lib/folderlistview.cpp
+++ b/tderesources/lib/folderlistview.cpp
@@ -43,10 +43,10 @@ FolderListView::FolderListView( TQWidget *parent, const TQValueList<Property> &t
{
setEnabledTypes( types );
- connect( this, TQT_SIGNAL(mouseButtonPressed(int, TQListViewItem*, const TQPoint&, int)),
- this, TQT_SLOT(slotMousePressed(int, TQListViewItem*, const TQPoint&, int)) );
- connect( this, TQT_SIGNAL(spacePressed(TQListViewItem*)),
- this, TQT_SLOT(showPopupMenu(TQListViewItem*)) );
+ connect( this, TQ_SIGNAL(mouseButtonPressed(int, TQListViewItem*, const TQPoint&, int)),
+ this, TQ_SLOT(slotMousePressed(int, TQListViewItem*, const TQPoint&, int)) );
+ connect( this, TQ_SIGNAL(spacePressed(TQListViewItem*)),
+ this, TQ_SLOT(showPopupMenu(TQListViewItem*)) );
}
void FolderListView::setEnabledTypes( const TQValueList<Property> &types )
@@ -99,32 +99,32 @@ void FolderListView::showPopupMenu( FolderListItem *i, const TQPoint &globalPos
int id;
m.insertTitle( folder.name, 9999 );
- id = m.insertItem( i18n("&Enabled"), this, TQT_SLOT(slotPopupHandler(int)), 0, FolderName );
+ id = m.insertItem( i18n("&Enabled"), this, TQ_SLOT(slotPopupHandler(int)), 0, FolderName );
m.setItemChecked( id, i->isOn() );
m.insertSeparator();
if ( ( folder.type & KPIM::FolderLister::Event ) && (mTypes.contains( Event ) ) ) {
- id = m.insertItem( i18n("Default for New &Events"), this, TQT_SLOT(slotPopupHandler(int)), 0, Event );
+ id = m.insertItem( i18n("Default for New &Events"), this, TQ_SLOT(slotPopupHandler(int)), 0, Event );
m.setItemChecked( id, i->isDefault( Event ) );
}
if ( ( folder.type & KPIM::FolderLister::Todo ) && (mTypes.contains( Todo ) ) ) {
- id = m.insertItem( i18n("Default for New &Todos"), this, TQT_SLOT(slotPopupHandler(int)), 0, Todo );
+ id = m.insertItem( i18n("Default for New &Todos"), this, TQ_SLOT(slotPopupHandler(int)), 0, Todo );
m.setItemChecked( id, i->isDefault( Todo ) );
}
if ( ( folder.type & KPIM::FolderLister::Journal ) && (mTypes.contains( Journal ) ) ) {
- id = m.insertItem( i18n("Default for New &Journals"), this, TQT_SLOT(slotPopupHandler(int)), 0, Journal );
+ id = m.insertItem( i18n("Default for New &Journals"), this, TQ_SLOT(slotPopupHandler(int)), 0, Journal );
m.setItemChecked( id, i->isDefault( Journal ) );
}
if ( ( folder.type & KPIM::FolderLister::Contact ) && (mTypes.contains( Contact ) ) ) {
- id = m.insertItem( i18n("Default for New &Contacts"), this, TQT_SLOT(slotPopupHandler(int)), 0, Contact );
+ id = m.insertItem( i18n("Default for New &Contacts"), this, TQ_SLOT(slotPopupHandler(int)), 0, Contact );
m.setItemChecked( id, i->isDefault( Contact ) );
}
if ( ( folder.type == KPIM::FolderLister::All ) && (mTypes.contains( All ) ) ) {
- id = m.insertItem( i18n("Default for All New &Items"), this, TQT_SLOT(slotPopupHandler(int)), 0, All );
+ id = m.insertItem( i18n("Default for All New &Items"), this, TQ_SLOT(slotPopupHandler(int)), 0, All );
m.setItemChecked( id, i->isDefault( All ) );
}
if ( ( folder.type == KPIM::FolderLister::Unknown ) && (mTypes.contains( Unknown ) ) ) {
- id = m.insertItem( i18n("Default for &Unknown New Items"), this, TQT_SLOT(slotPopupHandler(int)), 0, Unknown );
+ id = m.insertItem( i18n("Default for &Unknown New Items"), this, TQ_SLOT(slotPopupHandler(int)), 0, Unknown );
m.setItemChecked( id, i->isDefault( Unknown ) );
}
@@ -147,10 +147,10 @@ void FolderListView::slotPopupHandler( int z )
void FolderListView::slotMousePressed(int btn, TQListViewItem* i, const TQPoint& pos, int c)
{
if ( dynamic_cast<FolderListItem*>(i) ) {
- if ( btn == Qt::RightButton ) {
+ if ( btn == TQt::RightButton ) {
showPopupMenu( (FolderListItem*)i, /*mapToGlobal(*/pos/*)*/ );
}
- else if ( btn == Qt::LeftButton && c > 0 ) {
+ else if ( btn == TQt::LeftButton && c > 0 ) {
// map pos to item/column and call FolderListItem::activate(col, pos)
((FolderListItem*)i)->activate( c, viewport()->mapFromGlobal( pos ) - TQPoint( 0, itemRect(i).top() ) );
// } else {
@@ -293,4 +293,3 @@ void FolderListItem::paintCell( TQPainter *p, const TQColorGroup &cg, int col, i
//END
#include "folderlistview.moc"
-// kate: space-indent on; indent-width 2; replace-tabs on;
diff --git a/tderesources/lib/folderlistview.h b/tderesources/lib/folderlistview.h
index ce6243df..a54ffd56 100644
--- a/tderesources/lib/folderlistview.h
+++ b/tderesources/lib/folderlistview.h
@@ -37,7 +37,7 @@ class FolderListCaption;
*/
class FolderListView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
friend class FolderListItem;
@@ -126,5 +126,3 @@ class FolderListItem : public TQCheckListItem
#endif
-
-// kate: space-indent on; indent-width 2; replace-tabs on;
diff --git a/tderesources/lib/folderselectdialog.cpp b/tderesources/lib/folderselectdialog.cpp
index ab599153..7ffd3e38 100644
--- a/tderesources/lib/folderselectdialog.cpp
+++ b/tderesources/lib/folderselectdialog.cpp
@@ -53,10 +53,10 @@ FolderSelectDialog::FolderSelectDialog( const TQString& caption, const TQString&
mListBox->ensureCurrentVisible();
layout->addWidget( mListBox, 10 );
- connect( mListBox, TQT_SIGNAL( doubleClicked( TQListBoxItem * ) ),
- TQT_SLOT( slotOk() ) );
- connect( mListBox, TQT_SIGNAL( returnPressed( TQListBoxItem * ) ),
- TQT_SLOT( slotOk() ) );
+ connect( mListBox, TQ_SIGNAL( doubleClicked( TQListBoxItem * ) ),
+ TQ_SLOT( slotOk() ) );
+ connect( mListBox, TQ_SIGNAL( returnPressed( TQListBoxItem * ) ),
+ TQ_SLOT( slotOk() ) );
mListBox->setFocus();
diff --git a/tderesources/lib/groupwaredataadaptor.h b/tderesources/lib/groupwaredataadaptor.h
index b7bd6e33..27807124 100644
--- a/tderesources/lib/groupwaredataadaptor.h
+++ b/tderesources/lib/groupwaredataadaptor.h
@@ -29,7 +29,7 @@
#include <tqstring.h>
#include <libkcal/listbase.h>
#include <tqobject.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace TDEIO {
@@ -90,7 +90,7 @@ class KDE_EXPORT GroupwareUploadItem
class KDE_EXPORT GroupwareDataAdaptor : public TQObject
{
-Q_OBJECT
+TQ_OBJECT
public:
GroupwareDataAdaptor();
diff --git a/tderesources/lib/groupwaredownloadjob.cpp b/tderesources/lib/groupwaredownloadjob.cpp
index 52a01fd4..1381b929 100644
--- a/tderesources/lib/groupwaredownloadjob.cpp
+++ b/tderesources/lib/groupwaredownloadjob.cpp
@@ -59,21 +59,21 @@ void GroupwareDownloadJob::run()
mItemsForDownload.clear();
mCurrentlyOnServer.clear();
- connect( adaptor(), TQT_SIGNAL( itemToDownload( const KURL &, KPIM::FolderLister::ContentType ) ),
- TQT_SLOT( slotItemToDownload( const KURL &, KPIM::FolderLister::ContentType ) ) );
- connect( adaptor(), TQT_SIGNAL( itemOnServer( const KURL & ) ),
- TQT_SLOT( slotItemOnServer( const KURL & ) ) );
- connect( adaptor(), TQT_SIGNAL( itemDownloaded( const TQString &, const KURL &, const TQString & ) ),
- TQT_SLOT( slotItemDownloaded( const TQString &, const KURL &, const TQString & ) ) );
- connect( adaptor(), TQT_SIGNAL( itemDownloadError( const KURL &, const TQString & ) ),
- TQT_SLOT( slotItemDownloadError( const KURL &, const TQString & ) ) );
+ connect( adaptor(), TQ_SIGNAL( itemToDownload( const KURL &, KPIM::FolderLister::ContentType ) ),
+ TQ_SLOT( slotItemToDownload( const KURL &, KPIM::FolderLister::ContentType ) ) );
+ connect( adaptor(), TQ_SIGNAL( itemOnServer( const KURL & ) ),
+ TQ_SLOT( slotItemOnServer( const KURL & ) ) );
+ connect( adaptor(), TQ_SIGNAL( itemDownloaded( const TQString &, const KURL &, const TQString & ) ),
+ TQ_SLOT( slotItemDownloaded( const TQString &, const KURL &, const TQString & ) ) );
+ connect( adaptor(), TQ_SIGNAL( itemDownloadError( const KURL &, const TQString & ) ),
+ TQ_SLOT( slotItemDownloadError( const KURL &, const TQString & ) ) );
mProgress = KPIM::ProgressManager::instance()->createProgressItem(
KPIM::ProgressManager::getUniqueID(),
adaptor()->downloadProgressMessage() );
connect( mProgress,
- TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
- TQT_SLOT( cancelLoad() ) );
+ TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
+ TQ_SLOT( cancelLoad() ) );
listItems();
}
@@ -105,10 +105,10 @@ void GroupwareDownloadJob::listItems()
mListItemsData = TQString();
mListEventsJob = adaptor()->createListItemsJob( url );
- connect( mListEventsJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotListItemsResult( TDEIO::Job * ) ) );
- connect( mListEventsJob, TQT_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
- TQT_SLOT( slotListItemsData( TDEIO::Job *, const TQByteArray & ) ) );
+ connect( mListEventsJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotListItemsResult( TDEIO::Job * ) ) );
+ connect( mListEventsJob, TQ_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
+ TQ_SLOT( slotListItemsData( TDEIO::Job *, const TQByteArray & ) ) );
}
}
@@ -187,10 +187,10 @@ void GroupwareDownloadJob::downloadItem()
mDownloadJob = adaptor()->createDownloadJob( href, ctype );
}
- connect( mDownloadJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotDownloadItemResult( TDEIO::Job * ) ) );
- connect( mDownloadJob, TQT_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
- TQT_SLOT( slotDownloadItemData( TDEIO::Job *, const TQByteArray & ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotDownloadItemResult( TDEIO::Job * ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
+ TQ_SLOT( slotDownloadItemData( TDEIO::Job *, const TQByteArray & ) ) );
}
}
diff --git a/tderesources/lib/groupwaredownloadjob.h b/tderesources/lib/groupwaredownloadjob.h
index 6cf3bf24..d754ecb5 100644
--- a/tderesources/lib/groupwaredownloadjob.h
+++ b/tderesources/lib/groupwaredownloadjob.h
@@ -41,7 +41,7 @@ class ProgressItem;
*/
class GroupwareDownloadJob : public GroupwareJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
GroupwareDownloadJob( GroupwareDataAdaptor *adaptor );
diff --git a/tderesources/lib/groupwareresourcejob.cpp b/tderesources/lib/groupwareresourcejob.cpp
index b7e4b57b..09972b85 100644
--- a/tderesources/lib/groupwareresourcejob.cpp
+++ b/tderesources/lib/groupwareresourcejob.cpp
@@ -30,7 +30,7 @@ using namespace KPIM;
GroupwareJob::GroupwareJob( GroupwareDataAdaptor *adaptor )
: mAdaptor( adaptor )
{
- TQTimer::singleShot( 0, this, TQT_SLOT( run() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( run() ) );
}
bool GroupwareJob::error() const
diff --git a/tderesources/lib/groupwareresourcejob.h b/tderesources/lib/groupwareresourcejob.h
index d32caaae..1b7697e3 100644
--- a/tderesources/lib/groupwareresourcejob.h
+++ b/tderesources/lib/groupwareresourcejob.h
@@ -37,7 +37,7 @@ class GroupwareDataAdaptor;
*/
class GroupwareJob : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
GroupwareJob( GroupwareDataAdaptor *adaptor );
diff --git a/tderesources/lib/groupwareuploadjob.cpp b/tderesources/lib/groupwareuploadjob.cpp
index 51307d83..4c0f1ba2 100644
--- a/tderesources/lib/groupwareuploadjob.cpp
+++ b/tderesources/lib/groupwareuploadjob.cpp
@@ -52,22 +52,22 @@ void GroupwareUploadJob::run()
KPIM::ProgressManager::getUniqueID(),
adaptor()->uploadProgressMessage() );
connect( mUploadProgress,
- TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
- TQT_SLOT( cancelSave() ) );
+ TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
+ TQ_SLOT( cancelSave() ) );
- connect( adaptor(), TQT_SIGNAL( itemDeletionError( const KURL &, const TQString & ) ),
- TQT_SLOT( slotItemDeleteError( const KURL &, const TQString & ) ) );
- connect( adaptor(), TQT_SIGNAL( itemUploadError( const KURL &, const TQString & ) ),
- TQT_SLOT( slotItemUploadError( const KURL &, const TQString & ) ) );
- connect( adaptor(), TQT_SIGNAL( itemUploadNewError( const TQString &, const TQString & ) ),
- TQT_SLOT( slotItemUploadNewError( const TQString &, const TQString & ) ) );
+ connect( adaptor(), TQ_SIGNAL( itemDeletionError( const KURL &, const TQString & ) ),
+ TQ_SLOT( slotItemDeleteError( const KURL &, const TQString & ) ) );
+ connect( adaptor(), TQ_SIGNAL( itemUploadError( const KURL &, const TQString & ) ),
+ TQ_SLOT( slotItemUploadError( const KURL &, const TQString & ) ) );
+ connect( adaptor(), TQ_SIGNAL( itemUploadNewError( const TQString &, const TQString & ) ),
+ TQ_SLOT( slotItemUploadNewError( const TQString &, const TQString & ) ) );
- connect( adaptor(), TQT_SIGNAL( itemDeleted( const TQString &, const KURL & ) ),
- TQT_SLOT( slotItemDeleted( const TQString &, const KURL & ) ) );
- connect( adaptor(), TQT_SIGNAL( itemUploaded( const TQString &, const KURL & ) ),
- TQT_SLOT( slotItemUploaded( const TQString &, const KURL & ) ) );
- connect( adaptor(), TQT_SIGNAL( itemUploadedNew( const TQString &, const KURL& ) ),
- TQT_SLOT( slotItemUploadedNew( const TQString &, const KURL & ) ) );
+ connect( adaptor(), TQ_SIGNAL( itemDeleted( const TQString &, const KURL & ) ),
+ TQ_SLOT( slotItemDeleted( const TQString &, const KURL & ) ) );
+ connect( adaptor(), TQ_SIGNAL( itemUploaded( const TQString &, const KURL & ) ),
+ TQ_SLOT( slotItemUploaded( const TQString &, const KURL & ) ) );
+ connect( adaptor(), TQ_SIGNAL( itemUploadedNew( const TQString &, const KURL& ) ),
+ TQ_SLOT( slotItemUploadedNew( const TQString &, const KURL & ) ) );
mUploadProgress->setTotalItems( mAddedItems.size() + mChangedItems.size() +
@@ -81,7 +81,7 @@ void GroupwareUploadJob::deleteItem()
{
kdDebug(5800)<<"GroupwareUploadJob::deleteItem()"<<endl;
if ( mDeletedItems.isEmpty() ) {
- TQTimer::singleShot( 0, this, TQT_SLOT( uploadItem() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( uploadItem() ) );
} else {
kdDebug(7000) << " Deleting " << mDeletedItems.size() << " items from the server " << endl;
@@ -102,10 +102,10 @@ kdDebug() << "Not using batch delete " << endl;
if ( mDeletionJob ) {
mDeletionJobData = TQString();
- connect( mDeletionJob, TQT_SIGNAL( result( TDEIO::Job* ) ),
- TQT_SLOT( slotDeletionJobResult( TDEIO::Job* ) ) );
-// connect( mDeletionJob, TQT_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
-// TQT_SLOT( slotDeletionJobData( TDEIO::Job *, const TQByteArray & ) ) );
+ connect( mDeletionJob, TQ_SIGNAL( result( TDEIO::Job* ) ),
+ TQ_SLOT( slotDeletionJobResult( TDEIO::Job* ) ) );
+// connect( mDeletionJob, TQ_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
+// TQ_SLOT( slotDeletionJobData( TDEIO::Job *, const TQByteArray & ) ) );
} else {
deleteItem();
}
@@ -129,7 +129,7 @@ void GroupwareUploadJob::slotDeletionJobResult( TDEIO::Job *job )
adaptor()->interpretRemoveJob( job, mDeletionJobData );
}
mDeletionJob = 0;
- TQTimer::singleShot( 0, this, TQT_SLOT( deleteItem() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( deleteItem() ) );
}
@@ -138,7 +138,7 @@ void GroupwareUploadJob::uploadItem()
{
kdDebug(5800)<<"GroupwareUploadJob::uploadItem()"<<endl;
if ( mChangedItems.isEmpty() ) {
- TQTimer::singleShot( 0, this, TQT_SLOT( uploadNewItem() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( uploadNewItem() ) );
} else {
kdDebug(5800)<<"We still have "<<mChangedItems.count()<<" changed items to upload"<<endl;
@@ -159,10 +159,10 @@ kdDebug() << "Not using batch upload " << endl;
if ( mUploadJob ) {
mUploadJobData = TQString();
- connect( mUploadJob, TQT_SIGNAL( result( TDEIO::Job* ) ),
- TQT_SLOT( slotUploadJobResult( TDEIO::Job* ) ) );
- connect( mUploadJob, TQT_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
- TQT_SLOT( slotUploadJobData( TDEIO::Job *, const TQByteArray & ) ) );
+ connect( mUploadJob, TQ_SIGNAL( result( TDEIO::Job* ) ),
+ TQ_SLOT( slotUploadJobResult( TDEIO::Job* ) ) );
+ connect( mUploadJob, TQ_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
+ TQ_SLOT( slotUploadJobData( TDEIO::Job *, const TQByteArray & ) ) );
} else {
uploadItem();
}
@@ -185,7 +185,7 @@ void GroupwareUploadJob::slotUploadJobResult( TDEIO::Job *job )
adaptor()->interpretUploadJob( job, mUploadJobData );
}
mUploadJob = 0;
- TQTimer::singleShot( 0, this, TQT_SLOT( uploadItem() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( uploadItem() ) );
}
@@ -217,10 +217,10 @@ kdDebug() << "Not using batch create to " << url.url() << " for item of type " <
if ( mUploadJob ) {
mUploadNewJobData = TQString();
- connect( mUploadJob, TQT_SIGNAL( result( TDEIO::Job* ) ),
- TQT_SLOT( slotUploadNewJobResult( TDEIO::Job* ) ) );
- connect( mUploadJob, TQT_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
- TQT_SLOT( slotUploadNewJobData( TDEIO::Job *, const TQByteArray & ) ) );
+ connect( mUploadJob, TQ_SIGNAL( result( TDEIO::Job* ) ),
+ TQ_SLOT( slotUploadNewJobResult( TDEIO::Job* ) ) );
+ connect( mUploadJob, TQ_SIGNAL( data( TDEIO::Job *, const TQByteArray & ) ),
+ TQ_SLOT( slotUploadNewJobData( TDEIO::Job *, const TQByteArray & ) ) );
} else {
uploadNewItem();
}
@@ -246,7 +246,7 @@ void GroupwareUploadJob::slotUploadNewJobResult( TDEIO::Job *job )
adaptor()->interpretUploadNewJob( job, mUploadNewJobData );
}
mUploadJob = 0;
- TQTimer::singleShot( 0, this, TQT_SLOT( uploadNewItem() ) );
+ TQTimer::singleShot( 0, this, TQ_SLOT( uploadNewItem() ) );
}
diff --git a/tderesources/lib/groupwareuploadjob.h b/tderesources/lib/groupwareuploadjob.h
index 13ba3ed5..9845457b 100644
--- a/tderesources/lib/groupwareuploadjob.h
+++ b/tderesources/lib/groupwareuploadjob.h
@@ -46,7 +46,7 @@ class ProgressItem;
*/
class GroupwareUploadJob : public GroupwareJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
GroupwareUploadJob( GroupwareDataAdaptor *adaptor );
diff --git a/tderesources/lib/kcal_cachesettingsdlg.h b/tderesources/lib/kcal_cachesettingsdlg.h
index 51263e26..f9462e5d 100644
--- a/tderesources/lib/kcal_cachesettingsdlg.h
+++ b/tderesources/lib/kcal_cachesettingsdlg.h
@@ -23,7 +23,7 @@
#define KCAL_CACHESETTINGSDLG_H
#include <kdialogbase.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KRES {
@@ -41,7 +41,7 @@ class ResourceCachedSaveConfig;
*/
class KDE_EXPORT CacheSettingsDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
CacheSettingsDialog( TQWidget *parent = 0, const char *name = 0 );
diff --git a/tderesources/lib/kcal_resourcegroupwarebase.cpp b/tderesources/lib/kcal_resourcegroupwarebase.cpp
index 8474ed21..1710a11e 100644
--- a/tderesources/lib/kcal_resourcegroupwarebase.cpp
+++ b/tderesources/lib/kcal_resourcegroupwarebase.cpp
@@ -195,8 +195,8 @@ bool ResourceGroupwareBase::doOpen()
return false;
} else {
mLoginFinished = false;
- connect( loginJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotLoginJobResult( TDEIO::Job* ) ) );
+ connect( loginJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotLoginJobResult( TDEIO::Job* ) ) );
enter_loop();
return mLoginFinished;
}
@@ -217,7 +217,7 @@ void tqt_leave_modal( TQWidget *widget );
void ResourceGroupwareBase::enter_loop()
{
TQWidget dummy(0,0,WType_Dialog | WShowModal);
- dummy.setFocusPolicy( TQ_NoFocus );
+ dummy.setFocusPolicy( TQWidget::NoFocus );
tqt_enter_modal(&dummy);
tqApp->enter_loop();
tqt_leave_modal(&dummy);
@@ -239,8 +239,8 @@ void ResourceGroupwareBase::doClose()
if ( adaptor() &&
adaptor()->flags() & KPIM::GroupwareDataAdaptor::GWResNeedsLogoff ) {
TDEIO::Job *logoffJob = adaptor()->createLogoffJob( prefs()->url(), prefs()->user(), prefs()->password() );
- connect( logoffJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotLogoffJobResult( TDEIO::Job* ) ) );
+ connect( logoffJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotLogoffJobResult( TDEIO::Job* ) ) );
// TODO: Do we really need to block while waiting for the job to return?
enter_loop();
}
@@ -276,8 +276,8 @@ bool ResourceGroupwareBase::doLoad()
emit resourceChanged( this );
mDownloadJob = createDownloadJob( adaptor() );
- connect( mDownloadJob, TQT_SIGNAL( result( KPIM::GroupwareJob * ) ),
- TQT_SLOT( slotDownloadJobResult( KPIM::GroupwareJob * ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( result( KPIM::GroupwareJob * ) ),
+ TQ_SLOT( slotDownloadJobResult( KPIM::GroupwareJob * ) ) );
return true;
}
@@ -322,8 +322,8 @@ bool ResourceGroupwareBase::doSave()
if ( !confirmSave() ) return false;
mUploadJob = createUploadJob( adaptor() );
- connect( mUploadJob, TQT_SIGNAL( result( KPIM::GroupwareJob * ) ),
- TQT_SLOT( slotUploadJobResult( KPIM::GroupwareJob * ) ) );
+ connect( mUploadJob, TQ_SIGNAL( result( KPIM::GroupwareJob * ) ),
+ TQ_SLOT( slotUploadJobResult( KPIM::GroupwareJob * ) ) );
Incidence::List inc;
Incidence::List::Iterator it;
@@ -376,8 +376,8 @@ void ResourceGroupwareBase::slotUploadJobResult( KPIM::GroupwareJob *job )
if ( !mDownloadJob ) {
mDownloadJob = createDownloadJob( adaptor() );
- connect( mDownloadJob, TQT_SIGNAL( result( KPIM::GroupwareJob * ) ),
- TQT_SLOT( slotDownloadJobResult( KPIM::GroupwareJob * ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( result( KPIM::GroupwareJob * ) ),
+ TQ_SLOT( slotDownloadJobResult( KPIM::GroupwareJob * ) ) );
} else {
kdWarning() << k_funcinfo << "Download still in progress. "
"Can't happen. (TM)" << endl;
diff --git a/tderesources/lib/kcal_resourcegroupwarebase.h b/tderesources/lib/kcal_resourcegroupwarebase.h
index 80a1d460..ae4ca579 100644
--- a/tderesources/lib/kcal_resourcegroupwarebase.h
+++ b/tderesources/lib/kcal_resourcegroupwarebase.h
@@ -25,7 +25,7 @@
#include <kurl.h>
#include <libkcal/resourcecached.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tdeabc/locknull.h>
namespace TDEIO {
@@ -51,7 +51,7 @@ class CalendarAdaptor;
*/
class KDE_EXPORT ResourceGroupwareBase : public ResourceCached
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceGroupwareBase();
diff --git a/tderesources/lib/kcal_resourcegroupwarebaseconfig.cpp b/tderesources/lib/kcal_resourcegroupwarebaseconfig.cpp
index 1ca2570a..4f576ed7 100644
--- a/tderesources/lib/kcal_resourcegroupwarebaseconfig.cpp
+++ b/tderesources/lib/kcal_resourcegroupwarebaseconfig.cpp
@@ -68,15 +68,15 @@ ResourceGroupwareBaseConfig::ResourceGroupwareBaseConfig( TQWidget* parent,
mPasswordEdit->setEchoMode( KLineEdit::Password );
mFolderConfig = new KPIM::FolderConfig( this );
- connect( mFolderConfig, TQT_SIGNAL( updateFoldersClicked() ),
- TQT_SLOT( updateFolders() ) );
+ connect( mFolderConfig, TQ_SIGNAL( updateFoldersClicked() ),
+ TQ_SLOT( updateFolders() ) );
mainLayout->addMultiCellWidget( mFolderConfig, 4, 4, 0, 1 );
TQHBox *hBox = new TQHBox( this );
mCacheSettingsButton = new KPushButton( i18n("Configure Cache Settings..."), hBox );
mainLayout->addMultiCellWidget( hBox, 5, 5, 0, 1 );
- connect( mCacheSettingsButton, TQT_SIGNAL( clicked() ),
- TQT_SLOT( showCacheSettings() ) );
+ connect( mCacheSettingsButton, TQ_SIGNAL( clicked() ),
+ TQ_SLOT( showCacheSettings() ) );
mCacheDialog = new CacheSettingsDialog( this );
}
diff --git a/tderesources/lib/kcal_resourcegroupwarebaseconfig.h b/tderesources/lib/kcal_resourcegroupwarebaseconfig.h
index 7639b562..db3ddd98 100644
--- a/tderesources/lib/kcal_resourcegroupwarebaseconfig.h
+++ b/tderesources/lib/kcal_resourcegroupwarebaseconfig.h
@@ -23,7 +23,7 @@
#define KCAL_RESOURCEGROUPWAREBASECONFIG_H
#include <tderesources/configwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KPushButton;
class KLineEdit;
@@ -46,7 +46,7 @@ class CacheSettingsDialog;
*/
class KDE_EXPORT ResourceGroupwareBaseConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceGroupwareBaseConfig( TQWidget *parent = 0, const char *name = 0 );
diff --git a/tderesources/lib/tdeabc_resourcegroupwarebase.cpp b/tderesources/lib/tdeabc_resourcegroupwarebase.cpp
index f4a46990..cf73e03a 100644
--- a/tderesources/lib/tdeabc_resourcegroupwarebase.cpp
+++ b/tderesources/lib/tdeabc_resourcegroupwarebase.cpp
@@ -177,8 +177,8 @@ bool ResourceGroupwareBase::asyncLoad()
loadCache();
mDownloadJob = createDownloadJob( mAdaptor );
- connect( mDownloadJob, TQT_SIGNAL( result( KPIM::GroupwareJob * ) ),
- TQT_SLOT( slotDownloadJobResult( KPIM::GroupwareJob * ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( result( KPIM::GroupwareJob * ) ),
+ TQ_SLOT( slotDownloadJobResult( KPIM::GroupwareJob * ) ) );
return true;
}
@@ -212,8 +212,8 @@ bool ResourceGroupwareBase::asyncSave( Ticket* )
}
mUploadJob = createUploadJob( mAdaptor );
- connect( mUploadJob, TQT_SIGNAL( result( KPIM::GroupwareJob * ) ),
- TQT_SLOT( slotUploadJobResult( KPIM::GroupwareJob * ) ) );
+ connect( mUploadJob, TQ_SIGNAL( result( KPIM::GroupwareJob * ) ),
+ TQ_SLOT( slotUploadJobResult( KPIM::GroupwareJob * ) ) );
TDEABC::Addressee::List addr;
TDEABC::Addressee::List::Iterator it;
diff --git a/tderesources/lib/tdeabc_resourcegroupwarebase.h b/tderesources/lib/tdeabc_resourcegroupwarebase.h
index 7835d3d2..bea6ca91 100644
--- a/tderesources/lib/tdeabc_resourcegroupwarebase.h
+++ b/tderesources/lib/tdeabc_resourcegroupwarebase.h
@@ -24,7 +24,7 @@
#include <kurl.h>
#include <tdeabcresourcecached.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TDEConfig;
@@ -42,7 +42,7 @@ class AddressBookAdaptor;
class KDE_EXPORT ResourceGroupwareBase : public ResourceCached
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/lib/tdeabc_resourcegroupwarebaseconfig.cpp b/tderesources/lib/tdeabc_resourcegroupwarebaseconfig.cpp
index 69dfb3d8..a80ce9e0 100644
--- a/tderesources/lib/tdeabc_resourcegroupwarebaseconfig.cpp
+++ b/tderesources/lib/tdeabc_resourcegroupwarebaseconfig.cpp
@@ -67,8 +67,8 @@ ResourceGroupwareBaseConfig::ResourceGroupwareBaseConfig( TQWidget* parent, con
mainLayout->addMultiCellWidget( hline, 3, 3, 0, 1 );
mFolderConfig = new KPIM::FolderConfig( this );
- connect( mFolderConfig, TQT_SIGNAL( updateFoldersClicked() ),
- TQT_SLOT( updateFolders() ) );
+ connect( mFolderConfig, TQ_SIGNAL( updateFoldersClicked() ),
+ TQ_SLOT( updateFolders() ) );
mainLayout->addMultiCellWidget( mFolderConfig, 4, 4, 0, 1 );
}
diff --git a/tderesources/lib/tdeabc_resourcegroupwarebaseconfig.h b/tderesources/lib/tdeabc_resourcegroupwarebaseconfig.h
index 7b832623..c1ccb689 100644
--- a/tderesources/lib/tdeabc_resourcegroupwarebaseconfig.h
+++ b/tderesources/lib/tdeabc_resourcegroupwarebaseconfig.h
@@ -23,7 +23,7 @@
#define TDEABC_RESOURCEGROUPWAREBASECONFIG_H
#include <tderesources/configwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KLineEdit;
class KURLRequester;
@@ -38,7 +38,7 @@ class ResourceGroupwareBase;
class KDE_EXPORT ResourceGroupwareBaseConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/lib/webdavhandler.cpp b/tderesources/lib/webdavhandler.cpp
index af5eb276..d3255c36 100644
--- a/tderesources/lib/webdavhandler.cpp
+++ b/tderesources/lib/webdavhandler.cpp
@@ -120,7 +120,7 @@ bool WebdavHandler::extractDateTime( const TQDomElement &node, const TQString &e
{
TQDomElement element = node.namedItem( entry ).toElement();
if ( !element.isNull() && !element.text().isEmpty() ) {
- value = TQDateTime::fromString( element.text(), Qt::ISODate );
+ value = TQDateTime::fromString( element.text(), TQt::ISODate );
return true;
}
return false;
diff --git a/tderesources/lib/webdavhandler.h b/tderesources/lib/webdavhandler.h
index 0bfb33e9..a2de509d 100644
--- a/tderesources/lib/webdavhandler.h
+++ b/tderesources/lib/webdavhandler.h
@@ -27,7 +27,7 @@
#include <tqdom.h>
#include <tqdatetime.h>
#include <kurl.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KDE_EXPORT WebdavHandler
{
diff --git a/tderesources/newexchange/CMakeLists.txt b/tderesources/newexchange/CMakeLists.txt
index 4680a73a..975093b8 100644
--- a/tderesources/newexchange/CMakeLists.txt
+++ b/tderesources/newexchange/CMakeLists.txt
@@ -26,8 +26,17 @@ link_directories(
##### other data ################################
-install( FILES kcal_newexchange.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal )
-install( FILES tdeabc_newexchange.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc )
+tde_create_translated_desktop(
+ SOURCE kcal_newexchange.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal
+ PO_DIR tderesources-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE tdeabc_newexchange.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc
+ PO_DIR tderesources-desktops
+)
##### kcal_newexchange (module) #################
diff --git a/tderesources/newexchange/exchangecalendaradaptor.cpp b/tderesources/newexchange/exchangecalendaradaptor.cpp
index 5b51de5e..3b7aa36d 100644
--- a/tderesources/newexchange/exchangecalendaradaptor.cpp
+++ b/tderesources/newexchange/exchangecalendaradaptor.cpp
@@ -109,7 +109,7 @@ void ExchangeDelete::findUidSingleMaster( TQString const& uid )
TDEIO::DavJob* job = TDEIO::davSearch( mAccount->calendarURL(), "DAV:", "sql", query, false );
job->setWindow( mWindow );
- connect(job, TQT_SIGNAL(result( TDEIO::Job * )), this, TQT_SLOT(slotFindUidResult(TDEIO::Job *)));
+ connect(job, TQ_SIGNAL(result( TDEIO::Job * )), this, TQ_SLOT(slotFindUidResult(TDEIO::Job *)));
}
*/
diff --git a/tderesources/newexchange/exchangeconvertercalendar.cpp b/tderesources/newexchange/exchangeconvertercalendar.cpp
index 85baf974..58c31535 100644
--- a/tderesources/newexchange/exchangeconvertercalendar.cpp
+++ b/tderesources/newexchange/exchangeconvertercalendar.cpp
@@ -314,8 +314,8 @@ void ExchangeDownload::handleRecurrence( TQString uid )
query, false );
TDEIO::Scheduler::scheduleJob( job );
job->setWindow( mWindow );
- connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotMasterResult( TDEIO::Job * ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotMasterResult( TDEIO::Job * ) ) );
}
*/
@@ -410,7 +410,7 @@ kdDebug()<<"ExchangeConverterCalendar::readIncidence: ERROR: No UID given"<<endl
TQStringList::Iterator it = tmplst.begin();
KCal::DateList exdates;
for ( ; it != tmplst.end(); ++it ) {
- exdates.append( /*utcAsZone(*/ TQDateTime::fromString( *it, Qt::ISODate )/*,
+ exdates.append( /*utcAsZone(*/ TQDateTime::fromString( *it, TQt::ISODate )/*,
localTimeZoneId )*/.date() );
}
event->recurrence()->setExDates( exdates );
@@ -593,7 +593,7 @@ class ExchangeConverterCalendar::createWebDAVVisitor : public IncidenceBase::Vis
void addDateProp( TQDomElement &el ) { el.setAttribute( "b:dt", "dateTime.tz" ); }
void addFloatProp( TQDomElement &el ) { el.setAttribute( "b:dt", "float" ); }
void addIntProp( TQDomElement &el ) { el.setAttribute( "b:dt", "int" ); }
- TQString timePropString( const TQDateTime &dt ) { return dt.toString( Qt::ISODate )+"Z"; }
+ TQString timePropString( const TQDateTime &dt ) { return dt.toString( TQt::ISODate )+"Z"; }
bool visitIncidence( Incidence *incidence )
{
@@ -730,8 +730,8 @@ class ExchangeConverterCalendar::createWebDAVVisitor : public IncidenceBase::Vis
/* FIXME:
domCalendarProperty( "uid", todo->uid() );
- domCalendarProperty( "created", todo->created().toString( Qt::ISODate ) );
- domCalendarProperty( "lastmodified", todo->lastModified().toString( Qt::ISODate ) );*/
+ domCalendarProperty( "created", todo->created().toString( TQt::ISODate ) );
+ domCalendarProperty( "lastmodified", todo->lastModified().toString( TQt::ISODate ) );*/
// TODO
/*propertyTask1( TaskProp_Owner );
propertyTask2( TaskProp_ContactNames );
@@ -758,8 +758,8 @@ class ExchangeConverterCalendar::createWebDAVVisitor : public IncidenceBase::Vis
"outlookmessageclass", "IPM.Journal" );
/* FIXME:
domCalendarProperty( "uid", todo->uid() );
- domCalendarProperty( "created", todo->created().toString( Qt::ISODate ) );
- domCalendarProperty( "lastmodified", todo->lastModified().toString( Qt::ISODate ) );*/
+ domCalendarProperty( "created", todo->created().toString( TQt::ISODate ) );
+ domCalendarProperty( "lastmodified", todo->lastModified().toString( TQt::ISODate ) );*/
// TODO
return true;
}
diff --git a/tderesources/newexchange/exchangeconvertercontact.cpp b/tderesources/newexchange/exchangeconvertercontact.cpp
index 5551516e..c6f3599f 100644
--- a/tderesources/newexchange/exchangeconvertercontact.cpp
+++ b/tderesources/newexchange/exchangeconvertercontact.cpp
@@ -21,6 +21,7 @@
#include "exchangeconvertercontact.h"
#include <libkcal/freebusyurlstore.h>
#include <webdavhandler.h>
+#include <tdeversion.h>
#include <kdebug.h>
diff --git a/tderesources/newexchange/kcal_newexchange.desktop b/tderesources/newexchange/kcal_newexchange.desktop
index a08b7eaa..e32808da 100644
--- a/tderesources/newexchange/kcal_newexchange.desktop
+++ b/tderesources/newexchange/kcal_newexchange.desktop
@@ -1,49 +1,6 @@
[Desktop Entry]
Name=Calendar on an Exchange Server (experimental)
-Name[af]=Kalender op 'n Exchange bediener (eksperimenteel)
-Name[bg]=Календар на сървър Exchange (експериментално)
-Name[ca]=Calendari a un servidor Exchange (experimental)
-Name[cs]=Kalendář na serveru Exchange (experimentální)
-Name[da]=Kalender på en Exchange-server (eksperimentel)
-Name[de]=Kalender auf einem Exchange-Server (experimentell)
-Name[el]=Ημερολόγιο σε εξυπηρετητή Exchange (πειραματικό)
-Name[es]=Calendario en un servidor Exchange (experimental)
-Name[et]=Kalender Exchange-serveris (eksperimentaalne)
-Name[eu]=Egutegia Exchange zerbitzari batean (esperimentala)
-Name[fa]=تقویم روی یک کارساز مبادله )تجربی(
-Name[fi]=Kalenteri Exchange-palvelimella (kokeellinen)
-Name[fr]=Agenda sur un serveur Exchange (expérimental)
-Name[fy]=Aginda op in Exchange-tsjinner (eksperimenteel)
-Name[ga]=Féilire ar Fhreastalaí Exchange (trialach)
-Name[gl]=Calendario nun servidor Exchange (experimental)
-Name[hu]=Exchange 2000-kiszolgáló naptára (kísérleti)
-Name[is]=Dagatal á Exchange þjóni (á tilraunarstigi)
-Name[it]=Calendario su un server Exchange (sperimentale)
-Name[ja]=Exchange サーバのカレンダー (実験版)
-Name[kk]=Exchange серверіндегі күнтізбе (сынақтағы)
-Name[km]=ប្រតិទិន​លើ​ម៉ាស៊ីន​បម្រើ Exchange (សម្រាប់​អ្នក​មាន​បទពិសោធន៍)
-Name[lt]=Kalendorius Exchange serveryje (eksperimentine tvarka)
-Name[mk]=Календар на Exchange-сервер (експериментално)
-Name[ms]=Kalendar pada pelayan Exchange (ujikaji)
-Name[nb]=Kalender på en Exchange-tjener (forsøksvis)
-Name[nds]=Kalenner op en Exchange-Server (warrt utprobeert)
-Name[ne]=एक्सचेन्ज सर्भरमा क्यालेन्डर (प्रयोगात्मक)
-Name[nl]=Agenda op een Exchange-server (experimenteel)
-Name[nn]=Kalender på ein Exchange-tenar (eksperimentelt)
-Name[pl]=Kalendarz na serwerze Exchange (eksperymentalne)
-Name[pt]=Calendário em servidor Exchange (experimental)
-Name[pt_BR]=Calendário em um Servidor Exchange (experimental)
-Name[ru]=Календарь на сервере Exchange (экспериментально)
-Name[sk]=Kalendár na Exchange serveri (experimentálne)
-Name[sl]=Koledar na strežniku Exchange (poskusno)
-Name[sr]=Календар на Exchange серверу (експериментално)
-Name[sr@Latn]=Kalendar na Exchange serveru (eksperimentalno)
-Name[sv]=Kalender på en Exchange-server (experimentell)
-Name[ta]=பரிமாற்ற சேவகனில் நாட்காட்டி (சோதனைக்குரியது)
-Name[tr]=Bir Exchange Sunucusu üzerinde Takvim (deneyimsel)
-Name[uk]=Календар на сервері Exchange (експериментальне)
-Name[zh_CN]=Exchange 服务器上的日历(试验性)
-Name[zh_TW]=Exchanger 伺服器上的行事曆(實驗中)
+
X-TDE-Library=kcal_newexchange
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/newexchange/kcal_newexchange_final.desktop b/tderesources/newexchange/kcal_newexchange_final.desktop
index 01904c54..b4e32439 100644
--- a/tderesources/newexchange/kcal_newexchange_final.desktop
+++ b/tderesources/newexchange/kcal_newexchange_final.desktop
@@ -1,48 +1,4 @@
[Desktop Entry]
Hidden=true
+
Name=Calendar on an Exchange Server
-Name[af]=Kalender op 'n Exchange bediener
-Name[bg]=Календар на сървър Exchange
-Name[br]=Deiziadur en ur servijer Exchange
-Name[ca]=Calendari a un servidor Exchange
-Name[cs]=Kalendář na serveru Exchange
-Name[da]=Kalender på en Exchange-server
-Name[de]=Kalender auf einem Exchange-Server
-Name[el]=Ημερολόγιο σε εξυπηρετητή Exchange
-Name[es]=Calendario en un servidor Exchange
-Name[et]=Kalender Exchange-serveris
-Name[eu]=Egutegia Exchange zerbitzari batean
-Name[fa]=تقویم روی یک کارساز مبادله
-Name[fi]=Kalenteri Exchange-palvelimella
-Name[fr]=Agenda sur un serveur Exchange
-Name[fy]=Aginda op in Exchange-tsjinner
-Name[ga]=Féilire ar Fhreastalaí Exchange
-Name[gl]=Calendario nun servidor Exchange
-Name[hu]=Exchange 2000-kiszolgáló naptára
-Name[is]=Dagatal á Exchange þjóni
-Name[it]=Calendario su un server Exchange
-Name[ja]=Exchange サーバのカレンダー
-Name[kk]=Exchange серверіндегі күнтізбе
-Name[km]=ប្រតិទិន​លើ​ម៉ាស៊ីន​បម្រើ Exchange
-Name[lt]=Kalendorius Exchange serveryje
-Name[mk]=Календар на Exchange-сервер
-Name[ms]=Kalendar pada pelayan Exchange
-Name[nb]=Kalender på en Exchange-tjener
-Name[nds]=Kalenner op en Exchange-Server
-Name[ne]=एक्सचेन्ज सर्भरमा क्यालेन्डर
-Name[nl]=Agenda op een Exchange-server
-Name[nn]=Kalender på ein Exchange-tenar
-Name[pl]=Kalendarz na serwerze Exchange
-Name[pt]=Calendário em servidor Exchange
-Name[pt_BR]=Calendário em um Servidor Exchange
-Name[ru]=Календарь на сервере Exchange
-Name[sk]=Kalendár na Exchange serveri
-Name[sl]=Koledar na strežniku Exchange
-Name[sr]=Календар на Exchange серверу
-Name[sr@Latn]=Kalendar na Exchange serveru
-Name[sv]=Kalender på en Exchange-server
-Name[ta]=ஒரு பரிமாற்ற சேவகனில் நாட்காட்சி
-Name[tr]=Bir Exchange Sunucusu üzerinde Takvim
-Name[uk]=Календар на сервері Exchange
-Name[zh_CN]=Exchange 服务器上的日历
-Name[zh_TW]=Exchanger 伺服器上的行事曆
diff --git a/tderesources/newexchange/kcal_resourceexchange.h b/tderesources/newexchange/kcal_resourceexchange.h
index 823ed9a7..886319a4 100644
--- a/tderesources/newexchange/kcal_resourceexchange.h
+++ b/tderesources/newexchange/kcal_resourceexchange.h
@@ -31,7 +31,7 @@ namespace KCal {
*/
class KDE_EXPORT ResourceExchange : public ResourceGroupwareBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceExchange();
diff --git a/tderesources/newexchange/tdeabc_newexchange.desktop b/tderesources/newexchange/tdeabc_newexchange.desktop
index a21d3e90..847871fa 100644
--- a/tderesources/newexchange/tdeabc_newexchange.desktop
+++ b/tderesources/newexchange/tdeabc_newexchange.desktop
@@ -1,49 +1,6 @@
[Desktop Entry]
Name=Addressbook on an Exchange Server (experimental)
-Name[af]=Adresboek op 'n Exchange bediener (eksperimenteel)
-Name[bg]=Адресник на сървър Exchange (експериментално)
-Name[ca]=Llibreta d'adreces a un servidor Exchange (experimental)
-Name[cs]=Kniha adres na serveru Exchange (experimentální)
-Name[da]=Adressebog på en Exchange-server (eksperimentel)
-Name[de]=Adressbuch auf einem Exchange-Server (experimentell)
-Name[el]=Βιβλίο διευθύνσεων σε εξυπηρετητή Exchange (πειραματικό)
-Name[es]=Libreta de direcciones en un servidor Exchange (experimental)
-Name[et]=Aadressiraamat Exchange-serveris (eksperimentaalne)
-Name[eu]=Helbide-liburua Exchange zerbitzari batean (esperimentala)
-Name[fa]=کتاب نشانی روی یک کارساز مبادله )تجربی(
-Name[fi]=Osoitekirja Exchange-palvelimella (kokeellinen)
-Name[fr]=Carnet d'adresse sur un serveur Exchange (expérimental)
-Name[fy]=Adresboek op in Exchange-tsjinner (eksperimenteel)
-Name[ga]=Leabhar Seoltaí ar Fhreastalaí Exchange (trialach)
-Name[gl]=Caderno de enderezos no Servidor Exchange2000 (experimental)
-Name[hu]=Exchange-kiszolgáló címjegyzéke (kísérleti)
-Name[is]=Vistfangaskrá Exchange þjóni (á tilraunarstigi)
-Name[it]=Rubrica indirizzi su un server Exchange (sperimentale)
-Name[ja]=Exchange サーバのアドレス帳 (実験版)
-Name[kk]=Exchange серверіндегі адрестік кітапша (сынақтағы)
-Name[km]=សៀវភៅ​អាសយដ្ឋាន​លើ​ម៉ាស៊ីន​បម្រើ Exchange (សម្រាប់​អ្នក​មាន​បទពិសោធន៍)
-Name[lt]=Adresų knygelė Exchange serveryje (eksperimentine tvarka)
-Name[mk]=Адресар на Exchange-сервер (експериментално)
-Name[ms]=Buku Alamat pada pelayan Exchange (ujikaji)
-Name[nb]=Adressebok på en Exchange-tjener (forsøksvis)
-Name[nds]=Adressbook op en Exchange-Server (warrt utprobeert)
-Name[ne]=एक्सचेन्ज सर्भरमा ठेगाना पुस्तिका (प्रयोगात्मक)
-Name[nl]=Adresboek op een Exchange-server (experimenteel)
-Name[nn]=Adressebok på ein Exchange-tenar (eksperimentelt)
-Name[pl]=Książka adresowa na serwerze Exchange (eksperymentalne)
-Name[pt]=Livro de endereços em servidor Exchange (experimental)
-Name[pt_BR]=Livro de Endereços em um Servidor Exchange (experimenal)
-Name[ru]=Адресная книга на сервере Exchange (экспериментально)
-Name[sk]=Adresár na Exchange serveri (experimentálne)
-Name[sl]=Adresar na strežniku Exchange (poskusno)
-Name[sr]=Адресар на Exchange серверу (експериментално)
-Name[sr@Latn]=Adresar na Exchange serveru (eksperimentalno)
-Name[sv]=Adressbok på en Exchange-server (experimentell)
-Name[ta]=IMAP சேவையக வழியாக கேஅஞ்சலில் நாள்காட்டி(சோதனைக்குரியது)
-Name[tr]=Bir Exchange Sunucusu üzerinde Adres Defteri (deneyimsel)
-Name[uk]=Адресна книга на сервері Exchange (експериментальне)
-Name[zh_CN]=Exchange 服务器上的地址簿(试验性)
-Name[zh_TW]=Exchanger 伺服器的通訊錄(實驗中)
+
X-TDE-Library=tdeabc_newexchange
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/newexchange/tdeabc_newexchange_final.desktop b/tderesources/newexchange/tdeabc_newexchange_final.desktop
index 19cdda43..1febe0ef 100644
--- a/tderesources/newexchange/tdeabc_newexchange_final.desktop
+++ b/tderesources/newexchange/tdeabc_newexchange_final.desktop
@@ -1,48 +1,2 @@
[Desktop Entry]
Name=Addressbook on an Exchange Server
-Name[af]=Adresboek op 'n Exchange bediener
-Name[bg]=Адресник на сървър Exchange
-Name[br]=Karned chomlec'hioù war ur servijer Exchange
-Name[ca]=Llibreta d'adreces a un servidor Exchange
-Name[cs]=Kniha adres na serveru Exchange
-Name[da]=Adressebog på en Exchange-server
-Name[de]=Adressbuch auf einem Exchange-Server
-Name[el]=Βιβλίο διευθύνσεων σε εξυπηρετητή Exchange
-Name[es]=Libreta de direcciones en un servidor Exchange
-Name[et]=Aadressiraamat Exchange-serveris
-Name[eu]=Helbide-liburua Exchange zerbitzari (esperimentala)
-Name[fa]=کتاب نشانی روی یک کارساز مبادله
-Name[fi]=Osoitekirja Exchange-palvelimella
-Name[fr]=Carnet d'adresse sur un serveur Exchange
-Name[fy]=Adresboek op in Exchange-tsjinner
-Name[ga]=Leabhar Seoltaí ar Fhreastalaí Exchange
-Name[gl]=Caderno de enderezos nun Servidor Exchange
-Name[he]=פנקס כתובות בשרת Exchange
-Name[hu]=Exchange-kiszolgáló címjegyzéke
-Name[is]=Vistfangaskrá á Exchange þjóni
-Name[it]=Rubrica indirizzi su un server Exchange
-Name[ja]=Exchange サーバのアドレス帳
-Name[kk]=Exchange серверіндегі адрестік кітапша
-Name[km]=សៀវភៅ​អាសយដ្ឋាន​លើ​ម៉ាស៊ីន​បម្រើ Exchange
-Name[lt]=Adresų knygelė Exchange serveryje
-Name[mk]=Адресар на Exchange-сервер
-Name[ms]=Buku alamat pada pelayan Exchange
-Name[nb]=Adressebok på en Exchange-tjener
-Name[nds]=Adressbook op en Exchange-Server
-Name[ne]=एक्सचेन्ज सर्भरमा ठेगाना पुस्तिका
-Name[nl]=Adresboek op een Exchange-server
-Name[nn]=Adressebok på ein Exchange-tenar
-Name[pl]=Książka adresowa na serwerze Exchange
-Name[pt]=Livro de endereços em servidor Exchange
-Name[pt_BR]=Livro de Endereços em um Servidor Exchange
-Name[ru]=Адресная книга на сервере Exchange
-Name[sk]=Adresár na Exchange serveri
-Name[sl]=Adresar na strežniko Exchange
-Name[sr]=Адресар на Exchange серверу
-Name[sr@Latn]=Adresar na Exchange serveru
-Name[sv]=Adressbok på en Exchange-server
-Name[ta]=ஒருமாற்று சேவகனில் முகவரிப்புத்தகம்
-Name[tr]=Bir Exchange Sunucusu üzerinde Adres Defteri
-Name[uk]=Адресна книга на сервері Exchange
-Name[zh_CN]=Exchange 服务器上的地址簿
-Name[zh_TW]=Exchanger 伺服器上的通訊錄
diff --git a/tderesources/newexchange/tdeabc_resourceexchange.h b/tderesources/newexchange/tdeabc_resourceexchange.h
index a5ae0e5e..121cdf11 100644
--- a/tderesources/newexchange/tdeabc_resourceexchange.h
+++ b/tderesources/newexchange/tdeabc_resourceexchange.h
@@ -27,7 +27,7 @@ namespace TDEABC {
class KDE_EXPORT ResourceExchange : public ResourceGroupwareBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/remote/CMakeLists.txt b/tderesources/remote/CMakeLists.txt
index 33b10fc3..f6b44c53 100644
--- a/tderesources/remote/CMakeLists.txt
+++ b/tderesources/remote/CMakeLists.txt
@@ -31,9 +31,11 @@ install( FILES
##### other data ################################
-install( FILES
- remote.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal )
+tde_create_translated_desktop(
+ SOURCE remote.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal
+ PO_DIR tderesources-desktops
+)
##### kcal_remote (module) ######################
diff --git a/tderesources/remote/remote.desktop b/tderesources/remote/remote.desktop
index 4c9eb093..50a3fd0c 100644
--- a/tderesources/remote/remote.desktop
+++ b/tderesources/remote/remote.desktop
@@ -1,55 +1,6 @@
[Desktop Entry]
Name=Calendar in Remote File
-Name[af]=Kalender in 'n afgeleë lêer
-Name[bg]=Календар в отдалечен файл
-Name[br]=Deiziadur e restr a-bell
-Name[bs]=Kalendar u udaljenoj datoteci
-Name[ca]=Calendari a un fitxer remot
-Name[cs]=Kalendář ve vzdáleném souboru
-Name[cy]=Calendr mewn Ffeil Pell
-Name[da]=Kalender i ekstern fil
-Name[de]=Kalender in Datei auf Fremdrechner
-Name[el]=Ημερολόγιο σε απομακρυσμένο αρχείο
-Name[es]=Calendario en un archivo remoto
-Name[et]=Kalender võrgufailis
-Name[eu]=Egutegia urruneko fitxategi batean
-Name[fa]=تقویم در پروندۀ دور
-Name[fi]=Kalenteri etätiedostossa
-Name[fr]=Calendrier dans un fichier distant
-Name[fy]=Aginda yn ekstern triem
-Name[ga]=Féilire i gCianchomhad
-Name[gl]=Calendario en ficheiro remoto
-Name[hi]=रिमोट फ़ाइल में कैलेन्डर
-Name[hu]=Távoli fájlban tárolt naptár
-Name[is]=Dagatal í fjarlægri skrá
-Name[it]=Calendario in file remoto
-Name[ja]=リモートファイルのカレンダー
-Name[kk]=Қашықтағы файлдағы күнтізбе
-Name[km]=ប្រតិទិន​នៅ​ក្នុង​ឯកសារ​នៅ​ឆ្ងាយ
-Name[lt]=Kalendorius nutolusioje byloje
-Name[mk]=Календар во оддалечена датотека
-Name[ms]=Kalendar dalam Fail Jauh
-Name[nb]=Kalender i fil på nettverk
-Name[nds]=Kalenner as Datei op en anner Reekner
-Name[ne]=टाढाको फाइलको क्यालेन्डर
-Name[nl]=Agenda in extern bestand
-Name[nn]=Kalender i ekstern fil
-Name[pl]=Kalendarz w pliku zdalnym
-Name[pt]=Calendário num Ficheiro Remoto
-Name[pt_BR]=Calendário em Arquivo Remoto
-Name[ro]=Calendar în fişier distant
-Name[ru]=Календарь во внешнем файле
-Name[sk]=Kalendár vo vzdialenom súbore
-Name[sl]=Koledar v oddaljeni datoteki
-Name[sr]=Календар у удаљеном фајлу
-Name[sr@Latn]=Kalendar u udaljenom fajlu
-Name[sv]=Kalender i fjärrfil
-Name[ta]=தொலைதூர கோப்பில் உள்ள நாள்காட்டி
-Name[tg]=Тақвимот дар файли хурӯҷӣ
-Name[tr]=Uzak Dosyadaki Takvim
-Name[uk]=Календар у віддаленому файлі
-Name[zh_CN]=远程文件中的日历
-Name[zh_TW]=遠端檔案的行事曆
+
X-TDE-Library=kcal_remote
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/remote/resourceremote.cpp b/tderesources/remote/resourceremote.cpp
index 0a58aefb..9ee4aef5 100644
--- a/tderesources/remote/resourceremote.cpp
+++ b/tderesources/remote/resourceremote.cpp
@@ -197,11 +197,11 @@ bool ResourceRemote::doLoad()
mDownloadJob = TDEIO::file_copy( mDownloadUrl, KURL( cacheFile() ), -1, true,
false, !mUseProgressManager );
- connect( mDownloadJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotLoadJobResult( TDEIO::Job * ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotLoadJobResult( TDEIO::Job * ) ) );
if ( mUseProgressManager ) {
- connect( mDownloadJob, TQT_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
- TQT_SLOT( slotPercent( TDEIO::Job *, unsigned long ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
+ TQ_SLOT( slotPercent( TDEIO::Job *, unsigned long ) ) );
mProgress = KPIM::ProgressManager::createProgressItem(
KPIM::ProgressManager::getUniqueID(), i18n("Downloading Calendar") );
@@ -283,8 +283,8 @@ bool ResourceRemote::doSave()
saveCache();
mUploadJob = TDEIO::file_copy( KURL( cacheFile() ), mUploadUrl, -1, true );
- connect( mUploadJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotSaveJobResult( TDEIO::Job * ) ) );
+ connect( mUploadJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotSaveJobResult( TDEIO::Job * ) ) );
return true;
}
diff --git a/tderesources/remote/resourceremote.h b/tderesources/remote/resourceremote.h
index 84e213ae..6989169f 100644
--- a/tderesources/remote/resourceremote.h
+++ b/tderesources/remote/resourceremote.h
@@ -28,7 +28,7 @@
#include <kurl.h>
#include <tdeconfig.h>
#include <kdirwatch.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <libtdepim/progressmanager.h>
@@ -50,7 +50,7 @@ namespace KCal {
*/
class KDE_EXPORT ResourceRemote : public ResourceCached
{
- Q_OBJECT
+ TQ_OBJECT
friend class ResourceRemoteConfig;
diff --git a/tderesources/remote/resourceremoteconfig.h b/tderesources/remote/resourceremoteconfig.h
index a05171ee..45417795 100644
--- a/tderesources/remote/resourceremoteconfig.h
+++ b/tderesources/remote/resourceremoteconfig.h
@@ -30,7 +30,7 @@
#include <tderesources/resource.h>
#include <tderesources/configwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KCal {
@@ -44,7 +44,7 @@ class ResourceCachedSaveConfig;
*/
class KDE_EXPORT ResourceRemoteConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceRemoteConfig( TQWidget *parent = 0, const char *name = 0 );
diff --git a/tderesources/scalix/kcal/CMakeLists.txt b/tderesources/scalix/kcal/CMakeLists.txt
index 647ad26e..88501246 100644
--- a/tderesources/scalix/kcal/CMakeLists.txt
+++ b/tderesources/scalix/kcal/CMakeLists.txt
@@ -24,9 +24,11 @@ link_directories(
##### other data ################################
-install(
- FILES scalix.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal )
+tde_create_translated_desktop(
+ SOURCE scalix.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal
+ PO_DIR tderesources-desktops
+)
install(
FILES ../uninstall.desktop
diff --git a/tderesources/scalix/kcal/resourcescalix.cpp b/tderesources/scalix/kcal/resourcescalix.cpp
index ff9158d1..6b796e5d 100644
--- a/tderesources/scalix/kcal/resourcescalix.cpp
+++ b/tderesources/scalix/kcal/resourcescalix.cpp
@@ -66,8 +66,8 @@ ResourceScalix::ResourceScalix( const TDEConfig *config )
mCalendar( TQString::fromLatin1("UTC") ), mOpen( false )
{
setType( "scalix" );
- connect( &mResourceChangedTimer, TQT_SIGNAL( timeout() ),
- this, TQT_SLOT( slotEmitResourceChanged() ) );
+ connect( &mResourceChangedTimer, TQ_SIGNAL( timeout() ),
+ this, TQ_SLOT( slotEmitResourceChanged() ) );
}
ResourceScalix::~ResourceScalix()
@@ -310,7 +310,7 @@ void ResourceScalix::resolveConflict( KCal::Incidence* inc, const TQString& subr
KIncidenceChooser* ch = new KIncidenceChooser();
ch->setIncidence( local ,inc );
if ( KIncidenceChooser::chooseMode == KIncidenceChooser::ask ) {
- connect ( this, TQT_SIGNAL( useGlobalMode() ), ch, TQT_SLOT ( useGlobalMode() ) );
+ connect ( this, TQ_SIGNAL( useGlobalMode() ), ch, TQ_SLOT ( useGlobalMode() ) );
if ( ch->exec() )
if ( KIncidenceChooser::chooseMode != KIncidenceChooser::ask )
emit useGlobalMode() ;
diff --git a/tderesources/scalix/kcal/resourcescalix.h b/tderesources/scalix/kcal/resourcescalix.h
index b58eee85..5b283534 100644
--- a/tderesources/scalix/kcal/resourcescalix.h
+++ b/tderesources/scalix/kcal/resourcescalix.h
@@ -36,7 +36,7 @@
#include <tqtimer.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <libkcal/calendarlocal.h>
#include <libkcal/icalformat.h>
#include <libkcal/resourcecalendar.h>
@@ -50,7 +50,7 @@ class KDE_EXPORT ResourceScalix : public KCal::ResourceCalendar,
public KCal::IncidenceBase::Observer,
public Scalix::ResourceScalixBase
{
- Q_OBJECT
+ TQ_OBJECT
friend struct TemporarySilencer;
diff --git a/tderesources/scalix/kcal/scalix.desktop b/tderesources/scalix/kcal/scalix.desktop
index 8ba56ef0..5c9ea9e9 100644
--- a/tderesources/scalix/kcal/scalix.desktop
+++ b/tderesources/scalix/kcal/scalix.desktop
@@ -1,29 +1,6 @@
[Desktop Entry]
Name=Calendar on Scalix Server via KMail
-Name[bg]=Календар на сървъра Scalix през KMail
-Name[ca]=Calendari en un servidor Scalix mitjançant el KMail
-Name[da]=Kalender på Scalix-server via KMail
-Name[de]=Kalender auf einem Scalix-Server via KMail
-Name[el]=Ημερολόγιο σε εξυπηρετητή Scalix μέσω του KMail
-Name[es]=Calendario en servidor Scalix por medio de KMail
-Name[et]=Kalender Scalix-serveris (KMaili vahendusel)
-Name[fr]=Agenda sur serveur Scalix via KMail
-Name[is]=Dagatal á Scalix-þjóni gegnum KMail
-Name[it]=Calendario su server Scalix via KMail
-Name[ja]=KMail 経由 Scalix サーバのカレンダー
-Name[km]=ប្រតិទិន​នៅ​លើ​ម៉ាស៊ីន​បម្រើ Scalix តាម​រយៈ KMail
-Name[nds]=Kalenner op Scalix-Server över KMail
-Name[nl]=Agenda op Scalix-server via KMail
-Name[pl]=Kalendarz na serwerze Scalix za pośrednictwem KMaila
-Name[pt_BR]=Calendário em Servidor Scalix via KMail
-Name[ru]=Календарь на сервере Scalix через KMail
-Name[sk]=Kalendár na Scalix serveri pomocou KMail
-Name[sr]=Календар на Scalix серверу преко KMail-а
-Name[sr@Latn]=Kalendar na Scalix serveru preko KMail-a
-Name[sv]=Kalender på Scalix-server via Kmail
-Name[tr]=KMail Aracılığı ile Scalix Sunucusunda Takvim
-Name[zh_CN]=通过 KMail 访问 Scalix 服务器上的日历
-Name[zh_TW]=透過 KMail 取得 Scalix 伺服器上的行事曆
+
X-TDE-Library=kcal_scalix
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/scalix/knotes/CMakeLists.txt b/tderesources/scalix/knotes/CMakeLists.txt
index 2c088be7..b5fcdf4f 100644
--- a/tderesources/scalix/knotes/CMakeLists.txt
+++ b/tderesources/scalix/knotes/CMakeLists.txt
@@ -25,16 +25,17 @@ link_directories(
##### other data ################################
-# FIXME this is a conflict
-
-install(
- FILES scalix.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/knotes )
+tde_create_translated_desktop(
+ SOURCE scalix.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/knotes
+ PO_DIR tderesources-desktops
+)
install(
FILES ../uninstall.desktop
- RENAME scalix.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/knotes )
+ RENAME imap.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/knotes
+)
##### knotes_scalix (module) ####################
diff --git a/tderesources/scalix/knotes/resourcescalix.h b/tderesources/scalix/knotes/resourcescalix.h
index 6a3676c1..bcfa8cf5 100644
--- a/tderesources/scalix/knotes/resourcescalix.h
+++ b/tderesources/scalix/knotes/resourcescalix.h
@@ -38,7 +38,7 @@
#include <libkcal/calendarlocal.h>
#include "../shared/resourcescalixbase.h"
#include "../shared/subresource.h"
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace Scalix {
@@ -52,7 +52,7 @@ class KDE_EXPORT ResourceScalix : public ResourceNotes,
public KCal::IncidenceBase::Observer,
public ResourceScalixBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/scalix/knotes/scalix.desktop b/tderesources/scalix/knotes/scalix.desktop
index 4852f8d2..998db887 100644
--- a/tderesources/scalix/knotes/scalix.desktop
+++ b/tderesources/scalix/knotes/scalix.desktop
@@ -1,28 +1,6 @@
[Desktop Entry]
Name=Notes on Scalix Server via KMail
-Name[bg]=Бележки на сървъра Scalix през KMail
-Name[ca]=Notes en un servidor Scalix mitjançant el KMail
-Name[da]=Noter på Scalix-server via KMail
-Name[de]=Notizen auf einem Scalix-Server via KMail
-Name[el]=Σημειώσεις σε εξυπηρετητή Scalix μέσω του KMail
-Name[es]=Notas en servidor Scalix por medio de KMail
-Name[et]=Kalender Scalix-serveris (KMaili vahendusel)
-Name[fr]=Notes sur serveur Scalix via KMail
-Name[is]=Minnismiðar á Scalix-þjóni gegnum KMail
-Name[it]=Note su server Scalix via KMail
-Name[ja]=KMail 経由 Scalix サーバのメモ
-Name[km]=ចំណាំ​នៅលើ​ម៉ាស៊ីន​បម្រើ Scalix តាមរយៈ KMail
-Name[nds]=Notizen op Scalix-Server över KMail
-Name[nl]=Notities op Scalix-server via KMail
-Name[pl]=Notatki na serwerze Scalix za pośrednictwem KMaila
-Name[ru]=Заметки на сервере Scalix через KMail
-Name[sk]=Poznámky na Scalix serveri pomocou KMail
-Name[sr]=Белешке на Scalix серверу преко KMail-а
-Name[sr@Latn]=Beleške na Scalix serveru preko KMail-a
-Name[sv]=Anteckningar på Scalix-server via Kmail
-Name[tr]=KMail Aracılığı ile Scalix Sunucusunda Takvim
-Name[zh_CN]=通过 KMail 访问 Scalix 服务器上的日历
-Name[zh_TW]=透過 KMail 取得 Scalix 伺服器上的便條
+
X-TDE-Library=knotes_scalix
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/scalix/scalixadmin/delegatedialog.cpp b/tderesources/scalix/scalixadmin/delegatedialog.cpp
index 8674ce70..af843285 100644
--- a/tderesources/scalix/scalixadmin/delegatedialog.cpp
+++ b/tderesources/scalix/scalixadmin/delegatedialog.cpp
@@ -63,7 +63,7 @@ DelegateDialog::DelegateDialog( TQWidget *parent )
row++;
}
- connect( emailSelector, TQT_SIGNAL( clicked() ), TQT_SLOT( selectEmail() ) );
+ connect( emailSelector, TQ_SIGNAL( clicked() ), TQ_SLOT( selectEmail() ) );
setMainWidget( page );
}
diff --git a/tderesources/scalix/scalixadmin/delegatedialog.h b/tderesources/scalix/scalixadmin/delegatedialog.h
index 2f258113..874bced5 100644
--- a/tderesources/scalix/scalixadmin/delegatedialog.h
+++ b/tderesources/scalix/scalixadmin/delegatedialog.h
@@ -34,7 +34,7 @@ class Delegate;
class DelegateDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/scalix/scalixadmin/delegatemanager.h b/tderesources/scalix/scalixadmin/delegatemanager.h
index 05b0262d..b58d8ac9 100644
--- a/tderesources/scalix/scalixadmin/delegatemanager.h
+++ b/tderesources/scalix/scalixadmin/delegatemanager.h
@@ -28,7 +28,7 @@
class DelegateManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/scalix/scalixadmin/delegatepage.cpp b/tderesources/scalix/scalixadmin/delegatepage.cpp
index b4368f7d..b43dac85 100644
--- a/tderesources/scalix/scalixadmin/delegatepage.cpp
+++ b/tderesources/scalix/scalixadmin/delegatepage.cpp
@@ -53,10 +53,10 @@ DelegatePage::DelegatePage( TQWidget *parent )
mRemoveButton->setEnabled( false );
layout->addWidget( mRemoveButton, 1, 2 );
- connect( mView, TQT_SIGNAL( selectionChanged() ), TQT_SLOT( selectionChanged() ) );
- connect( mAddButton, TQT_SIGNAL( clicked() ), TQT_SLOT( addDelegate() ) );
- connect( mEditButton, TQT_SIGNAL( clicked() ), TQT_SLOT( editDelegate() ) );
- connect( mRemoveButton, TQT_SIGNAL( clicked() ), TQT_SLOT( removeDelegate() ) );
+ connect( mView, TQ_SIGNAL( selectionChanged() ), TQ_SLOT( selectionChanged() ) );
+ connect( mAddButton, TQ_SIGNAL( clicked() ), TQ_SLOT( addDelegate() ) );
+ connect( mEditButton, TQ_SIGNAL( clicked() ), TQ_SLOT( editDelegate() ) );
+ connect( mRemoveButton, TQ_SIGNAL( clicked() ), TQ_SLOT( removeDelegate() ) );
loadAllDelegates();
}
@@ -69,7 +69,7 @@ void DelegatePage::loadAllDelegates()
{
Scalix::GetDelegatesJob *job = Scalix::getDelegates( Settings::self()->globalSlave(),
Settings::self()->accountUrl() );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), TQT_SLOT( allDelegates( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), TQ_SLOT( allDelegates( TDEIO::Job* ) ) );
}
void DelegatePage::addDelegate()
@@ -88,7 +88,7 @@ void DelegatePage::addDelegate()
Scalix::SetDelegateJob *job = Scalix::setDelegate( Settings::self()->globalSlave(),
Settings::self()->accountUrl(),
delegate.email(), delegate.rights() );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), TQT_SLOT( delegateAdded( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), TQ_SLOT( delegateAdded( TDEIO::Job* ) ) );
}
void DelegatePage::editDelegate()
@@ -113,7 +113,7 @@ void DelegatePage::editDelegate()
Scalix::SetDelegateJob *job = Scalix::setDelegate( Settings::self()->globalSlave(),
Settings::self()->accountUrl(),
delegate.email(), delegate.rights() );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), TQT_SLOT( delegateAdded( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), TQ_SLOT( delegateAdded( TDEIO::Job* ) ) );
}
void DelegatePage::removeDelegate()
@@ -124,7 +124,7 @@ void DelegatePage::removeDelegate()
Scalix::DeleteDelegateJob *job = Scalix::deleteDelegate( Settings::self()->globalSlave(),
Settings::self()->accountUrl(), delegate.email() );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), TQT_SLOT( delegateRemoved( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), TQ_SLOT( delegateRemoved( TDEIO::Job* ) ) );
}
void DelegatePage::allDelegates( TDEIO::Job *job )
diff --git a/tderesources/scalix/scalixadmin/delegatepage.h b/tderesources/scalix/scalixadmin/delegatepage.h
index 0523effe..eabd988d 100644
--- a/tderesources/scalix/scalixadmin/delegatepage.h
+++ b/tderesources/scalix/scalixadmin/delegatepage.h
@@ -30,7 +30,7 @@ class DelegateView;
class DelegatePage : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/scalix/scalixadmin/delegateview.cpp b/tderesources/scalix/scalixadmin/delegateview.cpp
index 79b8cf33..e999baff 100644
--- a/tderesources/scalix/scalixadmin/delegateview.cpp
+++ b/tderesources/scalix/scalixadmin/delegateview.cpp
@@ -48,7 +48,7 @@ DelegateView::DelegateView( DelegateManager *manager, TQWidget *parent )
setFullWidth( true );
setAllColumnsShowFocus( true );
- connect( mManager, TQT_SIGNAL( changed() ), TQT_SLOT( delegateChanged() ) );
+ connect( mManager, TQ_SIGNAL( changed() ), TQ_SLOT( delegateChanged() ) );
delegateChanged();
}
diff --git a/tderesources/scalix/scalixadmin/delegateview.h b/tderesources/scalix/scalixadmin/delegateview.h
index 0416b8a0..2b72d284 100644
--- a/tderesources/scalix/scalixadmin/delegateview.h
+++ b/tderesources/scalix/scalixadmin/delegateview.h
@@ -31,7 +31,7 @@ class DelegateManager;
class DelegateView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/scalix/scalixadmin/jobs.cpp b/tderesources/scalix/scalixadmin/jobs.cpp
index e07b17ca..d965438d 100644
--- a/tderesources/scalix/scalixadmin/jobs.cpp
+++ b/tderesources/scalix/scalixadmin/jobs.cpp
@@ -207,8 +207,8 @@ DeleteDelegateJob::DeleteDelegateJob( const KURL& url, const TQByteArray &packed
GetDelegatesJob::GetDelegatesJob( const KURL& url, const TQByteArray &packedArgs, bool showProgressInfo )
: TDEIO::SimpleJob( url, TDEIO::CMD_SPECIAL, packedArgs, showProgressInfo )
{
- connect( this, TQT_SIGNAL( infoMessage( TDEIO::Job*, const TQString& ) ),
- this, TQT_SLOT( slotInfoMessage( TDEIO::Job*, const TQString& ) ) );
+ connect( this, TQ_SIGNAL( infoMessage( TDEIO::Job*, const TQString& ) ),
+ this, TQ_SLOT( slotInfoMessage( TDEIO::Job*, const TQString& ) ) );
}
Delegate::List GetDelegatesJob::delegates() const
@@ -259,8 +259,8 @@ DeleteOtherUserJob::DeleteOtherUserJob( const KURL& url, const TQByteArray &pack
GetOtherUsersJob::GetOtherUsersJob( const KURL& url, const TQByteArray &packedArgs, bool showProgressInfo )
: TDEIO::SimpleJob( url, TDEIO::CMD_SPECIAL, packedArgs, showProgressInfo )
{
- connect( this, TQT_SIGNAL( infoMessage( TDEIO::Job*, const TQString& ) ),
- this, TQT_SLOT( slotInfoMessage( TDEIO::Job*, const TQString& ) ) );
+ connect( this, TQ_SIGNAL( infoMessage( TDEIO::Job*, const TQString& ) ),
+ this, TQ_SLOT( slotInfoMessage( TDEIO::Job*, const TQString& ) ) );
}
TQStringList GetOtherUsersJob::otherUsers() const
@@ -281,8 +281,8 @@ SetOutOfOfficeJob::SetOutOfOfficeJob( const KURL& url, const TQByteArray &packed
GetOutOfOfficeJob::GetOutOfOfficeJob( const KURL& url, const TQByteArray &packedArgs, bool showProgressInfo )
: TDEIO::SimpleJob( url, TDEIO::CMD_SPECIAL, packedArgs, showProgressInfo )
{
- connect( this, TQT_SIGNAL( infoMessage( TDEIO::Job*, const TQString& ) ),
- this, TQT_SLOT( slotInfoMessage( TDEIO::Job*, const TQString& ) ) );
+ connect( this, TQ_SIGNAL( infoMessage( TDEIO::Job*, const TQString& ) ),
+ this, TQ_SLOT( slotInfoMessage( TDEIO::Job*, const TQString& ) ) );
}
bool GetOutOfOfficeJob::enabled() const
diff --git a/tderesources/scalix/scalixadmin/jobs.h b/tderesources/scalix/scalixadmin/jobs.h
index 832db070..0f65a104 100644
--- a/tderesources/scalix/scalixadmin/jobs.h
+++ b/tderesources/scalix/scalixadmin/jobs.h
@@ -132,7 +132,7 @@ namespace Scalix {
class GetDelegatesJob : public TDEIO::SimpleJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -161,7 +161,7 @@ namespace Scalix {
class GetOtherUsersJob : public TDEIO::SimpleJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
@@ -184,7 +184,7 @@ namespace Scalix {
class GetOutOfOfficeJob : public TDEIO::SimpleJob
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/scalix/scalixadmin/ldapview.cpp b/tderesources/scalix/scalixadmin/ldapview.cpp
index 3e6eea04..a58dec2e 100644
--- a/tderesources/scalix/scalixadmin/ldapview.cpp
+++ b/tderesources/scalix/scalixadmin/ldapview.cpp
@@ -56,10 +56,10 @@ LdapView::LdapView( TQWidget *parent )
attrs << "surname" << "mail";
mClient->setAttrs( attrs );
- connect( mClient, TQT_SIGNAL( result( const TDEABC::LdapObject& ) ),
- this, TQT_SLOT( entryAdded( const TDEABC::LdapObject& ) ) );
- connect( mClient, TQT_SIGNAL( error( const TQString& ) ),
- this, TQT_SLOT( error( const TQString& ) ) );
+ connect( mClient, TQ_SIGNAL( result( const TDEABC::LdapObject& ) ),
+ this, TQ_SLOT( entryAdded( const TDEABC::LdapObject& ) ) );
+ connect( mClient, TQ_SIGNAL( error( const TQString& ) ),
+ this, TQ_SLOT( error( const TQString& ) ) );
}
LdapView::~LdapView()
diff --git a/tderesources/scalix/scalixadmin/ldapview.h b/tderesources/scalix/scalixadmin/ldapview.h
index 9de45817..f405045b 100644
--- a/tderesources/scalix/scalixadmin/ldapview.h
+++ b/tderesources/scalix/scalixadmin/ldapview.h
@@ -29,7 +29,7 @@ class LdapObject;
class LdapView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/scalix/scalixadmin/otherusermanager.h b/tderesources/scalix/scalixadmin/otherusermanager.h
index 26f33ee4..e02e53a1 100644
--- a/tderesources/scalix/scalixadmin/otherusermanager.h
+++ b/tderesources/scalix/scalixadmin/otherusermanager.h
@@ -26,7 +26,7 @@
class OtherUserManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/scalix/scalixadmin/otheruserpage.cpp b/tderesources/scalix/scalixadmin/otheruserpage.cpp
index 3cc220ea..f7594acf 100644
--- a/tderesources/scalix/scalixadmin/otheruserpage.cpp
+++ b/tderesources/scalix/scalixadmin/otheruserpage.cpp
@@ -52,9 +52,9 @@ OtherUserPage::OtherUserPage( TQWidget *parent )
mDeleteButton->setEnabled( false );
layout->addWidget( mDeleteButton, 1, 1 );
- connect( mView, TQT_SIGNAL( selectionChanged() ), TQT_SLOT( selectionChanged() ) );
- connect( mAddButton, TQT_SIGNAL( clicked() ), TQT_SLOT( addUser() ) );
- connect( mDeleteButton, TQT_SIGNAL( clicked() ), TQT_SLOT( removeUser() ) );
+ connect( mView, TQ_SIGNAL( selectionChanged() ), TQ_SLOT( selectionChanged() ) );
+ connect( mAddButton, TQ_SIGNAL( clicked() ), TQ_SLOT( addUser() ) );
+ connect( mDeleteButton, TQ_SIGNAL( clicked() ), TQ_SLOT( removeUser() ) );
loadAllUsers();
}
@@ -67,7 +67,7 @@ void OtherUserPage::loadAllUsers()
{
Scalix::GetOtherUsersJob *job = Scalix::getOtherUsers( Settings::self()->globalSlave(),
Settings::self()->accountUrl() );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), TQT_SLOT( allUsers( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), TQ_SLOT( allUsers( TDEIO::Job* ) ) );
}
void OtherUserPage::addUser()
@@ -82,7 +82,7 @@ void OtherUserPage::addUser()
Scalix::AddOtherUserJob *job = Scalix::addOtherUser( Settings::self()->globalSlave(),
Settings::self()->accountUrl(), email );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), TQT_SLOT( userAdded( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), TQ_SLOT( userAdded( TDEIO::Job* ) ) );
}
void OtherUserPage::removeUser()
@@ -93,7 +93,7 @@ void OtherUserPage::removeUser()
Scalix::DeleteOtherUserJob *job = Scalix::deleteOtherUser( Settings::self()->globalSlave(),
Settings::self()->accountUrl(), email );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), TQT_SLOT( userRemoved( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), TQ_SLOT( userRemoved( TDEIO::Job* ) ) );
}
void OtherUserPage::allUsers( TDEIO::Job *job )
diff --git a/tderesources/scalix/scalixadmin/otheruserpage.h b/tderesources/scalix/scalixadmin/otheruserpage.h
index e8c5e269..03527125 100644
--- a/tderesources/scalix/scalixadmin/otheruserpage.h
+++ b/tderesources/scalix/scalixadmin/otheruserpage.h
@@ -30,7 +30,7 @@ class OtherUserView;
class OtherUserPage : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/scalix/scalixadmin/otheruserview.cpp b/tderesources/scalix/scalixadmin/otheruserview.cpp
index e8aa13bc..be09dc74 100644
--- a/tderesources/scalix/scalixadmin/otheruserview.cpp
+++ b/tderesources/scalix/scalixadmin/otheruserview.cpp
@@ -45,7 +45,7 @@ OtherUserView::OtherUserView( OtherUserManager *manager, TQWidget *parent )
addColumn( i18n( "Registered Accounts" ) );
setFullWidth( true );
- connect( mManager, TQT_SIGNAL( changed() ), TQT_SLOT( userChanged() ) );
+ connect( mManager, TQ_SIGNAL( changed() ), TQ_SLOT( userChanged() ) );
userChanged();
}
diff --git a/tderesources/scalix/scalixadmin/otheruserview.h b/tderesources/scalix/scalixadmin/otheruserview.h
index 832b09b8..b52ce1d7 100644
--- a/tderesources/scalix/scalixadmin/otheruserview.h
+++ b/tderesources/scalix/scalixadmin/otheruserview.h
@@ -27,7 +27,7 @@ class OtherUserManager;
class OtherUserView : public TDEListView
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/scalix/scalixadmin/outofofficepage.cpp b/tderesources/scalix/scalixadmin/outofofficepage.cpp
index e807379a..343f4f4c 100644
--- a/tderesources/scalix/scalixadmin/outofofficepage.cpp
+++ b/tderesources/scalix/scalixadmin/outofofficepage.cpp
@@ -38,7 +38,7 @@ OutOfOfficePage::OutOfOfficePage( TQWidget *parent )
{
TQGridLayout *layout = new TQGridLayout( this, 4, 2, 11, 6 );
- TQButtonGroup *group = new TQButtonGroup( 1, Qt::Vertical, this );
+ TQButtonGroup *group = new TQButtonGroup( 1, TQt::Vertical, this );
mDisabled = new TQRadioButton( i18n( "I am in the office" ), group );
mDisabled->setChecked( true );
@@ -55,10 +55,10 @@ OutOfOfficePage::OutOfOfficePage( TQWidget *parent )
statusChanged();
- connect( mEnabled, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( statusChanged() ) );
- connect( mEnabled, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( changed() ) );
- connect( mSaveButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( store() ) );
- connect( mMessage, TQT_SIGNAL( textChanged() ), this, TQT_SLOT( changed() ) );
+ connect( mEnabled, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( statusChanged() ) );
+ connect( mEnabled, TQ_SIGNAL( toggled( bool ) ), this, TQ_SLOT( changed() ) );
+ connect( mSaveButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( store() ) );
+ connect( mMessage, TQ_SIGNAL( textChanged() ), this, TQ_SLOT( changed() ) );
load();
}
@@ -71,7 +71,7 @@ void OutOfOfficePage::load()
{
Scalix::GetOutOfOfficeJob *job = Scalix::getOutOfOffice( Settings::self()->globalSlave(),
Settings::self()->accountUrl() );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), TQT_SLOT( loaded( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), TQ_SLOT( loaded( TDEIO::Job* ) ) );
}
void OutOfOfficePage::loaded( TDEIO::Job* job )
@@ -98,7 +98,7 @@ void OutOfOfficePage::store()
mEnabled->isChecked(),
mMessage->text() );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ), TQT_SLOT( stored( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ), TQ_SLOT( stored( TDEIO::Job* ) ) );
mSaveButton->setEnabled( false );
}
diff --git a/tderesources/scalix/scalixadmin/outofofficepage.h b/tderesources/scalix/scalixadmin/outofofficepage.h
index f9863fa1..b96de352 100644
--- a/tderesources/scalix/scalixadmin/outofofficepage.h
+++ b/tderesources/scalix/scalixadmin/outofofficepage.h
@@ -30,7 +30,7 @@ class TQTextEdit;
class OutOfOfficePage : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/scalix/scalixadmin/passwordpage.cpp b/tderesources/scalix/scalixadmin/passwordpage.cpp
index 38262725..f67e4251 100644
--- a/tderesources/scalix/scalixadmin/passwordpage.cpp
+++ b/tderesources/scalix/scalixadmin/passwordpage.cpp
@@ -62,9 +62,9 @@ PasswordPage::PasswordPage( TQWidget *parent )
layout->setRowSpacing( 3, 1 );
- connect( mPassword, TQT_SIGNAL( textChanged( const TQString& ) ), this, TQT_SLOT( textChanged() ) );
- connect( mPasswordRetype, TQT_SIGNAL( textChanged( const TQString& ) ), this, TQT_SLOT( textChanged() ) );
- connect( mButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( buttonClicked() ) );
+ connect( mPassword, TQ_SIGNAL( textChanged( const TQString& ) ), this, TQ_SLOT( textChanged() ) );
+ connect( mPasswordRetype, TQ_SIGNAL( textChanged( const TQString& ) ), this, TQ_SLOT( textChanged() ) );
+ connect( mButton, TQ_SIGNAL( clicked() ), this, TQ_SLOT( buttonClicked() ) );
}
void PasswordPage::buttonClicked()
@@ -77,7 +77,7 @@ void PasswordPage::buttonClicked()
mJob = Scalix::setPassword( Settings::self()->globalSlave(), Settings::self()->accountUrl(),
Settings::self()->accountPassword(), mPassword->text() );
- connect( mJob, TQT_SIGNAL( result( TDEIO::Job* ) ), this, TQT_SLOT( finished( TDEIO::Job* ) ) );
+ connect( mJob, TQ_SIGNAL( result( TDEIO::Job* ) ), this, TQ_SLOT( finished( TDEIO::Job* ) ) );
updateState( true );
} else {
diff --git a/tderesources/scalix/scalixadmin/passwordpage.h b/tderesources/scalix/scalixadmin/passwordpage.h
index 5255193e..d7d6f455 100644
--- a/tderesources/scalix/scalixadmin/passwordpage.h
+++ b/tderesources/scalix/scalixadmin/passwordpage.h
@@ -32,7 +32,7 @@ class Job;
class PasswordPage : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/scalix/shared/kmailconnection.cpp b/tderesources/scalix/shared/kmailconnection.cpp
index 147b9822..6f239cc2 100644
--- a/tderesources/scalix/shared/kmailconnection.cpp
+++ b/tderesources/scalix/shared/kmailconnection.cpp
@@ -55,8 +55,8 @@ KMailConnection::KMailConnection( ResourceScalixBase* resource,
mDCOPClient->registerAs( objId, true );
kapp->dcopClient()->setNotifications( true );
- connect( kapp->dcopClient(), TQT_SIGNAL( applicationRemoved( const TQCString& ) ),
- this, TQT_SLOT( unregisteredFromDCOP( const TQCString& ) ) );
+ connect( kapp->dcopClient(), TQ_SIGNAL( applicationRemoved( const TQCString& ) ),
+ this, TQ_SLOT( unregisteredFromDCOP( const TQCString& ) ) );
}
KMailConnection::~KMailConnection()
diff --git a/tderesources/scalix/shared/kmailconnection.h b/tderesources/scalix/shared/kmailconnection.h
index 7fec6274..b8f102cd 100644
--- a/tderesources/scalix/shared/kmailconnection.h
+++ b/tderesources/scalix/shared/kmailconnection.h
@@ -48,7 +48,7 @@ class ResourceScalixBase;
This class provides the kmail connectivity for IMAP resources.
*/
class KMailConnection : public TQObject, public DCOPObject {
- Q_OBJECT
+ TQ_OBJECT
//
K_DCOP
diff --git a/tderesources/scalix/shared/scalixbase.cpp b/tderesources/scalix/shared/scalixbase.cpp
index f07a6983..51ef8798 100644
--- a/tderesources/scalix/shared/scalixbase.cpp
+++ b/tderesources/scalix/shared/scalixbase.cpp
@@ -372,12 +372,12 @@ TQDomDocument ScalixBase::domTree()
TQString ScalixBase::dateTimeToString( const TQDateTime& time )
{
- return time.toString( Qt::ISODate ) + 'Z';
+ return time.toString( TQt::ISODate ) + 'Z';
}
TQString ScalixBase::dateToString( const TQDate& date )
{
- return date.toString( Qt::ISODate );
+ return date.toString( TQt::ISODate );
}
TQDateTime ScalixBase::stringToDateTime( const TQString& _date )
@@ -385,12 +385,12 @@ TQDateTime ScalixBase::stringToDateTime( const TQString& _date )
TQString date( _date );
if ( date.endsWith( "Z" ) )
date.truncate( date.length() - 1 );
- return TQDateTime::fromString( date, Qt::ISODate );
+ return TQDateTime::fromString( date, TQt::ISODate );
}
TQDate ScalixBase::stringToDate( const TQString& date )
{
- return TQDate::fromString( date, Qt::ISODate );
+ return TQDate::fromString( date, TQt::ISODate );
}
TQString ScalixBase::sensitivityToString( Sensitivity s )
diff --git a/tderesources/scalix/tdeabc/CMakeLists.txt b/tderesources/scalix/tdeabc/CMakeLists.txt
index 5875d5ac..d677a306 100644
--- a/tderesources/scalix/tdeabc/CMakeLists.txt
+++ b/tderesources/scalix/tdeabc/CMakeLists.txt
@@ -24,9 +24,11 @@ link_directories(
##### other data ################################
-install(
- FILES scalix.desktop
- DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc )
+tde_create_translated_desktop(
+ SOURCE scalix.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc
+ PO_DIR tderesources-desktops
+)
install(
FILES ../uninstall.desktop
diff --git a/tderesources/scalix/tdeabc/contact.cpp b/tderesources/scalix/tdeabc/contact.cpp
index 190837a0..6d4cc2bf 100644
--- a/tderesources/scalix/tdeabc/contact.cpp
+++ b/tderesources/scalix/tdeabc/contact.cpp
@@ -71,7 +71,7 @@ TQString Contact::toXml( const TDEABC::Addressee &addr )
xml += "<reminder_set>" + custom( "reminder_set", addr, "false" ) + "</reminder_set>\n";
xml += "<send_rich_info>" + custom( "send_rich_info", addr, "false" ) + "</send_rich_info>\n";
xml += "<subject>" + addr.formattedName() + "</subject>\n";
- xml += "<last_modification_time>" + addr.revision().toString( Qt::ISODate ) + "</last_modification_time>\n";
+ xml += "<last_modification_time>" + addr.revision().toString( TQt::ISODate ) + "</last_modification_time>\n";
xml += "<display_name_prefix>" + addr.prefix() + "</display_name_prefix>\n";
xml += "<first_name>" + addr.givenName() + "</first_name>\n";
@@ -166,7 +166,7 @@ TQString Contact::toXml( const TDEABC::Addressee &addr )
xml += "<office_location>" + addr.custom( "KADDRESSBOOK", "X-Office" ) + "</office_location>\n";
xml += "<spouse>" + addr.custom( "KADDRESSBOOK", "X-SpousesName" ) + "</spouse>\n";
- xml += "<bday>" + addr.birthday().toString( Qt::ISODate ) + "</bday>\n";
+ xml += "<bday>" + addr.birthday().toString( TQt::ISODate ) + "</bday>\n";
xml += "<anniversary>" + addr.custom( "KADDRESSBOOK", "X-Anniversary" ) + "</anniversary>\n";
xml += "<mapi_charset>" + custom( "mapi_charset", addr, "UTF8" ) + "</mapi_charset>";
@@ -235,7 +235,7 @@ TDEABC::Addressee Contact::fromXml( const TQString &xml )
else if ( element.tagName() == "send_rich_info" )
setCustom( "send_rich_info", element.text(), addr );
else if ( element.tagName() == "last_modification_time" )
- addr.setRevision( TQDateTime::fromString( element.text(), Qt::ISODate ) );
+ addr.setRevision( TQDateTime::fromString( element.text(), TQt::ISODate ) );
// name
else if ( element.tagName() == "display_name_prefix" )
@@ -352,7 +352,7 @@ TDEABC::Addressee Contact::fromXml( const TQString &xml )
addr.insertCustom( "KADDRESSBOOK", "X-SpousesName", element.text() );
else if ( element.tagName() == "bday" )
- addr.setBirthday( TQDateTime::fromString( element.text(), Qt::ISODate ) );
+ addr.setBirthday( TQDateTime::fromString( element.text(), TQt::ISODate ) );
else if ( element.tagName() == "anniversary" )
addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", element.text() );
else
diff --git a/tderesources/scalix/tdeabc/resourcescalix.h b/tderesources/scalix/tdeabc/resourcescalix.h
index f9d4c309..ee3c8af9 100644
--- a/tderesources/scalix/tdeabc/resourcescalix.h
+++ b/tderesources/scalix/tdeabc/resourcescalix.h
@@ -39,7 +39,7 @@
#include "../shared/resourcescalixbase.h"
#include "../shared/subresource.h"
#include <kmail/kmailicalIface.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace TDEABC {
@@ -53,7 +53,7 @@ namespace TDEABC {
class KDE_EXPORT ResourceScalix : public KPIM::ResourceABC,
public Scalix::ResourceScalixBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/scalix/tdeabc/scalix.desktop b/tderesources/scalix/tdeabc/scalix.desktop
index 673082db..99817840 100644
--- a/tderesources/scalix/tdeabc/scalix.desktop
+++ b/tderesources/scalix/tdeabc/scalix.desktop
@@ -1,28 +1,6 @@
[Desktop Entry]
Name=Addressbook on Scalix Server via KMail
-Name[bg]=Адресник на сървъра Scalix през KMail
-Name[ca]=Llibreta d'adreces en un servidor Scalix mitjançant el KMail
-Name[da]=Adressebog på Scalix-server via KMail
-Name[de]=Adressbuch auf einem Scalix-Server via KMail
-Name[el]=Βιβλίο διευθύνσεων σε εξυπηρετητή Scalix μέσω του KMail
-Name[es]=Libreta de direcciones en servidor Scalix por medio de KMail
-Name[et]=Aadressiraamat Scalix-serveris (KMaili vahendusel)
-Name[fr]=Carnet d'adresses sur serveur Scalix via KMail
-Name[is]=Vistfangaskrá á Scalix-þjóni gegnum KMail
-Name[it]=Rubrica indirizzi su server Scalix via KMail
-Name[ja]=KMail 経由 Scalix サーバのアドレス帳
-Name[km]=សៀវភៅ​អាសយដ្ឋាន​នៅ​លើ​ម៉ាស៊ីន​បម្រើ Scalix តាម​រយៈ KMail
-Name[nds]=Adressbook op Scalix-Server över KMail
-Name[nl]=Adresboek op Scalix-server via KMail
-Name[pl]=Książka adresowa na serwerze Scalix za pośrednictwem KMaila
-Name[ru]=Адресная книга на сервере Scalix через KMail
-Name[sk]=Adresár na Scalix serveri pomocou KMail
-Name[sr]=Адресар на Scalix серверу преко KMail-а
-Name[sr@Latn]=Adresar na Scalix serveru preko KMail-a
-Name[sv]=Adressbok på Scalix-server via Kmail
-Name[tr]=KMail Aracılığı ile Scalix Sunucusunda Adres Defteri
-Name[zh_CN]=通过 KMail 访问 Scalix 服务器上的地址簿
-Name[zh_TW]=透過 KMail 取得 Scalix 伺服器上的通訊錄
+
X-TDE-Library=tdeabc_scalix
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/scalix/tdeioslave/CMakeLists.txt b/tderesources/scalix/tdeioslave/CMakeLists.txt
index d1ae3844..717e5cb1 100644
--- a/tderesources/scalix/tdeioslave/CMakeLists.txt
+++ b/tderesources/scalix/tdeioslave/CMakeLists.txt
@@ -23,9 +23,11 @@ link_directories(
##### other data ################################
-install(
- FILES scalix.protocol scalixs.protocol
- DESTINATION ${SERVICES_INSTALL_DIR} )
+tde_create_translated_desktop(
+ SOURCE scalix.protocol scalixs.protocol
+ DESTINATION ${SERVICES_INSTALL_DIR}
+ PO_DIR tderesources-desktops
+)
##### tdeio_scalix (module) #######################
diff --git a/tderesources/scalix/tdeioslave/scalix.cpp b/tderesources/scalix/tdeioslave/scalix.cpp
index 5ce8dca1..8dbb8651 100644
--- a/tderesources/scalix/tdeioslave/scalix.cpp
+++ b/tderesources/scalix/tdeioslave/scalix.cpp
@@ -28,7 +28,7 @@
#include <tdeio/global.h>
#include <tdelocale.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <stdlib.h>
@@ -116,10 +116,10 @@ void Scalix::retrieveFreeBusy( const KURL &url )
mFreeBusyData = TQString();
TDEIO::SimpleJob *job = TDEIO::special( imapUrl, packedArgs, false );
- connect( job, TQT_SIGNAL( infoMessage( TDEIO::Job*, const TQString& ) ),
- this, TQT_SLOT( slotInfoMessage( TDEIO::Job*, const TQString& ) ) );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ),
- this, TQT_SLOT( slotRetrieveResult( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( infoMessage( TDEIO::Job*, const TQString& ) ),
+ this, TQ_SLOT( slotInfoMessage( TDEIO::Job*, const TQString& ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ),
+ this, TQ_SLOT( slotRetrieveResult( TDEIO::Job* ) ) );
tqApp->eventLoop()->enterLoop();
}
@@ -182,8 +182,8 @@ void Scalix::publishFreeBusy( const KURL &url )
.arg( url.host() );
TDEIO::SimpleJob *job = TDEIO::special( imapUrl, packedArgs, false );
- connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ),
- this, TQT_SLOT( slotPublishResult( TDEIO::Job* ) ) );
+ connect( job, TQ_SIGNAL( result( TDEIO::Job* ) ),
+ this, TQ_SLOT( slotPublishResult( TDEIO::Job* ) ) );
tqApp->eventLoop()->enterLoop();
}
diff --git a/tderesources/scalix/tdeioslave/scalix.h b/tderesources/scalix/tdeioslave/scalix.h
index f4dbdead..78a71447 100644
--- a/tderesources/scalix/tdeioslave/scalix.h
+++ b/tderesources/scalix/tdeioslave/scalix.h
@@ -28,7 +28,7 @@
class Scalix : public TQObject, public TDEIO::SlaveBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/slox/CMakeLists.txt b/tderesources/slox/CMakeLists.txt
index 0d932ecb..a9ce5a9a 100644
--- a/tderesources/slox/CMakeLists.txt
+++ b/tderesources/slox/CMakeLists.txt
@@ -25,8 +25,17 @@ link_directories(
##### other data ################################
-install( FILES kcal_slox.desktop kcal_ox.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal )
-install( FILES tdeabc_slox.desktop tdeabc_ox.desktop DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc )
+tde_create_translated_desktop(
+ SOURCE kcal_slox.desktop kcal_ox.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/kcal
+ PO_DIR tderesources-desktops
+)
+
+tde_create_translated_desktop(
+ SOURCE tdeabc_slox.desktop tdeabc_ox.desktop
+ DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc
+ PO_DIR tderesources-desktops
+)
##### kcal_slox (module) ########################
diff --git a/tderesources/slox/kcal_ox.desktop b/tderesources/slox/kcal_ox.desktop
index 1a70f2fc..6df9cdb4 100644
--- a/tderesources/slox/kcal_ox.desktop
+++ b/tderesources/slox/kcal_ox.desktop
@@ -1,44 +1,6 @@
[Desktop Entry]
Name=OpenXchange Server
-Name[af]=OpenXchange bediener
-Name[bg]=Сървър OpenXchange
-Name[br]=Servijer OpenXchange
-Name[ca]=Servidor OpenXchange
-Name[da]=Openxchange-server
-Name[el]=Εξυπηρετητής OpenXchange
-Name[es]=Servidor OpenXchange
-Name[et]=OpenXchange server
-Name[eu]=OpenXchange zerbitzaria
-Name[fa]=کارساز OpenXchange
-Name[fi]=OpenXchange-palvelin
-Name[fr]=Serveur OpenXchange
-Name[fy]=OpenXchange-tsjinner
-Name[ga]=Freastalaí Openexchange
-Name[gl]=Servidor OpenXchange
-Name[hu]=OpenXchange-kiszolgáló
-Name[is]=OpenXchange þjónn
-Name[ja]=OpenXchange サーバ
-Name[kk]=OpenXchange сервері
-Name[km]=ម៉ាស៊ីន​បម្រើ OpenXchange
-Name[lt]=OpenXchange serveris
-Name[mk]=OpenXchange-сервер
-Name[nb]=OpenExchange-tjener
-Name[nds]=OpenXchange-Server
-Name[ne]=ओपन एक्सचेन्ज सर्भर
-Name[nl]=OpenXchange-server
-Name[nn]=OpenXchange-tenar
-Name[pl]=Server OpenXchange
-Name[pt]=Servidor OpenXchange
-Name[pt_BR]=Servidor OpenXchange
-Name[ru]=Сервер OpenXchange
-Name[sl]=Strežnik OpenXchange
-Name[sr]=Openexchange сервер
-Name[sr@Latn]=Openexchange server
-Name[sv]=Openxchange-server
-Name[tr]=OpenXchange Sunucusu
-Name[uk]=Сервер OpenXchange
-Name[zh_CN]=OpenXchange 服务器
-Name[zh_TW]=OpenXchange 伺服器
+
X-TDE-Library=kcal_slox
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/slox/kcal_slox.desktop b/tderesources/slox/kcal_slox.desktop
index dec7e48f..61034b16 100644
--- a/tderesources/slox/kcal_slox.desktop
+++ b/tderesources/slox/kcal_slox.desktop
@@ -1,49 +1,6 @@
[Desktop Entry]
Name=SUSE LINUX Openexchange Server
-Name[af]=SuSE Linux OpenExchange bediener
-Name[bg]=Сървър SUSE LINUX Openexchange
-Name[br]=Servijer Openexchange SUSE LINUX
-Name[ca]=Servidor SUSE LINUX Openexchange
-Name[cs]=SUSE LINUX Openexchange server
-Name[da]=SUSE Linux Openexchange-server
-Name[de]=SUSE LINUX Openexchange-Server
-Name[el]=Εξυπηρετητή SUSE LINUX Openexchange
-Name[es]=Servidor Openexchange de SUSE LINUX
-Name[et]=SUSE LINUX Openexchange server
-Name[eu]=SUSE LINUX Openexchange zerbitzaria
-Name[fa]=کارساز SUSE LINUX Openexchange
-Name[fi]=Suse Linux Openexchange -palvelin
-Name[fr]=Serveur SUSE Linux Openexchange
-Name[fy]=SUSE LINUX Openexchange-tsjinner
-Name[ga]=Freastalaí Openexchange SUSE LINUX
-Name[gl]=Servidor SUSE LINUX Openexchange
-Name[hu]=SUSE LINUX Openexchange-kiszolgáló
-Name[is]=SUSE LINUX Openexchange þjónn
-Name[it]=Server SUSE LINUX Openexchange
-Name[ja]=SUSE LINUX Openexchange サーバ
-Name[kk]=SUSE LINUX Openexchange сервері
-Name[km]=ម៉ាស៊ីន​បម្រើ Openexchange របស់​ស៊ូស៊ីលីនីក
-Name[lt]=SUSE LINUX Openexchange serveris
-Name[mk]=SUSE LINUX Openexchange-сервер
-Name[ms]=Pelayan SUSE LINUX Openexchange
-Name[nb]=SUSE LINUX Openexchange-tjener
-Name[nds]=SUSE-Openexchangeserver
-Name[ne]=SUSE LINUX ओपन एक्सचेन्ज सर्भर
-Name[nl]=SUSE LINUX Openexchange-server
-Name[nn]=SUSE LINUX Openexchange-tenar
-Name[pl]=Server SUSE LINUX Openexchange
-Name[pt]=Servidor SUSE LINUX Openexchange
-Name[pt_BR]=Servidor OpenExchange do SUSE Linux (SLOX)
-Name[ru]=Сервер SUSE LINUX Openexchange
-Name[sl]=Strežnik SUSE LINUX Openexchange
-Name[sr]=Openexchange сервер SUSE-овог Linux-а
-Name[sr@Latn]=Openexchange server SUSE-ovog Linux-a
-Name[sv]=SUSE Linux Openexchange-server
-Name[ta]=SUSE LINUX திறந்த பரிமாற்ற சேவகன்
-Name[tr]=SUSE LINUX Openexchange Sunucusu
-Name[uk]=Сервер SUSE LINUX Openexchange
-Name[zh_CN]=SUSE LINUX Openexchange 服务器
-Name[zh_TW]=SUSE LINUX Openexchange 伺服器
+
X-TDE-Library=kcal_slox
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/slox/kcalresourceslox.cpp b/tderesources/slox/kcalresourceslox.cpp
index 4c2ab12c..e93b8944 100644
--- a/tderesources/slox/kcalresourceslox.cpp
+++ b/tderesources/slox/kcalresourceslox.cpp
@@ -226,16 +226,16 @@ void KCalResourceSlox::requestEvents()
kdDebug() << "REQUEST CALENDAR: \n" << doc.toString( 2 ) << endl;
mLoadEventsJob = TDEIO::davPropFind( url, doc, "0", false );
- connect( mLoadEventsJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotLoadEventsResult( TDEIO::Job * ) ) );
- connect( mLoadEventsJob, TQT_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
- TQT_SLOT( slotEventsProgress( TDEIO::Job *, unsigned long ) ) );
+ connect( mLoadEventsJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotLoadEventsResult( TDEIO::Job * ) ) );
+ connect( mLoadEventsJob, TQ_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
+ TQ_SLOT( slotEventsProgress( TDEIO::Job *, unsigned long ) ) );
mLoadEventsProgress = KPIM::ProgressManager::instance()->createProgressItem(
KPIM::ProgressManager::getUniqueID(), i18n("Downloading events") );
connect( mLoadEventsProgress,
- TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
- TQT_SLOT( cancelLoadEvents() ) );
+ TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
+ TQ_SLOT( cancelLoadEvents() ) );
mPrefs->setLastEventSync( TQDateTime::currentDateTime() );
}
@@ -271,16 +271,16 @@ void KCalResourceSlox::requestTodos()
kdDebug() << "REQUEST TASKS: \n" << doc.toString( 2 ) << endl;
mLoadTodosJob = TDEIO::davPropFind( url, doc, "0", false );
- connect( mLoadTodosJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotLoadTodosResult( TDEIO::Job * ) ) );
- connect( mLoadTodosJob, TQT_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
- TQT_SLOT( slotTodosProgress( TDEIO::Job *, unsigned long ) ) );
+ connect( mLoadTodosJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotLoadTodosResult( TDEIO::Job * ) ) );
+ connect( mLoadTodosJob, TQ_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
+ TQ_SLOT( slotTodosProgress( TDEIO::Job *, unsigned long ) ) );
mLoadTodosProgress = KPIM::ProgressManager::instance()->createProgressItem(
KPIM::ProgressManager::getUniqueID(), i18n("Downloading to-dos") );
connect( mLoadTodosProgress,
- TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
- TQT_SLOT( cancelLoadTodos() ) );
+ TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
+ TQ_SLOT( cancelLoadTodos() ) );
mPrefs->setLastTodoSync( TQDateTime::currentDateTime() );
}
@@ -380,16 +380,16 @@ void KCalResourceSlox::uploadIncidences()
kdDebug() << "UPLOAD: \n" << doc.toString( 2 ) << endl;
mUploadJob = TDEIO::davPropPatch( url, doc, false );
- connect( mUploadJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotUploadResult( TDEIO::Job * ) ) );
- connect( mUploadJob, TQT_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
- TQT_SLOT( slotUploadProgress( TDEIO::Job *, unsigned long ) ) );
+ connect( mUploadJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotUploadResult( TDEIO::Job * ) ) );
+ connect( mUploadJob, TQ_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
+ TQ_SLOT( slotUploadProgress( TDEIO::Job *, unsigned long ) ) );
mUploadProgress = KPIM::ProgressManager::instance()->createProgressItem(
KPIM::ProgressManager::getUniqueID(), i18n("Uploading incidence") );
connect( mUploadProgress,
- TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
- TQT_SLOT( cancelUpload() ) );
+ TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
+ TQ_SLOT( cancelUpload() ) );
}
void KCalResourceSlox::createIncidenceAttributes( TQDomDocument &doc,
diff --git a/tderesources/slox/kcalresourceslox.h b/tderesources/slox/kcalresourceslox.h
index 39a2757e..a4a80b3e 100644
--- a/tderesources/slox/kcalresourceslox.h
+++ b/tderesources/slox/kcalresourceslox.h
@@ -31,7 +31,7 @@
#include <kurl.h>
#include <tdeconfig.h>
#include <kdirwatch.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <libkcal/incidence.h>
#include <libkcal/todo.h>
@@ -60,7 +60,7 @@ class SloxAccounts;
*/
class KDE_EXPORT KCalResourceSlox : public KCal::ResourceCached, public SloxBase
{
- Q_OBJECT
+ TQ_OBJECT
friend class KCalResourceSloxConfig;
diff --git a/tderesources/slox/kcalresourcesloxconfig.cpp b/tderesources/slox/kcalresourcesloxconfig.cpp
index 83246a03..8652263f 100644
--- a/tderesources/slox/kcalresourcesloxconfig.cpp
+++ b/tderesources/slox/kcalresourcesloxconfig.cpp
@@ -72,11 +72,11 @@ KCalResourceSloxConfig::KCalResourceSloxConfig( TQWidget* parent, const char* n
mCalButton = new KPushButton( i18n("Calendar Folder..."), this );
mainLayout->addWidget( mCalButton, 5, 0 );
- connect( mCalButton, TQT_SIGNAL( clicked() ), TQT_SLOT( selectCalendarFolder() ) );
+ connect( mCalButton, TQ_SIGNAL( clicked() ), TQ_SLOT( selectCalendarFolder() ) );
mTaskButton = new KPushButton( i18n("Task Folder..."), this );
mainLayout->addWidget( mTaskButton, 5, 1 );
- connect( mTaskButton, TQT_SIGNAL( clicked() ), TQT_SLOT( selectTaskFolder() ) );
+ connect( mTaskButton, TQ_SIGNAL( clicked() ), TQ_SLOT( selectTaskFolder() ) );
mReloadConfig = new KCal::ResourceCachedReloadConfig( this );
mainLayout->addMultiCellWidget( mReloadConfig, 6, 6, 0, 1 );
diff --git a/tderesources/slox/kcalresourcesloxconfig.h b/tderesources/slox/kcalresourcesloxconfig.h
index e2a666c0..21670bbb 100644
--- a/tderesources/slox/kcalresourcesloxconfig.h
+++ b/tderesources/slox/kcalresourcesloxconfig.h
@@ -21,7 +21,7 @@
#define KCALRESOURCESLOXCONFIG_H
#include <kurlrequester.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tderesources/resource.h>
#include <tderesources/configwidget.h>
@@ -44,7 +44,7 @@ class SloxBase;
*/
class KDE_EXPORT KCalResourceSloxConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
KCalResourceSloxConfig( TQWidget *parent = 0, const char *name = 0 );
diff --git a/tderesources/slox/sloxaccounts.cpp b/tderesources/slox/sloxaccounts.cpp
index 3afa7019..e5ba2651 100644
--- a/tderesources/slox/sloxaccounts.cpp
+++ b/tderesources/slox/sloxaccounts.cpp
@@ -139,8 +139,8 @@ void SloxAccounts::requestAccounts()
mDownloadJob = TDEIO::davPropFind( url, doc, "0", false );
}
- connect( mDownloadJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotResult( TDEIO::Job * ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotResult( TDEIO::Job * ) ) );
}
void SloxAccounts::slotResult( TDEIO::Job *job )
diff --git a/tderesources/slox/sloxaccounts.h b/tderesources/slox/sloxaccounts.h
index 2e9d1289..7b5e92a1 100644
--- a/tderesources/slox/sloxaccounts.h
+++ b/tderesources/slox/sloxaccounts.h
@@ -21,7 +21,7 @@
#define SLOXACCOUNTS_H
#include <tdeabc/addressee.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tqobject.h>
namespace TDEIO {
@@ -32,7 +32,7 @@ class SloxBase;
class KDE_EXPORT SloxAccounts : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
SloxAccounts( SloxBase *res, const KURL &baseUrl );
diff --git a/tderesources/slox/sloxbase.h b/tderesources/slox/sloxbase.h
index 8e9309c9..dc3c9c53 100644
--- a/tderesources/slox/sloxbase.h
+++ b/tderesources/slox/sloxbase.h
@@ -21,7 +21,7 @@
#define SLOXUTILS_H
#include <tqstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace KRES {
class Resource;
diff --git a/tderesources/slox/sloxfolder.h b/tderesources/slox/sloxfolder.h
index 6f6a6c93..06f08003 100644
--- a/tderesources/slox/sloxfolder.h
+++ b/tderesources/slox/sloxfolder.h
@@ -21,7 +21,7 @@
#define SLOXFOLDER_H
#include <tqstring.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TDEListViewItem;
diff --git a/tderesources/slox/sloxfolderdialog.cpp b/tderesources/slox/sloxfolderdialog.cpp
index 716c2d40..c1f1086e 100644
--- a/tderesources/slox/sloxfolderdialog.cpp
+++ b/tderesources/slox/sloxfolderdialog.cpp
@@ -37,7 +37,7 @@ SloxFolderDialog::SloxFolderDialog( SloxFolderManager *manager, FolderType type,
mListView->addColumn( i18n("Folder ID"), 0 );
setMainWidget( mListView );
updateFolderView();
- connect( manager, TQT_SIGNAL( foldersUpdated() ), TQT_SLOT( updateFolderView() ) );
+ connect( manager, TQ_SIGNAL( foldersUpdated() ), TQ_SLOT( updateFolderView() ) );
}
SloxFolderDialog::~SloxFolderDialog()
diff --git a/tderesources/slox/sloxfolderdialog.h b/tderesources/slox/sloxfolderdialog.h
index 1a0749ea..0b8785ea 100644
--- a/tderesources/slox/sloxfolderdialog.h
+++ b/tderesources/slox/sloxfolderdialog.h
@@ -30,7 +30,7 @@ class SloxFolderManager;
class SloxFolderDialog : public KDialogBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
SloxFolderDialog( SloxFolderManager *manager, FolderType type, TQWidget* parent = 0, const char *name = 0 );
diff --git a/tderesources/slox/sloxfoldermanager.cpp b/tderesources/slox/sloxfoldermanager.cpp
index d7284d3a..b862a388 100644
--- a/tderesources/slox/sloxfoldermanager.cpp
+++ b/tderesources/slox/sloxfoldermanager.cpp
@@ -79,8 +79,8 @@ void SloxFolderManager::requestFolders()
mDownloadJob = TDEIO::davPropFind( url, doc, "0", false );
- connect( mDownloadJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotResult( TDEIO::Job * ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotResult( TDEIO::Job * ) ) );
}
void SloxFolderManager::slotResult( TDEIO::Job *job )
diff --git a/tderesources/slox/sloxfoldermanager.h b/tderesources/slox/sloxfoldermanager.h
index f31c212c..f61ab471 100644
--- a/tderesources/slox/sloxfoldermanager.h
+++ b/tderesources/slox/sloxfoldermanager.h
@@ -25,7 +25,7 @@
#include <kurl.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
namespace TDEIO {
class Job;
@@ -37,7 +37,7 @@ class SloxFolder;
class KDE_EXPORT SloxFolderManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
SloxFolderManager( SloxBase *res, const KURL &baseUrl );
diff --git a/tderesources/slox/tdeabc_ox.desktop b/tderesources/slox/tdeabc_ox.desktop
index cf3407d9..88f32adf 100644
--- a/tderesources/slox/tdeabc_ox.desktop
+++ b/tderesources/slox/tdeabc_ox.desktop
@@ -1,44 +1,6 @@
[Desktop Entry]
Name=OpenXchange Server
-Name[af]=OpenXchange bediener
-Name[bg]=Сървър OpenXchange
-Name[br]=Servijer OpenXchange
-Name[ca]=Servidor OpenXchange
-Name[da]=Openxchange-server
-Name[el]=Εξυπηρετητής OpenXchange
-Name[es]=Servidor OpenXchange
-Name[et]=OpenXchange server
-Name[eu]=OpenXchange zerbitzaria
-Name[fa]=کارساز OpenXchange
-Name[fi]=OpenXchange-palvelin
-Name[fr]=Serveur OpenXchange
-Name[fy]=OpenXchange-tsjinner
-Name[ga]=Freastalaí Openexchange
-Name[gl]=Servidor OpenXchange
-Name[hu]=OpenXchange-kiszolgáló
-Name[is]=OpenXchange þjónn
-Name[ja]=OpenXchange サーバ
-Name[kk]=OpenXchange сервері
-Name[km]=ម៉ាស៊ីន​បម្រើ OpenXchange
-Name[lt]=OpenXchange serveris
-Name[mk]=OpenXchange-сервер
-Name[nb]=OpenExchange-tjener
-Name[nds]=OpenXchange-Server
-Name[ne]=ओपन एक्सचेन्ज सर्भर
-Name[nl]=OpenXchange-server
-Name[nn]=OpenXchange-tenar
-Name[pl]=Server OpenXchange
-Name[pt]=Servidor OpenXchange
-Name[pt_BR]=Servidor OpenXchange
-Name[ru]=Сервер OpenXchange
-Name[sl]=Strežnik OpenXchange
-Name[sr]=Openexchange сервер
-Name[sr@Latn]=Openexchange server
-Name[sv]=Openxchange-server
-Name[tr]=OpenXchange Sunucusu
-Name[uk]=Сервер OpenXchange
-Name[zh_CN]=OpenXchange 服务器
-Name[zh_TW]=OpenXchange 伺服器
+
X-TDE-Library=tdeabc_slox
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/slox/tdeabc_slox.desktop b/tderesources/slox/tdeabc_slox.desktop
index 6e9a6075..0552cc6a 100644
--- a/tderesources/slox/tdeabc_slox.desktop
+++ b/tderesources/slox/tdeabc_slox.desktop
@@ -1,49 +1,6 @@
[Desktop Entry]
Name=SUSE LINUX Openexchange Server
-Name[af]=SuSE Linux OpenExchange bediener
-Name[bg]=Сървър SUSE LINUX Openexchange
-Name[br]=Servijer Openexchange SUSE LINUX
-Name[ca]=Servidor SUSE LINUX Openexchange
-Name[cs]=SUSE LINUX Openexchange server
-Name[da]=SUSE Linux Openexchange-server
-Name[de]=SUSE LINUX Openexchange-Server
-Name[el]=Εξυπηρετητή SUSE LINUX Openexchange
-Name[es]=Servidor Openexchange de SUSE LINUX
-Name[et]=SUSE LINUX Openexchange server
-Name[eu]=SUSE LINUX Openexchange zerbitzaria
-Name[fa]=کارساز SUSE LINUX Openexchange
-Name[fi]=Suse Linux Openexchange -palvelin
-Name[fr]=Serveur SUSE Linux Openexchange
-Name[fy]=SUSE LINUX Openexchange-tsjinner
-Name[ga]=Freastalaí Openexchange SUSE LINUX
-Name[gl]=Servidor SUSE LINUX Openexchange
-Name[hu]=SUSE LINUX Openexchange-kiszolgáló
-Name[is]=SUSE LINUX Openexchange þjónn
-Name[it]=Server SUSE LINUX Openexchange
-Name[ja]=SUSE LINUX Openexchange サーバ
-Name[kk]=SUSE LINUX Openexchange сервері
-Name[km]=ម៉ាស៊ីន​បម្រើ Openexchange របស់​ស៊ូស៊ីលីនីក
-Name[lt]=SUSE LINUX Openexchange serveris
-Name[mk]=SUSE LINUX Openexchange-сервер
-Name[ms]=Pelayan SUSE LINUX Openexchange
-Name[nb]=SUSE LINUX Openexchange-tjener
-Name[nds]=SUSE-Openexchangeserver
-Name[ne]=SUSE LINUX ओपन एक्सचेन्ज सर्भर
-Name[nl]=SUSE LINUX Openexchange-server
-Name[nn]=SUSE LINUX Openexchange-tenar
-Name[pl]=Server SUSE LINUX Openexchange
-Name[pt]=Servidor SUSE LINUX Openexchange
-Name[pt_BR]=Servidor OpenExchange do SUSE Linux (SLOX)
-Name[ru]=Сервер SUSE LINUX Openexchange
-Name[sl]=Strežnik SUSE LINUX Openexchange
-Name[sr]=Openexchange сервер SUSE-овог Linux-а
-Name[sr@Latn]=Openexchange server SUSE-ovog Linux-a
-Name[sv]=SUSE Linux Openexchange-server
-Name[ta]=SUSE LINUX திறந்த பரிமாற்ற சேவகன்
-Name[tr]=SUSE LINUX Openexchange Sunucusu
-Name[uk]=Сервер SUSE LINUX Openexchange
-Name[zh_CN]=SUSE LINUX Openexchange 服务器
-Name[zh_TW]=SUSE LINUX Openexchange 伺服器
+
X-TDE-Library=tdeabc_slox
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/slox/tdeabcresourceslox.cpp b/tderesources/slox/tdeabcresourceslox.cpp
index 248e3f39..d77347d3 100644
--- a/tderesources/slox/tdeabcresourceslox.cpp
+++ b/tderesources/slox/tdeabcresourceslox.cpp
@@ -21,6 +21,7 @@
#include <tqapplication.h>
+#include <tdeversion.h>
#include <tdeabc/picture.h>
#include <tdeconfig.h>
#include <kdebug.h>
@@ -207,16 +208,16 @@ bool ResourceSlox::asyncLoad()
kdDebug() << "REQUEST CONTACTS: \n" << doc.toString( 2 ) << endl;
mDownloadJob = TDEIO::davPropFind( url, doc, "0", false );
- connect( mDownloadJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotResult( TDEIO::Job * ) ) );
- connect( mDownloadJob, TQT_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
- TQT_SLOT( slotProgress( TDEIO::Job *, unsigned long ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotResult( TDEIO::Job * ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
+ TQ_SLOT( slotProgress( TDEIO::Job *, unsigned long ) ) );
mDownloadProgress = KPIM::ProgressManager::instance()->createProgressItem(
KPIM::ProgressManager::getUniqueID(), i18n("Downloading contacts") );
connect( mDownloadProgress,
- TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
- TQT_SLOT( cancelDownload() ) );
+ TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
+ TQ_SLOT( cancelDownload() ) );
mPrefs->setLastSync( TQDateTime::currentDateTime() );
@@ -401,7 +402,7 @@ void ResourceSlox::parseContactAttribute( const TQDomElement &e, Addressee &a )
a.insertCustom( "KADDRESSBOOK", "X-SpousesName", text );
} else if ( tag == fieldName( Anniversary ) ) {
TQDateTime dt = WebdavHandler::sloxToTQDateTime( text );
- a.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt.toString( Qt::ISODate ) );
+ a.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt.toString( TQt::ISODate ) );
} else if ( tag == fieldName( Categories ) ) {
a.setCategories( TQStringList::split( TQRegExp(",\\s*"), text ) );
} else if ( type() == "ox" ) { // FIXME: Address reading is missing for SLOX
@@ -520,16 +521,16 @@ void ResourceSlox::uploadContacts()
url.setPass( mPrefs->password() );
mUploadJob = TDEIO::davPropPatch( url, doc, false );
- connect( mUploadJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotUploadResult( TDEIO::Job * ) ) );
- connect( mUploadJob, TQT_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
- TQT_SLOT( slotProgress( TDEIO::Job *, unsigned long ) ) );
+ connect( mUploadJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotUploadResult( TDEIO::Job * ) ) );
+ connect( mUploadJob, TQ_SIGNAL( percent( TDEIO::Job *, unsigned long ) ),
+ TQ_SLOT( slotProgress( TDEIO::Job *, unsigned long ) ) );
mUploadProgress = KPIM::ProgressManager::instance()->createProgressItem(
KPIM::ProgressManager::getUniqueID(), i18n("Uploading contacts") );
connect( mUploadProgress,
- TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
- TQT_SLOT( cancelUpload() ) );
+ TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
+ TQ_SLOT( cancelUpload() ) );
}
void ResourceSlox::createAddresseeFields( TQDomDocument &doc, TQDomElement &prop,
@@ -576,7 +577,7 @@ void ResourceSlox::createAddresseeFields( TQDomDocument &doc, TQDomElement &prop
TQString anniversary = a.custom( "KADDRESSBOOK", "X-Anniversary" );
if ( !anniversary.isEmpty() )
WebdavHandler::addSloxElement( this, doc, prop, fieldName( Anniversary ),
- WebdavHandler::qDateTimeToSlox( TQDateTime::fromString( anniversary, Qt::ISODate ).date() ) );
+ WebdavHandler::qDateTimeToSlox( TQDateTime::fromString( anniversary, TQt::ISODate ).date() ) );
else
WebdavHandler::addSloxElement( this, doc, prop, fieldName( Anniversary ) );
}
diff --git a/tderesources/slox/tdeabcresourceslox.h b/tderesources/slox/tdeabcresourceslox.h
index 35a71be2..225f8a33 100644
--- a/tderesources/slox/tdeabcresourceslox.h
+++ b/tderesources/slox/tdeabcresourceslox.h
@@ -24,7 +24,7 @@
#include "webdavhandler.h"
#include <libtdepim/tdeabcresourcecached.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tdeabc/addressee.h>
#include <tqmap.h>
@@ -47,7 +47,7 @@ class SloxPrefs;
class KDE_EXPORT ResourceSlox : public ResourceCached, public SloxBase
{
- Q_OBJECT
+ TQ_OBJECT
public:
ResourceSlox( const TDEConfig * );
diff --git a/tderesources/slox/tdeabcresourcesloxconfig.cpp b/tderesources/slox/tdeabcresourcesloxconfig.cpp
index 8ad6701c..36f76238 100644
--- a/tderesources/slox/tdeabcresourcesloxconfig.cpp
+++ b/tderesources/slox/tdeabcresourcesloxconfig.cpp
@@ -69,7 +69,7 @@ ResourceSloxConfig::ResourceSloxConfig( TQWidget* parent, const char* name )
mFolderButton = new KPushButton( i18n("Select Folder..."), this );
mainLayout->addMultiCellWidget( mFolderButton, 4, 4, 0, 1 );
- connect( mFolderButton, TQT_SIGNAL( clicked() ), TQT_SLOT( selectAddressFolder() ) );
+ connect( mFolderButton, TQ_SIGNAL( clicked() ), TQ_SLOT( selectAddressFolder() ) );
}
diff --git a/tderesources/slox/tdeabcresourcesloxconfig.h b/tderesources/slox/tdeabcresourcesloxconfig.h
index 6bbaf6ae..46a9a74a 100644
--- a/tderesources/slox/tdeabcresourcesloxconfig.h
+++ b/tderesources/slox/tdeabcresourcesloxconfig.h
@@ -21,7 +21,7 @@
#define RESOURCESLOXCONFIG_H
#include <tderesources/configwidget.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class TQCheckBox;
class KLineEdit;
@@ -34,7 +34,7 @@ namespace TDEABC {
class KDE_EXPORT ResourceSloxConfig : public KRES::ConfigWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/slox/testsloxaccounts.cpp b/tderesources/slox/testsloxaccounts.cpp
index 22c44e66..ea7b3da1 100644
--- a/tderesources/slox/testsloxaccounts.cpp
+++ b/tderesources/slox/testsloxaccounts.cpp
@@ -55,7 +55,7 @@ int main(int argc,char **argv)
app.setMainWidget( &button );
button.show();
- TQObject::connect( &button, TQT_SIGNAL( clicked() ), &app, TQT_SLOT( quit() ) );
+ TQObject::connect( &button, TQ_SIGNAL( clicked() ), &app, TQ_SLOT( quit() ) );
app.exec();
}
diff --git a/tderesources/slox/webdavhandler.cpp b/tderesources/slox/webdavhandler.cpp
index 4b57e1de..8d677bd0 100644
--- a/tderesources/slox/webdavhandler.cpp
+++ b/tderesources/slox/webdavhandler.cpp
@@ -199,7 +199,7 @@ TQDateTime WebdavHandler::sloxToTQDateTime( const TQString &str )
TQDateTime dt;
if (preEpoch) {
- dt.setTime_t( 0, Qt::UTC );
+ dt.setTime_t( 0, TQt::UTC );
if (ticks > INT_MAX) {
dt = dt.addSecs(-INT_MAX);
ticks -= INT_MAX;
@@ -208,7 +208,7 @@ TQDateTime WebdavHandler::sloxToTQDateTime( const TQString &str )
}
else
{
- dt.setTime_t( ticks, Qt::UTC );
+ dt.setTime_t( ticks, TQt::UTC );
}
return dt;
diff --git a/tderesources/slox/webdavhandler.h b/tderesources/slox/webdavhandler.h
index c7c93222..6d98fd52 100644
--- a/tderesources/slox/webdavhandler.h
+++ b/tderesources/slox/webdavhandler.h
@@ -25,7 +25,7 @@
#include <tqdatetime.h>
#include <tqdom.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tdeabc/addressee.h>
namespace KCal {
diff --git a/tderesources/tvanytime/kcal_resourcetvanytime.cpp b/tderesources/tvanytime/kcal_resourcetvanytime.cpp
index 12161d90..44b3e324 100644
--- a/tderesources/tvanytime/kcal_resourcetvanytime.cpp
+++ b/tderesources/tvanytime/kcal_resourcetvanytime.cpp
@@ -93,8 +93,8 @@ void ResourceTVAnytime::init()
//setReadOnly( true );
- connect( &mResourceChangedTimer, TQT_SIGNAL( timeout() ),
- this, TQT_SLOT( slotEmitResourceChanged() ) );
+ connect( &mResourceChangedTimer, TQ_SIGNAL( timeout() ),
+ this, TQ_SLOT( slotEmitResourceChanged() ) );
}
TVAnytimePrefsBase *ResourceTVAnytime::prefs()
@@ -179,15 +179,15 @@ bool ResourceTVAnytime::doLoad()
// TODO: find out if the file to download is fresh. if not, just work with the cache.
mDownloadJob = TDEIO::file_copy( url, destination, -1, true );
- connect( mDownloadJob, TQT_SIGNAL( result( TDEIO::Job * ) ),
- TQT_SLOT( slotJobResult( TDEIO::Job * ) ) );
+ connect( mDownloadJob, TQ_SIGNAL( result( TDEIO::Job * ) ),
+ TQ_SLOT( slotJobResult( TDEIO::Job * ) ) );
mProgress = KPIM::ProgressManager::instance()->createProgressItem(
KPIM::ProgressManager::getUniqueID(), i18n("Downloading program schedule") );
connect( mProgress,
- TQT_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
- TQT_SLOT( cancelLoad() ) );
+ TQ_SIGNAL( progressItemCanceled( KPIM::ProgressItem * ) ),
+ TQ_SLOT( cancelLoad() ) );
return true;
}
diff --git a/tderesources/tvanytime/kcal_resourcetvanytime.h b/tderesources/tvanytime/kcal_resourcetvanytime.h
index 1be0aa0e..cea9004b 100644
--- a/tderesources/tvanytime/kcal_resourcetvanytime.h
+++ b/tderesources/tvanytime/kcal_resourcetvanytime.h
@@ -30,7 +30,7 @@
#include <tdeabc/locknull.h>
#include <tdeio/job.h>
#include <tdeconfig.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include "service.h"
@@ -50,7 +50,7 @@ class TVAnytimePrefsBase;
*/
class KDE_EXPORT ResourceTVAnytime : public ResourceCached
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/tderesources/tvanytime/kcal_resourcetvanytimeconfig.h b/tderesources/tvanytime/kcal_resourcetvanytimeconfig.h
index c99e86e0..926bc7f3 100644
--- a/tderesources/tvanytime/kcal_resourcetvanytimeconfig.h
+++ b/tderesources/tvanytime/kcal_resourcetvanytimeconfig.h
@@ -21,7 +21,7 @@
#define KCALRESOURCETVANYTIMECONFIG_H
#include <kurlrequester.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
#include <tderesources/resource.h>
#include <tderesources/configwidget.h>
@@ -40,7 +40,7 @@ class ResourceCachedSaveConfig;
*/
class KDE_EXPORT ResourceTVAnytimeConfig : public KRES::ConfigWidget
{
-Q_OBJECT
+TQ_OBJECT
public:
ResourceTVAnytimeConfig( TQWidget *parent = 0, const char *name = 0 );
diff --git a/tderesources/tvanytime/kcal_tvanytime.desktop b/tderesources/tvanytime/kcal_tvanytime.desktop
index 3e06ca4d..fc75802c 100644
--- a/tderesources/tvanytime/kcal_tvanytime.desktop
+++ b/tderesources/tvanytime/kcal_tvanytime.desktop
@@ -1,49 +1,6 @@
[Desktop Entry]
Name=TV Schedules
-Name[af]=TV skedules
-Name[ar]=جداول التلفزة
-Name[bg]=Разписание на ТВ
-Name[ca]=Programació de la TV
-Name[cs]=TV programy
-Name[da]=Tv-oversigt
-Name[de]=Fernsehprogramm
-Name[el]=Προγράμματα τηλεόρασης
-Name[es]=Programación de TV
-Name[et]=Telekavad
-Name[eu]=TB planifikazioak
-Name[fa]=زمان‌بندیهای تلویزیون
-Name[fi]=TV-ohjelmat
-Name[fr]=Programmes TV
-Name[fy]=Televissjeprogrammearring
-Name[ga]=Sceidil Teilifíse
-Name[gl]=Programación de TV
-Name[hu]=TV-műsorok
-Name[is]=Sjónvarpsdagskrár
-Name[it]=Programmi TV
-Name[ja]=TV 番組予定
-Name[ka]=ტელეპროგრამა
-Name[kk]=TV кестелері
-Name[km]=កាលវិភាគ​ទូរទស្សន៍
-Name[lt]=TV tvarkaraščiai
-Name[mk]=ТВ програми
-Name[nb]=TV-program
-Name[nds]=Feernsehprogramm
-Name[ne]=टीभी कार्यतालिका
-Name[nl]=Televisieprogrammering
-Name[nn]=TV-program
-Name[pl]=Program telewizyjny
-Name[pt]=Programação de TV
-Name[pt_BR]=Horários de TV
-Name[ru]=Программы телепередач
-Name[sk]=TV programy
-Name[sl]=TV spored
-Name[sr]=ТВ програм
-Name[sr@Latn]=TV program
-Name[sv]=Tv-tablåer
-Name[tr]=TV Programı
-Name[uk]=Програма телебачення
-Name[zh_CN]=电视日程安排
-Name[zh_TW]=電視時刻表
+
X-TDE-Library=kcal_tvanytime
Type=Service
X-TDE-ServiceTypes=TDEResources/Plugin
diff --git a/tderesources/tvanytime/tvanytime.tdevelop b/tderesources/tvanytime/tvanytime.tdevelop
index 4359032f..479d2f50 100644
--- a/tderesources/tvanytime/tvanytime.tdevelop
+++ b/tderesources/tvanytime/tvanytime.tdevelop
@@ -67,7 +67,7 @@
</kdevautoproject>
<kdevfileview>
<groups>
- <group pattern="*.cpp;*.cxx;*.h" name="Sources" />
+ <group pattern="*.cpp;*.h" name="Sources" />
<group pattern="*.ui" name="User Interface" />
<group pattern="*.png" name="Icons" />
<group pattern="*.po;*.ts" name="Translations" />
diff --git a/translations/desktop_files/KOrn.desktop/KOrn.desktop.pot b/translations/desktop_files/KOrn.desktop/KOrn.desktop.pot
new file mode 100644
index 00000000..45f12e8d
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/KOrn.desktop.pot
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr ""
diff --git a/translations/desktop_files/KOrn.desktop/af.po b/translations/desktop_files/KOrn.desktop/af.po
new file mode 100644
index 00000000..41856ec9
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/af.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Pos inkennis stel"
diff --git a/translations/desktop_files/KOrn.desktop/ar.po b/translations/desktop_files/KOrn.desktop/ar.po
new file mode 100644
index 00000000..249ef781
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/ar.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "منبه للبريد الألكتروني"
diff --git a/translations/desktop_files/KOrn.desktop/bg.po b/translations/desktop_files/KOrn.desktop/bg.po
new file mode 100644
index 00000000..b727437e
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/bg.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Аларма за е-поща"
diff --git a/translations/desktop_files/KOrn.desktop/bs.po b/translations/desktop_files/KOrn.desktop/bs.po
new file mode 100644
index 00000000..d5241e4d
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/bs.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Obavještavanje o pristigloj pošti"
diff --git a/translations/desktop_files/KOrn.desktop/ca.po b/translations/desktop_files/KOrn.desktop/ca.po
new file mode 100644
index 00000000..800bd614
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/ca.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Alerta per al correu"
diff --git a/translations/desktop_files/KOrn.desktop/cs.po b/translations/desktop_files/KOrn.desktop/cs.po
new file mode 100644
index 00000000..5c591ef3
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/cs.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: 2020-09-20 18:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/korn-korndesktop/cs/>\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: Weblate 4.2.2\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr "Korn"
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Upozornění na poštu"
diff --git a/translations/desktop_files/KOrn.desktop/cy.po b/translations/desktop_files/KOrn.desktop/cy.po
new file mode 100644
index 00000000..25226214
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/cy.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Rhybudd Ebost"
diff --git a/translations/desktop_files/KOrn.desktop/da.po b/translations/desktop_files/KOrn.desktop/da.po
new file mode 100644
index 00000000..bb5c6993
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/da.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Meddelelse om post"
diff --git a/translations/desktop_files/KOrn.desktop/de.po b/translations/desktop_files/KOrn.desktop/de.po
new file mode 100644
index 00000000..63f5d496
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/de.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Mail-Benachrichtigung"
diff --git a/translations/desktop_files/KOrn.desktop/el.po b/translations/desktop_files/KOrn.desktop/el.po
new file mode 100644
index 00000000..6f7aebab
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/el.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Ειδοποίηση για mail"
diff --git a/translations/desktop_files/KOrn.desktop/eo.po b/translations/desktop_files/KOrn.desktop/eo.po
new file mode 100644
index 00000000..6699841d
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/eo.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr "Korno"
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Retpoŝtavertilo"
diff --git a/translations/desktop_files/KOrn.desktop/es.po b/translations/desktop_files/KOrn.desktop/es.po
new file mode 100644
index 00000000..16efb177
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/es.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Aviso de correo"
diff --git a/translations/desktop_files/KOrn.desktop/et.po b/translations/desktop_files/KOrn.desktop/et.po
new file mode 100644
index 00000000..26fd8b5f
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/et.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "E-kirjade teadustaja"
diff --git a/translations/desktop_files/KOrn.desktop/eu.po b/translations/desktop_files/KOrn.desktop/eu.po
new file mode 100644
index 00000000..b3118828
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/eu.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Mail abisua"
diff --git a/translations/desktop_files/KOrn.desktop/fa.po b/translations/desktop_files/KOrn.desktop/fa.po
new file mode 100644
index 00000000..5269f327
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/fa.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "هشدارنامه"
diff --git a/translations/desktop_files/KOrn.desktop/fi.po b/translations/desktop_files/KOrn.desktop/fi.po
new file mode 100644
index 00000000..cc4e5f45
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/fi.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Saapuneen sähköpostin ilmoitus"
diff --git a/translations/desktop_files/KOrn.desktop/fr.po b/translations/desktop_files/KOrn.desktop/fr.po
new file mode 100644
index 00000000..45647892
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/fr.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Surveillance du courrier électronique"
diff --git a/translations/desktop_files/KOrn.desktop/fy.po b/translations/desktop_files/KOrn.desktop/fy.po
new file mode 100644
index 00000000..38547dbc
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/fy.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "E-postnotifikaasje"
diff --git a/translations/desktop_files/KOrn.desktop/ga.po b/translations/desktop_files/KOrn.desktop/ga.po
new file mode 100644
index 00000000..1c53b959
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/ga.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Fógairt Ríomhphoist"
diff --git a/translations/desktop_files/KOrn.desktop/gl.po b/translations/desktop_files/KOrn.desktop/gl.po
new file mode 100644
index 00000000..1009eb43
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/gl.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Alerta de Correo-e"
diff --git a/translations/desktop_files/KOrn.desktop/hi.po b/translations/desktop_files/KOrn.desktop/hi.po
new file mode 100644
index 00000000..f27baf07
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/hi.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr "कॉर्न"
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "डाक सतर्क"
diff --git a/translations/desktop_files/KOrn.desktop/hr.po b/translations/desktop_files/KOrn.desktop/hr.po
new file mode 100644
index 00000000..67ad6cdd
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/hr.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Upozorenje na nove poruke"
diff --git a/translations/desktop_files/KOrn.desktop/hu.po b/translations/desktop_files/KOrn.desktop/hu.po
new file mode 100644
index 00000000..c3a691ba
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/hu.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Levélfigyelő"
diff --git a/translations/desktop_files/KOrn.desktop/is.po b/translations/desktop_files/KOrn.desktop/is.po
new file mode 100644
index 00000000..cc4de744
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/is.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Póst áminning"
diff --git a/translations/desktop_files/KOrn.desktop/it.po b/translations/desktop_files/KOrn.desktop/it.po
new file mode 100644
index 00000000..4dd42641
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/it.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: 2020-11-22 12:59+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/korn-korndesktop/it/>\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: Weblate 4.3.2\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr "Korn"
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Programma per controllare la posta"
diff --git a/translations/desktop_files/KOrn.desktop/ja.po b/translations/desktop_files/KOrn.desktop/ja.po
new file mode 100644
index 00000000..c86f8dcc
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/ja.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "メールの通知"
diff --git a/translations/desktop_files/KOrn.desktop/kk.po b/translations/desktop_files/KOrn.desktop/kk.po
new file mode 100644
index 00000000..0f4cbcd0
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/kk.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Пошта келген туралы хабарлау"
diff --git a/translations/desktop_files/KOrn.desktop/km.po b/translations/desktop_files/KOrn.desktop/km.po
new file mode 100644
index 00000000..918f7eee
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/km.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "សញ្ញា​ជូនដំណឹងសំបុត្រ"
diff --git a/translations/desktop_files/KOrn.desktop/lt.po b/translations/desktop_files/KOrn.desktop/lt.po
new file mode 100644
index 00000000..0834f67c
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/lt.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Pašto pranešėjas"
diff --git a/translations/desktop_files/KOrn.desktop/lv.po b/translations/desktop_files/KOrn.desktop/lv.po
new file mode 100644
index 00000000..d1fc568b
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/lv.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Pasta Brīdinājums"
diff --git a/translations/desktop_files/KOrn.desktop/mk.po b/translations/desktop_files/KOrn.desktop/mk.po
new file mode 100644
index 00000000..319eea18
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/mk.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Известување за е-пошта"
diff --git a/translations/desktop_files/KOrn.desktop/ms.po b/translations/desktop_files/KOrn.desktop/ms.po
new file mode 100644
index 00000000..b082b9b5
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/ms.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Celik Mel"
diff --git a/translations/desktop_files/KOrn.desktop/mt.po b/translations/desktop_files/KOrn.desktop/mt.po
new file mode 100644
index 00000000..e3a75a13
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/mt.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Twissija tal-imejl"
diff --git a/translations/desktop_files/KOrn.desktop/nb.po b/translations/desktop_files/KOrn.desktop/nb.po
new file mode 100644
index 00000000..649eb999
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/nb.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "E-post-varsling"
diff --git a/translations/desktop_files/KOrn.desktop/nds.po b/translations/desktop_files/KOrn.desktop/nds.po
new file mode 100644
index 00000000..7e6aa6e3
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/nds.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Nettpost-Benarichten"
diff --git a/translations/desktop_files/KOrn.desktop/ne.po b/translations/desktop_files/KOrn.desktop/ne.po
new file mode 100644
index 00000000..71215c0e
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/ne.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr "कर्न"
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "सावधानी पत्र"
diff --git a/translations/desktop_files/KOrn.desktop/nl.po b/translations/desktop_files/KOrn.desktop/nl.po
new file mode 100644
index 00000000..8a283008
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/nl.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "E-mailnotificatie"
diff --git a/translations/desktop_files/KOrn.desktop/nn.po b/translations/desktop_files/KOrn.desktop/nn.po
new file mode 100644
index 00000000..2c4cafc5
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/nn.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "E-postvarsling"
diff --git a/translations/desktop_files/KOrn.desktop/pl.po b/translations/desktop_files/KOrn.desktop/pl.po
new file mode 100644
index 00000000..4ab26c7d
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/pl.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Program powiadamiający o poczcie"
diff --git a/translations/desktop_files/KOrn.desktop/pt.po b/translations/desktop_files/KOrn.desktop/pt.po
new file mode 100644
index 00000000..f682a932
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/pt.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Alerta de E-mail"
diff --git a/translations/desktop_files/KOrn.desktop/pt_BR.po b/translations/desktop_files/KOrn.desktop/pt_BR.po
new file mode 100644
index 00000000..b4193d5a
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/pt_BR.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Alerta de E-mail"
diff --git a/translations/desktop_files/KOrn.desktop/ro.po b/translations/desktop_files/KOrn.desktop/ro.po
new file mode 100644
index 00000000..1dd79106
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/ro.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Alertare e-mail nou"
diff --git a/translations/desktop_files/KOrn.desktop/ru.po b/translations/desktop_files/KOrn.desktop/ru.po
new file mode 100644
index 00000000..afaa70c0
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/ru.po
@@ -0,0 +1,29 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: 2024-03-29 02:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/korn-korndesktop/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr "Korn"
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Уведомление о приходе почты"
diff --git a/translations/desktop_files/KOrn.desktop/rw.po b/translations/desktop_files/KOrn.desktop/rw.po
new file mode 100644
index 00000000..c42b78fe
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/rw.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: rw\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Iburira ry'Ubutumwa"
diff --git a/translations/desktop_files/KOrn.desktop/sk.po b/translations/desktop_files/KOrn.desktop/sk.po
new file mode 100644
index 00000000..2cd14892
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/sk.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Upozornenie na mail"
diff --git a/translations/desktop_files/KOrn.desktop/sl.po b/translations/desktop_files/KOrn.desktop/sl.po
new file mode 100644
index 00000000..10faa7be
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/sl.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Obvestilo o pošti"
diff --git a/translations/desktop_files/KOrn.desktop/sr.po b/translations/desktop_files/KOrn.desktop/sr.po
new file mode 100644
index 00000000..2dbad732
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/sr.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Провера поште"
diff --git a/translations/desktop_files/KOrn.desktop/sr@Latn.po b/translations/desktop_files/KOrn.desktop/sr@Latn.po
new file mode 100644
index 00000000..680bff4c
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/sr@Latn.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Provera pošte"
diff --git a/translations/desktop_files/KOrn.desktop/sv.po b/translations/desktop_files/KOrn.desktop/sv.po
new file mode 100644
index 00000000..6fab4506
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/sv.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "E-postvarning"
diff --git a/translations/desktop_files/KOrn.desktop/ta.po b/translations/desktop_files/KOrn.desktop/ta.po
new file mode 100644
index 00000000..ce6817ee
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/ta.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr "கார்ன்"
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "அஞ்சல் அறிவிப்பு"
diff --git a/translations/desktop_files/KOrn.desktop/tg.po b/translations/desktop_files/KOrn.desktop/tg.po
new file mode 100644
index 00000000..d188e589
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/tg.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Маълумоти қабулшавии почта"
diff --git a/translations/desktop_files/KOrn.desktop/th.po b/translations/desktop_files/KOrn.desktop/th.po
new file mode 100644
index 00000000..e2298db4
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/th.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: th\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "แจ้งเตือนจดหมาย"
diff --git a/translations/desktop_files/KOrn.desktop/tr.po b/translations/desktop_files/KOrn.desktop/tr.po
new file mode 100644
index 00000000..c1497bcd
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/tr.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Midi Uyarısı"
diff --git a/translations/desktop_files/KOrn.desktop/uk.po b/translations/desktop_files/KOrn.desktop/uk.po
new file mode 100644
index 00000000..b3296bcb
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/uk.po
@@ -0,0 +1,29 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: 2020-08-22 07:31+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/korn-korndesktop/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr "Korn"
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Нагадування пошти"
diff --git a/translations/desktop_files/KOrn.desktop/uz.po b/translations/desktop_files/KOrn.desktop/uz.po
new file mode 100644
index 00000000..6a7de978
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/uz.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Янги хат ҳақида хабар берувчи"
diff --git a/translations/desktop_files/KOrn.desktop/ven.po b/translations/desktop_files/KOrn.desktop/ven.po
new file mode 100644
index 00000000..d53b3801
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/ven.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ven\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "U sedzesa poso"
diff --git a/translations/desktop_files/KOrn.desktop/xh.po b/translations/desktop_files/KOrn.desktop/xh.po
new file mode 100644
index 00000000..d4b979c1
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/xh.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: xh\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Umposi Wokulumkisa"
diff --git a/translations/desktop_files/KOrn.desktop/zh_CN.po b/translations/desktop_files/KOrn.desktop/zh_CN.po
new file mode 100644
index 00000000..1b42478d
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/zh_CN.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "邮件警告"
diff --git a/translations/desktop_files/KOrn.desktop/zh_TW.po b/translations/desktop_files/KOrn.desktop/zh_TW.po
new file mode 100644
index 00000000..476a4f88
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/zh_TW.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr "Korn 信件通知"
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "信件警告"
diff --git a/translations/desktop_files/KOrn.desktop/zu.po b/translations/desktop_files/KOrn.desktop/zu.po
new file mode 100644
index 00000000..c57bb9e6
--- /dev/null
+++ b/translations/desktop_files/KOrn.desktop/zu.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KOrn.desktop:2
+msgid "Korn"
+msgstr ""
+
+#. GenericName
+#: KOrn.desktop:4
+msgid "Mail Alert"
+msgstr "Umposi Ohlomile"
diff --git a/translations/desktop_files/akregator-desktops/af.po b/translations/desktop_files/akregator-desktops/af.po
new file mode 100644
index 00000000..25c48f7e
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/af.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Inprop module vir Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS stroom leser"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "'n RSS leser vir TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Inprop module vir Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit stoor agterkant"
diff --git a/translations/desktop_files/akregator-desktops/akregator-desktops.pot b/translations/desktop_files/akregator-desktops/akregator-desktops.pot
new file mode 100644
index 00000000..8fcdeafb
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/akregator-desktops.pot
@@ -0,0 +1,47 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+msgid "Akregator"
+msgstr ""
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr ""
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr ""
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr ""
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr ""
diff --git a/translations/desktop_files/akregator-desktops/be.po b/translations/desktop_files/akregator-desktops/be.po
new file mode 100644
index 00000000..ab9be26b
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/be.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Утулка для Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr ""
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr ""
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Утулка для Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr ""
diff --git a/translations/desktop_files/akregator-desktops/bg.po b/translations/desktop_files/akregator-desktops/bg.po
new file mode 100644
index 00000000..b8e9b23c
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/bg.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Приставка за Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Четец на новости RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Четец на новости във формат RSS"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Приставка за Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Приставка за архивиране Metakit"
diff --git a/translations/desktop_files/akregator-desktops/br.po b/translations/desktop_files/akregator-desktops/br.po
new file mode 100644
index 00000000..e313456d
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/br.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Lugent evit Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr ""
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr ""
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Lugent evit Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr ""
diff --git a/translations/desktop_files/akregator-desktops/ca.po b/translations/desktop_files/akregator-desktops/ca.po
new file mode 100644
index 00000000..00ad3941
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/ca.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Endollable per a l'Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Lector d'enllaços RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Un lector RSS per TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Endollable per a l'Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Dorsal de emmagatzematge Metakit"
diff --git a/translations/desktop_files/akregator-desktops/cs.po b/translations/desktop_files/akregator-desktops/cs.po
new file mode 100644
index 00000000..99262fa9
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/cs.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2020-09-20 18:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/akregator-desktop-files/cs/>\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: Weblate 4.2.2\n"
+
+#. Name
+#: akregator.desktop:2
+msgid "Akregator"
+msgstr "Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Čtečka RSS kanálů"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "RSS agregátor pro TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr "Komponenta aKregator"
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Modul pro Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Backend úložiště Metakit"
diff --git a/translations/desktop_files/akregator-desktops/da.po b/translations/desktop_files/akregator-desktops/da.po
new file mode 100644
index 00000000..ffff3c4b
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/da.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "AkregatorPart"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS-Kildelæser"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "En RSS Aggregator for TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr "AkregatorPart"
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr ""
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit lagringsgrænseflade"
diff --git a/translations/desktop_files/akregator-desktops/de.po b/translations/desktop_files/akregator-desktops/de.po
new file mode 100644
index 00000000..667b0902
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/de.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "aKregator-Komponente"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Anzeige von RSS-Nachrichtenquellen"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Ein RSS-Nachrichtensammler für TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr "aKregator-Komponente"
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Modul für Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit Archiv-Modul"
diff --git a/translations/desktop_files/akregator-desktops/el.po b/translations/desktop_files/akregator-desktops/el.po
new file mode 100644
index 00000000..9cf4a5d1
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/el.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Πρόσθετο για το Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Αναγνώστης ροών RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Ένας συσσωρευτής RSS για το TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Πρόσθετο για το Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Σύστημα υποστήριξης αποθήκευσης Metakit"
diff --git a/translations/desktop_files/akregator-desktops/eo.po b/translations/desktop_files/akregator-desktops/eo.po
new file mode 100644
index 00000000..e21c0a56
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/eo.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Kromprogramo por Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS-flulegilo por diskutrondoj"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "RSS-akumulilo por TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Kromprogramo por Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit datumstora maŝino"
diff --git a/translations/desktop_files/akregator-desktops/es.po b/translations/desktop_files/akregator-desktops/es.po
new file mode 100644
index 00000000..1ee7c3a7
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/es.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Extensión para Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Lector de orígenes RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Un agregador de RSS para TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Extensión para Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Dorsal de almacenamiento Metakit"
diff --git a/translations/desktop_files/akregator-desktops/et.po b/translations/desktop_files/akregator-desktops/et.po
new file mode 100644
index 00000000..6b59a1e2
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/et.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Akregatori plugin"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS-uudistevoogude lugemisvahend"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "TDE RSS-uudistevoogude lugemisvahend"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Akregatori plugin"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakiti salvestamisrakendus"
diff --git a/translations/desktop_files/akregator-desktops/eu.po b/translations/desktop_files/akregator-desktops/eu.po
new file mode 100644
index 00000000..8c25f256
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/eu.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Akregator-en plugina"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS iturri Irakurlea"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "TDE-ren RSS gehitzailea"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Akregator-en plugina"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit-en biltegiratze euskarria"
diff --git a/translations/desktop_files/akregator-desktops/fa.po b/translations/desktop_files/akregator-desktops/fa.po
new file mode 100644
index 00000000..c0e3bd08
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/fa.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "وصله برای Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "خوانندۀ خوراندن RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "انبوهه‌ساز RSSای برای TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "وصله برای Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "پشتیبان ذخیره‌گاه Metakit"
diff --git a/translations/desktop_files/akregator-desktops/fi.po b/translations/desktop_files/akregator-desktops/fi.po
new file mode 100644
index 00000000..50f3ff7f
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/fi.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Liitännäinen Akregatoriin"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS-syötelukija"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "RSS-syötelukija"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Liitännäinen Akregatoriin"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit-tallennusajuri"
diff --git a/translations/desktop_files/akregator-desktops/fr.po b/translations/desktop_files/akregator-desktops/fr.po
new file mode 100644
index 00000000..4ef439a7
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/fr.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Module pour Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Lecteur de flux RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Un lecteur de flux RSS pour TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Module pour Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Stockage avec Metakit"
diff --git a/translations/desktop_files/akregator-desktops/fy.po b/translations/desktop_files/akregator-desktops/fy.po
new file mode 100644
index 00000000..040df2b1
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/fy.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Plugin foar Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS-nijsoanfierlêzer"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "In RSS-agregator foar TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Plugin foar Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit-opslachefterein"
diff --git a/translations/desktop_files/akregator-desktops/ga.po b/translations/desktop_files/akregator-desktops/ga.po
new file mode 100644
index 00000000..fed84697
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/ga.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Breiseán Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Léitheoir na bhFothaí RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Comhbhailitheoir RSS le haghaidh TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Breiseán Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr ""
diff --git a/translations/desktop_files/akregator-desktops/gl.po b/translations/desktop_files/akregator-desktops/gl.po
new file mode 100644
index 00000000..8e666382
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/gl.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Extensión para Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Lector de Novas por RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Un agregador de RSS para TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Extensión para Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Manexador do almacenador Metakit"
diff --git a/translations/desktop_files/akregator-desktops/he.po b/translations/desktop_files/akregator-desktops/he.po
new file mode 100644
index 00000000..00a0db10
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/he.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "תוסף עבור Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "קורא חדשות (RSS)"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr ""
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "תוסף עבור Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr ""
diff --git a/translations/desktop_files/akregator-desktops/hu.po b/translations/desktop_files/akregator-desktops/hu.po
new file mode 100644
index 00000000..b5196b61
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/hu.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Akregator bővítőmodul"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS hírolvasó"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "TDE-s hírolvasó RSS hírcsatornákhoz"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Akregator bővítőmodul"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit tároló"
diff --git a/translations/desktop_files/akregator-desktops/is.po b/translations/desktop_files/akregator-desktops/is.po
new file mode 100644
index 00000000..cd0e5d55
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/is.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Íforrit fyrir Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS fréttaforrit"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "RSS fréttaforrit fyrir TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Íforrit fyrir Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit geymslu bakendi"
diff --git a/translations/desktop_files/akregator-desktops/it.po b/translations/desktop_files/akregator-desktops/it.po
new file mode 100644
index 00000000..e0d3f91a
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/it.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2020-11-25 19:48+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/akregator-desktop-files/it/>\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: Weblate 4.3.2\n"
+
+#. Name
+#: akregator.desktop:2
+msgid "Akregator"
+msgstr "Plugin per Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Lettore Fonti RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Un concentratore TDE per RSS"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr "aKregatorPart"
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Plugin per Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Backend archiviazione metakit"
diff --git a/translations/desktop_files/akregator-desktops/ja.po b/translations/desktop_files/akregator-desktops/ja.po
new file mode 100644
index 00000000..b458b7a6
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/ja.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Akregator 用プラグイン"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS ニュースリーダー"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "TDE 用 RSS アグリゲータ"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Akregator 用プラグイン"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "メタキットストレージバックエンド"
diff --git a/translations/desktop_files/akregator-desktops/kk.po b/translations/desktop_files/akregator-desktops/kk.po
new file mode 100644
index 00000000..e4988aac
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/kk.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Akregator-дың плагин модулі"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS жаңалықтарын оқу"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "TDE-нің RSS жаңалық агрегаторы"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Akregator-дың плагин модулі"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit архивтеу бағдарламасы"
diff --git a/translations/desktop_files/akregator-desktops/km.po b/translations/desktop_files/akregator-desktops/km.po
new file mode 100644
index 00000000..0e7c00ba
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/km.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "កម្មវិធី​ជំនួយ Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "កម្មវិធី​អាន​មតិព័ត៌មាន RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "កម្មវិធី​អាន RSS សម្រាប់ TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "កម្មវិធី​ជំនួយ Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "កម្មវិធី​ខាង​ក្រោយ​សម្រាប់​រក្សាទុក (Metakit)"
diff --git a/translations/desktop_files/akregator-desktops/ko.po b/translations/desktop_files/akregator-desktops/ko.po
new file mode 100644
index 00000000..6f4657b5
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/ko.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Akregator 플러그인"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS 피드 리더"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "TDE용 RSS 리더"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Akregator 플러그인"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit 저장소 백엔드"
diff --git a/translations/desktop_files/akregator-desktops/lt.po b/translations/desktop_files/akregator-desktops/lt.po
new file mode 100644
index 00000000..b32f1162
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/lt.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Akregator skirtas priedas"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS kanalų skaitytuvė"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr ""
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Akregator skirtas priedas"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit saugojimo programinė sąsaja"
diff --git a/translations/desktop_files/akregator-desktops/mk.po b/translations/desktop_files/akregator-desktops/mk.po
new file mode 100644
index 00000000..74e897d4
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/mk.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Приклучок за Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr ""
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr ""
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Приклучок за Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr ""
diff --git a/translations/desktop_files/akregator-desktops/ms.po b/translations/desktop_files/akregator-desktops/ms.po
new file mode 100644
index 00000000..182613df
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/ms.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Plugin untuk Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Pembaca Suapan RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Pengagregat RSS untuk TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Plugin untuk Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Hujung belakang storan Metakit "
diff --git a/translations/desktop_files/akregator-desktops/nb.po b/translations/desktop_files/akregator-desktops/nb.po
new file mode 100644
index 00000000..30ef462e
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/nb.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Programtillegg for Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Leser for RSS-kanal"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "En RSS-oppsamler for TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Programtillegg for Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit lagringsbakstykke"
diff --git a/translations/desktop_files/akregator-desktops/nds.po b/translations/desktop_files/akregator-desktops/nds.po
new file mode 100644
index 00000000..687c50cb
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/nds.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "aKregator-Komponent"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Kieker för RSS-Mellenströöm"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Tosamensteller för RSS-Mellenströöm vun TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr "aKregator-Komponent"
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Moduul för Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit-Archivmoduul"
diff --git a/translations/desktop_files/akregator-desktops/ne.po b/translations/desktop_files/akregator-desktops/ne.po
new file mode 100644
index 00000000..d9415e4f
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/ne.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+msgid "Akregator"
+msgstr "एक्रिगेटर"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "आरएसएस फिड रिडर"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "केडीई का लागि एउटा आरएसएस एक्रिगेटर"
+
+#. Name
+#: akregator_part.desktop:2
+#, fuzzy
+msgid "aKregatorPart"
+msgstr "एक्रिगेटर"
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "एक्रिगेटरका लागि प्लगइन"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "मेटाकिट भण्डारण ब्याकइन्ड"
diff --git a/translations/desktop_files/akregator-desktops/nl.po b/translations/desktop_files/akregator-desktops/nl.po
new file mode 100644
index 00000000..3e22f986
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/nl.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Plugin voor Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS-feedlezer"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Een RSS-agregator voor TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Plugin voor Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit-opslagbackend"
diff --git a/translations/desktop_files/akregator-desktops/nn.po b/translations/desktop_files/akregator-desktops/nn.po
new file mode 100644
index 00000000..7acf2dd4
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/nn.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Programtillegg til Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS-lesar"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Ein RSS-lesar for TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Programtillegg til Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit-lagringsbakstykke"
diff --git a/translations/desktop_files/akregator-desktops/pa.po b/translations/desktop_files/akregator-desktops/pa.po
new file mode 100644
index 00000000..7e74781e
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/pa.po
@@ -0,0 +1,47 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+msgid "Akregator"
+msgstr ""
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS ਫੀਡ ਰੀਡਰ"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr ""
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr ""
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr ""
diff --git a/translations/desktop_files/akregator-desktops/pl.po b/translations/desktop_files/akregator-desktops/pl.po
new file mode 100644
index 00000000..895d3f9e
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/pl.po
@@ -0,0 +1,49 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Jan Stolarek <jwstolarek@gmail.com>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2020-08-12 23:04+0000\n"
+"Last-Translator: Jan Stolarek <jwstolarek@gmail.com>\n"
+"Language-Team: Polish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/akregator-desktop-files/pl/>\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: Weblate 4.1.1\n"
+
+#. Name
+#: akregator.desktop:2
+msgid "Akregator"
+msgstr "Akregatora"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Program do przeglądania kanałów RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Program podsumowujący kanały RSS dla TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Wtyczka dla Akregatora"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "System przechowywania Metakit"
diff --git a/translations/desktop_files/akregator-desktops/pt.po b/translations/desktop_files/akregator-desktops/pt.po
new file mode 100644
index 00000000..b0af6275
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/pt.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "'Plugin' para o Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Leitor de Fontes RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Um Agregador RSS do TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "'Plugin' para o Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Infra-estrutura de armazenamento Metakit"
diff --git a/translations/desktop_files/akregator-desktops/pt_BR.po b/translations/desktop_files/akregator-desktops/pt_BR.po
new file mode 100644
index 00000000..7c5b89f6
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/pt_BR.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Componente do aKregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Leitor de Fontes de Notícias RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Um Agregador RSS para o TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr "Componente do aKregator"
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Plug-in para o Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Mecanismo de armazenamento Metakit"
diff --git a/translations/desktop_files/akregator-desktops/ru.po b/translations/desktop_files/akregator-desktops/ru.po
new file mode 100644
index 00000000..b0627687
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/ru.po
@@ -0,0 +1,49 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2024-04-14 11:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/akregator-desktop-files/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Name
+#: akregator.desktop:2
+msgid "Akregator"
+msgstr "Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Чтение лент новостей"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Чтение лент новостей RSS"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr "aKregatorPart"
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Модуль Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Движок Metakit"
diff --git a/translations/desktop_files/akregator-desktops/se.po b/translations/desktop_files/akregator-desktops/se.po
new file mode 100644
index 00000000..133b63a3
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/se.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Lassemoduvla Akregatorii"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS-gáldu logan"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "TDE:a RSS-logan"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Lassemoduvla Akregatorii"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr ""
diff --git a/translations/desktop_files/akregator-desktops/sk.po b/translations/desktop_files/akregator-desktops/sk.po
new file mode 100644
index 00000000..f3f3d729
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/sk.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Modul pre Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Prehliadač RSS kŕmitok"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Zhromažďovač RSS pre TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Modul pre Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr ""
diff --git a/translations/desktop_files/akregator-desktops/sl.po b/translations/desktop_files/akregator-desktops/sl.po
new file mode 100644
index 00000000..f32045d1
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/sl.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Vstavek za Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Bralnik virov RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Zbiralnik RSS za TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Vstavek za Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Shranjevanje Metakit"
diff --git a/translations/desktop_files/akregator-desktops/sr.po b/translations/desktop_files/akregator-desktops/sr.po
new file mode 100644
index 00000000..d334fb18
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/sr.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Прикључак за Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Читач RSS довода"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Сакупљач RSS довода за TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Прикључак за Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Систем за смештање Мета комплета"
diff --git a/translations/desktop_files/akregator-desktops/sr@Latn.po b/translations/desktop_files/akregator-desktops/sr@Latn.po
new file mode 100644
index 00000000..7611a1d6
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/sr@Latn.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Priključak za Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Čitač RSS dovoda"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Sakupljač RSS dovoda za TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Priključak za Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Sistem za smeštanje Meta kompleta"
diff --git a/translations/desktop_files/akregator-desktops/sv.po b/translations/desktop_files/akregator-desktops/sv.po
new file mode 100644
index 00000000..0c3588d8
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/sv.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "aKregator-delprogram"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Läsare av RSS-kanaler"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "En RSS-samlare för TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr "aKregator-delprogram"
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Insticksprogram för Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit lagringsgränssnitt"
diff --git a/translations/desktop_files/akregator-desktops/ta.po b/translations/desktop_files/akregator-desktops/ta.po
new file mode 100644
index 00000000..4419f612
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/ta.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "aKregatorபகுதி"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS பீஃட் வாசிப்பான்"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "கேடியிக்கான ஒரு RSS சேர்ப்பான்"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr "aKregatorபகுதி"
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr ""
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr ""
diff --git a/translations/desktop_files/akregator-desktops/tr.po b/translations/desktop_files/akregator-desktops/tr.po
new file mode 100644
index 00000000..79824775
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/tr.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Akregator Eklentisi"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS Haber Kaynağı Okuyucu"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Bir TDE RSS Okuyucusu"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Akregator Eklentisi"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit depolama arka ucu"
diff --git a/translations/desktop_files/akregator-desktops/uk.po b/translations/desktop_files/akregator-desktops/uk.po
new file mode 100644
index 00000000..9fd59732
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/uk.po
@@ -0,0 +1,49 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2020-08-19 19:59+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/akregator-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: akregator.desktop:2
+msgid "Akregator"
+msgstr "Akregator"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "Програма для читання подач RSS"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "Агрегатор RSS для TDE"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr "aKregatorPart"
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Втулок для Akregator"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Програма зберігання Metakit"
diff --git a/translations/desktop_files/akregator-desktops/uz.po b/translations/desktop_files/akregator-desktops/uz.po
new file mode 100644
index 00000000..32bc87f4
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/uz.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Akregator учун плагин"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS янгиликларни ўқувчи"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "TDE учун RSS янгиликларни ўқувчи"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Akregator учун плагин"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr ""
diff --git a/translations/desktop_files/akregator-desktops/zh_CN.po b/translations/desktop_files/akregator-desktops/zh_CN.po
new file mode 100644
index 00000000..0dc2857c
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/zh_CN.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Akregator 插件"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS 种子阅读器"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "TDE RSS 新闻收集器"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Akregator 插件"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit 存储后端"
diff --git a/translations/desktop_files/akregator-desktops/zh_TW.po b/translations/desktop_files/akregator-desktops/zh_TW.po
new file mode 100644
index 00000000..b1b74fb2
--- /dev/null
+++ b/translations/desktop_files/akregator-desktops/zh_TW.po
@@ -0,0 +1,48 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: akregator.desktop:2
+#, fuzzy
+msgid "Akregator"
+msgstr "Akregator 外掛程式"
+
+#. GenericName
+#: akregator.desktop:4
+msgid "RSS Feed Reader"
+msgstr "RSS Feed 閱讀器"
+
+#. Comment
+#: akregator.desktop:6
+msgid "An RSS Aggregator for TDE"
+msgstr "TDE 的 RSS 收集器"
+
+#. Name
+#: akregator_part.desktop:2
+msgid "aKregatorPart"
+msgstr ""
+
+#. Comment
+#: akregator_plugin.desktop:2 mk4storage/akregator_mk4storage_plugin.desktop:4
+msgid "Plugin for Akregator"
+msgstr "Akregator 外掛程式"
+
+#. Name
+#: mk4storage/akregator_mk4storage_plugin.desktop:2
+msgid "Metakit storage backend"
+msgstr "Metakit 儲存後端介面"
diff --git a/translations/desktop_files/akregator-eventsrc/af.po b/translations/desktop_files/akregator-eventsrc/af.po
new file mode 100644
index 00000000..8f9fdc5f
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/af.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Stroom bygevoeg"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "'n Nuwe stroom was vanaf 'n afgeleë ligging by Akregator bygevoeg."
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nuwe Artikels"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Nuwe artikels was afgelaai"
diff --git a/translations/desktop_files/akregator-eventsrc/akregator-eventsrc.pot b/translations/desktop_files/akregator-eventsrc/akregator-eventsrc.pot
new file mode 100644
index 00000000..96b20079
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/akregator-eventsrc.pot
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr ""
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr ""
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr ""
diff --git a/translations/desktop_files/akregator-eventsrc/ar.po b/translations/desktop_files/akregator-eventsrc/ar.po
new file mode 100644
index 00000000..d7c70ea8
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/ar.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr ""
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "المقالات الجديدة"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "تمّ جلب المقالات الجديدة"
diff --git a/translations/desktop_files/akregator-eventsrc/be.po b/translations/desktop_files/akregator-eventsrc/be.po
new file mode 100644
index 00000000..3c08f189
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/be.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr ""
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Новыя артыкулы"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr ""
diff --git a/translations/desktop_files/akregator-eventsrc/bg.po b/translations/desktop_files/akregator-eventsrc/bg.po
new file mode 100644
index 00000000..076bd045
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/bg.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Добавена е новина"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Отдалечено е добавена нова новина към Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Нови статии"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Пристигнали са нови статии"
diff --git a/translations/desktop_files/akregator-eventsrc/br.po b/translations/desktop_files/akregator-eventsrc/br.po
new file mode 100644
index 00000000..415f70e5
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/br.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr ""
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Pennadoù nevez"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr ""
diff --git a/translations/desktop_files/akregator-eventsrc/ca.po b/translations/desktop_files/akregator-eventsrc/ca.po
new file mode 100644
index 00000000..c658885c
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/ca.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Enllaç afegit"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "S'ha afegit remotament un enllaç a l'Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nous articles"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "S'han obtingut nous articles"
diff --git a/translations/desktop_files/akregator-eventsrc/cs.po b/translations/desktop_files/akregator-eventsrc/cs.po
new file mode 100644
index 00000000..ab19de97
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/cs.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: 2020-09-20 18:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/akregator-events/cs/>\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: Weblate 4.2.2\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr "Akregator"
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Přidán kanál"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Do Akregatoru byl vzdáleně přidán nový kanál"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nové články"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Byly staženy nové články"
diff --git a/translations/desktop_files/akregator-eventsrc/da.po b/translations/desktop_files/akregator-eventsrc/da.po
new file mode 100644
index 00000000..26d7e75d
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/da.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr "Akregator Plugin"
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Kilde tilføjet"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "En ny kilde blev tilføjet eksternt til Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nye artikler"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Nye artikler blev hentet"
diff --git a/translations/desktop_files/akregator-eventsrc/de.po b/translations/desktop_files/akregator-eventsrc/de.po
new file mode 100644
index 00000000..168cc51e
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/de.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Nachrichtenquelle hinzugefügt"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Eine neue Nachrichtenquelle wurde von extern zu Akregator hinzugefügt"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Neue Artikel"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Neue Artikel wurden abgeholt"
diff --git a/translations/desktop_files/akregator-eventsrc/el.po b/translations/desktop_files/akregator-eventsrc/el.po
new file mode 100644
index 00000000..1a87da47
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/el.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Προστέθηκε ροή"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Μια νέα ροή προστέθηκε απομακρυσμένα στο Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Άρθρα νέων"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Έφτασαν νέα άρθρα"
diff --git a/translations/desktop_files/akregator-eventsrc/eo.po b/translations/desktop_files/akregator-eventsrc/eo.po
new file mode 100644
index 00000000..c4a286e4
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/eo.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Fluo aldonita"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Novaj Artikoloj"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Novaj artikoloj estis alprenataj"
diff --git a/translations/desktop_files/akregator-eventsrc/es.po b/translations/desktop_files/akregator-eventsrc/es.po
new file mode 100644
index 00000000..ba9fa342
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/es.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Origen añadido"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Se ha añadido remotamente un origen a Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Artículos nuevos"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Se obtuvieron los artículos nuevos"
diff --git a/translations/desktop_files/akregator-eventsrc/et.po b/translations/desktop_files/akregator-eventsrc/et.po
new file mode 100644
index 00000000..0b6caf48
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/et.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Uudisevoog lisatud"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Akregatorile lisati väljastpoolt uus uudisevoog"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Uued artiklid"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Tõmmati uued artiklid"
diff --git a/translations/desktop_files/akregator-eventsrc/eu.po b/translations/desktop_files/akregator-eventsrc/eu.po
new file mode 100644
index 00000000..05e94816
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/eu.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Iturria gehituta"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Iturri berri bat gehitu da urrunetik Akregator-era"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Artikulu berriak"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Artikulu berriak eskuratu dira"
diff --git a/translations/desktop_files/akregator-eventsrc/fa.po b/translations/desktop_files/akregator-eventsrc/fa.po
new file mode 100644
index 00000000..ad41b7b8
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/fa.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "خوراندن اضافه‌شده"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "خوراندن جدیدی که به صورت دور به Akregator اضافه شد"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "مقالات جدید"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "مقالات جدید واکشی شدند"
diff --git a/translations/desktop_files/akregator-eventsrc/fi.po b/translations/desktop_files/akregator-eventsrc/fi.po
new file mode 100644
index 00000000..805e3072
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/fi.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Syöte lisätty"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Uusi syöte lisättiin Akregatoriin ulkopuolelta"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Uudet artikkelit"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Uutta postia saapunut"
diff --git a/translations/desktop_files/akregator-eventsrc/fr.po b/translations/desktop_files/akregator-eventsrc/fr.po
new file mode 100644
index 00000000..08b1fb48
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/fr.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Flux ajouté"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Un flux a été ajouté à distance à Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nouveaux articles"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Les nouveaux articles ont été relevés"
diff --git a/translations/desktop_files/akregator-eventsrc/fy.po b/translations/desktop_files/akregator-eventsrc/fy.po
new file mode 100644
index 00000000..30a12a52
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/fy.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Nijsoanfier taheakke"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Der wie ekstern nije nijsoanfier taheakke oan Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nije artikels"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Nije artikels binne ophelle"
diff --git a/translations/desktop_files/akregator-eventsrc/ga.po b/translations/desktop_files/akregator-eventsrc/ga.po
new file mode 100644
index 00000000..8213ddc3
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/ga.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Cuireadh fotha leis"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Altanna Nua"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Fuarthas ailt nua"
diff --git a/translations/desktop_files/akregator-eventsrc/gl.po b/translations/desktop_files/akregator-eventsrc/gl.po
new file mode 100644
index 00000000..055e44fa
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/gl.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Engadiuse unha fonte"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Engadiuse remotamente unha nova fonte a Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Novos Artigos"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Obtivéronse novos artigos"
diff --git a/translations/desktop_files/akregator-eventsrc/he.po b/translations/desktop_files/akregator-eventsrc/he.po
new file mode 100644
index 00000000..ce915da6
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/he.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "נוסף ערוץ"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "נוסף ערוץ ל־Akregator מרחוק"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "מאמרים חדשים"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "הורדו מאמרים נוספים"
diff --git a/translations/desktop_files/akregator-eventsrc/hu.po b/translations/desktop_files/akregator-eventsrc/hu.po
new file mode 100644
index 00000000..157d9129
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/hu.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Hírforrás felvéve"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Egy hírforrást távolról felvettek az Akregatorba"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Hírekk"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Új hírek lettek letöltve"
diff --git a/translations/desktop_files/akregator-eventsrc/is.po b/translations/desktop_files/akregator-eventsrc/is.po
new file mode 100644
index 00000000..6523df61
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/is.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Straum bætt við"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Nýjum straum var bætt við Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nýjar greinar"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Nýjar greinar voru sóttar"
diff --git a/translations/desktop_files/akregator-eventsrc/it.po b/translations/desktop_files/akregator-eventsrc/it.po
new file mode 100644
index 00000000..d516a184
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/it.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: 2020-11-25 19:48+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/akregator-events/it/>\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: Weblate 4.3.2\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr "Akregator"
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Aggiunta fonte"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Una nuova fonte è stata aggiunta ad Akregator da remoto"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nuovi articoli"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "I nuovi articoli sono stati recuperati"
diff --git a/translations/desktop_files/akregator-eventsrc/ja.po b/translations/desktop_files/akregator-eventsrc/ja.po
new file mode 100644
index 00000000..832604fc
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/ja.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "フィード追加"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "新規フィードがリモートで Akregator に追加されました"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "新規記事"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "新規記事を取得しました"
diff --git a/translations/desktop_files/akregator-eventsrc/kk.po b/translations/desktop_files/akregator-eventsrc/kk.po
new file mode 100644
index 00000000..f3b56126
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/kk.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Қор қосылды"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Akregator-ға қашықтан жаңа қор қосылды"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Жаңа мақалалар"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Жаңа мақалалар қабылданды"
diff --git a/translations/desktop_files/akregator-eventsrc/km.po b/translations/desktop_files/akregator-eventsrc/km.po
new file mode 100644
index 00000000..3f85827c
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/km.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "បាន​បន្ថែម​មតិព័ត៌មាន"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "បាន​បន្ថែម​មតិព័ត៌មាន​ថ្មី​មួយ​ពី​ចម្ងាយ​ទៅ Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "អត្ថបទ​ថ្មី"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "បាន​ប្រមូល​អត្ថបទ​ថ្មី"
diff --git a/translations/desktop_files/akregator-eventsrc/ko.po b/translations/desktop_files/akregator-eventsrc/ko.po
new file mode 100644
index 00000000..3b35a0ee
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/ko.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "피드 추가됨"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Akregator에 피드가 원격으로 추가됨"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "새 글"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "새 글을 가져옴"
diff --git a/translations/desktop_files/akregator-eventsrc/lt.po b/translations/desktop_files/akregator-eventsrc/lt.po
new file mode 100644
index 00000000..4df50774
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/lt.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Kanalas pridėtas"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Naujas nutolęs naujienų kanalas buvo įdėtas į Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nauji straipsniai"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Nauji straipsniai parsiųsti"
diff --git a/translations/desktop_files/akregator-eventsrc/mk.po b/translations/desktop_files/akregator-eventsrc/mk.po
new file mode 100644
index 00000000..ab2034fb
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/mk.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr ""
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Нови написи"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Беа земени нови написи"
diff --git a/translations/desktop_files/akregator-eventsrc/ms.po b/translations/desktop_files/akregator-eventsrc/ms.po
new file mode 100644
index 00000000..bc901005
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/ms.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Suapan ditambah"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Suapan baru ditambah dari jauh kepada Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Artikel Baru"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Artikel baru telah dikutip"
diff --git a/translations/desktop_files/akregator-eventsrc/nb.po b/translations/desktop_files/akregator-eventsrc/nb.po
new file mode 100644
index 00000000..ccd1efc3
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/nb.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Kanal lagt til"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "En ny kanal ble lagt til Akgregator utenfra "
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nye artikler"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Nye artikler ble hentet"
diff --git a/translations/desktop_files/akregator-eventsrc/nds.po b/translations/desktop_files/akregator-eventsrc/nds.po
new file mode 100644
index 00000000..916e8840
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/nds.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Narichtenstroom toföögt"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "En nieg Stroom wöör Akregator vun buten toföögt"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Niege Artikeln"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Niege Artikeln wöörn haalt"
diff --git a/translations/desktop_files/akregator-eventsrc/ne.po b/translations/desktop_files/akregator-eventsrc/ne.po
new file mode 100644
index 00000000..53e456c7
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/ne.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr "एक्रिगेटर"
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "फिड थपियो"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "एक्रिगेटरमा एउटा नयाँ फिड टाढाबाट थपिएको थियो"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "नयाँ लेख"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "नयाँ लेख तानिएका थिय"
diff --git a/translations/desktop_files/akregator-eventsrc/nl.po b/translations/desktop_files/akregator-eventsrc/nl.po
new file mode 100644
index 00000000..42876e10
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/nl.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Feed toegevoegd"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Er was extern een nieuwe feed toegevoegd aan Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nieuwe artikelen"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Nieuw artikelen zijn opgehaald"
diff --git a/translations/desktop_files/akregator-eventsrc/nn.po b/translations/desktop_files/akregator-eventsrc/nn.po
new file mode 100644
index 00000000..1f159360
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/nn.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Kanal lagd til"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Ein ny kanal vart lagd til Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nye artiklar"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Nye artiklar vart henta"
diff --git a/translations/desktop_files/akregator-eventsrc/pl.po b/translations/desktop_files/akregator-eventsrc/pl.po
new file mode 100644
index 00000000..45340bb5
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/pl.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Kanał dodany"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Nowy kanał został zdalnie dodany do Akregatora"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nowe artykuły"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Pobrano nowe artykuły"
diff --git a/translations/desktop_files/akregator-eventsrc/pt.po b/translations/desktop_files/akregator-eventsrc/pt.po
new file mode 100644
index 00000000..d81da693
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/pt.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Fonte adicionada"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Foi adicionada remotamente uma nova fonte ao Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Novos Artigos"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Foram recebidos novos artigos"
diff --git a/translations/desktop_files/akregator-eventsrc/pt_BR.po b/translations/desktop_files/akregator-eventsrc/pt_BR.po
new file mode 100644
index 00000000..85c72d57
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/pt_BR.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Fonte de notícias adicionada"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Uma nova fonte de notícias foi adicionada remotamente ao Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Novos Artigos"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Há novos artigos disponíveis"
diff --git a/translations/desktop_files/akregator-eventsrc/ru.po b/translations/desktop_files/akregator-eventsrc/ru.po
new file mode 100644
index 00000000..39fdcc50
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/ru.po
@@ -0,0 +1,44 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: 2024-03-29 02:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/akregator-events/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr "Akregator"
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Лента новостей добавлена"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Новая лента новостей добавлена в список Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Новые статьи"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Получены новые статьи"
diff --git a/translations/desktop_files/akregator-eventsrc/se.po b/translations/desktop_files/akregator-eventsrc/se.po
new file mode 100644
index 00000000..79c2e764
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/se.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Gáldu lasihuvvon"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Ođđa gáldu lasihuvvui Akregatorii"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Ođđa artihkkalat"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Ođđa artihkkalat vižžon"
diff --git a/translations/desktop_files/akregator-eventsrc/sk.po b/translations/desktop_files/akregator-eventsrc/sk.po
new file mode 100644
index 00000000..8ed14081
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/sk.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Kŕmitko pridané"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Nové kŕmitko bolo vzdialene pridané do Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nový článok"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Získali sa nové články"
diff --git a/translations/desktop_files/akregator-eventsrc/sl.po b/translations/desktop_files/akregator-eventsrc/sl.po
new file mode 100644
index 00000000..6ade2f6c
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/sl.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Vir je dodan"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Nov vir je bil oddaljeno dodan v Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Novi članki"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Povlečeni so bili novi članki"
diff --git a/translations/desktop_files/akregator-eventsrc/sr.po b/translations/desktop_files/akregator-eventsrc/sr.po
new file mode 100644
index 00000000..b747c323
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/sr.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Довод је додат"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Нови довод је удаљено додат у Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Нови чланци"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Добављени су нови чланци"
diff --git a/translations/desktop_files/akregator-eventsrc/sr@Latn.po b/translations/desktop_files/akregator-eventsrc/sr@Latn.po
new file mode 100644
index 00000000..4c9eb149
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/sr@Latn.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Dovod je dodat"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Novi dovod je udaljeno dodat u Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Novi članci"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Dobavljeni su novi članci"
diff --git a/translations/desktop_files/akregator-eventsrc/sv.po b/translations/desktop_files/akregator-eventsrc/sv.po
new file mode 100644
index 00000000..b60a9055
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/sv.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr "aKregator"
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Kanal tillagd"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "En ny kanal har lagts till i aKregator utifrån"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Nya artiklar"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Nya artiklar har hämtats"
diff --git a/translations/desktop_files/akregator-eventsrc/ta.po b/translations/desktop_files/akregator-eventsrc/ta.po
new file mode 100644
index 00000000..63f68863
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/ta.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "பீஃட் சேர்க்கப்பட்டது"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Akregatorக்கு ஒரு புதிய உள்ளீடு சேர்க்கப்பட்டது"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "புதிய செய்திகள்"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "புதிய கட்டுரைகள் கொண்டுவரப்பட்டது"
diff --git a/translations/desktop_files/akregator-eventsrc/tr.po b/translations/desktop_files/akregator-eventsrc/tr.po
new file mode 100644
index 00000000..b1e1bd67
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/tr.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Haber kaynağı eklendi"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Akregator'a yeni bir haber kaynağı eklendi"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Yeni Haberler"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Yeni haberler alındı"
diff --git a/translations/desktop_files/akregator-eventsrc/uk.po b/translations/desktop_files/akregator-eventsrc/uk.po
new file mode 100644
index 00000000..f3a69145
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/uk.po
@@ -0,0 +1,44 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: 2020-08-19 19:59+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/akregator-events/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr "Akregator"
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Подачу додано"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Нову подачу було віддалено додано до Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Нові статті"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "Отримано нові статті"
diff --git a/translations/desktop_files/akregator-eventsrc/uz.po b/translations/desktop_files/akregator-eventsrc/uz.po
new file mode 100644
index 00000000..1a680e78
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/uz.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "Янгиликлар тасмаси қўшилди"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "Akregator дастурига янги янгиликлар тасмаси қўшилди"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "Янги мақолалар"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr ""
diff --git a/translations/desktop_files/akregator-eventsrc/zh_CN.po b/translations/desktop_files/akregator-eventsrc/zh_CN.po
new file mode 100644
index 00000000..cfe88bda
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/zh_CN.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "添加了新闻源"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "新闻源远程添加进了 Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "新闻文章"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "获取了新文章"
diff --git a/translations/desktop_files/akregator-eventsrc/zh_TW.po b/translations/desktop_files/akregator-eventsrc/zh_TW.po
new file mode 100644
index 00000000..e487d818
--- /dev/null
+++ b/translations/desktop_files/akregator-eventsrc/zh_TW.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 04:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "Akregator"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "Feed added"
+msgstr "已加入 Feed"
+
+#. Comment
+#: eventsrc:7
+msgid "A new feed was remotely added to Akregator"
+msgstr "已從遠端加入新的 feed 到 Akregator"
+
+#. Name
+#: eventsrc:11
+msgid "New Articles"
+msgstr "新文章"
+
+#. Comment
+#: eventsrc:12
+msgid "New articles were fetched"
+msgstr "已抓到新文章"
diff --git a/translations/desktop_files/certmanager-desktops/af.po b/translations/desktop_files/certmanager-desktops/af.po
new file mode 100644
index 00000000..6a0326d8
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/af.po
@@ -0,0 +1,103 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Kleur en skrif tipe opstelling"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "kleur;skrif tipe;opstelling;color;font;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+#, fuzzy
+msgid "Directory Services"
+msgstr "ldap;directory;services;gids;"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Opstelling van LDAP gids diens"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;directory;services;gids;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Stel die volgorde op waarin DN eienskappe vertoon word"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;order;RDN;attribute;volgorde;eienskap;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Sleutel nie bevestig nie"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Sleutel het verval"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Sleutel was herroep"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Vertroude 'Root' sertifikaat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Nie vertroude 'root' sertifikaat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Ander Sleutels"
diff --git a/translations/desktop_files/certmanager-desktops/ar.po b/translations/desktop_files/certmanager-desktops/ar.po
new file mode 100644
index 00000000..98cef7df
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/ar.po
@@ -0,0 +1,103 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "المظهر"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "إعدادات الألوان و المحارف"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "لون;حرف; إعدادات;محرف;ألوان;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "خدمات الدليل"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+#, fuzzy
+msgid "ldap;directory;services;"
+msgstr "خدمات الدليل"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "كليوبترا"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "شهادة جذر موثوق بها"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "شهادة جذر غير موثوق بها"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "مفاتيح آخرى"
diff --git a/translations/desktop_files/certmanager-desktops/be.po b/translations/desktop_files/certmanager-desktops/be.po
new file mode 100644
index 00000000..f6490d39
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/be.po
@@ -0,0 +1,103 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Знешні выгляд"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Настаўленні колераў і шрыфтоў"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "колер; шрыфт; канфігурацыя; color; font; configuration;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+#, fuzzy
+msgid "Directory Services"
+msgstr "каталёг;сэрвісы;ldap;directory;services;"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "каталёг;сэрвісы;ldap;directory;services;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "парадак;атрыбут;DN;order;RDN;attribute;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/bg.po b/translations/desktop_files/certmanager-desktops/bg.po
new file mode 100644
index 00000000..a3f0019d
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/bg.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Външен вид"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Настройки на цветовете и шрифтовете"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "цвят; шрифт; настройване; настройки color; font; configuration;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Директорийни услуги"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Настройки на директорийните услуги LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "директорийни; услуги; ldap; directory; services;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Подредба"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Настройки на подредбата на атрибутите на индекса (DN)"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "индекс; ред; подредба; атрибут DN; order; RDN; attribute;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Непроверен ключ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Изтекъл ключ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Анулиран ключ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Надеждно удостоверение"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Ненадеждно удостоверение"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Други ключове"
diff --git a/translations/desktop_files/certmanager-desktops/br.po b/translations/desktop_files/certmanager-desktops/br.po
new file mode 100644
index 00000000..45fd7995
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/br.po
@@ -0,0 +1,104 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Neuziadur"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+#, fuzzy
+msgid "Colors & Fonts Configuration"
+msgstr "liv;nodrezh; kefluniadur;"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "liv;nodrezh; kefluniadur;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+#, fuzzy
+msgid "Directory Services"
+msgstr "ldap;renkell;servijeroù;"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;renkell;servijeroù;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Alc'hwez kabac'het"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Alc'hwezioù all"
diff --git a/translations/desktop_files/certmanager-desktops/bs.po b/translations/desktop_files/certmanager-desktops/bs.po
new file mode 100644
index 00000000..57315d56
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/bs.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Izgled"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Podešavanje boja i fontova"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "color;font; configuration;boja;boje;font;podešavanje;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Imenički servisi"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Podešavanje LDAP usluge imenika"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;directory;services;imenik;servis;usluga;imenički;imeničke;usluge;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Redoslijed DN atributa"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Podesite redoslijed kojim će biti prikazani DN atributi"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;order;RDN;attribute;redoslijed;atribut;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Upravitelj certifikata i grafičko okruženje za Unified Crypto"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/ca.po b/translations/desktop_files/certmanager-desktops/ca.po
new file mode 100644
index 00000000..bd79b43a
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/ca.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Aparença"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Configuració de colors i lletres"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "color;lletres; configuració;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Serveis de directori"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Configuració dels serveis de directori LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;directori;serveis;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Ordre d'atributs DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Configura l'ordre en què es mostren els atributs DN"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;ordre;RDN;atribut;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Gestor de certificats i IGU criptogràfica unificada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Clau no validada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Clau expirada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Clau revocada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Certificat arrel de confiança"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Certificat arrel sense confiança"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Altres claus"
diff --git a/translations/desktop_files/certmanager-desktops/ca@valencia.po b/translations/desktop_files/certmanager-desktops/ca@valencia.po
new file mode 100644
index 00000000..4a708b44
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/ca@valencia.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca@valencia\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Gestor de certificats i IGU criptogràfica unificada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/certmanager-desktops.pot b/translations/desktop_files/certmanager-desktops/certmanager-desktops.pot
new file mode 100644
index 00000000..49e3c23a
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/certmanager-desktops.pot
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr ""
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/cs.po b/translations/desktop_files/certmanager-desktops/cs.po
new file mode 100644
index 00000000..885a4e08
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/cs.po
@@ -0,0 +1,103 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/kleopatra-desktop-files/cs/>\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: Weblate 4.8.1\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Vzhled"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Nastavení barev a písem"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "barva;písmo;nastavení;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Adresářové služby"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Nastavení adresářových služeb LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "LDAP;adresář;služby;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Pořadí DN atributů"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Nastavení pořadí zobrazení DN atributů"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;pořadí;RDN;atribut;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Správce certifikátů a rozhraní pro šifrování"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Nevalidovaný klíč"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Klíč s prošlou platností"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Odvolaný klíč"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Důvěryhodný kořenový certifikát"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Nedůvěryhodný kořenový certifikát"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Ostatní klíče"
diff --git a/translations/desktop_files/certmanager-desktops/cy.po b/translations/desktop_files/certmanager-desktops/cy.po
new file mode 100644
index 00000000..263d633c
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/cy.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Golwg"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/da.po b/translations/desktop_files/certmanager-desktops/da.po
new file mode 100644
index 00000000..be86633a
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/da.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Udseende"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Indstilling af farver & skrifttype"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "farve;skrifttype;indstilling;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Opslagstjeneste"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Indstilling af LDAP opslagstjeneste"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;opslag;tjenester;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-Attributrækkefølge"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Indstil rækkefølgen i hvilken DN-attributter vises"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;rækkefølge;RDN;attribut;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Certifikathåndtering og forenet krypterings-GUI"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Ikke godkendt nøgle"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Udløbet nøgle"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Fjernet nøgle"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Root-certifikat der stoles på"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Root-certifikat der ikke stoles på"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Andre nøgler"
diff --git a/translations/desktop_files/certmanager-desktops/de.po b/translations/desktop_files/certmanager-desktops/de.po
new file mode 100644
index 00000000..13d6dd8a
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/de.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Erscheinungsbild"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Farb- & Schrifteneinrichtung"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "Farben;Schriftarten;Konfiguration;Einrichtung;Einstellungen;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Verzeichnisdienste"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Einrichtung von LDAP-Verzeichnisdiensten"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "LDAP;Verzeichnis;Dienste;Verzeichnisdienst;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-Attribut-Ordnung"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Einrichtung für die Anzeigereihenfolge der DN-Attribute"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;Ordnung;RDN;Attribut;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Zertifikatsverwaltung und Kryptografie-Oberfläche"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Ungeprüfter Schlüssel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Abgelaufener Schlüssel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Widerrufener Schlüssel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Vertrauenswürdiges Stammzertifikat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Nicht vertrauenswürdiges Stammzertifikat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Andere Schlüssel"
diff --git a/translations/desktop_files/certmanager-desktops/el.po b/translations/desktop_files/certmanager-desktops/el.po
new file mode 100644
index 00000000..a25d6df9
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/el.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Εμφάνιση"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Ρύθμιση χρωμάτων & γραμματοσειρών"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "χρώμα;γραμματοσειρά; ρύθμιση;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Υπηρεσίες καταλόγου"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Ρυθμίσεις των υπηρεσιών καταλόγου LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;κατάλογος;υπηρεσίες;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Σειρά ιδιότητας DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Ρύθμιση της σειράς εμφάνισης των ιδιοτήτων DN"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;σειρά;RDN;ιδιότητα;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Περιβάλλον διαχείρισης πιστοποιητικών και ενοποιημένης κρυπτογράφησης"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Μη επικυρωμένο κλειδί"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Ληγμένο κλειδί"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Ακυρωμένο κλειδί"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Έμπιστο βασικό πιστοποιητικό"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Μη έμπιστο βασικό πιστοποιητικό"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Άλλα κλειδιά"
diff --git a/translations/desktop_files/certmanager-desktops/en_GB.po b/translations/desktop_files/certmanager-desktops/en_GB.po
new file mode 100644
index 00000000..dda7ddf5
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/en_GB.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: en_GB\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Colours & Fonts Configuration"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "colour;font; configuration;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Certificate Manager and Unified Crypto GUI"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/eo.po b/translations/desktop_files/certmanager-desktops/eo.po
new file mode 100644
index 00000000..f86f5efd
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/eo.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Prezentado"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Kolora kaj Tipara Agordo"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "koloro;tiparo; agordo;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Dosierujaj Servoj"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Agordo de LDAP dosierujaj servoj"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;dosierujo;servoj;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-Atributa Sinsekvo"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Agordi la sinsekvon en kiu DN-atributoj aperas"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;sinsekvo;ordo;RDN;atributo;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Ŝlosilo Ne Validigita"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Ŝlosilo Eksvalidiĝinta"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Ŝlosilo Revokita"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Fidinda Radika Certifikato"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Ne Fidinda Radika Certifikato"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Aliaj Ŝlosiloj"
diff --git a/translations/desktop_files/certmanager-desktops/es.po b/translations/desktop_files/certmanager-desktops/es.po
new file mode 100644
index 00000000..2a32ccc6
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/es.po
@@ -0,0 +1,103 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Apariencia"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Configuración de colores y tipografías"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "color; tipografía; configuración;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Servicios de directorio"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Configuración de los servicios de directorio LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;directorio;servicios;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Orden de atributos DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Configura el orden en el que se muestran los atributos DN"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;orden;RDN;atributo;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+"Gestor de certificados e interfaz gráfica de usuario unificada de cifrado"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Clave no validada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Clave caducada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Clave revocada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Certificado raíz de confianza"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Certificado raíz no de confianza"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Otras claves"
diff --git a/translations/desktop_files/certmanager-desktops/et.po b/translations/desktop_files/certmanager-desktops/et.po
new file mode 100644
index 00000000..d116b2fc
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/et.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Välimus"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Värvide ja fontide seadistamine"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "värv; font; seadistamine;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Kataloogiteenused"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "LDAP kataloogiteenuste seadistused"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;kataloog;teenused;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-atribuutide järjekord"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "DN-atribuutide näitamise järjekorra seadistamine"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;järjekord;RDN;atribuut;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Sertifikaadihaldur ja ühendatud krüptimise graafiline kasutajaliides"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Võtme ehtsus kontrollimatu"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Aegunud võti"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Tühistatud võti"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Usaldusväärne juursertifikaat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Ebausaldusväärne juursertifikaat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Muud võtmed"
diff --git a/translations/desktop_files/certmanager-desktops/eu.po b/translations/desktop_files/certmanager-desktops/eu.po
new file mode 100644
index 00000000..9adb67e2
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/eu.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Itxura"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Kolore eta letra-tipoen konfigurazioa"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "kolore;letra-tipo; konfigurazioa;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Direktorio zerbitzuak"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "LDAP direktorio zerbitzuen konfigurazioa"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "Idap; direktorio; zerbitzuak;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-atributu ordena"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Konfiguratu DN atributuak zein ordenetan erakutsiko diren"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN; ordena; RDN; atributua;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Balidatu gabeko gakoa"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Iraungitako gakoa"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Errebokatutako gakoa"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Konfidantzazko erro ziurtagiria"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Konfidantza gabeko erro ziurtagiria"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Beste gakoak"
diff --git a/translations/desktop_files/certmanager-desktops/fa.po b/translations/desktop_files/certmanager-desktops/fa.po
new file mode 100644
index 00000000..070a5852
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/fa.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "ظاهر"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "پیکربندی رنگها و قلمها"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "رنگ، قلم، پیکربندی;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "خدمات فهرست راهنما"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "پیکربندی خدمات فهرست راهنمای LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap، فهرست راهنما، خدمات;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "ترتیب خصیصۀ DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "پیکربندی ترتیبی که خصیصه‌های DN طبق آن نمایش داده می‌شوند"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN، ترتیب، RDN، خصیصه;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr ""
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "کلید بدون اعتبار"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "کلید منقضی"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "کلید لغو‌شده"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "گواهی‌نامۀ معتبر کاربر ارشد"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "گواهی‌نامۀ بدون اعتبار کاربر ارشد"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "کلیدهای دیگر"
diff --git a/translations/desktop_files/certmanager-desktops/fi.po b/translations/desktop_files/certmanager-desktops/fi.po
new file mode 100644
index 00000000..58730f48
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/fi.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Ulkoasu"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Värien ja kirjasinten asetukset"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "värit;kirjasimet;asetukset;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Hakemistopalvelut"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Hakemistopalveluiden asetukset"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;hakemisto;palvelut;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-attribuuttien järjestys"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Määrittele missä järjestyksessä DN-attribuutit näytetään"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;järjestys;RDN;attribuutti;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Varmenteiden hallinta ja yhtenäinen salauskäyttöliittymä"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Varmistamaton avain"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Vanhentunut avain"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Peruutettu avain"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Luotettu juurivarmenne"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Ei-luotettu juurivarmenne"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Muut avaimet"
diff --git a/translations/desktop_files/certmanager-desktops/fr.po b/translations/desktop_files/certmanager-desktops/fr.po
new file mode 100644
index 00000000..c251515d
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/fr.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Apparence"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Configuration des polices et des couleurs"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "couleur;police;configuration;paramètres;réglages;couleurs;polices;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Services de répertoires"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Configuration des répertoires LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;dossier;dossiers;service;services;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Ordre des attributs DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Configurer l'ordre dans lequel les attributs DN sont affichés"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;ordre;RDN;attribut;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Interface de gestion des certificats et cryptographie unifiée"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Clé non validée"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Clé expirée"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Clé révoquée"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Certificat racine de confiance"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Certificat racine non fiable"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Autres clés"
diff --git a/translations/desktop_files/certmanager-desktops/fy.po b/translations/desktop_files/certmanager-desktops/fy.po
new file mode 100644
index 00000000..b0a04418
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/fy.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Uterlik"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Kleur- en lettertype-ynstellings"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "kleur;kleuren;font;lettertype;konfiguraasje;ynstellings;setup;opset;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Maptsjinsten"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Konfiguraasje foar LDAP-tsjinsten"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;directory;services;triemtafel;tsjinsten;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-Attribuutoarder"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "De folchoarder fan de DN-atributen ynstelle"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;Fochoarder;RDN;attribuut;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Net falidearre kaai"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Ferrûne kaai"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Ynlutsen kaai"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Fertroude haadsertifikaat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Net fertroude haadsertifikaat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Oare kaaien"
diff --git a/translations/desktop_files/certmanager-desktops/ga.po b/translations/desktop_files/certmanager-desktops/ga.po
new file mode 100644
index 00000000..c1eb7bd2
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/ga.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Cuma"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Cumraíocht na nDathanna/gClófhoirne"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "dath;cló;cumraíocht;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Seirbhísí Eolaire"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;eolaire;seirbhísí;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;ord;RDN;aitreabúid;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Eochracha Eile"
diff --git a/translations/desktop_files/certmanager-desktops/gl.po b/translations/desktop_files/certmanager-desktops/gl.po
new file mode 100644
index 00000000..cfc3b889
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/gl.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Apariencia"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Configuración de Cores e Fontes"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "cor;fonte; configuración;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Servicios de Directorio"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Configuración dos servicios de directorio LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;directorio;servicios;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Orde de DN-Attribute"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Configurar a orde en que se amosan os atributos DN"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;orde;RDN;atributo;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Xestor de certificados e interface gráfica unificada de criptografí­a"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Non hai Chave Validada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Chave caducada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Chave revocada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Certificado raiz autentificado"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Certificado raiz non autentificado"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Outras chaves"
diff --git a/translations/desktop_files/certmanager-desktops/he.po b/translations/desktop_files/certmanager-desktops/he.po
new file mode 100644
index 00000000..081f787c
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/he.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "מראה"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "תצורת צבעים וגופנים"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "color;font; configuration;צבע;צבעים; גופנים; גופן; תצורה; הגדרה;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "שירותי ספרייה"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "תצורה של שירותי ספרייה עבור LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;directory;services;ספרייה;שירותים;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "סדר של מאפייני DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "הגדרה של הסדר שבהם מאפייני DN מוצגים"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;order;RDN;attribute; סדר; מאפיין;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "מפתח לא מוודא"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "מפתח לא תקף"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "מפתח לא קביל"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "מפתחות אחרים"
diff --git a/translations/desktop_files/certmanager-desktops/hr.po b/translations/desktop_files/certmanager-desktops/hr.po
new file mode 100644
index 00000000..2317afe8
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/hr.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Izgled"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr ""
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/hu.po b/translations/desktop_files/certmanager-desktops/hu.po
new file mode 100644
index 00000000..54cb43d7
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/hu.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Megjelenés"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "A színek és betűtípusok beállítása"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "szín;betűtípus;beállítások;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Címtárszolgáltatások"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Az LDAP címtárszolgáltatások beállításai"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;címtár;szolgáltatások;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-attribútumsorrend"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "A DN-attribútumok megjelenítési sorrendjének beállítása"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;sorrend;RDN;attribútum;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Tanúsítványkezelő és egységes kriptográfiai kezelőfelület"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Nem ellenőrzött kulcs"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Lejárt kulcs"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Visszavont kulcs"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Megbízható gyökértanúsítvány"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Nem megbízható gyökértanúsítvány"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Egyéb kulcsok"
diff --git a/translations/desktop_files/certmanager-desktops/ia.po b/translations/desktop_files/certmanager-desktops/ia.po
new file mode 100644
index 00000000..78b346db
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/ia.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ia\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Gerente de certificatos e interfacie unificate de Crypto"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/is.po b/translations/desktop_files/certmanager-desktops/is.po
new file mode 100644
index 00000000..c9ddca17
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/is.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Útlit"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Stilling lita & leturgerða"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "litir;letur; stillingar;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Nafnaþjónustur"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Stillingar LDAP uppflettingaþjónustunnar"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;directory;services;nafnaþjónusta;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN eiginleikaröðun"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Stilla röð DN eiginleikanna"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;röð;order;RDN;attribute;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleópatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Ekki staðfestur lykill"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Útrunninn lykill"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Afturkallaður lykill"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Treyst rótarskilríki"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Ekki traust rótarskilríki"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Aðrir lyklar"
diff --git a/translations/desktop_files/certmanager-desktops/it.po b/translations/desktop_files/certmanager-desktops/it.po
new file mode 100644
index 00000000..205fcc31
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/it.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Aspetto"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Configurazione tipi di carattere e colori"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "colori; font; caratteri; configurazione;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Servizi Directory"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Configurazione servizi LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap; servizi; directory;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Attributi DN, ordine"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Configura l'ordine in cui sono mostrati gli attributi DN"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;ordine;RDN;attributi;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Gestore di certificati e interfaccia grafica unificata di crittografia"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Chiave non convalidata"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Chiave scaduta"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Chiave revocata"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Certificato radice affidabile"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Certificato radice non affidabile"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Altre chiavi"
diff --git a/translations/desktop_files/certmanager-desktops/ja.po b/translations/desktop_files/certmanager-desktops/ja.po
new file mode 100644
index 00000000..f282ba1c
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/ja.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "外観"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "色とフォントの設定"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "色;フォント;設定;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "ディレクトリサービス"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "LDAP ディレクトリサービスの設定"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;ディレクトリ;サービス;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN 属性順位"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "DN 属性を表示する順位を設定"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;順位;RDN;属性;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "証明書マネージャと、統合された暗号 GUI"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "認証されていない鍵"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "期限切れの鍵"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "破棄された鍵"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "信頼されたルート証明書"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "信頼されてないルート証明書"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "他の鍵"
diff --git a/translations/desktop_files/certmanager-desktops/ka.po b/translations/desktop_files/certmanager-desktops/ka.po
new file mode 100644
index 00000000..f99caeab
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/ka.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ka\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/kk.po b/translations/desktop_files/certmanager-desktops/kk.po
new file mode 100644
index 00000000..cac5cd0d
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/kk.po
@@ -0,0 +1,104 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Сыртқы көрінісі"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Түс & Қаріп параметрлері"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+#, fuzzy
+msgid "color;font; configuration;"
+msgstr "Түс & Қаріп параметрлері"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Каталог қызметтері"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "LDAP каталог қызметтер параметрлері"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+#, fuzzy
+msgid "ldap;directory;services;"
+msgstr "Каталог қызметтері"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-атрибуттер реті"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "DN атрибуттерді көрсету ретін баптау"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Куәлік менеджері мен шифрлау интерфейсі"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Тексерілмеген кілт"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Ескірген кілт"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Күші жойылған кілт"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Сенім артылған түбір куәлігі"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Сенім артылмаған түбір куәлігі"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Басқа кілттер"
diff --git a/translations/desktop_files/certmanager-desktops/km.po b/translations/desktop_files/certmanager-desktops/km.po
new file mode 100644
index 00000000..f557da86
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/km.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "រូបរាង"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "ការ​កំណត់​រចនាសម្ព័ន្ធ​ពណ៌ & ពុម្ពអក្សរ"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "ពណ៌;ពុម្ពអក្សរ;ការ​កំណត់​រចនាសម្ព័ន្ធ;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "សេវា​ថត"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "ការ​កំណត់​រចនាសម្ព័ន្ធ​របស់​សេវា​ថត LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;ថត;សេវា;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "លំដាប់​គុណលក្ខណៈ DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "កំណត់​រចនាសម្ព័ន្ធ​លំដាប់ ដែល​ត្រូវ​បង្ហាញ​គុណលក្ខណៈ DN"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;លំដាប់;RDN;គុណលក្ខណៈ;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "កម្មវិធី​គ្រប់គ្រង​វិញ្ញាបនបត្រ និង​ Unified Crypto GUI"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "កូនសោ​គ្មាន​សុពលភាព"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "កូនសោ​បាន​ផុតកំណត់"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "កូនសោ​ត្រូវ​បាន​ដកហូត"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "វិញ្ញាបនបត្រ Root ដែល​អាច​ជឿទុកចិត្ត"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "វិញ្ញាបនបត្រ Root ដែល​មិន​អាច​ជឿទុកចិត្ត"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "កូនសោ​ផ្សេង​ទៀត"
diff --git a/translations/desktop_files/certmanager-desktops/ko.po b/translations/desktop_files/certmanager-desktops/ko.po
new file mode 100644
index 00000000..d03890df
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/ko.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "모양"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "색과 글꼴 설정"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "색;글꼴;설정;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "디렉터리 서비스"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "LDAP 디렉터리 서비스 설정"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;디렉터리;서비스;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN 분배 순서"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "검증되지 않은 키"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "만료된 키"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "거부된 키"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "기타 키"
diff --git a/translations/desktop_files/certmanager-desktops/lt.po b/translations/desktop_files/certmanager-desktops/lt.po
new file mode 100644
index 00000000..1b07ac6d
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/lt.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Išvaizda"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Spalvų ir šriftų konfigūravimas"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "color;font; configuration; spalvų; šriftų konfigūravimas;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Aplankų tarnybos"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "LDAP aplankų tarnybų konfigūravimas"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;directory;services;aplankai;tarnybos;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-Savybių tvarka"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Konfigūruoti DN savybių rodymo tvarką"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;order;RDN;attribute;savybė;tvarka;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Liudijimų tvarkytuvė ir jungtinė kriptografijos grafinė sąsaja"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Nevaliduotas raktas"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Baigęs galioti raktas"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Atšauktas raktas"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Patikimas root sertifikatas"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Nepatikimas root sertifikatas"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Kiti raktai"
diff --git a/translations/desktop_files/certmanager-desktops/lv.po b/translations/desktop_files/certmanager-desktops/lv.po
new file mode 100644
index 00000000..51b9036c
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/lv.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Sertifikātu pārvaldnieks un vienota kriptofgrāfijas saskarne"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/mk.po b/translations/desktop_files/certmanager-desktops/mk.po
new file mode 100644
index 00000000..82ca53c2
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/mk.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Изглед"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Конфигурација на бои и фонтови"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "color;font;configuration;боја;фонт;конфигурација;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Именички сервиси"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Конфигурација на LDAP-именички сервиси"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;directory;services;именик;сервиси;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Редослед на DN-атрибути"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Конфигурирајте го редоследот по кој се покажуваат DN-атрибутите"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;order;RDN;attribute;редослед;атрибут;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Клеопатра"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Истечен клуч"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Отповикан клуч"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Доверлив коренов сертификат"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Недоверлив коренов сертификат"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Други клучеви"
diff --git a/translations/desktop_files/certmanager-desktops/mr.po b/translations/desktop_files/certmanager-desktops/mr.po
new file mode 100644
index 00000000..9af6a4ee
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/mr.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "क्लिओपात्रा"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "प्रमाणपत्र व्यवस्थापक व एकत्रित क्रिप्टो GUI"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/ms.po b/translations/desktop_files/certmanager-desktops/ms.po
new file mode 100644
index 00000000..1918de44
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/ms.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Rupa"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Warna & Konfigurasi fon"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "warna;fon; konfigurasi;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Servis Direktori "
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Konfigurasi LDAP servis direktori"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;direktori;servis;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Tertib atribut DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Konfigur tertib yang atribut DN dipaparkan"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;susunan;RDN;atribut;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Kekunci Tidak Disahkan"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Kekunci Luput"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Kekunci Dibatalkan"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Sijil Root Dipercaya"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Sijil Root Tak Dipercaya"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Kekunci Lain"
diff --git a/translations/desktop_files/certmanager-desktops/nb.po b/translations/desktop_files/certmanager-desktops/nb.po
new file mode 100644
index 00000000..5ac25786
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/nb.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Utseende"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Oppsett av farger og skrifttyper"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "farge;skrifttype;oppsett;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Katalogtjenere"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Oppsett av LDAP katalogtjenester"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;mappe;tjenester;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-Attributtrekkefølge"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Still inn rekkefølgen DN-attributtene er sortert i"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;orden;RDN;attributt;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Sertifikatbehandler og forent krypto-GUI"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Nøkkel ikke sjekket for gyldighet"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Utgått nøkkel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Tilbakekalt nøkkel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Tiltrodd rot-sertifikat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Ikke tiltrodd rot-sertifikat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Andre nøkler"
diff --git a/translations/desktop_files/certmanager-desktops/nds.po b/translations/desktop_files/certmanager-desktops/nds.po
new file mode 100644
index 00000000..7e5e748e
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/nds.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Utsehn"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Klören un Schriftoorden instellen"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "Klöör;Schriftoort;instellen;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Vertekendeensten"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "LDAP-Vertekendeensten instellen"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "LDAP;Verteken;Deensten;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-Egenschappenreeg"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "De Reeg bi't Wiesen vun DN-Egenschappen fastleggen"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;Reeg;RDN;Egenschap;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Zertifikatenpleger un eenheitlich Verslötel-Böversiet"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Nich pröövt Slötel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Aflopen Slötel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Torüchropen Slötel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Vertroonswöördig Wörtelzertifikaat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Nich vertroonswöördig Wörtelzertifikaat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Anner Slötels"
diff --git a/translations/desktop_files/certmanager-desktops/ne.po b/translations/desktop_files/certmanager-desktops/ne.po
new file mode 100644
index 00000000..56798f8f
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/ne.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "मोहडा"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "रङ र फन्ट कन्फिगरेसन"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "रङ; फन्ट; कन्फिगरेसन;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "डाइरेक्टरी कार्य"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "LDAP डाइरेक्टरी कार्यको कन्फिगरेसन"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;डाइरेक्टरी;कार्य;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "डीएन विशेषता आदेश"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "डीएन विशेषता देखिने आदेश कन्फिगर गर्नुहोस्"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "डीएन;क्रम;आरडीएन; विशेषता;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "क्लेओपेट्रा"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "प्रमाणीत नगरिएको कुञ्जी"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "म्याद समाप्त भएको कुञ्जी"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "रद्द गरिएको कुञ्जी"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "विश्वास गरिएका मूल प्रमाणपत्र"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "विश्वास नगरिएका मूल प्रमाणपत्र"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "अन्य कुञ्जी"
diff --git a/translations/desktop_files/certmanager-desktops/nl.po b/translations/desktop_files/certmanager-desktops/nl.po
new file mode 100644
index 00000000..336cdf90
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/nl.po
@@ -0,0 +1,103 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Uiterlijk"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Kleur- en lettertype-instellingen"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "kleur;kleuren;font;lettertype;configuratie;instellingen;setup;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Mapdiensten"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Configuratie voor LDAP-diensten"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+#, fuzzy
+msgid "ldap;directory;services;"
+msgstr "Mapdiensten"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-Attribuutvolgorde"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Stel de volgorde in van de DN-attributen"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;volgorde;RDN;attribuut;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Certificaatbeheer en GUI voor Unified Crypto"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Geen gevalideerde sleutel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Verlopen sleutel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Ingetrokken sleutel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Vertrouwd hoofdcertificaat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Niet vertrouwd hoofdcertificaat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Andere sleutels"
diff --git a/translations/desktop_files/certmanager-desktops/nn.po b/translations/desktop_files/certmanager-desktops/nn.po
new file mode 100644
index 00000000..ab3bd16e
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/nn.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Utsjånad"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Oppsett av fargar og skrifter"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "farge;skrift;oppsett;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Katalogtenester"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Oppsett av LDAP-katalogtenester"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;katalog;tenester;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-attributtrekkjefølgje"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Vel kva rekkjefølgje DN-attributtane er sorterte i"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;rekkjefølgje;RDN;attributt;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Sertifikathandsamar og sameina krypteringsgrensesnitt"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Ikkje-validert nøkkel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Forelda nøkkel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Tilbakekalla nøkkel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Tiltrudd rotsertifikat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Ikkje tiltrudd rotsertifikat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Andre nøklar"
diff --git a/translations/desktop_files/certmanager-desktops/oc.po b/translations/desktop_files/certmanager-desktops/oc.po
new file mode 100644
index 00000000..4cb6af50
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/oc.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: oc\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/pa.po b/translations/desktop_files/certmanager-desktops/pa.po
new file mode 100644
index 00000000..79825033
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/pa.po
@@ -0,0 +1,103 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "ਡਾਇਰੈਕਟਰੀ ਸੇਵਾਵਾਂ"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+#, fuzzy
+msgid "ldap;directory;services;"
+msgstr "ਡਾਇਰੈਕਟਰੀ ਸੇਵਾਵਾਂ"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "ਕਲੀਉਪਾਟਰਾ"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "ਸਰਟੀਫਿਕੇਟ ਮੈਨੇਜਰ ਅਤੇ ਇੱਕ ਕ੍ਰਿਪਟੂ GUI"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "ਹੋਰ ਕੁੰਜੀਆਂ"
diff --git a/translations/desktop_files/certmanager-desktops/pl.po b/translations/desktop_files/certmanager-desktops/pl.po
new file mode 100644
index 00000000..f63da7b5
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/pl.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Wygląd"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Konfiguracja czcionek i kolorów"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "kolor;czcionki;kolory;konfiguracja;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Usługi katalogowe"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Konfiguracja usług katalogowych LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;katalog;usługi katalogowe;usługi;LDAP;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Porządek atrybutów DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Konfiguracja kolejności wyświetlania atrybutów DN"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;kolejność;RDN;atrybuty;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Zarządzanie certyfikatami i zunifikowane GUI kryptograficzne"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Niesprawdzony klucz"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Klucz, który stracił ważność"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Odwołany klucz"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Zaufany certyfikat bazowy"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Nie zaufany certyfikat bazowy"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Inne klucze"
diff --git a/translations/desktop_files/certmanager-desktops/pt.po b/translations/desktop_files/certmanager-desktops/pt.po
new file mode 100644
index 00000000..c9d92543
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/pt.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Aparência"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Configuração das Cores e Tipos de Letra"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "cor;tipo de letra; configuração;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Serviços de Directório"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Configuração dos serviços de directório LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;directório;serviços;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Ordem de Atributos DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Configuração da ordem em que os atributos DN são mostrados"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;ordem;RDN;atributo;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Gestor de Certificados e GUI Unificada de Criptografia"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Chave Não Validada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Chave Expirada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Chave Revogada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Certificado Raiz de Confiança"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Certificado Raiz Não de Confiança"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Outras Chaves"
diff --git a/translations/desktop_files/certmanager-desktops/pt_BR.po b/translations/desktop_files/certmanager-desktops/pt_BR.po
new file mode 100644
index 00000000..c340bdd6
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/pt_BR.po
@@ -0,0 +1,103 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Aparência"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Configuração de Cores & Fontes"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "cor;fonte;configurar;configurações;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Serviços de Diretório"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Configuração dos serviços de diretório LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;diretório;serviços;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Ordem do Atributo DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Configura a ordem na qual os atributos DN são mostrados"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN; ordem; RDN;atributo;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+"Gerenciador de certificados e interface gráfica de criptografia unificada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Chave Não Validada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Chave Expirada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Chave Revogada"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Certificado Raiz Confiável"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Certificado Raiz Não-Confiável"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Outras Chaves"
diff --git a/translations/desktop_files/certmanager-desktops/ro.po b/translations/desktop_files/certmanager-desktops/ro.po
new file mode 100644
index 00000000..5b3be191
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/ro.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Gestionar de certificate și interfață de criptare unificată"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/ru.po b/translations/desktop_files/certmanager-desktops/ru.po
new file mode 100644
index 00000000..fd68da39
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/ru.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Внешний вид"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Настройка цветов и шрифтов"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "цвета;шрифты;настройка;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Службы каталогов"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Настройка служб каталогов LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "LDAP;службы каталогов;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Порядок атрибутов DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Настройка порядка показываемых атрибутов DN"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;порядок;RDN;атрибут;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Управление сертификатами"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Непроверенный ключ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Утерявший силу ключ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Отозванный ключ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Доверяемый корневой сертификат"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Не доверяемый корневой сертификат"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Другие ключи"
diff --git a/translations/desktop_files/certmanager-desktops/rw.po b/translations/desktop_files/certmanager-desktops/rw.po
new file mode 100644
index 00000000..210c563e
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/rw.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: rw\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Imigaragarire"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr ""
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/se.po b/translations/desktop_files/certmanager-desktops/se.po
new file mode 100644
index 00000000..492ff5eb
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/se.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Fárda"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Heivet ivnniid ja fonttaid"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "ivdni;fonta;heivehus;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Ohcobálvalusat"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Heivet LDAP-ohcobálvalusaid"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;ohcu;bálvalusat;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-attribuhttaortnet"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Vállje makkár ortnegis DN-attribuhttat sorterejuvvojit"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;ortnet;RDN;attribuhtta;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Ii-validerejuvvon čoavdda"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Boarásmuvvan čoavdda"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Luohttehahtti ruohtassertifikáhta"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Ii luohttehahtti ruohtassertifikáhta"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Eará čoavdagat"
diff --git a/translations/desktop_files/certmanager-desktops/sk.po b/translations/desktop_files/certmanager-desktops/sk.po
new file mode 100644
index 00000000..878605a8
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/sk.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Vzhľad"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Nastavenie písiem a farieb"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "farba;písmo;nastavenie;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Adresárové služby"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Nastavenie adresárových služieb LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;adresár;služby;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Poradie atribútov DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Nastavenie poradia, v ktorom sú zobrazené atribúty DN"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;poradie;RDN;atribút;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Správca certifikátov a unifikované šifrovacie grafické rozhranie"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Neoverený kľúč"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Vypršaný kľúč"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Kľúč so zrušenou platnosťou"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Dôveryhodný koreňový certifikát"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Nedôveryhodný koreňový certifikát"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Iné kľúče"
diff --git a/translations/desktop_files/certmanager-desktops/sl.po b/translations/desktop_files/certmanager-desktops/sl.po
new file mode 100644
index 00000000..0b9488c0
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/sl.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Videz"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Nastavitev pisav in barv"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "barva;barve;pisava;pisave;nastavi;nastavitve;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Imeniške storitve"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Nastavitve imeniških storitev LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;imenik;storitve;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Vrstni red atributov DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Nastavite vrstni red, v katerem so prikazani atributi DN"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;vrstni red;RDN;atribut;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Upravljalnik potrdil in enoten šifrirni vmesnik"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Nepreverjen ključ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Pretečen ključ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Preklican ključ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Zaupan korenski certifikat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Nezaupan korenski certifikat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Drugi ključi"
diff --git a/translations/desktop_files/certmanager-desktops/sr.po b/translations/desktop_files/certmanager-desktops/sr.po
new file mode 100644
index 00000000..5359a10b
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/sr.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Изглед"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Подешавање боја и фонтова"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "боја;фонт;подешавања;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Сервис директоријума"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Подешавања LDAP сервиса директоријума"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;директоријум;сервиси;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-Атрибут ред"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Подешава ред којим су приказани DN атрибути"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;ред;RDN;атрибут;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Клеопатра"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Менаџер сертификата и обједињено сучеље за шифровање"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Неоверени кључ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Истекли кључ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Опозвани кључ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Корени сертификат од поверења"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Корени сертификат који није од поверења"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Други кључеви"
diff --git a/translations/desktop_files/certmanager-desktops/sr@Latn.po b/translations/desktop_files/certmanager-desktops/sr@Latn.po
new file mode 100644
index 00000000..ed3a5625
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/sr@Latn.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Izgled"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Podešavanje boja i fontova"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "boja;font;podešavanja;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Servis direktorijuma"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Podešavanja LDAP servisa direktorijuma"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;direktorijum;servisi;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-Atribut red"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Podešava red kojim su prikazani DN atributi"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;red;RDN;atribut;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr ""
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Neovereni ključ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Istekli ključ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Opozvani ključ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Koreni sertifikat od poverenja"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Koreni sertifikat koji nije od poverenja"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Drugi ključevi"
diff --git a/translations/desktop_files/certmanager-desktops/sr@ijekavian.po b/translations/desktop_files/certmanager-desktops/sr@ijekavian.po
new file mode 100644
index 00000000..bd1b405c
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/sr@ijekavian.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@ijekavian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Клеопатра"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Менаџер сертификата и обједињено сучеље за шифровање"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/sr@ijekavianlatin.po b/translations/desktop_files/certmanager-desktops/sr@ijekavianlatin.po
new file mode 100644
index 00000000..3ad12310
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/sr@ijekavianlatin.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@ijekavianlatin\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Menadžer sertifikata i objedinjeno sučelje za šifrovanje"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/sr@latin.po b/translations/desktop_files/certmanager-desktops/sr@latin.po
new file mode 100644
index 00000000..638a3ac0
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/sr@latin.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@latin\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Menadžer sertifikata i objedinjeno sučelje za šifrovanje"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/sv.po b/translations/desktop_files/certmanager-desktops/sv.po
new file mode 100644
index 00000000..9b56945c
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/sv.po
@@ -0,0 +1,103 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Uppträdande"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Inställning av färger och teckensnitt"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "färger;teckensnitt; inställningar;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Katalogtjänster"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Inställning av LDAP-katalogtjänster"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;katalog;tjänster;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-egenskapsordning"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Anpassa ordningen som DN-egenskaper visas"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;ordning;RDN;egenskap;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+"Certifikathantering och gemensamt grafiskt användargränssnitt för kryptering"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Nyckeln har inte validerats"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Utgången nyckel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Återkallad nyckel"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Pålitligt rotcertifikat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Opålitligt rotcertifikat"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Andra nycklar"
diff --git a/translations/desktop_files/certmanager-desktops/ta.po b/translations/desktop_files/certmanager-desktops/ta.po
new file mode 100644
index 00000000..6de2d122
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/ta.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "தோற்றம்"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "வண்ணங்கள்& எழுத்துருக்கள் கட்டமைப்பு"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "Comment=வண்ணம்;எழுத்துரு; கட்டமைப்பு;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "அடைவு சேவைகள்"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "LDAP அடைவு சேவைகளின் கட்டமைப்பு"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap; அடைவு; சேவைகள்;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-பண்புக்கூறு வரிசை"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "DN விவரங்கள் எந்த வரிசையில் உள்ளதோ அப்படியே அமை"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;வரிசை;RDN;குணம்;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "க்ளியோபட்ரா"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "செல்லுபடியாகாத விசை"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "காலாவதியான விசை"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "நீக்கிய விசை"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "நம்பகமான மூல சான்றிதழ்"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "நம்பமுடியாத மூல சான்றிதழ்"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "மற்ற விசைகள்"
diff --git a/translations/desktop_files/certmanager-desktops/tg.po b/translations/desktop_files/certmanager-desktops/tg.po
new file mode 100644
index 00000000..b8c7d34c
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/tg.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Намуди зоҳирӣ"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Танзимоти ранг ва ҳуруф"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "рангҳо;ҳуруфҳо;танзимот;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Кӯмакҳои каталог"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Танзимоти кӯмакҳои каталоги LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;кӯмакҳои каталог;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Тартиби мушаххасияти DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Танзимоти мушаххасиятҳои намоишшавандаи тартибии DN"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;тартибот;RDN;мушаххасот;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/tr.po b/translations/desktop_files/certmanager-desktops/tr.po
new file mode 100644
index 00000000..26d71f3b
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/tr.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Görünüm"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Renkler ve Yazı Tipleri Yapılandırması"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "renk;yazı tipi; yapılandırma;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Dizin Servisleri"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "LDAP dizin servislerinin yapılandırması"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;dizin;servisler;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-Öznitelik Sırası"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "DN özniteliklerinin hangi sıralama ile gösterileceğini yapılandır"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;sıralama;RDN;öznitelik;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "Sertifika Yöneticisi ve Birleşik Şifreleme Arayüzü"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Geçerli Olmayan Anahtar"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Süresi Dolmuş Anahtar"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Geri Alınmış Anahtar"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Güvenilir Kök Sertifikası"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Güvenilmeyen Kök Sertifikası"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Diğer Anahtarlar"
diff --git a/translations/desktop_files/certmanager-desktops/ug.po b/translations/desktop_files/certmanager-desktops/ug.po
new file mode 100644
index 00000000..a5ca1e4d
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/ug.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ug\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "گۇۋاھنامە باشقۇرغۇ ۋەبىرلىككە كەلگەن شىفىرلاش گرافىكىلىق ئارايۈزى"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/uk.po b/translations/desktop_files/certmanager-desktops/uk.po
new file mode 100644
index 00000000..5ec42b9f
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/uk.po
@@ -0,0 +1,104 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Вигляд"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "Налаштування кольорів і шрифтів"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "колір; шрифт; налаштування;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "Служби каталогів"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "Налаштування служб каталогів LDAP"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;служби;каталогів;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "Порядок атрибутів DN"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "Налаштування порядку показу атрибутів DN"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;порядок;RDN;атрибут;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+"Засіб для керування сертифікатами і уніфікований графічний інтерфейс "
+"шифрування"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "Неперевірений ключ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "Застарілий ключ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "Анульований ключ"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "Кореневий сертифікат з довірою"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "Кореневий сертифікат без довіри"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Інші ключі"
diff --git a/translations/desktop_files/certmanager-desktops/uz.po b/translations/desktop_files/certmanager-desktops/uz.po
new file mode 100644
index 00000000..51c5779a
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/uz.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "Кўриниши"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "Бошқа калитлар"
diff --git a/translations/desktop_files/certmanager-desktops/uz@cyrillic.po b/translations/desktop_files/certmanager-desktops/uz@cyrillic.po
new file mode 100644
index 00000000..cdd072e4
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/uz@cyrillic.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz@cyrillic\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/wa.po b/translations/desktop_files/certmanager-desktops/wa.po
new file mode 100644
index 00000000..6d3c8e20
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/wa.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: wa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr ""
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr ""
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "GUI manaedjeu d' acertineures eyet d' ecriptaedje unifyî"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr ""
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr ""
diff --git a/translations/desktop_files/certmanager-desktops/zh_CN.po b/translations/desktop_files/certmanager-desktops/zh_CN.po
new file mode 100644
index 00000000..c20544a1
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/zh_CN.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr "外观"
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "颜色和字体配置"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+msgid "color;font; configuration;"
+msgstr "color;font;configuration;颜色;字体;配置;"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "目录服务"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "LDAP 目录服务配置"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+msgid "ldap;directory;services;"
+msgstr "ldap;directory;services;目录;服务;"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN 属性顺序"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "配置 DN 属性显示的顺序"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr "DN;order;RDN;attribute;顺序;属性;"
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "证书管理器和统一的密钥操作界面"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "未校验的密钥"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "过期密钥"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "吊销的密钥"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "可信任的根证书"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "未信任的根证书"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "其它密钥"
diff --git a/translations/desktop_files/certmanager-desktops/zh_TW.po b/translations/desktop_files/certmanager-desktops/zh_TW.po
new file mode 100644
index 00000000..eb62104f
--- /dev/null
+++ b/translations/desktop_files/certmanager-desktops/zh_TW.po
@@ -0,0 +1,104 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:10+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: conf/kleopatra_config_appear.desktop:15
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: conf/kleopatra_config_appear.desktop:17
+msgid "Colors & Fonts Configuration"
+msgstr "設定顏色與字型"
+
+#. Keywords
+#: conf/kleopatra_config_appear.desktop:19
+#, fuzzy
+msgid "color;font; configuration;"
+msgstr "設定顏色與字型"
+
+#. Name
+#: conf/kleopatra_config_dirserv.desktop:15
+msgid "Directory Services"
+msgstr "目錄服務"
+
+#. Comment
+#: conf/kleopatra_config_dirserv.desktop:17
+msgid "Configuration of LDAP directory services"
+msgstr "設定 LDAP 目錄服務"
+
+#. Keywords
+#: conf/kleopatra_config_dirserv.desktop:19
+#, fuzzy
+msgid "ldap;directory;services;"
+msgstr "目錄服務"
+
+#. Name
+#: conf/kleopatra_config_dnorder.desktop:15
+msgid "DN-Attribute Order"
+msgstr "DN-屬性順序"
+
+#. Comment
+#: conf/kleopatra_config_dnorder.desktop:17
+msgid "Configure the order in which DN attributes are shown"
+msgstr "設定 DN 屬性顯示順序"
+
+#. Keywords
+#: conf/kleopatra_config_dnorder.desktop:19
+msgid "DN;order;RDN;attribute;"
+msgstr ""
+
+#. Name
+#: kleopatra.desktop:7 kleopatra_import.desktop:2
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#. GenericName
+#: kleopatra.desktop:9
+msgid "Certificate Manager and Unified Crypto GUI"
+msgstr "憑證管理與統一加密介面"
+
+#. Name
+#: lib/libkleopatrarc.desktop:3
+msgid "Not Validated Key"
+msgstr "未確認的金鑰"
+
+#. Name
+#: lib/libkleopatrarc.desktop:10
+msgid "Expired Key"
+msgstr "已過期的金鑰"
+
+#. Name
+#: lib/libkleopatrarc.desktop:15
+msgid "Revoked Key"
+msgstr "已廢棄的金鑰"
+
+#. Name
+#: lib/libkleopatrarc.desktop:21
+msgid "Trusted Root Certificate"
+msgstr "可信任的根憑證"
+
+#. Name
+#: lib/libkleopatrarc.desktop:27
+msgid "Not Trusted Root Certificate"
+msgstr "不可信任的根憑證"
+
+#. Name
+#: lib/libkleopatrarc.desktop:31
+msgid "Other Keys"
+msgstr "其他金鑰"
diff --git a/translations/desktop_files/groupwarewizard.desktop/af.po b/translations/desktop_files/groupwarewizard.desktop/af.po
new file mode 100644
index 00000000..dac702a6
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/af.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE groupware assistent"
diff --git a/translations/desktop_files/groupwarewizard.desktop/ar.po b/translations/desktop_files/groupwarewizard.desktop/ar.po
new file mode 100644
index 00000000..ed525c10
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/ar.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "مرشد TDE للبرمجيات الجماعية"
diff --git a/translations/desktop_files/groupwarewizard.desktop/bg.po b/translations/desktop_files/groupwarewizard.desktop/bg.po
new file mode 100644
index 00000000..946a5bfe
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/bg.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Помощник за група"
diff --git a/translations/desktop_files/groupwarewizard.desktop/br.po b/translations/desktop_files/groupwarewizard.desktop/br.po
new file mode 100644
index 00000000..ace59f57
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/br.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Skoazeller strollant evit TDE"
diff --git a/translations/desktop_files/groupwarewizard.desktop/ca.po b/translations/desktop_files/groupwarewizard.desktop/ca.po
new file mode 100644
index 00000000..2b13cc6b
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/ca.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Assistent de Groupware TDE"
diff --git a/translations/desktop_files/groupwarewizard.desktop/cs.po b/translations/desktop_files/groupwarewizard.desktop/cs.po
new file mode 100644
index 00000000..44edd2bf
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/cs.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Průvodce TDE groupwarem"
diff --git a/translations/desktop_files/groupwarewizard.desktop/da.po b/translations/desktop_files/groupwarewizard.desktop/da.po
new file mode 100644
index 00000000..030c4b50
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/da.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE Groupware-guide"
diff --git a/translations/desktop_files/groupwarewizard.desktop/de.po b/translations/desktop_files/groupwarewizard.desktop/de.po
new file mode 100644
index 00000000..66bc905c
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/de.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE Groupware-Assistent"
diff --git a/translations/desktop_files/groupwarewizard.desktop/el.po b/translations/desktop_files/groupwarewizard.desktop/el.po
new file mode 100644
index 00000000..e35afe04
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/el.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Μάγος Groupware του TDE"
diff --git a/translations/desktop_files/groupwarewizard.desktop/es.po b/translations/desktop_files/groupwarewizard.desktop/es.po
new file mode 100644
index 00000000..2ff7a0ad
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/es.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Asistente de groupware de TDE"
diff --git a/translations/desktop_files/groupwarewizard.desktop/et.po b/translations/desktop_files/groupwarewizard.desktop/et.po
new file mode 100644
index 00000000..68e55551
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/et.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE Groupware nõustaja"
diff --git a/translations/desktop_files/groupwarewizard.desktop/eu.po b/translations/desktop_files/groupwarewizard.desktop/eu.po
new file mode 100644
index 00000000..8b9ee7df
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/eu.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE groupware morroia"
diff --git a/translations/desktop_files/groupwarewizard.desktop/fa.po b/translations/desktop_files/groupwarewizard.desktop/fa.po
new file mode 100644
index 00000000..620c6351
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/fa.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "جادوگر TDE Groupware"
diff --git a/translations/desktop_files/groupwarewizard.desktop/fi.po b/translations/desktop_files/groupwarewizard.desktop/fi.po
new file mode 100644
index 00000000..784b912e
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/fi.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE Groupwaren ohjattu toiminto"
diff --git a/translations/desktop_files/groupwarewizard.desktop/fr.po b/translations/desktop_files/groupwarewizard.desktop/fr.po
new file mode 100644
index 00000000..57f13e7c
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/fr.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Assistant TDE de travail collaboratif"
diff --git a/translations/desktop_files/groupwarewizard.desktop/fy.po b/translations/desktop_files/groupwarewizard.desktop/fy.po
new file mode 100644
index 00000000..929cebed
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/fy.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE Groupware-tsjoender"
diff --git a/translations/desktop_files/groupwarewizard.desktop/ga.po b/translations/desktop_files/groupwarewizard.desktop/ga.po
new file mode 100644
index 00000000..49e98c8e
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/ga.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Treoraí Groupware TDE"
diff --git a/translations/desktop_files/groupwarewizard.desktop/gl.po b/translations/desktop_files/groupwarewizard.desktop/gl.po
new file mode 100644
index 00000000..58783394
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/gl.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Asistente de Traballo en Grupo de TDE"
diff --git a/translations/desktop_files/groupwarewizard.desktop/groupwarewizard.desktop.pot b/translations/desktop_files/groupwarewizard.desktop/groupwarewizard.desktop.pot
new file mode 100644
index 00000000..bae2b197
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/groupwarewizard.desktop.pot
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr ""
diff --git a/translations/desktop_files/groupwarewizard.desktop/hu.po b/translations/desktop_files/groupwarewizard.desktop/hu.po
new file mode 100644
index 00000000..e2bc0fd0
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/hu.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE csoportmunka-varázsló"
diff --git a/translations/desktop_files/groupwarewizard.desktop/is.po b/translations/desktop_files/groupwarewizard.desktop/is.po
new file mode 100644
index 00000000..57910d31
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/is.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE hópvinnukerfisálfur"
diff --git a/translations/desktop_files/groupwarewizard.desktop/it.po b/translations/desktop_files/groupwarewizard.desktop/it.po
new file mode 100644
index 00000000..1d40d640
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/it.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Assistente configurazione di TDE Groupware"
diff --git a/translations/desktop_files/groupwarewizard.desktop/ja.po b/translations/desktop_files/groupwarewizard.desktop/ja.po
new file mode 100644
index 00000000..a14dd045
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/ja.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE グループウェアウィザード"
diff --git a/translations/desktop_files/groupwarewizard.desktop/kk.po b/translations/desktop_files/groupwarewizard.desktop/kk.po
new file mode 100644
index 00000000..584fe5ff
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/kk.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE бірікен жұмыс шебері"
diff --git a/translations/desktop_files/groupwarewizard.desktop/km.po b/translations/desktop_files/groupwarewizard.desktop/km.po
new file mode 100644
index 00000000..db3b398d
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/km.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "អ្នក​ជំនួយការ​កម្មវិធី​ពហុ​អ្នក​ប្រើ​របស់ TDE"
diff --git a/translations/desktop_files/groupwarewizard.desktop/ko.po b/translations/desktop_files/groupwarewizard.desktop/ko.po
new file mode 100644
index 00000000..e1c05346
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/ko.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE 그룹웨어 마법사"
diff --git a/translations/desktop_files/groupwarewizard.desktop/lt.po b/translations/desktop_files/groupwarewizard.desktop/lt.po
new file mode 100644
index 00000000..fc9d0c03
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/lt.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE Groupware vedlys"
diff --git a/translations/desktop_files/groupwarewizard.desktop/nb.po b/translations/desktop_files/groupwarewizard.desktop/nb.po
new file mode 100644
index 00000000..fd287ef4
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/nb.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE gruppevareveiviser"
diff --git a/translations/desktop_files/groupwarewizard.desktop/nds.po b/translations/desktop_files/groupwarewizard.desktop/nds.po
new file mode 100644
index 00000000..bc0391d9
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/nds.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Groupware-Hölper vun TDE"
diff --git a/translations/desktop_files/groupwarewizard.desktop/ne.po b/translations/desktop_files/groupwarewizard.desktop/ne.po
new file mode 100644
index 00000000..8f8d4972
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/ne.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "केडीई ग्रुपवेयर विजार्ड"
diff --git a/translations/desktop_files/groupwarewizard.desktop/nl.po b/translations/desktop_files/groupwarewizard.desktop/nl.po
new file mode 100644
index 00000000..6936f877
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/nl.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE Groupware-wizard"
diff --git a/translations/desktop_files/groupwarewizard.desktop/nn.po b/translations/desktop_files/groupwarewizard.desktop/nn.po
new file mode 100644
index 00000000..fc35728a
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/nn.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE-vegvisar for gruppevare"
diff --git a/translations/desktop_files/groupwarewizard.desktop/pl.po b/translations/desktop_files/groupwarewizard.desktop/pl.po
new file mode 100644
index 00000000..e28fe03d
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/pl.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Asystent TDE Groupware"
diff --git a/translations/desktop_files/groupwarewizard.desktop/pt.po b/translations/desktop_files/groupwarewizard.desktop/pt.po
new file mode 100644
index 00000000..1e9eda8e
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/pt.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Assistente Groupware do TDE"
diff --git a/translations/desktop_files/groupwarewizard.desktop/pt_BR.po b/translations/desktop_files/groupwarewizard.desktop/pt_BR.po
new file mode 100644
index 00000000..a8b7c75d
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/pt_BR.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Assistente Groupware do TDE"
diff --git a/translations/desktop_files/groupwarewizard.desktop/ru.po b/translations/desktop_files/groupwarewizard.desktop/ru.po
new file mode 100644
index 00000000..4495fb14
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/ru.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Мастер подключения к серверам совместной работы"
diff --git a/translations/desktop_files/groupwarewizard.desktop/sk.po b/translations/desktop_files/groupwarewizard.desktop/sk.po
new file mode 100644
index 00000000..b886db3b
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/sk.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Sprievodca TDE Groupware"
diff --git a/translations/desktop_files/groupwarewizard.desktop/sl.po b/translations/desktop_files/groupwarewizard.desktop/sl.po
new file mode 100644
index 00000000..b40ec990
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/sl.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Čarovnik za TDE Groupware"
diff --git a/translations/desktop_files/groupwarewizard.desktop/sr.po b/translations/desktop_files/groupwarewizard.desktop/sr.po
new file mode 100644
index 00000000..c09457f7
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/sr.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE Groupware чаробњак"
diff --git a/translations/desktop_files/groupwarewizard.desktop/sr@Latn.po b/translations/desktop_files/groupwarewizard.desktop/sr@Latn.po
new file mode 100644
index 00000000..2716282c
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/sr@Latn.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE Groupware čarobnjak"
diff --git a/translations/desktop_files/groupwarewizard.desktop/sv.po b/translations/desktop_files/groupwarewizard.desktop/sv.po
new file mode 100644
index 00000000..bae63f4e
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/sv.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE-grupprogramguide"
diff --git a/translations/desktop_files/groupwarewizard.desktop/tr.po b/translations/desktop_files/groupwarewizard.desktop/tr.po
new file mode 100644
index 00000000..2b4bfd68
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/tr.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Grup Çalışması (Groupware) Sihirbazı"
diff --git a/translations/desktop_files/groupwarewizard.desktop/uk.po b/translations/desktop_files/groupwarewizard.desktop/uk.po
new file mode 100644
index 00000000..cdf18992
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/uk.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "Майстер групової роботи для TDE"
diff --git a/translations/desktop_files/groupwarewizard.desktop/zh_CN.po b/translations/desktop_files/groupwarewizard.desktop/zh_CN.po
new file mode 100644
index 00000000..a57dfbd9
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/zh_CN.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE 群件向导"
diff --git a/translations/desktop_files/groupwarewizard.desktop/zh_TW.po b/translations/desktop_files/groupwarewizard.desktop/zh_TW.po
new file mode 100644
index 00000000..fa0728c2
--- /dev/null
+++ b/translations/desktop_files/groupwarewizard.desktop/zh_TW.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:43+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: groupwarewizard.desktop:2
+msgid "TDE Groupware Wizard"
+msgstr "TDE 群組精靈"
diff --git a/translations/desktop_files/kaddressbook-desktops/af.po b/translations/desktop_files/kaddressbook-desktops/af.po
new file mode 100644
index 00000000..b661f6e9
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/af.po
@@ -0,0 +1,383 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "K-adresboek (Kde 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! Adresboek"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Adres boek met 'n DCOP koppelvlak"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Kripto Voorkeure"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Kits bootskap"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Kits boodskap adres redigeerder"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook kits boodskap protokol"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+#, fuzzy
+msgid "AIM Protocol"
+msgstr "ICQ protokol"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu protokol"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu protokol"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell GroupWise boodskappe"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ protokol"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber protokol"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile protokol"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile protokol"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "MSN boodskapper"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype Internet Telefoon"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS protokol"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo protokol"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB verspreiding lys inprop module"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Inprop module vir die bestuur van verspreiding lyste"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB verspreiding lys inprop module"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Adres boek bestuur inprop module"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Inprop module om adres boeke te bestuur"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressBook kontak redigeerder inprop module"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressBook uitbrei inprop module"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressBook Invoer/Uitvoer inprop module"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! Adresboek"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Adres Bestuurder"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressBook besigtig inprop module"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Algemeen"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Stel die adres boek op"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; configure;settings;adres;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Pasmaak Blaaie"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Stel die pasmaak blaaie op"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+#, fuzzy
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; configure;settings;adres;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP Opkyk"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Stel die adres boek se LDAP opstelling op."
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+#, fuzzy
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; configure;settings;adres;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Elektroniese Besigheid kaartjie lêers"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Kaard Aansig"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Ikoon Aansig"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabel Aansig"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB boekmerk XXPort inprop module"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Inprop module wat die web adresse van kontakte as boekmerke uitvoer"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB CSV XXPort inprop module"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Inprop module wat kontakte in CSV formaat invoer en uitvoer"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB Eudora XXPort inprop module"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Inprop module wat kontakte in Eudora formaat invoer en uitvoer"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB selfoon XXPort inprop module"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Inprop module wat kontakte in selfoon formaat invoer en uitvoer"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 XXPort inprop module"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Inprop module om 'n ou KDE 2 adres boek in te voer"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF XXPort inprop module"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Inprop module wat kontakte in Netscape/Mozilla LDIF formaat invoer en uitvoer"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB Opera XXPort inprop module"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Inprop module wat kontakte in Opera formaat invoer"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB MS Exchange adresboek XXPort inprop module"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Inprop module wat kontakte in MS Exchange adresboek formaat invoer"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB vCard XXPort inprop module"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Inprop module wat kontakte in vCard formaat invoer en uitvoer"
diff --git a/translations/desktop_files/kaddressbook-desktops/ar.po b/translations/desktop_files/kaddressbook-desktops/ar.po
new file mode 100644
index 00000000..3af271e8
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/ar.po
@@ -0,0 +1,384 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "دفتر العناوين KAddressBook (KDE 3.1("
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr "برنامج Outlook 2000"
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "دفتر العناوين Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "دفتر عناوين مع واجهة DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "ميفاق AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "ميفاق Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "ميفاق Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+#, fuzzy
+msgid "ICQ Protocol"
+msgstr "ميفاق AIM"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "ميفاق Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "ميفاق Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "ميفاق Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+#, fuzzy
+msgid "SMS Protocol"
+msgstr "ميفاق AIM"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "ميفاق Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "ملحق قائمة توزيع KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "ملحق لإدارة قوائم التوزيع"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "ملحق قائمة توزيع KAB"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+#, fuzzy
+msgid "Plugin for managing address books"
+msgstr "ملحق لإدارة قوائم التوزيع"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "دفتر العناوين Yahoo!"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+#, fuzzy
+msgid "KAddressBook View Plugin"
+msgstr "دفتر العناوين KAddressBook (KDE 3.1("
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "عام"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "إعداد دفتر العناوين"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "الصفحات المعتادة"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "إعداد الصفحات المعتادة"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "البحث في LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+#, fuzzy
+msgid "Configure the Address Book LDAP Settings"
+msgstr "إعداد دفتر العناوين"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "ملفّات بطاقة الأعمال الإلكترونيّة"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "عرض البظاقة"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "عرض الأيقونات"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "عرض الجدول"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/az.po b/translations/desktop_files/kaddressbook-desktops/az.po
new file mode 100644
index 00000000..a0409e8b
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/az.po
@@ -0,0 +1,375 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: az\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr ""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr ""
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Timsal Görünüşü"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/be.po b/translations/desktop_files/kaddressbook-desktops/be.po
new file mode 100644
index 00000000..cd6cd077
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/be.po
@@ -0,0 +1,392 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Дапаўненне K Адраснай кнігі \"Выгляд\""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Адрасная кніга Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Адрасная кніга з DCOP інтэрфэйсам"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Перавагі крыптаграфіі"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Пратакол AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Пратакол Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Пратакол Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Пратакол ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Пратакол Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Пратакол Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Пратакол Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Пратакол SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Пратакол Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Дапаўненне KAB \"Сьпіс распаўсюджвання\""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Дапаўненне для кіравання сьпісамі распаўсюджвання"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Дапаўненне KAB \"Сьпіс распаўсюджвання\""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Дапаўненне \"Кіраванне адраснамі кнігамі\""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Дапаўненне для кіравання адраснамі кнігамі"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+#, fuzzy
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Дапаўненне K Адраснай кнігі \"Імпарт/Экспарт\""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Дапаўненне K Адраснай кнігі \"Пашырэнне\""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Дапаўненне K Адраснай кнігі \"Імпарт/Экспарт\""
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Адрасная кніга Yahoo!"
+
+#. GenericName
+#: kaddressbook.desktop:4
+#, fuzzy
+msgid "Address Manager"
+msgstr "Дапаўненне \"Кіраванне адраснамі кнігамі\""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Дапаўненне K Адраснай кнігі \"Выгляд\""
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Настроіць адрасную кнігу"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+"K Адрасная кніга; настроіць; настаўленні; kaddressbook; configure; settings;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+#, fuzzy
+msgid "Configure the Custom Pages"
+msgstr "Настроіць адрасную кнігу"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+#, fuzzy
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+"K Адрасная кніга; настроіць; настаўленні; kaddressbook; configure; settings;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+#, fuzzy
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Настроіць адрасную кнігу"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+"K Адрасная кніга; настроіць; настраўленні; kaddressbook; configure; "
+"settings; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "У выглядзе картак"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "У выглядзе піктаграмаў"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "У выглядзе табліцы"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Дапаўненне KAB \"Экспарт у закладкі\""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+#, fuzzy
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Дапаўненне для імпарту і экспарту кантактаў у фармаце vCard"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Дапаўненне KAB \"Імпарт/Экспарт CSV\""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Дапаўненне для імпарту і экспарту кантактаў у фармаце CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Дапаўненне KAB \"Імпарт/Экспарт Eudora\""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Дапаўненне для імпарту і экспарту кантактаў Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+#, fuzzy
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Дапаўненне KAB \"Імпарт Opera\""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+#, fuzzy
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Дапаўненне для імпарту і экспарту кантактаў Eudora"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Дапаўненне KAB \"Імпарт/Экспарт KDE2\""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Дапаўненне для імпарту старой адраснай кнігі KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Дапаўненне KAB \"Імпарт LDIF\""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr "Дапаўненне для імпарту кантактаў у фармаце Netscape/Mozilla LDIF"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Дапаўненне KAB \"Імпарт Opera\""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Дапаўненне для імпарту кантактаў Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Дапаўненне KAB \"Імпарт пэрсанальнай адраснай кнігі MS Exchange\""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Дапаўненне для імпарту пэрсанальнай адраснай кнігі MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Дапаўненне KAB \"Імпарт/Экспарт vCard\""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Дапаўненне для імпарту і экспарту кантактаў у фармаце vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/bg.po b/translations/desktop_files/kaddressbook-desktops/bg.po
new file mode 100644
index 00000000..8a7133e2
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/bg.po
@@ -0,0 +1,391 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Приставка за преглед на адресника"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Адресник с интерфейс DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Шифроване"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Мигновени съобщения"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Редактор на адреси за мигновените съобщения"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Протокол за мигновени съобщения за адресника"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Протокол AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Протокол Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Протокол Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Месинджър Novell GroupWise"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Протокол ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "Протокол IRC"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Протокол Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Протокол Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Протокол Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "MSN"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Интернет телефония чрез Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Протокол SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Протокол Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Приставка за списъка за разпращане на KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Приставка за управление на списъци"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Приставка от следващо поколение за списъка за разпращане на KAB"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Приставка за управление на адресника"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Приставка за управление на адресника"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Приставка за редактиране на контактите от адресника"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Приставка-разширение за адресника"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Приставка за импортиране/експортиране на данни от адресника"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Приставка за преглед на адресника"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Адресник"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Приставка за преглед на адресника"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Общи"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Настройки на адресника"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+"адресни;адресна;книга;визитник;визитка;картичка;kaddressbook; configure; "
+"settings;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Потребителски полета"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Настройки на потребителските полета"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+"адресник; потребителски; полета; настройки; настройване; kaddressbook; "
+"configure; settings; custom fields;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Търсене в LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Настройки на адресника за използване на сървър LDAP"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+"адресник;адрес;адресна;книга;сървър;всички;kaddressbook; configure; "
+"settings; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Файлове за електронна визитка"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Преглед като карти"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Преглед като икони"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Преглед в таблица"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Приставка за XXPort отметки в KAB"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Приставка за експортиране на уеб адресите на контактите, като отметки"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Приставка за CSV XXPort на KAB"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Приставка за импортиране/експортиране на контактите във формат CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Приставка за Eudora XXPort на KAB"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+"Приставка за импортиране/експортиране на контактите във формат на Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Приставка за XXPort на мобилен телефон на KAB"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Приставка за експортиране/импортиране на контактите от/към мобилен телефон"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Приставка за KDE2 XXPort на KAB"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Приставка за импортиране на контактите от адресника в KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Приставка за LDIF XXPort на KAB"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Приставка за импортиране/експортиране на контактите във формат на Netscape и "
+"Mozilla (LDIF)"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Приставка за Opera XXPort на KAB"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Приставка за импортиране на контактите от Опера"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Приставка за XXPort на MS Exchange на KAB"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+"Приставка за импортиране на контактите от MS Exchange Personal Address Books"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Приставка за vCard XXPort на KAB"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
+"Приставка за експортиране/импортиране на контактите във формат на vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/br.po b/translations/desktop_files/kaddressbook-desktops/br.po
new file mode 100644
index 00000000..4cb71702
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/br.po
@@ -0,0 +1,389 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Lugent gwell KAddressBook"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Karned chomlec'hioù Yahoo !"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Postelerezh a-benn-kaer"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+#, fuzzy
+msgid "Instant Messaging Address Editor"
+msgstr "Postelerezh a-benn-kaer"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+#, fuzzy
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Postelerezh a-benn-kaer"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Komenad AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Komenad Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Komenad Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Komenad ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Komenad Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Komenad Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Komenad Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Komenad SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Komenad Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Lugent roll ingaladur evit KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Lugent melestradur ar rolloù ingaladur"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Lugent roll ingaladur evit KAB"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Lugent melestradur ar c'harnedoù chomlec'hioù"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Lugent melestradur ar c'harnedoù chomlec'hioù"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+#, fuzzy
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Lugent enporzh/ezporzh evit KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+#, fuzzy
+msgid "KAddressBook Extension Plugin"
+msgstr "Lugent gwell KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Lugent enporzh/ezporzh evit KAddressBook"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Karned chomlec'hioù Yahoo !"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Merour ar chomlec'hioù"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Lugent gwell KAddressBook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Pennañ"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Kefluniañ ar c'harned chomlec'hioù"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; kefluniañ; dibarzhoù;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Pajennoù dre ziouer"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Kefluniañ ar pajennoù diouzhoc'h"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+#, fuzzy
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; kefluniañ; dibarzhoù;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Klask LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+#, fuzzy
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Kefluniañ ar c'harned chomlec'hioù"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; kefluniañ; dibarzhoù; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Gwell ar c'hartennoù"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Gwel Arlun"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Gwel taolenn"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Lugent XXPorzh sined KAB"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Lugent XXPorzh CSV KAB"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Lugent XXPorzh Eudora KAB"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+#, fuzzy
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Lugent KAB Opera XXPort"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Lugent XXPorzh KAB KDE2"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+#, fuzzy
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Lugent melestradur ar c'harnedoù chomlec'hioù"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Lugent XXPorzh KAB LDIF"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Lugent KAB Opera XXPort"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+#, fuzzy
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Lugent melestradur ar c'harnedoù chomlec'hioù"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Lugent KAB vCard XXPort"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/bs.po b/translations/desktop_files/kaddressbook-desktops/bs.po
new file mode 100644
index 00000000..48aaec54
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/bs.po
@@ -0,0 +1,388 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KAddressBook dodatak za pregledanje"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! Adresar"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Adresar sa DCOP interfejsom"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Postavke kriptografije"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Instant poruke"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Editor adresa za instant poruke"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook protokol za instant poruke"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM protokol"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu protokol"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu protokol"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ protokol"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber protokol"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+#, fuzzy
+msgid "Meanwhile Protocol"
+msgstr "Yahoo protokol"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS poruke"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo protokol"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB dodatak za distribucione liste"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Dodatak za upravljanje distribucionim listama"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB dodatak za distribucione liste"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Dodatak za rukovanje adresarom"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Dodatak za upravljanje adresarima"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressBook dodatak za prozor za izmjenu kontakta"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressBook dodatak proširenja"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressBook dodatak za uvoz/izvoz"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! Adresar"
+
+#. GenericName
+#: kaddressbook.desktop:4
+#, fuzzy
+msgid "Address Manager"
+msgstr "Dodatak za rukovanje adresarom"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressBook dodatak za pregledanje"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Podesite Adresar"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+"kaddressbook; configure; settings; podesi; podesite; postavke; konfiguracija;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Vlastite stranice"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Podesite vlastite stranice"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+"kaddressbook; configure; settings; custom fields; podesite; postavke; "
+"vlastite; vlastito;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP pretraga"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Podesite LDAP postavke Adresara"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+"kaddressbook; configure; settings; LDAP; podesi; postavke; podesite; "
+"konfiguracija;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Datoteke elektronskih vizit karti"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Pogled kartice"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Ikone"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Pogled tabele"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB dodatak za XXPort zabilješki"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Dodatak za izvoz web adresa kontakata u formi zabilješki"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB dodatak za CSV XXPort"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Dodatak za uvoz i izvoz kontakata u CSV formatu"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB dodatak za Eudora XXPort"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Dodatak za uvoz i izvoz kontakata iz Eudore"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB dodatak XXPort u/iz mobilnog telefona"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Dodatak za uvoz i izvoz stavki adresara iz mobilnog telefona"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB dodatak za KDE2 XXPort"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Dodatak za uvoz iz starog KDE 2 adresara"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB dodatak za LDIF XXPort"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Dodatak za uvoz i izvoz kontakata iz LDIF formata koji koriste Netscape i "
+"Mozilla"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB dodatak za Opera XXPort"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Dodatak za uvoz kontakata iz Opere"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB dodatak za MS Exchange Personal Addressbook XXPort"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Dodatak za uvoz iz MS Exchange personalnog adresara"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB dodatak za vCard XXPort"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Dodatak za uvoz i izvoz kontakata u vCard formatu"
diff --git a/translations/desktop_files/kaddressbook-desktops/ca.po b/translations/desktop_files/kaddressbook-desktops/ca.po
new file mode 100644
index 00000000..2d8b9660
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/ca.po
@@ -0,0 +1,385 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Llibreta d'adreces (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Llibreta d'adreces Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Llibreta d'adreces amb una interfície DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Preferències de criptografia"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Missatgeria instantània"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Editor d'adreces de missatgeria instantània"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Protocol de missatgeria instantània KAddressbook"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Protocol AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Protocol Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Protocol Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Protocol ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Protocol Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Protocol Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Protocol Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Telefonia per Internet Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Protocol SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Protocol Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Endollable de la llista de distribució KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Endollable per a gestionar llistes de distribució"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Endollable de la propera generació de la llista de distribució KAB"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Endollable de gestió de llibretes d'adreces"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Endollable per gestionar llibretes d'adreces"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Endollable de l'estri editor de contactes de la llibreta d'adreces"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Endollable Extension per al KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Endollable d'importació/exportació per a la llibreta d'adreces"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Llibreta d'adreces Yahoo!"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Gestor d'adreces"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Endollable visor de la llibreta d'adreces"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Configura la Llibreta d'adreces"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "llibreta d'adreces; configura; opcions;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Pàgines a mida"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Configura les pàgines a mida"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "llibreta d'adreces; configura; opcions; camps a mida;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Recerca LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Configura les opcions de la Llibreta d'adreces LDAP"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "llibreta d'adreces; configura; opcions; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Fitxers targeta de visita electrònica"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Vista de targeta"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Vista d'icona"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Vista de taula"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Endollable d'importació/exportació de punts per al KAB"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Endollable per a exportar les adreces web dels contactes com a punts"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Endollable d'importació/exportació CSV per al KAB"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Endollable per a importar i exportar contactes en format CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Endollable d'importació/exportació Eudora per al KAB"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Endollable per a importar i exportar contactes de l'Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Endollable d'importació/exportació de telèfon mòbil per al KAB"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Endollable de telèfon mòbil per a importar i exportar entrades de la "
+"llibreta d'adreces"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Endollable d'importació/exportació KDE2 per al KAB"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Endollable per a importar l'antiga llibreta d'adreces del KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Endollable per importació/exportació de LDIF per al KAB"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Endollable per a importar i exportar contactes en el format LDIF de Mozilla "
+"i Netscape"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Endollable d'importació/exportació d'Opera per al KAB"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Endollable per a importar contactes des d'Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+"Endollable d'importació/exportació de la llibreta d'adreces personal d'MS "
+"Exchange per al KAB"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+"Endollable per a importar des de la llibreta d'adreces personal d'MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Endollable d'importació/exportació vCard per al KAB"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Endollable per a importar i exportar contactes en el format vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/cs.po b/translations/desktop_files/kaddressbook-desktops/cs.po
new file mode 100644
index 00000000..ceea72fb
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/cs.po
@@ -0,0 +1,376 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/kaddressbook-desktop-files/cs/>\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: Weblate 4.8.1\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Kniha adres (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr "Outlook 2000"
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Kniha adres Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Kniha adres s DCOP rozhraním"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Nastavení šifrování"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Komunikátor"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Editor adres komunikátorů"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Protokol komunikátorů Knihy adres"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr "AIM"
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Protokol AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Protokol Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr "GroupWise"
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Komunikátor Novell GroupWise"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr "ICQ"
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Protokol ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr "IRC"
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "Protokol Internet Relay Chat"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr "Jabber"
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Protokol Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr "Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Protokol Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "Komunikátor MSN"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr "Skype"
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Internetová telefonie Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr "SMS"
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Protokol SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr "Yahoo"
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Protokol Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Modul distribučního seznamu"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Modul pro správu distribučních seznamů"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Modul distribučního seznamu nové generace"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Modul pro správu knihy adres"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Modul pro správu knih adres"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Modul editoru kontaktů knihy adres"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Rozšiřující modul pro knihu adres"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Modul knihy adres pro import/export"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "Kniha adres"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Správce adres"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Modul knihy adres pro pohledy"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Obecné"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Nastavit knihu adres"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kniha adres;nastavení;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Vlastní stránky"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Nastavení vlastních stránek"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kniha adres;nastavení;vlastní pole;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Hledání v LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Nastavit LDAP pro knihu adres"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kniha adres;nastavení;LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Soubory s elektronickými vizitkami"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Pohled s kartičkami"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Pohled s ikonami"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabulkový pohled"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Modul pro přenos záložek"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Modul pro exportování webových adres kontaktů jako záložky"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Modul pro přenos CSV"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Modul pro import a export kontaktů ve formátu CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Modul pro přenos Eudory"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Modul pro import a export kontaktů programu Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Modul pro přenos s mobilním telefonem"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Modul mobilního telefonu pro import a export záznamů knihy adres"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Modul pro přenos KDE 2"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Modul pro import staré KDE 2 knihy adres"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Modul pro přenos LDIF"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr "Modul pro import a export kontaktů ve formátu Netscape a Mozilla LDIF"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Modul pro přenos Opery"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Modul pro import a export kontaktů programu Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Modul pro přenos osobního adresáře MS Exchange"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Modul pro import osobní knihy adres MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Modul pro přenos vizitek vCard"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Modul pro import a export kontaktů ve formátu vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/cy.po b/translations/desktop_files/kaddressbook-desktops/cy.po
new file mode 100644
index 00000000..b9c08254
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/cy.po
@@ -0,0 +1,383 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KLlyfrCyfeiriadau (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Llyfr Cyfeiriadau Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Llyfr Cyfeiriadau gyda Rhyngwyneb DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "Negesydd MSN"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Ategyn Rhestr Ddosbarthu KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Ategyn ar gyfer rheoli rhestri dosbarthu"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Ategyn Rhestr Ddosbarthu KAB"
+
+#. Name
+#: features/resourceselection.desktop:7
+#, fuzzy
+msgid "Address Book Management Plugin"
+msgstr "Ategyn Golwg KLlyfrCyfeiriadau"
+
+#. Comment
+#: features/resourceselection.desktop:9
+#, fuzzy
+msgid "Plugin for managing address books"
+msgstr "Ategyn ar gyfer rheoli rhestri dosbarthu"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+#, fuzzy
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Ategyn Mewnforio/Allforio KLlyfrCyfeiriadau"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Ategyn Estyniad KLlyfrCyfeiriadau"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Ategyn Mewnforio/Allforio KLlyfrCyfeiriadau"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "KAddressBook/LlyfrKyfeiriadau"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Rheolydd Cyfeiriadau"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Ategyn Golwg KLlyfrCyfeiriadau"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Cyffredinol"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Ffurfweddu'r Llyfr Cyfeiriadau"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; ffurfweddu;godosiadau;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+#, fuzzy
+msgid "Configure the Custom Pages"
+msgstr "Ffurfweddu'r Llyfr Cyfeiriadau"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+#, fuzzy
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; ffurfweddu;godosiadau;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Chwiliad LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Ffurfweddu gosodiadau LDAP y Llyfr Cyfeiriadau"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook;ffurfweddu; gosodiadau;LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Ffeiliau Cerdyn Busnes Electronig"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Gweld Cerdyn"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Gweld Eicon"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Golwg Tabl"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Ategyn XXPort Tudnodau KAB"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Ategyn i allforio cyfeiriadau gwê y cysylltau fel tudnodau"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Ategyn XXPort CSV KAB"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Ategyn i fewnforio ac allforio cysylltau mewn fformat CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Ategyn XXPort Eudora KAB"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Ategyn i fewnforio ac allforio cysylltau Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Ategyn XXPort Ffôn Symudol KAB"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Ategyn Ffôn Symudol i fewnforio ac allforio cofnodion y Llyfr Cyfeiriadau"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Ategyn XXPort KDE2 KAB"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Ategyn i fewnforio'r hen lyfr cyfeiriadau KDE2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Ategyn XXPort LDIF KAB"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Ategyn i fewnforio ac allforio cysylltau yn fformat LDIF Netscape a Mozilla"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Ategyn XXPort Opera KAB"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Ategyn i fewnforio cysylltau Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Ategyn XXPort Llyfr Cyfeiriadau Personol MS Exchange KAB"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Ategyn i fewnforio Llyfrau Cyfeiriadau Personol MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Ategyn XXPort vCard KAB"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Ategyn i fewnforio ac allforio cysylltau yn fformat vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/da.po b/translations/desktop_files/kaddressbook-desktops/da.po
new file mode 100644
index 00000000..95540dbc
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/da.po
@@ -0,0 +1,382 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KAddressBook visningsplugin"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! adressebog"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Adressebog med en DCOP-grænseflade"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Krypto-indstillinger"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+#, fuzzy
+msgid "Instant Messaging"
+msgstr "Instant Messaging adresseeditor"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Instant Messaging adresseeditor"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook kvikbesked-protokol"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM Protokol"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu Protokol"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu Protokol"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ Protokol"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber Protokol"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile Protokol"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile Protokol"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype internettelefoni"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS Protokol"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo Protokol"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB-Distribution liste-plugin"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Plugin til at håndtere distributionslister"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Næste generations-plugin til KAB-Distribution-liste"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Plugin for adressebogshåndtering"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Plugin til at håndtere adressebøger"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressBook plugin til kontakteditorkontrol"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressBook udvidelsesplugin"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressBook Import/Eksport-plugin"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! adressebog"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Adressehåndtering"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressBook visningsplugin"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Generelt"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Indstil adressebogen"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; indstil; opsætning;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Brugervalgte sider"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Indstil de selvvalgte sider"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; indstil; opsætning; brugervalgte felter;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP-Opslag"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Indstil adressebogens LDAP-opsætning"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; indstil; opsætning; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Elektroniske forretningskort-filer"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Kort-visning"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Ikon-visning"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabel-visning"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB Bogmærke XXPort-plugin"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Plugin til at eksporte netadresser for kontakter som bogmærker"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB CSV XXPort-plugin"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Plugin til at importere og eksportere kontakter i CSV-format"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB Eudora XXPort-plugin"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Plugin til at importere og eksportere Eudora-kontakter"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB Mobiltelefon XXPort-plugin"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Mobiltelefon-plugin til at importere og eksportere adressebogsindgange"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 XXPort-plugin"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Plugin til at importere den gamle KDE 2 adressebog"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF XXPort-plugin"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Plugin til at importere og eksportere kontakter i Netscape og Mozilla LDIF-"
+"format"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB Opera XXPort-plugin"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Plugin til at importere Opera-kontakter"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB MS Exchange personlig adressebog XXPort Plugin"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Plugin til at importere MS Exchange personlige adressebøger"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB vCard XXPort-plugin"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Plugin til at importere og eksportere kontakter i vCard-format"
diff --git a/translations/desktop_files/kaddressbook-desktops/de.po b/translations/desktop_files/kaddressbook-desktops/de.po
new file mode 100644
index 00000000..a6cf4e25
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/de.po
@@ -0,0 +1,381 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Adressbuch (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo!-Adressbuch"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Adressbuch mit DCOP-Schnittstelle"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Kryptographie-Einstellungen"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+#, fuzzy
+msgid "Instant Messaging"
+msgstr "Editor für Instant Messaging-Adressen"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Editor für Instant Messaging-Adressen"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Adressbuch Instant Messaging Protokoll"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM-Protokoll"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu-Protokoll"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu-Protokoll"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ-Protokoll"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber-Protokoll"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile-Protokoll"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile-Protokoll"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Internet-Telefonie mit Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS-Protokoll"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr "Yahoo!"
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo!-Protokoll"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Verteilerlisten-Modul für Adressbuch"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Modul zur Verwaltung von Verteilerlisten"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Verteilerlisten-Modul für neues Adressbuch"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Adressbuchverwaltungs-Modul"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Modul zur Verwaltung von Adressbüchern"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Adressbuch Kontakteditor-Modul"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Erweiterungsmodul für Adressbuch"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Import/Export-Modul für Adressbuch"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "Adressbuch"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Adressverwaltung"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Betrachter-Modul für Adressbuch"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Allgemein"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Adressbuch einrichten"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "KAddressbook;Adressbuch;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Benutzerdefinierte Seiten"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Einstellungen für benutzerdefinierte Seiten"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+"KAddressbook;Konfigurieren;Einstellungen;benutzerdefinierte Felder;"
+"Einrichten ;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP-Nachschlagefunktion"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Adressbuch-Modul für LDAP-Einstellungen"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "KAddressbook;LDAP;Einstellungen; Einrichten;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Dateien für elektronische Visitenkarten"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Visitenkarten-Betrachter"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Symbolansicht"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabellenansicht"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Lesezeichen-XXPort-Modul für Adressbuch"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Modul zum Export von Web-Adressen der Kontakte als Lesezeichen"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "CSV-XXPort-Modul für Adressbuch"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Modul zum Import/Export von Kontakten im CSV-Format"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Eudora-XXPort-Modul für Adressbuch"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Modul zum Import/Export von Eudora-Kontakten"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Mobiltelefon-XXPort-Modul für Adressbuch"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Mobiltelefon-Modul zum Import/Export von Adressbuch-Einträgen"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KDE2-XXPort-Modul für Adressbuch"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Modul zum Import von Adressbüchern aus KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "LDIF-XXPort-Modul für Adressbuch"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Modul zum Import/Export von Kontakten im LDIF-Format aus Netscape und Mozilla"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Opera-XXPort-Modul für Adressbuch"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Modul zum Import von Opera-Kontakten"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "MS-Exchange-Adressbuch-XXPort-Modul"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Modul für den Import von persönlichen Adressbüchern aus MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "vCard-XXPort-Modul für Adressbuch"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Modul für Import/Export von Kontakten im vCard-Format"
diff --git a/translations/desktop_files/kaddressbook-desktops/el.po b/translations/desktop_files/kaddressbook-desktops/el.po
new file mode 100644
index 00000000..8cf64009
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/el.po
@@ -0,0 +1,383 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Πρόσθετο προβολής του KAddressBook"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Βιβλίο διευθύνσεων Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Βιβλίο διευθύνσεων με ένα περιβάλλον χρήσης DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Προτιμήσεις κρυπτογραφίας"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Στιγμιαίο μήνυμα"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Επεξεργαστής διευθύνσεων στιγμιαίων μηνυμάτων"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Πρωτόκολλο στιγμιαίου μηνύματος του KAddressbook"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Πρωτόκολλο AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Πρωτόκολλο Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Πρωτόκολλο Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "GroupWise Messenger της Novell"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Πρωτόκολλο ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Πρωτόκολλο Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Πρωτόκολλο Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Πρωτόκολλο Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Πρωτόκολλο SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Πρωτόκολλο Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Πρόσθετο λίστας διανομής του KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Πρόσθετο για τη διαχείριση λιστών διανομής"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Πρόσθετο επόμενης γενιάς λίστας διανομής του KAB"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Πρόσθετο διαχείρισης βιβλίου διευθύνσεων"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Πρόσθετο για τη διαχείριση βιβλίων διευθύνσεων"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Πρόσθετο επεξεργασίας επαφής του KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Πρόσθετο επέκτασης του KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Πρόσθετο εισαγωγής/εξαγωγής του KAddressBook"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Βιβλίο διευθύνσεων Yahoo!"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Διαχειριστής διευθύνσεων"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Πρόσθετο προβολής του KAddressBook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Γενικά"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Ρύθμιση του Βιβλίου διευθύνσεων"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; ρύθμιση; ρυθμίσεις;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Προσαρμοσμένες σελίδες"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Ρύθμιση των προσαρμοσμένων σελίδων"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; ρύθμιση; ρυθμίσεις; προσαρμοσμένα πεδία;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Αναζήτηση LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Αλλάξτε τις ρυθμίσεις LDAP του Βιβλίου διευθύνσεων"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; ρύθμιση; ρυθμίσεις; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Αρχεία επαγγελματικών ηλεκτρονικών καρτών"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Προβολή καρτών"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Προβολή εικονιδίων"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Προβολή πίνακα"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Πρόσθετο εξαγωγής σελιδοδεικτών του KAB"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+"Πρόσθετο για εξαγωγή των διευθύνσεων ιστοσελίδων των επαφών σαν σελιδοδείκτες"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Πρόσθετο εισαγωγής/εξαγωγής CSV του KAB"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Πρόσθετο για εισαγωγή και εξαγωγή των επαφών μορφής CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Πρόσθετο εισαγωγής/εξαγωγής Eudora του KAB"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Πρόσθετο για εισαγωγή και εξαγωγή επαφών του Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Πρόσθετο εισαγωγής/εξαγωγής κινητών τηλεφώνων του KAB"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Πρόσθετο για εισαγωγή και εξαγωγή επαφών βιβλίου διευθύνσεων από κινητά "
+"τηλέφωνα"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Πρόσθετο εισαγωγής KDE2 του KAB"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Πρόσθετο για εισαγωγή του παλιού βιβλίου διευθύνσεων του KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Πρόσθετο εισαγωγής/εξαγωγής LDIF του KAB"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Πρόσθετο για εισαγωγή και εξαγωγή επαφών μορφής LDIF του Netscape και Mozilla"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Πρόσθετο εισαγωγής Opera του KAB"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Πρόσθετο για εισαγωγή επαφών του Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Πρόσθετο εισαγωγής MS Exchange προσωπικού βιβλίου διευθύνσεων του KAB"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Πρόσθετο για εισαγωγή προσωπικών βιβλίων διευθύνσεων του MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Πρόσθετο εισαγωγής/εξαγωγής vCard του KAB"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Πρόσθετο για εισαγωγή και εξαγωγή επαφών μορφής vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/eo.po b/translations/desktop_files/kaddressbook-desktops/eo.po
new file mode 100644
index 00000000..feabdf16
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/eo.po
@@ -0,0 +1,385 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KAddressBook Rigardo-Kromaĵo"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr "Redmondo 2000"
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! Adresaro"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Adresaro kun DCOP-interfaco"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Agordoj pri Ĉifrado"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Rapidmesaĝilo"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Rapidmesaĝila Adres-Redaktilo"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook Rapidmesaĝila Protokolo"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM-Protokolo"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu Protokolo"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu Protokolo"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell GroupWise Mesaĝilo"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ Protokolo"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber Protokolo"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile Protokolo"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile Protokolo"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "MSN Mesaĝilo"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr "kype"
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype Interreta Telefonado"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS Protokolo"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo Protokolo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB Distribulista Kromprogramo"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Kromaĵo por administri distribulistojn"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB Distribulista Kromprogramo"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Adresar-administra kromaĵo"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Kromaĵo por administri ddresarojn"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Kromaĵo por KAddressBook Kontaktredaktila Fenestraĵo"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressBook Etendiga Kromaĵo"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressBook Import-/Eksport-Kromaĵo"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! Adresaro"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Adresadministrilo"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressBook Rigardo-Kromaĵo"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Ĝenerala"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Agordi la Adreslibron"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook;adresaro;agordo;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Propraj Paĝoj"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Agordi la proprajn paĝojn"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+#, fuzzy
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook;adresaro;agordo;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP-Serĉo"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Agordo de tenejo"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+#, fuzzy
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook;adresaro;agordo;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Dosieroj de Elektronika Vizitkarto"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Kartrigardo"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Piktogramrigardo"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabelrigardo"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+#, fuzzy
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAddressBook Import-/Eksport-Kromaĵo"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+#, fuzzy
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Kromaĵo por administri ddresarojn"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+#, fuzzy
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Kromaĵo por administri ddresarojn"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/es.po b/translations/desktop_files/kaddressbook-desktops/es.po
new file mode 100644
index 00000000..c77217ae
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/es.po
@@ -0,0 +1,387 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Plugin del visor de KAddressBook"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Libreta de direcciones de Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Libreta de direcciones con un interfaz DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Preferencias de cifrado"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Mensajería instantánea"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Editor de direcciones de mensajería instantánea"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Protocolo de mensajería instantánea de KAddressbook"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Protocolo AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Protocolo Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Protocolo Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Servidor de mensajería de Novell GroupWise"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Protocolo ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Protocolo Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Protocolo Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Protocolo Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Telefonía por internet con Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Protocolo SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Protocolo Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Plugin KAB para listas de distribución"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Plugin para gestionar listas de distribución"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Plugin KAB para listas de distribución"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Extensión para gestionar la libreta de direcciones"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Extenxión para gestionar libretas de direcciones"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Accesorio de elemento de editor de contactos para KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Plugin de extensión de KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Plugin para importar/exportar en KAddressBook"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Libreta de direcciones de Yahoo!"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Gestor de direcciones"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Plugin del visor de KAddressBook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Configura la libreta de direcciones"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; configurar; opciones;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Páginas personalizadas"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Configura las páginas personalizadas"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; configurar; opciones; campos personalizados;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Búsqueda LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Configura las opciones de búsqueda LDAP en la libreta de direcciones"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; configurar; opciones; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Archivos de tarjetas de visita electrónicas"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Vista de tarjeta"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Vista de icono"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Vista de tabla"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Plugin de KAB para {im,ex}portar marcadores"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+"Plugin para exportar las direcciones web de los contactos como marcadores"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Plugin de KAB para {im,ex}portar CSV"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Plugin para importar y exportar contactos en formato CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Plugin de KAB para {ex,im}portar de Eudora"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Plugin para importar y exportar contactos de Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Plugin de KAB para {im,ex}portar números de móvil"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Plugin para importar y exportar números de móviles de las entradas de la "
+"libreta de direcciones"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Plugin KAB para {im,ex}portar KDE2"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Plugin para importar de la libreta de direcciones de KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Plugin para {im,ex}portar LDIF"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Plugin para importar y exportar contactos en el formato de intercambio LDIF "
+"de Netscape y Mozilla"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Plugin KAB para {im,ex}portar Opera"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Plugin para importar contactos de Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+"Plugin de KAB para {im,ex}portar libretas de direcciones personales de MS "
+"Exchange"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Plugin para importar libretas de direcciones personales de MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Plugin KAB para {im,ex}portar vCard"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Plugin para importar y exportar contactos en formato vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/et.po b/translations/desktop_files/kaddressbook-desktops/et.po
new file mode 100644
index 00000000..b396e5fb
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/et.po
@@ -0,0 +1,380 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KDE aadressiraamat (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! aadressiraamat"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Aadressiraamat DCOP-liidesega"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Krüptoseadistused"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Kiirsuhtlus"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Kiirsuhtluse aadresside redaktor"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "TDE aadressiraamatu kiirsuhtlusprotokoll"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM protokoll"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu protokoll"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu protokoll"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novelli GroupWise Messenger"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ protokoll"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabberi protokoll"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile'i protokoll"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile'i protokoll"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Internetitelefon Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS protokoll"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo protokoll"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB postiloendi plugin"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Plugin postiloendite haldamiseks"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB postiloendi järgmise põlvkonna plugin"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Aadressihalduri plugin"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Plugin aadressiraamatute haldamiseks"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "TDE aadressiraamatu kontaktide redigeerimise plugin"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "TDE aadressiraamatu laiendi plugin"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "TDE aadressiraamatu import/eksportplugin"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "TDE aadressiraamat"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Aadressihaldur"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "TDE aadressiraamatu vaatamise plugin"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Üldine"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Aadressiraamatu seadistamine"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kde aadressiraamat; seadistamine; seadistused;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Omaloodud leheküljed"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Omaloodud lehekülgede seadistamine"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kde aadressiraamat; seadistamine; seadistused; omaloodud väljad;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP otsing"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Aadressiraamatu LDAP seadistused"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kde aadressiraamat; seadistamine; seadistused; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Elektrooniline visiitkaart"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Kaardivaade"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Ikoonivaade"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabelivaade"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB järjehoidjate eksportplugin"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Plugin kontaktide veebiaadresside eksportimiseks järjehoidjatena"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB CSV eksport/importplugin"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Plugin kontaktide importimiseks ja eksportimiseks CSV vormingus"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB Eudora eksport/importplugin"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Plugin Eudora kontaktide importimiseks ja eksportimiseks"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB mobiiltelefoni eksport/importplugin"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Mobiiltelefoni plugin aadressiraamatu kirjete importimiseks ja eksportimiseks"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 importplugin"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Plugin vana KDE2 aadressiraamatu importimiseks"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF eksport/importplugin"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Plugin kontaktide importimiseks ja ekportimiseks Netscape ja Mozilla LDIF "
+"vormingus"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB Opera importplugin"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Plugin Opera kontaktide importimiseks"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB MS Exchange personaalse aadressiraamatu importplugin"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Plugin MS Exchange personaalse aadressiraamatu importimiseks"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB vCardi eksport/importplugin"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Plugin kontaktide importimiseks ja eksportimiseks vCardi vormingus"
diff --git a/translations/desktop_files/kaddressbook-desktops/eu.po b/translations/desktop_files/kaddressbook-desktops/eu.po
new file mode 100644
index 00000000..7cdec7d5
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/eu.po
@@ -0,0 +1,380 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Helbide-liburua"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! helbide-liburua"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "DCOP interfazedun helbide-liburua"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Kriptografia hobespenak"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Berehalako mezularitza"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Berehalako mezularitza helbide editorea"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook berehalako mezularitza protokoloa"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM protokoloa"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu protokoloa"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu protokoloa"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell GroupWise mezularia"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ protokoloa"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber protokoloa"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile protokoloa"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile protokoloa"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype-en internet telefonia"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS protokoloa"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo protokoloa"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB banaketa zerrenda plugin-a"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Banaketa zerrendak kudeatzeko plugin-a"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB banaketa zerrenda plugin-a"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Helbide-liburu kudeaketa plugin-a"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Helbide-liburuak kudeatzeko plugin-a"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressBook-en kontaktu editore trepetaren plugin-a"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressBook-en luzapen plugin-a"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressBook-en inportazio/esportazio plugin-a"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "Helbide-liburua"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Helbide kudeatzailea"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressBook-en bistaratze plugin-a"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Orokorra"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Konfiguratu helbide-liburua"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; konfiguratu; ezarpenak;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Orri pertsonalizatuak"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Konfiguratu orri pertsonalizatuak"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; konfiguratu; ezarpenak; eremu pertsonalizatuak;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP bilaketa"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Konfiguratu Helbide-liburuaren LDAP ezarpenak"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; konfiguratu;ezarpenak; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Electronic Business Card fitxategiak"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Txartel ikuspegia"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Ikono ikuspegia"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Taula ikupegia"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB-en laster-marka in/esportazio plugin-a"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Kontaktuen web-helbideak laster-markak bezala esportatzeko plugin-a"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB-en CSV in/esportazioa plugin-a"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "CSV formatuan kontaktuak esportatu eta inportatzeko plugin-a"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB-en Eudora in/esportazio plugin-a"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Eudora kontaktuak inportatu/esportatzeko plugin-a"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB-en mugikorren in/esporatazio plugin-a"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Helbide-liburuko sarrerak in/esportatzeko mugikorren plugin-a"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB-en KDE2 in/esportazio plugin-a"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "KDE2-ko helbide-liburu zaharrak inporatzeko plugin-a"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB-en LDIF in/esportazio plugin-a"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Netscape eta Mozilla-ren LDIF formatuan kontaktuak in/esportatzeko plugin-a"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB-en Opera in/esportazio plugin-a"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Operaren kontaktuak inportatzeko plugin-a"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB-en MS Exchange Personal helbide-liburu in/esportazio plugin-a"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "MS Exchange Personal helbid-liburuak in/esportatzeko plugina-"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB-en vCard in/esportazio plugin-a"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "vCard formatuko kontaktuak in/esportatzeko plugin-a"
diff --git a/translations/desktop_files/kaddressbook-desktops/fa.po b/translations/desktop_files/kaddressbook-desktops/fa.po
new file mode 100644
index 00000000..4a2b9365
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/fa.po
@@ -0,0 +1,379 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "وصلۀ نمای KAddressBook"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr "اوت لوک ۲۰۰۰"
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "کتاب نشانی یاهو!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "کتاب نشانی با یک واسط DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "تنظیمات مخفی"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "پیام‌دهی فوری"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "ویرایشگر نشانی پیام‌دهی فوری"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "قرارداد پیام‌دهی فوری KAddressbook"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "قرارداد AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "قرارداد Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "قرارداد Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "مدیر Novell GroupWise"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "قرارداد ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "گپ بازپخش اینترنت"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "قرارداد Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr "در ضمن"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "قرارداد در ضمن"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "پیام‌رسان MSN"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "ارتباط تلفنی اینترنت Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr "پیام کوتاه"
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "قرارداد پیام کوتاه"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr "یاهو"
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "قرارداد یاهو"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "وصلۀ فهرست توزیع KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "وصله برای مدیریت فهرستهای توزیع"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "وصلۀ فهرست توزیع KAB"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "وصلۀ مدیریت کتاب نشانی"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "وصله برای مدیریت کتابهای نشانی"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "وصلۀ عنصر ویرایشگر تماس KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "وصلۀ پسوند KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "وصلۀ صادرات/واردات KAddressBook"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "کتاب نشانی یاهو!"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "مدیر نشانی"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "وصلۀ نمای KAddressBook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "عمومی"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "پیکربندی کتاب نشانی"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook، پیکربندی، تنظیمات‌;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "صفحات سفارشی"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "پیکربندی صفحات سفارشی"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddresAPsbook، پیکربندی، تنظیمات، حوزه‌های سفارشی‌;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "مراجعه به LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "پیکربندی تنظیمات LDAP کتاب نشانی‌"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook، پیکربندی، تنظیمات، LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "پرونده‌های کارت تجاری الکترونیکی"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "نمای کارت"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "نمای شمایل"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "نمای جدول"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "وصلۀ XXPort چوب الف KAB"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "وصله برای صادرات نشانیهای وب تماسها به عنوان چوب الفها"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "وصلۀ KAB CSV XXPort"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "وصله برای واردات و صادرات تماسها در قالب CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "وصلۀ KAB Eudora XXPort"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "وصله برای واردات و صادرات تماسهای Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "وصلۀ XXPort تلفن همراه KAB"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "وصلۀ تلفن همراه جهت واردات و صادرات مدخلهای کتاب نشانی"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "وصلۀ KAB KDE2 XXPort"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "وصله برای واردات کتاب نشانی قدیمی KDE ۲"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "وصلۀ KAB LDIF XXPort"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr "وصله برای واردات و صادرات تماسها در قالب LDIF موزیلا و نت‌اسکیپ"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "وصلۀ KAB Opera XXPort"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "وصله برای واردات تماسهای Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "وصلۀ XXPort کتاب نشانی شخصی مبادلۀ KAB MS"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "وصله برای واردات کتابهای نشانی شخصی مبادلۀ MS"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "وصلۀ KAB vCard XXPort"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "وصله برای واردات و صادرات تماسها در قالب vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/fi.po b/translations/desktop_files/kaddressbook-desktops/fi.po
new file mode 100644
index 00000000..fc2a9edd
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/fi.po
@@ -0,0 +1,383 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Osoitekirja"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo-osoitekirja"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Osoitekirja DCOP-rajapinnalla"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Salauksen asetukset"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Pikaviestintä"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Pikaviestinnän osoitteet"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddresbookin pikaviestintäprotokolla"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM-protokolla"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu -protokolla"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu -protokolla"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ-protokolla"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber-protokolla"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile-protokolla"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile-protokolla"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype Internet-puhelin"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS-protokolla"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo-protokolla"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB-jakelulistaliitännäinen"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Liitännäinen jakelulistojen hallintaan"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB-jakelulistaliitännäinen"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Osoitekirjan ylläpidon laajennus"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Osoitekirjojen ylläpidon laajennus"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Osoitekirjan yhteystietojen muokkainliitännäinen"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressbookin laajennusliitännäinen"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressbookin tuonti/vienti-liitännäinen"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "Osoitekirja"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Osoitteenhallinta"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressbook näyttöliitännäinen"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Yleinen"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Muokkaa osoitekirjan asetuksia"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; aseta; asetukset;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Omat sivut"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Muokkaa omia sivuja"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "osoitekirja; aseta; asetukset; omat kentät;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP-haku"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Aseta osoitekirjan LDAP-asetuksia"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; aseta; asetukset; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Sähköiset käyntikorttitiedostot"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Korttinäkymä"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Kuvakenäkymä"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Taulukkonäkymä"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB-kirjanmerkkiliitännäinen"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+"Liitännäinen, joka muuntaa kontaktien sisältämät verkko-osoitteet "
+"kirjanmerkeiksi"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB CSV -liitännäinen"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Liitännäinen kontaktien vientiin ja tuontiin CSV-muodossa"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB Euroda -liitännäinen"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Liitännäinen Eudora-kontaktien tuomiseen ja viemiseen"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB-matkapuhelinliitännäinen"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Matkapuhelinliitännäinen osoitekirjan kontaktien tuontiin ja vientiin."
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 -liitännäinen"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Liitännäinen vanhan KDE2-osoitekirjan tuontiin"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF -liitännäinen"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Liitännäinen Netscapen ja Mozillan LDIF-muodon kontaktien tuontiin ja "
+"vientiin"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB Opera -liitännäinen"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Liitännäinen Operan kontaktien tuomiseen"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB MS Exchangen henkilökohtaisen osoitekirjan liitännäinen"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Liitännäinen MS Exchangen henkilökohtaisten osoitekirjojen tuontiin"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB vCard liitännäinen"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Liitännäinen vCard-muodossa olevien kontaktien tuontiin ja vientiin"
diff --git a/translations/desktop_files/kaddressbook-desktops/fo.po b/translations/desktop_files/kaddressbook-desktops/fo.po
new file mode 100644
index 00000000..0f43cd3a
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/fo.po
@@ -0,0 +1,377 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KAdressubók (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "KAdressubók (KDE 3.1)"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+#, fuzzy
+msgid "KAddressBook View Plugin"
+msgstr "KAdressubók (KDE 3.1)"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr ""
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/fr.po b/translations/desktop_files/kaddressbook-desktops/fr.po
new file mode 100644
index 00000000..13ce8215
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/fr.po
@@ -0,0 +1,389 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Carnet d'adresses"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Carnet d'adresses Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Carnet d'adresses avec une interface DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Préférences de chiffrement"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Messagerie instantanée"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Éditeur d'adresses de messagerie instantanée"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Protocole de messagerie instantanée pour KAddressbook"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Protocole AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Protocole Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Protocole Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Messagerie GroupWise de Novell"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Protocole ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Protocole Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Protocole Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Protocole Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "Messagerie MSN"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Téléphonie Internet Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Protocole SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Protocole Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Module de liste de diffusion pour KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Module pour gérer des listes de diffusion"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Module de liste de diffusion pour KAB"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Module de gestion de carnet d'adresses"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Module pour gérer les carnets d'adresses"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Module d'édition de contacts de KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Module d'extension pour KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Module d'import / export pour KAddressBook"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "Carnet d'adresses"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Gestionnaire d'adresses"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Module d'affichage pour KAddressBook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Général"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Configurer le carnet d'adresses"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+"carnet d'adresses;adresses;kab;kaddressbook;configurer;paramètres;paramètre;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Pages personnalisées"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Configurer les pages personnalisées"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+"carnet d'adresses;adresses;kab;kaddressbook;configurer;paramètres;paramètre;"
+"champ;personnalisé;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Consultation LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Configurer les paramètres du carnet d'adresses LDAP"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+"carnet d'adresses;adresses;kab;kaddressbook;configurer;paramètres;paramètre;"
+"LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Fichiers de cartes de commerce électroniques"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Vue en cartes"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Icônes"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Vue en tableaux"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Module d'import / export de signets pour KAB"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Module d'export des adresses internet des contacts en signets"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Module d'import / export CSV pour KAB"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Module d'import / export de contacts au format CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Module d'import / export Eudora pour KAB"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Module d'import / export de contacts Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Module d'import / export de téléphone portable pour KAB"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Module de téléphone portable pour importer et exporter des entrées du carnet "
+"d'adresses"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Module d'import / export de KDE 2 pour KAB"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Module d'import du vieux carnet d'adresses de KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Module d'import / export LDIF pour KAB"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Module d'import / export des contacts au format LDIF Mozilla et Netscape"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Module d'import / export Opera pour KAB"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Module d'import de contacts Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+"Module d'import / export de carnets d'adresses personnels de MS Exchange "
+"pour KAB"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Module d'import des carnets d'adresses personnels MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Module d'import / export vCard pour KAB"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Module d'import / export de contacts au format vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/fy.po b/translations/desktop_files/kaddressbook-desktops/fy.po
new file mode 100644
index 00000000..abde5c1b
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/fy.po
@@ -0,0 +1,394 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KAddressBook Werjefte Plugin"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo!-adresboek"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Adresboek mei DCOP-ynterface"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Fersiferingynstellings"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+#, fuzzy
+msgid "Instant Messaging"
+msgstr "Instant Messaging Adresbewurker"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Instant Messaging Adresbewurker"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook Instant Messaging-protokol"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM-protokol"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu-protokol"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu-protokol"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell GroupWise-messenger"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ-protokol"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber-protokol"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile-protokol"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile-protokol"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype ynternettelefony"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS-protokol"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo-protokol"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB Distribúsjelist-plugin"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Plugin foar nit behearen fan distribúsjelisten"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB Distribúsjelist-plugin"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Plugin foar adresboekbehear"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Plugin foar it behearen fan adresboeken"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressBook Kontaktbewurker-plugin"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressBook taheaksel plugin"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressBook Ymport/Eksport Plugin"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo!-adresboek"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Adresboekbehearder"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressBook Werjefte Plugin"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Algemien"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Hjir kinne jo, jo adresboek oanpasse"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "adresboek;KAB;kab;kaddressbook;ynstellings;configuratie;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Oanpaste siden"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Hjir kinne jo de oanpaste siden ynstelle"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+"adresboek;KAB;kab;kaddressbook;ynstellings;konfiguraasje;oanpaste fjilden;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP-sykasksje"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Hjir kinne jo de LDAP-ynstellings foar jo adresboek ynstelle"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "adresboek;kaddressbook;LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Elektronyske fisitekaartsjetriemmen"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Kaartwerjefte"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Byldkaikewerjefte"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabelwerjefte"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB Blêdwizer XXPort-plugin"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+"Plugin foar it eksportearjen fan de webadressen fan de kontaktpersoanen as "
+"blêdwizers"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+#, fuzzy
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB vCard XXPort-plugin"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+"Plugin foar it ymportearjen en eksportearjen fan kontaktpersoanen yn CSV-"
+"formaat"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+#, fuzzy
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB KDE2 XXPort-plugin"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+"Plugin foar it importearjen en eksportearjen fan Eudora-kontaktpersoanen"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB Mobile Tillefoan XXPort-plugin"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Mobile-tillefoan-plugin faor it importearjen en eksportearjen fan "
+"adresboekitems"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 XXPort-plugin"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Plugin foar it importearjen fan it âlde KDE 2-adresboek"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF XXPort-plugin"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Plugin foar it ymportearjen en eksportearjen fan kontaktpersoanen yn "
+"Netscape's en Mozilla's LDIF-formaat"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+#, fuzzy
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB vCard XXPort-plugin"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Plugin foar ymportearjen fan Opera's kontaktpersoanen"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB MS Exchange Personal Addressbook XXPort-plugin"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Plugin foar it ymporteajen fan MS Exchange-adresboeken"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB vCard XXPort-plugin"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Plugin foar it ymportearjen fan kontaktpersoanen yn vCard-formaat"
diff --git a/translations/desktop_files/kaddressbook-desktops/ga.po b/translations/desktop_files/kaddressbook-desktops/ga.po
new file mode 100644
index 00000000..0bc53fdb
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/ga.po
@@ -0,0 +1,382 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr ""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Prótacal AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Prótacal Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Prótacal Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Prótacal ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Prótacal Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Prótacal Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Prótacal Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Prótacal SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Prótacal Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Breiseán Bhainisteoireacht Leabhar na Seoltaí"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+#, fuzzy
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Breiseán Bhainisteoireacht Leabhar na Seoltaí"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+#, fuzzy
+msgid "KAddressBook Extension Plugin"
+msgstr "Breiseán Bhainisteoireacht Leabhar na Seoltaí"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+#, fuzzy
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Breiseán Bhainisteoireacht Leabhar na Seoltaí"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr ""
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Bainisteoir na Seoltaí"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+#, fuzzy
+msgid "KAddressBook View Plugin"
+msgstr "Breiseán Bhainisteoireacht Leabhar na Seoltaí"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Ginearálta"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Cumraigh an Leabhar Seoltaí"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; cumraigh; cumraíocht; socruithe;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Leathanaigh Shaincheaptha"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Cumraigh na Leathanaigh Shaincheaptha"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; cumraith; cumraíocht; socruithe; réimsí saincheaptha;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Cuardach LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+#, fuzzy
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Cumraigh an Leabhar Seoltaí"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; cumraigh; cumraíocht; socruithe; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Amharc Deilbhíní"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/gl.po b/translations/desktop_files/kaddressbook-desktops/gl.po
new file mode 100644
index 00000000..0f09a6bb
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/gl.po
@@ -0,0 +1,384 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Extensión de Visualización para KAddressBook"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Libro de enderezos con interface DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Preferencias de Cifraxe"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Mensaxería Instantánea"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Editor de Enderezos de Mensaxería Instantánea"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Protocolo de Mensaxería Instantánea de KAddressbook"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Protocolo AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Protocolo Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Protocolo Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Protocolo ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Protocolo Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Protocolo Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Protocolo Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Telefonía por Internet con Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Protocolo SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Protocolo Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Extensión de Lista de Distribución KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Plugin para manexar listas de distribución"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Extensión de Lista de Distribución KAB"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Extensión para xestión do Caderno de Enderezos"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Extensión para xestionar cadernos de enderezos"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Extensión Editor de Contactos para KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Engadido de Extensión para KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Extensión de Importación/Exportación para KAddressBook"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Extensión de Visualización para KAddressBook"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Xestor de Enderezos"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Extensión de Visualización para KAddressBook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Xeral"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Configurar o Caderno de Enderezos"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; configurar; opcións;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Páxinas Personalizadas"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Configurar as Páxinas Personalizadas"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; configurar; opcións; campos personalizados;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Procura LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Configurar as opcións do Caderno de Enderezos de LDAP"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; configurar;opcións; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Ficheiros de Tarxetas de Visita Electrónicas"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Vista de tarxetas"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Vista en iconas"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Vista de árbore"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Extensión XXPort de Marcadores para KAB"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Extensión para exportar os enderezos web dos contactos como marcadores"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Extensión XXPort de CSV para KAB"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Extensión para importar e exportar contactos e formato CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Extensión XXPort de Eudora para KA"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Extensión para importar e exportar contactos Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Extensión XXPort de Teléfono Móbil para KAB"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Extensión de Teléfono Móbil para importar e exportar entradas do caderno de "
+"enderezos"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Extensión XXPort de KDE2 para KAB"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Extensión para importar o vello caderno de enderezos de KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Extensión XXPort de LDIF para KAB"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Extensión para importar e exportar contactos en formato LDIF de Netscape e "
+"Mozilla"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Extensión XXPort para de Opera KAB"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Extensión para importar contactos de Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Extensión XXPort do Caderno de Enderezos de MS Exchange para KAB"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Extensión para importar Cadernos de Enderezos Persoais de MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Extensión XXPort de vCard para KAB"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Plugin para importar e exportar contactos en formato vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/he.po b/translations/desktop_files/kaddressbook-desktops/he.po
new file mode 100644
index 00000000..ea503bbf
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/he.po
@@ -0,0 +1,382 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "פנקס כתובות"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "פנקס כתובת של Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "פנקס כתובת עם ממשק DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "מאפייני הצפנה"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "מסרים מיידיים"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "עורך כתובות מסרים מידיים"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "פרוטוקול מסרים מידיים של KAddressbook"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "פרוטוקול AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "פרוטוקול Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "פרוטוקול Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "מסנג'ר של Novell GroupWise"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "פרוטוקול ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "פרוטוקול Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "פרוטוקול Meanhwile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "פרוטוקול Meanhwile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "טלפוניית רשת של Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "פרוטוקול SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "פרוטוקול Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "תוסף לניהול רשימות תפוצה"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "תוסף מנהל הכתובות"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "תוסף לניהול פנקסי כתובות"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "תוסף תצוגה עבור עורך אנשי קשר של פנקס הכתובות"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "תוסף הרחבה עבור פנקס הכתובות"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "תוסף ייבוא/יצוא עבור פנקס הכתובות"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "פנקס כתובות"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "מנהל הכתובות"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "תוסף תצוגה עבור פנקס הכתובות"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "כללי"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "הגדרת הפנקס כתובת"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "דפים מותאמים אישית"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "הגדר את הדפים המותאמים אישית"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "הגדר את פנקס הכתובות מבוסס LDAP"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "תצוגת כרטיס"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "תצוגת סמלים"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "תצוגת טבלה"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+#, fuzzy
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "תוסף ייבוא/ייצוא עבור vCard של KAB"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "תוסף ייבוא/ייצוא של קבצי CSV של KAB"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "תוסף ייבוא/ייצוא עבור Eurdora של KAB"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "תוסף ייבוא/ייצוא עבור טלפונים ניידים של KAB"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "תוסף ייבוא/ייצוא עבור KDE2 של KAB"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+#, fuzzy
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "תוסף לניהול פנקסי כתובות"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "תוסף ייבוא/ייצוא עבור LDIF של KAB"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "תוסף ייבוא/ייצוא עבור Opera של KAB"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+#, fuzzy
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "תוסף ייבוא/ייצוא עבור טלפונים ניידים של KAB"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+#, fuzzy
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "תוסף לניהול פנקסי כתובות"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "תוסף ייבוא/ייצוא עבור vCard של KAB"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/hi.po b/translations/desktop_files/kaddressbook-desktops/hi.po
new file mode 100644
index 00000000..0af1bf3d
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/hi.po
@@ -0,0 +1,383 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "केडीईएड्रेसबुक (केडीई 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr "आउटलुक 2000"
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "याहू! पता पुस्तिका"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "डीकॉप इंटरफेस सहित एक पता पुस्तिका"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "केएबी वितरण सूची प्लगइन"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "वितरण सूची प्रबंधन के लिए प्लगइन"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "केएबी वितरण सूची प्लगइन"
+
+#. Name
+#: features/resourceselection.desktop:7
+#, fuzzy
+msgid "Address Book Management Plugin"
+msgstr "के-एड्रेस-बुक दृश्य प्लगइन"
+
+#. Comment
+#: features/resourceselection.desktop:9
+#, fuzzy
+msgid "Plugin for managing address books"
+msgstr "वितरण सूची प्रबंधन के लिए प्लगइन"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+#, fuzzy
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "के-एड्रेस-बुक आयात/निर्यात प्लगइन"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "के-एड्रेस-बुक विस्तार प्लगइन"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "के-एड्रेस-बुक आयात/निर्यात प्लगइन"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "याहू! पता पुस्तिका"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "के-एड्रेस-बुक दृश्य प्लगइन"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "पता पुस्तिका कॉन्फ़िगर करें"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "केएड्रेसबुक; कॉन्फ़िगर; विन्यास ;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+#, fuzzy
+msgid "Configure the Custom Pages"
+msgstr "पता पुस्तिका कॉन्फ़िगर करें"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+#, fuzzy
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "केएड्रेसबुक; कॉन्फ़िगर; विन्यास ;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "एलडीएपी तलाश"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "पता पुस्तिका एलडीएपी विन्यास कॉन्फ़िगर करें"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "केएड्रेसबुक; कॉन्फ़िगर; विन्यास;एलडीएपी;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "इलेक्ट्रानिक व्यापार कार्ड फ़ाइलें"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "कार्ड दृश्य"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "प्रतीक दृश्य"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "टेबल दृश्य"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "केएबी पसंदीदा XXपोर्ट प्लगइन"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "सम्पर्कों के वेब पते को पसंदीदा के रूप में निर्यात करने का प्लगइन"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "केएबी सीएसवी XXपोर्ट प्लगइन"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "सम्पर्कों को सीएसवी फार्मेट में निर्यात करने का प्लगइन"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "केएबी यूडोरा XXपोर्ट प्लगइन"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "यूडोरा सम्पर्कों को आयात और निर्यात करने का प्लगइन"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "केएबी मोबाइल फोन XXपोर्ट प्लगइन"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "पता पुस्तिका प्रविष्टियों को आयात और निर्यात करने का मोबाइल फोन प्लगइन"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "केएबी केडीई2 XXपोर्ट प्लगइन"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "पुराना केडीई 2 पता पुस्तिका को आयात के लिए प्लगइन"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "केएबी एलडीआईएफ XXपोर्ट प्लगइन"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"नेटस्केप तथा मोजिला एलडीआईएफ फार्मेट में सम्पर्कों को आयात और निर्यात करने का प्लगइन"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "केएबी ऑपेरा XXपोर्ट प्लगइन"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "ऑपेरा सम्पर्कों को आयात करने का प्लगइन"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "केएबी एमएस एक्सचेंज निजी पता पुस्तिका XXपोर्ट प्लगइन"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "एमएस एक्सचेंज निजी पता पुस्तिका को आयात करने का प्लगइन"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "केएबी वी-कार्डXXपोर्ट प्लगइन"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "सम्पर्कों को वी-कार्ड फार्मेट में आयात और निर्यात करने का प्लगइन"
diff --git a/translations/desktop_files/kaddressbook-desktops/hr.po b/translations/desktop_files/kaddressbook-desktops/hr.po
new file mode 100644
index 00000000..ead01756
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/hr.po
@@ -0,0 +1,377 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KAdressBook (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "KAdressBook (KDE 3.1)"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+#, fuzzy
+msgid "KAddressBook View Plugin"
+msgstr "KAdressBook (KDE 3.1)"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Ikonski pogled"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/hu.po b/translations/desktop_files/kaddressbook-desktops/hu.po
new file mode 100644
index 00000000..ae20e65f
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/hu.po
@@ -0,0 +1,382 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Címjegyzék (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! címjegyzék"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Címjegyzék DCOP-felülettel"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Titkosítási beállítások"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Azonnali üzenetküldés (IM)"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "IM-címszerkesztő"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook azonnali üzenetküldési protokoll"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM protokoll"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu protokoll"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu protokoll"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ protokoll"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "IRC (Internet Relay Chat)"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber protokoll"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile protokoll"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile protokoll"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype internetes telefon"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS protokoll"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo protokoll"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB címlista bővítőmodul"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Bővítőmodul címlisták kezeléséhez"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB címlista bővítőmodul"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Címjegyzékkezelő bővítőmodul"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Bővítőmodul címjegyzékek kezeléséhez"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressBook névjegyszerkesztő bővítőmodul"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressBook kiegészítő modul"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressBook importálási/exportálási bővítőmodul"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! címjegyzék"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Címjegyzékkezelő"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressBook nézeti bővítőmodul"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Általános"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "A címjegyzék beállítása"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; konfigurálás; beállítások;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Egyéni lapok"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Az egyéni lapok beállítása"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; beállítás; beállítások; egyéni mezők;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP-lekérdezés"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "A címjegyzék LDAP-beállításainak megváltoztatása"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; konfiguráció; beállítások; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Elektronikus névjegykártyák"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Kártyanézet"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Ikonos nézet"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Táblázatos nézet"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB könyvjelzőkezelő XXPort bővítőmodul"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Bővítőmodul webcímek exportáláshoz, könyvjelzőként"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB XXPort bővítőmodul"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Bővítőmodul névjegyek importálásához/exportálásához, CSV formátumban"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB Eudora XXPort bővítőmodul"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Bővítőmodul Eudora névjegyek importálásához/exportálásához"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB mobiltelefon XXPort bővítőmodul"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Mobiltelefonos bővítőmodul címbejegyzések importálásához/exportálásához"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 XXPort bővítőmodul"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Bővítőmodul KDE2-es címjegyzék importálásához"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF XXPort bővítőmodul"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Bővítőmodul Netscape és Mozilla LDIF formátumú névjegyek importálásához/"
+"exportálásához"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB Opera XXPort bővítőmodul"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Bővítőmodul Opera névjegyek importálásához"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB XXPort bővítőmodul MS Exchange személyes címjegyzékekhez"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Bővítőmodul MS Exchange személyes címjegyzékek importálásához"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB vCard XXPort bővítőmodul"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Bővítőmodul vCard névjegyek importálásához/exportálásához"
diff --git a/translations/desktop_files/kaddressbook-desktops/id.po b/translations/desktop_files/kaddressbook-desktops/id.po
new file mode 100644
index 00000000..a37e5898
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/id.po
@@ -0,0 +1,375 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: id\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr ""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr ""
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Tampilan Ikon"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/is.po b/translations/desktop_files/kaddressbook-desktops/is.po
new file mode 100644
index 00000000..84c3018a
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/is.po
@@ -0,0 +1,383 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KAddressbook birtingar íforrit"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! póstfangaskrá"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Vistfangaskrá með DCOP tengingu"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Stillingar dulritunar"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Skilaboðaforrit"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Vistfangaritill fyrir skilaboðaforrit"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook skilaboðaforritið"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM samskiptamátinn"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu samskiptamátinn"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu samskiptamátinn"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell GroupWise Samskiptatólið"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ samskiptamátinn"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "Internet spjall"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber samskiptamátinn"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile samskiptamátinn"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile samskiptamátinn"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "MSN spjallforritið"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype Internet sími"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS samskiptamátinn"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo samskiptamátinn"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Íforrit fyrir KAB dreifilista"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Íforrit til að sjá um dreifilista"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Íforrit fyrir KAB dreifilista"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Umsjónaríforrit vistfangaflettis"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Íforrit til að sjá um vistfangaskrár"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressbook tengiliðaritils íforrit"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressbook viðbótar íforrit"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressbook flytja inn/út íforrit"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! póstfangaskrá"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Vistfangastjóri"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressbook birtingar íforrit"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Almennt"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Stilla vistfangaskrána"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; stillingar; stilla;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Sérsniðnar síður"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Stilla sérsniðnu síðurnar"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; stillingar; stilla; sérsniðnir reitir;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP uppfletting"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Breyta LDAP stillingum vistfangaskráarinnar"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; stillingar; stilla; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Skrár með rafrænum nafnspjöldum"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Spjaldsýn"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Táknmyndasýn"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Töflusýn"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Íforrit fyrir KAB XXPort bókarmerki"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Íforrit til að skrá vefföng tengiliða sem bókarmerki"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Íforrit fyrir KAV CSV XXPort"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Íforrit til að flytja tengiliði inn og út í CSV sniði"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Íforrit fyrir KAB Eudora XXPort"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Íforrit til að flytja inn og út Eudora tengiliði"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Íforrit fyrir KAB farsíma XXPort"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Íforrit til að færa tengilið milli póstfangaskrár og farsíma"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Íforrit fyrir KAB KDE2 XXPort"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Íforrit til að færa inn gömlu KDE2 vistfangaskrána"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Íforrit fyrir KAB LDIF XXPort"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Íforrit sem flytur flytja inn eða út tengiliði í Netscape og Mozilla LDIF "
+"sniði"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Íforrit fyrir KAP Opera XXPort"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Íforrit til flytja inn eða út Opera tengiliði"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Íforrit fyrir KAB MS Exchange Personal Addressbook XXPort"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+"Íforrit til að flytja tengiliði í eða úr MS Exchange Personal Address Book"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Íforrit fyrir KAB vCard XXPort"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Íforrit til að flytja inn eða út tengiliði í vCard sniði"
diff --git a/translations/desktop_files/kaddressbook-desktops/it.po b/translations/desktop_files/kaddressbook-desktops/it.po
new file mode 100644
index 00000000..5d5942a5
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/it.po
@@ -0,0 +1,378 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2022-12-24 13:21+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kaddressbook-desktop-files/it/>\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: Weblate 4.14.2\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Rubrica indirizzi (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr "Outlook 2000"
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Rubrica indirizzi Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Rubrica indirizzi con un'interfaccia DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Preferenze crittografia"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Messaggistica istantanea"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Editor degli indirizzi per messaggi istantanei"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook protocollo messaggistica istantanea"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr "AIM"
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Protocollo AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Protocollo Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr "GroupWise"
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell GroupWise Messenger"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr "ICQ"
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Protocollo ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr "IRC"
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "Internet Relay Chat"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr "Jabber"
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Protocollo Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr "Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Protocollo Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "MSN Messenger"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr "Skype"
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Telefonia internet Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr "SMS"
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Protocollo SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr "Yahoo"
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Protocollo Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Plugin lista di distribuzione KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Plugin per gestire liste di distribuzione"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Plugin lista di distribuzione KAB di nuova generazione"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Plugin per gestire rubriche indirizzi"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Plugin per gestire rubriche indirizzi"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Plugin editor dei contatti di KAddressbook"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Plugin estensione di KAddressbook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Plugin importa/esporta di KAddressbook"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "KAddressBook"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Gestore degli indirizzi"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Plugin visualizzazione di KAddressbook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Generale"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Configura la rubrica indirizzi"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; configura; impostazioni;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Pagine personalizzate"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Configura le pagine personalizzate"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; configura; impostazioni; campi personalizzati;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Ricerca LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Configurare le impostazioni LDAP della rubrica indirizzi"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; configura; impostazioni; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Biglietto da visita elettronico"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Vista scheda"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Vista a icone"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Vista tabella"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Plugin KAB telefono cellulare XXPort"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Plugin per esportare come segnalibro gli indirizzi web dei contatti"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Plugin CSV KAB XXPort"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Plugin per importare ed esportare contatti in formato CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Plugin KAB Eudora XXPort"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Plugin importare ed esportare contatti Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Plugin KAB telefono cellulare XXPort"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Plugin per importare ed esportare voci della rubrica da un telefono cellulare"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Plugin KAB KDE2 XXPort"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Plugin per importare le vecchie voci della rubrica di KDE2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Plugin KAB LDIF XXPort"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Plugin per importare ed esportare contatti in formato Netscape e Mozilla LDIF"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Plugin KAB Opera XXPort"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Plugin per importare contatti da Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Plugin KAB per importare rubriche personali da MS Exchange XXPort"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Plugin per importare rubriche personali da MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Plugin KAB vCard XXPort"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Plugin per importare ed esportare contatti in formato vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/ja.po b/translations/desktop_files/kaddressbook-desktops/ja.po
new file mode 100644
index 00000000..a5eb0fea
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/ja.po
@@ -0,0 +1,381 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Addressbook ビュープラグイン"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! アドレス帳"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "DCOP インターフェースを持つアドレス帳"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "暗号の設定"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "インスタントメッセージ"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "インスタントメッセージのアドレスを編集"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook インスタントメッセージプロトコル"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM プロトコル"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu プロトコル"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu プロトコル"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell GroupWise メッセンジャー"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ プロトコル"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "インターネットリレーチャット"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber プロトコル"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile プロトコル"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile プロトコル"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "MSN メッセンジャー"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype インターネット電話"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS プロトコル"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo プロトコル"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB 配布リストプラグイン"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "配布リスト管理用プラグイン"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB 配布リスト次世代プラグイン"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "アドレス帳管理プラグイン"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "アドレス帳管理用プラグイン"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressbook 連絡先エディタ ウィジェット プラグイン"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressbook 拡張プラグイン"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressbook インポート/エクスポートプラグイン"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! アドレス帳"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "アドレスマネージャ"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Addressbook ビュープラグイン"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "全般"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "アドレス帳設定"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook 設定;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "カスタムページ"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "カスタムページの設定"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook、設定、設定;カスタムフィールド;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP 検索"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "アドレス帳 LDAP 設定"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook LDAP 設定;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "電子ビジネスカードファイル"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "カードビュー"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "アイコンビュー"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "テーブルビュー"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB ブックマーク インポート/エクスポートプラグイン"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "連絡先のウェブアドレスをブックマークとしてエクスポートするプラグイン "
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB CSV インポート/エクスポートプラグイン"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "CSV フォーマットで連絡先をインポート/エクスポートするプラグイン"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB Eudora インポート/エクスポートプラグイン"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Eudora の連絡先をインポート/エクスポートするプラグイン"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB 携帯電話インポート/エクスポートプラグイン"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "アドレス帳のエントリをインポート/エクスポートする携帯電話用プラグイン"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 インポート/プラグイン"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "古い KDE 2 アドレス帳をインポートするプラグイン"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF インポート/エクスポートプラグイン"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Netscape と Mozilla の LDIF フォーマットで連絡先をインポート/エクスポートする"
+"プラグイン"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB Opera インポート/エクスポートプラグイン"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Opera の連絡先をインポートするプラグイン"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB MS Exchange パーソナルアドレス帳インポート/エクスポートプラグイン"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "MS Exchange パーソナルアドレス帳をインポートするプラグイン"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB vCazrd インポート/エクスポートプラグイン"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "vCard フォーマットで連絡先をインポート/エクスポートするプラグイン"
diff --git a/translations/desktop_files/kaddressbook-desktops/kaddressbook-desktops.pot b/translations/desktop_files/kaddressbook-desktops/kaddressbook-desktops.pot
new file mode 100644
index 00000000..b4558225
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/kaddressbook-desktops.pot
@@ -0,0 +1,375 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr ""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr ""
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr ""
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/kk.po b/translations/desktop_files/kaddressbook-desktops/kk.po
new file mode 100644
index 00000000..29260f64
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/kk.po
@@ -0,0 +1,380 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Адрестік кітапшасын қарау модулі"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! адрестік кітапшасы"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "DCOP интерфейсті адрестік кітапшасы"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Шифрлау параметрлері"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Лезде хабарласу"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Лезде хабарласу адрестер өңдегіші"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook лезде хабарласу протоколы"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM протоколы"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu протоколы"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu протоколы"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell GroupWise хабарласу"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ протоколы"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "Internet Relay Chat хабарласу"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber протоколы"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile протоколы"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile протоколы"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype Интернет телефониясы"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS протоколы"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo протоколы"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB тарату тізімінің плагин модулі"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Тарату тізімімен айналысу плагин модулі"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB тарату тізімінің плагин модулі"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Адрестік кітапшамен айналысу плагин модулі"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Адрестік кітапшамен айналысу плагин модулі"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Адрестік кітапшаның контактты өңдеу модулі"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressBook кеңейту модулі"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressBook импорт/экспорт модулі"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! адрестік кітапшасы"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Адрестік кітапшасы"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Адрестік кітапшасын қарау модулі"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Жалпы"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Адрестік кітапшаны баптау"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Қосымша парақтар"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Қосымша парақтарды баптау"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP іздеу"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Адрестік кітапшаның LDAP параметрлерін баптау"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Электрондық визитка файлдары"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Визитка"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Таңбаша"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Кесте"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Бетбелгіні экспорт ету"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Контакттың веб адрестерін бетбелгіге экспорттау модулі"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "CSV файлды экспорт/импорт ету"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Контакттарды CSV пішіміне экспорт/импорт ету модулі"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Eudora-ға экспорт/импорт ету"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Eudora контакттарды экспорт/импорт ету модулі"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Қалта телефонға экспорт/импорт ету"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Қалта телефонға адр. кітапша жазуын экспорт/импорт ету модулі"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KDE2 пішімінен импорт ету"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Ескі KDE2 адр.кітапшасынан импорт ету модулі"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "LDIF пішіміне экспорт/импорт ету"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr "Netscape пен Mozilla LDIF пішіміне экспорт/импорт ету модулі"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Opera пішіміне экспорт/импорт ету"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Opera контактарын экспорт/импорт ету модулі"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "MS Exchange адрестік кітапшасына экспорт/импорт ету"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "MS Exchange адрестік кітапшасына экспорт/импорт ету модулі"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "vCard-ты экспорт/импорт ету"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "vCard пішіміне экспорт/импорт ету модулі"
diff --git a/translations/desktop_files/kaddressbook-desktops/km.po b/translations/desktop_files/kaddressbook-desktops/km.po
new file mode 100644
index 00000000..3244a13d
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/km.po
@@ -0,0 +1,380 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "កម្មវិធី​ជំនួយ​ទិដ្ឋភាព​របស់ KAddressBook"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "សៀវភៅ​អាសយដ្ឋាន​របស់​យ៉ាហ៊ូ"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "សៀវភៅ​អាសយដ្ឋាន​ដែល​មាន​ចំណុច​ប្រទាក់ DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "ចំណង់​ចំណូល​ចិត្ត Crypto"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "ផ្ញើ​សារ​បន្ទាន់"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "កម្មវិធី​និពន្ធ​អាសយដ្ឋាន​ដើម្បី​ផ្ញើ​សារ​បន្ទាន់"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "ពិធីការ​ផ្ញើសារ​បន្ទាន់​របស់ KAddressbook"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "ពិធីការ AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "ពិធីការ Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "ពិធីការ Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "កម្មវិធី​ផ្ញើ​សារ​របស់​ណូវែល - GroupWise"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ពិធីការ ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "ជជែក​កំសាន្ត​តាមអ៊ីនធឺណិត"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "ពិធីការ Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "ពិធីការ Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "ពិធីការ Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "កម្មវិធី​ផ្ញើសារ MSN"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "ទូរស័ព្ទ​តាម​អ៊ីនធឺណិត​ដោយ​ប្រើ Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr "សេវា​សារ​ខ្លីៗ"
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "ពិធីការ​សេវា​សារ​ខ្លីៗ"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr "យ៉ាហ៊ូ"
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "ពិធីការ​យ៉ាហ៊ូ"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "កម្មវិធី​ជំនួយ​បញ្ជី​ចែកចាយ​របស់ KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "កម្មវិធី​ជំនួយ​ដើម្បី​គ្រប់គ្រង​បញ្ជី​ចែកចាយ"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "កម្មវិធី​ជំនួយ​បញ្ជី​ចែកចាយ​របស់ KAB"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "កម្មវិធី​ជំនួយ​ការ​គ្រប់គ្រង​សៀវភៅ​អាសយដ្ឋាន"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "កម្មវិធី​ជំនួយ​ដើម្បី​គ្រប់គ្រង​សៀវភៅ​អាសយដ្ឋាន"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "កម្មវិធី​ជំនួយ​ធាតុ​ក្រាហ្វិក​កម្មវិធី​និពន្ធ​ទំនាក់ទំនង​របស់ KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "កម្មវិធី​ជំនួយ​ផ្នែក​បន្ថែម​របស់ KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "កម្មវិធី​ជំនួយ​នាំចូល/នាំចេញ​របស់ KAddressBook"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "សៀវភៅ​អាសយដ្ឋាន​របស់​យ៉ាហ៊ូ"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "កម្មវិធី​គ្រប់គ្រង​អាសយដ្ឋាន"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "កម្មវិធី​ជំនួយ​ទិដ្ឋភាព​របស់ KAddressBook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "ទូទៅ"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "កំណត់​រចនាសម្ព័ន្ធ​សៀវភៅ​អាសយដ្ឋាន"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "ទំព័រ​ផ្ទាល់​ខ្លួន"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "កំណត់​រចនាសម្ព័ន្ធ​ទំព័រ​ផ្ទាល់​ខ្លួន"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;វាល​ផ្ទាល់​ខ្លួន;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "ស្វែងរក LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "កំណត់​រចនាសម្ព័ន្ធ​ការ​កំណត់ LDAP របស់​សៀវភៅ​អាសយដ្ឋាន"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "ឯកសារ​នាមប័ណ្ណ​អេឡិចត្រូនិច"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "ទិដ្ឋភាព​កាត"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "ទិដ្ឋភាព​រូបតំណាង"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "ទិដ្ឋភាព​តារាង"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "កម្មវិធី​ជំនួយ KAB Bookmark XXPort"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "កម្មវិធី​ជំនួយ​ដើម្បី​នាំចេញ​អាសយដ្ឋាន​បណ្ដាញ​របស់​ទំនាក់ទំនង ជា​ចំណាំ"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "កម្មវិធី​ជំនួយ KAB CSV XXPort"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "កម្មវិធី ជំនួយ​ដើម្បី​នាំចូល និង​នាំចេញ​ទំនាក់ទំនង​ក្នុង​ទ្រង់ទ្រាយ​ជា CSV ។"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "កម្មវិធី​ជំនួយ KAB Eudora XXPort"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "កម្មវិធី​ជំនួយ​ដើម្បី​នាំចូល និង​នាំចេញ​ទំនាក់ទំនង​របស់ Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "កម្មវិធី​ជំនួយ KAB Mobile Phone XXPort"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "កម្មវិធី​ជំនួយ​ទូរស័ព្ទ​ចល័ត​ដើម្បី​នាំចូល និង​នាំចេញ​ធាតុ​សៀវភៅ​អាសយដ្ឋាន"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "កម្មវិធី​ជំនួយ KAB KDE2 XXPort"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "កម្មវិធី​ជំនួយ​ដើម្បី​នាំចូល​សៀវភៅ​អាសយដ្ឋាន KDE 2 ចាស់ៗ"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "កម្មវិធី​ជំនួយ KAB LDIF XXPort"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr "កម្មវិធី​ជំនួយ​ដើម្បី​នាំចូល និង​នាំចេញ​ទំនាក់ទំនង​ក្នុង​ទ្រង់ទ្រាយ​ជា Netscape និង Mozilla LDIF"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "កម្មវិធី​ជំនួយ KAB Opera XXPort"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "កម្មវិធី​ជំនួយ​ដើម្បី​នាំចូល​ទំនាក់ទំនង​របស់ Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "កម្មវិធី​ជំនួយ KAB MS Exchange Personal Addressbook XXPort"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "កម្មវិធី​ជំនួយ​ដើម្បី​នាំចូល​សៀវភៅ​អាសយដ្ឋាន​ផ្ទាល់​ខ្លួន​របស់ MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "កម្មវិធី​ជំនួយ KAB vCard XXPort"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "កម្មវិធី​ជំនួយ​ដើម្បី​នាំចូល និង​នាំចេញ​ទំនាក់ទំនង​ក្នុង​ទ្រង់ទ្រាយ​ជា vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/ko.po b/translations/desktop_files/kaddressbook-desktops/ko.po
new file mode 100644
index 00000000..37c454fb
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/ko.po
@@ -0,0 +1,382 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr ""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! 주소록"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "DCOP 인터페이스를 사용하는 주소록"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "암호화 설정"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "인스턴트 페시징"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "인스턴트 메시징 주소 편집기"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook 인스턴트 메시징 프로토콜"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM 프로토콜"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+#, fuzzy
+msgid "Gadu-Gadu Protocol"
+msgstr "AIM 프로토콜"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+#, fuzzy
+msgid "ICQ Protocol"
+msgstr "AIM 프로토콜"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+#, fuzzy
+msgid "Jabber Protocol"
+msgstr "AIM 프로토콜"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+#, fuzzy
+msgid "Meanwhile Protocol"
+msgstr "AIM 프로토콜"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+#, fuzzy
+msgid "SMS Protocol"
+msgstr "AIM 프로토콜"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+#, fuzzy
+msgid "Yahoo Protocol"
+msgstr "AIM 프로토콜"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! 주소록"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr ""
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/lt.po b/translations/desktop_files/kaddressbook-desktops/lt.po
new file mode 100644
index 00000000..ec6f5c96
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/lt.po
@@ -0,0 +1,387 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KAddressBook peržiūros priedas"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! Adresų knygutė"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Adresų knygelė su DCOP sąsaja"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Šifravimo pasirinkimai"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Momentinės žinutės"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Momentinių žinučių adresų redaktorius"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook momentinių žinučių protokolas"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM protokolas"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu protokolas"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu protokolas"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell GroupWise momentinių žinučių klientas"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ protokolas"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "Estafetinis Interneto pokalbis"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber protokolas"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile protokolas"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile protokolas"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype Interneto telefonija"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS protokolas"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo protokolas"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB platinimo sąrašo priedas"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Priedas platinimo sąrašų tvarkymui"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB platinimo sąrašo priedas"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Adresų knygelės tvarkymo priedas"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Priedas adresų knygelių tvarkymui"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressBook kontaktų redaktoriaus valdiklių priedas"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressBook praplėtimo priedas"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressBook importo/eksporto priedas"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! Adresų knygutė"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Adresų tvarkyklė"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressBook peržiūros priedas"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Bendras"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Konfigūruoti adresų knygelę"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; configure; settings; konfigūravimas; nustatymai;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Pasirinkti puslapiai"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Konfigūruoti darbastalių skaičių ir pavadinimus"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+"kaddressbook; configure; settings; custom fields; pasirinkti laukai;"
+"konfigūruoti; nustatymai;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP paieška"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Konfigūruoti adresų knygelės LDAP nustatymus"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; configure; settings; LDAP; nustatymai; konfigūruoti;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Elektroninės verslo kortelės bylos"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Kortelės vaizdas"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Rodyti piktogramas"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Lentelės vaizdas"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB žymelių XXPort priedas"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+"Priedas skirtas žiniatinklio adresų kontaktuose eksportavimui į žymeles"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB CSV XXPort priedas"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Priedas, skirtas kontaktų eksportui ir importui CSV formatu"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB Eudora XXPort priedas"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Priedas Eudora kontaktų importui ir eksportui"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB mobilaus telefono XXPort priedas"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Priedas skirtas importuoti ir eksportuoti adresų knygelės įrašus į "
+"mobiliuosius telefonus"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 XXPort priedas"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Priedas senosios KDE 2 adresų knygelės importui"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF XXPort priedas"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Priedas, skirtas kontaktų importavimui ir eksportavimui Netscape ir Mozilla "
+"LDIFF formatu"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB Opera XXPort priedas"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Priedas Opera kontaktų importui"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB MS Exchange asmeninės adresų knygelės XXPort priedas"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Priedas leidžiantis importuoti MS Exchange asmenines adresų knygeles"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB vCard XXPort priedas"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Įskiepis kontaktų importavimui ir eksportavimui vCard formatu"
diff --git a/translations/desktop_files/kaddressbook-desktops/lv.po b/translations/desktop_files/kaddressbook-desktops/lv.po
new file mode 100644
index 00000000..8a4ac061
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/lv.po
@@ -0,0 +1,375 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr ""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr ""
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Ikonu Skatījums"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/mk.po b/translations/desktop_files/kaddressbook-desktops/mk.po
new file mode 100644
index 00000000..12d9babd
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/mk.po
@@ -0,0 +1,389 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "КАдресар (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Адресар од Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Адресар со DCOP-интерфејс"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM-протокол"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu-протокол"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu-протокол"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ-протокол"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber-протокол"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile-протокол"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile-протокол"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Интернет-телефонија со Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS-протокол"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo-протокол"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+#, fuzzy
+msgid "Plugin for managing distribution lists"
+msgstr "Приклучок за менаџирање адресари"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Приклучок за менаџирање адресари"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Приклучок за менаџирање адресари"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Приклучок за уредување контакти во КАдресар"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Приклучок за екстензии во КАдресар"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Приклучок за внесување/изнесување во КАдресар"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "КАдресар"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Менаџер на адреси"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Приклучок за преглед на КАдресар"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Општо"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Конфигурирајте го адресарот"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+"kaddressbook; configure; settings; КАдресар; конфигурирање; конфигурација; "
+"поставување;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Сопствени страници"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Конфигурирајте ги сопствените страници"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+"kaddressbook; configure; settings; custom fields; КАдресар; конфигурација; "
+"конфигурирање; сопствени полиња;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Пребарување во LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Конфигурирајте ги поставувањата за LDAP за адресарот"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+"kaddressbook; configure; settings; LDAP; кадресар; конфигурација; "
+"конфигурирање; поставувања;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Датотеки со електронски деловни картички"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Преглед со картички"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Преглед со икони"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Преглед со табела"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+#, fuzzy
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Приклучок за внесување/изнесување во КАдресар"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Приклучок за изнесување на веб-адресите на контактите како обележувачи"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Приклучок за внесување и изнесување контакти во CSV-формат"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Приклучок за внесување и изнесување контакти од Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Приклучок за мобилни телефони за внесување и изнесување контакти од адресарот"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Приклучок за внесување на старите адресари од KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Приклучок за внесување и изнесување контакти во форматите на Netscape и "
+"Mozilla LDIF"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Приклучок за внесување контакти од Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+#, fuzzy
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Приклучок за внесување лични адресари од MS Exchange"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Приклучок за внесување лични адресари од MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Приклучок за внесување и изнесување контакти во vCard-формат"
diff --git a/translations/desktop_files/kaddressbook-desktops/ms.po b/translations/desktop_files/kaddressbook-desktops/ms.po
new file mode 100644
index 00000000..cda250ac
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/ms.po
@@ -0,0 +1,385 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Plug masuk Pelihat KAddressBook"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Keutamaan Kripto "
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Penghantaran Mesej Segera"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Pengedit Alamat Penghantaran Mesej Segera"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Protokol Penghantaran Mesej Segera KAddressbook"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Protokol AIM "
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Protokol Gadu-Gadu "
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Protokol Gadu-Gadu "
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Pembawa mesej Novell GroupWise "
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Protokol ICQ "
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Protokol Jabber "
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Protokol Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Protokol Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Protokol SMS "
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Protokol Yahoo "
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Plugin Senarai Agihan KAB "
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Plug masuk untuk pengurusan senarai edaran"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Plugin Senarai Agihan KAB "
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Plugin Pengurusan Buku Alamat "
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Plugin untuk pengurusan buku alamat"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Plugin Widget Editor Orang Hubungan KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Plug masuk Sambungan KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Plug masuk Import Eksport KAddressBook"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Plug masuk Pelihat KAddressBook"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Pengurus Alamat"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Plug masuk Pelihat KAddressBook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Umum"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Konfigurkan Buku Alamat"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ";selaraskan; tetapan; kaddressbook; configure; settings;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Halaman Kebiasaan "
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Konfigurkan Halaman Langganan "
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; konfigur; seting; medan kebiasaan;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Konfigurkan Seting Buku Alamat LDAP "
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "selaraskan; tetapan; kaddressbook; configure; settings; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Fail Kad Perniagaan Elektronik"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Pelihat Kad"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Pelihat Ikon"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Pelihat Jadual"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Plug masuk KAB Tanda Laman XXPort"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+"Plug masuk untuk eksport alamat web untuk perhubungan sebagai tanda laman"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Plug masuk KAB CSV XXPort"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+"Plug masuk untuk import dan eksport alamat perhubungan di dalam format CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Plug masuk KAB Eudora XXPort"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Plug masuk untuk import dan eksport alamat perhubungan Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Plug masuk KAB Fon Mudah Alih XXPort"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Plug masuk Fon Mudah Alih untuk Import dan Eksport Input Buku Alamat"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Plug masuk KAB KDE2 XXPort"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Plug masuk untuk import buku alamat lama KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Plug masuk KAB LDIF XXPort"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Plug masuk untuk import dan eksport alamat perhubungan di dalam format LDIF "
+"Netscape dan Mozilla"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Plugin KAB Opera XXPort "
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Plug masuk untuk import alamat perhubungan Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Plugin Buku Alamat Peribadi KAB MS Exchange XXPort Plugin"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Plugin untuk mengimpot Buku Alamat Peribadi MS Exchange "
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Plugin KAB vCard XXPort "
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
+"Plugin untuk mengimpot dan mengekspot orang hubungan dalam format vCard "
diff --git a/translations/desktop_files/kaddressbook-desktops/mt.po b/translations/desktop_files/kaddressbook-desktops/mt.po
new file mode 100644
index 00000000..2c165423
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/mt.po
@@ -0,0 +1,375 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr ""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr ""
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Ikoni"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/nb.po b/translations/desktop_files/kaddressbook-desktops/nb.po
new file mode 100644
index 00000000..6ce75cd2
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/nb.po
@@ -0,0 +1,382 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Adressebok (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! adressebok"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Adressebok med DCOP-grensesnitt"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Krypteringsinnstillinger"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Lynmelding"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Adresse-redigerer for lynmelding"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAdressbook lynmeldingsprotokoll"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM-protokoll"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu-protokoll"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu-protokoll"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ-protokoll"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber-protokoll"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile-protokoll"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile-protokoll"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype IP-telefoni"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS Protokoll"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo-protokoll"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB programtillegg for distribusjonslister"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Programtillegg for å håndtere distribusjonslister"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB programtillegg for distribusjonslister"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Programtillegg for adressebok behandling"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Programtillegg for å håndtere adressebøker"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressbook programtillegg for kontakt redigeringselement"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressbook-programtillegg for utvidelser"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressbook-programtillegg for import/eksport"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! adressebok"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Addressehåndterer"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressbook-programtillegg for visning"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Generelt"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Oppsett for adresseboka"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; sette opp; innstillinger;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Tilpassede sider"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Stille inn de tilpassede sidene"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; sette opp; innstillinger;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP oppslag"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Sett opp LDAP-innstillinger for adresseboka"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; sette opp; innstillinger; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Filer for elektroniske visittkort"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Kortvisning"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Ikonvisning"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabellvisning"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB-programtillegg for bokmerkeeksport"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+"Programtillegg som eksporterer kontaktenes nett-addresser som bokmerker"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB-programtillegg for CSV-eksport"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Programtillegg for import/eksport av kontakter i CSV-format"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB-programtillegg for Eudora-eksport"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Programtillegg for import/eksport av Eudora-kontakter"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB-programtillegg for mobiltelefon"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Programtillegg for import/eksport av adressebok fra/til mobiltelefon"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB-programtillegg for KDE2"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Programtillegg for å importere adressebok fra KDE2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB-programtillegg for LDIF-format"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Programtillegg for import/eksport av kontakter i Netscape og Mozillas LDIF-"
+"format"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB-programtillegg for Opera"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Programtillegg for å importere Opera-kontakter"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB-programtillegg for import fra MS Exchange"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Programtillegg for import av personlige adressebøker fra MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB-programtillegg for vCard"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Programtillegg for import og eksport av kontakter i vCard-format"
diff --git a/translations/desktop_files/kaddressbook-desktops/nds.po b/translations/desktop_files/kaddressbook-desktops/nds.po
new file mode 100644
index 00000000..772a3d3a
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/nds.po
@@ -0,0 +1,379 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KAdressbook (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo!-Adressbook"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Adressbook mit DCOP-Koppelsteed"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Verslöteln-Instellen"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Kortnarichten-Maker"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Editor för Kortnarichten-Adressen"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook-Kortnarichten-Protokoll"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM-Protokoll"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu-Protokoll"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu-Protokoll"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell-GroupWise-Kortnarichtenmaker"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ-Protokoll"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber-Protokoll"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile-Protokoll"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile-Protokoll"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "MSN-Kortnarichtenmaker"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Internet-Telefoneren mit Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS-Protokoll"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo-Protokoll"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Verdeellist-Moduul för KAdressbook"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Moduul för't Plegen vun Verdeellisten"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Verbetert Verdeellist-Moduul för KAdressbook"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Adressbookpleeg-Moduul"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Moduul för't Plegen vun Adressböker"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Editormoduul för KAdressbook-Kontakten"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Verwiedernmodüul för KAdressbook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Import-/Exportmoduul för KAdressbook"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "KAdressbook"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Adresspleger"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Kiekermoduul för KAdressbook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Allgemeen"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Adressbook instellen"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "KAddressbook;KAdressbook;Adressbook;instellen;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Egen Sieden"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Egen Sieden instellen"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "KAddressbook;KAdressbook;Adressbook;instellen;egen Feller;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP-Naslaan"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "LDAP-Instellen för KAdressbook"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "KAdressbook;Adressbook;LDAP;instellen;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Dateien mit elektroonsche Visitenkoorten"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Visitenkoort-Kieker"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Lüttbildansicht"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabellansicht"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Leesteken-Exportmoduul för KAdressbook"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Moduul för't Exporteren vun Kontakt-Nettadressen as Leestekens"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "CSV-Im-/Exportmoduul för KAdressbook"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Moduul för't Im- un Exporteren vun Kontakten in't CSV-Formaat"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Eudora-Im-/Exportmoduul för KAdressbook"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Moduul för't Im- un Exporteren vun Eudora-Kontakten"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Mobiltelefoon-Im-/Exportmoduul för KAdressbook"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Mobiltelefoon-Moduul för't Im- un Exporteren vun KAdressbook-Indrääg"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KDE2-Importmoduul för KAdressbook"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Moduul för't Importeren vun KDE2-Adressböker"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "LDIF-Im-/Exportmoduul för KAdressbook"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Moduul för't Im- un Exporteren vun Kontakten in't LDIF-Formaat vun Netscape "
+"und Mozilla"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Opera-Importmoduul för KAdressbook"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Modul för't Importeren vun Opera-Kontakten"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "MSExchange-Importmoduul för KAdressbook"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Moduul för't Importeren vun persöönliche Adressböker ut MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "vCard-Im-/Exportmoduul för KAdressbook"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Moduul för't Im-/Exporteren vun Kontakten in't vCard-Formaat"
diff --git a/translations/desktop_files/kaddressbook-desktops/ne.po b/translations/desktop_files/kaddressbook-desktops/ne.po
new file mode 100644
index 00000000..c97421a5
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/ne.po
@@ -0,0 +1,376 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "केडीई ठेगाना पुस्तिका (केडीई ३.१)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr "आउटलुक २०००"
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "याहू! ठेगाना पुस्तिका"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "डीसीओपी ईन्टरफेससँगको ठेगाना पुस्तिका"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "गुप्तिकरण प्राथमिकता"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "संदेशन दृश्टान्त"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "दृष्टान्त संदेशन ठेगाना सम्पादक"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "केडीई ठेगानापुस्तिका दृष्टान्त संदेशन प्रोटोकल"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr "एआईएम"
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "एआईएम प्रोटोकल"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr "गाडु-गाडु"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "गाडु-गाडु प्रोटोकल"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr "समूहगत"
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "नोभेल समूहगत म्यासेन्जर"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr "आईसीक्यू"
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "आईसीक्यू प्रोटोकल"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr "आईआरसी"
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "इन्टरनेटबाट प्रसारण कुराकानी"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr "ज्याबर"
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "ज्याबर प्रोटोकल"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr "त्यस समयको"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "त्यसै समयको प्रोटोकल"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "एमएसएन म्यासेन्जर"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr "स्काइप"
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "स्काइप इन्टरनेट दूरभाषी"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr "एसएमएस"
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "एसएमएस प्रोटोकल"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr "याहू"
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "याहू प्रोटोकल"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB वितरण सूची प्लगइन"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "व्यवस्थापन वितरण सूचीका लागि प्लगइन"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB वितरण सूची प्लगइन"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "ठेगाना पुस्तिका व्यवस्थापन प्लगइन"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "ठगाना पुस्तिका व्यवस्थापनका लागि प्लगइन"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "केडीई ठेगाना पुस्तिका सम्पर्क सम्पादक विजेट प्लगइन"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "केडीई ठेगाना पुस्तिका विस्तार प्लगइन"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "केडीई ठेगाना पुस्तिका आयात/निर्यात प्लगइन"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "केडीई ठेगाना पुस्तिका"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "ठेगाना प्रबन्धक"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "केडीई ठेगाना पुस्तिका दृश्य प्लगइन"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "साधारण"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "ठेगाना पुस्तिका कन्फिगर गर्नुहोस्"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "केडीई ठेगाना पुस्तिका; कन्फिगर; सेटिङ;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "अनुकूल पृष्ठ"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "अनुकूल पृष्ठ कन्फिगर गर्नुहोस्"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "केडीई ठेगाना पुस्तिका; कन्फिगर; सेटिङ; अनुकूल फिल्ड;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "एलडीएपी खोजी गर्नुहोस्"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "ठेगाना पुस्तिका एलडीएपी सेटिङ कन्फिगर गर्नुहोस्"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "केडीई ठेगाना पुस्तिका; कन्फिगर; सेटिङ; एलडीएपी;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "बिद्युतीय व्यवसायीक कार्ड फाइल"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "कार्ड दृश्य"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "प्रतिमा दृश्य"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "तालिका दृश्य"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB पुस्तकचिनो XXPort प्लगइन"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "पुस्तकचिनो अनुरुपका सम्पर्कका वेब ठेगानाको निर्यात गर्न प्लगइन गर्नुहोस्"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB CSV XXPort प्लगइन"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "CSV ढाँचाका सम्पर्क आयात र निर्यात गर्न प्लगइन गर्नुहोस्"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB यूडोरा XXPort प्लगइन"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "यूडोरा सम्पर्क आयात निर्यात गर्न प्लगइन गर्नुहोस्"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB मोबाइल फोन XXPort प्लगइन"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "ठेगाना पुस्तिका प्रविष्टि आयात र निर्यात गर्न मोबाइल फोन प्लगइन गर्नुहोस्"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 XXPort प्लगइन"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "पूरानो केडीई २ ठेगाना पुस्तिका आयात गर्न प्लगइन गर्नुहोस्"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF XXPort प्लगइन"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr "नेटस्क्येप र मोजिला LDIF ढाँचामा आयात निर्यात गर्न प्लगइन गर्नुहोस्"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB ओपेरा XXPort प्लगइन"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "ओपेरा सम्पर्क आयात गर्न प्लगइन गर्नुहोस्"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB MS बिनिमय व्यक्तिगत ठेगाना पुस्तिका XXPort प्लगइन"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "MS बिनिमय व्यक्तिगत ठेगाना पुस्तिका आयात गर्न प्लगइन गर्नुहोस्"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB भी कार्ड XXPort प्लगइन"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "भी कार्ड ढाँचामा आयात र निर्यात गर्न प्लगइन गर्नुहोस्"
diff --git a/translations/desktop_files/kaddressbook-desktops/nl.po b/translations/desktop_files/kaddressbook-desktops/nl.po
new file mode 100644
index 00000000..99c578a5
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/nl.po
@@ -0,0 +1,392 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KAddressBook Weergave Plugin"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo!-adresboek"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Adresboek met DCOP-interface"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Versleutelingsinstellingen"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+#, fuzzy
+msgid "Instant Messaging"
+msgstr "Instant Messaging Adresbewerker"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Instant Messaging Adresbewerker"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook Instant Messaging-protocol"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM-protocol"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu-protocol"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu-protocol"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell GroupWise-messenger"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ-protocol"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber-protocol"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile-protocol"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile-protocol"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype internettelefonie"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS-protocol"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo-protocol"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB Distributielijst-plugin"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Plugin voor het beheren van distributielijsten"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Plugin voor KAB Distributielijst (Nieuwe Generatie)"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Plugin voor adresboekbeheer"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Plugin voor het beheren van adresboeken"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressBook Contacteditor-plugin"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressBook Extensie Plugin"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+#, fuzzy
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressBook Extensie Plugin"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo!-adresboek"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Adresboekbeheerder"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressBook Weergave Plugin"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Algemeen"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Hier kunt u uw adresboek aanpassen"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "adresboek;KAB;kab;kaddressbook;instellingen;configuratie;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Aangepaste pagina's"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Hier kunt u de aangepaste pagina's instellen"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+"adresboek;KAB;kab;kaddressbook;instellingen;configuratie;aangepaste velden;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP-zoekactie"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Hier kunt u de LDAP-instellingen voor uw adresboek instellen"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "adresboek;kaddressbook;LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Elektronische visitekaartbestanden"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Kaartweergave"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Pictogramweergave"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabelweergave"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB Bladwijzer XXPort-plugin"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+"Plugin voor het exporteren van de webadressen van de contactpersonen als "
+"bladwijzers"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+#, fuzzy
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB vCard XXPort-plugin"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+"Plugin voor het importeren en exporteren van contactpersonen in CSV-formaat"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+#, fuzzy
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB KDE2 XXPort-plugin"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Plugin voor het importeren en exporteren van Eudora-contactpersonen"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB Mobiele Telefoon XXPort-plugin"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Mobiele-telefoon-plugin voor het importeren en exporteren van adresboekitems"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 XXPort-plugin"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Plugin voor het importeren van het oude KDE 2-adresboek"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF XXPort-plugin"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Plugin voor het importeren en exporteren van contactpersonen in Netscape's "
+"en Mozilla's LDIF-formaat"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+#, fuzzy
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB vCard XXPort-plugin"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Plugin voor het importeren an Opera's contactpersonen"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB MS Exchange Personal Addressbook XXPort-plugin"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Plugin voor het importeren van MS Exchange-adresboeken"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB vCard XXPort-plugin"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
+"Plugin voor het importeren en exporteren van contactpersonen in vCard-formaat"
diff --git a/translations/desktop_files/kaddressbook-desktops/nn.po b/translations/desktop_files/kaddressbook-desktops/nn.po
new file mode 100644
index 00000000..25a640e1
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/nn.po
@@ -0,0 +1,383 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KDE-adressebok (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! Adressebok"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Adressebok med DCOP-grensesnitt"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Krypteringsinnstillinger"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Lynmelding"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Adresseredigering for lynmelding"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Lynmeldingsprotokoll for TDE-adresseboka"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM-protokoll"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu-protokoll"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu-protokoll"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ-protokoll"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber-protokoll"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile-protokollen"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile-protokollen"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype Internett-telefoni"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS-protokoll"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo-protokoll"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Programtillegg for KAB distribusjonsliste"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Programtillegg for handtering av distibusjonsliste"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Programtillegg for KAB distribusjonsliste"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Programtillegg for adressebokhandtering"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Programtillegg for handtering av adressebøker"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Programtillegg for kontaktredigering i TDE-adresseboka"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Programtillegg for utviding av TDE-adresseboka"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Programtillegg for importering/ekportering i TDE-adresseboka"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "TDE-adressebok"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Adressehandterar"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Programtillegg for vising av TDE-adresseboka"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Generelt"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Setja opp adressebok"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "adressebok; oppsett; innstillingar;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Tilpassa sider"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Set opp dei tilpassa sidene"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "adressebok; oppsett; innstillingar; tilpassa felt;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP oppslag"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Setja opp LDAP-innstillingar for adresseboka"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "adressebok; oppsett; innstillingar; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Filer for elektroniske visittkort"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Kortvising"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Ikonvising"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabellvising"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB-bokmerke XXPort-programtillegg"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+"Programtillegg for å eksportera nettadresser av kontaktar som bokmerker"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB CSV XXPort programtillegg"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Programtillegg for å importera og eksportera kontaktar i CSV-format"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB Eudora XXPort programtillegg"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Programtillegg for å importera og eksportera Eudora-kontaktar"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB Mobiltelefon XXPort programtillegg"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Programtillegg for å importera og eksportera adressebokoppføringar i "
+"mobiltelefon"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 XXPort programtillegg"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Programtillegg for å importera den gamle KDE 2 adresseboka"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF XXPort programtillegg"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Programtillegg for å importera og eksportera kontaktar i Netscape og Mozilla "
+"LDIF-format"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB Opera XXPort programtillegg"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Programtillegg for å imortera Opera-kontaktar"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB MS Exchange personleg adressebok XXPort programtillegg"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Programtillegg for å imortera MS Exchange personleg adressebok"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB vCard XXPort programtillegg"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Programtillegg for å importera og eksportera kontaktar i vCard-format"
diff --git a/translations/desktop_files/kaddressbook-desktops/nso.po b/translations/desktop_files/kaddressbook-desktops/nso.po
new file mode 100644
index 00000000..757d45a1
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/nso.po
@@ -0,0 +1,377 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nso\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KBuka ya Diaterese (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr "Bokantle 2000"
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "KBuka ya Diaterese (KDE 3.1)"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+#, fuzzy
+msgid "KAddressBook View Plugin"
+msgstr "KBuka ya Diaterese (KDE 3.1)"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr ""
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/pa.po b/translations/desktop_files/kaddressbook-desktops/pa.po
new file mode 100644
index 00000000..c8f844eb
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/pa.po
@@ -0,0 +1,383 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr ""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! ਸਿਰਨਾਵਾਂ ਕਿਤਾਬ"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM ਪ੍ਰੋਟੋਕਾਲ"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+#, fuzzy
+msgid "Gadu-Gadu Protocol"
+msgstr "AIM ਪ੍ਰੋਟੋਕਾਲ"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+#, fuzzy
+msgid "ICQ Protocol"
+msgstr "AIM ਪ੍ਰੋਟੋਕਾਲ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+#, fuzzy
+msgid "Jabber Protocol"
+msgstr "AIM ਪ੍ਰੋਟੋਕਾਲ"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+#, fuzzy
+msgid "Meanwhile Protocol"
+msgstr "AIM ਪ੍ਰੋਟੋਕਾਲ"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "MSN ਸੁਨੇਹਾਦਾਰ"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+#, fuzzy
+msgid "SMS Protocol"
+msgstr "AIM ਪ੍ਰੋਟੋਕਾਲ"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr "ਯਾਹੂ"
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+#, fuzzy
+msgid "Yahoo Protocol"
+msgstr "AIM ਪ੍ਰੋਟੋਕਾਲ"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+#, fuzzy
+msgid "Address Book Management Plugin"
+msgstr "ਸਿਰਨਾਵਾਂ ਪ੍ਰਬੰਧਕ"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! ਸਿਰਨਾਵਾਂ ਕਿਤਾਬ"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "ਸਿਰਨਾਵਾਂ ਪ੍ਰਬੰਧਕ"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "ਸਧਾਰਨ"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP ਖੋਜ"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "ਕਾਰਡ ਦਰਿਸ਼"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "ਆਈਕਾਨ ਦਰਿਸ਼"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "ਸਾਰਣੀ ਦਰਿਸ਼"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/pl.po b/translations/desktop_files/kaddressbook-desktops/pl.po
new file mode 100644
index 00000000..892918f8
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/pl.po
@@ -0,0 +1,380 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Jan Stolarek <jwstolarek@gmail.com>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2020-08-12 23:04+0000\n"
+"Last-Translator: Jan Stolarek <jwstolarek@gmail.com>\n"
+"Language-Team: Polish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kaddressbook-desktop-files/pl/>\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: Weblate 4.1.1\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Książka adresowa (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr "Outlook 2000"
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Książka adresowa Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Książka adresowa z interfejsem DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Ustawienia kryptograficzne"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Komunikacja internetowa"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Edytor adresów komunikatorów internetowych"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Protokół komunikacji internetowej KAddressbook"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr "AIM"
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Protokół AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Protokół Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr "GroupWise"
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Komunikator Novell GroupWise"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr "ICQ"
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Protokół ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr "IRC"
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "IRC (Internet Relay Chat)"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr "Jabber"
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Protokół Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr "Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Protokół Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "MSN Messenger"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr "Skype"
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype - telefonia internetowa"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr "SMS"
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Protokół SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr "Yahoo"
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Protokół Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Wtyczka KAB do obsługi list wysyłkowych"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Wtyczka do zarządzania listami wysyłkowymi"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Wtyczka KAB do obsługi list wysyłkowych"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Wtyczka zarządzania Książką adresową"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Wtyczka do zarządzania książkami adresowymi"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Wtyczka okna edycji wizytówki dla KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Wtyczka rozszerzenia dla KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Wtyczka importu/eksportu dla KAddressBook"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "Książka adresowa"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Menedżer adresów"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Wtyczka widoku KAddressBook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Ogólne"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Konfiguracja Książki adresowej"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; książka adresowa;adresy;konfiguracja;ustawienia;opcje;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Własne strony"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Konfiguracja własnych stron"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook;książka adresowa;konfiguracja;ustawienia; własne pola;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Wyszukiwanie LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Konfiguracja ustawień LDAP dla Książki adresowej"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; książka adresowa;konfiguracja;ustawienia;opcje; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Pliki elektronicznych wizytówek"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Widok kartek"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Widok ikon"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Widok tabeli"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Wtyczka KAB do eksportu zakładek"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Wtyczka eksportująca adresy WWW z wizytówek jako zakładki"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Wtyczka KAB do importu/eksportu z/do formatu CSV"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Wtyczka do importowania i eksportowania wizytówek w formacie CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Wtyczka KAB do importu/eksportu wizytówek Eudory"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Wtyczka do importowania i eksportowania wizytówek z/do Eudory"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Wtyczka KAB do importu/eksportu z/do telefonu komórkowego"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Wtyczka do importowania i eksportowania wizytówek z/do telefonu komórkowego"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Wtyczka KAB do importu książki adresowej KDE2"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Wtyczka do importu starej książki adresowej z KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Wtyczka KAB do importu/eksportu z/do formatu LDIF"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Wtyczka do importowania i eksportowania wizytówek z/do formatu LDIF "
+"używanego przez Mozillę i Netscape'a"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Wtyczka KAB do importu z Opery"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Wtyczka do importu wizytówek z Opery"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Wtyczka KAB do importu Osobistej książki adresowej MS Exchange"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Wtyczka do importu Osobistej książki adresowej z MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Wtyczka KAB do importu/eksportu z/do formatu vCard"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Wtyczka do importu i eksportu wizytówek w formacie vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/pt.po b/translations/desktop_files/kaddressbook-desktops/pt.po
new file mode 100644
index 00000000..f033455a
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/pt.po
@@ -0,0 +1,385 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "'Plugin' da Janela do KAddressBook"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Livro de Endereços do Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Livro de Endereços com uma Interface de DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Preferências de Encriptação"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Mensagens Instantâneas"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Editor de Endereços do Mensageiro Instantâneo"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Protocolo de Mensagens Instantâneas do KAdressbook"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Protocolo AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Protocolo Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Protocolo Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Protocolo ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Protocolo Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Protocolo Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Protocolo Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Telefonia Internet Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Protocolo SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Protocolo Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "'Plugin' de Lista de Distribuição do KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Um 'plugin' para gerir as listas de distribuição"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "'Plugin' de Lista de Distribuição do KAB"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "'Plugin' de Gestão do Livro de Endereços"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Um 'plugin' para gerir os livros de endereços"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "'Plugin' de Edição de 'Widgets' de Contacto do KAddressbook"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "'Plugin' de Extensão do KAddressbook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "'Plugin' de Importação/Exportação do KAddressbook"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Livro de Endereços do Yahoo!"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Livro de Endereços"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "'Plugin' da Janela do KAddressBook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Geral"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Configuração do Livro de Endereços"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; configurar; configuração;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Páginas Personalizadas"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Configurar as Páginas Personalizadas"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; configurar; configuração; campos personalizados;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Pesquisa na LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Configurar as opções de LDAP do Livro de Endereços"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; configurar; configuração; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Ficheiros de Cartões Profissionais Electrónicos"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Vista em Cartões"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Vista por Ícones"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Vista em Tabela"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "'Plugin' de Exportação XXPort de Favoritos do KAB"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+"Um 'plugin' para exportar os endereços Web dos contactos como favoritos"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "'Plugin' XXPort para CSV do KAB"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Um 'plugin' para importar e exportar contactos no formato CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "'Plugin' XXPort para Eudora do KAB"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Um 'plugin' para importar e exportar contactos do Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "'Plugin' XXPort para Telemóveis do KAB"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Um 'plugin' para importar e exportar contactos da agenda do telemóvel"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "'Plugin' XXPort para KDE2 do KAB"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Um 'plugin' para importar o livro de endereços antigo do KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "'Plugin' XXPort para LDIF do KAB"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Um 'plugin' para importar e exportar os contactos no formato LDIF do "
+"Netscape e do Mozilla"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "'Plugin' XXPort para Opera do KAB"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Um 'plugin' para importar os contactos do Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+"'Plugin' XXPort do Livro de Endereços Pessoal do MS Exchange para o KAB"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+"Um 'plugin' para importar os livros de endereços pessoais do MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "'Plugin' XXPort para vCard do KAB"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Um 'plugin' para importar e exportar os contactos no formato vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/pt_BR.po b/translations/desktop_files/kaddressbook-desktops/pt_BR.po
new file mode 100644
index 00000000..16e91ec4
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/pt_BR.po
@@ -0,0 +1,386 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Plug-in de Visualização do KAddressBook"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Livro de Endereços do Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Livro de Endereços com uma interface DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Configurações de Criptografia"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Mensagem Instantâneo"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Editor de Endereços do Mensageiro Instantâneo"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Protocolo de Mensagens Instantâneas do KAddressbook"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Protocolo AIM "
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Protocolo Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Protocolo Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Mensageiro GroupWise da Novell"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Protocolo ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "Protocolo de Bate-papo na Internet - IRC"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Protocolo Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Protocolo Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Protocolo Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Telefonia via Internet Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Protocolo SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Protocolo Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Plug-in de Lista de Distribuição do KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Plug-in para gerenciar listas de distribuição"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Plug-in de Lista de Distribuição do KAB"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Plug-in de Gerenciamento do Livro de Endereços"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Plug-in para gerenciar livros de endereços"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Plug-in do Editor de Contatos do KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Plug-in de Extensão do KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Plug-in de Importação/Exportação do KAddressBook"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Livro de Endereços do Yahoo!"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Livro de Endereços"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Plug-in de Visualização do KAddressBook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Geral"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Configurar o Livro de Endereços"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; configurar; configurações;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Páginas personalizadas"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Configurar Páginas personalizadas"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook;configurar;configurações; campos personalizados;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Procura LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Configurar as Definições para LDAP do Livro de Endereços"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; configurar; configurações; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Arquivos de Cartão de Visita Eletrônico"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Visualização de Cartão"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Visualização de Ícone"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Visualização de Tabela"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Plug-in de Exportação de Marcadores do KAB"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Plug-in para exportar os endereços web de contatos como marcadores"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Plug-in de Im/Exportação de CSV do KAB"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Plug-in para importar e exportar contatos em formato CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Plug-in de Im/Exportação de/para Eudora do KAB"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Plug-in para importar e exportar contatos do Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Plug-in de Im/Exportação de/para Telefone Móvel do KAB"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Plug-in para Importar e Exportar Entradas do Livro de Endereços de/para "
+"Telefone Móvel"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Plug-in de Importação de KDE2 do KAB"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Plug-in para importar o antigo livro de endereços do KDE2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Plug-in de Im/Exportação de LDIF do KAB"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Plug-in para importar e exportar contatos no formato LDIF do Netscape e "
+"Mozilla"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Plug-in de Importação de Opera do KAB"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Plug-in para importar contatos do Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+"Plug-in do KAB para Im/Exportação de/para Livro de Endereços Pessoal do MS "
+"Exchange"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Plug-in para importar Livros de Endereços Pessoais do MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Plug-in de Im/Exportação de vCard do KAB"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Plug-in para importar e exportar contatos no formato vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/ro.po b/translations/desktop_files/kaddressbook-desktops/ro.po
new file mode 100644
index 00000000..8f1277b1
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/ro.po
@@ -0,0 +1,388 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Cartea de adrese (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Carte de adrese cu interfaţă DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Modul pentru administrarea listelor de distribuţie"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+#, fuzzy
+msgid "Address Book Management Plugin"
+msgstr "Modul de vizualizare KAddressBook"
+
+#. Comment
+#: features/resourceselection.desktop:9
+#, fuzzy
+msgid "Plugin for managing address books"
+msgstr "Modul pentru administrarea listelor de distribuţie"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+#, fuzzy
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Modul de import/export pentru KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Modul de extensie KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Modul de import/export pentru KAddressBook"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Cartea de adrese (KDE 3.1)"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Modul de vizualizare KAddressBook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Configurează cartea de adrese"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook;configurare;setări;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+#, fuzzy
+msgid "Configure the Custom Pages"
+msgstr "Configurează cartea de adrese"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+#, fuzzy
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook;configurare;setări;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Căutare LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+#, fuzzy
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Configurează cartea de adrese"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook;configurare;setări;LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Vizualizare card"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Vizualizare iconică"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Vizualizare tabel"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+#, fuzzy
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Modul de import/export pentru KAddressBook"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+#, fuzzy
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Modul de importat şi exportat contacte Eudora"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Modul de importat şi exportat contacte Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+#, fuzzy
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Modul de importat şi exportat contacte Eudora"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+#, fuzzy
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr "Modul de importat şi exportat contacte Eudora"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+#, fuzzy
+msgid "Plugin to import Opera contacts"
+msgstr "Modul de importat şi exportat contacte Eudora"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+#, fuzzy
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Modul de importat şi exportat contacte Eudora"
diff --git a/translations/desktop_files/kaddressbook-desktops/ru.po b/translations/desktop_files/kaddressbook-desktops/ru.po
new file mode 100644
index 00000000..a7cf7435
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/ru.po
@@ -0,0 +1,379 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Адресная книга (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Адресная книга Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Адресная книга с интерфейсом DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Настройки шифрования"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Службы обмена сообщениями"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Редактор контактов служб обмена сообщениями"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Протокол обмена сообщениями адресной книги TDE"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Протокол AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "протокол Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "протокол Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Обмен сообщениями Novell GroupWise"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Протокол ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "IRC"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "протокол Jabber "
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Протокол Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Протокол Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Интернет-телефон Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "протокол SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Протокол Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Списки рассылки"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Работа со списками рассылок"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Списки рассылки"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Управление адресной книгой"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Управление адресными книгами"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Редактор контакта адресной книги TDE"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Расширение адресной книги TDE"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Экспорт и импорт адресной книги"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Адресная книга Yahoo!"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Адресная книга"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Просмотр адресной книги TDE"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Общие"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Настройка адресной книги"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook;адресная книга;настройка;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Дополнительные поля"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Настройка пользовательских вкладок"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook;адресная книга;настройка;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Каталоги LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Настройка серверов LDAP адресной книги"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; configure; settings; LDAP; адресная книга; настройки;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Файлы электронных визиток"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Карточки"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Значки"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Таблица"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Экспорт закладок"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Экспорт веб-адресов контактов как закладок"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Экспорт/импорт в файлы CSV"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Импорт и экспорт контактов в формате CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Обмен информацией с Eudora"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Импорт и экспорт контактов Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Синхронизация с мобильным телефоном"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Импорт и экспорт контактов мобильного телефона"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Импорт адресной книги KDE2"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Импорт файлов адресной книги KDE2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Обмен информацией через LDIF"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr "Импорт и экспорт контактов через формат LDIF Netscape и Mozilla"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Обмен информацией с Opera"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Импорт контактов Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Импорт контактов MS Exchange"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Импорт персональных адресных книг MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Работа с vCard"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Импорта и экспорт контактов в формате vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/rw.po b/translations/desktop_files/kaddressbook-desktops/rw.po
new file mode 100644
index 00000000..4091d0af
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/rw.po
@@ -0,0 +1,375 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: rw\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr ""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr ""
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Igaragaza ry'Agashushondanga"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/se.po b/translations/desktop_files/kaddressbook-desktops/se.po
new file mode 100644
index 00000000..99b1cd46
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/se.po
@@ -0,0 +1,387 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KDE-čujuhusgirji (KDE 3.3)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! čujuhusgirji"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Čujuhusgirji mas lea DCOP-lákta"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Krypterenheivehusat"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Šleađgadieđáhus"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Šleađgadieđáhusaid čujuhusdoaimmaheaddji"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Šleađgadieđáhusprotokolla TDE-čujuhusgirjji várás"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM-protokolla"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu-protokolla"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu-protokolla"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ-protokolla"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber-protokolla"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile-protokolla"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile-protokolla"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype Interneahtta-telefoniija"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS-protokolla"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo-protokolla"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB:a distribušuvdnalistu lassemoduvla"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Lassemoduvla mii gieđahallá distribušuvdnalisttuid"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB:a distribušuvdnalistu lassemoduvla"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Lassemoduvla mii gieđáhalla čujuhusgirjjiid"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Lassemoduvla mii gieđahallá čujuhusgirjjiid"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+#, fuzzy
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Lassemoduvla mii gieđáhalla čujuhusgirjjiid"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+#, fuzzy
+msgid "KAddressBook Extension Plugin"
+msgstr "Lassemoduvla mii gieđáhalla čujuhusgirjjiid"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+#, fuzzy
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Lassemoduvla mii gieđáhalla čujuhusgirjjiid"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! čujuhusgirji"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Čujuhusgieđahalli"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+#, fuzzy
+msgid "KAddressBook View Plugin"
+msgstr "Lassemoduvla mii gieđáhalla čujuhusgirjjiid"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Oppalaš"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Heivet čujuhusgirjji"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "čujuhusgirji;heivehus;heivehusat;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Iežat siiddut"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Heivet iežat siidduid"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+#, fuzzy
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "čujuhusgirji;heivehus;heivehusat;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+#, fuzzy
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Heivet čujuhusgirjji"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "čujuhusgirji;heivehus;heivehit;LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Goartačájeheapmi"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Govaščájeheapmi"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabeallačájeheapmi"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+#, fuzzy
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Lassemoduvla mii gieđahallá čujuhusgirjjiid"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+#, fuzzy
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Lassemoduvla mii gieđahallá čujuhusgirjjiid"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/sk.po b/translations/desktop_files/kaddressbook-desktops/sk.po
new file mode 100644
index 00000000..02eb96c4
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/sk.po
@@ -0,0 +1,382 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Adresár"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! kniha adries"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Kniha adries s DCOP rozhraním"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Nastavenie šifrovania"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Rozhovor"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Editor adries pre Instant Messaging"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Protokol pre TDE Adresár Instant Messaging"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Protokol AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Protokol Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Protokol Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Protokol ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Protokol Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile protokol"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile protokol"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype Internet telefonovanie"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Protokol SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Protokol Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB plugin distribučného zoznamu"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Plugin pre správu distribučných zoznamov"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB plugin distribučného zoznamu ďaľšej generácie"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Modul pre správu adresára"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Modul pre správu adresárov"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressBook modul pre editor kontaktov"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressBook plugin rozšírení"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressBook import/export plugin"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "Adresár"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Správca adries"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressBook plugin prehliadača"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Všeobecné"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Nastavenie Adresára"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+#, fuzzy
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook;nastavenie;vlastné polia;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Vlastné stránky"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Nastavenie vlastných stránok"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook;nastavenie;vlastné polia;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP hľadanie"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Nastavenie LDAP volieb Adresára"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+#, fuzzy
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook;nastavenie;vlastné polia;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Súbory elektronických vizitiek"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Prezeranie karty"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Prehliadanie ikon"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Prezeranie tabuľky"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB modul pre xxport záložiek"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Modul pre export webových adries kontaktov ako záložiek"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+#, fuzzy
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB modul pre xxport z vCard"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Modul pre import a export kontaktov vo formáte CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB modul pre xxport Eudora"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Modul pre import a export kontaktov Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB modul pre xxport z mobilu"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Modul pre import a export kontaktov z modulu"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+#, fuzzy
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB modul pre xxport LDIF"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Plugin pre import starej knihy adries z KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB modul pre xxport LDIF"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr "Modul pre import a export kontaktov z Netscape a Mozilla formátu LDIF"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB modul pre xxport z Opera"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Plugin pre import kontaktov z Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB modul pre xxport z osobného adresára MS Exchange"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Modul pre import osobných adresárov MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB modul pre xxport z vCard"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Plugin pre import a export kontaktov v vCard formáte"
diff --git a/translations/desktop_files/kaddressbook-desktops/sl.po b/translations/desktop_files/kaddressbook-desktops/sl.po
new file mode 100644
index 00000000..804f0905
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/sl.po
@@ -0,0 +1,379 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Adresar (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Adresar Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Adresar z vmesnikom DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Lastnosti šifriranja"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Takojšno sporočanje"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Urejevalnik naslovov takojšnega sporočanja"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Protokol takojšnega sporočanja za Adresar"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Protokol AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Protokol Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Protokol Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Protokol ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "Internet Relay Chat (»internetno prenešen klepet«)"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Protokol Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Protokol Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Protokol Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Internetno telefoniranje Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Protokol SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Protokol Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Vstavek za distribucijski seznam KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Vstavek za upravljanje distribucijskih seznamov"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Vstavek za distribucijski seznam KAB"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Vstavek Upravitelj adresarjev"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Vstavek za upravljanje adresarjev"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Vstavek gradnika urejevalnika stikov za Adresar"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Razširitveni vstavek za Adresar"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Vstavek za uvoz in izvoz iz Adresarja"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Adresar Yahoo!"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Upravitelj naslovov"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Vstavek za ogled v Adresarju"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Splošno"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Nastavi Adresar"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; adresar; nastavi; nastavitve;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Prilagojene strani"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Nastavi prilagojene strani"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; adresar; nastavi; nastavitve; polja; prilagojena;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Vpogled v LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Prilagodi nastavitve LDAP v Adresarju"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook;adresar; nastavi; nastavitve; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Datoteke elektronskih vizitk"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Kartični prikaz"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Ikoniziran prikaz"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabelarični prikaz"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Vstavek KAB Bookmark XXPort"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Vstavek za izvoz spletnih naslovov stikov v obliki zaznamkov"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Vstavek KAB CSV XXPort"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Vstavek za uvoz in izvoz stikov v obliki CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Vstavek KAB Eudora XXPort"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Vstavek za uvoz in izvoz stikov Eudore"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Vstavek KAB Mobile Phone XXPort"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Vstavek za uvoz in izvoz vnosov v adresarju prenosnih telefonov."
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Vstavek KAB KDE2 XXPort"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Vstavek za uvoz starih adresarjev iz KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Vstavek KAB LDIF XXPort"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr "Vstavek za uvoz in izvoz stikov v obliki LDIF (Netscape in Mozilla)"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Vstavek KAB Opera XXPort"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Vstavek za uvoz stikov iz Opere"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Vstavek KAB MS Exchange Personal Addressbook XXPort"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Vstavek za uvoz osebnih adresarjev MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Vstavek KAB vCard XXPort"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Vstavek za uvoz in izvoz stikov v obliki vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/sr.po b/translations/desktop_files/kaddressbook-desktops/sr.po
new file mode 100644
index 00000000..a301eea7
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/sr.po
@@ -0,0 +1,379 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Прикључак KAddressBook-а за преглед"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! адресар"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Адресар са DCOP интерфејсом"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Криптографска подешавања"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Тренутне поруке"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Едитор адреса тренутних порука"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook протокол тренутних адреса"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM протокол"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu протокол"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu протокол"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr "Groupware"
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell-ов GroupWise Messenger"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ протокол"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "Ћаскање преко интернета"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber протокол"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile протокол"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile протокол"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype интернет телефонија"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS протокол"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo протокол"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Прикључак KAB-а за дистрибуционе листе"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Прикључак за управљање дистрибуционим листама"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Прикључак KAB-а наредне генерације за дистрибуционе листе"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Прикључак управљања адресаром"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Прикључак за управљање адресарима"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressBook прикључак контроле едитора контаката"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Прикључак KAddressBook-а за проширења"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Прикључак KAddressBook-а за увоз/извоз"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! адресар"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Менаџер адреса"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Прикључак KAddressBook-а за преглед"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Опште"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Подешавање адресара"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; configure; settings; подеси; поставке;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Посебне странице"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Подешавање посебних страница"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; подеси; поставке; посебна поља;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP потрага"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Подешавање LDAP поставки адресара"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; configure; settings; подеси; поставке; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Фајлови електронске пословне картице"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Приказ са картицама"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Приказ са иконама"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Табеларни приказ"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "XXPort прикључак KAB-а за маркере"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Прикључак за извоз веб-адреса контаката као маркера"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "XXPort прикључак KAB-а за CSV"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Прикључак за увоз и извоз контаката у CSV формат"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "XXPort прикључак KAB-а за Eudora-у"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Прикључак за увоз и извоз Eudora контаката"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "XXPort прикључак KAB-а за мобилне телефоне"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Прикључак за увоз и извоз ставки из адресара у мобилни телефон"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "XXPort прикључак KAB-а за KDE2"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Прикључак за увоз старог KDE 2 адресара"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "XXPort прикључак KAB-а за LDIF"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr "Прикључак за увоз и извоз контаката у Netscape и Mozilla LDIF формат"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "XXPort прикључак KAB-а за Opera-у"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Прикључак за увоз Opera контаката"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "XXPort прикључак KAB-а за MS Exchange лични адресар"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Прикључак за увоз MS Exchange личних адресара"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "XXPort прикључак KAB-а за vCard"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Прикључак за увоз и извоз контаката у vCard формат"
diff --git a/translations/desktop_files/kaddressbook-desktops/sr@Latn.po b/translations/desktop_files/kaddressbook-desktops/sr@Latn.po
new file mode 100644
index 00000000..e4e9c165
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/sr@Latn.po
@@ -0,0 +1,379 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Priključak KAddressBook-a za pregled"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! adresar"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Adresar sa DCOP interfejsom"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Kriptografska podešavanja"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Trenutne poruke"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Editor adresa trenutnih poruka"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook protokol trenutnih adresa"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM protokol"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu protokol"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu protokol"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr "Groupware"
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell-ov GroupWise Messenger"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ protokol"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "Ćaskanje preko interneta"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber protokol"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile protokol"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile protokol"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype internet telefonija"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS protokol"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo protokol"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Priključak KAB-a za distribucione liste"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Priključak za upravljanje distribucionim listama"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Priključak KAB-a naredne generacije za distribucione liste"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Priključak upravljanja adresarom"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Priključak za upravljanje adresarima"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressBook priključak kontrole editora kontakata"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Priključak KAddressBook-a za proširenja"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Priključak KAddressBook-a za uvoz/izvoz"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! adresar"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Menadžer adresa"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Priključak KAddressBook-a za pregled"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Opšte"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Podešavanje adresara"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; configure; settings; podesi; postavke;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Posebne stranice"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Podešavanje posebnih stranica"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; podesi; postavke; posebna polja;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP potraga"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Podešavanje LDAP postavki adresara"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; configure; settings; podesi; postavke; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Fajlovi elektronske poslovne kartice"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Prikaz sa karticama"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Prikaz sa ikonama"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabelarni prikaz"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "XXPort priključak KAB-a za markere"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Priključak za izvoz veb-adresa kontakata kao markera"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "XXPort priključak KAB-a za CSV"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Priključak za uvoz i izvoz kontakata u CSV format"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "XXPort priključak KAB-a za Eudora-u"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Priključak za uvoz i izvoz Eudora kontakata"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "XXPort priključak KAB-a za mobilne telefone"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Priključak za uvoz i izvoz stavki iz adresara u mobilni telefon"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "XXPort priključak KAB-a za KDE2"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Priključak za uvoz starog KDE 2 adresara"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "XXPort priključak KAB-a za LDIF"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr "Priključak za uvoz i izvoz kontakata u Netscape i Mozilla LDIF format"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "XXPort priključak KAB-a za Opera-u"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Priključak za uvoz Opera kontakata"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "XXPort priključak KAB-a za MS Exchange lični adresar"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Priključak za uvoz MS Exchange ličnih adresara"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "XXPort priključak KAB-a za vCard"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Priključak za uvoz i izvoz kontakata u vCard format"
diff --git a/translations/desktop_files/kaddressbook-desktops/sv.po b/translations/desktop_files/kaddressbook-desktops/sv.po
new file mode 100644
index 00000000..8b9a17fd
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/sv.po
@@ -0,0 +1,381 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Kadressbok (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo!-adressbok"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Adressbok med DCOP-gränssnitt"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Krypteringsinställningar"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Direktmeddelanden"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Adresseditor för direktmeddelanden"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Direktmeddelandeprotokoll för adressboken"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM-protokoll"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu-protokoll"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu-protokoll"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr "Groupwise"
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell Groupwise Messenger"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ-protokoll"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber-protokoll"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile-protokoll"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile-protokoll"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype Internettelefoni"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS-protokoll"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo-protokoll"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Adressbokens insticksprogram för distributionslistor"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Insticksprogram för att hantera distributionslistor"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Adressbokens nästa generation insticksprogram för distributionslistor"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Insticksprogram för adressbokshantering"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Insticksprogram för att hantera adressböcker"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Kadressbok-insticksprogram för kontakteditor"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Kadressbok-utökningsinsticksprogram"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Kadressbok-insticksprogram för import/export"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "Adressbok"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Adresshanterare"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Kadressbok-visningsinsticksprogram"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Allmänt"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Anpassa adressboken"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "adressbok; anpassa; inställningar;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Egna sidor"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Anpassa egna sidor"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "adressbok; anpassa; inställningar; egna fält;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP-uppslagning"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Anpassa adressbokens LDAP-inställningar"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "adressbok; anpassa; inställningar; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Elektroniska visitkortsfiler"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Kortvy"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Ikonvy"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tabellvy"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Adressbokens överföringsinsticksprogram för bokmärken"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Insticksprogram för export av kontaktwebbadresser som bokmärken"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Adressbokens CSV-överföringsinsticksprogram"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Insticksprogram för import och export av kontakter med CSV-format"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Adressbokens Eudora-överföringsinsticksprogram"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Insticksprogram för import och export av Eudora-kontakter"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Adressbokens överföringsinsticksprogram för mobiltelefon"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Insticksprogram för import och export av adressboksposter till mobiltelefon"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Adressbokens KDE 2-överföringsinsticksprogram"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Insticksprogram för import av den gamla KDE 2 adressboken"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Adressbokens LDIF-överföringsinsticksprogram"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Insticksprogram för import och export av kontakter med Netscapes och "
+"Mozillas LDIF-format"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "AdressbokensOpera-överföringsinsticksprogram"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Insticksprogram för import av Opera-kontakter"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+"Adressbokens överföringsinsticksprogram för MS Exchange personlig adressbok"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Insticksprogram för import av MS Exchange personliga adressböcker"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Adressbokens vCard-överföringsinsticksprogram"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Insticksprogram för import och export av kontakter med vCard-format"
diff --git a/translations/desktop_files/kaddressbook-desktops/ta.po b/translations/desktop_files/kaddressbook-desktops/ta.po
new file mode 100644
index 00000000..4459bc73
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/ta.po
@@ -0,0 +1,381 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "கேமுகவரிப்புத்தகம் (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr "அவுட்லுக் 2000"
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "யாஹூ! முகவரிப் புத்தகம்"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "முகவரிப்புத்தகத்துடன் DCOP முகப்பு"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "க்ரிப்டோ முன்னுரிமைகள்"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "உடனடி செய்தி பரிமாற்றம்"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "உடனடி செய்தி பரிமாற்றத்தின் முகவரி தொகுப்பான்"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "கேஅட்ரஸ்புக் உடனடி செய்தி பரிமாற்றம்"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM நெறிமுறை"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr "கடு-கடு"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "கடு-கடு நெறிமுறை"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr "குழுவாரியாக"
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "நோவல் குழுவாரியான செய்தியாளன்"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ நெறிமுறை"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "இணைய வழங்கும் அறட்டை"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr "ஜாபர்"
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "ஜாபர் நெறிமுறை"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "நெறிமுறை"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "நெறிமுறை"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "MSN மெசஞ்சர்"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS நெறிமுறை"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo நெறிமுறை"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KABயின் பகிர்ந்தளித்தல் பட்டியல் சொருகுப்பொருள்"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "பகிர்தல் பட்டியல் நிர்வகித்தலின் சொருகுப்பொருள்"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KABயின் பகிர்ந்தளித்தல் பட்டியல் சொருகுப்பொருள்"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "முகவரி புத்தகம் மேலாண்மை சொருகுப்பொருள்"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "பகிர்தல் பட்டியல் நிர்வகித்தலின் சொருகுப்பொருள்"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "கேமுகவரிபுத்தகம் தொடர்பு தொகுப்பான் சாளர சொருகுப்பொருள்"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "கேமுகவரிப்புத்தகம் விரிவாக்க சொருகுப்பொருள்"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "கேமுகவரிப்புத்தகம் ஏற்றுமதி/இறக்குமதி சொருகுப்பொருள்"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "கேமுகவரிப் புத்தகம்"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "முகவரி மேலாளர்"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "கேமுகவரிப்புத்தகம் காட்சி சொருகுப்பொருள்"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "பொதுவான"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "கேமுகவரிப்புத்தகத்தை கட்டமை"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "கேமுகவரிப்புத்தகம்;கட்டமைப்பு;அமைவுகள்;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "தனிபயன் பக்கங்கள்"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "தனிபயன் பக்கங்களை கட்டமை"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "கேமுகவரிப்புத்தகம்;கட்டமை; அமைவுகள்; தனிபயன் புலங்கள்;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP லுக்கப்"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "கேமுகவரிபுத்தகத்தை உருவமை LDAP அமைவுகள்"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "கேமுகவரிபுத்தகம்;கட்டமைப்பு;அமைவுகள்;LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "மின்னணு தொழில் அட்டை கோப்புகள்"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "அட்டைக் காட்சி"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "சின்னத்தின் காட்சி"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "அட்டவணை காட்சி"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB புக்மார்க் ஏற்றுமதி சொருகுப்பொருள்"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "இணைய முகவரிகளின் தொடர்புகளை புத்தக குறிப்புகளாக ஏற்றுவதற்கு சொருகுப்பொருள்"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB CSV ஏற்றுமதி சொருகுப்பொருள்"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "CSV வடிவத்தில் ஏற்றுமதி மற்றும் இறக்குமதி தொடர்புகளுக்கான சொருகுப்பொருள்"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB யுடோரா XXபோர்ட் சொருகுப்பொருள்"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "யுடோரா ஏற்றுமதி மற்றும் இறக்குமதி செய்ய சொருகுப்பொருள்"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB நடமாடும் தொலைபேசி XXபோர்ட் சொருகுப்பொருள்"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"முகவரி புத்தகத்தின் உள்ளிடுகளை ஏற்றுமதி மற்றும் இறக்குமதி செய்ய செல்பேசி மூலம் "
+"சொருகுப்பொருள்"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 ஏற்றுமதி சொருகுப்பொருள்"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "பழைய KDE 2 கேமுகவரிபுத்தகத்தை ஏற்றுமதி செய்ய சொருகுப்பொருள்"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF சோதனை சொருகுப்பொருள்"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"நெட்ஸ்கேப் மற்றும் மொசில்லா LDIF வடிவமைப்பை ஏற்றுமதி/இறக்குமதியில் தொடர்புக்கொள்ள "
+"சொருகுப்பொருள்"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB ஓப்பெரா ஏற்றுமதி சொருகுப்பொருள்"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "ஓப்பெரா தொடர்புகளை இறக்குமதி செய்ய சொருகுப்பொருள்"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB MS Exchange Personal Address Books ஏற்றுமதி சொருகுப்பொருள்"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "MS Exchange Personal Address Books இறக்குமதி செய்ய சொருகுப்பொருள்"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "kab vஅட்டைxxபோர்ட் சொருகுப்பொருள்"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "ஏற்றுமதி மற்றும் இறக்குமதி தொடர்புகளை vஅட்டை வடிவமைப்பில் செலுத்த சொருகுப்பொருள்"
diff --git a/translations/desktop_files/kaddressbook-desktops/tg.po b/translations/desktop_files/kaddressbook-desktops/tg.po
new file mode 100644
index 00000000..522bb96d
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/tg.po
@@ -0,0 +1,381 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Китоби адрес (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Китоби адресии Yahoo!"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Китоби адрес бо интерфейси DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Танзимоти рамзгузорӣ"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Хизматгоҳи мубодилаи иттилоот"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Муҳаррири алоқоти хизматгоҳҳои мубодилаи иттилоот"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Протоколи мубодилаи иттилооти китоби адресии TDE"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Протоколи AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "протоколи Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "протоколи Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Протоколи ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "IRC (Internet Relay Chat)"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "протоколи Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+#, fuzzy
+msgid "Meanwhile Protocol"
+msgstr "Протоколи Yahoo"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "протоколи SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Протоколи Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Рӯйхати ба ҳар тараф мефиристодагӣ"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Кор бо рӯйхати ба ҳар тараф мефиристодагӣ"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Рӯйхати ба ҳар тараф мефиристодагӣ"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Идоракунии китоби адресӣ"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Идоракунии китобҳои адресӣ"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Муҳаррири алоқоти китоби адресии TDE"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Модули вусъатоти китоби адресии TDE"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Содирот ва воридоти китоби адрес"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Китоби адресии Yahoo!"
+
+#. GenericName
+#: kaddressbook.desktop:4
+#, fuzzy
+msgid "Address Manager"
+msgstr "Идоракунии китоби адресӣ"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Модули намоиши китоби адресии TDE"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Танзимоти китоби адрес"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook;китоби адрес;танзимот;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Варақаҳои замимавии истифодашаванда"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Танзимоти варақаҳои замимавии истифодашаванда"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook;китоби адрес;танзимот;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Ҷустуҷӯ дар каталогҳои LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Танзимоти серверҳои LDAP-и китоби адрес"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; configure; settings; LDAP; китоби адрес; танзимот;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Файлҳои визиткаи электронӣ"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Варақа"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Ишоротҳо"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Ҷадвал"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Содироти поягузор"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Модул барои содироти веб-адресҳои алоқа ҳамчун поягузор"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Содирот/воридот ба файлҳои CSV"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Модул барои воридот ва содироти алоқа ба формати CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Мубодилаи иттилоот бо Eudora"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Модул барои воридот ва содироти алоқаи Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Синхронизатсия бо телефони мобилӣ"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Модул барои воридот ва содироти алоқаи телефони мобилӣ"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Воридоти китоби адресии KDE2"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Модул барои воридоти файлҳои китобиадресии KDE2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Мубодилаи иттилоот аз KDE2"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Модул барои воридот ва содироти алоқа аз формати LDIF Netscape ва Mozilla"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Мубодилаи иттилоот бо Opera"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Модул барои воридоти алоқаи Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Воридоти алоқаҳои MS Exchange"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Модул барои воридоти китобҳои адреси шахсии MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Кор бо vCard"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Модул барои воридот ва содироти алоқот ба формати vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/th.po b/translations/desktop_files/kaddressbook-desktops/th.po
new file mode 100644
index 00000000..a872f53d
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/th.po
@@ -0,0 +1,375 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: th\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr ""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr ""
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "ทั่วไป"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "มุมมองแบบไอคอน"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/tr.po b/translations/desktop_files/kaddressbook-desktops/tr.po
new file mode 100644
index 00000000..9a88f40f
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/tr.po
@@ -0,0 +1,380 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KDE Adres Defteri (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! Adres Defteri"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "DCOP Arayüzü Olan Adres Defteri"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Şifreleme Özellikleri"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Hızlı Mesajlaşma"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Hızlı Mesajlaşma Adres Düzenleyicisi"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook Hızlı Mesajlaşma Protokolü"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM Protokolü"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu Protokolü"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu Protokolü"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell GroupWise Mesajlaşma Uygulaması"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ Protokolü"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "İnternet Genel Sohbeti"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber Protokolü"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile Protokolü"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile Protokolü"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "MSN Mesajcısı"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype İnternet Telefonu"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS Protokolü"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo Protokolü"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB Dağıtım Listesi Eklentisi"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Dağıtım listelerini yönetmek için eklenti"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB Dağıtım Listesi Eklentisi"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Adres Defteri Düzenleme Eklentisi"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Adres defteterini düzenlemek için eklenti"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Adres Defteri Kişi Düzenleyici Parçacık Eklentisi"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAdresDefteri Uzantı Eklentisi"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAdresDefteri Al/Gönder Eklentisi"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "TDE Adres Defteri"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Adres Yöneticisi"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAdresDefteri Gösterim Eklentisi"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Genel"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Adres Defterini Yapılandır"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kadresdefteri; yapılandırma; ayarlar;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Özel Sayfa"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Özel Sayfaları Yapılandır"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook;adres defteri;yapılandır;yapılandırma;özel alanlar;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP Tarama"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Adres Defteri LDAP Ayarlarını Yapılandır"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "adres defteri;yapılandırma;ayarlar;LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "Elektronik İş Kartı Dosyaları"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Kart Görünümü"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Simge Görünümü"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Tablo Görünümü"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB Yer imleri XXPort Eklentisi"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Bağlantıların web adreslerini yeri imleri olarak aktarmak için eklenti"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB CSV XXPort Eklentisi"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "CSV biçimindeki bağlantıları alma ve gönderme eklentisi"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB Eudora XXPort Eklentisi"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Eudora bağlantılarını alma ve gönderme eklentisi"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB Cep Telefonu XXPort Eklentisi"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "Adres Defteri Girdilerini Cep Telefonuna Alma ve Gönderme Eklentisi"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 XXPort Eklentisi"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "KDE 2 adres defteri bilgilerini alma eklentisi"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF XXPort Eklentisi"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Netscape ve Mozilla'nın LDIF biçimindeki bağlantılarını alma ve gönderme "
+"eklentisi"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB Opera XXPort Eklentisi"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Opera bağlantılarını alma eklentisi"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB MS Exchange Kişisel Adres Defteri XXPort Eklentisi"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "MS Exchange Kişisel Adres Defteri aktarım eklentisi"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB vCard XXPort Eklentisi"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "vCard biçimi bağlantıları alma ve gönderme eklentisi"
diff --git a/translations/desktop_files/kaddressbook-desktops/uk.po b/translations/desktop_files/kaddressbook-desktops/uk.po
new file mode 100644
index 00000000..72d80092
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/uk.po
@@ -0,0 +1,380 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2020-08-19 19:59+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kaddressbook-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KAddressBook (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr "Outlook 2000"
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Адресна книга Yahoo"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "Адресна книга з інтерфейсом DCOP"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "Параметри шифрування"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Миттєвий зв'язок"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "Редактор адрес миттєвого зв'язку"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Протокол миттєвого зв'язку KAddressbook"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr "AIM"
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "Протокол AIM"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Протокол Gadu-Gadu"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr "GroupWise"
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell GroupWise Messenger"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr "ICQ"
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "Протокол ICQ"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr "IRC"
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "IRChat"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr "Jabber"
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Протокол Jabber"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr "Meanwhile"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Протокол Meanwhile"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr "MSN Messenger"
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr "Skype"
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Інтернет-телефон Skype"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr "SMS"
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "Протокол SMS"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr "Yahoo"
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Протокол Yahoo"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Втулок списку розповсюдження KAB"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Втулок для керування списками розповсюдження"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Втулок Списку Розповсюдження KAB Наступної Генерації"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "Втулок для керування адресною книгою"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "Втулок для керування адресними книгами"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Втулок редагування контактів адресної книги"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "Втулок розширення адресної книги KAddressBook"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Втулок імпорту/експорту адресної книги KAddressBook"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "KAddressBook"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "Менеджер адрес"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "Втулок перегляду адресної книги KAddressBook"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Загальні"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Налаштування адресної книги"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; налаштування; параметри;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "Нетипові сторінки"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Налаштування нетипових сторінок"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; налаштування; параметри; нетипові поля;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "Пошук через LDAP"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "Налаштування параметрів LDAP для адресної книги"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; налаштування; параметри; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "файли електронних візитних карток"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "Вигляд картками"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Вигляд піктограмами"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Вигляд таблицею"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Втулок обміну закладками KAB"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Втулок для експорту адрес контактів у Тенетах як закладок"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "Втулок KAB для обміну через CSV"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "Втулок для імпорту та експорту контактів у форматі CSV"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "Втулок KAB для обміну з Eudora"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "Втулок для імпорту та експорту контактів з або до Eudora"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "Втулок KAB для обміну з мобільними телефонами"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+"Втулок для імпорту та експорту записів у адресній книзі мобільних телефонів"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "Втулок KAB для обміну з KDE2"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Втулок для імпорту адресної книги старого формату часів KDE 2"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "Втулок KAB для обміну через LDIF"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+"Втулок для імпорту та експорту контактів у LDIF сумісний з Netscape та "
+"Mozilla"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "Name=Втулок KAB для обміну з Opera"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "Втулок для імпорту контактів Opera"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "Втулок KAB для обміну з персональною адресною книгою MS Exchange"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Втулок для імпорту персональних адресних книг MS Exchange"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "Втулок KAB для обміну через vCard"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "Втулок для імпорту та експорту контактів у форматі vCard"
diff --git a/translations/desktop_files/kaddressbook-desktops/uz.po b/translations/desktop_files/kaddressbook-desktops/uz.po
new file mode 100644
index 00000000..9651f919
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/uz.po
@@ -0,0 +1,390 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr ""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! манзиллар дафтари"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "DCOP интерфейсли манзиллар дафтари"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "Хабар алмашиш"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+#, fuzzy
+msgid "Instant Messaging Address Editor"
+msgstr "Хабар алмашиш"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+#, fuzzy
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "Хабар алмашиш"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "Тарқатиш рўйхат плагини"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "Тарқатиш рўйхатларни бошқариш учу плагин"
+
+#. Name
+#: features/distributionlistng.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "Тарқатиш рўйхат плагини"
+
+#. Name
+#: features/resourceselection.desktop:7
+#, fuzzy
+msgid "Address Book Management Plugin"
+msgstr "Манзиллар дафтари учун импорт/экспорт плагини"
+
+#. Comment
+#: features/resourceselection.desktop:9
+#, fuzzy
+msgid "Plugin for managing address books"
+msgstr "Тарқатиш рўйхатларни бошқариш учу плагин"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+#, fuzzy
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "Манзиллар дафтари учун импорт/экспорт плагини"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+#, fuzzy
+msgid "KAddressBook Extension Plugin"
+msgstr "Манзиллар дафтари учун импорт/экспорт плагини"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "Манзиллар дафтари учун импорт/экспорт плагини"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! манзиллар дафтари"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+#, fuzzy
+msgid "KAddressBook View Plugin"
+msgstr "Манзиллар дафтари учун импорт/экспорт плагини"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "Умумий"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "Манзиллар дафтарини мослаш"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; мослаш; мосламалар; манзиллар дафтари;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+#, fuzzy
+msgid "Configure the Custom Pages"
+msgstr "Манзиллар дафтарини мослаш"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+#, fuzzy
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; мослаш; мосламалар; манзиллар дафтари;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "LDAP манзиллар дафтарини мослаш"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; мослаш; мосламалар; манзиллар дафтари; LDAP;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+#, fuzzy
+msgid "Card View"
+msgstr "Жадвал кўринишида"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Нишонча кўринишида"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "Жадвал кўринишида"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+#, fuzzy
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "Манзиллар дафтари учун импорт/экспорт плагини"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+#, fuzzy
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "Эски KDE 2 манзиллар дафтарини импорт қилиш учун плагин"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "Эски KDE 2 манзиллар дафтарини импорт қилиш учун плагин"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+#, fuzzy
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "Эски KDE 2 манзиллар дафтарини импорт қилиш учун плагин"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/ven.po b/translations/desktop_files/kaddressbook-desktops/ven.po
new file mode 100644
index 00000000..2d950cc7
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/ven.po
@@ -0,0 +1,377 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ven\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr "Bugu ya diresi ya K (KDE 3.1)"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Bugu ya diresi ya K (KDE 3.1)"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+#, fuzzy
+msgid "KAddressBook View Plugin"
+msgstr "Bugu ya diresi ya K (KDE 3.1)"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Mbonalelo ya aikhono"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/vi.po b/translations/desktop_files/kaddressbook-desktops/vi.po
new file mode 100644
index 00000000..13936128
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/vi.po
@@ -0,0 +1,375 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: vi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr ""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr ""
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Xem icon "
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/xh.po b/translations/desktop_files/kaddressbook-desktops/xh.po
new file mode 100644
index 00000000..d5e570b8
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/xh.po
@@ -0,0 +1,375 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: xh\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr ""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr ""
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Imboniselo ye Icon"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kaddressbook-desktops/zh_CN.po b/translations/desktop_files/kaddressbook-desktops/zh_CN.po
new file mode 100644
index 00000000..dac6d9d4
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/zh_CN.po
@@ -0,0 +1,379 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KAddressBook 查看插件"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! 地址簿"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "具有 DCOP 接口的地址簿"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "加密首选项"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "即时通讯"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "即时通讯地址编辑器"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook 即时通讯协议"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM 协议"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu 协议"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu 协议"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr "Novell GroupWise 信使"
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ 协议"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "Internet 聊天"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber 协议"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile 协议"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile 协议"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype Internet 电话"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr "短信息"
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "短信息协议"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo 协议"
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr "KAB 分发列表插件"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "管理分发列表的插件"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB 分发列表生成插件"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "地址簿管理插件"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "管理地址簿的插件"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressBook 联系人编辑部件插件"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressBook 扩展插件"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressBook 导入/导出插件"
+
+#. Name
+#: kaddressbook.desktop:2
+#, fuzzy
+msgid "KAddressBook"
+msgstr "Yahoo! 地址簿"
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr "地址管理器"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressBook 查看插件"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr "常规"
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "配置地址簿"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr "kaddressbook; configure; settings; 配置; 设置;"
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr "定制页"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "配置定制页"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr "kaddressbook; configure; settings; custom fields; 配置; 设置; 定制项;"
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr "LDAP 查询"
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "配置地址簿 LDAP 设置"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr "kaddressbook; configure; settings; LDAP; 配置; 设置;"
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "电子名片文件"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "卡片视图"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "图标视图"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "表格视图"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB 书签 XXPort 插件"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "将联系人的网址导出为书签的插件"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB CSV XXPort 插件"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "导入和导出 CSV 格式联系人的插件"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB Eudora XXPort 插件"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "导入和导出 Eudora 联系人的插件"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB 移动电话 XXPort 插件"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "导入和导出地址簿项的移动电话插件"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 XXPort 插件"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "导入旧的 KDE 2 地址簿的插件"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF XXPort 插件"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr "导入和导出 Netscape 和 Mozilla LDIF 格式联系人的插件"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB Opera XXPort 插件"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "导入 Opera 联系人的插件"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB MS Exchange 个人地址簿 XXPort 插件"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "导入 MS Exchange 个人地址簿的插件"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB vCard XXPort 插件"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "导入和导出 vCard 格式联系人的插件"
diff --git a/translations/desktop_files/kaddressbook-desktops/zh_TW.po b/translations/desktop_files/kaddressbook-desktops/zh_TW.po
new file mode 100644
index 00000000..5c426ea4
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/zh_TW.po
@@ -0,0 +1,381 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+#, fuzzy
+msgid "KAddressBook (KDE 3.1)"
+msgstr "KAddressBook 通訊錄"
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr "Yahoo! 通訊錄"
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr "有 DCOP 介面的通訊錄"
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr "加密設定"
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr "即時通訊"
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr "即時通訊位址編輯器"
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr "KAddressbook 即時通訊協定"
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr "AIM 協定"
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+#, fuzzy
+msgid "Gadu-Gadu"
+msgstr "Gadu-Gadu 協定"
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr "Gadu-Gadu 協定"
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr "ICQ 協定"
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr "IRC"
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr "Jabber 協定"
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+#, fuzzy
+msgid "Meanwhile"
+msgstr "Meanwhile 協定"
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr "Meanwhile 協定"
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr "Skype 網路電話"
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr "SMS 協定"
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr "Yahoo 協定"
+
+#. Name
+#: features/distributionlist.desktop:7
+#, fuzzy
+msgid "KAB Distribution List Plugin"
+msgstr "KAB 分派清單下一代外掛程式"
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr "管理分配清單外掛程式"
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr "KAB 分派清單下一代外掛程式"
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr "管理通訊錄外掛程式"
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr "管理通訊錄外掛程式"
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr "KAddressBook 聯絡人編輯器外掛程式"
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr "KAddressBook 延伸外掛程式"
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr "KAddressBook 匯入/匯出外掛程式"
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr "KAddressBook 通訊錄"
+
+#. GenericName
+#: kaddressbook.desktop:4
+#, fuzzy
+msgid "Address Manager"
+msgstr "管理通訊錄外掛程式"
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr "KAddressBook 檢視外掛程式"
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr "設定通訊錄"
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+#, fuzzy
+msgid "Custom Pages"
+msgstr "設定 Custom Pages"
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "設定 Custom Pages"
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr "設定通訊錄 LDAP 設定"
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr "電子名片檔"
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr "卡片檢視"
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "圖示檢視"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr "表格檢視"
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr "KAB Bookmark XXPort 外掛程式"
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr "匯出聯絡人的網頁成書籤的外掛程式"
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr "KAB CSV XXPort 外掛程式"
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr "以 CSV 格式匯入與匯出聯絡人外掛程式"
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr "KAB Eudora XXPort 外掛程式"
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr "匯入與匯出 Eudora 聯絡人的外掛程式"
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr "KAB Mobile Phone XXPort 外掛程式"
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr "匯入與匯出通訊錄的手機外掛程式"
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr "KAB KDE2 XXPort 外掛程式"
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr "匯入舊的 KDE2 通訊錄的外掛程式"
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr "KAB LDIF XXPort 外掛程式"
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr "匯入與匯出 Netscape 與 Mozilla LDIF 格式聯絡人的外掛程式"
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr "KAB Opera XXPort 外掛程式"
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr "匯入 Opera 聯絡人的外掛程式"
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr "KAB MS Exchange Personal Addressbook XXPort 外掛程式"
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr "匯入 MS Exchange Personal 通訊錄的外掛程式"
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr "KAB vCard XXPort 外掛程式"
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr "匯入與匯出 vCard 格式聯絡人的外掛程式"
diff --git a/translations/desktop_files/kaddressbook-desktops/zu.po b/translations/desktop_files/kaddressbook-desktops/zu.po
new file mode 100644
index 00000000..6c9534a5
--- /dev/null
+++ b/translations/desktop_files/kaddressbook-desktops/zu.po
@@ -0,0 +1,375 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: csv-templates/kaddressbook.desktop:9
+msgid "KAddressBook (KDE 3.1)"
+msgstr ""
+
+#. Name
+#: csv-templates/outlook2000.desktop:8
+msgid "Outlook 2000"
+msgstr ""
+
+#. Name
+#: csv-templates/yahoo.desktop:9
+msgid "Yahoo! AddressBook"
+msgstr ""
+
+#. Comment
+#: dcopaddressbook.desktop:5
+msgid "Address Book with a DCOP interface"
+msgstr ""
+
+#. Name
+#: editors/cryptosettings.desktop:7
+msgid "Crypto Preferences"
+msgstr ""
+
+#. Name
+#: editors/imaddresseditor.desktop:7
+msgid "Instant Messaging"
+msgstr ""
+
+#. Comment
+#: editors/imaddresseditor.desktop:9
+msgid "Instant Messaging Address Editor"
+msgstr ""
+
+#. Name
+#: editors/kaddressbookimprotocol.desktop:6
+msgid "KAddressbook Instant Messaging Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/aimprotocol.desktop:7
+msgid "AIM"
+msgstr ""
+
+#. Comment
+#: editors/protocols/aimprotocol.desktop:9
+msgid "AIM Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/gaduprotocol.desktop:7
+msgid "Gadu-Gadu"
+msgstr ""
+
+#. Comment
+#: editors/protocols/gaduprotocol.desktop:9
+msgid "Gadu-Gadu Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/groupwiseprotocol.desktop:7
+msgid "GroupWise"
+msgstr ""
+
+#. Comment
+#: editors/protocols/groupwiseprotocol.desktop:9
+msgid "Novell GroupWise Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/icqprotocol.desktop:7
+msgid "ICQ"
+msgstr ""
+
+#. Comment
+#: editors/protocols/icqprotocol.desktop:9
+msgid "ICQ Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/ircprotocol.desktop:7
+msgid "IRC"
+msgstr ""
+
+#. Comment
+#: editors/protocols/ircprotocol.desktop:9
+msgid "Internet Relay Chat"
+msgstr ""
+
+#. Name
+#: editors/protocols/jabberprotocol.desktop:7
+msgid "Jabber"
+msgstr ""
+
+#. Comment
+#: editors/protocols/jabberprotocol.desktop:9
+msgid "Jabber Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/meanwhileprotocol.desktop:7
+msgid "Meanwhile"
+msgstr ""
+
+#. Comment
+#: editors/protocols/meanwhileprotocol.desktop:9
+msgid "Meanwhile Protocol"
+msgstr ""
+
+#. Name
+#. Comment
+#: editors/protocols/msnprotocol.desktop:7
+#: editors/protocols/msnprotocol.desktop:9
+msgid "MSN Messenger"
+msgstr ""
+
+#. Name
+#: editors/protocols/skypeprotocol.desktop:7
+msgid "Skype"
+msgstr ""
+
+#. Comment
+#: editors/protocols/skypeprotocol.desktop:9
+msgid "Skype Internet Telephony"
+msgstr ""
+
+#. Name
+#: editors/protocols/smsprotocol.desktop:7
+msgid "SMS"
+msgstr ""
+
+#. Comment
+#: editors/protocols/smsprotocol.desktop:9
+msgid "SMS Protocol"
+msgstr ""
+
+#. Name
+#: editors/protocols/yahooprotocol.desktop:7
+msgid "Yahoo"
+msgstr ""
+
+#. Comment
+#: editors/protocols/yahooprotocol.desktop:9
+msgid "Yahoo Protocol"
+msgstr ""
+
+#. Name
+#: features/distributionlist.desktop:7
+msgid "KAB Distribution List Plugin"
+msgstr ""
+
+#. Comment
+#: features/distributionlist.desktop:9 features/distributionlistng.desktop:9
+msgid "Plugin for managing distribution lists"
+msgstr ""
+
+#. Name
+#: features/distributionlistng.desktop:7
+msgid "KAB Distribution List Next Generation Plugin"
+msgstr ""
+
+#. Name
+#: features/resourceselection.desktop:7
+msgid "Address Book Management Plugin"
+msgstr ""
+
+#. Comment
+#: features/resourceselection.desktop:9
+msgid "Plugin for managing address books"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_contacteditorwidget.desktop:5
+msgid "KAddressBook Contact Editor Widget Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_extension.desktop:5
+msgid "KAddressBook Extension Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/kaddressbook_xxport.desktop:5
+msgid "KAddressBook Import/Export Plugin"
+msgstr ""
+
+#. Name
+#: kaddressbook.desktop:2
+msgid "KAddressBook"
+msgstr ""
+
+#. GenericName
+#: kaddressbook.desktop:4
+msgid "Address Manager"
+msgstr ""
+
+#. Comment
+#: kaddressbook_view.desktop:5
+msgid "KAddressBook View Plugin"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabconfig.desktop:15
+msgid "General"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabconfig.desktop:17
+msgid "Configure the Address Book"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabconfig.desktop:19
+msgid "kaddressbook; configure; settings;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabcustomfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabcustomfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabcustomfields.desktop:18
+msgid "kaddressbook; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: kcmconfigs/kabldapconfig.desktop:14
+msgid "LDAP Lookup"
+msgstr ""
+
+#. Comment
+#: kcmconfigs/kabldapconfig.desktop:16
+msgid "Configure the Address Book LDAP Settings"
+msgstr ""
+
+#. Keywords
+#: kcmconfigs/kabldapconfig.desktop:18
+msgid "kaddressbook; configure; settings; LDAP;"
+msgstr ""
+
+#. Name
+#: thumbnailcreator/ldifvcardthumbnail.desktop:8
+msgid "Electronic Business Card Files"
+msgstr ""
+
+#. Name
+#: views/cardview.desktop:7
+msgid "Card View"
+msgstr ""
+
+#. Name
+#: views/iconview.desktop:7
+msgid "Icon View"
+msgstr "Umboniso we Icon"
+
+#. Name
+#: views/tableview.desktop:7
+msgid "Table View"
+msgstr ""
+
+#. Name
+#: xxport/bookmark_xxport.desktop:7
+msgid "KAB Bookmark XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/bookmark_xxport.desktop:9
+msgid "Plugin to export the web addresses of the contacts as bookmarks"
+msgstr ""
+
+#. Name
+#: xxport/csv_xxport.desktop:7
+msgid "KAB CSV XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/csv_xxport.desktop:9
+msgid "Plugin to import and export contacts in CSV format"
+msgstr ""
+
+#. Name
+#: xxport/eudora_xxport.desktop:7
+msgid "KAB Eudora XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/eudora_xxport.desktop:9
+msgid "Plugin to import and export Eudora contacts"
+msgstr ""
+
+#. Name
+#: xxport/gnokii_xxport.desktop:7
+msgid "KAB Mobile Phone XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/gnokii_xxport.desktop:9
+msgid "Mobile Phone Plugin to Import and Export Addressbook Entries"
+msgstr ""
+
+#. Name
+#: xxport/kde2_xxport.desktop:7
+msgid "KAB KDE2 XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/kde2_xxport.desktop:9
+msgid "Plugin to import the old KDE 2 address book"
+msgstr ""
+
+#. Name
+#: xxport/ldif_xxport.desktop:7
+msgid "KAB LDIF XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/ldif_xxport.desktop:9
+msgid ""
+"Plugin to import and export contacts in Netscape and Mozilla LDIF format"
+msgstr ""
+
+#. Name
+#: xxport/opera_xxport.desktop:7
+msgid "KAB Opera XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/opera_xxport.desktop:9
+msgid "Plugin to import Opera contacts"
+msgstr ""
+
+#. Name
+#: xxport/pab_xxport.desktop:7
+msgid "KAB MS Exchange Personal Addressbook XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/pab_xxport.desktop:9
+msgid "Plugin to import MS Exchange Personal Address Books"
+msgstr ""
+
+#. Name
+#: xxport/vcard_xxport.desktop:7
+msgid "KAB vCard XXPort Plugin"
+msgstr ""
+
+#. Comment
+#: xxport/vcard_xxport.desktop:9
+msgid "Plugin to import and export contacts in vCard format"
+msgstr ""
diff --git a/translations/desktop_files/kalarm-desktops/af.po b/translations/desktop_files/kalarm-desktops/af.po
new file mode 100644
index 00000000..a9ff1e50
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/af.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "K-alarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Persoonlike alarm skeduleerder"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Persoonlike alarm skeduleerder: begin as stelsel laai ikoon"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm Bediener"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Begin KAlarm bediener outomaties tydens aanteken"
diff --git a/translations/desktop_files/kalarm-desktops/bg.po b/translations/desktop_files/kalarm-desktops/bg.po
new file mode 100644
index 00000000..91b69023
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/bg.po
@@ -0,0 +1,44 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Демон на KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Аларма"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Аларма: стартиране като икона в системния панел"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Демон на KAlarm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
+"Автоматично стартиране на процеса на алармата KAlarm при влизане в системата"
diff --git a/translations/desktop_files/kalarm-desktops/br.po b/translations/desktop_files/kalarm-desktops/br.po
new file mode 100644
index 00000000..21717a29
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/br.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Diaoul KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr ""
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Diaoul KAlarm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
diff --git a/translations/desktop_files/kalarm-desktops/bs.po b/translations/desktop_files/kalarm-desktops/bs.po
new file mode 100644
index 00000000..54e46651
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/bs.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr ""
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Lični alarm"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Lični alarm: pokreni kao ikonu u panelu"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr ""
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
diff --git a/translations/desktop_files/kalarm-desktops/ca.po b/translations/desktop_files/kalarm-desktops/ca.po
new file mode 100644
index 00000000..8dbedbb5
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/ca.po
@@ -0,0 +1,45 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Dimoni KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Planificador d'alarmes personals"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+"Planificador d'alarma personal; s'inicia com a una icona a la safata del "
+"sistema"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Dimoni KAlarm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Dimoni d'inici automàtic de l'alarma KAlarm en connectar"
diff --git a/translations/desktop_files/kalarm-desktops/cs.po b/translations/desktop_files/kalarm-desktops/cs.po
new file mode 100644
index 00000000..23be3eba
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/cs.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/kalarm-desktop-files/cs/>\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: Weblate 4.8.1\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Osobní plánovač alarmů"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Plánovač alarmů a připomenutí: spustit v systémové liště"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Alarm démon"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Automatické spouštění alarmovacího démona při startu"
diff --git a/translations/desktop_files/kalarm-desktops/cy.po b/translations/desktop_files/kalarm-desktops/cy.po
new file mode 100644
index 00000000..a97b41d9
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/cy.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "KLarwm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Trefnlennydd Larwm Personol"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Trefnlennydd Larwm Personol: cychwynnwch fel eicon yn y cafn cysawd"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+#, fuzzy
+msgid "KAlarm Daemon"
+msgstr "KLarwm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
diff --git a/translations/desktop_files/kalarm-desktops/da.po b/translations/desktop_files/kalarm-desktops/da.po
new file mode 100644
index 00000000..c7a91a38
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/da.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarm Dæmon"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Personlig skemalægning af alarm"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Skemalægger personlig alarm: start som statusikon."
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm Dæmon"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "KAlarm-alarmdæmon autostart ved login"
diff --git a/translations/desktop_files/kalarm-desktops/de.po b/translations/desktop_files/kalarm-desktops/de.po
new file mode 100644
index 00000000..80b3b5d6
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/de.po
@@ -0,0 +1,44 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarm Erinnerungsprogramm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Persönliche Termin-Erinnerung"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Erinnerungsfunktion im Systemabschnitt der Kontrollleiste"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm Erinnerungsprogramm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
+"Autostart des KAlarm Erinnerungsprogramms von KOrganizer bei der Anmeldung"
diff --git a/translations/desktop_files/kalarm-desktops/el.po b/translations/desktop_files/kalarm-desktops/el.po
new file mode 100644
index 00000000..f5d7002c
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/el.po
@@ -0,0 +1,45 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Δαίμονας KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Προσωπικός προγραμματιστής ειδοποιήσεων"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+"Προσωπικός προγραμματιστής ειδοποιήσεων: εκκίνηση σαν εικονίδιο στο πλαίσιο "
+"συστήματος"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Δαίμονας KAlarm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Αυτόματη εκκίνηση του δαίμονα KAlarm κατά τη σύνδεση"
diff --git a/translations/desktop_files/kalarm-desktops/eo.po b/translations/desktop_files/kalarm-desktops/eo.po
new file mode 100644
index 00000000..645ed74e
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/eo.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "Alarmilo"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Persona alarmplanilo"
+
+#. Comment
+#: kalarm.tray.desktop:4
+#, fuzzy
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Persona alarmplanilo"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm-demono"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
diff --git a/translations/desktop_files/kalarm-desktops/es.po b/translations/desktop_files/kalarm-desktops/es.po
new file mode 100644
index 00000000..dae6a1f3
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/es.po
@@ -0,0 +1,44 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Daemon de KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Planificador de alarmas personales"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+"Programador de alarma personal: comenzar como icono de la bandeja del sistema"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Daemon de KAlarm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Inicio automático al ingresar del daemon de alarma de KAlarm"
diff --git a/translations/desktop_files/kalarm-desktops/et.po b/translations/desktop_files/kalarm-desktops/et.po
new file mode 100644
index 00000000..070bf288
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/et.po
@@ -0,0 +1,44 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarmi häiredeemon"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Meeldetuletuste ajastaja"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+"Häirete ja meeldetuletuste ajakava: käivitamine süsteemse doki ikoonina"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarmi häiredeemon"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "KAlarmi häiredeemoni automaatne käivitamine"
diff --git a/translations/desktop_files/kalarm-desktops/eu.po b/translations/desktop_files/kalarm-desktops/eu.po
new file mode 100644
index 00000000..8cd74893
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/eu.po
@@ -0,0 +1,44 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarm deabrua"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Alarma pertsonalen programatzailea"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+"Alarma pertsonalen programatzailea: abiatu sistemaren bandejako ikono bezala"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm deabrua"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "KAlarm alarma deabrua saioa hastean automatikoki abiatzen da"
diff --git a/translations/desktop_files/kalarm-desktops/fa.po b/translations/desktop_files/kalarm-desktops/fa.po
new file mode 100644
index 00000000..9444fdd2
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/fa.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "شبح KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "زمان‌بند هشدار شخصی"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "زمان‌بند هشدار شخصی: آغاز به عنوان شمایل سینی سیستم"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "شبح KAlarm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "آغاز خودکار هشدار KAlarm در ورود"
diff --git a/translations/desktop_files/kalarm-desktops/fi.po b/translations/desktop_files/kalarm-desktops/fi.po
new file mode 100644
index 00000000..c2e162ce
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/fi.po
@@ -0,0 +1,44 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Hälytyspalvelin"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Henkilökohtainen hälytysajastin"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Henkilökohtainen hälytysajastin: käynnistä paneelikuvake"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Hälytyspalvelin"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
+"KOrganizer/KAlarm-hälytyspalvelimen automaattikäynnistys sisäänkirjautuessa"
diff --git a/translations/desktop_files/kalarm-desktops/fr.po b/translations/desktop_files/kalarm-desktops/fr.po
new file mode 100644
index 00000000..d2de5a9a
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/fr.po
@@ -0,0 +1,45 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Démon d'alarme"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Planificateur d'alarme personnel"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Planificateur d'alarme personnel : démarre dans la boîte à miniatures"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Démon d'alarme"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
+"Le démon d'alarme de KOrganizer et de KAlarm démarre automatiquement lors de "
+"la connexion"
diff --git a/translations/desktop_files/kalarm-desktops/fy.po b/translations/desktop_files/kalarm-desktops/fy.po
new file mode 100644
index 00000000..dc4d2d64
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/fy.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr ""
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Persoanlike alarmplanner"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Persoanlike alarmplanner: begjinne yn it systeemfak"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr ""
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "KAlarm alarmdaemon automatysk begjinne by it oanmelden"
diff --git a/translations/desktop_files/kalarm-desktops/ga.po b/translations/desktop_files/kalarm-desktops/ga.po
new file mode 100644
index 00000000..9050bfbe
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/ga.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Deamhan KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr ""
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Deamhan KAlarm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
diff --git a/translations/desktop_files/kalarm-desktops/gl.po b/translations/desktop_files/kalarm-desktops/gl.po
new file mode 100644
index 00000000..35f0ccca
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/gl.po
@@ -0,0 +1,44 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Daemon de KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Progamador Persoal de Alarmas"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+"Programador persoal de alarmas: iniciar como icona na bandexa do sistema"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Daemon de KAlarm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Autoinicio á entrada do daemon de KAlarm"
diff --git a/translations/desktop_files/kalarm-desktops/he.po b/translations/desktop_files/kalarm-desktops/he.po
new file mode 100644
index 00000000..e4a652cd
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/he.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "תהליך הרקע תזכורות"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "מנהל זמן אישי"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "מתזמן הודעות תזכורת: הפעלה בתור סמל במגש המערכת"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "תהליך הרקע תזכורות"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "הפעלה אוטומטית של תהליך הרקע תזכורות של KAlarm בעת ההפעלה"
diff --git a/translations/desktop_files/kalarm-desktops/hi.po b/translations/desktop_files/kalarm-desktops/hi.po
new file mode 100644
index 00000000..5e695953
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/hi.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "के-अलार्म"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "निजी अलार्म शेड्यूलर"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "निजी अलार्म शेड्यूलरः तंत्र तश्तरी प्रतीक की तरह प्रारंभ हों"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+#, fuzzy
+msgid "KAlarm Daemon"
+msgstr "के-अलार्म"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
diff --git a/translations/desktop_files/kalarm-desktops/hu.po b/translations/desktop_files/kalarm-desktops/hu.po
new file mode 100644
index 00000000..a19a0ee2
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/hu.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarm szolgáltatás"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Emlékeztetőkezelő"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Az emlékeztető üzenetek megjelenítőprogramja: indítás a paneltálcában"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm szolgáltatás"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "A KAlarm emlékeztető szolgáltatás automatikus elindítása"
diff --git a/translations/desktop_files/kalarm-desktops/is.po b/translations/desktop_files/kalarm-desktops/is.po
new file mode 100644
index 00000000..30bc4a59
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/is.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarm þjónn"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Áminningakerfi"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Áminningakerfi: ræsir sem táknmynd á spjaldinu"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm þjónn"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Ræsa KAlarm áminningaþjónn sjálfkrafa við byrjun setu"
diff --git a/translations/desktop_files/kalarm-desktops/it.po b/translations/desktop_files/kalarm-desktops/it.po
new file mode 100644
index 00000000..bb2643ec
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/it.po
@@ -0,0 +1,45 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2022-12-20 06:21+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kalarm-desktop-files/it/>\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: Weblate 4.14.2\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Programmatore degli avvisi personali"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+"Programmatore personale degli avvisi: all'avvio si mette nel vassoio di "
+"sistema"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Demone degli avvisi"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Avvio automatico del demone degli avvisi"
diff --git a/translations/desktop_files/kalarm-desktops/ja.po b/translations/desktop_files/kalarm-desktops/ja.po
new file mode 100644
index 00000000..0d441103
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/ja.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarm デーモン"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "個人アラームスケジューラ"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "個人アラームスケジューラ: システムトレイアイコンで起動"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm デーモン"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "KAlarm アラームデーモンのログイン時の自動起動"
diff --git a/translations/desktop_files/kalarm-desktops/kalarm-desktops.pot b/translations/desktop_files/kalarm-desktops/kalarm-desktops.pot
new file mode 100644
index 00000000..31b95edb
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/kalarm-desktops.pot
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr ""
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr ""
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr ""
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
diff --git a/translations/desktop_files/kalarm-desktops/kk.po b/translations/desktop_files/kalarm-desktops/kk.po
new file mode 100644
index 00000000..c1710433
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/kk.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarm қызметі"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Дербес ескертулер жоспарлағышы"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Дербес ескертулер жоспарлағышы: жүйелік сөреде орналасады"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm қызметі"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "KAlarm қызметі жүйеге кіргенде жегіледі"
diff --git a/translations/desktop_files/kalarm-desktops/km.po b/translations/desktop_files/kalarm-desktops/km.po
new file mode 100644
index 00000000..d1d772da
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/km.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "ដេមិន KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "កម្មវិធី​កំណត់​ម៉ោង​រោទ៍​ផ្ទាល់​ខ្លួន"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "កម្មវិធី​កំណត់​ម៉ោង​រោទ៍​ផ្ទាល់​ខ្លួន ៖ ចាប់ផ្ដើម​ជា​រូបតំណាង​ក្នុង​ថាស​ប្រព័ន្ធ"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "ដេមិន KAlarm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "ចាប់ផ្ដើម​ដេមិន​រោទ៍​របស់ KAlarm ពេល​ចូល"
diff --git a/translations/desktop_files/kalarm-desktops/ko.po b/translations/desktop_files/kalarm-desktops/ko.po
new file mode 100644
index 00000000..5313f475
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/ko.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "TDE 알람"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr ""
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+#, fuzzy
+msgid "KAlarm Daemon"
+msgstr "TDE 알람"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
diff --git a/translations/desktop_files/kalarm-desktops/lt.po b/translations/desktop_files/kalarm-desktops/lt.po
new file mode 100644
index 00000000..e4e0402e
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/lt.po
@@ -0,0 +1,45 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarm tarnyba"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Asmeninių žinučių-priminimų planuoklis"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Žinučių-priminimų planuoklis: paleisti kaip sisteminio dėklo ženkliuką"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm tarnyba"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
+"KOrganizer/KAlarm priminimų tarnybos automatinis paleidimas "
+"prisiregistruojant"
diff --git a/translations/desktop_files/kalarm-desktops/mk.po b/translations/desktop_files/kalarm-desktops/mk.po
new file mode 100644
index 00000000..0caaf9b4
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/mk.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "КАларм"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Закажување лични аларми"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Закажување лични аларми: стартувај во сис. лента"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Даемон за КАларм"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Даемон за аларми од КАларм - автом. старт при најава"
diff --git a/translations/desktop_files/kalarm-desktops/ms.po b/translations/desktop_files/kalarm-desktops/ms.po
new file mode 100644
index 00000000..6889028f
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/ms.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Daemon KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Penjadual Penggera Peribadi"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Penjadual Penggera Peribadi: mulakan sebagai ikon dulang sistem"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Daemon KAlarm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Automula daemon penggera KAlarm semasa log masuk"
diff --git a/translations/desktop_files/kalarm-desktops/nb.po b/translations/desktop_files/kalarm-desktops/nb.po
new file mode 100644
index 00000000..5ec4f312
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/nb.po
@@ -0,0 +1,45 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarm-nisse"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Personlig varslingsplanlegger"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+"Tidsplanlegger for alarm- og påminnelsesbeskjeder: start som ikon i "
+"systemkurven"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm-nisse"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "start alarmnisse ved innlogging"
diff --git a/translations/desktop_files/kalarm-desktops/nds.po b/translations/desktop_files/kalarm-desktops/nds.po
new file mode 100644
index 00000000..a803c6f9
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/nds.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarm-Dämoon"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Persöönlich Anstöötgever"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Anstöötgever binnen den Systeemafsnitt starten"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm-Dämoon"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "KAlarm-Dämoon bi't Anmellen automaatsch starten"
diff --git a/translations/desktop_files/kalarm-desktops/ne.po b/translations/desktop_files/kalarm-desktops/ne.po
new file mode 100644
index 00000000..154677df
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/ne.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "केडीई संसूचक"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "व्यक्तिगत संसूचक अनुसूचक"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "व्यक्तिगत संसूचक अनुसूचक: प्रणाली ट्रे प्रतिमा अनुरुप सुरु गर्नुहोस्"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "केडीई संसूचक डेइमन"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "लगइनमा केडीई संसूचक संसूचक डेइमन स्वत: सुरुआत हुन्छ"
diff --git a/translations/desktop_files/kalarm-desktops/nl.po b/translations/desktop_files/kalarm-desktops/nl.po
new file mode 100644
index 00000000..f858a234
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/nl.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr ""
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Persoonlijke alarmplanner"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Persoonlijke alarmplanner: opstarten in systeemvak"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr ""
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "KAlarm alarmdaemon automatisch starten bij login"
diff --git a/translations/desktop_files/kalarm-desktops/nn.po b/translations/desktop_files/kalarm-desktops/nn.po
new file mode 100644
index 00000000..2741528b
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/nn.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarm-nisse"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Planleggar for alarmar/påminningsmeldingar"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Personleg alarmplanleggjar. Start som ikon i systemtrauet"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm-nisse"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Start alarmnisse ved innlogging"
diff --git a/translations/desktop_files/kalarm-desktops/nso.po b/translations/desktop_files/kalarm-desktops/nso.po
new file mode 100644
index 00000000..028ad40d
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/nso.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nso\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "KAlamo"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr ""
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+#, fuzzy
+msgid "KAlarm Daemon"
+msgstr "KAlamo"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
diff --git a/translations/desktop_files/kalarm-desktops/pl.po b/translations/desktop_files/kalarm-desktops/pl.po
new file mode 100644
index 00000000..b4885fc0
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/pl.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "Alarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Program przypominający o zdarzeniach"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Program przypominający o zdarzeniach: startuje w tacce systemowej"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Demon alarmowy"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Demon alarmu KOrganizera uruchamiany przy zalogowaniu"
diff --git a/translations/desktop_files/kalarm-desktops/pt.po b/translations/desktop_files/kalarm-desktops/pt.po
new file mode 100644
index 00000000..3d9379e0
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/pt.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Servidor do KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Gestor de Alarmes Pessoal"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Escalonador de Alarmes Pessoal: iniciar como ícone da bandeja"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Servidor do KAlarm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Servidor de alarme do KAlarm auto-iniciado no arranque"
diff --git a/translations/desktop_files/kalarm-desktops/pt_BR.po b/translations/desktop_files/kalarm-desktops/pt_BR.po
new file mode 100644
index 00000000..246e88da
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/pt_BR.po
@@ -0,0 +1,44 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Servidor do KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Agendador de Alarme Pessoal"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+"Agendador de Alarme Pessoal: iniciar como um ícone na bandeja do sistema"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Servidor do KAlarm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Servidor de alarmes do KAlarm inicia automaticamente no login"
diff --git a/translations/desktop_files/kalarm-desktops/ru.po b/translations/desktop_files/kalarm-desktops/ru.po
new file mode 100644
index 00000000..a8c6813e
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/ru.po
@@ -0,0 +1,45 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Alexander Golubev <fatzer2@gmail.com>, 2021.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2024-03-29 02:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kalarm-desktop-files/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Напоминания"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Персональный будильник (запускается в виде значка в панели задач)"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Демон уведомлений"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Демон уведомлений TDE"
diff --git a/translations/desktop_files/kalarm-desktops/sk.po b/translations/desktop_files/kalarm-desktops/sk.po
new file mode 100644
index 00000000..38faa681
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/sk.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarm démon"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Osobný plánovač alarmov"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Osobný plánovač alarmov: spustiť v systémovej lište"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm démon"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Automatické spustenie kAlarm démona pri štarte"
diff --git a/translations/desktop_files/kalarm-desktops/sl.po b/translations/desktop_files/kalarm-desktops/sl.po
new file mode 100644
index 00000000..5bc37789
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/sl.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Demon KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Razporejevalnik osebnih alarmov"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Razporejevalnik osebnih alarmov: zaženi kot ikono sistemske vrstice"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Demon KAlarm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Samodejni zagon alarmskega strežnika KAlarma ob zagonu"
diff --git a/translations/desktop_files/kalarm-desktops/sr.po b/translations/desktop_files/kalarm-desktops/sr.po
new file mode 100644
index 00000000..55c1a8e3
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/sr.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Демон KAlarm-а"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Лични планер аларма"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Лични планер аларма: покреће се као икона у системској касети"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Демон KAlarm-а"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Аутоматско покретање алармног демона KAlarm-а по пријављивању"
diff --git a/translations/desktop_files/kalarm-desktops/sr@Latn.po b/translations/desktop_files/kalarm-desktops/sr@Latn.po
new file mode 100644
index 00000000..829a8496
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/sr@Latn.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "Demon KAlarm-a"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Lični planer alarma"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Lični planer alarma: pokreće se kao ikona u sistemskoj kaseti"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Demon KAlarm-a"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Automatsko pokretanje alarmnog demona KAlarm-a po prijavljivanju"
diff --git a/translations/desktop_files/kalarm-desktops/sv.po b/translations/desktop_files/kalarm-desktops/sv.po
new file mode 100644
index 00000000..89aecddf
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/sv.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "Kalarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Personlig alarmschemaläggning"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Personlig alarmschemaläggare: starta som en ikon i systembrickan"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Alarmdemon"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Kalarm-alarmdemon, automatisk start vid inloggning"
diff --git a/translations/desktop_files/kalarm-desktops/ta.po b/translations/desktop_files/kalarm-desktops/ta.po
new file mode 100644
index 00000000..afd8a0e3
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/ta.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "Kஅலாரம்"
+
+#. GenericName
+#: kalarm.desktop:4
+#, fuzzy
+msgid "Personal Alarm Scheduler"
+msgstr "Personal Alarm Scheduler: கணினி தட்டு சின்னமாக துவங்கு"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Personal Alarm Scheduler: கணினி தட்டு சின்னமாக துவங்கு"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "கேஅலாரம் டெமான்"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "உள்நுழையும்போது கேஅலாரம் அலாரம் டெமான் தானாகவே துவங்கும்"
diff --git a/translations/desktop_files/kalarm-desktops/tg.po b/translations/desktop_files/kalarm-desktops/tg.po
new file mode 100644
index 00000000..b133533d
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/tg.po
@@ -0,0 +1,44 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr ""
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Идоракунии хотиррасониҳои шахсӣ"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+"Соати рӯимизии зангдори шахсӣ (ба намуди ишорот дар панели вазифа ба кор "
+"дароварда мешавад)"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr ""
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
diff --git a/translations/desktop_files/kalarm-desktops/th.po b/translations/desktop_files/kalarm-desktops/th.po
new file mode 100644
index 00000000..caa35e76
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/th.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: th\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "เตือนการนัดหมาย - K"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr ""
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+#, fuzzy
+msgid "KAlarm Daemon"
+msgstr "เตือนการนัดหมาย - K"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
diff --git a/translations/desktop_files/kalarm-desktops/tr.po b/translations/desktop_files/kalarm-desktops/tr.po
new file mode 100644
index 00000000..8515f258
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/tr.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarm Servis Programı"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Kişisel Alarm"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Kişisel Alarm Zamanlayıcı"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm Servis Programı"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "KAlarm alarm servis programı (açılışta başlar)"
diff --git a/translations/desktop_files/kalarm-desktops/uk.po b/translations/desktop_files/kalarm-desktops/uk.po
new file mode 100644
index 00000000..14041a56
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/uk.po
@@ -0,0 +1,44 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2020-08-19 19:59+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kalarm-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "KAlarm"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "Персональний планувальник нагадувань"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "Персональний планувальник нагадувань: стартує як піктограма в лотку"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "Демон KAlarm"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "Автозавантаження демона нагадувань KAlarm"
diff --git a/translations/desktop_files/kalarm-desktops/ven.po b/translations/desktop_files/kalarm-desktops/ven.po
new file mode 100644
index 00000000..496fb94c
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/ven.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ven\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "Alamu ya K"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr ""
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr ""
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+#, fuzzy
+msgid "KAlarm Daemon"
+msgstr "Alamu ya K"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr ""
diff --git a/translations/desktop_files/kalarm-desktops/zh_CN.po b/translations/desktop_files/kalarm-desktops/zh_CN.po
new file mode 100644
index 00000000..0656987c
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/zh_CN.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+#, fuzzy
+msgid "KAlarm"
+msgstr "KAlarm 进程"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "个人日程提醒"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "个人日程提醒程序:以系统托盘图标启动"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm 进程"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "登录时自动启动 KAlarm 定时守护进程"
diff --git a/translations/desktop_files/kalarm-desktops/zh_TW.po b/translations/desktop_files/kalarm-desktops/zh_TW.po
new file mode 100644
index 00000000..24fbd97b
--- /dev/null
+++ b/translations/desktop_files/kalarm-desktops/zh_TW.po
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kalarm.desktop:2 kalarm.tray.desktop:2
+msgid "KAlarm"
+msgstr "KAlarm 鬧鐘"
+
+#. GenericName
+#: kalarm.desktop:4
+msgid "Personal Alarm Scheduler"
+msgstr "個人鬧鐘排程程式"
+
+#. Comment
+#: kalarm.tray.desktop:4
+msgid "Personal Alarm Scheduler: start as system tray icon"
+msgstr "警示/提醒訊息排程器:以系統列圖示的方式啟動"
+
+#. Name
+#: kalarmd/kalarmd.autostart.desktop:2 kalarmd/kalarmd.desktop:2
+msgid "KAlarm Daemon"
+msgstr "KAlarm 守護程式"
+
+#. Comment
+#: kalarmd/kalarmd.autostart.desktop:4
+msgid "KAlarm alarm daemon autostart at login"
+msgstr "登入時自動啟動 KAlarm 鬧鐘守護程式"
diff --git a/translations/desktop_files/kandy.desktop/af.po b/translations/desktop_files/kandy.desktop/af.po
new file mode 100644
index 00000000..b74bb5b6
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/af.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Mobiele Foon Program"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Program om die adres boek data met die van 'n selfoon te sinkroniseer"
diff --git a/translations/desktop_files/kandy.desktop/bg.po b/translations/desktop_files/kandy.desktop/bg.po
new file mode 100644
index 00000000..d7ecb9f8
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/bg.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Мобилни телефони"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Инструмент за синхронизиране на адресника с мобилни телефони"
diff --git a/translations/desktop_files/kandy.desktop/bs.po b/translations/desktop_files/kandy.desktop/bs.po
new file mode 100644
index 00000000..c07e8235
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/bs.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Alat za mobilne telefone"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Alat za sinhroniziranje podataka između adresara i mobilnih telefona"
diff --git a/translations/desktop_files/kandy.desktop/ca.po b/translations/desktop_files/kandy.desktop/ca.po
new file mode 100644
index 00000000..97f7415f
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/ca.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Eina per a telèfons mòbils"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
+"Eina per sincronitzar dades de la llibreta d'adreces amb telèfons mòbils"
diff --git a/translations/desktop_files/kandy.desktop/cs.po b/translations/desktop_files/kandy.desktop/cs.po
new file mode 100644
index 00000000..3618f873
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/cs.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/kandy-kandydesktop/cs/>\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: Weblate 4.8.1\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr "Kandy"
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Nástroj pro mobilní telefony"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Nástroj pro synchronizaci kontaktů s mobilními telefony"
diff --git a/translations/desktop_files/kandy.desktop/cy.po b/translations/desktop_files/kandy.desktop/cy.po
new file mode 100644
index 00000000..690e4477
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/cy.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Erfyn Ffôn Symudol"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/da.po b/translations/desktop_files/kandy.desktop/da.po
new file mode 100644
index 00000000..529b8167
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/da.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Mobiltelefonværktøj"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Værktøj til at synkronisere adressebogens data med mobiltelefoner"
diff --git a/translations/desktop_files/kandy.desktop/de.po b/translations/desktop_files/kandy.desktop/de.po
new file mode 100644
index 00000000..d628d709
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/de.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Programm für Mobiltelefone"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Werkzeug zum Abgleich von Adressbuchdaten mit dem Mobiltelefon"
diff --git a/translations/desktop_files/kandy.desktop/el.po b/translations/desktop_files/kandy.desktop/el.po
new file mode 100644
index 00000000..2a254565
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/el.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Εργαλείο κινητών τηλεφώνων"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Εργαλείο συγχρονισμού βιβλίων διευθύνσεων με κινητά τηλέφωνα"
diff --git a/translations/desktop_files/kandy.desktop/eo.po b/translations/desktop_files/kandy.desktop/eo.po
new file mode 100644
index 00000000..4a12af99
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/eo.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Ilo por poŝtelefono"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/es.po b/translations/desktop_files/kandy.desktop/es.po
new file mode 100644
index 00000000..28b4e5bd
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/es.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Gestor de teléfonos móviles"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
+"Herramienta para sincronizar datos de la libreta de direcciones con "
+"teléfonos móviles"
diff --git a/translations/desktop_files/kandy.desktop/et.po b/translations/desktop_files/kandy.desktop/et.po
new file mode 100644
index 00000000..0d25cc1e
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/et.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Mobiiltelefoni rakendus"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Vahend aadressiraamatu andmete sünkroniseerimiseks mobiiltelefoniga"
diff --git a/translations/desktop_files/kandy.desktop/eu.po b/translations/desktop_files/kandy.desktop/eu.po
new file mode 100644
index 00000000..a63673f4
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/eu.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Telefono mugikorrendako Tresna"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Helbide-liburua zure mugikorrarekin sinkronizatzeko tresna"
diff --git a/translations/desktop_files/kandy.desktop/fa.po b/translations/desktop_files/kandy.desktop/fa.po
new file mode 100644
index 00000000..cc49dca1
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/fa.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "ابزار تلفن همراه"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "ابزار برای همگام‌سازی دادۀ کتاب نشانی با تلفنهای همراه"
diff --git a/translations/desktop_files/kandy.desktop/fi.po b/translations/desktop_files/kandy.desktop/fi.po
new file mode 100644
index 00000000..3c7c3ccb
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/fi.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Matkapuhelintyökalu"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Osoitekirjan tietojan ja kännykän liitostyökalu"
diff --git a/translations/desktop_files/kandy.desktop/fr.po b/translations/desktop_files/kandy.desktop/fr.po
new file mode 100644
index 00000000..cba6db66
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/fr.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Outil de connexion à votre téléphone portable"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
+"Outil pour synchroniser les données de carnets d'adresses avec les "
+"téléphones mobiles"
diff --git a/translations/desktop_files/kandy.desktop/fy.po b/translations/desktop_files/kandy.desktop/fy.po
new file mode 100644
index 00000000..77aa207f
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/fy.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Mobiele tillefoan-behear"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Helpmiddel om adresboekdata te syngronisearjen mei mobile tillefoans"
diff --git a/translations/desktop_files/kandy.desktop/gl.po b/translations/desktop_files/kandy.desktop/gl.po
new file mode 100644
index 00000000..1ca0bc8e
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/gl.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Ferramenta para o Teléfono Móbil"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
+"Ferramenta para sincronizar os datos do caderno de enderezos con teléfonos "
+"móbiles"
diff --git a/translations/desktop_files/kandy.desktop/he.po b/translations/desktop_files/kandy.desktop/he.po
new file mode 100644
index 00000000..0da74be4
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/he.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "כלי טלפון נייד"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/hi.po b/translations/desktop_files/kandy.desktop/hi.po
new file mode 100644
index 00000000..ca48b8d1
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/hi.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr "केंडी"
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "मोबाइल फोन उपकरण"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/hr.po b/translations/desktop_files/kandy.desktop/hr.po
new file mode 100644
index 00000000..73392e67
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/hr.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Alat za mobitele"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/hu.po b/translations/desktop_files/kandy.desktop/hu.po
new file mode 100644
index 00000000..177191cc
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/hu.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Mobil-címjegyzék"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
+"Segédprogram számítógép és mobiltelefon címjegyzékének szinkronizálásához"
diff --git a/translations/desktop_files/kandy.desktop/is.po b/translations/desktop_files/kandy.desktop/is.po
new file mode 100644
index 00000000..6355c8b3
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/is.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Farsímatól"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Tól sem samstillir vistfangagögn við farsíma"
diff --git a/translations/desktop_files/kandy.desktop/it.po b/translations/desktop_files/kandy.desktop/it.po
new file mode 100644
index 00000000..dd943108
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/it.po
@@ -0,0 +1,35 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: 2020-11-25 19:48+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kandy-kandydesktop/it/>\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: Weblate 4.3.2\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr "Kandy"
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Strumento per i telefoni cellulari"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
+"Strumento per sincronizzare i dati della rubrica indirizzi con i telefoni "
+"cellulari"
diff --git a/translations/desktop_files/kandy.desktop/ja.po b/translations/desktop_files/kandy.desktop/ja.po
new file mode 100644
index 00000000..02817294
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/ja.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "携帯電話ツール"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "アドレス帳のデータを携帯電話と同期するためのツール"
diff --git a/translations/desktop_files/kandy.desktop/kandy.desktop.pot b/translations/desktop_files/kandy.desktop/kandy.desktop.pot
new file mode 100644
index 00000000..c41ff89f
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/kandy.desktop.pot
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr ""
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/kk.po b/translations/desktop_files/kandy.desktop/kk.po
new file mode 100644
index 00000000..d7164f03
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/kk.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Қалта телефон құралы"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Адрестік кітапшаны қалта телефонмен қадамдастыру құралы"
diff --git a/translations/desktop_files/kandy.desktop/km.po b/translations/desktop_files/kandy.desktop/km.po
new file mode 100644
index 00000000..2f1b8d27
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/km.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "ឧបករណ៍​ទូរស័ព្ទ​ចល័ត"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "ឧបករណ៍​សម្រាប់​ធ្វើ​សមកាលកម្ម​ទិន្នន័យ​សៀវភៅ​អាសយដ្ឋាន​ជាមួយ​នឹង​ទូរស័ព្ទ​ចល័ត"
diff --git a/translations/desktop_files/kandy.desktop/lt.po b/translations/desktop_files/kandy.desktop/lt.po
new file mode 100644
index 00000000..93464ab3
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/lt.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Mobilaus telefono įrankis"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Įrankis adresų knygelės sinchronizavimui su mobiliaisiais telefonais"
diff --git a/translations/desktop_files/kandy.desktop/lv.po b/translations/desktop_files/kandy.desktop/lv.po
new file mode 100644
index 00000000..2b0a232b
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/lv.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Mobīlā Telefona Rīks"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/mk.po b/translations/desktop_files/kandy.desktop/mk.po
new file mode 100644
index 00000000..1d7d463e
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/mk.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Алатка за мобилни телефони"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Алатка за синхронизирање адресари со мобилни телефони"
diff --git a/translations/desktop_files/kandy.desktop/ms.po b/translations/desktop_files/kandy.desktop/ms.po
new file mode 100644
index 00000000..b5f81660
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/ms.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Alatan Fon Mudah Alih"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Alat untuk segerakkan data buku alamat dengan telefon bimbit"
diff --git a/translations/desktop_files/kandy.desktop/nb.po b/translations/desktop_files/kandy.desktop/nb.po
new file mode 100644
index 00000000..b1c4ee7d
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/nb.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Mobiltelefonverktøy"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Verktøy for synkronisering av adressebok med mobiltelefoner"
diff --git a/translations/desktop_files/kandy.desktop/nds.po b/translations/desktop_files/kandy.desktop/nds.po
new file mode 100644
index 00000000..ba4e52b1
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/nds.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Mobiltelefoon-Warktüüch"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Synkroniseren vun Adressbookdaten mit Mobiltelefonen"
diff --git a/translations/desktop_files/kandy.desktop/ne.po b/translations/desktop_files/kandy.desktop/ne.po
new file mode 100644
index 00000000..68d141f3
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/ne.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr "केन्डी"
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "मोबाइल फोन उपकरण"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "मोबाइल फोनमा ठेगाना पुस्तिका समक्रमण गर्नका लागि उपकरण"
diff --git a/translations/desktop_files/kandy.desktop/nl.po b/translations/desktop_files/kandy.desktop/nl.po
new file mode 100644
index 00000000..fb1ed752
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/nl.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Mobiele telefoon-beheer"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
+"Hulpmiddel om adresboekgegevens te synchroniseren met mobiele telefoons"
diff --git a/translations/desktop_files/kandy.desktop/nn.po b/translations/desktop_files/kandy.desktop/nn.po
new file mode 100644
index 00000000..b9ecc85e
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/nn.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Mobiltelefonverktøy"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Verktøy for å synkronisera adresseboka med mobiltelefonar"
diff --git a/translations/desktop_files/kandy.desktop/nso.po b/translations/desktop_files/kandy.desktop/nso.po
new file mode 100644
index 00000000..9ade2633
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/nso.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nso\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Sebereka sago Thatha sa Mogala"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/pl.po b/translations/desktop_files/kandy.desktop/pl.po
new file mode 100644
index 00000000..3742eb56
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/pl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Łącznik z telefonem komórkowym"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Narzędzie do synchronizacji książki adresowej z telefonami komórkowymi"
diff --git a/translations/desktop_files/kandy.desktop/pt.po b/translations/desktop_files/kandy.desktop/pt.po
new file mode 100644
index 00000000..d48a7573
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/pt.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Ferramenta para Telemóveis"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Ferramenta para sincronizar dados do livro de endereços com telemóveis"
diff --git a/translations/desktop_files/kandy.desktop/pt_BR.po b/translations/desktop_files/kandy.desktop/pt_BR.po
new file mode 100644
index 00000000..45c065bb
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/pt_BR.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Ferramenta de Telefonia Móvel"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
+"Ferramenta para a sincronização dos dados do livro de endereços com "
+"dispositivos móveis"
diff --git a/translations/desktop_files/kandy.desktop/ro.po b/translations/desktop_files/kandy.desktop/ro.po
new file mode 100644
index 00000000..3ceb00d7
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/ro.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Utilitar telefon mobil"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/ru.po b/translations/desktop_files/kandy.desktop/ru.po
new file mode 100644
index 00000000..8d93e948
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/ru.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: 2024-04-12 16:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kandy-kandydesktop/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr "Kandy"
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Работа с мобильным телефоном"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Программа синхронизации адресной книги с мобильным телефоном"
diff --git a/translations/desktop_files/kandy.desktop/se.po b/translations/desktop_files/kandy.desktop/se.po
new file mode 100644
index 00000000..ebd56df1
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/se.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Mátketelefuvdnareaidu"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/sk.po b/translations/desktop_files/kandy.desktop/sk.po
new file mode 100644
index 00000000..18f9bc07
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/sk.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Nástroj pre mobily"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Nástroj pre synchronizáciu adresára s mobilmi"
diff --git a/translations/desktop_files/kandy.desktop/sl.po b/translations/desktop_files/kandy.desktop/sl.po
new file mode 100644
index 00000000..833c04f7
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/sl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Orodje za mobilni telefon"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Orodje za usklajevanje podatkov adresarja z mobilnim telefonom"
diff --git a/translations/desktop_files/kandy.desktop/sr.po b/translations/desktop_files/kandy.desktop/sr.po
new file mode 100644
index 00000000..499f4387
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/sr.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Алат за мобилни телефон"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Алат за синхронизацију адресара са мобилним телефонима"
diff --git a/translations/desktop_files/kandy.desktop/sr@Latn.po b/translations/desktop_files/kandy.desktop/sr@Latn.po
new file mode 100644
index 00000000..38b495d3
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/sr@Latn.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Alat za mobilni telefon"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Alat za sinhronizaciju adresara sa mobilnim telefonima"
diff --git a/translations/desktop_files/kandy.desktop/sv.po b/translations/desktop_files/kandy.desktop/sv.po
new file mode 100644
index 00000000..1b0e0fb6
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/sv.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Verktyg för mobiltelefon"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Verktyg för att synkronisera adressboksdata med mobiltelefoner"
diff --git a/translations/desktop_files/kandy.desktop/ta.po b/translations/desktop_files/kandy.desktop/ta.po
new file mode 100644
index 00000000..bdeed9d1
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/ta.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr "Kஅன்டி"
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "செல்பேசி கருவி"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "செல்பேசி கொண்ட முகவரி புத்தக தரவின் ஒன்றிணைக்கப்படுவதற்கான கருவி"
diff --git a/translations/desktop_files/kandy.desktop/tg.po b/translations/desktop_files/kandy.desktop/tg.po
new file mode 100644
index 00000000..0d260de2
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/tg.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Кор бо телефони мобилӣ"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Барномаи синхронизатсияи китоби адресӣ бо телефони мобилӣ"
diff --git a/translations/desktop_files/kandy.desktop/th.po b/translations/desktop_files/kandy.desktop/th.po
new file mode 100644
index 00000000..7cbb6e4f
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/th.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: th\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "เครื่องมือสำหรับโทรศัพท์เคลื่อนที่"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/tr.po b/translations/desktop_files/kandy.desktop/tr.po
new file mode 100644
index 00000000..9bf64a43
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/tr.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Cep Telefonu Aracı"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "Cep telefonları ile adres defteri paylaşımı için araç"
diff --git a/translations/desktop_files/kandy.desktop/uk.po b/translations/desktop_files/kandy.desktop/uk.po
new file mode 100644
index 00000000..e5c3cbe9
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/uk.po
@@ -0,0 +1,35 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: 2020-08-19 19:59+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kandy-kandydesktop/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr "Kandy"
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Засіб для мобільних телефонів"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
+"Інструмент для синхронізації даних адресної книги з мобільним телефоном"
diff --git a/translations/desktop_files/kandy.desktop/uz.po b/translations/desktop_files/kandy.desktop/uz.po
new file mode 100644
index 00000000..d2d26ab4
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/uz.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Уяли телефон учун восита"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/ven.po b/translations/desktop_files/kandy.desktop/ven.po
new file mode 100644
index 00000000..bf1b8a29
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/ven.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ven\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Tshishumiswa tsha lutingo thendeleki"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/vi.po b/translations/desktop_files/kandy.desktop/vi.po
new file mode 100644
index 00000000..a4a83763
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/vi.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: vi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Công cụ điện thoại di động"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/xh.po b/translations/desktop_files/kandy.desktop/xh.po
new file mode 100644
index 00000000..d06fe22c
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/xh.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: xh\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Isixhobo Semfono-mfono Ekuhanjwa nayo"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/kandy.desktop/zh_CN.po b/translations/desktop_files/kandy.desktop/zh_CN.po
new file mode 100644
index 00000000..34a7d7d5
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/zh_CN.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "移动电话工具"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "将地址簿数据与移动电话同步的工具"
diff --git a/translations/desktop_files/kandy.desktop/zh_TW.po b/translations/desktop_files/kandy.desktop/zh_TW.po
new file mode 100644
index 00000000..04d2e88e
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/zh_TW.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "行動電話工具"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr "將通訊錄與手機同步的工具"
diff --git a/translations/desktop_files/kandy.desktop/zu.po b/translations/desktop_files/kandy.desktop/zu.po
new file mode 100644
index 00000000..d811e8b0
--- /dev/null
+++ b/translations/desktop_files/kandy.desktop/zu.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: src/kandy.desktop:2
+msgid "Kandy"
+msgstr ""
+
+#. GenericName
+#: src/kandy.desktop:4
+msgid "Mobile Phone Tool"
+msgstr "Ithuluzi Lamakhala ekhukhwini"
+
+#. Comment
+#: src/kandy.desktop:6
+msgid "Tool for syncing address book data with mobile phones"
+msgstr ""
diff --git a/translations/desktop_files/karm-desktops/af.po b/translations/desktop_files/karm-desktops/af.po
new file mode 100644
index 00000000..8aacebe7
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/af.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr "Karm"
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Persoonlike Tyd Volger"
diff --git a/translations/desktop_files/karm-desktops/az.po b/translations/desktop_files/karm-desktops/az.po
new file mode 100644
index 00000000..f988d8c4
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/az.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: az\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Şəxsi Saat İzləyici"
diff --git a/translations/desktop_files/karm-desktops/bg.po b/translations/desktop_files/karm-desktops/bg.po
new file mode 100644
index 00000000..f13bf61e
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/bg.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Отчитане на времето"
diff --git a/translations/desktop_files/karm-desktops/br.po b/translations/desktop_files/karm-desktops/br.po
new file mode 100644
index 00000000..69bd2f04
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/br.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Roudenner amzer personel"
diff --git a/translations/desktop_files/karm-desktops/bs.po b/translations/desktop_files/karm-desktops/bs.po
new file mode 100644
index 00000000..a9edbf6c
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/bs.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Osobni mjerač vremena"
diff --git a/translations/desktop_files/karm-desktops/ca.po b/translations/desktop_files/karm-desktops/ca.po
new file mode 100644
index 00000000..d66ff491
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/ca.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Cronòmetre personal"
diff --git a/translations/desktop_files/karm-desktops/cs.po b/translations/desktop_files/karm-desktops/cs.po
new file mode 100644
index 00000000..9774aa04
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/cs.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: 2020-09-20 18:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/karm-desktop-files/cs/>\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: Weblate 4.2.2\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr "Komponent karm"
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr "KArm"
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Osobní měřič času"
diff --git a/translations/desktop_files/karm-desktops/cy.po b/translations/desktop_files/karm-desktops/cy.po
new file mode 100644
index 00000000..171d15e0
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/cy.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Dilynnydd Amser Personol"
diff --git a/translations/desktop_files/karm-desktops/da.po b/translations/desktop_files/karm-desktops/da.po
new file mode 100644
index 00000000..4e1ffbb1
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/da.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Personlig tidsoversigt"
diff --git a/translations/desktop_files/karm-desktops/de.po b/translations/desktop_files/karm-desktops/de.po
new file mode 100644
index 00000000..144e4062
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/de.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr "KArm-Komponente"
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Persönliche Zeiterfassung"
diff --git a/translations/desktop_files/karm-desktops/el.po b/translations/desktop_files/karm-desktops/el.po
new file mode 100644
index 00000000..2eadfba9
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/el.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Προσωπικός καταγραφέας χρόνου"
diff --git a/translations/desktop_files/karm-desktops/eo.po b/translations/desktop_files/karm-desktops/eo.po
new file mode 100644
index 00000000..1b50630c
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/eo.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Tempomezurilo por viaj aktivecoj"
diff --git a/translations/desktop_files/karm-desktops/es.po b/translations/desktop_files/karm-desktops/es.po
new file mode 100644
index 00000000..5d34da8e
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/es.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Cronómetro personal"
diff --git a/translations/desktop_files/karm-desktops/et.po b/translations/desktop_files/karm-desktops/et.po
new file mode 100644
index 00000000..60bd2110
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/et.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr "KArmi komponent"
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Personaalne ajaarvestus"
diff --git a/translations/desktop_files/karm-desktops/eu.po b/translations/desktop_files/karm-desktops/eu.po
new file mode 100644
index 00000000..42734cb2
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/eu.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Kronometro pertsonala"
diff --git a/translations/desktop_files/karm-desktops/fa.po b/translations/desktop_files/karm-desktops/fa.po
new file mode 100644
index 00000000..b8b30fd2
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/fa.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "ردیاب شخصی زمان"
diff --git a/translations/desktop_files/karm-desktops/fi.po b/translations/desktop_files/karm-desktops/fi.po
new file mode 100644
index 00000000..063f38d8
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/fi.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Henkilökohtainen ajanhallintaohjelma"
diff --git a/translations/desktop_files/karm-desktops/fr.po b/translations/desktop_files/karm-desktops/fr.po
new file mode 100644
index 00000000..77fc68d4
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/fr.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr "Composant KArm"
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Chronomètre individuel de tâches"
diff --git a/translations/desktop_files/karm-desktops/fy.po b/translations/desktop_files/karm-desktops/fy.po
new file mode 100644
index 00000000..a3574823
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/fy.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Persoanlike tiidregistraasje"
diff --git a/translations/desktop_files/karm-desktops/gl.po b/translations/desktop_files/karm-desktops/gl.po
new file mode 100644
index 00000000..4475c05e
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/gl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Xestor Persoal de Proxectos"
diff --git a/translations/desktop_files/karm-desktops/he.po b/translations/desktop_files/karm-desktops/he.po
new file mode 100644
index 00000000..e09b4e78
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/he.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "מנהל זמן אישי"
diff --git a/translations/desktop_files/karm-desktops/hi.po b/translations/desktop_files/karm-desktops/hi.po
new file mode 100644
index 00000000..4afe2b68
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/hi.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr "के-आर्म"
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr ""
diff --git a/translations/desktop_files/karm-desktops/hr.po b/translations/desktop_files/karm-desktops/hr.po
new file mode 100644
index 00000000..087071ef
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/hr.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Osobni mjerač vremena"
diff --git a/translations/desktop_files/karm-desktops/hu.po b/translations/desktop_files/karm-desktops/hu.po
new file mode 100644
index 00000000..e3f9f01f
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/hu.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Időfelhasználás-figyelő"
diff --git a/translations/desktop_files/karm-desktops/id.po b/translations/desktop_files/karm-desktops/id.po
new file mode 100644
index 00000000..ae66938a
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/id.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: id\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Tracker Waktu Pribadi"
diff --git a/translations/desktop_files/karm-desktops/is.po b/translations/desktop_files/karm-desktops/is.po
new file mode 100644
index 00000000..5a03c6e5
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/is.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr "karm hluti"
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Fylgjast með í hvað tíminn fer"
diff --git a/translations/desktop_files/karm-desktops/it.po b/translations/desktop_files/karm-desktops/it.po
new file mode 100644
index 00000000..0d69c0da
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/it.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: 2020-11-22 12:59+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/karm-desktop-files/it/>\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: Weblate 4.3.2\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr "karmPart"
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr "KArm"
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Segnatempo personale"
diff --git a/translations/desktop_files/karm-desktops/karm-desktops.pot b/translations/desktop_files/karm-desktops/karm-desktops.pot
new file mode 100644
index 00000000..dfd9db83
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/karm-desktops.pot
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr ""
diff --git a/translations/desktop_files/karm-desktops/kk.po b/translations/desktop_files/karm-desktops/kk.po
new file mode 100644
index 00000000..5d8d4c5f
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/kk.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Дербес уақыт қадағалағышы"
diff --git a/translations/desktop_files/karm-desktops/km.po b/translations/desktop_files/karm-desktops/km.po
new file mode 100644
index 00000000..cc4f271a
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/km.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "កម្មវិធី​តាមដាន​ពេលវេលា​ផ្ទាល់​ខ្លួន"
diff --git a/translations/desktop_files/karm-desktops/ko.po b/translations/desktop_files/karm-desktops/ko.po
new file mode 100644
index 00000000..5e28c8f8
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/ko.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "일하는 시간을 잴 수 있습니다"
diff --git a/translations/desktop_files/karm-desktops/lt.po b/translations/desktop_files/karm-desktops/lt.po
new file mode 100644
index 00000000..a6682e35
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/lt.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Asmeninis laiko sekėjas"
diff --git a/translations/desktop_files/karm-desktops/lv.po b/translations/desktop_files/karm-desktops/lv.po
new file mode 100644
index 00000000..54d73b7a
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/lv.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Personālais Laika Atsekotājs"
diff --git a/translations/desktop_files/karm-desktops/mk.po b/translations/desktop_files/karm-desktops/mk.po
new file mode 100644
index 00000000..cceb2f6d
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/mk.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Следење на личното време"
diff --git a/translations/desktop_files/karm-desktops/ms.po b/translations/desktop_files/karm-desktops/ms.po
new file mode 100644
index 00000000..a67d07d7
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/ms.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Penjejak Waktu Peribadi"
diff --git a/translations/desktop_files/karm-desktops/mt.po b/translations/desktop_files/karm-desktops/mt.po
new file mode 100644
index 00000000..c8266510
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/mt.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Żomm il-ħin personali"
diff --git a/translations/desktop_files/karm-desktops/nb.po b/translations/desktop_files/karm-desktops/nb.po
new file mode 100644
index 00000000..58e84031
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/nb.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Personlig tidsoversikt"
diff --git a/translations/desktop_files/karm-desktops/nds.po b/translations/desktop_files/karm-desktops/nds.po
new file mode 100644
index 00000000..c834cac2
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/nds.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr "karm-Komponent"
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Persöönlich Tietlogbook"
diff --git a/translations/desktop_files/karm-desktops/ne.po b/translations/desktop_files/karm-desktops/ne.po
new file mode 100644
index 00000000..95140c0c
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/ne.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "व्यक्तिगत समय ट्र्याकर"
diff --git a/translations/desktop_files/karm-desktops/nl.po b/translations/desktop_files/karm-desktops/nl.po
new file mode 100644
index 00000000..c0bf2fc0
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/nl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Tijdsregistratie"
diff --git a/translations/desktop_files/karm-desktops/nn.po b/translations/desktop_files/karm-desktops/nn.po
new file mode 100644
index 00000000..b5e02262
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/nn.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Personleg tidsmålar"
diff --git a/translations/desktop_files/karm-desktops/nso.po b/translations/desktop_files/karm-desktops/nso.po
new file mode 100644
index 00000000..341e5f76
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/nso.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nso\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Seswaranako sa Nako ya Botho"
diff --git a/translations/desktop_files/karm-desktops/pl.po b/translations/desktop_files/karm-desktops/pl.po
new file mode 100644
index 00000000..ec9d458c
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/pl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Osobisty Czasomierz"
diff --git a/translations/desktop_files/karm-desktops/pt.po b/translations/desktop_files/karm-desktops/pt.po
new file mode 100644
index 00000000..bf06a93a
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/pt.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr "Componente KArm"
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Gestor Pessoal de Tempo"
diff --git a/translations/desktop_files/karm-desktops/pt_BR.po b/translations/desktop_files/karm-desktops/pt_BR.po
new file mode 100644
index 00000000..15beaf45
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/pt_BR.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr "Componente do KArm"
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Gerenciador pessoal de tempo"
diff --git a/translations/desktop_files/karm-desktops/ro.po b/translations/desktop_files/karm-desktops/ro.po
new file mode 100644
index 00000000..5557965c
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/ro.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Organizator timp personal"
diff --git a/translations/desktop_files/karm-desktops/ru.po b/translations/desktop_files/karm-desktops/ru.po
new file mode 100644
index 00000000..8130180d
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/ru.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: 2024-04-12 16:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/karm-desktop-files/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr "karmPart"
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr "KArm"
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Учёт рабочего времени"
diff --git a/translations/desktop_files/karm-desktops/sk.po b/translations/desktop_files/karm-desktops/sk.po
new file mode 100644
index 00000000..349d8e86
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/sk.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Osobný merač času"
diff --git a/translations/desktop_files/karm-desktops/sl.po b/translations/desktop_files/karm-desktops/sl.po
new file mode 100644
index 00000000..afe8d3c5
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/sl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Osebni merilec časa"
diff --git a/translations/desktop_files/karm-desktops/sr.po b/translations/desktop_files/karm-desktops/sr.po
new file mode 100644
index 00000000..1fc857a1
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/sr.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Лични пратилац времена"
diff --git a/translations/desktop_files/karm-desktops/sr@Latn.po b/translations/desktop_files/karm-desktops/sr@Latn.po
new file mode 100644
index 00000000..ac0b55ef
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/sr@Latn.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Lični pratilac vremena"
diff --git a/translations/desktop_files/karm-desktops/sv.po b/translations/desktop_files/karm-desktops/sv.po
new file mode 100644
index 00000000..985a8a8e
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/sv.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr "Karm-delprogram"
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr "Karm"
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Personlig tidmätare"
diff --git a/translations/desktop_files/karm-desktops/ta.po b/translations/desktop_files/karm-desktops/ta.po
new file mode 100644
index 00000000..50c1a206
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/ta.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr "Kஅம்"
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "தனிப்பயன் நேரம் பின்பற்றி"
diff --git a/translations/desktop_files/karm-desktops/tg.po b/translations/desktop_files/karm-desktops/tg.po
new file mode 100644
index 00000000..1366cc36
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/tg.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Баҳисобгирии вақти корӣ"
diff --git a/translations/desktop_files/karm-desktops/tr.po b/translations/desktop_files/karm-desktops/tr.po
new file mode 100644
index 00000000..e6fdb3ad
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/tr.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr "karmpart"
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Kişisel Saat İzleyici"
diff --git a/translations/desktop_files/karm-desktops/uk.po b/translations/desktop_files/karm-desktops/uk.po
new file mode 100644
index 00000000..0a95cab5
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/uk.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: 2020-08-19 19:59+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/karm-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr "karmPart"
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr "KArm"
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Персональний лічильник часу"
diff --git a/translations/desktop_files/karm-desktops/ven.po b/translations/desktop_files/karm-desktops/ven.po
new file mode 100644
index 00000000..fe9182f2
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/ven.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ven\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Tshisedzulusi tsha tshifhinga tsha vhune"
diff --git a/translations/desktop_files/karm-desktops/vi.po b/translations/desktop_files/karm-desktops/vi.po
new file mode 100644
index 00000000..4e396b4b
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/vi.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: vi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Trình đo thời gian"
diff --git a/translations/desktop_files/karm-desktops/xh.po b/translations/desktop_files/karm-desktops/xh.po
new file mode 100644
index 00000000..6201e387
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/xh.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: xh\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr "KAlrm"
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Umfumani Wexesha Lobuqu"
diff --git a/translations/desktop_files/karm-desktops/zh_CN.po b/translations/desktop_files/karm-desktops/zh_CN.po
new file mode 100644
index 00000000..fcb2abc0
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/zh_CN.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "个人时间记录"
diff --git a/translations/desktop_files/karm-desktops/zh_TW.po b/translations/desktop_files/karm-desktops/zh_TW.po
new file mode 100644
index 00000000..e21adf01
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/zh_TW.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr "KArm 個人時程紀錄"
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "個人時程記錄"
diff --git a/translations/desktop_files/karm-desktops/zu.po b/translations/desktop_files/karm-desktops/zu.po
new file mode 100644
index 00000000..a61ac48a
--- /dev/null
+++ b/translations/desktop_files/karm-desktops/zu.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 19:52+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: karm_part.desktop:2
+msgid "karmPart"
+msgstr ""
+
+#. Name
+#: support/karm.desktop:2
+msgid "KArm"
+msgstr ""
+
+#. GenericName
+#: support/karm.desktop:4
+msgid "Personal Time Tracker"
+msgstr "Umgcini Wesikhathi Esemfihlo"
diff --git a/translations/desktop_files/kmail-desktops/af.po b/translations/desktop_files/kmail-desktops/af.po
new file mode 100644
index 00000000..c029a08c
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/af.po
@@ -0,0 +1,192 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "E-pos kliënt"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Application/Octet-stream"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+"'n Inprop module wat die lyf gedeelte vir 'application/octet-stream' "
+"formateer"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "E-pos program met 'n DCOP koppelvlak"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Rekeninge"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Opstel vir die stuur en ontvang van boodskappe"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "Rekeninge"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Pasmaak die visuele voorkoms"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Voorbeelde & Algemene Gedrag"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+#, fuzzy
+msgid "Identities"
+msgstr "Bestuur identiteite"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Bestuur identiteite"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Allerlei"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Opstelling wat nêrens anders pas nie"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Sekuriteit"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Sekuriteit en provaatheid opstelling"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+#, fuzzy
+msgid "kmail;security;"
+msgstr "Sekuriteit"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Standaard"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standaard profiel"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Hoë kontras"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Vergroot die skrif tipe vir visueel gestremde gebruikers"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standaard profiel, met HTML voorskou geaktiveer. Dis minder veilig!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Suiwer"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Meeste funksies af geskakel. TDE globale waardes word gebruik."
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Veiligste"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Stel al die nodige opsies om die maksimum sekuriteit te hê"
diff --git a/translations/desktop_files/kmail-desktops/ar.po b/translations/desktop_files/kmail-desktops/ar.po
new file mode 100644
index 00000000..993a4bdc
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/ar.po
@@ -0,0 +1,191 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "زبون البريد"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "الحسابات"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "تعيينات إرسال و إستقبال الرسائل"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "الحسابات"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "المظهر"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+#, fuzzy
+msgid "kmail;appearance;"
+msgstr "المظهر"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "المحرر"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+#, fuzzy
+msgid "kmail;composer;"
+msgstr "المحرر"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "الهويات"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "تدبير الهويات"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "الإفتراضي"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr ""
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "محارف بقياسات أكبر للمستخدمين ذوي البصر الضعيف"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr "لغة علامات النص الفائق"
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+"الشاكلة المعيارية مع تمكين معاينة لغة علامة النص الفائق HTML - أقل أمناً !"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "أغلب الميزات غبر عاملة, سيتم استخدام اعدادات TDE العامة"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "الأكثر آمن"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/az.po b/translations/desktop_files/kmail-desktops/az.po
new file mode 100644
index 00000000..c3e439b9
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/az.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: az\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Poçt Alıcısı"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Əsas"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standard profil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Görmə pozuqluğu olanlar üçün böyüdülmüş yazı növləri"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "HTML nümayişli standard - ən az etibarlı!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Bir çox xüsusiyyət açıq deyil, TDE qlobal qurğuları işlədilir"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/be.po b/translations/desktop_files/kmail-desktops/be.po
new file mode 100644
index 00000000..96f3ef9a
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/be.po
@@ -0,0 +1,190 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Паштовы кліент"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Паштовая праграма з DCOP інтэрфэйсам"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Рахункі"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "K Пошта;бясьпека;kmail;security;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Знешні выгляд"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+#, fuzzy
+msgid "kmail;appearance;"
+msgstr "Знешні выгляд"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+#, fuzzy
+msgid "kmail;composer;"
+msgstr "K Пошта;рознае;kmail;misc;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Увасабленні"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Кіраванне увасабленнямі"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "K Пошта;увасабленне;kmail;identity;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Рознае"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "K Пошта;рознае;kmail;misc;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Бясьпека"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Настаўленні бясьпекі і прыватнасьці"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "K Пошта;бясьпека;kmail;security;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Па ўмаўчанні"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Стандартны профіль"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/bg.po b/translations/desktop_files/kmail-desktops/bg.po
new file mode 100644
index 00000000..e33e3c4f
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/bg.po
@@ -0,0 +1,191 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Пощенски клиент"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Приставка за форматиране на двоични данни"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Клиент на електронна поща за TDE"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Сметки"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Настройки на мрежата, сървърите и сметките"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "пощенски; клиент; е-поща; kmail; accounts;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Външен вид"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Настройки на външния вид"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+"пощенски; клиент; е-поща; външен; вид; външност; появяване kmail; appearance;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Редактор"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Шаблони и поведение"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+"пощенски; клиент; е-поща; редактор; съставител; форматиране; текст; kmail; "
+"komposer;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Самоличност"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Настройки на самоличността"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "пощенски; клиент; е-поща; самоличност; информация; kmail; identity;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Разни"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Разни настройки"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "пощенски; клиент; е-поща; разни; настройки; kmail; misc;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Сигурност"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Настройки на сигурността"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "пощенски; клиент; е-поща; сигурност; поверителност; kmail; security;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Стандартен"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Стандартен профил"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Висок контраст"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+"Увеличаване на размера на шрифта за потребители със зрителни увреждания"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Стандартен профил с поддръжка на HTML в писмата (по-малко сигурен)"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Пуритан"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Пуритански режим, при който повечето възможности за изключени"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Сигурност"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Режим, в който всички настройки за сигурност за включени"
diff --git a/translations/desktop_files/kmail-desktops/br.po b/translations/desktop_files/kmail-desktops/br.po
new file mode 100644
index 00000000..92940bdf
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/br.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Kliant postel"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontoù"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;kontoù;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Neuziadur"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;neuziadur;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Skridaozer"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+#, fuzzy
+msgid "kmail;composer;"
+msgstr "kmail;a bep seurt;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Anvelezhioù"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Merañ an anvelezhioù"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;anvelezh;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "A bep seurt"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;a bep seurt;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Surentez"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Kefluniadur surentez ar buhez prevez"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;surentez;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Dre ziouer"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr ""
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Dargemm huel"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/bs.po b/translations/desktop_files/kmail-desktops/bs.po
new file mode 100644
index 00000000..ffb7ffae
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/bs.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Program za čitanje elektronske pošte"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Dodatak za formatiranje tijela poruke za application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Mail program sa DCOP interfejsom"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Računi"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Postavke za slanje i prijem poruka"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "kmail;composer;sastavljač;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Izgled"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Prilagodi izgled"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;appearance;izgled;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Sastavljač"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;composer;sastavljač;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identiteti"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Upravljaj identitetima"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identity;identitet;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Razno"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Postavke koje ne spadaju nigdje drugo"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;misc;razno;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Sigurnost"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Postavke sigurnosti i privatnosti"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;security;sigurnost;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Podrazumijevano"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standardni profil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Visoki kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Povećane dimenzije fontova za korisnike sa vizuelnim nedostacima"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standardni profil sa omogućenim HTML pregledom - manje siguran!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Za čistunce"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Većina mogućnosti je isključena, koriste se TDE globalne postavke"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Najsigurniji"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Postavlja sve potrebne opcije radi maksimalne sigurnosti"
diff --git a/translations/desktop_files/kmail-desktops/ca.po b/translations/desktop_files/kmail-desktops/ca.po
new file mode 100644
index 00000000..f5300d36
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/ca.po
@@ -0,0 +1,191 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Client de correu"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplicació Octetstream"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Un endollable formatador del cos per application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Un programa de correu amb una interfície DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Comptes"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Configuració per enviar i rebre missatges"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;comptes;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Aparença"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Personalitza l'aparença visual"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;aparença;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Editor"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Plantilles i comportament general"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;editor;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identitats"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Gestiona les identitats"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identitat;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Varis"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Opcions que no van bé enlloc"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;varis;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Seguretat"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Arranjament de seguretat i privadesa"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;seguretat;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Omissió"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Perfil estàndard"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Alt contrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Augmenta la mida de la lletra per als usuaris amb deficiències visuals"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+"Perfil estàndard amb la vista prèvia de l'HTML habilitada - menys segur!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"La majoria de característiques estan desactivades, s'usarà l'arranjament "
+"global de TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Més segur"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
+"Estableix totes les opcions necessàries per aconseguir una seguretat màxima"
diff --git a/translations/desktop_files/kmail-desktops/cs.po b/translations/desktop_files/kmail-desktops/cs.po
new file mode 100644
index 00000000..e8803ad5
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/cs.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/kmail-desktop-files/cs/>\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: Weblate 4.8.1\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "KMail"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Klient pro čtení elektronické pošty"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplikace octetstream"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Modul formátování těla zprávy pro application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Poštovní program s DCOP rozhraním"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Účty"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Nastavení odesílání a přijímání zpráv"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;účty;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Vzhled"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Úpravy nastavení vzhledu"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;vzhled;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Editor"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Šablony a obecné chování"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;editor;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identity"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Správa identit"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identita;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Různé"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Nastavení nehodící se jinam"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;různé;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Bezpečnost"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Nastavení soukromí a zabezpečení"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;bezpečnost;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr "Odeslat poštou"
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Výchozí"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standardní profil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Vysoký kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Zvětší velikost písma pro zrakově postižené uživatele"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr "HTML"
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standardní profil s povoleným náhledem HTML souborů – méně bezpečné!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Puristický"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Většina funkcí je vypnuta a použije se globální nastavení TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Nejbezpečnější"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Zapne všechny volby nutné k dosažení nejvyšší bezpečnosti"
diff --git a/translations/desktop_files/kmail-desktops/cy.po b/translations/desktop_files/kmail-desktops/cy.po
new file mode 100644
index 00000000..8eb10018
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/cy.po
@@ -0,0 +1,192 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Dibynnydd Ebost"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Rhaglen ebost gyda rhyngwyneb DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Cyfrifon"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "Cyfrifon"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Golwg"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Addasu Golwg"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+#, fuzzy
+msgid "kmail;appearance;"
+msgstr "Golwg"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Cyfansoddydd"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+#, fuzzy
+msgid "kmail;composer;"
+msgstr "Cyfansoddydd"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Amrywiol"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Diogelwch"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+#, fuzzy
+msgid "kmail;security;"
+msgstr "Diogelwch"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Rhagosod"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Proffil safonol"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Cyferbyniad Gref"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+"Meintiau wynebfathau wedi'u cynyddu ar gyfer defnyddwyr â nam gweledol "
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Proffil safonol efo rhagolwg HTML yn alluog - llai ddiogel!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Puryddol"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Y mwyafrif o nodweddion wedi'u diffodd, defnyddir gosodiadau eang TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Diogelaf"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Gosod pob nodwedd gofynnol i gyrchu diogelwch mwyaf"
diff --git a/translations/desktop_files/kmail-desktops/da.po b/translations/desktop_files/kmail-desktops/da.po
new file mode 100644
index 00000000..643306d5
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/da.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "E-mail-klient"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Program oktetstrøm"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Et bodypart formateringsplugin for application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "E-mail-program med en DCOP-grænseflade"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Konti"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Opsætning til at sende og modtage breve"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;konti;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Udseende"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Brugerindstil visuelt udseende"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;udseende;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Brevskriver"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Skabeloner & Generel opførsel"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;brevskriver;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identiteter"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Håndtering af identiteter"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identitet;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Diverse"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Indstillinger der ikke passer ind andre steder"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;diverse;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Sikkerhed"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Sikkerheds- & Privathedsindstillinger"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;sikkerhed;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Standard"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standard-profil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Høj kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Forøgede skrifttypestørrelser for brugere med svagt syn"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standardprofil med HTML-visning aktiveret - mindre sikkert!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "De fleste egenskaber slået fra, TDE's globale opsætning bruges"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Mest sikker"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Sætter alle nødvendige tilvalg til maksimal sikkerhed"
diff --git a/translations/desktop_files/kmail-desktops/de.po b/translations/desktop_files/kmail-desktops/de.po
new file mode 100644
index 00000000..20d2f5f0
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/de.po
@@ -0,0 +1,189 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Mail-Programm"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Ein Bodypart-Formatierungsmodul für application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Mail-Programm mit DCOP-Schnittstelle"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Zugänge"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Einstellungen zum Senden und Empfangen von Nachrichten"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "KMail;Konten;Zugänge;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Erscheinungsbild"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Erscheinungsbild anpassen"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "KMail;Erscheinungsbild;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Komposer"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Vorlagen und allgemeines Verhalten"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "KMail;Komposer;Editor;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identitäten"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Identitäten verwalten"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "KMail;Identitäten;Identität;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Verschiedenes"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Verschiedene Einstellungen"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "KMail;Verschiedenes;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Sicherheit"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Einstellungen zu Sicherheit und Privatsphäre"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "KMail;Sicherheit;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr "Versenden als E-Mail"
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Standard"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standardprofil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Starker Kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Größere Schriften für sehbehinderte Benutzer"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standardprofil mit aktivierter HTML-Vorschau - weniger sicher"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"Die meisten Funktionen werden zugunsten von TDE-Voreinstellungen deaktiviert"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Sicherste Variante"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
+"Aktivierung aller nötigen Einstellungen für die höchste Sicherheitsstufe"
diff --git a/translations/desktop_files/kmail-desktops/el.po b/translations/desktop_files/kmail-desktops/el.po
new file mode 100644
index 00000000..dc42ddbc
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/el.po
@@ -0,0 +1,192 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Πελάτης mail"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Ένας μορφοποιητής για application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Πρόγραμμα mail με ένα περιβάλλον χρήσης DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Λογαριασμοί"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Ρυθμίσεις για αποστολή και λήψη μηνυμάτων"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;λογαριασμοί;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Εμφάνιση"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Προσαρμογή εμφάνισης"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;εμφάνιση;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Σύνταξη μηνυμάτων"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Πρότυπα & γενική Συμπεριφορά"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;συντάκτης;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Ταυτότητες"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Διαχείριση ταυτοτήτων"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;ταυτότητα;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Διάφορα"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Ρυθμίσεις που δεν ταιριάζουν κάπου αλλού"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;διάφορα;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Ασφάλεια"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Ρυθμίσεις Ασφάλειας & Προσωπικού απόρρητου"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;ασφάλεια;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Προκαθορισμένο"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Τυπικό προφίλ"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Μεγάλη αντίθεση"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Αυξημένα μεγέθη γραμματοσειρών για χρήστες με προβλήματα όρασης"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+"Τυπικό προφίλ με την προεπισκόπηση HTML ενεργοποιημένη - λιγότερο ασφαλές!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"Τα περισσότερα χαρακτηριστικά απενεργοποιημένα, ενώ χρησιμοποιούνται οι "
+"καθολικές ρυθμίσεις του TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Πιο ασφαλές"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
+"Ενεργοποιεί όλες τις απαραίτητες επιλογές για την επίτευξη της μέγιστης "
+"ασφάλειας"
diff --git a/translations/desktop_files/kmail-desktops/en_GB.po b/translations/desktop_files/kmail-desktops/en_GB.po
new file mode 100644
index 00000000..4d061626
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/en_GB.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: en_GB\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr ""
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Customise Visual Appearance"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Templates & General Behaviour"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr ""
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr ""
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/eo.po b/translations/desktop_files/kmail-desktops/eo.po
new file mode 100644
index 00000000..07aa28e6
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/eo.po
@@ -0,0 +1,190 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "Retpoŝto"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Legi kaj sendi retpoŝton"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplikaĵa Bitokfluo"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Retposhtprogramo kun DCOP-interfaco"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontoj"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Agordo por sendi kaj ricevi mesaĝojn"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "Kontoj"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Prezentado"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+#, fuzzy
+msgid "kmail;appearance;"
+msgstr "Prezentado"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Ŝablonoj kaj Ĝenerala Konduto"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identoj"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Mastrumi identojn"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Agordoj kiuj apartenas nenie alie"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Sekureco"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Agordoj pri Sekureco kaj Privateco"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+#, fuzzy
+msgid "kmail;security;"
+msgstr "Sekureco"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Apriora"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Apriora agordo"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Forta kontrasto"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Pligrandigitaj tiparoj por vidhandikapitoj"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Apriora agordo, kun ŝaltita HTML-antaŭrigardo - malpli sekura!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Puristo"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Plej multaj funkcioj malŝaltitaj, malloka agordo de TDE estas uzata"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Plej sekura"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Agordas la necesajn opciojn por atingi maksimuman sekurecon"
diff --git a/translations/desktop_files/kmail-desktops/es.po b/translations/desktop_files/kmail-desktops/es.po
new file mode 100644
index 00000000..049804ed
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/es.po
@@ -0,0 +1,189 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Cliente de correo"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplicación en flujo de octetos"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Un accesorio de formato para el cuerpo de application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Programa de correo con un interfaz DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Cuentas"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Configuración para enviar y recibir mensajes"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;cuentas;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Apariencia"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Apariencia visual personalizada"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;apariencia;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Editor"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Plantilla y comportamiento general"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;editor;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identidades"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Gestionar identidades"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identidad;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Varios"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Opciones que no encajan en ningún otro sitio"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;varios;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Seguridad"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Opciones de seguridad y privacidad"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;seguridad;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Predeterminado"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Perfil estándar"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Alto contraste"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Tamaños grandes de tipografía para usuarios con deficiencias visuales"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Perfil estándar con las vista HTML activada - menos seguro"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Purista"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"La mayoría de las características desactivadas; se usan las opciones "
+"globales de TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Más seguro"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Pone todas las opciones necesarias para lograr la máxima seguridad"
diff --git a/translations/desktop_files/kmail-desktops/et.po b/translations/desktop_files/kmail-desktops/et.po
new file mode 100644
index 00000000..01feb44a
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/et.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "E-posti klient"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Põhiosa vormindamisplugin (MIME tüübile application/octet-stream)"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "E-posti rakendus DCOP-liidesega"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontod"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Kirjade saatmise ja saamise seadistused"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;kontod;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Välimus"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Välimuse seadistused"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;välimus;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Koostaja"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Mallid ja üldine käitumine"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;koostaja;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identiteedid"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Identiteetide haldus"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identiteet;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Muud"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Seadistused, mis kuhugi mujale ei sobi"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;muud;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Turvalisus"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Turvalisus- ja privaatsusseadistused"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;turvalisus;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Vaikimisi"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standardprofiil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Suur kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Suured fondid halva nägemisega kasutajatele"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standardprofiil HTML-i eelvaatlusega - pole nii turvaline!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Enamik võimalusi välja lülitatud, kasutatakse TDE seadistusi"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Kõige turvalisem"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Kõik võimalused maksimaalse turvalisuse tagamiseks"
diff --git a/translations/desktop_files/kmail-desktops/eu.po b/translations/desktop_files/kmail-desktops/eu.po
new file mode 100644
index 00000000..5bb9ae98
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/eu.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Posta bezeroa"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplikazioa/zortzikote-jarioa"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Gorputz-zati formateatzaile plugin bat aplikazio/zortikote-jarioentzat"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "DCOP interfazedun posta programa"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontuak"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Mezuak bidali eta jasotzeko konfigurazioa"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;kontuak;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Itxura"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Pertsonalizatu itxura"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;itxura;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Editorea"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;editorea;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identitateak"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Identitateak kudeatu"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identitatea;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Miszelanea"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Beste inon egokitzen ez diren ezarpenak"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;miszelanea;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Sekuritatea"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Sekuritate & pribakortasun ezarpenak"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;sekuritate;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Lehenetsia"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Profil estandarra"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Kontraste altua"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Letra-tipo handiagoak ikusmen arazoak dituzten erabiltzaileentzat"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+"HTML aurrebista gaituta duen profil estandarra - sekuritate gutxiago du"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Purista"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Eginbide gehienak ezgaituta, TDE-ren ezarpen globalak erabiliko dira"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Seguruena"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Sekuritate maximoa lortzeko aukera guztiak ezartzen ditu"
diff --git a/translations/desktop_files/kmail-desktops/fa.po b/translations/desktop_files/kmail-desktops/fa.po
new file mode 100644
index 00000000..fdcce4ff
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/fa.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "کارخواه‌نامه"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Octetstream کاربرد"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "وصلۀ قالب‌دهندۀ بخش بدنه برای کاربرد/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "برنامۀ نامه با واسط DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "حسابها"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "برپایی برای ارسال و دریافت پیامها"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail، حسابها;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "ظاهر"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "سفارشی کردن ظاهر تصویری"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail، ظاهر;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "مؤلف"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "عبارتها و رفتار عمومی"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail، مؤلف;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "هویتها"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "مدیریت هویتها"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail، هویت;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "تنظیماتی که مناسب جای دیگر نیستند"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+#, fuzzy
+msgid "kmail;misc;"
+msgstr "kmail، مؤلف;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "امنیت"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "امنیت و تنظیمات محرمانگی"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail، امنیت;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "پیش‌فرض"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "profile استاندارد"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "سایه روشن زیاد"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "اندازۀ قلمهای افزایش یافته برای کاربرانی که از نظر تصویری زیان دیده‌اند"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr "زنگام"
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "profile استاندارد با پیش‌نمایش زنگام فعال‌شده - با ایمنی کمتر!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "سَره‌گرا"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "اغلب ویژگیها خاموش شد، تنظیمات سراسری TDE استفاده می‌شوند"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "بیشترین امنیت"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "همۀ گزینه‌های لازم را تنظیم می‌کند تا به امنیت بیشینه دست یابد"
diff --git a/translations/desktop_files/kmail-desktops/fi.po b/translations/desktop_files/kmail-desktops/fi.po
new file mode 100644
index 00000000..a42ceacf
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/fi.po
@@ -0,0 +1,190 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Sähköpostiohjelma"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Octetstream-sovellus"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Muokkainliitännäinen application/octet-stream-muodolle"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Sähköpostisovellus DCOP-rajapinnalla"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Tilit"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Viestien lähetys- ja vastaanottoasetukset"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;tilit;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Ulkoasu"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Ulkonäköasetukset"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;ulkonäkö;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Kirjoittaminen"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;kirjoitus;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Henkilöllisyydet"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Henkilöllisyysasetukset"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;henkilöllisyys;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Muut"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Muut asetukset"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;muut;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Turvallisuus"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Turvallisuus- ja yksityisyysasetukset"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;turvallisuus;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Oletus"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Normaali profiili"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Korkea kontrasti"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Suurennettu kirjasinkoko heikkonäköisille käyttäjille"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Normaali profiili HTML-esikatselua käyttäville - vähemmän turvallinen."
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Puristi"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"Suurin osa ominaisuuksia on pois päältä, käytetään TDE:n "
+"järjestelmänlaajuisia asetuksia."
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Turvallisin"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
+"Asettaa kaikki tarvittavat asetukset suurimman turvallisuuden saavuttamiseksi"
diff --git a/translations/desktop_files/kmail-desktops/fr.po b/translations/desktop_files/kmail-desktops/fr.po
new file mode 100644
index 00000000..969b51c5
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/fr.po
@@ -0,0 +1,190 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Logiciel de messagerie électronique"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Application (flux d'octets)"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Un module formateur de corps pour application (flux d'octets)"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Programme de messagerie avec une interface DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Comptes"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Configuration de l'envoi et de la réception de messages"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "KMail;comptes;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Apparence"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Personnalisation de l'apparence"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "KMail;apparence;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Éditeur"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Modèles et comportement général"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "KMail;éditeur;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identités"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Gestion des identités"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "KMail;identités;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Divers"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Paramètres qui ne rentrent dans aucune autre catégorie"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "KMail;divers;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Sécurité"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Paramètres de sécurité et de confidentialité"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "KMail;sécurité;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr "Envoyer par courriel"
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Défaut"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Profil standard"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Contraste élevé"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Des polices de caractères plus grandes pour les malvoyants"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Profil standard avec l'aperçu HTML activé - Moins sécurisé !"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Puriste"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"Presque toutes les fonctionnalités désactivées, utilisation de la "
+"configuration globale de TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Le plus sécurisé"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
+"Règle toutes les options nécessaires pour atteindre une sécurité maximale"
diff --git a/translations/desktop_files/kmail-desktops/fy.po b/translations/desktop_files/kmail-desktops/fy.po
new file mode 100644
index 00000000..30895b32
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/fy.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "E-portclient"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Applikaasje octetstream"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "In opmaakplugin foar application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "E-postprogramma mei in DCOP-ynterface"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Akkounts"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Ynstellings foar it ferstjoeren en ûntfangen fan berjochten"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;accounts;akkounts;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Uterlik"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "It uterlik oanpasse"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;uiterlijk;úterlik;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Opsteller"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Sjabloanen en algemien gedrach"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;opsteller;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identiteiten"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Identiteiten beheare"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identiteit;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Ferskate"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Ynstellings dy't eins nergens passe"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;ferskate;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Feiligens"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Feiligens- en privacy-ynstellings"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;feiligens;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Standert"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standert profyl"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Heech kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Grutter lettertype foar brûker mei minne eagen"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standertprofyl mei HTML-foarbyld aktivearre - minder feilich!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Measte mooglikheden útset, de globale TDE-ynstellings wurde brûkt"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Meast feilich"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Stelt alle nedige opsjes yn foar maksimale feiligens"
diff --git a/translations/desktop_files/kmail-desktops/ga.po b/translations/desktop_files/kmail-desktops/ga.po
new file mode 100644
index 00000000..4ebb0c68
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/ga.po
@@ -0,0 +1,189 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Cliant Ríomhphoist"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Cuntais"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;cuntais;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Cuma"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;cuma;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Cumadóir"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+#, fuzzy
+msgid "kmail;composer;"
+msgstr "kmail;éagsúil;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Aitheantais"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+#, fuzzy
+msgid "Manage Identities"
+msgstr "Aitheantais"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;aitheantas;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Éagsúil"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;éagsúil;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Slándáil"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;slándáil;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Réamhshocrú"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Próifíl chaighdeánach"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Ardchodarsnacht"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/gl.po b/translations/desktop_files/kmail-desktops/gl.po
new file mode 100644
index 00000000..45382087
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/gl.po
@@ -0,0 +1,190 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Cliente de correo"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplicación Octetstream"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Unha extensión formateadora do corpo para aplicacións/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Programa de correo-e cunha interface DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Contas"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Configuración para Enviar e Recibir Mensaxes"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;contas;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Apariencia"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Personalizar a apariencia visual"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;apariencia;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Compositor"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Planteis e Comportamento Xeral"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;editor;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identidades"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Xestionar Identidades"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identidade;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Miscelánea"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Opcións que non se encadran noutro sitio"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+#, fuzzy
+msgid "kmail;misc;"
+msgstr "kmail;editor;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Seguridade"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Opcións de Seguridade e Intimidade"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;seguridade;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Por Omisión"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Perfil Estándar"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Alto contraste"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Tamaños de fonte aumentados para usuarios con discapacidade visual"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Perfil estándar con previsualización HTML activada - menos seguro!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Purista"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"A maioría das características desactivadas, empréganse as opcións globais de "
+"TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "O máis seguro"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Estabelece tódalas opcións precisas para acada-la máxima seguridade"
diff --git a/translations/desktop_files/kmail-desktops/he.po b/translations/desktop_files/kmail-desktops/he.po
new file mode 100644
index 00000000..3ab70b28
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/he.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "לקוח דוא\"ל"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "חשבונות"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;accounts;דוא\"ל; חשבון; חשבונות;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "מראה"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "הגדרת מראה"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;appearance; מראה;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "עורך"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;composer;כתבן;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "זהויות"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "ניהול זהויות"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identity;זהות;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "כללי"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "הגדרות שלא יכולות להיכנס למקום אחר"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;misc;כללי;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "אבטחה"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "הגדרות אבטחה ופרטיות"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;security;אבטחה;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "ברירת מחדל"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "פרופיל ברירת מחדל"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "ניגודיות גבוהה"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "גופנים גדולים עבור אנשים בעלי ליקויי ראייה"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "נקי"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "הכי בטוח"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/hi.po b/translations/desktop_files/kmail-desktops/hi.po
new file mode 100644
index 00000000..21afed78
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/hi.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "के-मेल"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "डाकिया"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "डीकॉप इंटरफेस सहित एक डाक प्रोग्राम"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "डिफ़ॉल्ट"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "मानक प्रोफ़ाइल"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "उच्च कंट्रास्ट"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "कम दिखाई देने वाले उपयोक्ताओं के लिए फ़ॉन्ट आकार बढ़ाएँ"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "एचटीएमएल पूर्वावलोकन के साथ मानक प्रोफ़ाइल सक्षम है - कम सुरक्षित!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "प्यूरिस्ट"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "लगभग सभी विशेषताएँ बन्द की हुई हैं, केडीई वैश्विक विन्यास उपयोग में लिए जाएंगे"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "अत्यंत सुरक्षित"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "अधिकतम सुरक्षा के लिए सभी आवश्यक विकल्पों को नियत करे"
diff --git a/translations/desktop_files/kmail-desktops/hr.po b/translations/desktop_files/kmail-desktops/hr.po
new file mode 100644
index 00000000..355d0a86
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/hr.po
@@ -0,0 +1,189 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Program za čitanje elektronske pošte"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Izgled"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+#, fuzzy
+msgid "kmail;appearance;"
+msgstr "Izgled"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Uobičajeno"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standardni profil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Visoki kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Povećana pisma za korisnike sa slabijim vidom"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+"Standardni profil sa uključenim pregledom HTML sadržaja - manje sigurno!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Čistunski"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Većina mogućnosti isključena, TDE globalne postavke bivaju korištene"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Najsigurnije"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Podešava sve opcije da postigne najbolju sigurnost"
diff --git a/translations/desktop_files/kmail-desktops/hu.po b/translations/desktop_files/kmail-desktops/hu.po
new file mode 100644
index 00000000..028ab05a
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/hu.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Levelezőprogram"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Alkalmazás-adatfolyam"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Formázómodul application/octet-stream típusú adatfolyamokhoz"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Levelezőprogram DCOP felülettel"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Fiókok"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Küldési és fogadási beállítások"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;azonosítók;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Megjelenés"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "A grafikai megjelenés testreszabása"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;megjelenés;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Szerkesztő"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Sablonok, általános működési jellemzők"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;szerkesztő;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Azonosítók"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Az azonosítók kezelése"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;azonosító;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Egyéb"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "A máshová nem besorolható beállítások"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;egyéb;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Biztonság"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Biztonsági és adatvédelmi beállítások"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;biztonság;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Alapértelmezés"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standard profil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Kontrasztos"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Nagyobb betűméretek látáscsökkent felhasználóknak"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standard profil, HTML-előnézettel (kevésbé biztonságos)"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Egyszerűsített"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"A legtöbb extra kikapcsolva, a TDE alapértelmezéseinek felhasználásával"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Maximális biztonság"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Az összes beállítás a legbiztonságosabb értékre állítva"
diff --git a/translations/desktop_files/kmail-desktops/id.po b/translations/desktop_files/kmail-desktops/id.po
new file mode 100644
index 00000000..f792c704
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/id.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: id\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Klien Mail"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Standar"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr ""
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/is.po b/translations/desktop_files/kmail-desktops/is.po
new file mode 100644
index 00000000..235bfd0b
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/is.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Póstforrit"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Sniðmátstól fyrir application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Póstforrit með DCOP viðmóti"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Tengingar"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Uppsetning fyrir sendingu og móttöku af tölvupósti"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;accounts;tengingar;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Útlit"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Stilla útlit"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;útlit;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+#, fuzzy
+msgid "Composer"
+msgstr "kmail;ritill;"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;ritill;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Auðkenni"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Stjórna auðkennum"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;auðkenni;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Ýmislegt"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Stillingar sem passa ekki annars staðar"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;ýmislegt;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Öryggi"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Öryggis & einkalífsstillingar"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;öryggi;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Sjálfgefið"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Venjulegt snið"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Mikil birtuskil"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Stærra letur fyrir notendur með slæma sjón"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Staðlað snið með HTML forsýn - minna öryggi!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Slökkt á flestum aukahlutum, notast við víðværar stillingar TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Öruggast"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Setur allar stillingar þannig að öryggið sé mest"
diff --git a/translations/desktop_files/kmail-desktops/it.po b/translations/desktop_files/kmail-desktops/it.po
new file mode 100644
index 00000000..aaf106d2
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/it.po
@@ -0,0 +1,190 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: 2023-01-18 04:22+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kmail-desktop-files/it/>\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: Weblate 4.14.2\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "KMail"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Programma di posta elettronica"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Applicazione Flusso Ottetti"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Un plugin per formattare application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Programma di posta con un'interfaccia DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Account"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Impostazioni per spedire e ricevere messaggi"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;account;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Aspetto"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Personalizza l'aspetto"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;aspetto;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Compositore"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Modelli e comportamento generale"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;compositore;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identità"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Gestisce le identità"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identità;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Varie"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Impostazioni che non rientrano in altre categorie"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;varie;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Sicurezza"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Impostazioni sicurezza e privacy"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;sicurezza;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr "Invia posta elettronica"
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Predefinito"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Profilo standard"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Alto contrasto"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Dimensioni più grandi dei caratteri per chi ha problemi di vista"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr "HTML"
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Profilo standard con l'anteprima HTML abilitata - meno sicuro!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Purista"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"La maggior parte delle funzioni sono disabilitate, vengono usate le "
+"impostazioni globali di TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Massima sicurezza"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Imposta tutte le opzioni necessario per ottenere la massima sicurezza"
diff --git a/translations/desktop_files/kmail-desktops/ja.po b/translations/desktop_files/kmail-desktops/ja.po
new file mode 100644
index 00000000..9106b1a6
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/ja.po
@@ -0,0 +1,189 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "メールクライアント"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "アプリケーション オクテット ストリーム"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "application/octet-stream の Bodypart フォーマッタプラグイン"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "DCOP インターフェース付のメールプログラム"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "アカウント"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "メッセージを送受信するための設定"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "kmail;セキュリティ;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "外観"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "外観をカスタマイズ"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;外観;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "メール作成"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "テンプレートと全般的な動作"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+#, fuzzy
+msgid "kmail;composer;"
+msgstr "kmail;その他;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "個人情報"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "個人情報の管理"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;個人情報;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "その他"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "その他の設定"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;その他;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "セキュリティ"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "セキュリティ & プライバシーの設定"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;セキュリティ;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "標準"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "標準プロファイル"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "ハイコントラスト"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "視力障害者のために大きなフォントを使用します"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "HTML プレビューを有効にした標準プロファイル - 安全度は下がります!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "純正"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "ほとんどの機能を無効にし、TDE の全体設定を使用します"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "最も安全"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "最大のセキュリティ確保のために必要なすべてのオプションを設定します"
diff --git a/translations/desktop_files/kmail-desktops/kk.po b/translations/desktop_files/kmail-desktops/kk.po
new file mode 100644
index 00000000..cf75ee43
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/kk.po
@@ -0,0 +1,191 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Эл.пошта клиент бағдарламасы"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Қолданбаның бинарлы ағымы"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Application/octet-stream үшін пішімдегіш модулі"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "DCOP интерфейсті пошта бағдарламасы"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Тіркелгілері"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Хаттарды жіберу мен қабылдауды баптау"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "Тіркелгілері"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Сыртқы көрінісі"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Сыртқы көрінісін ыңғайлау"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+#, fuzzy
+msgid "kmail;appearance;"
+msgstr "Сыртқы көрінісі"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Құрастарғыш"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Үлгілер мен Жалпы тәртібі"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+#, fuzzy
+msgid "kmail;composer;"
+msgstr "Құрастарғыш"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Іс-әлпеттері"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Іс-әлпеттерді басқару"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Басқалары"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Басқа параметрлері"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Қауіпсіздік"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Қауіпсіздігі пен Дербестік параметрлері"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+#, fuzzy
+msgid "kmail;security;"
+msgstr "Қауіпсіздік"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Әдетті"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Стандартты профилі"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Контрастығы жоғары"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Көру қабілеті нашарларға арналған ірі қаріпті көрініс"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Стандартты, HTML көрінісі бар профилі - қауіпсізігі төмен!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Пурист"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Мүмкіндіктердің көбі, TDE жалпылары ғана қалдырып, өшірілген"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Ең қауіпсіз"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Қауіпсіздігі мейілінше арттырып бапталғаны"
diff --git a/translations/desktop_files/kmail-desktops/km.po b/translations/desktop_files/kmail-desktops/km.po
new file mode 100644
index 00000000..385f9117
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/km.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "កម្មវិធី​អ៊ីមែល"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Octetstream កម្មវិធី"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "កម្មវិធី​ជំនួយ​កម្មវិធី​ធ្វើ​ទ្រង់ទ្រាយ​ផ្នែក​តួ សម្រាប់​កម្មវិធី/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "កម្មវិធី​អ៊ីមែល​ដែល​មាន​ចំណុច​ប្រទាក់ DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "គណនី"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "រៀបចំ​ដើម្បី​ផ្ញើ និង​ទទួល​សារ"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;គណនី;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "រូបរាង"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "ប្ដូរ​រូបរាង​មើល​ឃើញ​តាម​បំណង"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;រូបរាង;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "កម្មវិធី​តែង"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "ពុម្ព​ និង​ឥរិយាបទ​ទូទៅ"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail កម្មវិធី​តែង;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "អត្តសញ្ញាណ"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "គ្រប់គ្រង​អត្តសញ្ញាណ"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;អត្តសញ្ញាណ;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "ផ្សេងៗ"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "ការ​កំណត់​ដែល​មិន​ត្រូវ​នឹង​កន្លែង​ផ្សេង"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;ផ្សេងៗ;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "សុវត្ថិភាព"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "ការ​កំណត់​សុវត្ថិភាព & ភាព​ឯកជន"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;សុវត្ថិភាព;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "លំនាំដើម"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "ទម្រង់​ខ្នាត​គំរូ"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "កម្រិត​ពណ៌​ខ្ពស់"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "បង្កើន​ទំហំពុម្ពអក្សរ ដើម្បី​បង្ក​លក្ខណៈ​ងាយស្រួល​ដល់​ជន​ពិការ​ភ្នែក"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "ទម្រង់​ខ្នាត​គំរូ​ដែល​អាច​មើល HTML ជាមុន - មិន​សូវ​មាន​សុវត្ថិភាព​ឡើយ !"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "បរិសុទ្ធ"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "លក្ខណៈ​ពិសេស​ភាគ​ច្រើន​ត្រូវ​បាន​បិទ ដោយ​ប្រើ​តែ​ការ​កំណត់​សកល​របស់ TDE ប៉ុណ្ណោះ"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "សុវត្ថិភាព​បំផុត"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "កំណត់​ជម្រើស​ចាំបាច់​ទាំងអស់ ដើម្បី​ទទួល​បាន​សុវត្ថិភាព​ខ្ពស់​បំផុត"
diff --git a/translations/desktop_files/kmail-desktops/kmail-desktops.pot b/translations/desktop_files/kmail-desktops/kmail-desktops.pot
new file mode 100644
index 00000000..37c6ecf8
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/kmail-desktops.pot
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr ""
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr ""
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr ""
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/ko.po b/translations/desktop_files/kmail-desktops/ko.po
new file mode 100644
index 00000000..f74ea039
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/ko.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr ""
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "모양"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+#, fuzzy
+msgid "kmail;appearance;"
+msgstr "모양"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr ""
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr ""
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/lt.po b/translations/desktop_files/kmail-desktops/lt.po
new file mode 100644
index 00000000..6b74205e
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/lt.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Pašto klientas"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "application/octet-stream formatavimo priedas"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Pašto programa su DCOP sąsaja"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Paskyros"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Laiškų siuntimo ir gavimo sąranka"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;accounts;paskyros;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Išvaizda"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Derinti vizualinę išvaizdą"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;appearance;išvaizda;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Redaktorius"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Šablonai ir bendroji elgsena"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;composer;redaktorius;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Tapatybės"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Tvarkyti tapatybes"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identity;tapatybė;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Įvairūs"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Kiti nustatymai"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;misc;įvairūs;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Saugumas"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Saugumo ir privatumo nustatymai"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;security;saugumas;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Numatytasis"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standartinis profilis"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Didelis kontrastas"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Padidinti šriftų dydžiai blogai matantiems naudotojams"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standartinis profilis su HTML peržiūra – mažiau saugus!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Itin paprastas"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Dauguma savybių išjungta, naudojami globalūs TDE nustatymai"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Saugiausias"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Nustato visas būtinas maksimaliam saugumui parinktis"
diff --git a/translations/desktop_files/kmail-desktops/lv.po b/translations/desktop_files/kmail-desktops/lv.po
new file mode 100644
index 00000000..753bcbef
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/lv.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "KPasts"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Pasta Klients"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Noklusētais"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standarta profils"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Palielināti fontu izmēri lietotājiem ar redzes traucējumiem"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standarta profils ar atļautu HTML apskati - nedrošāks!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Puritānis"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Vairums īpašību izslēgtas, tiek izmantoti TDE globālie uzstādījumi"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/mk.po b/translations/desktop_files/kmail-desktops/mk.po
new file mode 100644
index 00000000..8b774f3a
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/mk.po
@@ -0,0 +1,190 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "КПошта"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Клиент за електронска пошта"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Програма за е-пошта, со DCOP-интерфејс"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Сметки"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Конфигурација за примање и испраќање пораки"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;accounts;кпошта;сметка;сметки;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Изглед"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Приспособете ја визуелната појава"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;appearance;кпошта;појава;изглед;визуелно;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Составувач"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Обрасци и општо однесување"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;composer;кпошта;составувач;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Идентитети"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Менаџирајте ги идентитетите"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identity;кпошта;идентитет;идентитети;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Разно"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Поставувања што не се вклопуваат на друго место"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;misc;кпошта;разно;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Безбедност"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Поставувања за безбедност и приватност"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;security;кпошта;безбедност;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Стандарден"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Стандарден профил"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Висок контраст"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Стандарден профил со овозможен преглед на HTML - помалку безбедно!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"Повеќето карактеристики се исклучени, се користат глобалните поставувања на "
+"TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Најбезбедно"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
+"Ги поставува сите потребни опции за да се постигне максимална безбедност"
diff --git a/translations/desktop_files/kmail-desktops/ms.po b/translations/desktop_files/kmail-desktops/ms.po
new file mode 100644
index 00000000..86e0e226
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/ms.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Pelanggan Mel"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Aliran Oktet Aplikasi"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Plugin pemformat bahagian isi untuk alpikasi/aliran oktet"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Program Mel dengan antara muka DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Akaun"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Setup untuk Menghantar dan Menerima Mesej"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;akaun;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Rupa"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Suaikan Rupa Visual"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;rupa;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Penggubah"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;penggubah;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identiti"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Uruskan identiti"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identiti;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Pelbagai"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Seting yang tidak muat di tempat lain"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;pelbagai;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Keselamatan"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Seting Keselamatan & Peribadi"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;keselamatan;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Piawai"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Profail Standard"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Kontras Tinggi"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Saiz fon ditambah untuk pengguna cacat penglihatan "
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Profil piawai dengan paparan HTML diaktifkan - kurang selamat!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Mementingkan Istilah Yang Betul"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Kebanyakan cirian ditutup, seting global TDE digunakan"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Paling Selamat"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Mengeset semua opsyen yang perlu untuk mencapai keselamatan maksimum "
diff --git a/translations/desktop_files/kmail-desktops/mt.po b/translations/desktop_files/kmail-desktops/mt.po
new file mode 100644
index 00000000..de6c0fa0
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/mt.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Klijent tal-imejl"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Normali"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr ""
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/nb.po b/translations/desktop_files/kmail-desktops/nb.po
new file mode 100644
index 00000000..53dcaa96
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/nb.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "E-postklient"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Program Octetstrøm"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+"Et programtillegg for meldingstekst-formatering for application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "E-postprogram med DCOP grensesnitt"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontoer"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Oppset for mottak og sending av meldinger"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;kontoer;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Utseende"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Tilpass visuelt utseende"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;utseende;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Komposer"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Maler & generell oppførsel"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;komposer;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identiteter"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Identitetsbehandling"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identitet;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Div"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Instillinger som ikke passer andre steder"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;div;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Sikkerhet"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Sikkerhet og personvern-innstillinger"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;sikkerhet;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Standard"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standardprofil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Høy kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Økte skriftstørrelser for svaksynte brukere"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standardprofil med forhåndsvisning av HTML – mindre sikkert!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "De fleste funksjoner slått av, TDEs globale innstillinger er i bruk"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Sikrest"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Setter opp alle nødvendige innstillinger for å oppnå høyeste sikkerhet"
diff --git a/translations/desktop_files/kmail-desktops/nds.po b/translations/desktop_files/kmail-desktops/nds.po
new file mode 100644
index 00000000..84d9e519
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/nds.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Nettpostprogramm"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "En Hööftdeel-Formateermoduul för application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Nettpostprogramm mit DCOP-Koppelsteed"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontos"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Instellen för dat Sennen un Kriegen vun Narichten"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "KMail;Kontos;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Utsehn"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Utsehn topassen"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "KMail;Utsehn;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Nettbreef-Editor"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Vörlagen un allgemeen Bedregen"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "KMail;Editor;Nettbreefeditor;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identiteten"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Identiteten plegen"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "KMail;Identiteet;Identiteten;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Anner Saken"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Verscheden Instellen"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "KMail;anner;saken;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Sekerheit"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Sekerheit- un Privaatrebeet-Instellen"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "KMail;Sekerheit;Privaatrebeet;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Standard"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standardprofil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Hoge Kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Grötter Tekens för kiekbehinnert Brukers"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standardprofil mit aktiveert HTML-Vöransicht - weniger seker"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Reen"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Mehrste Funkschonen utmaakt, globaal TDE-Vörinstellen warrt bruukt"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Sekerst"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "All Optschonen op maximale Sekerheit"
diff --git a/translations/desktop_files/kmail-desktops/ne.po b/translations/desktop_files/kmail-desktops/ne.po
new file mode 100644
index 00000000..88518164
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/ne.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "केडीई मेल"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "मेल क्लाइन्ट"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "अक्टेस्ट्रिम अनुप्रयोग"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "अनुप्रयोग/अक्टेट-स्ट्रिमका लागि एउटा मूख्यभाग ढाँचाकार"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "DCOP इन्टरफेसमा मेल कार्यक्रम"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "खाता"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "सन्देश पठाउन वा प्राप्त गर्न सेटअप गर्नुहोस्"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "केडीई मेल;खाता;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "मोहडा"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "दृश्यात्मक मोहडा अनुकूल गर्नुहोस्"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "केडीई मेल; मोहडा;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "कम्पोजर"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "टेम्प्लेट र साधारण व्यवहार"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "केडीई मेल; कम्पोजर;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "परिचय"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "परिचय व्यवस्थापन गर्नुहोस्"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "केडीई मेल; परिचय;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "विविध"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "कतै पनि नमिल्ने सेटिङ"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "केडीई मेल; विविध;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "सूरक्षा"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "सुरक्षा र गोप्यता सेटिङ"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "केडीई मेल; सुरक्षा;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "पूर्वनिर्धारित"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "मानक प्रोफाइल"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "उच्च ब्यतिरेक"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "दृश्यात्मक विकृत प्रयोगकर्ताका लागि बढाइएको फन्ट साइज"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr "एचटीएमएल"
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "एचटीएमएल पूर्वावलोकनको मानक प्रोफाइल सक्षम पारियो - कम सुरक्षित!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "संस्कारक"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "धेरै विशेषता बन्द गरिएका छन, केडीई विश्वव्यापी सेटिङ प्रयोग गरिएका छन्"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "सबैभन्दा सुरक्षित"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "अधिकतम सुरक्षा प्राप्त गर्न सबै आवश्यक विकल्प सेट गर्छ"
diff --git a/translations/desktop_files/kmail-desktops/nl.po b/translations/desktop_files/kmail-desktops/nl.po
new file mode 100644
index 00000000..18035f8e
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/nl.po
@@ -0,0 +1,189 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "E-mailclient"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Applicatie octetstroom"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Een opmaakplugin voor application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "E-mailprogramma met een DCOP-interface"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Instellingen voor het verzenden en ontvangen van berichten"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "kmail;opsteller;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Uiterlijk"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Pas het uiterlijk aan"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;uiterlijk;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Opsteller"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Sjablonen en algemeen gedrag"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;opsteller;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identiteiten"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Identiteiten beheren"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identiteit;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Diversen"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Instellingen die nergens echt passen"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;diversen;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Beveiliging"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Beveiligings- en privacy-instellingen"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;beveiliging;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Standaard"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standaard profiel"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Hoog contrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Groter lettertype voor slechtziende gebruikers"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standaardprofiel met HTML-voorbeeld geactiveerd - minder veilig!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"Meeste mogelijkheden uitgezet, de globale TDE-instellingen worden gebruikt"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Meest veilig"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Stelt alle benodigde opties in voor maximale veiligheid"
diff --git a/translations/desktop_files/kmail-desktops/nn.po b/translations/desktop_files/kmail-desktops/nn.po
new file mode 100644
index 00000000..9fb52217
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/nn.po
@@ -0,0 +1,190 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "E-postklient"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Oktettstraum frå program"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+"Eit programtillegg for formatering av meldingstekst i application/octet-"
+"stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "E-postprogram med eit DCOP-grensesnitt"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontoar"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Oppsett av sending og mottak av meldingar"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "KMail;kontoar;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Utsjånad"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Tilpass utsjånad"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "KMail;utsjånad;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Skrivefelt"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "KMail;skrivefelt;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identitetar"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Handter identitetar"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "KMail;identitet;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Ymse"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Innstillingar som ikkje passar andre stader"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "KMail;ymse;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Tryggleik"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Innstillingar for tryggleik og personvern"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "KMail;tryggleik;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Standard"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standardprofil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Høg kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Auka skriftstorleik for synshemma brukarar"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standard profil med HTML-vising slått på – mindre trygt!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Enkel"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"Dei fleste funksjonar er slått av, globale TDE-innstillingar vert brukt"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Tryggast"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Set alle nødvendige innstillingar for maksimal tryggleik"
diff --git a/translations/desktop_files/kmail-desktops/pa.po b/translations/desktop_files/kmail-desktops/pa.po
new file mode 100644
index 00000000..9a17cfd3
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/pa.po
@@ -0,0 +1,190 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "ਕੇ-ਪੱਤਰ"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "ਪੱਤਰ ਕਲਾਂਇਟ"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "ਖਾਤੇ"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "ਖਾਤੇ"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "ਲੇਖਕ"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+#, fuzzy
+msgid "kmail;composer;"
+msgstr "ਲੇਖਕ"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "ਫੁਟਕਲ"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "ਸੁਰੱਖਿਆ"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+#, fuzzy
+msgid "kmail;security;"
+msgstr "ਸੁਰੱਖਿਆ"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "ਮੂਲ"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr ""
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "ਜਿਆਦਾ ਸੁਰੱਖਿਅਤ"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/pl.po b/translations/desktop_files/kmail-desktops/pl.po
new file mode 100644
index 00000000..856c9fab
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/pl.po
@@ -0,0 +1,189 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Jan Stolarek <jwstolarek@gmail.com>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: 2020-08-12 23:04+0000\n"
+"Last-Translator: Jan Stolarek <jwstolarek@gmail.com>\n"
+"Language-Team: Polish <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kmail-desktop-files/pl/>\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: Weblate 4.1.1\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "KMail"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Program pocztowy"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Dane binarne"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Wtyczka formatowania danych typu application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Program pocztowy z interfejsem DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Konta"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Ustawienia wysyłania i odbierania wiadomości"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;konta;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Wygląd"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Zmiana wyglądu"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;wygląd;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Edytor"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Szablony i ogólne zachowanie"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;kompozytor;edytor;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Tożsamości"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Zarządzanie tożsamościami"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;tożsamość;tożsamości;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Różne"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Ustawienia, które nie pasują gdzie indziej"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;różne;inne;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Bezpieczeństwo"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Ustawienia bezpieczeństwa i prywatności"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;bezpieczeństwo;prywatność;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr "Wyślij plik w załączniku"
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Domyślny"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Profil standardowy"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Wysoki kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Zwiększone rozmiary czcionek dla osób mających problemy ze wzrokiem"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr "HTML"
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standardowy profil z włączonym podglądem HTML - mniej bezpieczny!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Czysty"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Większość opcji wyłączona, używane są domyślne ustawienia TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Najbezpieczniejszy"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Włącza wszystkie opcje zapewniające najwięcej bezpieczeństwa"
diff --git a/translations/desktop_files/kmail-desktops/pt.po b/translations/desktop_files/kmail-desktops/pt.po
new file mode 100644
index 00000000..6bc6e1b2
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/pt.po
@@ -0,0 +1,189 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Cliente de E-mail"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplicação Sequência Binária"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Um 'plugin' de formatação para application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Um programa de correio electrónico com uma interface DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Contas"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Configuração de Envio e Recepção de Mensagens"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;contas;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Aparência"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Personalizar a Aparência Visual"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;aparência;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Compositor"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Modelos e Comportamento Geral"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;compositor;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identidades"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Gerir Identidades"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identidade;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Vários"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Outras configurações"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;vários;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Segurança"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Configuração de Segurança e Privacidade"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;segurança;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Por Omissão"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "O perfil-padrão"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Alto Contraste"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Tamanhos de letra aumentados para utilizadores com problemas visuais"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "O perfil predefinido com a antevisão de HTML activada - menos seguro!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Purista"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"A maioria das funcionalidades desligada, sendo usadas as opções globais do "
+"TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Mais Seguro"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Define todas as opções necessárias para atingir a máxima segurança"
diff --git a/translations/desktop_files/kmail-desktops/pt_BR.po b/translations/desktop_files/kmail-desktops/pt_BR.po
new file mode 100644
index 00000000..fd04c40b
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/pt_BR.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Cliente de E-mail"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplicativo Octetstream"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Um plug-in formatador de componente para application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Programa de e-mail com uma interface DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Contas"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Configura o Envio e Recebimento de Mensagens"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;contas;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Aparência"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Personalizar Aparência Visual"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;aparência;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Editor de Mensagens"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Modelos & Comportamento Geral"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;editor de mensagens;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identidades"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Gerenciar Identidades"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identidade;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Extras"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Preferências que não se encaixam em outros lugares"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail; extras;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Segurança"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Configurações de Segurança & Privacidade"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;segurança;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Padrão"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Perfil padrão"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Alto Contraste"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Fontes de tamanho maior para usuários com visão reduzida"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Perfil padrão com previsão de HTML habilitada - menos seguro!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Purista"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"Maioria dos recursos desligados, são usadas configurações globais do TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Segurança Máxima"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Define todas as opções necessárias para alcançar segurança máxima"
diff --git a/translations/desktop_files/kmail-desktops/ro.po b/translations/desktop_files/kmail-desktops/ro.po
new file mode 100644
index 00000000..ce7d21bd
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/ro.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Program de poştă electronică"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Implicit"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Profil standard"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Contrast mare"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Mărimi de font mari pentru utilizatori cu handicap"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Profil standard cu previzualizare HTML activată (securitate scăzută!)"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Puritan"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Multe caracteristici dezactivate; sînt utilizate setările TDE globale"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Setează toate opţiunile necesare pentru a atinge securitatea maximă"
diff --git a/translations/desktop_files/kmail-desktops/ru.po b/translations/desktop_files/kmail-desktops/ru.po
new file mode 100644
index 00000000..388a7738
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/ru.po
@@ -0,0 +1,193 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: 2024-04-14 11:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kmail-desktop-files/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "KMail"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Почтовый клиент"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Бинарный поток приложения"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Форматирование application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Почтовая программа с интерфейсом DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Учётные записи"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Настройка отправки и получения сообщений"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;accounts;почта;учётные записи;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Внешний вид"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Настройка внешнего вида"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;внешний вид;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Редактор писем"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Шаблоны и общие параметры"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;composer;письмо;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Профили"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Управление профилями"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identity;профиль;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Прочее"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Другие настройки"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;misc;прочее;другие;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Безопасность"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Настройки безопасности"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;security;безопасность;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr "Файл эл. почты"
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "По умолчанию"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Обычный профиль"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Высокий контраст"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Увеличенные размеры шрифтов для людей с ослабленным зрением"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr "HTML"
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Обычный профиль с просмотром HTML - менее безопасный!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Аскет"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"Большинство дополнительных возможностей отключены, используются глобальные "
+"настройки TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Самый безопасный"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
+"Устанавливает все параметры, необходимые для достижения максимальной "
+"безопасности"
diff --git a/translations/desktop_files/kmail-desktops/rw.po b/translations/desktop_files/kmail-desktops/rw.po
new file mode 100644
index 00000000..928c359c
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/rw.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: rw\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Umukiriya w'Ubutumwa"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Imigaragarire"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+#, fuzzy
+msgid "kmail;appearance;"
+msgstr "Imigaragarire"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Mburabuzi"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr ""
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/se.po b/translations/desktop_files/kmail-desktops/se.po
new file mode 100644
index 00000000..f42d7b23
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/se.po
@@ -0,0 +1,191 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "E-boastaprográmma"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "E-boastaprográmma mas lea DCOP-lakta"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontut"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Heivet e-reivviid sáddema ja vuostáiváldima"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "Kontut"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Fárda"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Heivet fárdda"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+#, fuzzy
+msgid "kmail;appearance;"
+msgstr "Fárda"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Čállinprográmma"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+#, fuzzy
+msgid "kmail;composer;"
+msgstr "Čállinprográmma"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identitehtat"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Gieđahala identitehtaid"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Feará mii"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Heivehusat mat eai heive eará báikkiin"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Sihkarvuohta"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Sihkarvuohta- ja iežas suodjalan heivehusat"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+#, fuzzy
+msgid "kmail;security;"
+msgstr "Sihkarvuohta"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Standárda"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standárdprofiila"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Oktageardán"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Sihkkareamus"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/sk.po b/translations/desktop_files/kmail-desktops/sk.po
new file mode 100644
index 00000000..83b7ae50
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/sk.po
@@ -0,0 +1,189 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Poštový klient"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Formátovač tela pre MIME typ application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Poštový program s DCOP rozhraním"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Účty"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Nastavenie príjmu a odosielania správ"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "kmail;editor správ;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Vzhľad"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Prispôsobenie vzhľadu"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;vzhľad;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Editor správ"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Šablóny a všeobecné správanie"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;editor správ;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identity"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Správa identít"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+#, fuzzy
+msgid "kmail;identity;"
+msgstr "kmail;zabezpečenie;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Rôzne"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Nastavenie, ktoré sa inam nehodí"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;rôzne;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Zabezpečenie"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Zabezpečenie a súkromie"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;zabezpečenie;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Štandarné"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Štandardný profil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Vysoký kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Zväčšená veľkosť písma pre zrakovo postihnutých užívateľov"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Štandardný profil s HTML náhľadom - menej bezpečné!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Najviac vlastností je vypnutých, sú použité globálne nastavenia TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Najviac bezpečné"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Nastaví všetky potrebné voľby pre dosiahnutie maximálnej bezpečnosti"
diff --git a/translations/desktop_files/kmail-desktops/sl.po b/translations/desktop_files/kmail-desktops/sl.po
new file mode 100644
index 00000000..102a42cc
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/sl.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Poštni odjemalec"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Programski Octetstream"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Oblikovni vstavek za application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Poštni program z vmesnikom DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Računi"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Nastavitve za pošiljanje in prejemanje sporočil"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;računi;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Videz"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Prilagodi videz"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;videz;izgled;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Sestavljalnik"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Predloge in splošno obnašanje"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;composer;sestavljalnik;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identitete"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Upravljanje z identitetami"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identiteta;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Razno"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Nastavitve, ki ne spadajo drugam"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;razno;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Varnost"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Nastavitve varnosti in zasebnosti"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;varnost;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Privzeto"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Običajen profil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Velik kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Povečane velikosti pisav za uporabnike s slabšim vidom"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Običajen profil z omogočenim ogledom v HTML - manj varno!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"Večina zmožnosti je izklopljenih, uporabljene so globalne nastavitve TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Najbolj varen"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Nastavi vse potrebne možnosti da doseže najvišjo stopnjo varnosti"
diff --git a/translations/desktop_files/kmail-desktops/sr.po b/translations/desktop_files/kmail-desktops/sr.po
new file mode 100644
index 00000000..2844496d
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/sr.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Поштански клијент"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Апликација Octetstream"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Прукључак форматера тела за application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Поштански програм са DCOP интерфејсом"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Налози"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Подешавање слања и примања порука"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;accounts;састављач;налози;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Изглед"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Прилагодите визуелни приказ"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;изглед;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Састављач"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Шаблони и опште понашање"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;састављач;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Идентитети"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Управљање идентитетима"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;идентитет;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Разно"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Поставке које не припадају другде"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;разно;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Сигурност"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Поставке сигурности и приватности"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;сигурност;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Подразумевано"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Стандардни профил"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Високи контраст"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Повећани фонтови за кориснике са лошијим видом"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Стандардни профил са омогућеним прегледом HTML-а — мање безбедно!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Чисто"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Већина могућности је искључена, користе се глобална подешавања TDE-а"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Најбезбедније"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
+"Све неопходне опције поставају се тако да се постигне највећа безбедност"
diff --git a/translations/desktop_files/kmail-desktops/sr@Latn.po b/translations/desktop_files/kmail-desktops/sr@Latn.po
new file mode 100644
index 00000000..07d4735b
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/sr@Latn.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Poštanski klijent"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplikacija Octetstream"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Pruključak formatera tela za application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Poštanski program sa DCOP interfejsom"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Nalozi"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Podešavanje slanja i primanja poruka"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;accounts;sastavljač;nalozi;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Izgled"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Prilagodite vizuelni prikaz"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;izgled;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Sastavljač"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Šabloni i opšte ponašanje"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;sastavljač;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identiteti"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Upravljanje identitetima"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identitet;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Razno"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Postavke koje ne pripadaju drugde"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;razno;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Sigurnost"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Postavke sigurnosti i privatnosti"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;sigurnost;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Podrazumevano"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standardni profil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Visoki kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Povećani fontovi za korisnike sa lošijim vidom"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standardni profil sa omogućenim pregledom HTML-a — manje bezbedno!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Čisto"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Većina mogućnosti je isključena, koriste se globalna podešavanja TDE-a"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Najbezbednije"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
+"Sve neophodne opcije postavaju se tako da se postigne najveća bezbednost"
diff --git a/translations/desktop_files/kmail-desktops/sv.po b/translations/desktop_files/kmail-desktops/sv.po
new file mode 100644
index 00000000..813b04e1
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/sv.po
@@ -0,0 +1,188 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "Kmail"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "E-postklient"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Program-oktettström"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+"Ett insticksprogram för brevtextformatering av application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "E-postprogram med DCOP-gränssnitt"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Konton"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Inställningar för att skicka och ta emot brev"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;konton;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Uppträdande"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Anpassa visuellt uppträdande"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;utseende;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Brevfönster"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Mallar och allmänt uppträdande"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;brevfönster;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Identiteter"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Hantera identiteter"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identifiera;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Diverse"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Inställningar som inte passar någon annanstans"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;diverse;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Säkerhet"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Inställningar för säkerhet och integritet"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;säkerhet;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Standard"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standardprofil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Hög kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Större teckenstorlek för användare med synproblem"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Standardprofil med HTML-förhandsgranskning aktiverad - mindre säker!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Ren"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "De flesta funktioner avstängda, TDE:s globala inställningar används"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Säkrast"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "Ställer in alla nödvändiga alternativ för att uppnå maximal säkerhet"
diff --git a/translations/desktop_files/kmail-desktops/ta.po b/translations/desktop_files/kmail-desktops/ta.po
new file mode 100644
index 00000000..66dd25ea
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/ta.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "Kஅஞ்சல்"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "அஞ்சல் பயனர்"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "பயன்பாட்டு எண்மம்"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "பயன்பாடு அல்லது எண்மத்திற்கான அங்க அமைப்பு சொருகி"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "dcop முகப்பு கூடிய அஞ்சல் நிரல்"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "கணக்குகள்"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "அனுப்புதல் மற்றும் பெறுதல் தகவல்களுக்கான அமைப்பு"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "கேஅஞ்சல்;கணக்குகள்;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "தோற்றம்"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "பார்க்கும் தோற்றத்தை தனிபயனாக்கு"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "கேஅஞ்சல்; தோற்றம்;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "கம்போசர்"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "கேஅஞ்சல்;கம்போசர்;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "அடையாளங்கள்"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "அடையாளங்களை நிர்வகி"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "கேஅஞ்சல்;அடையாளம்;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "இதர"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "அமைப்புகள் எந்த இடத்திலும் பொருந்தவில்லை"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "கேஅஞ்சல்; இதர;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "பாதுகாப்பு"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "பாதுகாப்பு & தனிப்பட்ட அமைவுகள்"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "கேஅஞ்சல்;பாதுகாப்பு;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "முன்னிருப்பு"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "நிலையான சுருக்கக்குறிப்பு"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "அதிக அடர்த்தி"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "பார்வையற்ற பயனர்களுக்கான பெரிதுப்படுத்தப்பட்ட எழுத்துரு அளவுகள்"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "சரியான பயனர் விவரங்களுடன் HTML முன்காட்சி செயலாக்கப்பட்டது - குறைந்த பாதுகாப்பு!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "சுத்தமானது"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "நிறைய தன்மைகள் நிறுத்தப்பட்டது. கேடிஇ உலகளாவிய அமைப்புகள் பயன்படுத்தப்பட்டது."
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "மிகவும் பாதுகாப்பான"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "எல்லா தேர்வுகளையும் மிகுந்த அளவில் பாதுகாப்பில் இருக்கும்படி அமைக்கிறது"
diff --git a/translations/desktop_files/kmail-desktops/tg.po b/translations/desktop_files/kmail-desktops/tg.po
new file mode 100644
index 00000000..083146a1
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/tg.po
@@ -0,0 +1,192 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Клиенти почтавӣ"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Миқдори зиёди бинарии барномот"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Модули ба андозадарории application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Барномаи почтавӣ бо интерфейси DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Қайдҳои баҳисобгирӣ"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Танзимоти фиристодан ва қабул кардани иттилоот"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "kmail;composer;мактуб;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Намуди зоҳирӣ"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Танзимоти намуди зоҳирӣ"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;намуди зоҳирӣ;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Муҳаррири мактубҳо"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;composer;мактуб;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Профилҳо"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Идоракунӣ бо профилҳо"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identity;профил;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Ғайра"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Дигар танзимотҳо"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;misc;ғайра;дигар;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Амният"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Танзимоти амният"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;security;амният;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Пешфарзӣ"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Профили оддӣ"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Тазоди баланд"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Ҳуруфҳои андозаашон калон барои одамҳои бо чашми хира"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Профили оддӣ бо намоиши HTML - каме бехатарнок аст!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Пурист"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"Бисёри имкониятҳои иловагӣ ғайрифаъол шудаанд, танзимотҳои глобалии TDE "
+"истифода шуда истодаанд"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Аз ҳама бехавфнокаш"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
+"Тамоми параметрҳоро, ки барои ноилшавии амнияти максималӣ лозим аст, сабт "
+"мекунад"
diff --git a/translations/desktop_files/kmail-desktops/th.po b/translations/desktop_files/kmail-desktops/th.po
new file mode 100644
index 00000000..f910f80d
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/th.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: th\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "จัดการจดหมาย - K"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "ไคลเอนต์จดหมายอิเล็กทรอนิกส์"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "ค่าปริยาย"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "โปรไฟล์มาตรฐาน"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "เพิ่มขนาดตัวอักษรสำหรับผู้ที่สายตาไม่ดี"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "โปรไฟล์มาตรฐานพร้อมกับแสดงตัวอย่าง HTML - ความปลอดภัยน้อย !"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "คุณสมบัติส่วนมากถูกปิดการใช้ และใช้ค่าทั่วไปของ TDE แทน"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/tr.po b/translations/desktop_files/kmail-desktops/tr.po
new file mode 100644
index 00000000..6b7fa6af
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/tr.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "E-posta İstemcisi"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Uygulama Sekizli Akışı"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "application/octet-stream için bir gövde biçimleyici eklentisi"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "DCOP arayüzü ile posta programı"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Hesaplar"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Gönderilen ve Gelen Mesajlar için Yapılandırma"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;hesplar;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Görünüm"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Görsel Görünümü Özelleştir"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;görünüm;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Düzenleyici"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Şablonlar & Genel Davranış"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;düzenleyici;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Kimlikler"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Kimlikleri Düzenle"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;kimlikler;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Çeşitli"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Diğer bölümlere uymayan yapılandırma seçenekleri"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;çeşitli;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Güvenlik"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Güvenlik ve Gizlilik Ayarlar"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;güvenlik;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Öntanımlı"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Standart profil"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Yüksek Kontrast"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Görsel engelli kullanıcılar için arttırılmış yazı tipi boyutu"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "HTML ön izleme aktif standart profil - daha az güvenli!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Pürist"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Bir çok özellik kapatılmış, TDE'nin küresel ayarları kullanılır"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "En Güvenli"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "En yüksek güvenliği yakalamak için gerekli bütün takım seçenekleri"
diff --git a/translations/desktop_files/kmail-desktops/uk.po b/translations/desktop_files/kmail-desktops/uk.po
new file mode 100644
index 00000000..4a526758
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/uk.po
@@ -0,0 +1,190 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: 2020-08-19 19:59+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kmail-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "KMail"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Поштовий клієнт"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "Octetstream Додаток"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "Втулок для форматування application/octet-stream"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "Програма для роботи з ел. поштою з інтерфейсом DCOP"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Рахунки"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "Налаштування для надсилання і отримання повідомлень"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;accounts;пошта;рахунки;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Вигляд"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Налаштування зовнішнього вигляду"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;вигляд;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "Редактор листів"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "Шаблони та загальна поведінка"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;редактор;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Профілі"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "Керування профілями"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;профіль;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Різне"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "Інші параметри"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;різне;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Безпека"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "Параметри безпеки і конфіденційності"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;безпека;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr "Файл Ел.пошти"
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Типовий"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Типовий профіль"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "Висока контрастність"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Збільшений розмір шрифтів для людей з поганим зором"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr "HTML"
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Окремий профіль з ввімкненим переглядом HTML - менш безпечний!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Пуристичний"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Більшість функцій вимкнено, вживаються глобальні параметри TDE"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Найбільш безпечний"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
+"Встановлює всі необхідні параметри для забезпечення максимальної безпеки"
diff --git a/translations/desktop_files/kmail-desktops/uz.po b/translations/desktop_files/kmail-desktops/uz.po
new file mode 100644
index 00000000..f4f490b3
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/uz.po
@@ -0,0 +1,191 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Хат-хабар клиенти"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Ҳисоблар"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "kmail;хавфсизлик;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Кўриниши"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+#, fuzzy
+msgid "kmail;appearance;"
+msgstr "Кўриниши"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+#, fuzzy
+msgid "kmail;composer;"
+msgstr "kmail;ҳар хил;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "Шахсиятлар"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+#, fuzzy
+msgid "Manage Identities"
+msgstr "Шахсиятлар"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;шахсият;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "Ҳар хил"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;ҳар хил;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "Хавфсизлик"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;хавфсизлик;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Андоза"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Андоза профили"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr ""
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "Жуда хавфсиз"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/ven.po b/translations/desktop_files/kmail-desktops/ven.po
new file mode 100644
index 00000000..3ec33137
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/ven.po
@@ -0,0 +1,191 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ven\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Mushumisani na poso"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Zwi si zwavhudi"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Zwithu zwo doweleaho"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Saizi ya fontu yo engedzhwaho uitela vhashumisi vha zwauvhona"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+"Profile yo doweleaho irena HTML ya mbonelaphanda yo itwaho - a i ngo "
+"tsireledzea!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Zwo kunaho"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"Zwithu zwinzhi zwo tsimiwa, mavhekanyelo a TDE a hothe na hothe a khu "
+"shumiswa"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/vi.po b/translations/desktop_files/kmail-desktops/vi.po
new file mode 100644
index 00000000..36014e85
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/vi.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: vi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr ""
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Mặc định "
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Hồ sơ chuẩn"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Tăng cỡ font cho người dùng tàn tật "
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "Hồ sơ chuẩn cho phép xem trước HTML - I't bảo mật hơn !"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr ""
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "Hầu hết các chức năng tắt, Thiết lập toàn cục của TDE được dùng"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/xh.po b/translations/desktop_files/kmail-desktops/xh.po
new file mode 100644
index 00000000..c19c38bc
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/xh.po
@@ -0,0 +1,190 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: xh\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Umxhasi Weposi"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Engagqibekanga"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Imboniselo yabucala esezantsi"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Ubungakanani bobukhulu begama bunyusiwe kubasebenzisi ababonayo"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+"Imboniselo yabucala esezantsi nge HTML imboniso yenziwe - ukhuseleko "
+"oluncinane!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "isiPurist"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"Imisebenzi emininzi icinyiwe, izicwangciso ezingqukuva ze TDE ziyasetyenziswa"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-desktops/zh_CN.po b/translations/desktop_files/kmail-desktops/zh_CN.po
new file mode 100644
index 00000000..1bc4bae0
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/zh_CN.po
@@ -0,0 +1,187 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "邮件客户程序"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr "应用程序 Octetstream"
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr "application/octet-stream 的格式化插件"
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "具有 DCOP 接口的邮件程序"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "账户"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "收发邮件设置"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr "kmail;account;账户;"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "外观"
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "自定义视觉外观"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr "kmail;appearance;外观;"
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "编写器"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "模板和常规行为"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr "kmail;composer; 编写器;"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "身份"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "管理身份"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr "kmail;identity; 身份;"
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "杂项"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "其它设置"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr "kmail;misc;杂项;"
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "安全"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "安全和隐私设置"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr "kmail;security;安全;"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "默认"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "标准配置文件"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "高对比"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "对有视觉障碍的用户增加字体大小"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "启用 HTML 预览的标准配置文件 - 更不安全!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "严格"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "关闭大多数特性,使用 TDE 全局设置"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "最安全"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "设置所有必要的选项来达到最大的安全性"
diff --git a/translations/desktop_files/kmail-desktops/zh_TW.po b/translations/desktop_files/kmail-desktops/zh_TW.po
new file mode 100644
index 00000000..28c5dcbd
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/zh_TW.po
@@ -0,0 +1,190 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr "KMail 郵件軟體"
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "收發信軟體"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr "有 DCOP 介面的郵件程式"
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "帳號"
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr "發送與接收信件設定"
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+#, fuzzy
+msgid "kmail;accounts;"
+msgstr "帳號"
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "調整視覺顯示"
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr "編寫器"
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr "樣本與一般行為"
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+#, fuzzy
+msgid "kmail;composer;"
+msgstr "編寫器"
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr "身份"
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr "管理身份"
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr "其他"
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr "不屬於任何其他地方的設定"
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr "安全性"
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr "安全性與隱私設定"
+
+#. Keywords
+#: kmail_config_security.desktop:18
+#, fuzzy
+msgid "kmail;security;"
+msgstr "安全性"
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "預設"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "標準設定"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr "高反差"
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "遞增字型大小以適合視覺障礙者"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr "標準設定,HTML 預覽開啟 - 較不安全!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "較安全"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr "大部份功能都關閉,使用 TDE 全域設定"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr "最安全"
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr "將所有設定設為最高安全狀態"
diff --git a/translations/desktop_files/kmail-desktops/zu.po b/translations/desktop_files/kmail-desktops/zu.po
new file mode 100644
index 00000000..97d091d9
--- /dev/null
+++ b/translations/desktop_files/kmail-desktops/zu.po
@@ -0,0 +1,191 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KMail.desktop:2 kmail_view.desktop:2
+msgid "KMail"
+msgstr ""
+
+#. GenericName
+#: KMail.desktop:4
+msgid "Mail Client"
+msgstr "Imeyili Yomthengi"
+
+#. Name
+#: application_octetstream.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: application_octetstream.desktop:4
+msgid "A bodypart formatter plugin for application/octet-stream"
+msgstr ""
+
+#. Comment
+#: dcopimap.desktop:5 dcopmail.desktop:5
+msgid "Mail program with a DCOP interface"
+msgstr ""
+
+#. Name
+#: kmail_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: kmail_config_accounts.desktop:16
+msgid "Setup for Sending and Receiving Messages"
+msgstr ""
+
+#. Keywords
+#: kmail_config_accounts.desktop:18
+msgid "kmail;accounts;"
+msgstr ""
+
+#. Name
+#: kmail_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: kmail_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Keywords
+#: kmail_config_appearance.desktop:18
+msgid "kmail;appearance;"
+msgstr ""
+
+#. Name
+#: kmail_config_composer.desktop:14
+msgid "Composer"
+msgstr ""
+
+#. Comment
+#: kmail_config_composer.desktop:16
+msgid "Templates & General Behavior"
+msgstr ""
+
+#. Keywords
+#: kmail_config_composer.desktop:18
+msgid "kmail;composer;"
+msgstr ""
+
+#. Name
+#: kmail_config_identity.desktop:14
+msgid "Identities"
+msgstr ""
+
+#. Comment
+#: kmail_config_identity.desktop:16
+msgid "Manage Identities"
+msgstr ""
+
+#. Keywords
+#: kmail_config_identity.desktop:18
+msgid "kmail;identity;"
+msgstr ""
+
+#. Name
+#: kmail_config_misc.desktop:14
+msgid "Misc"
+msgstr ""
+
+#. Comment
+#: kmail_config_misc.desktop:16
+msgid "Settings that don't fit elsewhere"
+msgstr ""
+
+#. Keywords
+#: kmail_config_misc.desktop:18
+msgid "kmail;misc;"
+msgstr ""
+
+#. Name
+#: kmail_config_security.desktop:14
+msgid "Security"
+msgstr ""
+
+#. Comment
+#: kmail_config_security.desktop:16
+msgid "Security & Privacy Settings"
+msgstr ""
+
+#. Keywords
+#: kmail_config_security.desktop:18
+msgid "kmail;security;"
+msgstr ""
+
+#. Name
+#: konqueror/servicemenus/email.desktop:8
+msgid "Email File"
+msgstr ""
+
+#. Name
+#: profiles/profile-default-rc.desktop:2
+msgid "Default"
+msgstr "Engaqedekanga"
+
+#. Comment
+#: profiles/profile-default-rc.desktop:4
+msgid "Standard profile"
+msgstr "Iprofayela Elingeneyo"
+
+#. Name
+#: profiles/profile-high-contrast-rc.desktop:2
+msgid "High Contrast"
+msgstr ""
+
+#. Comment
+#: profiles/profile-high-contrast-rc.desktop:4
+msgid "Increased font sizes for visually impaired users"
+msgstr "Abakhushululiweyo osayizi befont kwabantu abayizimpumputhe"
+
+#. Name
+#: profiles/profile-html-rc.desktop:2
+msgid "HTML"
+msgstr ""
+
+#. Comment
+#: profiles/profile-html-rc.desktop:4
+msgid "Standard profile with HTML preview enabled - less secure!"
+msgstr ""
+"Yenza ngokulingeneyo iprofayela nge HTML okokukhombisa ngaphambili "
+"kwenzeliwe - okuncane ukuvikeleka!"
+
+#. Name
+#: profiles/profile-purist-rc.desktop:2
+msgid "Purist"
+msgstr "Okuhlanzekileyo"
+
+#. Comment
+#: profiles/profile-purist-rc.desktop:4
+msgid "Most features turned off, TDE global settings are used"
+msgstr ""
+"Eziningi izinto azikhanyiswanga, ezezizwe izilungiselo ze TDE "
+"ziyasetshenziswa"
+
+#. Name
+#: profiles/profile-secure-rc.desktop:2
+msgid "Most Secure"
+msgstr ""
+
+#. Comment
+#: profiles/profile-secure-rc.desktop:4
+msgid "Sets all necessary options to achieve maximum security"
+msgstr ""
diff --git a/translations/desktop_files/kmail-eventsrc/af.po b/translations/desktop_files/kmail-eventsrc/af.po
new file mode 100644
index 00000000..d750177b
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/af.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Nuwe pos het gearriveer"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Nuwe pos het gearriveer"
diff --git a/translations/desktop_files/kmail-eventsrc/ar.po b/translations/desktop_files/kmail-eventsrc/ar.po
new file mode 100644
index 00000000..0fe76576
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/ar.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "وصل بريد جديد"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "وصل بريد جديد"
diff --git a/translations/desktop_files/kmail-eventsrc/bg.po b/translations/desktop_files/kmail-eventsrc/bg.po
new file mode 100644
index 00000000..9c1f7fed
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/bg.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Имате нова поща"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Имате ново писмо"
diff --git a/translations/desktop_files/kmail-eventsrc/br.po b/translations/desktop_files/kmail-eventsrc/br.po
new file mode 100644
index 00000000..9fce643a
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/br.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Deuet eo ur postel nevez"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Deuet eo ur postel nevez"
diff --git a/translations/desktop_files/kmail-eventsrc/bs.po b/translations/desktop_files/kmail-eventsrc/bs.po
new file mode 100644
index 00000000..01e52e2d
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/bs.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Stigla vam je nova pošta"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Stigla vam je nova pošta"
diff --git a/translations/desktop_files/kmail-eventsrc/ca.po b/translations/desktop_files/kmail-eventsrc/ca.po
new file mode 100644
index 00000000..f86d6937
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/ca.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Ha arribat correu nou"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Ha arribat correu nou"
diff --git a/translations/desktop_files/kmail-eventsrc/cs.po b/translations/desktop_files/kmail-eventsrc/cs.po
new file mode 100644
index 00000000..c56bac58
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/cs.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: 2020-09-20 18:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/kmail-events/cs/>\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: Weblate 4.2.2\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr "KMail"
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Přišla nová pošta"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Přišla nová pošta"
diff --git a/translations/desktop_files/kmail-eventsrc/cy.po b/translations/desktop_files/kmail-eventsrc/cy.po
new file mode 100644
index 00000000..1f028def
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/cy.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+#, fuzzy
+msgid "New Mail Arrived"
+msgstr "Cyrhaeddodd ebost newydd"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Cyrhaeddodd ebost newydd"
diff --git a/translations/desktop_files/kmail-eventsrc/da.po b/translations/desktop_files/kmail-eventsrc/da.po
new file mode 100644
index 00000000..41b3bfbb
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/da.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Ny post ankommet"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Ny post ankommet"
diff --git a/translations/desktop_files/kmail-eventsrc/de.po b/translations/desktop_files/kmail-eventsrc/de.po
new file mode 100644
index 00000000..176fae99
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/de.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Neue Nachrichten sind angekommen"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Neue Nachrichten sind angekommen"
diff --git a/translations/desktop_files/kmail-eventsrc/el.po b/translations/desktop_files/kmail-eventsrc/el.po
new file mode 100644
index 00000000..8991d0c7
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/el.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Έφτασε νέα αλληλογραφία"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Έφτασε νέα αλληλογραφία"
diff --git a/translations/desktop_files/kmail-eventsrc/eo.po b/translations/desktop_files/kmail-eventsrc/eo.po
new file mode 100644
index 00000000..a41de729
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/eo.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Nova Poŝto Alvenis"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Nova poŝto alvenis"
diff --git a/translations/desktop_files/kmail-eventsrc/es.po b/translations/desktop_files/kmail-eventsrc/es.po
new file mode 100644
index 00000000..3bcd7384
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/es.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Hay correo nuevo"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Hay correo nuevo"
diff --git a/translations/desktop_files/kmail-eventsrc/et.po b/translations/desktop_files/kmail-eventsrc/et.po
new file mode 100644
index 00000000..f2bdcb3d
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/et.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Saabus uus kiri"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Saabus uus kiri"
diff --git a/translations/desktop_files/kmail-eventsrc/eu.po b/translations/desktop_files/kmail-eventsrc/eu.po
new file mode 100644
index 00000000..ea933c9f
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/eu.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Posta berri bat iritsi da"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Posta berri bat iritsi da"
diff --git a/translations/desktop_files/kmail-eventsrc/fa.po b/translations/desktop_files/kmail-eventsrc/fa.po
new file mode 100644
index 00000000..ede3c591
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/fa.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "نامۀ جدید رسیده"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "نامۀ جدید رسیده"
diff --git a/translations/desktop_files/kmail-eventsrc/fi.po b/translations/desktop_files/kmail-eventsrc/fi.po
new file mode 100644
index 00000000..fd80671d
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/fi.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Uutta postia saapunut"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Uutta postia saapunut"
diff --git a/translations/desktop_files/kmail-eventsrc/fr.po b/translations/desktop_files/kmail-eventsrc/fr.po
new file mode 100644
index 00000000..b2811729
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/fr.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Un nouveau message est arrivé"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Un nouveau message est arrivé"
diff --git a/translations/desktop_files/kmail-eventsrc/fy.po b/translations/desktop_files/kmail-eventsrc/fy.po
new file mode 100644
index 00000000..8288a8f9
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/fy.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Nije berjochten oankaam"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Nij berjocht oankaam"
diff --git a/translations/desktop_files/kmail-eventsrc/gl.po b/translations/desktop_files/kmail-eventsrc/gl.po
new file mode 100644
index 00000000..8972741f
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/gl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Hai Correo Novo"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Hai correo novo"
diff --git a/translations/desktop_files/kmail-eventsrc/he.po b/translations/desktop_files/kmail-eventsrc/he.po
new file mode 100644
index 00000000..5c248b2f
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/he.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "דוא\"ל חדש הגיע"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "דוא\"ל חדש הגיע"
diff --git a/translations/desktop_files/kmail-eventsrc/hi.po b/translations/desktop_files/kmail-eventsrc/hi.po
new file mode 100644
index 00000000..e961e4ac
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/hi.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr "के-मेल"
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr ""
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr ""
diff --git a/translations/desktop_files/kmail-eventsrc/hu.po b/translations/desktop_files/kmail-eventsrc/hu.po
new file mode 100644
index 00000000..8802cfad
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/hu.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Új levél érkezett"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Új levél érkezett"
diff --git a/translations/desktop_files/kmail-eventsrc/is.po b/translations/desktop_files/kmail-eventsrc/is.po
new file mode 100644
index 00000000..a07e3983
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/is.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Nýr póstur"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Nýr póstur"
diff --git a/translations/desktop_files/kmail-eventsrc/it.po b/translations/desktop_files/kmail-eventsrc/it.po
new file mode 100644
index 00000000..2ae06cc6
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/it.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: 2020-11-25 19:48+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kmail-events/it/>\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: Weblate 4.3.2\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr "KMail"
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Nuova posta arrivata"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Nuova posta"
diff --git a/translations/desktop_files/kmail-eventsrc/ja.po b/translations/desktop_files/kmail-eventsrc/ja.po
new file mode 100644
index 00000000..d13d7377
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/ja.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "新規メール着信"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "新規メール着信"
diff --git a/translations/desktop_files/kmail-eventsrc/kk.po b/translations/desktop_files/kmail-eventsrc/kk.po
new file mode 100644
index 00000000..0cc03207
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/kk.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Жаңа пошта келді"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Жаңа пошта келді"
diff --git a/translations/desktop_files/kmail-eventsrc/km.po b/translations/desktop_files/kmail-eventsrc/km.po
new file mode 100644
index 00000000..48fe3de8
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/km.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "មាន​អ៊ីមែល​ថ្មី​មក​ដល់"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "មាន​អ៊ីមែល​ថ្មី​មក​ដល់"
diff --git a/translations/desktop_files/kmail-eventsrc/kmail-eventsrc.pot b/translations/desktop_files/kmail-eventsrc/kmail-eventsrc.pot
new file mode 100644
index 00000000..f390ad8c
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/kmail-eventsrc.pot
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr ""
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr ""
diff --git a/translations/desktop_files/kmail-eventsrc/lt.po b/translations/desktop_files/kmail-eventsrc/lt.po
new file mode 100644
index 00000000..0ff8556c
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/lt.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Atėjo naujas paštas"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Atėjo naujas paštas"
diff --git a/translations/desktop_files/kmail-eventsrc/mk.po b/translations/desktop_files/kmail-eventsrc/mk.po
new file mode 100644
index 00000000..ce19906a
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/mk.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr "КПошта"
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Пристигната е нова е-пошта"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Пристигната е нова е-пошта"
diff --git a/translations/desktop_files/kmail-eventsrc/ms.po b/translations/desktop_files/kmail-eventsrc/ms.po
new file mode 100644
index 00000000..fad523e6
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/ms.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Mel Baru Sampai"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Mel baru sampai"
diff --git a/translations/desktop_files/kmail-eventsrc/nb.po b/translations/desktop_files/kmail-eventsrc/nb.po
new file mode 100644
index 00000000..16feff42
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/nb.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Ny e-post ankommet"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Ny e-post ankommet"
diff --git a/translations/desktop_files/kmail-eventsrc/nds.po b/translations/desktop_files/kmail-eventsrc/nds.po
new file mode 100644
index 00000000..fed7d9f5
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/nds.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Niege Narichten sünd ankamen"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Niege Narichten sünd ankamen"
diff --git a/translations/desktop_files/kmail-eventsrc/ne.po b/translations/desktop_files/kmail-eventsrc/ne.po
new file mode 100644
index 00000000..743d41d1
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/ne.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr "केडीई मेल"
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "नयाँ पत्र आइपुग्यो"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "नयाँ पत्र आइपुग्यो"
diff --git a/translations/desktop_files/kmail-eventsrc/nl.po b/translations/desktop_files/kmail-eventsrc/nl.po
new file mode 100644
index 00000000..78fbf4a1
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/nl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Nieuwe berichten gearriveerd"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Nieuw bericht ontvangen"
diff --git a/translations/desktop_files/kmail-eventsrc/nn.po b/translations/desktop_files/kmail-eventsrc/nn.po
new file mode 100644
index 00000000..ccfe7ca1
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/nn.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Ny e-post er komen"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Ny e-post er komen"
diff --git a/translations/desktop_files/kmail-eventsrc/pa.po b/translations/desktop_files/kmail-eventsrc/pa.po
new file mode 100644
index 00000000..835e43cf
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/pa.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr "ਕੇ-ਪੱਤਰ"
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "ਨਵਾਂ ਪੱਤਰ ਆਇਆ"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "ਨਵਾਂ ਪੱਤਰ ਆਇਆ"
diff --git a/translations/desktop_files/kmail-eventsrc/pl.po b/translations/desktop_files/kmail-eventsrc/pl.po
new file mode 100644
index 00000000..7aa98ff0
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/pl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Otrzymano nową pocztę"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Otrzymano nową pocztę"
diff --git a/translations/desktop_files/kmail-eventsrc/pt.po b/translations/desktop_files/kmail-eventsrc/pt.po
new file mode 100644
index 00000000..1e6bc8e9
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/pt.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Chegou Correio Novo"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Chegou correio novo"
diff --git a/translations/desktop_files/kmail-eventsrc/pt_BR.po b/translations/desktop_files/kmail-eventsrc/pt_BR.po
new file mode 100644
index 00000000..3c6f08d4
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/pt_BR.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Chegou Nova Mensagem"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Chegou Nova Mensagem"
diff --git a/translations/desktop_files/kmail-eventsrc/ru.po b/translations/desktop_files/kmail-eventsrc/ru.po
new file mode 100644
index 00000000..4c27e7a1
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/ru.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: 2024-04-12 16:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kmail-events/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr "KMail"
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Получена новая почта"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Получена новая почта"
diff --git a/translations/desktop_files/kmail-eventsrc/se.po b/translations/desktop_files/kmail-eventsrc/se.po
new file mode 100644
index 00000000..65cd1ac6
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/se.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Ođđa e-boasta bođii"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Ođđa e-boasta bođii"
diff --git a/translations/desktop_files/kmail-eventsrc/sk.po b/translations/desktop_files/kmail-eventsrc/sk.po
new file mode 100644
index 00000000..35eb45be
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/sk.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Prišla nová pošta"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Prišla nová pošta"
diff --git a/translations/desktop_files/kmail-eventsrc/sl.po b/translations/desktop_files/kmail-eventsrc/sl.po
new file mode 100644
index 00000000..865a9a38
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/sl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Prispela je nova pošta"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Prispela je nova pošta"
diff --git a/translations/desktop_files/kmail-eventsrc/sr.po b/translations/desktop_files/kmail-eventsrc/sr.po
new file mode 100644
index 00000000..7508d621
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/sr.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Стигла је нова пошта"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Стигла је нова пошта"
diff --git a/translations/desktop_files/kmail-eventsrc/sr@Latn.po b/translations/desktop_files/kmail-eventsrc/sr@Latn.po
new file mode 100644
index 00000000..817a8ff1
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/sr@Latn.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Stigla je nova pošta"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Stigla je nova pošta"
diff --git a/translations/desktop_files/kmail-eventsrc/sv.po b/translations/desktop_files/kmail-eventsrc/sv.po
new file mode 100644
index 00000000..2eadc7b0
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/sv.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr "Kmail"
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Ny post har anlänt"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Ny post har anlänt"
diff --git a/translations/desktop_files/kmail-eventsrc/ta.po b/translations/desktop_files/kmail-eventsrc/ta.po
new file mode 100644
index 00000000..ca4c47be
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/ta.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr "kஅஞ்சல்"
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "புதிய அஞ்சல் வந்துள்ளது"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "புதிய அஞ்சல் வந்துள்ளது"
diff --git a/translations/desktop_files/kmail-eventsrc/tg.po b/translations/desktop_files/kmail-eventsrc/tg.po
new file mode 100644
index 00000000..87a6bf7f
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/tg.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Почтаи нав қабул шуд"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Почтаи нав қабул шуд"
diff --git a/translations/desktop_files/kmail-eventsrc/tr.po b/translations/desktop_files/kmail-eventsrc/tr.po
new file mode 100644
index 00000000..cb78c0e3
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/tr.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Yeni E-posta Geldi"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Yeni e-posta geldi"
diff --git a/translations/desktop_files/kmail-eventsrc/uk.po b/translations/desktop_files/kmail-eventsrc/uk.po
new file mode 100644
index 00000000..0286eab1
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/uk.po
@@ -0,0 +1,34 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: 2020-08-19 19:59+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kmail-events/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr "KMail"
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Отримана нова пошта"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Надійшла нова пошта"
diff --git a/translations/desktop_files/kmail-eventsrc/uz.po b/translations/desktop_files/kmail-eventsrc/uz.po
new file mode 100644
index 00000000..7caf69e3
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/uz.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "Янги хат келди"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "Янги хат келди"
diff --git a/translations/desktop_files/kmail-eventsrc/zh_CN.po b/translations/desktop_files/kmail-eventsrc/zh_CN.po
new file mode 100644
index 00000000..61a5e95d
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/zh_CN.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "新邮件到达"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "新邮件到达"
diff --git a/translations/desktop_files/kmail-eventsrc/zh_TW.po b/translations/desktop_files/kmail-eventsrc/zh_TW.po
new file mode 100644
index 00000000..ba941fc6
--- /dev/null
+++ b/translations/desktop_files/kmail-eventsrc/zh_TW.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-09 20:57+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: eventsrc:3
+msgid "KMail"
+msgstr ""
+
+#. Name
+#: eventsrc:6
+msgid "New Mail Arrived"
+msgstr "您有新郵件"
+
+#. Comment
+#: eventsrc:7
+msgid "New mail arrived"
+msgstr "您有新郵件"
diff --git a/translations/desktop_files/kmail-plugins-desktops/af.po b/translations/desktop_files/kmail-plugins-desktops/af.po
new file mode 100644
index 00000000..7ebf4f50
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/af.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Application/Octet-stream"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "'n Data (boodskap lyf) formateer inprop module vir 'text/calendar'"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "'n Data (boodskap lyf) formateer inprop module vir 'text/vcard'"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "'n Data (boodskap lyf) formateer inprop module vir 'text/x-diff'"
diff --git a/translations/desktop_files/kmail-plugins-desktops/bg.po b/translations/desktop_files/kmail-plugins-desktops/bg.po
new file mode 100644
index 00000000..b5288511
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/bg.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Редактор с поддръжка на форматиране за текст/календар"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Редактор с поддръжка на форматиране за текст/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Редактор с поддръжка на форматиране за текст/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/br.po b/translations/desktop_files/kmail-plugins-desktops/br.po
new file mode 100644
index 00000000..ecb52830
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/br.po
@@ -0,0 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+#, fuzzy
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Arload tresañ Xfig"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Arload tresañ Xfig"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+#, fuzzy
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Arload tresañ Xfig"
diff --git a/translations/desktop_files/kmail-plugins-desktops/bs.po b/translations/desktop_files/kmail-plugins-desktops/bs.po
new file mode 100644
index 00000000..3cf1c519
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/bs.po
@@ -0,0 +1,40 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Dodatak za formatiranje tijela poruke za text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Dodatak za formatiranje tijela poruke za text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+#, fuzzy
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Dodatak za formatiranje tijela poruke za text/vcard"
diff --git a/translations/desktop_files/kmail-plugins-desktops/ca.po b/translations/desktop_files/kmail-plugins-desktops/ca.po
new file mode 100644
index 00000000..56026035
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/ca.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplicació Octetstream"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Un endollable formatador del cos per a text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Un endollable formatador del cos per a text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Un endollable formatador del cos per a text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/cs.po b/translations/desktop_files/kmail-plugins-desktops/cs.po
new file mode 100644
index 00000000..6938f980
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/cs.po
@@ -0,0 +1,40 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/kmail-plugins-desktop-files/cs/>\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: Weblate 4.8.1\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplikace octetstream"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Modul formátování těla zprávy pro typ text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Modul formátování těla zprávy pro typ text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Modul formátování těla zprávy pro typ text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/da.po b/translations/desktop_files/kmail-plugins-desktops/da.po
new file mode 100644
index 00000000..85345a1d
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/da.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Program oktetstrøm"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Et bodypart formateringsplugin for text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Et bodypart formateringsplugin for text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Et bodypart formateringsplugin for text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/de.po b/translations/desktop_files/kmail-plugins-desktops/de.po
new file mode 100644
index 00000000..6f0e4463
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/de.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Ein Textinhalt-Formatierer für text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Ein Textinhalt-Formatierer für text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Ein Bodypart-Formatierungsmodul für text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/el.po b/translations/desktop_files/kmail-plugins-desktops/el.po
new file mode 100644
index 00000000..4aebd2fc
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/el.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Ένα πρόσθετο μορφοποιητή για text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Ένα πρόσθετο μορφοποιητή για text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Ένα πρόσθετο μορφοποιητή για text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/eo.po b/translations/desktop_files/kmail-plugins-desktops/eo.po
new file mode 100644
index 00000000..d55ef09e
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/eo.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplikaĵa Bitokfluo"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr ""
diff --git a/translations/desktop_files/kmail-plugins-desktops/es.po b/translations/desktop_files/kmail-plugins-desktops/es.po
new file mode 100644
index 00000000..ab2937e9
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/es.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplicación en flujo de octetos"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Un accesorio de formato para el cuerpo de text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Un accesorio de formato para el cuerpo de text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Una extensión de formato para el cuerpo de text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/et.po b/translations/desktop_files/kmail-plugins-desktops/et.po
new file mode 100644
index 00000000..325a528c
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/et.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Põhiosa vormindamisplugin (MIME tüübile text/calendar)"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Põhiosa vormindamisplugin (MIME tüübile text/vcard)"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Põhiosa vormindamisplugin (MIME tüübile text/x-diff)"
diff --git a/translations/desktop_files/kmail-plugins-desktops/eu.po b/translations/desktop_files/kmail-plugins-desktops/eu.po
new file mode 100644
index 00000000..3b903681
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/eu.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplikazioa/zortzikote-jarioa"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Testu/egutegientzako gorputz-zati formateatzaile bat"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Testu/vcard-en gorputz-zati formateatzaile bat"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Testu/x-diff-en gorputz-zati formateatzaile bat"
diff --git a/translations/desktop_files/kmail-plugins-desktops/fa.po b/translations/desktop_files/kmail-plugins-desktops/fa.po
new file mode 100644
index 00000000..9928a3ed
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/fa.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Octetstream کاربرد"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "یک وصلۀ قالب دهندۀ جزء بدنه برای متن/تقویم"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "یک وصلۀ قالب دهندۀ جزء بدنه برای متن/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "یک وصلۀ قالب دهندۀ جزء بدنه برای متن/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/fi.po b/translations/desktop_files/kmail-plugins-desktops/fi.po
new file mode 100644
index 00000000..8b92ce51
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/fi.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Octetstream-sovellus"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Muokkausliitännäinen text/calendar-muodolle"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Muokkausliitännäinen text/vcard-muodolle"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Muokkausliitännäinen text/x-diff-muodolle"
diff --git a/translations/desktop_files/kmail-plugins-desktops/fr.po b/translations/desktop_files/kmail-plugins-desktops/fr.po
new file mode 100644
index 00000000..bb7461c4
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/fr.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Application (flux d'octets)"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Module de formatage pour le text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Un formateur de partie de corps pour text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Un formateur de partie de corps pour text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/fy.po b/translations/desktop_files/kmail-plugins-desktops/fy.po
new file mode 100644
index 00000000..8fe3f8c5
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/fy.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Applikaasje octetstream"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "In opmaakplugin foar text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "In opmaakplugin foar text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "In opmaakplugin foar text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/gl.po b/translations/desktop_files/kmail-plugins-desktops/gl.po
new file mode 100644
index 00000000..a9b891c8
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/gl.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplicación Octetstream"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Unha extensión para formatear o corpo do texto/calendario"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Unha extensión para formatear o corpo do texto/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Unha extensión para formatear o corpo do texto/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/hu.po b/translations/desktop_files/kmail-plugins-desktops/hu.po
new file mode 100644
index 00000000..e15d43aa
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/hu.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Alkalmazás-adatfolyam"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Formázómodul text/calendar adatfolyamok kezeléséhez"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Formázómodul text/vcard adatfolyamok kezeléséhez"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Formázómodul text/x-diff adatok kezeléséhez"
diff --git a/translations/desktop_files/kmail-plugins-desktops/is.po b/translations/desktop_files/kmail-plugins-desktops/is.po
new file mode 100644
index 00000000..41b16898
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/is.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Sniðmátstól fyrir text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Sniðmátstól fyrir text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Sniðmátstól fyrir text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/it.po b/translations/desktop_files/kmail-plugins-desktops/it.po
new file mode 100644
index 00000000..e9962427
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/it.po
@@ -0,0 +1,40 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: 2020-11-29 07:59+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kmail-plugins-desktop-files/it/>\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: Weblate 4.3.2\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Flusso di ottetti dell'applicazione"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Un plugin per formattare il corpo di text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Un plugin per formattare il corpo di text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Un plugin per formattare il corpo di text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/ja.po b/translations/desktop_files/kmail-plugins-desktops/ja.po
new file mode 100644
index 00000000..a5b10984
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/ja.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "アプリケーション オクテット ストリーム"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "text/calendar 用の Bodypart フォーマッタ プラグイン"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "text/vcard 用の Bodypart フォーマッタ プラグイン"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "text/x-diff 用の bodypart フォーマッタプラグイン"
diff --git a/translations/desktop_files/kmail-plugins-desktops/kk.po b/translations/desktop_files/kmail-plugins-desktops/kk.po
new file mode 100644
index 00000000..48bf9bec
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/kk.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Қолданбаның бинарлы ағымы"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Text/calendar бөлімін пішімдеу модулі"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Text/vcard бөлімін пішімдеу модулі"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Text/x-diff бөлімін пішімдеу модулі"
diff --git a/translations/desktop_files/kmail-plugins-desktops/km.po b/translations/desktop_files/kmail-plugins-desktops/km.po
new file mode 100644
index 00000000..a84a5b11
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/km.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Octetstream កម្មវិធី"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "កម្មវិធី​ជំនួយ​កម្មវិធី​ធ្វើ​ទ្រង់ទ្រាយ​ផ្នែក​តួ សម្រាប់​អត្ថបទ/ប្រតិទិន"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "កម្មវិធី​ជំនួយ​កម្មវិធី​ធ្វើ​ទ្រង់ទ្រាយ​ផ្នែក​តួ សម្រាប់​អត្ថបទ/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "កម្មវិធី​ជំនួយ​កម្មវិធី​ធ្វើ​ទ្រង់ទ្រាយ​ផ្នែក​តួ សម្រាប់​អត្ថបទ/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/kmail-plugins-desktops.pot b/translations/desktop_files/kmail-plugins-desktops/kmail-plugins-desktops.pot
new file mode 100644
index 00000000..30590dcf
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/kmail-plugins-desktops.pot
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr ""
diff --git a/translations/desktop_files/kmail-plugins-desktops/lt.po b/translations/desktop_files/kmail-plugins-desktops/lt.po
new file mode 100644
index 00000000..ac014c8b
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/lt.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "text/calendar formatavimo priedas"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Teksto/vcard formatavimo priedas"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "text/x-diff formatavimo priedas"
diff --git a/translations/desktop_files/kmail-plugins-desktops/ms.po b/translations/desktop_files/kmail-plugins-desktops/ms.po
new file mode 100644
index 00000000..4387cbed
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/ms.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Aliran Oktet Aplikasi"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Plugin pemformat bahagian isi untuk teks/kalendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Plugin pemformat bahagian isi untuk teks/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Plugin pemformat bahagian untuk teks/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/nb.po b/translations/desktop_files/kmail-plugins-desktops/nb.po
new file mode 100644
index 00000000..cae1794a
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/nb.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Program Octetstrøm"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "En formaterer for meldingstekster i tekst/kalender"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Et programtillegg for text/vcard for brødtekst-formatering"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Et programtillegg for text/x-diff for brødtekst-formatering"
diff --git a/translations/desktop_files/kmail-plugins-desktops/nds.po b/translations/desktop_files/kmail-plugins-desktops/nds.po
new file mode 100644
index 00000000..e85e9a31
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/nds.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "En Hööftdeel-Formateermoduul för text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "En Hööftdeel-Formateermoduul för text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "En Hööftdeel-Formateermoduul för text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/ne.po b/translations/desktop_files/kmail-plugins-desktops/ne.po
new file mode 100644
index 00000000..b6178274
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/ne.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "अक्टेस्ट्रिम अनुप्रयोग"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "पाठ/क्यालेन्डरका लागि मुख्यभाग ढाँचाबद्ध गर्ने प्लगइन"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "पाठ/भिकार्ड का लागि मुख्यभाग ढाँचाबद्ध गर्ने प्लगइन"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "पाठ/x-diff का लागि मुख्यभाग ढाँचाबद्ध गर्ने प्लगइन"
diff --git a/translations/desktop_files/kmail-plugins-desktops/nl.po b/translations/desktop_files/kmail-plugins-desktops/nl.po
new file mode 100644
index 00000000..00aa11e1
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/nl.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Applicatie octetstroom"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Een opmaakplugin voor text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Een opmaakplugin voor text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Een opmaakplugin voor text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/nn.po b/translations/desktop_files/kmail-plugins-desktops/nn.po
new file mode 100644
index 00000000..2a6de3ac
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/nn.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Oktettstraum frå program"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Eit programtillegg for meldingstekstformatering i tekst/kalender"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Eit programtillegg for brødtekstformatering i tekst/vCard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Eit programtilllegg for text/x-diff for brødtekstformatering"
diff --git a/translations/desktop_files/kmail-plugins-desktops/pl.po b/translations/desktop_files/kmail-plugins-desktops/pl.po
new file mode 100644
index 00000000..7109b337
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/pl.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Dane binarne"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Wtyczka formatująca dla typu text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Wtyczka formatująca dla typu text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Wtyczka formatująca dla text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/pt.po b/translations/desktop_files/kmail-plugins-desktops/pt.po
new file mode 100644
index 00000000..1a1a0475
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/pt.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplicação Sequência Binária"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Um 'plugin' de formatação para text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Um 'plugin' de formatação para text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Um 'plugin' de formatação para text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/pt_BR.po b/translations/desktop_files/kmail-plugins-desktops/pt_BR.po
new file mode 100644
index 00000000..2204ed19
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/pt_BR.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplicativo Octetstream"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Um plug-in formatador de componente para o tipo text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Um plug-in formatador de componente para o tipo text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Um plug-in formatador de componente para o tipo text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/ru.po b/translations/desktop_files/kmail-plugins-desktops/ru.po
new file mode 100644
index 00000000..62b42610
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/ru.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Бинарный поток приложения"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Форматирование text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Форматирование text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Форматирование text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/sk.po b/translations/desktop_files/kmail-plugins-desktops/sk.po
new file mode 100644
index 00000000..ac336acb
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/sk.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Modul pre formátovanie tela pre text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Modul pre formátovanie tela pre text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Modul pre formátovanie tela pre text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/sl.po b/translations/desktop_files/kmail-plugins-desktops/sl.po
new file mode 100644
index 00000000..c283953e
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/sl.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Programski Octetstream"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Oblikovalni vstavek za text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Oblikovalni vstavek za text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Oblikovalni vstavek za text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/sr.po b/translations/desktop_files/kmail-plugins-desktops/sr.po
new file mode 100644
index 00000000..56c4f5b7
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/sr.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Апликација Octetstream"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Прикључак за форматитање тела за text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Прикључак за форматитање тела за text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Прикључак за форматитање тела за text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/sr@Latn.po b/translations/desktop_files/kmail-plugins-desktops/sr@Latn.po
new file mode 100644
index 00000000..069294b1
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/sr@Latn.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Aplikacija Octetstream"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Priključak za formatitanje tela za text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Priključak za formatitanje tela za text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Priključak za formatitanje tela za text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/sv.po b/translations/desktop_files/kmail-plugins-desktops/sv.po
new file mode 100644
index 00000000..c5cbdb64
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/sv.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Program-oktettström"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Ett insticksprogram för brevtextformatering av text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Ett insticksprogram för brevtextformatering av text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Ett insticksprogram för brevtextformatering av text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/ta.po b/translations/desktop_files/kmail-plugins-desktops/ta.po
new file mode 100644
index 00000000..848c64c9
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/ta.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "பயன்பாட்டு எண்மம்"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "உரை அல்லது நாள்காட்டிகான அங்க அமைப்பு சொருகி"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "உரை அல்லது விஅட்டைக்கான அங்க அமைப்பு சொருகி"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "text/x-diffக்கான ஒரு பகுதி வடிவமைப்பான் சொருகுப்பொருள்"
diff --git a/translations/desktop_files/kmail-plugins-desktops/tg.po b/translations/desktop_files/kmail-plugins-desktops/tg.po
new file mode 100644
index 00000000..3e35ceee
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/tg.po
@@ -0,0 +1,40 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Миқдори зиёди бинарии барномот"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Модули ба андозадарории text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Модули ба андозадарории text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+#, fuzzy
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Модули ба андозадарории text/vcard"
diff --git a/translations/desktop_files/kmail-plugins-desktops/tr.po b/translations/desktop_files/kmail-plugins-desktops/tr.po
new file mode 100644
index 00000000..42d96169
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/tr.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Uygulama Sekizli Akışı"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "text/calendar için bir gövde biçimleyici eklentisi"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "text/vcard için bir gövde biçimleyici eklentisi"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "text/x-diff için bir gövde biçimleyici eklentisi"
diff --git a/translations/desktop_files/kmail-plugins-desktops/uk.po b/translations/desktop_files/kmail-plugins-desktops/uk.po
new file mode 100644
index 00000000..5c2117f7
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/uk.po
@@ -0,0 +1,41 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: 2020-08-19 19:59+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kmail-plugins-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "Octetstream Додаток"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "Втулок форматування для text/calendar"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "Втулок форматування для text/vcard"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "Втулок форматування для text/x-diff"
diff --git a/translations/desktop_files/kmail-plugins-desktops/zh_CN.po b/translations/desktop_files/kmail-plugins-desktops/zh_CN.po
new file mode 100644
index 00000000..d1f83219
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/zh_CN.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr "应用程序 Octetstream"
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "text/calendar 的格式化插件"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "text/vcard 的格式化插件"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "text/x-diff 的格式化插件"
diff --git a/translations/desktop_files/kmail-plugins-desktops/zh_TW.po b/translations/desktop_files/kmail-plugins-desktops/zh_TW.po
new file mode 100644
index 00000000..50f1b738
--- /dev/null
+++ b/translations/desktop_files/kmail-plugins-desktops/zh_TW.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:40+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: bodypartformatter/text_calendar.desktop:2
+#: bodypartformatter/text_vcard.desktop:2
+#: bodypartformatter/text_xdiff.desktop:2
+msgid "Application Octetstream"
+msgstr ""
+
+#. Comment
+#: bodypartformatter/text_calendar.desktop:4
+msgid "A bodypart formatter plugin for text/calendar"
+msgstr "text/calendar 格式化外掛程式"
+
+#. Comment
+#: bodypartformatter/text_vcard.desktop:4
+msgid "A bodypart formatter plugin for text/vcard"
+msgstr "text/vCard 格式化外掛程式"
+
+#. Comment
+#: bodypartformatter/text_xdiff.desktop:4
+msgid "A bodypart formatter plugin for text/x-diff"
+msgstr "text/x-diff 格式化外掛程式"
diff --git a/translations/desktop_files/kmobile-desktops/af.po b/translations/desktop_files/kmobile-desktops/af.po
new file mode 100644
index 00000000..97e7b080
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/af.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitale Kamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Hierdie drywer ondersteun baie digitale kameras"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Selfoon of Digitale Dagboek (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Hierdie drywer ondersteun baie Nokia en ander selfone d.m.v. die gammu "
+"biblioteek"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Selfoon of Digitale Dagboek (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Hierdie drywer ondersteun baie Nokia en ander selfone d.m.v. die gnokii "
+"biblioteek"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Raamwerk Toestel"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Mobiele raamwerk toestel"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Draagbare Toestel"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Bestuur draagbare toestelle"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "'n TDE draagbare toestel bestuurder"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE draagbare toestel laevlak hardeware toestel"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Kontakte op die draagbare toestel"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalender op die draagbare toestel"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Draagbare Toestel"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notas op die draagbare toestel"
diff --git a/translations/desktop_files/kmobile-desktops/ar.po b/translations/desktop_files/kmobile-desktops/ar.po
new file mode 100644
index 00000000..74e20557
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/ar.po
@@ -0,0 +1,106 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "كاميرا رقمية"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr ""
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "الهاتف النقّال أو المنظم (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "الهاتف النقّال أو المنظم (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+#, fuzzy
+msgid "Skeleton Device"
+msgstr "الجهاز النقّال"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+#, fuzzy
+msgid "Mobile Skeleton Device"
+msgstr "الجهاز النقّال"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "الجهاز النقّال"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "تسيير الأجهزة النقّالة"
+
+#. Comment
+#: kmobile.desktop:12
+#, fuzzy
+msgid "A TDE Mobile Devices Manager"
+msgstr "الجهاز النقّال"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "المراسلون في الجهاز النقّال"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+#, fuzzy
+msgid "Calendar in Mobile Device"
+msgstr "المراسلون في الجهاز النقّال"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "الجهاز النقّال"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+#, fuzzy
+msgid "Notes in Mobile Device"
+msgstr "المراسلون في الجهاز النقّال"
diff --git a/translations/desktop_files/kmobile-desktops/be.po b/translations/desktop_files/kmobile-desktops/be.po
new file mode 100644
index 00000000..186b430b
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/be.po
@@ -0,0 +1,104 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr ""
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr ""
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Мабільны тэлефон ці арганізатар (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Мабільны тэлефон ці арганізатар (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+#, fuzzy
+msgid "Skeleton Device"
+msgstr "Мабільная прылада"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+#, fuzzy
+msgid "Mobile Skeleton Device"
+msgstr "Мабільная прылада"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Мабільная прылада"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Кіраванне мабільнымі прыладамі"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Кіраванне мабільнымі прыладамі TDE"
+
+#. Name
+#: libkmobile.desktop:5
+#, fuzzy
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Кіраванне мабільнымі прыладамі TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Кантакты ў мабільнай прыладзе"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Каляндар у мабільнай прыладзе"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Мабільная прылада"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Нататкі ў мабільнай прыладзе"
diff --git a/translations/desktop_files/kmobile-desktops/bg.po b/translations/desktop_files/kmobile-desktops/bg.po
new file mode 100644
index 00000000..da01641a
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/bg.po
@@ -0,0 +1,106 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Фотоапарат"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Драйвер за поддръжка на цифрови фотоапарати и камери"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Мобилни телефони или организатори (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Драйвер за поддръжка на мобилни телефони, предимно Нокиа, чрез библиотеката "
+"gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Мобилни телефони или организатори (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Драйвер за поддръжка на мобилни телефони, предимно Нокиа, чрез библиотеката "
+"gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Организатори"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Мобилни организатори (устройства)"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Мобилни устройства"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Мобилни устройства"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Управление на мобилни устройства"
+
+#. Name
+#: libkmobile.desktop:5
+#, fuzzy
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Управление на мобилни устройства"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Контакти в мобилни устройства"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Календар в мобилни устройства"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Мобилни устройства"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Бележки в мобилни устройства"
diff --git a/translations/desktop_files/kmobile-desktops/br.po b/translations/desktop_files/kmobile-desktops/br.po
new file mode 100644
index 00000000..fb85ed46
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/br.po
@@ -0,0 +1,106 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Kamera niverel"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr ""
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr ""
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr ""
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Patrom trobarzhell"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+#, fuzzy
+msgid "Mobile Skeleton Device"
+msgstr "Patrom trobarzhell"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Trobarzhell lem-laka"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Merañ an trobarhelloù lem-laka"
+
+#. Comment
+#: kmobile.desktop:12
+#, fuzzy
+msgid "A TDE Mobile Devices Manager"
+msgstr "Trobarzhell lem-laka"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+#, fuzzy
+msgid "Contacts in Mobile Device"
+msgstr "Merañ an trobarhelloù lem-laka"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+#, fuzzy
+msgid "Calendar in Mobile Device"
+msgstr "Merañ an trobarhelloù lem-laka"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Trobarzhell lem-laka"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+#, fuzzy
+msgid "Notes in Mobile Device"
+msgstr "Trobarzhell lem-laka"
diff --git a/translations/desktop_files/kmobile-desktops/bs.po b/translations/desktop_files/kmobile-desktops/bs.po
new file mode 100644
index 00000000..c99314e6
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/bs.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitalna kamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Ovaj drajver podržava mnoge digitalne kamere"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobilni telefon ili organizer (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Ovaj drajver podržava mnoge NOKIA i druge mobilne telefone putem gammu "
+"biblioteke"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobilni telefon ili organizer (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Ovaj drajver podržava mnoge NOKIA i druge mobilne telefone putem gnokii "
+"biblioteke"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Skeleton uređaj"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Mobilni skeleton uređaj"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobilni uređaj"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Upravljajte mobilnim uređajima"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE upravitelj mobilnim uređajima"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE hardverski drajver niskog nivoa za mobilne uređaje"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Kontakti u mobilnom uređaju"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalendar u mobilnom uređaju"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobilni uređaj"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Bilješke u mobilnom uređaju"
diff --git a/translations/desktop_files/kmobile-desktops/ca.po b/translations/desktop_files/kmobile-desktops/ca.po
new file mode 100644
index 00000000..2fa196fc
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/ca.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Càmera digital"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Aquest controlador accepta moltes càmeres digitals"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Telèfon mòbil o organitzador (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Aquest controlador accepta molts NOKIA i d'altres telèfons mòbils mitjançant "
+"la biblioteca «gammu»"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Telèfon mòbil o organitzador (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Aquest controlador accepta molts NOKIA i d'altres telèfons mòbils mitjançant "
+"la biblioteca «gnokii»"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Dispositiu Skeleton"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Dispositiu mòbil Skeleton"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Dispositiu mòbil"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Gestor per a dispositius mòbils"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Un gestor de TDE per a dispositius mòbils"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Manegador TDE de dispositius de maquinari mòbil de baix nivell"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Contactes en el dispositiu mòbil"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Calendari en el dispositiu mòbil"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Dispositiu mòbil"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notes en el dispositiu mòbil"
diff --git a/translations/desktop_files/kmobile-desktops/cs.po b/translations/desktop_files/kmobile-desktops/cs.po
new file mode 100644
index 00000000..9e260a37
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/cs.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: 2020-09-20 18:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/kmobile-desktop-files/cs/>\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: Weblate 4.2.2\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitální fotoaparát"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Tento ovladač podporuje mnoho digitálních fotoaparátů"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobilní telefon nebo Organizér (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Tento ovladač podporuje mnoho mobilních telefonů NOKIA a dalších pomocí "
+"knihovny gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobilní telefon nebo Organizér (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Tento ovladač podporuje mnoho mobilních telefonů NOKIA a dalších pomocí "
+"knihovny gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Ukázkové zařízení"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Ukázkové mobilní zařízení"
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr "KMobile"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Spravovat mobilní zařízení"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Správce mobilních zařízení TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE nízkoúrovňový ovladač mobilních zařízení"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Kontakty na mobilním zařízení"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalendář na mobilním zařízení"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobilní zařízení"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Poznámky na mobilním zařízení"
diff --git a/translations/desktop_files/kmobile-desktops/cy.po b/translations/desktop_files/kmobile-desktops/cy.po
new file mode 100644
index 00000000..264c0781
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/cy.po
@@ -0,0 +1,104 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Camera Digidol"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Cynhala'r gyrrydd yma lawer o gamerau digidol"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Ffôn Symudol neu Drefnydd (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Cynhala'r gyrrydd yma lawer o ffoniau NOKIA a ffoniau symudol eraill drwy'r "
+"rhaglengell gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Ffôn Symudol neu Drefnydd (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Cynhala'r gyrrydd yma lawer o ffoniau NOKIA a ffoniau symudol eraill drwy'r "
+"rhaglengell gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Dyfais Sgerbwd"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Dyfais Sgerbwd Symudol"
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr "KSymudol"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Rheoli Dyfeisiau Symudol"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Rheolydd Dyfeisiau Symudol TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Gyrrydd Caledwedd Lefel Isel TDE ar gyfer Dyfeisiau Symudol"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Cysylltau yn y Dyfais Symudol"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Calendr yn y Dyfais Symudol"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Dyfais Symudol"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Nodiadau yn y Dyfais Symudol"
diff --git a/translations/desktop_files/kmobile-desktops/da.po b/translations/desktop_files/kmobile-desktops/da.po
new file mode 100644
index 00000000..e6b850c9
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/da.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitalt kamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Denne driver understøtter mange digitale kameraer"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobiltelefon eller organisator (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Denne driver understøtter mange NOKIA og andre mobiltelefoner via gammu-"
+"biblioteket"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobiltelefon eller organisator (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Denne driver understøtter mange NOKIA og andre mobiltelefoner via gnokii-"
+"biblioteket"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Skeleton-enhed"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Mobil skeleton-enhed"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobil-enhed"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Håndtér mobil-enheder"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "En TDE-håndtering af mobil-enheder"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE Mobil-enhed Lavt niveau hardware-driver"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Kontakter i mobil-enhed"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalender i mobil-enhed"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobil-enhed"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Noter i mobil-enhed"
diff --git a/translations/desktop_files/kmobile-desktops/de.po b/translations/desktop_files/kmobile-desktops/de.po
new file mode 100644
index 00000000..bc497b0c
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/de.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitalkamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Ein Treiber, der zahlreiche Digitalkameras unterstützt"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobiltelefon oder Organizer (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Ein Treiber, der zahlreiche NOKIA- und sonstige Mobiltelefone über die gammu-"
+"Bibliothek unterstützt"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobiltelefon oder Organizer (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Ein Treiber, der zahlreiche NOKIA- und sonstige Mobiltelefone über die "
+"gnokii-Bibliothek unterstützt"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Skeleton-Gerät"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Mobiles Skeleton-Gerät"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobilgerät"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Mobiltelefone verwalten"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Verwaltung für mobile Geräte"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Lowlevel-Treiber für mobile Geräte"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Kontakte im Mobilgerät"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalender für Mobiltelefon"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobilgerät"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notizen im Mobilgerät"
diff --git a/translations/desktop_files/kmobile-desktops/el.po b/translations/desktop_files/kmobile-desktops/el.po
new file mode 100644
index 00000000..8f71af30
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/el.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Ψηφιακή κάμερα"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Αυτός ο οδηγός υποστηρίζει πολλές ψηφιακές κάμερες"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Κινητό τηλέφωνο ή Organizer (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Αυτός ο οδηγός υποστηρίζει πολλά NOKIA και άλλα κινητά τηλέφωνα μέσω της "
+"βιβλιοθήκης gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Κινητό τηλέφωνο ή Organizer (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Αυτός ο οδηγός υποστηρίζει πολλά NOKIA και άλλα κινητά τηλέφωνα μέσω της "
+"βιβλιοθήκης gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Συσκευή Skeleton"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Φορητή συσκευή Skeleton"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Φορητή συσκευή"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Διαχείριση φορητών συσκευών"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Ένας διαχειριστής φορητών συσκευών του TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Οδηγός χαμηλού επιπέδου φορητής συσκευής του TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Επαφές στη φορητή συσκευή"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Ημερολόγιο στη φορητή συσκευή"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Φορητή συσκευή"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Σημειώσεις στη φορητή συσκευή"
diff --git a/translations/desktop_files/kmobile-desktops/en_GB.po b/translations/desktop_files/kmobile-desktops/en_GB.po
new file mode 100644
index 00000000..065ab9c4
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/en_GB.po
@@ -0,0 +1,100 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: en_GB\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr ""
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr ""
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobile Phone or Organiser (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobile Phone or Organiser (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr ""
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr ""
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr ""
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr ""
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr ""
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr ""
diff --git a/translations/desktop_files/kmobile-desktops/eo.po b/translations/desktop_files/kmobile-desktops/eo.po
new file mode 100644
index 00000000..1e446996
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/eo.po
@@ -0,0 +1,104 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Cifereca fotilo"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr ""
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr ""
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr ""
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Skelet-aparato"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Mobila skelet-aparato"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobila aparato"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Administri mobilajn aparatojn"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE-mobilaparat-administrilo"
+
+#. Name
+#: libkmobile.desktop:5
+#, fuzzy
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE-mobilaparat-administrilo"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+#, fuzzy
+msgid "Contacts in Mobile Device"
+msgstr "Kalendaro en mobila aparato"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalendaro en mobila aparato"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobila aparato"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+#, fuzzy
+msgid "Notes in Mobile Device"
+msgstr "Kalendaro en mobila aparato"
diff --git a/translations/desktop_files/kmobile-desktops/es.po b/translations/desktop_files/kmobile-desktops/es.po
new file mode 100644
index 00000000..7ec413ca
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/es.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Cámara digital"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Este manejador admite muchas cámaras digitales"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Teléfono móvil u organizador (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Este manejador admite muchos teléfonos móviles NOKIA y de otras marcas vía "
+"la biblioteca gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Teléfono móvil u organizador (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Este manejador admite muchos teléfonos móviles NOKIA y de otras marcas vía "
+"la biblioteca gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Dispositivo Skeleton"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Dispositivo móvil Skeleton"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Dispositivo móvil"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Gestiona dispositivos móviles"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "A gestor de dispositivos móviles para TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Manejador de dispositivos hardware móviles de bajo nivel para TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Contactos del dispositivo móvil"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Calendario del dispositivo móvil"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Dispositivo móvil"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notas del dispositivo móvil"
diff --git a/translations/desktop_files/kmobile-desktops/et.po b/translations/desktop_files/kmobile-desktops/et.po
new file mode 100644
index 00000000..fd75bb38
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/et.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitaalkaamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "See draiver toetab paljusid digitaalkaameraid"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobiiltelefon või Organizer (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"See draiver toetab gammu teegi vahendusel paljusid Nokia ja teisi "
+"mobiiltelefone"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobiiltelefon või Organizer (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"See draiver toetab gnokii teegi vahendusel paljusid Nokia ja teisi "
+"mobiiltelefone"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Mallseade"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Mobiili mallseade"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobiil"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Mobiilihaldur"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE mobiilihaldur"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE mobiilide riistvara süvataseme draiver"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Mobiili kontaktid"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Mobiili kalender"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobiil"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Mobiili märkmed (Notes)"
diff --git a/translations/desktop_files/kmobile-desktops/eu.po b/translations/desktop_files/kmobile-desktops/eu.po
new file mode 100644
index 00000000..5c49b7ff
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/eu.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Kamera digitala"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Kontrolatzaile honek kamera digital asko onartzen ditu"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mugikorra edo antolatzailea (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Kontrolatzaile honek NOKIA eta beste mugikor asko onartzen ditu gammu "
+"liburutegiaren bidez"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mugikorra edo antolatzailea (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Kontrolatzaile honek NOKIA eta beste mugikor asko onartzen ditu gnokii "
+"liburutegiaren bidez"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Skeleton dispositiboa"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Skeleton dispositibo mugikorra"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Dispositibo mugikorra"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Dispositibo mugikorrak kudeatu"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE-ren dispositibo mugikorren kudeatzailea"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE-ren dispositibo mugikorren behe-mailako hardware kontrolatzailea"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Kontaktuak dispositibo mugikorrean"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Egutegia dispositibo mugikorrean"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Dispositibo mugikorra"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Oharrak dispositibo mugikorrean"
diff --git a/translations/desktop_files/kmobile-desktops/fa.po b/translations/desktop_files/kmobile-desktops/fa.po
new file mode 100644
index 00000000..2c41f743
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/fa.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "دوربین رقمی"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "این گرداننده اغلب دوربینهای رقمی را پشتیبانی می‌کند"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "تلفن همراه یا سازمان‌دهنده (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"این گرداننده، اغلب تلفنهای همراه نوکیا و غیره را از طریق کتابخانۀ gammu "
+"پشتیبانی می‌کند"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "تلفن همراه یا سازمان‌دهنده (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"این گرداننده، اغلب تلفنهای همراه نوکیا و غیره را از طریق کتابخانۀ gnokii "
+"پشتیبانی می‌کند"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "دستگاه Skeleton"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "دستگاه Skeleton تلفن همراه"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "دستگاه تلفن همراه"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "مدیریت دستگاههای تلفن همراه"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "مدیر دستگاههای تلفن همراه TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "گردانندۀ سخت‌افزاری سطح پایین دستگاه تلفن همراه TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "تماسها در دستگاه تلفن همراه"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "تقویم در دستگاه تلفن همراه"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "دستگاه تلفن همراه"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "یادداشتها در دستگاه تلفن همراه"
diff --git a/translations/desktop_files/kmobile-desktops/fi.po b/translations/desktop_files/kmobile-desktops/fi.po
new file mode 100644
index 00000000..7934b006
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/fi.po
@@ -0,0 +1,103 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "digitaalikamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Tämä ajuri tukee useita digitaalikameroita"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Matkapuhelin tai organisaattori (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Tämä ajuri tukee monia Nokian ja muita matkapuhelimia gammu-kirjaston kautta"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Matkapuhelin tai organisoija (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Tämä ajuri tukee monia Nokian ja muita matkapuhelimia gnokii-kirjaston kautta"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Luurankolaite"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Matkapuhelimen luurankolaite"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobiililaite"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Hallitse matkapuhelinlaitteita"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE:n matkapuhelinlaitteiden hallinta"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE:n matkapuhelimen matalan tason laiteajuri"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Mobiililaitteen yhteystiedot"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Mobiililaitteen kalenteri"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobiililaite"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Mobiililaitteen muistio"
diff --git a/translations/desktop_files/kmobile-desktops/fr.po b/translations/desktop_files/kmobile-desktops/fr.po
new file mode 100644
index 00000000..5d676248
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/fr.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Appareil photo numérique"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Ce pilote prend en charge beaucoup d'appareils photo numériques"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Téléphone portable ou organiseur (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Ce pilote prend en charge beaucoup de téléphones portables Nokia et autres à "
+"l'aide de la bibliothèque gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Téléphone portable ou organiseur (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Ce pilote prend en charge beaucoup de téléphones portables Nokia et autres à "
+"l'aide de la bibliothèque gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Périphérique modèle"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Modèle de périphérique mobile"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Périphérique mobile"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Gérer les périphériques mobiles"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Un gestionnaire de périphériques mobiles pour TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Pilote matériel de bas niveau des périphériques mobiles pour TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Contacts dans le périphérique mobile"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Calendrier dans un périphérique mobile"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Périphérique mobile"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notes dans un périphérique mobile"
diff --git a/translations/desktop_files/kmobile-desktops/fy.po b/translations/desktop_files/kmobile-desktops/fy.po
new file mode 100644
index 00000000..1c2505a5
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/fy.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitale kamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Dit stjoerprogramma jout stipe foar in soad kamera's"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobile tillefoan of Organizer (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Dit stjoerprogramma jout stipe foar in soad Nokia- en oare mobile tillefoans "
+"fia de gammu-bibliotheek"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobile tillefoan of Organizer (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Dit stjoerprogramma jout stipe foar in soad Nokia- en oare mobile tilefoans "
+"fia de gnokii-bibliotheek"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Foarbyldapparaat"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Mobyl foarbyldapparaat"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobyl apparaat"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Mobile apparaten beheare"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Behear fan mobile apparaten yn TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Hardware-stjoerprogramma foar mobile apparaten"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Kontaktpersoanen yn mobyl apparaat"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Aginda yn mobyl apparaat"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobyl apparaat"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notysjes yn mobyl apparaat"
diff --git a/translations/desktop_files/kmobile-desktops/ga.po b/translations/desktop_files/kmobile-desktops/ga.po
new file mode 100644
index 00000000..ea3fea6b
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/ga.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Ceamara Digiteach"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Tacaíonn an tiománaí seo le neart ceamaraí digiteacha"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Fón Póca nó Eagraí (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Tacaíonn an tiománaí seo le neart fóin NOKIA agus cinn eile, tríd an "
+"leabharlann gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Fón Póca nó Eagraí (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Tacaíonn an tiománaí seo le neart fóin NOKIA agus cinn eile, tríd an "
+"leabharlann gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Creatghléas"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Creatghléas Móibíleach"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Gléas Móibíleach"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Bainistigh Gléasanna Móibíleacha"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Bainisteoir Gléasanna Móibíleacha TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Tiománaí crua-earraí íseal-leibhéil do ghléasanna móibíleacha TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Teagmhálacha i nGléas Móibíleach"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Féilire i nGléas Móibíleach"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Gléas Móibíleach"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Nótaí i nGléas Móibíleach"
diff --git a/translations/desktop_files/kmobile-desktops/gl.po b/translations/desktop_files/kmobile-desktops/gl.po
new file mode 100644
index 00000000..32ea5693
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/gl.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Cámara dixital"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Este controlador atura moitas cámaras dixitais"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Teléfono móbil ou organizador (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Este controlador soporta moitos móbiles Nokia e outros mediante a libraría "
+"gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Teléfono móbil ou organizador (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Este controlador soporta moitos móbiles Nokia e outros mediante a libraría "
+"gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Dispositivo Skeleton"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Dispositivo de Esqueleto Móbil"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Dispositivo Móbil"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Xestionar Dispositivos Móbiles"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "O Xestor de Móbiles de TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Controlador de Hardware de Baixo Nivel dun Dispositivo Móbil de TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Contactos no dispositivo móbil"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Calendario no Dispositivo Móbil"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Dispositivo Móbil"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notas no Dispositivo Móbil"
diff --git a/translations/desktop_files/kmobile-desktops/he.po b/translations/desktop_files/kmobile-desktops/he.po
new file mode 100644
index 00000000..d65d6cc5
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/he.po
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr ""
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr ""
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "טלפון נייד או אירגונית (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "טלפון נייד או אירגונית (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "התקן דמה"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "התקן נייד דמה"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "התקן נייד"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "ניהול של התקנים ניידים"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "מנהל התקנים ניידים עבור TDE"
+
+#. Name
+#: libkmobile.desktop:5
+#, fuzzy
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "מנהל התקנים ניידים עבור TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "אנשי קשר בהתקן הנייד"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "לוח שנה בהתקן הנייד"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "התקן נייד"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "פתקים בהתקן הנייד"
diff --git a/translations/desktop_files/kmobile-desktops/hi.po b/translations/desktop_files/kmobile-desktops/hi.po
new file mode 100644
index 00000000..9fb8405b
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/hi.po
@@ -0,0 +1,104 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "डिजिटल कैमरा"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "यह ड्राइवर बहुत से डिजिटल कैमरे समर्थित करता है"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "मोबाइल फोन या आर्गेनाइज़र (गम्मू)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"यह ड्राइवर बहुत से नोकिया तथा अन्य मोबाइल फोनों को गम्मू लाइब्रेरी के द्वारा समर्थित "
+"करता है"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "मोबाइल फोन या आर्गेनाइज़र (ग्नोकी)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"यह ड्राइवर बहुत से नोकिया तथा अन्य मोबाइल फोनों को ग्नोकी लाइब्रेरी के द्वारा समर्थित "
+"करता है"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "स्केलेटन उपकरण"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "मोबाइल स्केलेटन उपकरण"
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr "के-मोबाइल"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "मोबाइल उपकरण प्रबंधन करें"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "एक केडीई मोबाइल उपकरण प्रबंधक"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "केडीई मोबाइल उपकरण लो-लेवल हार्डवेयर ड्राइवर"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "मोबाइल उपकरण में सम्पर्क"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "मोबाइल उपकरण में कैलेन्डर"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "मोबाइल उपकरण"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "मोबाइल उपकरण में टीप"
diff --git a/translations/desktop_files/kmobile-desktops/hr.po b/translations/desktop_files/kmobile-desktops/hr.po
new file mode 100644
index 00000000..86f68761
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/hr.po
@@ -0,0 +1,100 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitalna kamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr ""
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr ""
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr ""
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr ""
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr ""
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr ""
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr ""
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr ""
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr ""
diff --git a/translations/desktop_files/kmobile-desktops/hu.po b/translations/desktop_files/kmobile-desktops/hu.po
new file mode 100644
index 00000000..2b8f6b05
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/hu.po
@@ -0,0 +1,106 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Fényképezőgép"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr ""
+"Ez a meghajtó különféle digitális fényképezőgépek kezelését teszi lehetővé"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobiltelefon/határidőnapló-kezelő (Gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Ez a meghajtó mobiltelefonok (elsősorban Nokia gyártmányúak) kezelését teszi "
+"lehetővé a Gammu programkönyvtáron keresztül"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobiltelefon/határidőnapló-kezelő (Gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Ez a meghajtó mobiltelefonok (elsősorban Nokia gyártmányúak) kezelését teszi "
+"lehetővé a Gnokii programkönyvtáron keresztül"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Skeleton eszköz"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Hordozható skeleton eszköz"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobil eszköz"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Mobilkezelő"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE-alapú mobiltelefon-kezelő"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Alacsony szintű TDE-s eszközmeghajtó mobiltelefonok kezeléséhez"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Címbejegyzések a mobiltelefonon"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Naptár a mobiltelefonon"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobil eszköz"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Feljegyzések a mobiltelefonon"
diff --git a/translations/desktop_files/kmobile-desktops/is.po b/translations/desktop_files/kmobile-desktops/is.po
new file mode 100644
index 00000000..f6d61843
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/is.po
@@ -0,0 +1,104 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Stafræn myndavél"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Þessi rekill styður margar stafrænar myndavélar"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Farsími eða lófatölva (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Þessi rekill styður marga NOKIA og aðra farsíma gegnum gammu aðgerðasafnið"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Farsími eða lófatölva (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Þessi rekill styður marga farsíma frá NOKIA og fleiri gegnum gnokii "
+"aðgerðasafnið"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Grunntæki"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Grunn farsími eða lófatölva"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Farsími eða lófatölva"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Sýsla með lófatölvur og farsíma"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE stjórnforrit fyrir lófatölvur og farsíma"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Hrár TDE vélbúnaðarrekill fyrir farsíma og lófatölvur"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Tengiliðir í farsíma eða lófatölvu"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Dagatal í farsíma eða lófatölvu"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Farsími eða lófatölva"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Áminningar í farsíma eða lófatölvu"
diff --git a/translations/desktop_files/kmobile-desktops/it.po b/translations/desktop_files/kmobile-desktops/it.po
new file mode 100644
index 00000000..141ea8b1
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/it.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: 2023-01-20 02:22+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kmobile-desktop-files/it/>\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: Weblate 4.14.2\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Macchina fotografica digitale"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Questo driver supporta molte fotocamere digitali"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Organizer o telefono cellulare (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Questo driver supporta molti NOKIA e altri telefoni cellulari tramite la "
+"libreria gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Telefono cellulare o organizer (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Questo driver supporta molti NOKIA e altri telefoni cellulari tramite la "
+"libreria gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Dispositivo skeleton"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Dispositivo portatile skeleton"
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr "KMobile"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Gestisce dispositivi portatili"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Un gestore di dispositivi portatili di TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE driver hardware di basso livello per dispositivi portatili"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Contatti nel dispositivo portatile"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Calendari nel dispositivo portatile"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Dispositivo portatile"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Note nel dispositivo portatile"
diff --git a/translations/desktop_files/kmobile-desktops/ja.po b/translations/desktop_files/kmobile-desktops/ja.po
new file mode 100644
index 00000000..9a098379
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/ja.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "デジタルカメラ"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "このドライバは多種のデジタルカメラをサポートします"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "携帯電話またはスケジュール管理 (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"このドライバは gammu ライブラリを介して NOKIA および他社製の携帯電話を幅広く"
+"サポートします"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "携帯電話またはスケジュール管理 (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"このドライバは gnokii ライブラリを介して NOKIA および他社製の携帯電話を幅広く"
+"サポートします"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "スケルトンデバイス"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "モバイルスケルトンデバイス"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "モバイル機器"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "モバイル機器の管理"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE モバイル機器マネージャ"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE モバイル機器低レベルハードウェアドライバ"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "モバイル機器内の連絡先"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "モバイル機器内のカレンダー"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "モバイル機器"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "モバイル機器内のメモ"
diff --git a/translations/desktop_files/kmobile-desktops/kk.po b/translations/desktop_files/kmobile-desktops/kk.po
new file mode 100644
index 00000000..7c5cddfe
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/kk.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Цифрлық камера"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Бұл бірспыра цифрлық камераларды қамтитын драйвер"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Қалта телефон не Ұйымдастырғыш (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Бұл көп NOKIA мен басқа қалта құрылғыларды, gammu жиыны арқылы, қамтитын "
+"драйвер"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Қалта телефон не Ұйымдастырғыш (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Бұл көп NOKIA мен басқа қалта құрылғыларды, gnokii жиыны арқылы, қамтитын "
+"драйвер"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Қаңқалы құрылғы"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Қалта қаңқалы құрылғы"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Қалта құрылғысы"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Қалта құрылғыларды басқару"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE-нің қалта құрылғылар менеджері"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE-нің қалта құрылғы жабдықтың төмен деңгейлі драйвері"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Қалта құрылғыдағы контакттар"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Қалта құрылғыдағы күнтізбе"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Қалта құрылғысы"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Қалта құрылғыдағы жазбалар"
diff --git a/translations/desktop_files/kmobile-desktops/km.po b/translations/desktop_files/kmobile-desktops/km.po
new file mode 100644
index 00000000..b4b7a692
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/km.po
@@ -0,0 +1,101 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "ម៉ាស៊ីន​ថត​រូប​ឌីជីថល"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "កម្មវិធី​បញ្ជា​នេះ​គាំទ្រ​ម៉ាស៊ីន​ថត​រូប​ឌីជីថល​ជាច្រើន"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "កម្មវិធី​រៀបចំ​ទូរស័ព្ទ​ចល័ត (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr "កម្មវិធី​បញ្ជា​នេះ​គាំទ្រ​ប្រភេទ​ទូរស័ព្ទ​ណូគៀ និងទូរស័ព្ទ​ផ្សេងៗ​ទៀត​ជាច្រើន​តាម​រយៈ​បណ្ណាល័យ gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "កម្មវិធី​រៀបចំ​ទូរស័ព្ទ​ចល័ត (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr "កម្មវិធី​បញ្ជា​នេះ​គាំទ្រ​ប្រភេទ​ទូរស័ព្ទ​ណូគៀ និង​ទូរស័ព្ទ​ផ្សេងៗ​ទៀត​ជាច្រើន​តាម​រយៈ​បណ្ណាល័យ gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "ឧបករណ៍​គ្រោង"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "ឧបករណ៍​គ្រោង​ចល័ត"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "ឧបករណ៍​ចល័ត"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "គ្រប់គ្រង​ឧបករណ៍​ចល័ត"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "កម្មវិធី​គ្រប់គ្រង​ឧបករណ៍​ចល័ត TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "កម្មវិធី​បញ្ជា​ផ្នែករឹង​កម្រិត​ទាប​របស់​ឧបករណ៍​ចល័ត TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "ទំនាក់​ទំនង​ក្នុង​ឧបករណ៍​ចល័ត"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "ប្រតិទិន​ក្នុង​ឧបករណ៍​ចល័ត"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "ឧបករណ៍​ចល័ត"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "ចំណាំ​ក្នុង​ឧបករណ៍​ចល័ត"
diff --git a/translations/desktop_files/kmobile-desktops/kmobile-desktops.pot b/translations/desktop_files/kmobile-desktops/kmobile-desktops.pot
new file mode 100644
index 00000000..082a23bb
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/kmobile-desktops.pot
@@ -0,0 +1,100 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr ""
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr ""
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr ""
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr ""
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr ""
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr ""
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr ""
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr ""
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr ""
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr ""
diff --git a/translations/desktop_files/kmobile-desktops/lt.po b/translations/desktop_files/kmobile-desktops/lt.po
new file mode 100644
index 00000000..a4a23a1f
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/lt.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Skaitmeninė kamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Ši tvarkyklė palaiko daugelį skaitmeninių kamerų"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobilus telefonas ar asmeninės info tvarkyklė (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Ši tvarkyklė palaiko daugelį NOKIA ir kitų telefonų pasinaudodama gammu "
+"biblioteka"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobilus telefonas ar asmeninės info tvarkyklė (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Ši tvarkyklė palaiko daugelį NOKIA ir kitų telefonų pasinaudodama gnokii "
+"biblioteka"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Įrenginio skeletas"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Mobilaus įrenginio skeletas"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobilusis įrenginys"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Mobiliųjų įrenginių tvarkymas"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE mobiliųjų įrenginių tvarkyklė"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE mobiliųjų įrenginių žemo lygmens aparatinės įrangos tvarkyklė"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Kontaktai mobiliajame įrenginyje"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalendorius mobiliajame įrenginyje"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobilusis įrenginys"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Užrašai mobiliajame įrenginyje"
diff --git a/translations/desktop_files/kmobile-desktops/mk.po b/translations/desktop_files/kmobile-desktops/mk.po
new file mode 100644
index 00000000..ebe537ed
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/mk.po
@@ -0,0 +1,104 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Дигитална камера"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Овој управувач поддржува многу дигитални камери"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr ""
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr ""
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+#, fuzzy
+msgid "Skeleton Device"
+msgstr "Мобилен уред"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+#, fuzzy
+msgid "Mobile Skeleton Device"
+msgstr "Мобилен уред"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Мобилен уред"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Менаџирање мобилни уреди"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Менаџер на мобилни уреди во TDE"
+
+#. Name
+#: libkmobile.desktop:5
+#, fuzzy
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Менаџер на мобилни уреди во TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Контакти од мобилен уред"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Календар од мобилен уред"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Мобилен уред"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Белешки од мобилен уред"
diff --git a/translations/desktop_files/kmobile-desktops/ms.po b/translations/desktop_files/kmobile-desktops/ms.po
new file mode 100644
index 00000000..3fc4c5a6
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/ms.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Kamera Digital "
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Pemacu ini menyokong banyak kamera digital "
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Telefon Bimbit atau Penyusun (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Pemacu ini menyokong banyak NOKIA dan telefon bimbit lain melalui pustaka "
+"gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Telefon Bimbit atau Penyusun (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Pemacu ini menyokong banyak NOKIA dan telefon bimbit lain melalui pustaka "
+"gnokii "
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Peranti Rangka"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Peranti Rangka Mudah Alih"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Peranti Mudah Alih"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Menguruskan Peranti Mudah Alih"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Pengurus Peranti Mudah Alih TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Pemacu Perkakasan Tahap Rendah Peranti Mudah Alih TDE "
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Orang hubungan di dalam Peranti Mudah Alih"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalendar dalam Peranti Mudah Alih"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Peranti Mudah Alih"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Nota dalam Peranti Mudah Alih"
diff --git a/translations/desktop_files/kmobile-desktops/nb.po b/translations/desktop_files/kmobile-desktops/nb.po
new file mode 100644
index 00000000..d3ca190a
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/nb.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitalkamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Denne driveren støtter mange digitalkameraer"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobiltelefon eller PDA (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Denne driveren støtter mange NOKIA og andre mobiltelefoner via gammu-"
+"biblioteket"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobiltelefon eller PDA (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Denne driveren støtter mange NOKIA og andre mobiltelefoner via gnokii-"
+"biblioteket"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Ramme-enhet"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Mobil ramme-enhet"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobil enhet"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Håndtere mobile enheter"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "En TDE-håndterer for mobile enheter"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE lavnivå maskinvaredriver for mobile enheter"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Kontaktliste i mobil enhet"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalender i mobil enhet"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobil enhet"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notater i mobil enhet"
diff --git a/translations/desktop_files/kmobile-desktops/nds.po b/translations/desktop_files/kmobile-desktops/nds.po
new file mode 100644
index 00000000..12f54956
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/nds.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitaalkamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Ein Driever, de vele Digitaalkameras ünnerstütt"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobiltelefoon oder Handreekner (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Disse Driever ünnerstütt vele Nokia- un anner Mobiltelefonen över de gammu-"
+"Bibliotheek"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobiltelefoon oder Handreekner (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Disse Driever ünnerstütt vele Nokia- un anner Mobiltelefonen över de gnokii-"
+"Bibliotheek"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Skeleton-Reedschap"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Mobil Skeleton-Reedschap"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobilreedschap"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Mobilreedschappen plegen"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "En Pleger för Mobilreedschappen"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Sietstoop-Driever för Mobilreedschappen"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Kontakten op de Mobilreedschap"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalenner op Mobilreedschap"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobilreedschap"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notizen op Mobilreedschap"
diff --git a/translations/desktop_files/kmobile-desktops/ne.po b/translations/desktop_files/kmobile-desktops/ne.po
new file mode 100644
index 00000000..3336f624
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/ne.po
@@ -0,0 +1,100 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "डिजिटल क्यामेरा"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "यो ड्राइभरले धेरै डिजिटल क्यामेरा समर्थन गर्छ"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "मोबाइल फोन वा आयोजक (गामु)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr "यो ड्राइभरले गामु लाइब्रेरीबाट धेरै नोकिया र अन्य मोबाइल फोन समर्थन गर्छ"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "मोबाइल फोन वा आयोजक (जिनोकी)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr "यो ड्राइभरले जिनोकी लाइब्रेरीबाट धेरै नोकिया र अन्य मोबाइल फोन समर्थन गर्छ"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "ढाँचा यन्त्र"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "मोबाइल ढाँचा यन्त्र"
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr "केडीई मोबाइल"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "मोबाइल यन्त्र व्यवस्थापन गर्नुहोस्"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "केडीई मोबाइल यन्त्र प्रबन्धक"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "केडीई मोबाइल यन्त्रको न्यूनस्तर हार्डवेयर ड्राइभर"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "मोबाइल यन्त्रमा सम्पर्क गर्छ"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "मोबाइल यन्त्रको क्यालेन्डर"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "मोबाइल यन्त्र"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "मोबाइल यन्त्र भित्रका टिपोट"
diff --git a/translations/desktop_files/kmobile-desktops/nl.po b/translations/desktop_files/kmobile-desktops/nl.po
new file mode 100644
index 00000000..912b9a5e
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/nl.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitale camera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Dit stuurprogramma biedt ondersteuning voor veel camera's"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobiele telefoon of Organizer (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Dit stuurprogramma biedt ondersteuning voor veel Nokia- en andere mobiele "
+"telefoons via de gammu-bibliotheek"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobiele telefoon of Organizer (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Dit stuurprogramma biedt ondersteuning voor veel Nokia- en andere mobiele "
+"telefoons via de gnokii-bibliotheek"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Voorbeeldapparaat"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Mobiel voorbeeldapparaat"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobiel apparaat"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Mobiele apparaten beheren"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Beheer van mobiele apparaten in TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Hardware-stuurprogramma voor mobiele apparaten"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Contactpersonen in mobiel apparaat"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Agenda in mobiel apparaat"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobiel apparaat"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notities in mobiel apparaat"
diff --git a/translations/desktop_files/kmobile-desktops/nn.po b/translations/desktop_files/kmobile-desktops/nn.po
new file mode 100644
index 00000000..423c29a1
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/nn.po
@@ -0,0 +1,104 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitalt kamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Denne drivaren støttar mange digitale kamera"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobiltelefon eller organisator (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Denne drivaren støttar mange NOKIA og andre mobiltelefonar via gammu-"
+"biblioteket"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobiltelefon eller organisator (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Denne drivaren støttar mange NOKIA og andre mobiltelefonar via gnokii-"
+"biblioteket"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Skjeletteining"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Mobil skjeletteining"
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr "KMobil"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Handtera mobileiningar"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Ein einingshandterar for mobiltelefon i TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Lågnivå maskinvaredrivar for mobileiningar i TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Kontaktar i mobileiningar"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalender i mobileiningar"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobileining"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notat i mobileiningar"
diff --git a/translations/desktop_files/kmobile-desktops/pa.po b/translations/desktop_files/kmobile-desktops/pa.po
new file mode 100644
index 00000000..c496d909
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/pa.po
@@ -0,0 +1,108 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "ਡਿਜ਼ੀਟਲ ਕੈਮਰਾ"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr ""
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr ""
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr ""
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+#, fuzzy
+msgid "Skeleton Device"
+msgstr "ਮੋਬਾਇਲ ਜੰਤਰ"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+#, fuzzy
+msgid "Mobile Skeleton Device"
+msgstr "ਮੋਬਾਇਲ ਜੰਤਰ"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "ਮੋਬਾਇਲ ਜੰਤਰ"
+
+#. GenericName
+#: kmobile.desktop:10
+#, fuzzy
+msgid "Manage Mobile Devices"
+msgstr "ਮੋਬਾਇਲ ਜੰਤਰ"
+
+#. Comment
+#: kmobile.desktop:12
+#, fuzzy
+msgid "A TDE Mobile Devices Manager"
+msgstr "ਮੋਬਾਇਲ ਜੰਤਰ"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+#, fuzzy
+msgid "Contacts in Mobile Device"
+msgstr "ਮੋਬਾਇਲ ਜੰਤਰ"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+#, fuzzy
+msgid "Calendar in Mobile Device"
+msgstr "ਮੋਬਾਇਲ ਜੰਤਰ"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "ਮੋਬਾਇਲ ਜੰਤਰ"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+#, fuzzy
+msgid "Notes in Mobile Device"
+msgstr "ਮੋਬਾਇਲ ਜੰਤਰ"
diff --git a/translations/desktop_files/kmobile-desktops/pl.po b/translations/desktop_files/kmobile-desktops/pl.po
new file mode 100644
index 00000000..09e616c5
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/pl.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Aparat cyfrowy"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Ten sterownik obsługuje wiele aparatów cyfrowych"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Telefon komórkowy lub organizer (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Ten sterownik obsługuje wiele telefonów komórkowychNokia i innych za pomocą "
+"biblioteki gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Telefon komórkowy lub organizer (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Ten sterownik obsługuje wiele telefonów komórkowychNokia i innych za pomocą "
+"biblioteki gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Urządzenie szkieletowe"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Szkieletowe urządzenie przenośne"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Urządzenie przenośne"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Zarządzanie urządzeniami przenośnymi"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Program obsługujący urządzenia przenośne dla TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Niskopoziomowy sterownik sprzętu urządzenia przenośnego dla TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Wizytówki w urządzeniu przenośnym"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalendarz w urządzeniu przenośnym"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Urządzenie przenośne"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notatki w urządzeniu przenośnym"
diff --git a/translations/desktop_files/kmobile-desktops/pt.po b/translations/desktop_files/kmobile-desktops/pt.po
new file mode 100644
index 00000000..b84c48e2
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/pt.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Máquina Fotográfica Digital"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Este controlador suporta várias máquinas fotográficas digitais"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Organizador ou Telemóvel (Gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Este controlador suportar muitos NOKIAs, bem como outros telemóveis, com a "
+"biblioteca 'gammu'"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Organizador ou Telemóvel (Gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Este controlador suportar muitos NOKIAs, bem como outros telemóveis, com a "
+"biblioteca 'gnokii'"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Dispositivo de Esqueleto"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Um Dispositivo Móvel de Esqueleto"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Dispositivo Móvel"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Gestão dos Dispositivos Móveis"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Um Gestor de Dispositivos Móveis do TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Controlador de Baixo-Nível de Dispositivos Móveis do TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Contactos no Dispositivo Móvel"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Calendário no Dispositivo Móvel"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Dispositivo Móvel"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notas no Dispositivo Móvel"
diff --git a/translations/desktop_files/kmobile-desktops/pt_BR.po b/translations/desktop_files/kmobile-desktops/pt_BR.po
new file mode 100644
index 00000000..ed7bfeea
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/pt_BR.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Câmera Digital"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Este driver suporta muitas câmeras digitais"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Telefone Móvel ou Organizador (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Este driver suporta muitos telefones móveis, NOKIA e outros, via biblioteca "
+"gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Telefone Móvel ou Organizador (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Este driver suporta muitos telefones móveis, NOKIA e outros, via biblioteca "
+"gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Dispositivo Skeleton"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Dispositivo Skeleton Móvel"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Dispositivo Móvel"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Gerenciar Dispositivos Móveis"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Um Gerenciador de Dispositivos Móveis para o TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Driver de Hardware de Baixo Nível de Dispositivos Móveis do TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Contatos em Dispositivo Móvel"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Calendário em Dispositivo Móvel"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Dispositivo Móvel"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notas em Dispositivo Móvel"
diff --git a/translations/desktop_files/kmobile-desktops/ro.po b/translations/desktop_files/kmobile-desktops/ro.po
new file mode 100644
index 00000000..dbe6cf84
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/ro.po
@@ -0,0 +1,104 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Aparat foto digital"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Acest driver suportă multe camere foto digitale"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr ""
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr ""
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Dispozitiv schelet"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+#, fuzzy
+msgid "Mobile Skeleton Device"
+msgstr "Dispozitiv schelet"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Dispozitiv mobil"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Manager dispozitive mobile"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Un manager TDE pentru dispozitive mobile"
+
+#. Name
+#: libkmobile.desktop:5
+#, fuzzy
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Un manager TDE pentru dispozitive mobile"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Contacte în dispozitiv mobil"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Calendar în dispozitiv mobil"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Dispozitiv mobil"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+#, fuzzy
+msgid "Notes in Mobile Device"
+msgstr "Contacte în dispozitiv mobil"
diff --git a/translations/desktop_files/kmobile-desktops/ru.po b/translations/desktop_files/kmobile-desktops/ru.po
new file mode 100644
index 00000000..1ce98d39
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/ru.po
@@ -0,0 +1,106 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: 2024-04-12 16:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kmobile-desktop-files/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Цифровая камера"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Этот драйвер поддерживает множество моделей цифровых камер"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Мобильный телефон или органайзер (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Этот драйвер поддерживает множество моделей мобильных телефонов Nokia и "
+"других производителей через библиотеку gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Мобильный телефон или органайзер (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Этот драйвер поддерживает множество моделей мобильных телефонов Nokia и "
+"других производителей через библиотеку gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Прототип устройства"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Прототип мобильного устройства"
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr "KMobile"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Управление мобильными устройствами"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Менеджер мобильных устройств TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Низкоуровневый драйвер работы с мобильными устройствами в TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Контакты на мобильном устройстве"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Календарь на мобильном устройстве"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Мобильное устройство"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Заметки на мобильном устройстве"
diff --git a/translations/desktop_files/kmobile-desktops/se.po b/translations/desktop_files/kmobile-desktops/se.po
new file mode 100644
index 00000000..3d94bff1
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/se.po
@@ -0,0 +1,107 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitálalaš govvenapperáhta"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr ""
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr ""
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr ""
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+#, fuzzy
+msgid "Skeleton Device"
+msgstr "Mobilovttadat"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+#, fuzzy
+msgid "Mobile Skeleton Device"
+msgstr "Mobilovttadat"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobilovttadat"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Gieđahala mobilovttadagaid"
+
+#. Comment
+#: kmobile.desktop:12
+#, fuzzy
+msgid "A TDE Mobile Devices Manager"
+msgstr "Mobilovttadat"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+#, fuzzy
+msgid "Contacts in Mobile Device"
+msgstr "Gieđahala mobilovttadagaid"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+#, fuzzy
+msgid "Calendar in Mobile Device"
+msgstr "Gieđahala mobilovttadagaid"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobilovttadat"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+#, fuzzy
+msgid "Notes in Mobile Device"
+msgstr "Mobilovttadat"
diff --git a/translations/desktop_files/kmobile-desktops/sk.po b/translations/desktop_files/kmobile-desktops/sk.po
new file mode 100644
index 00000000..46d80764
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/sk.po
@@ -0,0 +1,103 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitálny fotoaparát"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Tento ovládač podporuje veľa digitálnych fotoaparátov"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobil alebo organizér (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Tento ovládač podporuje veľa mobilov NOKIA a iných pomocou knižnice gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobil alebo organizér (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Tento ovládač podporuje veľa mobilov NOKIA a iných pomocou knižnice gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Kostra zariadenia"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Kostra zariadenia mobilumobilného zaria"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Prenosné zariadenie"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Správa prenosných zariadení"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE správca prenosných zariadení"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Nízkoúrovňový ovládač prenosných zariadení pre TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Kontakty v prenosnom zariadení"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalendár v prenosnom zariadení"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Prenosné zariadenie"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Poznámky v prenosnom zariadení"
diff --git a/translations/desktop_files/kmobile-desktops/sl.po b/translations/desktop_files/kmobile-desktops/sl.po
new file mode 100644
index 00000000..0e197d9c
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/sl.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitalna kamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Ta gonilnik podpira mnogo digitalnih kamer"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Prenosni telefon ali organizator (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Ta gonilnik preko knjižnice gammu podpira mnoge prenosne telefone NOKIA kot "
+"tudi druge"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Prenosni telefon ali organizator (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Ta gonilnik preko knjižnice gnokii podpira mnoge prenosne telefone NOKIA kot "
+"tudi druge"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Ogrodna naprava"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Mobilna ogrodna naprava"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobilna naprava"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Upravljaj mobilne naprave"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Upravitelj prenosnih naprav v TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Nizkonivojski gonilnik TDE za stojno opremo prenosnih naprav"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Stiki v prenosni napravi"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Koledar v prenosni napravi"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobilna naprava"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Notice v prenosni napravi"
diff --git a/translations/desktop_files/kmobile-desktops/sr.po b/translations/desktop_files/kmobile-desktops/sr.po
new file mode 100644
index 00000000..a0a84708
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/sr.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Дигитална камера"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Овај управљачки програм подржава многе дигиталне камере"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Мобилни телефон или организатор (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Овај управљачки програм подржава многе Nokia-ине и друге мобилне телефоне "
+"преко библиотеке gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Мобилни телефон или организатор (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Овај управљачки програм подржава многе Nokia-ине и друге мобилне телефоне "
+"преко библиотеке gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Скелетни уређај"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Мобилни скелетни уређај"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Мобилни уређај"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Управљање мобилним уређајима"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE-ов менаџер мобилних уређаја"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE-ов управљачки програм ниског нивоа за мобилне уређаје"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Контакти у мобилном уређају"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Календар у мобилном уређају"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Мобилни уређај"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Белешке у мобилном уређају"
diff --git a/translations/desktop_files/kmobile-desktops/sr@Latn.po b/translations/desktop_files/kmobile-desktops/sr@Latn.po
new file mode 100644
index 00000000..44838680
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/sr@Latn.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitalna kamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Ovaj upravljački program podržava mnoge digitalne kamere"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobilni telefon ili organizator (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Ovaj upravljački program podržava mnoge Nokia-ine i druge mobilne telefone "
+"preko biblioteke gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobilni telefon ili organizator (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Ovaj upravljački program podržava mnoge Nokia-ine i druge mobilne telefone "
+"preko biblioteke gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Skeletni uređaj"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Mobilni skeletni uređaj"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Mobilni uređaj"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Upravljanje mobilnim uređajima"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE-ov menadžer mobilnih uređaja"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE-ov upravljački program niskog nivoa za mobilne uređaje"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Kontakti u mobilnom uređaju"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalendar u mobilnom uređaju"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobilni uređaj"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Beleške u mobilnom uređaju"
diff --git a/translations/desktop_files/kmobile-desktops/sv.po b/translations/desktop_files/kmobile-desktops/sv.po
new file mode 100644
index 00000000..46214319
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/sv.po
@@ -0,0 +1,104 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Digitalkamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Den här drivrutinen stöder många digitalkameror"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Mobilenhet (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Den här drivrutinen stöder många Nokia och andra mobiltelefoner via "
+"biblioteket gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Mobilenhet (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Den här drivrutinen stöder många Nokia och andra mobiltelefoner via "
+"biblioteket gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Obestämd mobilenhet"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Obestämd mobilenhet"
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr "Kmobile"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Hantera mobilenheter"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE:s hantering av mobilenheter"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE:s lågnivådrivrutin för mobilenheter"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Kontakter i mobilenhet"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Kalender i mobilenhet"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Mobilenhet"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Anteckning i mobilenhet"
diff --git a/translations/desktop_files/kmobile-desktops/ta.po b/translations/desktop_files/kmobile-desktops/ta.po
new file mode 100644
index 00000000..df930774
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/ta.po
@@ -0,0 +1,101 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "டிஜிடல் காமரா"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "இந்த இயக்கம் பல இலக்கக் காமிராக்களை ஆதரிக்கும்"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "செல்பேசி அல்லது ஒருங்கிணைப்பாளர்(gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr "இந்த இயக்கி பல NOKIA மற்றும் மற்ற செல்பேசிகளை கம்மு நூலகம் வழியாக ஆதரிக்கிறது."
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "செல்பேசி அல்லது ஒருங்கிணைப்பாளர்(gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"இந்த இயக்கி பல NOKIA மற்றும் மற்ற செல்பேசிகளை gnokii நூலகம் வழியாக ஆதரிக்கிறது."
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "எலும்புக்கூடு சாதனம்"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "நடமாடும் எலும்பு சாதனம்"
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr "கேநடமாடும் தொலைபேசி"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "நடமாடும் சாதனத்தை நிர்வகி"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "ஒரு கேடிஇ நடமாடும் சாதனத்தின் மேலாளர்"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "KAB நடமாடும் சாதனம் கீழ்நிலை வன்பொருள் இயக்கி"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "நடமாடும் சாதனத்தின் தொடர்ப்புகள்"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "நடமாடும் சாதனத்தில் உள்ள நாள்காட்டி"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "நடமாடும் சாதனம்"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "நடமாடும் சாதனத்தின் குறிப்புகள்"
diff --git a/translations/desktop_files/kmobile-desktops/tg.po b/translations/desktop_files/kmobile-desktops/tg.po
new file mode 100644
index 00000000..0d543a72
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/tg.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Камераи digital"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Ин драйвер бисёри тамсилаҳои камераҳои digital-ро дастгирӣ мекунад"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Телефони мобилӣ ё органайзер (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Ин драйвер бисёри тамсилаҳои телефонҳои мобилии Nokia-ро ва дигар "
+"истеҳсолкунандаҳоро аз китобхонаи gammu дастгирӣ мекунад"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Телефони мобилӣ ё органайзери (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Ин драйвер бисёри тамсилаҳои телефонҳои мобилии Nokia-ро ва дигар "
+"истеҳсолкунандаҳоро аз китобхонаи gnokii дастгирӣ мекунад"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Прототипи дастгоҳ"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Прототипи дастгоҳи мобилӣ"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Дастгоҳи мобилӣ"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Идоракунӣ бо дастгоҳи мобилӣ"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Мудири дастгоҳи мобилии TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Драйвери пастдараҷавии кор бо дастгоҳи мобилӣ дар TDE"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Алоқот дар дастгоҳи мобилӣ"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Тақвим дар дастгоҳи мобилӣ"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Дастгоҳи мобилӣ"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Хабарҳо дар дастгоҳи мобилӣ"
diff --git a/translations/desktop_files/kmobile-desktops/tr.po b/translations/desktop_files/kmobile-desktops/tr.po
new file mode 100644
index 00000000..ef31a6d4
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/tr.po
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Dijital Kamera"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Bu sürücü birçok dijital kamerayı destekler "
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Cep Telefonu ya da Organizer (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Bu sürücü birçok NOKIA ve gammu kütüphanesiyle diğer cep telefonlarını "
+"destekler"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Cep Telefonu ya da Organizer (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Bu sürücü birçok NOKIA ve gnokii kütüphanesiyle diğer cep telefonlarını "
+"destekler"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Çatı Aygıt"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Taşınabilir Çatı Aygıtı"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "Taşınabilir Aygıt"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Taşınabilir Aygıtlar Yöneticisi"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE Taşınabilir Aygıtlar Yöneticisi"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE Taşınabilir Aygıt Düşük Seviye Donanım Sürücüsü"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Taşınabilir Aygıt Bağlantıları"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Cep Telefonu Takvimi"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Taşınabilir Aygıt"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Cep Telefonu Notları"
diff --git a/translations/desktop_files/kmobile-desktops/uk.po b/translations/desktop_files/kmobile-desktops/uk.po
new file mode 100644
index 00000000..1ac1bde9
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/uk.po
@@ -0,0 +1,106 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: 2020-08-22 07:31+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kmobile-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Цифровий фотоапарат"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "Цей драйвер підтримує багато цифрових камер"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Мобільний телефон та тижневик (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+"Цей драйвер підтримує багато мобільних телефонів фірми NOKIA та інших "
+"мобільних телефонів через бібліотеку gammu"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Мобільний телефон та тижневик (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+"Цей драйвер підтримує багато мобільних телефонів фірми NOKIA та інших "
+"мобільних телефонів через бібліотеку gnokii"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "Прототип пристрою"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "Прототип мобільного пристрою"
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr "KMobile"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "Робота з мобільними пристроями"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "Менеджер мобільних пристроїв TDE"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "Мобільний пристрій TDE драйвер працюючий з пристроєм напряму"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "Контакти у мобільному пристрої"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "Календар у мобільному пристрої"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "Мобільний пристрій"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "Нотатки у мобільному пристрої"
diff --git a/translations/desktop_files/kmobile-desktops/uz.po b/translations/desktop_files/kmobile-desktops/uz.po
new file mode 100644
index 00000000..a244878c
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/uz.po
@@ -0,0 +1,100 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "Фотоапарат"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr ""
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "Уяли телефон ёки органайзер (gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr ""
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "Уяли телефон ёки органайзер (gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr ""
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr ""
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr ""
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr ""
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr ""
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr ""
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr ""
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr ""
diff --git a/translations/desktop_files/kmobile-desktops/zh_CN.po b/translations/desktop_files/kmobile-desktops/zh_CN.po
new file mode 100644
index 00000000..61d383f8
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/zh_CN.po
@@ -0,0 +1,101 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "数码相机"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "此驱动程序支持许多数码相机"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "移动电话或 PDA(gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr "此驱动程序通过 gammu 库支持许多诺基亚和其它移动电话"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "移动电话或 PDA(gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr "此驱动程序通过 gnokii 库支持许多诺基亚和其它移动电话"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "万能设备"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "移动万能设备"
+
+#. Name
+#: kmobile.desktop:8
+#, fuzzy
+msgid "KMobile"
+msgstr "移动设备"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "管理移动设备"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE 移动设备管理器"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE 移动设备低级硬件驱动程序"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "移动设备中的联系人"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "移动设备中的日历"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "移动设备"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "移动电话中的便笺"
diff --git a/translations/desktop_files/kmobile-desktops/zh_TW.po b/translations/desktop_files/kmobile-desktops/zh_TW.po
new file mode 100644
index 00000000..07da9575
--- /dev/null
+++ b/translations/desktop_files/kmobile-desktops/zh_TW.po
@@ -0,0 +1,100 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 02:25+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: devices/digicam/libkmobile_digicam.desktop:2
+msgid "Digital Camera"
+msgstr "數位相機"
+
+#. Comment
+#: devices/digicam/libkmobile_digicam.desktop:4
+msgid "This driver supports many digital cameras"
+msgstr "此驅動程式支援許多數位相機"
+
+#. Name
+#: devices/gammu/libkmobile_gammu.desktop:2
+msgid "Mobile Phone or Organizer (gammu)"
+msgstr "行動電話或數位助理(gammu)"
+
+#. Comment
+#: devices/gammu/libkmobile_gammu.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gammu library"
+msgstr "此驅動程式支援許多 NOKIA 及其他手機,使用 gammu 函式庫"
+
+#. Name
+#: devices/gnokii/libkmobile_gnokii.desktop:2
+msgid "Mobile Phone or Organizer (gnokii)"
+msgstr "行動電話或數位助理(gnokii)"
+
+#. Comment
+#: devices/gnokii/libkmobile_gnokii.desktop:4
+msgid ""
+"This driver supports many NOKIA and other mobile phones via the gnokii "
+"library"
+msgstr "此驅動程式支援許多 NOKIA 及其他手機,使用 gnokii 函式庫"
+
+#. Name
+#: devices/skeleton/libkmobile_skeleton.desktop:2
+msgid "Skeleton Device"
+msgstr "空殼裝置"
+
+#. Comment
+#: devices/skeleton/libkmobile_skeleton.desktop:4
+msgid "Mobile Skeleton Device"
+msgstr "行動通訊空殼裝置"
+
+#. Name
+#: kmobile.desktop:8
+msgid "KMobile"
+msgstr "KMobile 行動裝置"
+
+#. GenericName
+#: kmobile.desktop:10
+msgid "Manage Mobile Devices"
+msgstr "管理行動裝置"
+
+#. Comment
+#: kmobile.desktop:12
+msgid "A TDE Mobile Devices Manager"
+msgstr "TDE 行動裝置管理員"
+
+#. Name
+#: libkmobile.desktop:5
+msgid "TDE Mobile Device Lowlevel Hardware Driver"
+msgstr "TDE 行動裝置低階硬體驅動程式"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_addressbook.desktop:2
+msgid "Contacts in Mobile Device"
+msgstr "行動裝置中的聯絡人"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_calendar.desktop:2
+msgid "Calendar in Mobile Device"
+msgstr "行動裝置中的行事曆"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_device.desktop:2
+msgid "Mobile Device"
+msgstr "行動裝置"
+
+#. Comment
+#: tdeioslave/mimetypes/mobile_notes.desktop:2
+msgid "Notes in Mobile Device"
+msgstr "行動裝置中的備忘錄"
diff --git a/translations/desktop_files/knode-desktops/af.po b/translations/desktop_files/knode-desktops/af.po
new file mode 100644
index 00000000..098c7b4a
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/af.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Nuus leser"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Rekeninge"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Opstel van nuus groep en e-pos bedieners"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Pasmaak die visuele voorkoms"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Bespaar Skyf Spasie"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identiteit"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Persoonlike Informasie"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Pos Nuus"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Teken/Bevestig"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Beskerm you privaatheid deur pos stukke te onderteken en te bevestig"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Lees Nuus"
diff --git a/translations/desktop_files/knode-desktops/ar.po b/translations/desktop_files/knode-desktops/ar.po
new file mode 100644
index 00000000..69d61d11
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/ar.po
@@ -0,0 +1,88 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "قارئ أخبار"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "الحسابات"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "المظهر"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "التنظيف"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "الهوية"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+#, fuzzy
+msgid "Posting News"
+msgstr "قراءة الأخبار"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "التوقيع/التحقق"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "قراءة الأخبار"
diff --git a/translations/desktop_files/knode-desktops/az.po b/translations/desktop_files/knode-desktops/az.po
new file mode 100644
index 00000000..df2f801a
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/az.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: az\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Xəbər Oxuyucu"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/be.po b/translations/desktop_files/knode-desktops/be.po
new file mode 100644
index 00000000..fc5cb240
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/be.po
@@ -0,0 +1,88 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr ""
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Рахункі"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Знешні выгляд"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Увасабленне"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Пэрсанальная інфармацыя"
+
+#. Name
+#: knode_config_post_news.desktop:14
+#, fuzzy
+msgid "Posting News"
+msgstr "Чытанне навін"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Чытанне навін"
diff --git a/translations/desktop_files/knode-desktops/bg.po b/translations/desktop_files/knode-desktops/bg.po
new file mode 100644
index 00000000..a0815bfb
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/bg.po
@@ -0,0 +1,88 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Четец на новини"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Сметки"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Настройки на групите и пощенските сървъри"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Външен вид"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Настройки на външния вид"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Изчистване"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Освобождаване на свободно място на диска"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Самоличност"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Управление на личната информация"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Изпращане"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Подпис/проверка"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+"Защита на личната кореспонденция чрез подписване и проверка на съобщенията"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Четене на новини"
diff --git a/translations/desktop_files/knode-desktops/br.po b/translations/desktop_files/knode-desktops/br.po
new file mode 100644
index 00000000..1859f3a7
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/br.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Lenner keleier"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontoù"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Neuziadur"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Anvelezh"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Titouroù diouzhin"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/bs.po b/translations/desktop_files/knode-desktops/bs.po
new file mode 100644
index 00000000..94512eeb
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/bs.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Program za čitanje USENet grupa"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Računi"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Postavke za newsgrupe i mail servere"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Izgled"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Prilagodi izgled"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Čišćenje"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Čuvanje prostora na disku"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identitet"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Lične informacije"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Slanje na Usenet"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Potpisivanje/Provjera"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Zaštitite vašu privatnost potpisivanjem i provjerom postinga"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Čitanje Useneta"
diff --git a/translations/desktop_files/knode-desktops/ca.po b/translations/desktop_files/knode-desktops/ca.po
new file mode 100644
index 00000000..a9086f93
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/ca.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Lector de notícies"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Comptes"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Configuració dels grups de notícies i servidors de correu"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Aparença"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Personalitza l'aparença visual"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Neteja"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Preservar l'espai a disc"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identitat"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Informació personal"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Enviament de notícies"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Signat/Verificació"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Protegiu la vostra privadesa signant i verificant els missatges"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Lectura de notícies"
diff --git a/translations/desktop_files/knode-desktops/cs.po b/translations/desktop_files/knode-desktops/cs.po
new file mode 100644
index 00000000..3ee0e5cb
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/cs.po
@@ -0,0 +1,88 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/knode-desktop-files/cs/>\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: Weblate 4.8.1\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr "KNode"
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Klient pro čtení diskusních skupin"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Účty"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Nastavení diskuzní skupiny a poštovních serverů"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Vzhled"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Úpravy nastavení vzhledu"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Vyčištění"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Zachování místa na disku"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identita"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Osobní informace"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Odesílání příspěvků"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Podepisování/ověřování"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Chraňte své soukromí pomocí podepisování a ověřování podpisů"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Čtení příspěvků"
diff --git a/translations/desktop_files/knode-desktops/cy.po b/translations/desktop_files/knode-desktops/cy.po
new file mode 100644
index 00000000..47962f49
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/cy.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Darllenydd Newyddion"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Cyfrifon"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Golwg"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Addasu Golwg"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Dynodiad"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Gwybodaeth Bersonol"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/da.po b/translations/desktop_files/knode-desktops/da.po
new file mode 100644
index 00000000..57256c26
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/da.po
@@ -0,0 +1,88 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Nyhedslæser"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Konti"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Opsætning af nyhedsgruppe og e-mail-servere"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Udseende"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Brugerindstil visuelt udseende"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Oprydning"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Bevarer diskplads"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identitet"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Personlig information"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Indsender nyheder"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Underskriver/Verificerer"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+"Beskyt dine private oplysninger ved at underskrive og verificere indsendelser"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Læser nyheder"
diff --git a/translations/desktop_files/knode-desktops/de.po b/translations/desktop_files/knode-desktops/de.po
new file mode 100644
index 00000000..ec9fe280
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/de.po
@@ -0,0 +1,88 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Usenet-Newsreader"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Zugänge"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Einstellungen für Newsgruppen- und Mailserver"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Erscheinungsbild"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Erscheinungsbild anpassen"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Aufräumen"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Plattenplatz bewahren"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identität"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Persönliche Angaben"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Artikelversand"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Signieren/Verifizieren"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+"Schutz der Privatsphäre durch Signieren und Verifizieren von Beiträgen."
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Artikel lesen"
diff --git a/translations/desktop_files/knode-desktops/el.po b/translations/desktop_files/knode-desktops/el.po
new file mode 100644
index 00000000..e8297449
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/el.po
@@ -0,0 +1,88 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Αναγνώστης νέων"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Λογαριασμοί"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Ρύθμιση για Ομάδες Συζήτησης και Διακομιστών Αλληλογραφίας"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Εμφάνιση"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Προσαρμογή εμφάνισης"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Καθαρισμός"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Διαφύλαξη χώρου στο Δίσκο"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Ταυτότητα"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Προσωπικές πληροφορίες"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Αποστολή νέων"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Υπογραφή/Επαλήθευση"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+"Προστατεύστε το απόρρητό σας υπογράφοντας και επαληθεύοντας τα μηνύματα"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Ανάγνωση νέων"
diff --git a/translations/desktop_files/knode-desktops/en_GB.po b/translations/desktop_files/knode-desktops/en_GB.po
new file mode 100644
index 00000000..e8168b40
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/en_GB.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: en_GB\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr ""
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Customise Visual Appearance"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/eo.po b/translations/desktop_files/knode-desktops/eo.po
new file mode 100644
index 00000000..7240adac
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/eo.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr "Diskutrondoj"
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Legilo por diskutrondoj"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontoj"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Prezentado"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Purigo"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Ŝpari diskspacon"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Idento"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Personaj Informoj"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/es.po b/translations/desktop_files/knode-desktops/es.po
new file mode 100644
index 00000000..8ba910cb
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/es.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Lector de noticias"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Cuentas"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Configuración de los servidores de grupos de noticias y de correo"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Apariencia"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Apariencia visual personalizada"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Limpiar"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Preservar el espacio de disco"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identidad"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Información personal"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Enviar noticias"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Firmar/Verificar"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Proteja su privacidad firmando y verificando sus envíos"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Leer noticias"
diff --git a/translations/desktop_files/knode-desktops/et.po b/translations/desktop_files/knode-desktops/et.po
new file mode 100644
index 00000000..a98fcaa4
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/et.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Uudistelugeja"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontod"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Uudiste- ja e-posti serverite seadistus"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Välimus"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Välimuse seadistused"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Puhastamine"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Kettaruumi eest hoolitsemine"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identiteet"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Personaalne info"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Uudiste postitamine"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Signeerimine/kontroll"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Kaitseb sinu privaatsust postitusi signeerides ja konrollides"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Uudiste lugemine"
diff --git a/translations/desktop_files/knode-desktops/eu.po b/translations/desktop_files/knode-desktops/eu.po
new file mode 100644
index 00000000..5442b8a1
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/eu.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Berri Irakurlea"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontuak"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Berri-talde eta posta zerbitzarien konfigurazioa"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Itxura"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Pertsonalizatu itxura"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Garbiketa"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Diskaren espazioa mantendu"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identitatea"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Informazio pertsonala"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Berrien argitaratzea"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Sinadura/Egiaztapena"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Babestu zure pribakortasuna argitarapenak sinatu eta egiaztatuz"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Berrien irakurketa"
diff --git a/translations/desktop_files/knode-desktops/fa.po b/translations/desktop_files/knode-desktops/fa.po
new file mode 100644
index 00000000..336d806f
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/fa.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "خوانندۀ اخبار"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "حسابها"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "برپایی برای کارسازهای نامه و Newsgroup"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "ظاهر"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "سفارشی کردن ظاهر تصویری"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "پاک‌سازی"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "حفظ فضای دیسک"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "هویت"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "اطلاعات شخصی"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "ارسال سریع اخبار"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "امضا/وارسی"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "حفظ محرمانگی خود با امضا و وارسی ارسالهای سریع"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "خواندن اخبار"
diff --git a/translations/desktop_files/knode-desktops/fi.po b/translations/desktop_files/knode-desktops/fi.po
new file mode 100644
index 00000000..67d157f2
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/fi.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Uutisryhmien lukuohjelma"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Tilit"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Uutisryhmien ja sähköpostipalvelinten asetukset"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Ulkoasu"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Ulkonäköasetukset"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Siivoaminen"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Kiintolevytilan säästäminen"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Henkilöllisyys"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Omat tiedot"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Viestien lähettäminen"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Allekirjoittaminen/tarkistaminen"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Suojele yksityisyyttäsi allekirjoittamalla ja varmentamalla posti"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Uutisryhmien lukeminen"
diff --git a/translations/desktop_files/knode-desktops/fr.po b/translations/desktop_files/knode-desktops/fr.po
new file mode 100644
index 00000000..44243abc
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/fr.po
@@ -0,0 +1,89 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Lecteur de forums de discussion"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Comptes"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Configuration les serveurs de messagerie et de groupes de discussion"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Apparence"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Personnalisation de l'apparence"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Nettoyage"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Préservation de l'espace disque"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identité"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Informations personnelles"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Postage de nouvelles"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Signature/Vérification"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+"Protection de votre vie privée lors de la signature et vérification des "
+"envois"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Lecture de nouvelles"
diff --git a/translations/desktop_files/knode-desktops/fy.po b/translations/desktop_files/knode-desktops/fy.po
new file mode 100644
index 00000000..5dcd6b2d
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/fy.po
@@ -0,0 +1,88 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Nijslêzer"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Akkounts"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Nijs- en posttsjinners opset"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Uterlik"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "It uterlik oanpasse"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Opskjinning"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Besparring fan skiifromte"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identiteit"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Persoanlike ynformatie"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Nijs poste"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Undertekening/Ferifiearje"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+"Beskermje jo privacy troch jo berjochten te ûndertekenjen en te ferifiearjen"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Nijs lêze"
diff --git a/translations/desktop_files/knode-desktops/ga.po b/translations/desktop_files/knode-desktops/ga.po
new file mode 100644
index 00000000..abc3071d
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/ga.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Léitheoir Nuachta"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Cuntais"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Cuma"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Glan"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Aitheantas"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Eolas Pearsanta"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/gl.po b/translations/desktop_files/knode-desktops/gl.po
new file mode 100644
index 00000000..2697467d
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/gl.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Lector de Noticias"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Contas"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Configuración para Servidores de Correo e Novas"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Apariencia"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Personalizar a apariencia visual"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Limpeza"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Preservar Espacio en Disco"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identidade"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Información Persoal"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Publicando Noticias"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Asinando/Verificando"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Protexe a súa intimidade asinando e verificando as entradas"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Ler Noticias"
diff --git a/translations/desktop_files/knode-desktops/he.po b/translations/desktop_files/knode-desktops/he.po
new file mode 100644
index 00000000..a74d44fd
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/he.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "קורא חדשות"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "חשבונות"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "מראה"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "הגדרת מראה"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "ניקיון"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "שמירת מקום בכונן"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "זהות"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "מידע אישי"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "שליחת חדשות"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "חתימה/ווידוא"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "קריאת חדשות"
diff --git a/translations/desktop_files/knode-desktops/hi.po b/translations/desktop_files/knode-desktops/hi.po
new file mode 100644
index 00000000..5eeeedf5
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/hi.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr "के-नोड"
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "समाचार वाचक"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/hr.po b/translations/desktop_files/knode-desktops/hr.po
new file mode 100644
index 00000000..a9b05ecc
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/hr.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Program za čitanje USENet grupa"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Izgled"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/hu.po b/translations/desktop_files/knode-desktops/hu.po
new file mode 100644
index 00000000..93ab1303
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/hu.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "NNTP hírolvasó"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Fiókok"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Hír- és levelezési kiszolgálók beállítása"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Megjelenés"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "A grafikai megjelenés testreszabása"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Tisztítás"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "A lemezterület megőrzése"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Azonosító"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Személyi adatok"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Hírek írása"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Aláírás/ellenőrzés"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Az adatok védelme az üzenetek elektronikus aláírásával, titkosításával"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Hírek olvasása"
diff --git a/translations/desktop_files/knode-desktops/id.po b/translations/desktop_files/knode-desktops/id.po
new file mode 100644
index 00000000..1cb4fab0
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/id.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: id\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Pembaca Berita"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/is.po b/translations/desktop_files/knode-desktops/is.po
new file mode 100644
index 00000000..b6b4ea9c
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/is.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Fréttaforrit"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Tengingar"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Uppsetning fyrir fréttahópa og póstþjóna"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Útlit"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Stilla útlit"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Hreinsun"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Varðveita diskpláss"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Auðkenni"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Persónuupplýsingar"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Senda fréttir"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Undirrita/staðfesta"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Verndaðu einkalífið þitt með því að undirrita og staðfesta sendingar"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Lestur frétta"
diff --git a/translations/desktop_files/knode-desktops/it.po b/translations/desktop_files/knode-desktops/it.po
new file mode 100644
index 00000000..294563e4
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/it.po
@@ -0,0 +1,88 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: 2023-01-20 02:22+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/knode-desktop-files/it/>\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: Weblate 4.14.2\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr "KNode"
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Lettore newsgroup"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Account"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Impostazioni per newsgroup e server di posta"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Aspetto"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Personalizza l'aspetto"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Pulizia"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Risparmia lo spazio su disco"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identità"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Informazioni personali"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Invio news"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Firma/verifica"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Proteggi la tua privacy firmando e verificando i messaggi"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Lettura News"
diff --git a/translations/desktop_files/knode-desktops/ja.po b/translations/desktop_files/knode-desktops/ja.po
new file mode 100644
index 00000000..919086e8
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/ja.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "ニュースリーダー"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "アカウント"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "ニュースグループとメールサーバの設定"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "外観"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "外観をカスタマイズ"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "整理"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "ディスクスペースを維持"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "個人情報"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "個人の情報"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "ニュースを投稿"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "署名/検証"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "投稿の署名と検証によりあなたのプライバシーを保護します"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "ニュースを読む"
diff --git a/translations/desktop_files/knode-desktops/kk.po b/translations/desktop_files/knode-desktops/kk.po
new file mode 100644
index 00000000..959d4169
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/kk.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Жаңалықтарды оқу құралы"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Тіркелгілері"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Жаңалық топтар мен Пошта серверлері"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Сыртқы көрінісі"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Сыртқы көрінісін ыңғайлау"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Тазалау"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Дискідегі орынды үнемдеу"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Іс-әлпеті"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Дербес мәліметтер"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Жариялау"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Қолтаңбалау/Тексеру"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Жарияланғанды қолтаңбалап/тексеріп қорғану"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Жаңалықтарды оқу"
diff --git a/translations/desktop_files/knode-desktops/km.po b/translations/desktop_files/knode-desktops/km.po
new file mode 100644
index 00000000..685e0f4a
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/km.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "កម្មវិធី​អាន​ព័ត៌មាន"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "គណនី"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "រៀបចំម៉ាស៊ីន​បម្រើ​វេទិកា​ព័ត៌មាន និង​សំបុត្រ"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "រូបរាង"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "ប្ដូរ​រូបរាង​មើល​ឃើញ​តាម​បំណង"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "សម្អាត"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "បង្ការ​ទំហំ​ថាស"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "អត្តសញ្ញាណ"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "ព័ត៌មាន​ផ្ទាល់​ខ្លួន"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "ប្រកាស​ព័ត៌មាន​"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "ចុះហត្ថលេខា/ផ្ទៀងផ្ទាត់"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "ការពារ​ភាព​ឯកជន​របស់​អ្នក​ដោយ​ចុះហត្ថលេខា និង​​ផ្ទៀងផ្ទាត់​ការ​ប្រកាស"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "អាន​ព័ត៌មាន"
diff --git a/translations/desktop_files/knode-desktops/knode-desktops.pot b/translations/desktop_files/knode-desktops/knode-desktops.pot
new file mode 100644
index 00000000..6dff75bb
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/knode-desktops.pot
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr ""
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/ko.po b/translations/desktop_files/knode-desktops/ko.po
new file mode 100644
index 00000000..3376ad01
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/ko.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr ""
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "모양"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/lt.po b/translations/desktop_files/knode-desktops/lt.po
new file mode 100644
index 00000000..7535c97a
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/lt.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Naujienų skaityklė"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Paskyros"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Naujienų grupių ir pašto serverių nustatymai"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Išvaizda"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Derinti vizualinę išvaizdą"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Išvalymas"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Disko erdvės išsaugojimas"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Tapatybė"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Asmeninė informacija"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Naujienų skelbimas"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Pasirašoma/tikrinama"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Saugokite savo privatumą pasirašydami ir patikrindami skelbimus"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Naujienų skaitymas"
diff --git a/translations/desktop_files/knode-desktops/lv.po b/translations/desktop_files/knode-desktops/lv.po
new file mode 100644
index 00000000..95a35fd5
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/lv.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Ziņu Lasītājs"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/mk.po b/translations/desktop_files/knode-desktops/mk.po
new file mode 100644
index 00000000..330542c5
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/mk.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Читач на вести"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Сметки"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Поставување за сервери за групи вести и за е-пошта"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Изглед"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Приспособете ја визуелната појава"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Расчистување"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Зачувување простор на дискот"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Идентитет"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Лични информации"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Испраќање вести"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Потпишување/верификација"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Читање вести"
diff --git a/translations/desktop_files/knode-desktops/ms.po b/translations/desktop_files/knode-desktops/ms.po
new file mode 100644
index 00000000..004d2118
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/ms.po
@@ -0,0 +1,88 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Pembaca Berita"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Akaun"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Setup untuk Kumpulan Berita dan Pelayan Mel "
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Rupa"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Suaikan Rupa Visual"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Pembersihan"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Memelihara Ruang Cakera"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identiti"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Maklumat Peribadi"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Menampal Berita"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Menandatangan/Menentu sah"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+"Melindungi ruang privasi anda dengan menandatangan dan menentusah pengeposan"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Membaca Berita"
diff --git a/translations/desktop_files/knode-desktops/mt.po b/translations/desktop_files/knode-desktops/mt.po
new file mode 100644
index 00000000..0b475065
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/mt.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Qarrej tal-aħbarijiet (news)"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/nb.po b/translations/desktop_files/knode-desktops/nb.po
new file mode 100644
index 00000000..6812cfeb
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/nb.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Njusleser"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontoer"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Oppsett av njusgruppe- og e-post tjenere"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Utseende"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Tilpass visuelt utseende"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Rydd opp"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Bevarer disk plass"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identitet"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Personlig informasjon"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Legge inn Njus"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Signering/Verifisering"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Beskytt privatlivet ditt ved å signere og verifisere oppslag"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Lese Njus"
diff --git a/translations/desktop_files/knode-desktops/nds.po b/translations/desktop_files/knode-desktops/nds.po
new file mode 100644
index 00000000..6c27e239
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/nds.po
@@ -0,0 +1,89 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Usenet-Narichtenkieker"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontos"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Narichtenkrink- und Nettpostservers instellen"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Utsehn"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Utsehn topassen"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Oprümen"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Platz op de Fastplaat wohren"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Persoon"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Persöönlich Informatschonen"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Narichten sennen"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Ünnerschrieven / Pröven"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+"Dör dat Ünnerschrieven un Överpröven vun Narichten warrt Dien Privaatrebeet "
+"schuult."
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Narichten lesen"
diff --git a/translations/desktop_files/knode-desktops/ne.po b/translations/desktop_files/knode-desktops/ne.po
new file mode 100644
index 00000000..ca736b90
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/ne.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr "केडीई नोड"
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "समाचार वाचक"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "खाता"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "समाचार समूह र पत्र सर्भरका लागि सेटअप गर्नुहोस्"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "मोहडा"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "दृश्यात्मक मोहडा अनुकूल गर्नुहोस्"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "हटाउनुहोस्"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "चक्का खाली स्थान संचित गर्दैछ"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "पहिचान"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "व्यक्तिगत सूचना"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "समाचार पोष्ट गर्दैछ"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "साइनिङ/रुजु गर्दैछ"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "तपाईँको नीजिपना साइन गरेर र पोष्टिङ रुजु गरेर सुरक्षा गर्नुहोस्"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "समाचार वाचन गर्दैछ"
diff --git a/translations/desktop_files/knode-desktops/nl.po b/translations/desktop_files/knode-desktops/nl.po
new file mode 100644
index 00000000..7c331d6d
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/nl.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Nieuwslezer"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Instellingen voor nieuws- en mailservers"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Uiterlijk"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Pas het uiterlijk aan"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Opschoning"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Besparing van schrijfruimte"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identiteit"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Persoonlijke informatie"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Nieuws posten"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Ondertekening/Verifiëring"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Bescherm uw privacy door uw berichten te ondertekenen en te verifiëren"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Nieuws lezen"
diff --git a/translations/desktop_files/knode-desktops/nn.po b/translations/desktop_files/knode-desktops/nn.po
new file mode 100644
index 00000000..978c5332
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/nn.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Nyheitslesar"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontoar"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Oppsett av Usenet- og e-post-tenarar"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Utsjånad"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Tilpass utsjånad"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Rydd opp"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Frigjer diskplass"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identitet"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Personleg informasjon"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Send innlegg"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Signering/stadfesting"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Vern om privatlivet med signerte og stadfesta innlegg"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Les innlegg"
diff --git a/translations/desktop_files/knode-desktops/pa.po b/translations/desktop_files/knode-desktops/pa.po
new file mode 100644
index 00000000..dba83d51
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/pa.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr ""
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "ਖਾਤੇ"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "ਨਿੱਜੀ ਜਾਣਕਾਰੀ"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/pl.po b/translations/desktop_files/knode-desktops/pl.po
new file mode 100644
index 00000000..d12befb4
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/pl.po
@@ -0,0 +1,88 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Program do czytania list dyskusyjnych"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Konta"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Ustawienia serwerów poczty i grup dyskusyjnych"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Wygląd"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Zmiana wyglądu"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Porządkowanie"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Kontrolowanie użytej przestrzeni dyskowej"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Tożsamość"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Informacje osobiste"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Publikowanie wiadomości"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Podpisywanie/Weryfikacja podpisów"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+"Ochrona prywatności poprzez podpisywanie i weryfikację podpisów wiadomości"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Odczytywanie wiadomości"
diff --git a/translations/desktop_files/knode-desktops/pt.po b/translations/desktop_files/knode-desktops/pt.po
new file mode 100644
index 00000000..ab19e1ea
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/pt.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Leitor de Notícias"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Contas"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Configuração de Servidores de Notícias e de E-mail"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Aparência"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Personalizar a Aparência Visual"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Limpeza"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Preservar o Espaço em Disco"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identidade"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Informação Pessoal"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Enviar Notícias"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Assinar/Verificar"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Proteja a sua privacidade assinando e verificando as mensagens"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Leitura de Notícias"
diff --git a/translations/desktop_files/knode-desktops/pt_BR.po b/translations/desktop_files/knode-desktops/pt_BR.po
new file mode 100644
index 00000000..7c50e1df
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/pt_BR.po
@@ -0,0 +1,88 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Leitor de Notícias"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Contas"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Configura Grupos de Discussão e Servidores de E-mails"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Aparência"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Personalizar Aparência Visual"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Limpeza"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Preservando o Espaço em Disco "
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identidade"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Informações Pessoais"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Enviando Notícias"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Assinando/Verificando"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+"Protege sua privacidade através da assinatura e verificação das mensagens"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Lendo Notícias"
diff --git a/translations/desktop_files/knode-desktops/ro.po b/translations/desktop_files/knode-desktops/ro.po
new file mode 100644
index 00000000..e984d1ea
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/ro.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr "Ştiri Internet"
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Cititor de ştiri USENET"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/ru.po b/translations/desktop_files/knode-desktops/ru.po
new file mode 100644
index 00000000..ae59a4a5
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/ru.po
@@ -0,0 +1,89 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: 2024-04-14 11:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/knode-desktop-files/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr "KNode"
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Чтение новостей"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Учётные записи"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Учётные записи на почтовых серверах и серверах телеконференций"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Внешний вид"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Настройка внешнего вида"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Очистка диска"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Сохранение места на диске"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Профиль"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Персональная информация"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Размещение статей"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Подпись и проверка"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Защита информации посредством подписей и проверки сообщений"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Чтение новостей"
diff --git a/translations/desktop_files/knode-desktops/rw.po b/translations/desktop_files/knode-desktops/rw.po
new file mode 100644
index 00000000..22b6eeb5
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/rw.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: rw\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Musoma Amakuru"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Imigaragarire"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/se.po b/translations/desktop_files/knode-desktops/se.po
new file mode 100644
index 00000000..a2167d69
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/se.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Ođaslogan"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Kontut"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Heivet Usenet- ja e-boastabálvváid"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Fárda"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Heivet fárdda"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Čorge"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identitehta"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Peršuvnnalaš dieđut"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/sk.po b/translations/desktop_files/knode-desktops/sk.po
new file mode 100644
index 00000000..1bff3307
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/sk.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Prehliadač správ"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Účty"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Nastavenie serverov pre poštu a diskusné skupiny"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Vzhľad"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Prispôsobenie vzhľadu"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Vyčistenie"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Úspora miesta na disku"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identita"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Osobné informácie"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Posielanie príspevkov"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Podpis/overenie"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Chráňte svoje súkromie digitálnymi podpismi a overovaním príspevkov"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Čítanie diskusných skupín"
diff --git a/translations/desktop_files/knode-desktops/sl.po b/translations/desktop_files/knode-desktops/sl.po
new file mode 100644
index 00000000..40f904d6
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/sl.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Bralnik novic"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Računi"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Nastavitve za novične in poštne strežnike"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Videz"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Prilagodi videz"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Čiščenje"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Ohranjanje prostora na disku"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identiteta"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Osebne informacije"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Pošiljanje novic"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Podpisovanje/Preverjanje"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Zaščitite vašo zasebnost s podpisovanjem ali preverjanjem člankov"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Branje novic"
diff --git a/translations/desktop_files/knode-desktops/sr.po b/translations/desktop_files/knode-desktops/sr.po
new file mode 100644
index 00000000..5aef3ead
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/sr.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Читач вести"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Налози"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Поставке за групе новости и сервере поште"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Изглед"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Прилагодите визуелни приказ"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Чишћење"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Чување простора на диску"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Идентитет"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Лична информација"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Слање новости"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Потписивање-проверавање"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Заштитите вашу приватност потписивајући и проверавајући поруке"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Читање новости"
diff --git a/translations/desktop_files/knode-desktops/sr@Latn.po b/translations/desktop_files/knode-desktops/sr@Latn.po
new file mode 100644
index 00000000..f4ccd7b4
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/sr@Latn.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Čitač vesti"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Nalozi"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Postavke za grupe novosti i servere pošte"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Izgled"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Prilagodite vizuelni prikaz"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Čišćenje"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Čuvanje prostora na disku"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identitet"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Lična informacija"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Slanje novosti"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Potpisivanje-proveravanje"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Zaštitite vašu privatnost potpisivajući i proveravajući poruke"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Čitanje novosti"
diff --git a/translations/desktop_files/knode-desktops/sv.po b/translations/desktop_files/knode-desktops/sv.po
new file mode 100644
index 00000000..6592ef76
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/sv.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr "Knode"
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Nyhetsläsare"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Konton"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Inställningar för diskussionsgrupp och postservrar"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Uppträdande"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Anpassa visuellt uppträdande"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Upprensning"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Bevara diskutrymme"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Identitet"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Personlig information"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Skicka inlägg"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Signera och verifiera"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Skyddar din integritet genom att signera och verifiera meddelanden"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Läsa inlägg"
diff --git a/translations/desktop_files/knode-desktops/ta.po b/translations/desktop_files/knode-desktops/ta.po
new file mode 100644
index 00000000..f44503c5
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/ta.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr "Kநோடு"
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "செய்தி வாசிப்பவர்"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "கணக்குகள்"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "செய்திக்குழு மற்றும் மின்னஞ்சல் சேவைகளுக்கான அமைப்பு"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "தோற்றம்"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "பார்க்கும் தோற்றத்தை தனிபயனாக்கு"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "சுத்தம் செய்"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "தட்டின் இடத்தை சேமித்தல்"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "அடையாளம்"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "சொந்த தகவல்"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "செய்திகளை அனுப்புதல் "
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "கையெழுத்து இடுதல்/சரிபார்த்தல்"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "செய்திகளைப் படித்தல்"
diff --git a/translations/desktop_files/knode-desktops/tg.po b/translations/desktop_files/knode-desktops/tg.po
new file mode 100644
index 00000000..404b3254
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/tg.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Барнома барои хондани иттилоот"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Қайдҳои баҳисобгирӣ"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Қайдҳои баҳисобгирӣ дар серверҳои почтавӣ ва серверҳои телеконференсия"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Намуди зоҳирӣ"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Танзимоти намуди зоҳирӣ"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Тозакунии диск"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Нигоҳ доштани ҷое дар диск"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Профил"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Маълумоти шахсӣ"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Ҷойгиркунии мақола"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Имзо ва тафтиш"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "Муҳофизати иттилоот ба воситаи имзо ва тафтиши ахборот"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Хондани ахборот"
diff --git a/translations/desktop_files/knode-desktops/th.po b/translations/desktop_files/knode-desktops/th.po
new file mode 100644
index 00000000..7c703477
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/th.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: th\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr "อ่านข่าว - K"
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "เครื่องมืออ่านข่าว"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/tr.po b/translations/desktop_files/knode-desktops/tr.po
new file mode 100644
index 00000000..ab617fae
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/tr.po
@@ -0,0 +1,89 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Haber Okuyucu"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Hesaplar"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "E-posta ve Haber Grubu Sunucuları için Yapılandırma"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Görünüm"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Görsel Görünümü Özelleştir"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Temizle"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Saklama için Disk Alanı"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Kimlik"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Kişisel Bilgi"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Gönderilen Haberler"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "İmzalama/Doğruluma"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+"Gönderilen iletilerinizi imzalayarak ve doğrulayarak güvenirliliğinizi "
+"sağlayın"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Haber Okuma"
diff --git a/translations/desktop_files/knode-desktops/uk.po b/translations/desktop_files/knode-desktops/uk.po
new file mode 100644
index 00000000..40b7b88e
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/uk.po
@@ -0,0 +1,90 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: 2020-08-22 07:31+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/knode-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr "KNode"
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Програма для перегляду новин"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Рахунки"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "Налаштування для груп новин і серверів пошти"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Вигляд"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "Налаштування зовнішнього вигляду"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "Очищення диску"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "Збереження місця на диску"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Профіль"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "Особиста інформація"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "Розміщення новин"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "Підписування і перевірка"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+"Захист конфіденційності за допомогою підписування і перевірки повідомлень"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Читання новин"
diff --git a/translations/desktop_files/knode-desktops/uz.po b/translations/desktop_files/knode-desktops/uz.po
new file mode 100644
index 00000000..6af0f542
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/uz.po
@@ -0,0 +1,88 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr ""
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "Ҳисоблар"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "Кўриниши"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "Шахсият"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+#, fuzzy
+msgid "Posting News"
+msgstr "Янгиликларни ўқиш"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "Янгиликларни ўқиш"
diff --git a/translations/desktop_files/knode-desktops/ven.po b/translations/desktop_files/knode-desktops/ven.po
new file mode 100644
index 00000000..66294bef
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/ven.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ven\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Muvhali wa mafhungo"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/vi.po b/translations/desktop_files/knode-desktops/vi.po
new file mode 100644
index 00000000..f84c5e66
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/vi.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: vi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Trình đọc News "
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/xh.po b/translations/desktop_files/knode-desktops/xh.po
new file mode 100644
index 00000000..0b5698dc
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/xh.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: xh\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Umfundi weendaba"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knode-desktops/zh_CN.po b/translations/desktop_files/knode-desktops/zh_CN.po
new file mode 100644
index 00000000..d80f4c6b
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/zh_CN.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "新闻阅读器"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "账户"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "新闻组和邮件服务器的设置"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr "外观"
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "自定义视觉外观"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "清理"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "腾出磁盘空间"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "身份"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "个人信息"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "投递新闻"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "签名/校验"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "通过对发表的文件进行签名和校验来保护您的隐私"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "阅读新闻"
diff --git a/translations/desktop_files/knode-desktops/zh_TW.po b/translations/desktop_files/knode-desktops/zh_TW.po
new file mode 100644
index 00000000..1a89ffac
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/zh_TW.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr "KNode 新聞閱讀器"
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "新聞閱讀器"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr "帳號"
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr "設定新聞群組及郵件伺服器"
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr "調整視覺顯示"
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr "清除"
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr "保留磁碟空間"
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr "身份"
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr "個人資訊"
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr "發表文章"
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr "簽署/檢查"
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr "以簽署或檢查文章來保護您的隱私"
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr "閱讀新聞"
diff --git a/translations/desktop_files/knode-desktops/zu.po b/translations/desktop_files/knode-desktops/zu.po
new file mode 100644
index 00000000..fbf68cbd
--- /dev/null
+++ b/translations/desktop_files/knode-desktops/zu.po
@@ -0,0 +1,87 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:42+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: KNode.desktop:12
+msgid "KNode"
+msgstr ""
+
+#. GenericName
+#: KNode.desktop:14
+msgid "News Reader"
+msgstr "Umfundi wezindaba"
+
+#. Name
+#: knode_config_accounts.desktop:14
+msgid "Accounts"
+msgstr ""
+
+#. Comment
+#: knode_config_accounts.desktop:16
+msgid "Setup for Newsgroup and Mail Servers"
+msgstr ""
+
+#. Name
+#: knode_config_appearance.desktop:14
+msgid "Appearance"
+msgstr ""
+
+#. Comment
+#: knode_config_appearance.desktop:16
+msgid "Customize Visual Appearance"
+msgstr ""
+
+#. Name
+#: knode_config_cleanup.desktop:14
+msgid "Cleanup"
+msgstr ""
+
+#. Comment
+#: knode_config_cleanup.desktop:16
+msgid "Preserving Disk Space"
+msgstr ""
+
+#. Name
+#: knode_config_identity.desktop:14
+msgid "Identity"
+msgstr ""
+
+#. Comment
+#: knode_config_identity.desktop:16
+msgid "Personal Information"
+msgstr ""
+
+#. Name
+#: knode_config_post_news.desktop:14
+msgid "Posting News"
+msgstr ""
+
+#. Name
+#: knode_config_privacy.desktop:14
+msgid "Signing/Verifying"
+msgstr ""
+
+#. Comment
+#: knode_config_privacy.desktop:16
+msgid "Protect your privacy by signing and verifying postings"
+msgstr ""
+
+#. Name
+#: knode_config_read_news.desktop:14
+msgid "Reading News"
+msgstr ""
diff --git a/translations/desktop_files/knotes-desktops/af.po b/translations/desktop_files/knotes-desktops/af.po
new file mode 100644
index 00000000..ae15867b
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/af.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "Knotas"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Opspring Notas"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notas"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notas in plaaslike lêer"
diff --git a/translations/desktop_files/knotes-desktops/ar.po b/translations/desktop_files/knotes-desktops/ar.po
new file mode 100644
index 00000000..c9072a2c
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/ar.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "الملاحظات"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "الملاحظات المنبثقة"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "الملاحظات"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "الملاحظات في الملف المحلّي"
diff --git a/translations/desktop_files/knotes-desktops/be.po b/translations/desktop_files/knotes-desktops/be.po
new file mode 100644
index 00000000..e59a85c6
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/be.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "K Нататкі"
+
+#. GenericName
+#: knotes.desktop:14
+#, fuzzy
+msgid "Popup Notes"
+msgstr "Нататкі"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Нататкі"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Нататкі ў лякальным файле"
diff --git a/translations/desktop_files/knotes-desktops/bg.po b/translations/desktop_files/knotes-desktops/bg.po
new file mode 100644
index 00000000..a59c95d7
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/bg.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Бележки"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Лепящи се бележки"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Бележки"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Бележки в локален файл"
diff --git a/translations/desktop_files/knotes-desktops/br.po b/translations/desktop_files/knotes-desktops/br.po
new file mode 100644
index 00000000..9bb910e5
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/br.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Notennoù"
+
+#. GenericName
+#: knotes.desktop:14
+#, fuzzy
+msgid "Popup Notes"
+msgstr "Notennoù"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notennoù"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notennoù e rstr lec'hel"
diff --git a/translations/desktop_files/knotes-desktops/bs.po b/translations/desktop_files/knotes-desktops/bs.po
new file mode 100644
index 00000000..087abdf3
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/bs.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Bilješke"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Popup bilješke"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Bilješke"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Bilješke u lokalnoj datoteci"
diff --git a/translations/desktop_files/knotes-desktops/ca.po b/translations/desktop_files/knotes-desktops/ca.po
new file mode 100644
index 00000000..69162014
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/ca.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr ""
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Notes emergents"
+
+#. Name
+#: knotes_manager.desktop:2
+#, fuzzy
+msgid "Notes"
+msgstr "Notes emergents"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notes en fitxer local"
diff --git a/translations/desktop_files/knotes-desktops/cs.po b/translations/desktop_files/knotes-desktops/cs.po
new file mode 100644
index 00000000..8991d73b
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/cs.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/knotes-desktop-files/cs/>\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: Weblate 4.8.1\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "KNotes"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Vyskakovací poznámky"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Poznámky"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Poznámky v lokálním souboru"
diff --git a/translations/desktop_files/knotes-desktops/cy.po b/translations/desktop_files/knotes-desktops/cy.po
new file mode 100644
index 00000000..4e096935
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/cy.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "KNodiadau"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Naid-nodiadau"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Nodiadau"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr ""
diff --git a/translations/desktop_files/knotes-desktops/da.po b/translations/desktop_files/knotes-desktops/da.po
new file mode 100644
index 00000000..e1091d2b
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/da.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Noter"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Popop-noter"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Noter"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Noter i lokal fil"
diff --git a/translations/desktop_files/knotes-desktops/de.po b/translations/desktop_files/knotes-desktops/de.po
new file mode 100644
index 00000000..97fd5db8
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/de.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Notizen"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Haftnotizen"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notizen"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notizen in lokaler Datei"
diff --git a/translations/desktop_files/knotes-desktops/el.po b/translations/desktop_files/knotes-desktops/el.po
new file mode 100644
index 00000000..1a079e86
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/el.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Σημειώσεις"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Αναδυόμενες σημειώσεις"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Σημειώσεις"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Σημειώσεις σε τοπικό αρχείο"
diff --git a/translations/desktop_files/knotes-desktops/eo.po b/translations/desktop_files/knotes-desktops/eo.po
new file mode 100644
index 00000000..7d569ca6
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/eo.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "Notoj"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Glunotoj"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notoj"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notoj en loka dosiero"
diff --git a/translations/desktop_files/knotes-desktops/es.po b/translations/desktop_files/knotes-desktops/es.po
new file mode 100644
index 00000000..1da6f3c5
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/es.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Notas"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Notas emergentes"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notas"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Avisos sobre el archivo local"
diff --git a/translations/desktop_files/knotes-desktops/et.po b/translations/desktop_files/knotes-desktops/et.po
new file mode 100644
index 00000000..154a291e
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/et.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Märkmed"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Hüpikmärkmed"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Märkmed"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Märkmed kohalikus failis"
diff --git a/translations/desktop_files/knotes-desktops/eu.po b/translations/desktop_files/knotes-desktops/eu.po
new file mode 100644
index 00000000..67075815
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/eu.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Oharrak"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Laster-lehio oharrak"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Oharrak"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Oharrak fitxategi lokalean"
diff --git a/translations/desktop_files/knotes-desktops/fa.po b/translations/desktop_files/knotes-desktops/fa.po
new file mode 100644
index 00000000..ce72a7ba
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/fa.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "یادداشتها"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "یادداشتهای بالاپر"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "یادداشتها"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "یادداشتها در پروندۀ محلی"
diff --git a/translations/desktop_files/knotes-desktops/fi.po b/translations/desktop_files/knotes-desktops/fi.po
new file mode 100644
index 00000000..b8a450dd
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/fi.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Muistio"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Muistilaput"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Muistio"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Muistiot paikallisessa tiedostossa"
diff --git a/translations/desktop_files/knotes-desktops/fr.po b/translations/desktop_files/knotes-desktops/fr.po
new file mode 100644
index 00000000..ede56a2d
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/fr.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr ""
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Éditeur de petites notes"
+
+#. Name
+#: knotes_manager.desktop:2
+#, fuzzy
+msgid "Notes"
+msgstr "Éditeur de petites notes"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notes dans un fichier local"
diff --git a/translations/desktop_files/knotes-desktops/fy.po b/translations/desktop_files/knotes-desktops/fy.po
new file mode 100644
index 00000000..e96d208d
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/fy.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Notysjes"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Notysjes"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notysjes"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notysjes yn lokale triem"
diff --git a/translations/desktop_files/knotes-desktops/ga.po b/translations/desktop_files/knotes-desktops/ga.po
new file mode 100644
index 00000000..63a6ed5d
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/ga.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Nótaí"
+
+#. GenericName
+#: knotes.desktop:14
+#, fuzzy
+msgid "Popup Notes"
+msgstr "Nótaí"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Nótaí"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Nótaí i gComhad Logánta"
diff --git a/translations/desktop_files/knotes-desktops/gl.po b/translations/desktop_files/knotes-desktops/gl.po
new file mode 100644
index 00000000..17f935c9
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/gl.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Notas"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Notas Emerxentes"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notas"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notas en Ficheiro Local"
diff --git a/translations/desktop_files/knotes-desktops/he.po b/translations/desktop_files/knotes-desktops/he.po
new file mode 100644
index 00000000..7454acc1
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/he.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "פתקים"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "פתקים מוקפצים"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "פתקים"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "פתקים בקובץ מקומי"
diff --git a/translations/desktop_files/knotes-desktops/hi.po b/translations/desktop_files/knotes-desktops/hi.po
new file mode 100644
index 00000000..2def6ee7
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/hi.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "के-नोट्स"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "पॉप-अप टीप"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "टीप"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr ""
diff --git a/translations/desktop_files/knotes-desktops/hr.po b/translations/desktop_files/knotes-desktops/hr.po
new file mode 100644
index 00000000..faaae1b9
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/hr.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "Bilješka"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Skočne bilješke"
+
+#. Name
+#: knotes_manager.desktop:2
+#, fuzzy
+msgid "Notes"
+msgstr "Bilješka"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr ""
diff --git a/translations/desktop_files/knotes-desktops/hu.po b/translations/desktop_files/knotes-desktops/hu.po
new file mode 100644
index 00000000..4f3a32bc
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/hu.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Feljegyzések"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Jegyzettömb"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Feljegyzések"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Helyi fájlban tárolt feljegyzések"
diff --git a/translations/desktop_files/knotes-desktops/is.po b/translations/desktop_files/knotes-desktops/is.po
new file mode 100644
index 00000000..0467c1a6
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/is.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Minnismiðar"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Litlir gulir miðar"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Minnismiðar"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Minnismiðar í staðbundinni skrá"
diff --git a/translations/desktop_files/knotes-desktops/it.po b/translations/desktop_files/knotes-desktops/it.po
new file mode 100644
index 00000000..c0f8ba57
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/it.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: 2020-11-29 07:59+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/knotes-desktop-files/it/>\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: Weblate 4.3.2\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "KNotes"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Note a comparsa"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Note"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Note in file locale"
diff --git a/translations/desktop_files/knotes-desktops/ja.po b/translations/desktop_files/knotes-desktops/ja.po
new file mode 100644
index 00000000..6bd2de79
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/ja.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "メモ"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "ポップアップメモ"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "メモ"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "ローカルファイルのメモ"
diff --git a/translations/desktop_files/knotes-desktops/kk.po b/translations/desktop_files/knotes-desktops/kk.po
new file mode 100644
index 00000000..1395a171
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/kk.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Жазбалар"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Қалқымалы жазбалар"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Жазбалар"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Жергілікті файлдағы жазбалар"
diff --git a/translations/desktop_files/knotes-desktops/km.po b/translations/desktop_files/knotes-desktops/km.po
new file mode 100644
index 00000000..23ca5a6b
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/km.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "ចំណាំ"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "ចំណាំ​លេចឡើង"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "ចំណាំ"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "ចំណាំ​ក្នុង​ឯកសារ​មូលដ្ឋាន"
diff --git a/translations/desktop_files/knotes-desktops/knotes-desktops.pot b/translations/desktop_files/knotes-desktops/knotes-desktops.pot
new file mode 100644
index 00000000..cbf0ab78
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/knotes-desktops.pot
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr ""
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr ""
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr ""
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr ""
diff --git a/translations/desktop_files/knotes-desktops/lt.po b/translations/desktop_files/knotes-desktops/lt.po
new file mode 100644
index 00000000..d6213268
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/lt.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Užrašai"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Pastabos lapeliuose"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Užrašai"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Užrašai vietinėje byloje"
diff --git a/translations/desktop_files/knotes-desktops/lv.po b/translations/desktop_files/knotes-desktops/lv.po
new file mode 100644
index 00000000..a8a65b64
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/lv.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "KPiezīmes"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Izlecošās Piezīmes"
+
+#. Name
+#: knotes_manager.desktop:2
+#, fuzzy
+msgid "Notes"
+msgstr "KPiezīmes"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr ""
diff --git a/translations/desktop_files/knotes-desktops/mk.po b/translations/desktop_files/knotes-desktops/mk.po
new file mode 100644
index 00000000..0495b4c7
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/mk.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "КБелешки"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Скок-белешки"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Белешки"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Белешки во локална датотека"
diff --git a/translations/desktop_files/knotes-desktops/ms.po b/translations/desktop_files/knotes-desktops/ms.po
new file mode 100644
index 00000000..8ba6bf69
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/ms.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Nota"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Nota Popup"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Nota"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Nota dalam fail setempat"
diff --git a/translations/desktop_files/knotes-desktops/mt.po b/translations/desktop_files/knotes-desktops/mt.po
new file mode 100644
index 00000000..dfb72cce
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/mt.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr ""
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Noti żgħar"
+
+#. Name
+#: knotes_manager.desktop:2
+#, fuzzy
+msgid "Notes"
+msgstr "Noti żgħar"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr ""
diff --git a/translations/desktop_files/knotes-desktops/nb.po b/translations/desktop_files/knotes-desktops/nb.po
new file mode 100644
index 00000000..330e7acd
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/nb.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr ""
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Sprettopp-notater"
+
+#. Name
+#: knotes_manager.desktop:2
+#, fuzzy
+msgid "Notes"
+msgstr "Sprettopp-notater"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notater i lokal fil"
diff --git a/translations/desktop_files/knotes-desktops/nds.po b/translations/desktop_files/knotes-desktops/nds.po
new file mode 100644
index 00000000..e497f59f
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/nds.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Notizen"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Opduk-Notizen"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notizen"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notizen in lokaal Datei"
diff --git a/translations/desktop_files/knotes-desktops/ne.po b/translations/desktop_files/knotes-desktops/ne.po
new file mode 100644
index 00000000..35708f04
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/ne.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "केडीई टिपोट"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "पपअप टिपोट"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "टिपोट"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "स्थानीय फाइलका टिपोट"
diff --git a/translations/desktop_files/knotes-desktops/nl.po b/translations/desktop_files/knotes-desktops/nl.po
new file mode 100644
index 00000000..0b247b08
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/nl.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Notities"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Notities"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notities"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notities in lokaal bestand"
diff --git a/translations/desktop_files/knotes-desktops/nn.po b/translations/desktop_files/knotes-desktops/nn.po
new file mode 100644
index 00000000..3b7ec896
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/nn.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Notat"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Sprettoppnotat"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notat"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notat i lokal fil"
diff --git a/translations/desktop_files/knotes-desktops/nso.po b/translations/desktop_files/knotes-desktops/nso.po
new file mode 100644
index 00000000..01b170e3
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/nso.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nso\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "KDitshwao"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Ditshwao tsa Thlarogo"
+
+#. Name
+#: knotes_manager.desktop:2
+#, fuzzy
+msgid "Notes"
+msgstr "KDitshwao"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr ""
diff --git a/translations/desktop_files/knotes-desktops/pl.po b/translations/desktop_files/knotes-desktops/pl.po
new file mode 100644
index 00000000..a1c07020
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/pl.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "Notatki"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Żółte karteczki"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notatki"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notatki w pliku lokalnym"
diff --git a/translations/desktop_files/knotes-desktops/pt.po b/translations/desktop_files/knotes-desktops/pt.po
new file mode 100644
index 00000000..c02069a1
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/pt.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Notas"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Notas"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notas"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notas num Ficheiro Local"
diff --git a/translations/desktop_files/knotes-desktops/pt_BR.po b/translations/desktop_files/knotes-desktops/pt_BR.po
new file mode 100644
index 00000000..dc095b0a
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/pt_BR.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Notas"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Notas instantâneas"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notas"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notas em Arquivo Local"
diff --git a/translations/desktop_files/knotes-desktops/ro.po b/translations/desktop_files/knotes-desktops/ro.po
new file mode 100644
index 00000000..0f3275ba
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/ro.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "Notiţe"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Notiţe personale"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notiţe"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr ""
diff --git a/translations/desktop_files/knotes-desktops/ru.po b/translations/desktop_files/knotes-desktops/ru.po
new file mode 100644
index 00000000..62f3149c
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/ru.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: 2024-04-12 16:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/knotes-desktop-files/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "KNotes"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Всплывающие заметки"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Заметки"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Заметки в локальном файле"
diff --git a/translations/desktop_files/knotes-desktops/se.po b/translations/desktop_files/knotes-desktops/se.po
new file mode 100644
index 00000000..4b3f5da1
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/se.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Nohtat"
+
+#. GenericName
+#: knotes.desktop:14
+#, fuzzy
+msgid "Popup Notes"
+msgstr "Nohtat"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Nohtat"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr ""
diff --git a/translations/desktop_files/knotes-desktops/sk.po b/translations/desktop_files/knotes-desktops/sk.po
new file mode 100644
index 00000000..ebcb4f95
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/sk.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Poznámky"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Vyskakujúce poznámky"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Poznámky"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Poznámky v lokálnom súbore"
diff --git a/translations/desktop_files/knotes-desktops/sl.po b/translations/desktop_files/knotes-desktops/sl.po
new file mode 100644
index 00000000..12a7d73c
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/sl.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "KNotice"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Prilepljajoče se notice"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notice"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Notice v krajevni datoteki"
diff --git a/translations/desktop_files/knotes-desktops/sr.po b/translations/desktop_files/knotes-desktops/sr.po
new file mode 100644
index 00000000..6c865f37
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/sr.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Белешке"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Искачуће напомене"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Белешке"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Забелешке у локалном фајлу"
diff --git a/translations/desktop_files/knotes-desktops/sr@Latn.po b/translations/desktop_files/knotes-desktops/sr@Latn.po
new file mode 100644
index 00000000..309b682b
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/sr@Latn.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Beleške"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Iskačuće napomene"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Beleške"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Zabeleške u lokalnom fajlu"
diff --git a/translations/desktop_files/knotes-desktops/sv.po b/translations/desktop_files/knotes-desktops/sv.po
new file mode 100644
index 00000000..6c7f9abe
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/sv.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "Knotes"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Anteckningslappar"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Anteckningar"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Anteckningar i lokal fil"
diff --git a/translations/desktop_files/knotes-desktops/ta.po b/translations/desktop_files/knotes-desktops/ta.po
new file mode 100644
index 00000000..8dde8582
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/ta.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "கேகுறிப்புகள்"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "தோன்றும் குறிப்புகள்"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "குறிப்புகள்"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "உள் கோப்பில் உள்ள குறிப்புகள்"
diff --git a/translations/desktop_files/knotes-desktops/tg.po b/translations/desktop_files/knotes-desktops/tg.po
new file mode 100644
index 00000000..4993d0d7
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/tg.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Ахборот"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Хабарҳои ошкоршаванда"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Ахборот"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Хабарҳо дар файли локалӣ"
diff --git a/translations/desktop_files/knotes-desktops/th.po b/translations/desktop_files/knotes-desktops/th.po
new file mode 100644
index 00000000..1fdb5f44
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/th.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: th\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "บันทึกช่วยจำ"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "บันทึกช่วยจำแบบป๊อพอัพ"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "บันทึกช่วยจำ"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr ""
diff --git a/translations/desktop_files/knotes-desktops/tr.po b/translations/desktop_files/knotes-desktops/tr.po
new file mode 100644
index 00000000..9ea2b7ca
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/tr.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Notlar"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Seyyar Notlar"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Notlar"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Yerel Dosyadaki Notlar"
diff --git a/translations/desktop_files/knotes-desktops/uk.po b/translations/desktop_files/knotes-desktops/uk.po
new file mode 100644
index 00000000..b282b506
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/uk.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: 2020-08-22 07:31+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/knotes-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "KNotes"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Вигулькні нотатки"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Примітки"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "Нотатки у локальному файлі"
diff --git a/translations/desktop_files/knotes-desktops/uz.po b/translations/desktop_files/knotes-desktops/uz.po
new file mode 100644
index 00000000..d22f2355
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/uz.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "Ёзма хотира"
+
+#. GenericName
+#: knotes.desktop:14
+#, fuzzy
+msgid "Popup Notes"
+msgstr "Ёзма хотира"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "Ёзма хотира"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr ""
diff --git a/translations/desktop_files/knotes-desktops/vi.po b/translations/desktop_files/knotes-desktops/vi.po
new file mode 100644
index 00000000..5c154604
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/vi.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: vi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr ""
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Ghi chép Popup"
+
+#. Name
+#: knotes_manager.desktop:2
+#, fuzzy
+msgid "Notes"
+msgstr "Ghi chép Popup"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr ""
diff --git a/translations/desktop_files/knotes-desktops/xh.po b/translations/desktop_files/knotes-desktops/xh.po
new file mode 100644
index 00000000..6f82505d
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/xh.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: xh\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr ""
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Ivelisa iincwadana"
+
+#. Name
+#: knotes_manager.desktop:2
+#, fuzzy
+msgid "Notes"
+msgstr "Ivelisa iincwadana"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr ""
diff --git a/translations/desktop_files/knotes-desktops/zh_CN.po b/translations/desktop_files/knotes-desktops/zh_CN.po
new file mode 100644
index 00000000..eb46306e
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/zh_CN.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+#, fuzzy
+msgid "KNotes"
+msgstr "便笺"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "弹出式记事本"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "便笺"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "本地文件中的便笺"
diff --git a/translations/desktop_files/knotes-desktops/zh_TW.po b/translations/desktop_files/knotes-desktops/zh_TW.po
new file mode 100644
index 00000000..9fe4f7b9
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/zh_TW.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr "KNotes 便利貼"
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "彈出式筆記本"
+
+#. Name
+#: knotes_manager.desktop:2
+msgid "Notes"
+msgstr "備忘錄"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr "本地檔備忘錄"
diff --git a/translations/desktop_files/knotes-desktops/zu.po b/translations/desktop_files/knotes-desktops/zu.po
new file mode 100644
index 00000000..7fa669db
--- /dev/null
+++ b/translations/desktop_files/knotes-desktops/zu.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:47+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: knotes.desktop:12
+msgid "KNotes"
+msgstr ""
+
+#. GenericName
+#: knotes.desktop:14
+msgid "Popup Notes"
+msgstr "Amapheshana Abhaliwe Aziphumelayo"
+
+#. Name
+#: knotes_manager.desktop:2
+#, fuzzy
+msgid "Notes"
+msgstr "Amapheshana Abhaliwe Aziphumelayo"
+
+#. Name
+#: local.desktop:2
+msgid "Notes in Local File"
+msgstr ""
diff --git a/translations/desktop_files/konsolekalendar.desktop/af.po b/translations/desktop_files/konsolekalendar.desktop/af.po
new file mode 100644
index 00000000..3f912589
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/af.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "Konsole Kalender"
diff --git a/translations/desktop_files/konsolekalendar.desktop/cs.po b/translations/desktop_files/konsolekalendar.desktop/cs.po
new file mode 100644
index 00000000..b992f7e0
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/cs.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "Konzolový kalendář"
diff --git a/translations/desktop_files/konsolekalendar.desktop/de.po b/translations/desktop_files/konsolekalendar.desktop/de.po
new file mode 100644
index 00000000..07cc5129
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/de.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "Konsolen-Kalender"
diff --git a/translations/desktop_files/konsolekalendar.desktop/eo.po b/translations/desktop_files/konsolekalendar.desktop/eo.po
new file mode 100644
index 00000000..5eb0b3f2
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/eo.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "KonzolKalendaro"
diff --git a/translations/desktop_files/konsolekalendar.desktop/fy.po b/translations/desktop_files/konsolekalendar.desktop/fy.po
new file mode 100644
index 00000000..4cb326c6
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/fy.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "Konsole-aginda"
diff --git a/translations/desktop_files/konsolekalendar.desktop/hi.po b/translations/desktop_files/konsolekalendar.desktop/hi.po
new file mode 100644
index 00000000..80304f0b
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/hi.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "कंसोल-कैलेंडर"
diff --git a/translations/desktop_files/konsolekalendar.desktop/hu.po b/translations/desktop_files/konsolekalendar.desktop/hu.po
new file mode 100644
index 00000000..1cbcebac
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/hu.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "Konsole-naptár"
diff --git a/translations/desktop_files/konsolekalendar.desktop/it.po b/translations/desktop_files/konsolekalendar.desktop/it.po
new file mode 100644
index 00000000..2e02dbe2
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/it.po
@@ -0,0 +1,23 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: 2020-11-22 12:59+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/konsolekalendar-konsolekalendardesktop/it/>\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: Weblate 4.3.2\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "KonsoleKalendar"
diff --git a/translations/desktop_files/konsolekalendar.desktop/ja.po b/translations/desktop_files/konsolekalendar.desktop/ja.po
new file mode 100644
index 00000000..7dcd2db7
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/ja.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "コンソールカレンダー"
diff --git a/translations/desktop_files/konsolekalendar.desktop/konsolekalendar.desktop.pot b/translations/desktop_files/konsolekalendar.desktop/konsolekalendar.desktop.pot
new file mode 100644
index 00000000..6edf81c7
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/konsolekalendar.desktop.pot
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr ""
diff --git a/translations/desktop_files/konsolekalendar.desktop/mk.po b/translations/desktop_files/konsolekalendar.desktop/mk.po
new file mode 100644
index 00000000..ff354e9b
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/mk.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "КонзоленКалендар"
diff --git a/translations/desktop_files/konsolekalendar.desktop/ms.po b/translations/desktop_files/konsolekalendar.desktop/ms.po
new file mode 100644
index 00000000..c0214de9
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/ms.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "Kalendar Konsole"
diff --git a/translations/desktop_files/konsolekalendar.desktop/nb.po b/translations/desktop_files/konsolekalendar.desktop/nb.po
new file mode 100644
index 00000000..dbf167a9
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/nb.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "KonsoleKalender"
diff --git a/translations/desktop_files/konsolekalendar.desktop/nds.po b/translations/desktop_files/konsolekalendar.desktop/nds.po
new file mode 100644
index 00000000..79febea4
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/nds.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "Konsole-Kalenner"
diff --git a/translations/desktop_files/konsolekalendar.desktop/ne.po b/translations/desktop_files/konsolekalendar.desktop/ne.po
new file mode 100644
index 00000000..d722ee23
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/ne.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "कन्सोल क्यालेन्डर"
diff --git a/translations/desktop_files/konsolekalendar.desktop/nl.po b/translations/desktop_files/konsolekalendar.desktop/nl.po
new file mode 100644
index 00000000..9e20fc8b
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/nl.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "Konsole-agenda"
diff --git a/translations/desktop_files/konsolekalendar.desktop/nn.po b/translations/desktop_files/konsolekalendar.desktop/nn.po
new file mode 100644
index 00000000..9ca62b46
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/nn.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "KonsoleKalender"
diff --git a/translations/desktop_files/konsolekalendar.desktop/pt.po b/translations/desktop_files/konsolekalendar.desktop/pt.po
new file mode 100644
index 00000000..09fcd48c
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/pt.po
@@ -0,0 +1,20 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Hugo Carvalho <hugokarvalho@hotmail.com>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr ""
diff --git a/translations/desktop_files/konsolekalendar.desktop/ro.po b/translations/desktop_files/konsolekalendar.desktop/ro.po
new file mode 100644
index 00000000..463b7d5c
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/ro.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "Calendar de consolă"
diff --git a/translations/desktop_files/konsolekalendar.desktop/ru.po b/translations/desktop_files/konsolekalendar.desktop/ru.po
new file mode 100644
index 00000000..078b41a6
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/ru.po
@@ -0,0 +1,24 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: 2024-04-05 18:44+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/konsolekalendar-konsolekalendardesktop/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "KonsoleKalendar"
diff --git a/translations/desktop_files/konsolekalendar.desktop/sr.po b/translations/desktop_files/konsolekalendar.desktop/sr.po
new file mode 100644
index 00000000..d5eb63ac
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/sr.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "Конзолни календар"
diff --git a/translations/desktop_files/konsolekalendar.desktop/sr@Latn.po b/translations/desktop_files/konsolekalendar.desktop/sr@Latn.po
new file mode 100644
index 00000000..22200c79
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/sr@Latn.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "Konzolni kalendar"
diff --git a/translations/desktop_files/konsolekalendar.desktop/ta.po b/translations/desktop_files/konsolekalendar.desktop/ta.po
new file mode 100644
index 00000000..7aa8241a
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/ta.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "கான்சோல் நாள்காட்டி"
diff --git a/translations/desktop_files/konsolekalendar.desktop/uk.po b/translations/desktop_files/konsolekalendar.desktop/uk.po
new file mode 100644
index 00000000..3bbd2e6e
--- /dev/null
+++ b/translations/desktop_files/konsolekalendar.desktop/uk.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-10 03:49+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: konsolekalendar.desktop:2
+msgid "KonsoleKalendar"
+msgstr "Календар для консолі"
diff --git a/translations/desktop_files/kontact-desktops/af.po b/translations/desktop_files/kontact-desktops/af.po
new file mode 100644
index 00000000..8548927b
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/af.po
@@ -0,0 +1,363 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact inprop module"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Strome"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator inprop module"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Kontakte"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Spesiale datums opsomming opstelling"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "email;summary;configure;settings;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Nuus"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notas"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Joernaal"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Afsprake en te-doen opsomming opstelling"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Afsprake en te-doen opsomming opstelling"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "calendar;todos;configure;settings;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalender"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Nuus tikker"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Nuus tikker opsomming opstelling"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+#, fuzzy
+msgid "news ticker; configure; settings;"
+msgstr "email;summary;configure;settings;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Nuus tikker komponent"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Spesiale datums"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Spesiale datums opsomming opstelling"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"birtday;anniversary; holiday; conifugre; settings; verjaarsdag; herdenking; "
+"vakansie;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Spesiale datums"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Spesiale datums opsomming komponent"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Algemene opstelling van Kontact se opsomming aansig"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Opsomming"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Spesiale datums opsomming komponent"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Toets inprop module"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact toets inprop module"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Weer diens"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Kontakte"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Personlike informasie bestuurder"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Kontakte"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Kontakte"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact inprop module"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Opsomming"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Spesiale datums opsomming"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Spesiale datums opsomming komponent"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Weer"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Nuus tikker komponent"
diff --git a/translations/desktop_files/kontact-desktops/ar.po b/translations/desktop_files/kontact-desktops/ar.po
new file mode 100644
index 00000000..aefe84bb
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/ar.po
@@ -0,0 +1,360 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "قابس Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+#, fuzzy
+msgid "Akregator Plugin"
+msgstr "قابس Kontact"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "المراسلون"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "الأخبار"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "الملاحظات"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "اليومية"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "التقويم"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "التواريخ المرقومة"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+#, fuzzy
+msgid "Special Dates Summary Setup"
+msgstr "موجز عن التواريخ المرموقة"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "التواريخ المرقومة"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "التواريخ المرقومة"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "الموجز"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr ""
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+#, fuzzy
+msgid "Kontact Test Plugin"
+msgstr "قابس Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "خدمة الطقس"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "المراسلون"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "منظم المعلومات الشخصي"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "المراسلون"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "المراسلون"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "قابس Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "الموجز"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "موجز عن التواريخ المرموقة"
+
+#. Comment
+#: src/kontact.setdlg:21
+#, fuzzy
+msgid "Special Dates Summary Component"
+msgstr "موجز عن التواريخ المرموقة"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "الطقس"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr ""
diff --git a/translations/desktop_files/kontact-desktops/az.po b/translations/desktop_files/kontact-desktops/az.po
new file mode 100644
index 00000000..c661cf7e
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/az.po
@@ -0,0 +1,351 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: az\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr ""
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr ""
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr ""
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr ""
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Xəbər Gözləyici"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Xəbər Gözləyici"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr ""
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr ""
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr ""
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr ""
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr ""
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr ""
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr ""
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr ""
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "Xəbər Gözləyici"
diff --git a/translations/desktop_files/kontact-desktops/be.po b/translations/desktop_files/kontact-desktops/be.po
new file mode 100644
index 00000000..45f7d013
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/be.po
@@ -0,0 +1,364 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Дапаўненне Кантакту"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+#, fuzzy
+msgid "Akregator Plugin"
+msgstr "Тэставае дапаўненне"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Кантакты"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+#, fuzzy
+msgid "email; summary; configure; settings;"
+msgstr ""
+"каляндар; заданні; настроіць; настаўленні; calendar; todos; configure; "
+"settings;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Навіны"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Нататкі"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+"каляндар; заданні; настроіць; настаўленні; calendar; todos; configure; "
+"settings;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Каляндар"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+#, fuzzy
+msgid "news ticker; configure; settings;"
+msgstr ""
+"каляндар; заданні; настроіць; настаўленні; calendar; todos; configure; "
+"settings;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+#, fuzzy
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"каляндар; заданні; настроіць; настаўленні; calendar; todos; configure; "
+"settings;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr ""
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Тэставае дапаўненне"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Тэставае дапаўненне Кантакту"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+#, fuzzy
+msgid "Weather Service"
+msgstr "Надвор'е"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr "Кантакт"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Кіраванне пэрсанальнай інфармацыяй"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Кантакт"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "кантакт;kontact;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Кантакт"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Надвор'е"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr ""
diff --git a/translations/desktop_files/kontact-desktops/bg.po b/translations/desktop_files/kontact-desktops/bg.po
new file mode 100644
index 00000000..10cd1f41
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/bg.po
@@ -0,0 +1,365 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Приставка на Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Новини"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Приставка за Akregator"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Приставка за Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Контакти"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Приставка за адресника"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "Таймер"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Приставка за KArm"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "Преглед на пощата"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "Настройки на обобщението на писмата"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+"резюме; общо; обобщение; пощенски; клиент; е-поща; email; summary; "
+"configure; settings;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "Е-поща"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "Модул за е-поща"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Новини"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "Приставка за KNode"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Бележки"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Приставка за бележки"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Дневник"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Приставка за KOrganizer"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Преглед на срещи и задачи"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Приставка за обобщен преглед на срещите и задачите"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "календар; задачи; организатор; calendar; todos; configure; settings;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Календар"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Приставка за KOrganizer"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Задачи"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Приставка за KOrganizer"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Приставка за KPilot"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+#, fuzzy
+msgid "News Ticker"
+msgstr "Компонент за новини"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Настройване обобщението на новините"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "новини; източник; настройки; news ticker; configure; settings;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Компонент за новини"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Преглед на специални случаи"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Настройки на специалните случаи"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"рождени; рожден; дни; ден; годишнина; годишнини; обобщение; birthday; "
+"anniversary; configure; settings;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Специални случаи"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Обобщение на специалните случаи"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "Обобщение"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Настройка на обобщението"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Обобщение"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Обобщение"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Приставка за тестване"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Приставка за проба"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Информация за времето"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Приставка за метеорологичното време"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Контакти"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Лична информация"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "Управление на личната информация"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "контакти; връзка; информация; личен; поща; бизнес; планиране; kontact;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Приставка на Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Обобщение"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Настройване на <b>Обобщение</b> на Kontact. Някои приставки предлагат "
+"<i>обобщение</i>, изберете тези, които искате да използвате."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Настройване на приставката за <b>KMail</b> в Kontact, включително "
+"обобщението и компонента."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Настройване на приставката за <b>KAdressbook</b> в Kontact, включително "
+"компонента."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Обобщение на специални случаи"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Модул за обобщение на специалните случаи"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Настройване на приставката за <b>KOrganizer</b> в Kontact, включително "
+"<i>обобщението</i> и <i>компонента</i>."
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Настройване на приставката за <b>KNode</b> в Kontact, включително компонента."
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Време"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Информация за времето"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Компонент за новини"
diff --git a/translations/desktop_files/kontact-desktops/br.po b/translations/desktop_files/kontact-desktops/br.po
new file mode 100644
index 00000000..245f8f53
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/br.po
@@ -0,0 +1,362 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Lugent Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Lugant Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Darempredoù"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Keleier"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notennoù"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Deizlevr"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Deiziadur"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Kliker keleier"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Kliker keleier"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Deiziadoù dibar"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+#, fuzzy
+msgid "Special Dates Summary Setup"
+msgstr "Deiziadoù dibar"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Deiziadoù dibar"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Deiziadoù dibar"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Diverrañ"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+#, fuzzy
+msgid "TestPlugin"
+msgstr "Lugant Akregator"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+#, fuzzy
+msgid "Kontact Test Plugin"
+msgstr "Lugent Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Servij an amzer"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Darempredoù"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Darempredoù"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Darempredoù"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Lugent Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Diverrañ"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+#, fuzzy
+msgid "Special Dates Summary"
+msgstr "Deiziadoù dibar"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Amzer"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "Kliker keleier"
diff --git a/translations/desktop_files/kontact-desktops/bs.po b/translations/desktop_files/kontact-desktops/bs.po
new file mode 100644
index 00000000..678f5f1f
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/bs.po
@@ -0,0 +1,358 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Dodatak za Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+#, fuzzy
+msgid "Akregator Plugin"
+msgstr "Dodatak za Kontact"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Kontakti"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "email; summary; configure; settings; sažetak; postavke;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Usenet"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Bilješke"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "calendar; todos; configure; settings; kalendar; zadaci; postavke;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalendar"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "news ticker; configure; settings; vijesti; newsticker; podešavanje;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+#, fuzzy
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "calendar; todos; configure; settings; kalendar; zadaci; postavke;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Opšte podešavanje Kontactovog prozora Sažetak"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Sažetak"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+#, fuzzy
+msgid "TestPlugin"
+msgstr "Kontact testni dodatak"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact testni dodatak"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+#, fuzzy
+msgid "Weather Service"
+msgstr "Vrijeme"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Kontakti"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Upravitelj ličnim informacijama"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Kontakti"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Kontakti"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Dodatak za Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Sažetak"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Vrijeme"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr ""
diff --git a/translations/desktop_files/kontact-desktops/ca.po b/translations/desktop_files/kontact-desktops/ca.po
new file mode 100644
index 00000000..cfacf098
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/ca.po
@@ -0,0 +1,365 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Endollable Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Enllaços"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Component lector d'enllaços (endollable de l'Akregator)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Endollable Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Contactes"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Component de contactes (endollable del KAdressbook)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "Cronòmetre"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Component de seguiment dels temps (endollable del KArm)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "Resum de correu"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "Configuració del resum de correu"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "correu-e; resum; configuració; arranjament;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "Correu"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "Component de correu (endollable del KMail)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Notícies"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "Component de notícies (endollable del KNode)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Component de notes (endollable del KNotes)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Diari"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Component de diari (endollable del KOrganizer)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Resum de cites i tasques pendents"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Configuració del resum de cites i tasques pendents"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "calendari; pendents; configuració; arranjament;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Calendari"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Component de calendari (endollable del KOrganizer)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Pendents"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Component de llista de pendents (endollable del KOrganizer)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Component d'eines de la Palm (endollable del KPilot)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Teletip de notícies"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Configuració del resum del teletip de notícies"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "teletip; configura; opcions;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Component de teletip de notícies"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Resum de dates especials"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Configuració del resum de les dates especials"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "data de naixement; aniversari; vacances; configuració; arranjament;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Dates especials"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Component de dates especials"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "Vista resum d'elements"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Configuració general de la vista de resum del Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Resum"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Component de vista resum"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Endollable de prova"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Endollable de prova per a Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Servei meteorològic"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Component del temps del Kontact"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Contactes"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Gestor d'informació personal"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "Kontact de TDE"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Contactes"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Endollable Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Vista de resum"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Configuració de la <b>vista de resum</b> del Kontact. Alguns endollables "
+"proporcionen elements de <i>vista de resum</i>, trieu-ne els que voldríeu "
+"llistar."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Configuració de l'endollable de correu <b>KMail</b> del Kontact, inclou un "
+"<i>element de vista de resum</i> i representa un <i>component del Kontact</"
+"i>."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Configuració de l'endollable de la llibreta d'adreces <b>KAdressbook</b> del "
+"Kontact, que representa un <i>component del Kontact</i>."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Resum de dates especials"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Component pel resum de dates especials"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Configuració de l'endollable de calendari <b>KOrganizer</b> del Kontact, "
+"inclou un <i>element de vista de resum</i> i representa un <i>component del "
+"Kontact</i>."
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Configuració de l'endollable de notícies <b>KNode</b> del Kontact, que "
+"representa un <i>component del Kontact</i>."
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Temps"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Component d'informació del temps"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Component de teletip de notícies"
diff --git a/translations/desktop_files/kontact-desktops/cs.po b/translations/desktop_files/kontact-desktops/cs.po
new file mode 100644
index 00000000..ab094bbb
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/cs.po
@@ -0,0 +1,360 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/kontact-desktop-files/cs/>\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: Weblate 4.8.1\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Modul aplikace Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Kanály"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Komponenta čtečky kanálů (modul Akregator)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Modul Akregatoru"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Kontakty"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Komponenta kontaktů (modul Kniha adres)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "Měřic času"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Komponenta měřiče času (modul KArm)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "Přehled emailů"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "Nastavení souhrnu emailů"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "email;souhrn;nastavení;nastavit;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "Email"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "Komponenta poštovního klienta (modul KMail)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Diskusní skupiny"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "Komponenta diskusních skupin (modul KNode)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Poznámky"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Komponenta poznámek (modul KNotes)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Deník"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Komponenta deníku (modul KOrganizer)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Přehled schůzek a úkolů"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Nastavení souhrnu schůzek a úkolů"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "kalendář;úkoly;nastavit;nastavení;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalendář"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Komponenta kalendáře (modul KOrganizer)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Úkoly"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Komponenta seznamu úkolů (modul KOrganizer)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr "Palm"
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Komponenta nástrojů pro Palm (modul KPilot)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Novinky"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Nastavení souhrnu novinek"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "novinky;nastavení;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Komponenta novinek"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Přehled speciálních dat"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Nastavení souhrnu speciálních dat"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "narozeniny;výročí;nastavení;nastavit;svátek;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Speciální data"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Komponenta souhrnu speciálních příležitostí"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "Položky souhrnného pohledu"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Obecné nastavení souhrnného pohledu pro Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Souhrn"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Komponenta souhrnného pohledu"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Testovací modul"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Testovací modul aplikace Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Služba počasí"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Komponenta služby počasí"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr "Kontakt"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Správce osobních informací"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "TDE Kontakt"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "kontakt;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr "Výchozí nastavení TDE Kontaktu"
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr "Styl Kontaktu"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr "Nastavení připomínající MS Outlook"
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr "Styl Outlook "
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Souhrnný pohled"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Nastavení <b>souhrnného pohledu</b> Konaktu. Některé moduly poskytují "
+"položky pro <i>souhrnný pohled</i>. Vyberte takové, které chcete zobrazit."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Nastavení modulu poštovního klienta Kontaktu – <b>KMail</b>, obsahuje "
+"položku <i>souhrnného pohledu</i> a představuje <i>komponentu Kontaktu</i>."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Nastavení modulu knihy adres Kontaktu – <b>KAddressbook</b>, která "
+"představuje <i>komponentu Kontaktu</i>."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Souhrn speciálních dat"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Komponenta souhrnu speciálních příležitostí"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Nastavení modulu kalendáře Kontaktu – <b>KOrganizer</b>, obsahuje položku "
+"<i>souhrnného pohledu</i> a představuje <i>komponentu Kontaktu</i>."
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Nastavení modulu diskusních skupin Kontaktu – <b>KNode</b>, který "
+"představuje <i>komponentu Kontaktu</i>."
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Počasí"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Komponenta informací o počasí"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Komponenta novinek"
diff --git a/translations/desktop_files/kontact-desktops/cy.po b/translations/desktop_files/kontact-desktops/cy.po
new file mode 100644
index 00000000..0790d69b
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/cy.po
@@ -0,0 +1,356 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Ategyn Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+#, fuzzy
+msgid "Akregator Plugin"
+msgstr "AtegynPrawf"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Cysylltau"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Newyddion"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Nodiadau"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Dyddlyfr"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Calendr"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Ticer Newyddion"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Ticer Newyddion"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Crynodeb"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "AtegynPrawf"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Ategyn Prawf Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "GwasanaethTywydd"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Cysylltau"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Rheolydd Gwybodaeth Personol"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "Kontact TDE"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Cysylltau"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Ategyn Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Crynodeb"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Tywydd"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "Ticer Newyddion"
diff --git a/translations/desktop_files/kontact-desktops/da.po b/translations/desktop_files/kontact-desktops/da.po
new file mode 100644
index 00000000..2c62cda9
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/da.po
@@ -0,0 +1,368 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact-plugin"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Kilder"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Feed-læserkomponent (Akregator-plugin)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+#, fuzzy
+msgid "Akregator Plugin"
+msgstr "Kontact-plugin"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Kontakter"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Kontaktkomponent (KAddressbook-plugin)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Time Tracker-komponent (KArm-plugin)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "Oversigt over e-mail"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "Opsætning af post-opsummering"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "e-mail; opsummering; indstil; opsætning;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "E-mail"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "Post-komponent (KMail-plugin)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Nyheder"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "Nyhedskomponent (KNode-plugin)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Noter"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Notatkomponent (KNotes-plugin)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Journalkomponent (KOrganizer-plugin)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Oversigt over møder og gøremål"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Indstilling af oversigt over møder og gøremål"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "kalender; gøremål; indstil; opsætning;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalender"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Kalenderkomponent (KOrganizer-plugin)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Gøremål"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Komponent til gøremålsliste (KOrganizer-plugin)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Komponent til palm-værktøjer (KPilot-plugin)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Nyhedstelegraf"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Nyhedstelegrafs opsætning af opsummering"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "nyhedstelegraf; indstil; opsætning;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Nyhedstelegraf-komponent"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Oversigt over særlige datoer"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Opsummering af opsætning af særlige datoer"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "fødselsdag; årsdag; helligdage; indstil; opsætning;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Særlige datoer"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Komponent til særlige datoer"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+#, fuzzy
+msgid "Summary View Items"
+msgstr "Opsummeringsvisning"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Generel indstilling af Kontact's sammendragsvisning"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Opsummering"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Komponent for opsummeringsvisning"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+#, fuzzy
+msgid "TestPlugin"
+msgstr "Kontact Test-plugin"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact Test-plugin"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Vejrtjeneste"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Vejrkomponent til Kontact"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Kontakter"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Personlig informationshåndtering"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Kontakter"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Kontakter"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact-plugin"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Opsummeringsvisning"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Konfiguration af Kontacts <b>Opsummeringsvisning</b>. Nogle plugins giver "
+"<i>Opsummeringsvisning</i>-elementer, vælg dem du ønsker på listen."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Konfiguration af Kontacts e-mail-plugin <b>KMail</b>, inkluderer et "
+"<i>Opsummeringsvisnings-element</i> og repræsenterer en <i>Kontact-"
+"komponent</i>."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Konfiguration af Kontacts adressebog-plugin <b>KAdressbook</b> som "
+"repræsenterer en <i>Kontact-komponent</i>."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Opsummering af særlige datoer"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Opsummeringskomponent for særlige datoer"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Konfiguration af Kontacts kalender-plugin <b>KOrganizer</b>, inkluderer et "
+"<i>Opsummeringsvisningselement</i> og repræsenterer en <i>Kontact-komponent</"
+"i>."
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Konfiguration af Kontacts nyheds-plugin <b>KNode</b> som repræsenterer en "
+"<i>Kontact-komponent</i>."
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Vejr"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Komponent til vejrinformation"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Nyhedstelegraf-komponent"
diff --git a/translations/desktop_files/kontact-desktops/de.po b/translations/desktop_files/kontact-desktops/de.po
new file mode 100644
index 00000000..bd82bf28
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/de.po
@@ -0,0 +1,364 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact-Modul"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Feeds"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Feedreader Komponente"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator-Modul"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Kontakte"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Adressbuch-Komponente (KAddressbook-Modul)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "Stoppuhr"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Zeiterfassungskomponente (KArm-Modul)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "E-Mail-Übersicht"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "Einstellungen für E-Mail-Übersicht"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "E-Mail;email;Übersicht;einstellen;Einstellungen;Einrichten;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "E-Mail"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "E-Mail-Komponente (KMail-Modul)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Usenet"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "News-Komponente (KNode-Modul)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notizen"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Notizen-Komponente (KNotes-Modul)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Journal-Komponente (KOrganizer-Modul)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Übersicht über Termine und Aufgaben"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Einstellung der Übersicht über Termine und Aufgaben"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "Kalender;Aufgaben;einstellen;Einstellungen;Einrichten;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalender"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Kalender-Komponente (KOrganizer-Modul)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Aufgaben"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Aufgabenlisten-Komponente (KOrganizer-Modul)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr "KPilot-Einrichtung"
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Palm Werkzeuge (KPilot-Modul)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Newsticker"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Einstellung der News-übersicht"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "Newsticker;Einrichten;Einstellungen;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Newsticker-Komponente"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Übersicht über besondere Termine"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Einstellung der Übersicht über besondere Termine"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "Geburtstag;Jahrestag;Feiertag;einstellen;Einstellungen;Einrichten;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Besondere Termine"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Komponente für Übersicht über besondere Termine"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "Übersichtseinträge"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Allgemeine Einstellungen für die Übersichtsansicht von Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Übersicht"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Übersichtskomponente"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "TestModul"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Test-Modul für Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Wetterdienst"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Wetter-Komponente für Kontact"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Kontakte"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Persönlicher Informationsmanager"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "Kontact"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "Kontact;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact-Modul"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Übersicht"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Einrichtung der <b>Zusammenfassungsansicht</b> von Kontact. Einige Kontact-"
+"Module stellen Elemente für die <i>Zusammenfassungsansicht</i> zur "
+"Verfügung. Wählen Sie hier, welche Elemente angezeigt werden sollen."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Einrichtung des E-Mail-Moduls <b>KMail</b> für Kontact. Die E-Mail-"
+"Komponente kann als <i>Kontact-Komponente<i> in die "
+"<i>Zusammenfassungsansicht</i> integriert werden."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Einrichtung des Adressbuch-Moduls für Kontact, welches eine <i>Kontact-"
+"Komponente</i> repräsentiert."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Übersicht über besondere Termine"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Komponente für Übersicht über besondere Termine"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Einrichtung des Kalender-Moduls <b>KOrganizer</b> für Kontact, "
+"einschließlich der <i>Zusammenfassungsansicht</i>; repräsentiert eine "
+"<i>Kontact-Komponente</i>"
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Einrichtung des News-Moduls <b>KNode</b> für Kontact; repräsentiert eine "
+"<i>Kontact-Komponente</i>"
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Wetter"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Komponente für Wetterinformationen"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Newsticker-Komponente"
diff --git a/translations/desktop_files/kontact-desktops/el.po b/translations/desktop_files/kontact-desktops/el.po
new file mode 100644
index 00000000..e35991de
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/el.po
@@ -0,0 +1,365 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Πρόσθετο Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Ροές"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Συστατικό ανάγνωσης ροών (Πρόσθετο του Akregator)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Πρόσθετο του Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Επαφές"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Συστατικό επαφών (Πρόσθετο του KAdressbook)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "Χρονόμετρο"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Συστατικό γραμμής χρόνου (Πρόσθετο του KArm)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "Επισκόπηση αλληλογραφίας"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "Ρύθμιση σύνοψης αλληλογραφίας"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "αλληλογραφία; σύνοψη; ρύθμιση; ρυθμίσεις;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "Αλληλογραφία"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "Συστατικό αλληλογραφίας (Πρόσθετο του KMail)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Νέα"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "Συστατικό ανάγνωσης νέων (Πρόσθετο του KNode)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Σημειώσεις"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Συσταικό σημειώσεων (Πρόσθετο του KNotes)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Χρονικό"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Συστατικό χρονικών (Πρόσθετο του KOrganizer)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Επισκόπηση ραντεβού και προς υλοποίηση εργασιών"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Ρύθμιση ραντεβού και προς υλοποίηση εργασιών"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "ημερολόγιο; προς υλοποίηση; ρύθμιση; ρυθμίσεις;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Ημερολόγιο"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Συστατικό ημερολογίου (Πρόσθετο του KOrganizer)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Προς υλοποίηση εργασίες"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Συστατικό λίστα προς υλοποίηση εργασιών (Πρόσθετο του KOrganizer)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Συστατικό εργαλείων Palm (Πρόσθετο του KPilot)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Προβολέας ειδήσεων"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Περίληψη ρύθμισης προβολέα ρυθμίσεων"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "προβολέας ειδήσεων; ρύθμιση; ρυθμίσεις;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Συστατικό προβολέα ειδήσεων"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Επισκόπηση σημαντικών ημερομηνιών"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Ρύθμιση σύνοψης σημαντικών ημερομηνιών"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "γενέθλια; επέτειος; εορτή; ρύθμιση; ρυθμίσεις;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Σημαντικές ημερομηνίες"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Συστατικό σημαντικών ημερομηνιών"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "Αντικείμενα προβολής σύνοψης"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Γενικές ρυθμίσεις της Προβολής Σύνοψης του Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Σύνοψη"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Συστατικό προβολής σύνοψης"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Πρόσθετο ελέγχου"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Δοκιμαστικό πρόσθετο του Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Υπηρεσία πρόβλεψης Καιρού"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Συστατικό καιρού του Kontact"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Επαφές"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Προσωπικός διαχειριστής πληροφοριών"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Επαφές"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Επαφές"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Πρόσθετο Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Προβολή σύνοψης"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Ρύθμιση της <b>Προβολής σύνοψης</b> του Kontact. Κάποια πρόσθετα παρέχουν "
+"αντικείμενα <i>Προβολή σύνοψης</i>· επιλέξτε αυτά που θέλετε να εμφανίζονται."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Η ρύθμιση του προσθέτου αλληλογραφίας <b>KMail</b> του Kontact, περιέχει ένα "
+"<i>Αντικείμενο προβολής σύνοψης</i> και αντιπροσωπεύει ένα <i>Συστατικό του "
+"Kontact</i>."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Ρύθμιση του πρόσθετου βιβλίου διευθύνσεων <b>KAdressbook</b> του Kontact που "
+"αντιπροσωπεύει ένα <i>Συστατικό του Kontact</i>."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Σύνοψη σημαντικών ημερομηνιών"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Στοιχείο σύνοψης Σημαντικών Ημερομηνιών"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Η ρύθμιση του προσθέτου ημερολογίου του <b>KOrganizer</b> του Kontact, "
+"περιέχει ένα <i>Αντικείμενο προβολής σύνοψης</i> και αντιπροσωπεύει ένα "
+"<i>Συστατικό του Kontact</i>."
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Ρύθμιση του πρόσθετου νέων <b>KNode</b> του Kontact που αντιπροσωπεύει ένα "
+"<i>Συστατικό του Kontact</i>."
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Καιρός"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Συστατικό πληροφοριών καιρού"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Συστατικό προβολέα ειδήσεων"
diff --git a/translations/desktop_files/kontact-desktops/eo.po b/translations/desktop_files/kontact-desktops/eo.po
new file mode 100644
index 00000000..c79e10d5
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/eo.po
@@ -0,0 +1,361 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+#, fuzzy
+msgid "Kontact Plugin"
+msgstr "Kontact-Testkromaĵo"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Fluoj"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator-kromaĵo"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Kontaktoj"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Novaĵoj"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notoj"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Ĵurnalo"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalendaro"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Novaĵprezentilo"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Novaĵprezentila Komponanto"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Novaĵprezentila Komponanto"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Specialaj Datoj"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+#, fuzzy
+msgid "Special Dates Summary Setup"
+msgstr "Resumo pri Specialaj Datoj"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Specialaj Datoj"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Specialdatresuma Komponanto"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Resumo"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Specialdatresuma Komponanto"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Testo-kromaĵo"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact-Testkromaĵo"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Veterservo"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Kontaktoj"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Persona Inform-Mastrumilo"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Kontaktoj"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Kontaktoj"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact-Testkromaĵo"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Resumo"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Resumo pri Specialaj Datoj"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Specialdatresuma Komponanto"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Vetero"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Novaĵprezentila Komponanto"
diff --git a/translations/desktop_files/kontact-desktops/es.po b/translations/desktop_files/kontact-desktops/es.po
new file mode 100644
index 00000000..62453e5f
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/es.po
@@ -0,0 +1,361 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Plugin Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Orígenes"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Extensión de Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Contactos"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Configuración del resumen de las fechas especiales"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "correo; resumen; configurar; opciones;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Noticias"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notas"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Diario"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Configuración del resumen de citas y de tareas pendientes"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Configuración del resumen de citas y de tareas pendientes"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "calendario; tareas pendientes; configurar; opciones;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Calendario"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Teletipo de noticias"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Configuración del resumen del teletipo de noticias"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "teletipo de noticias; configurar; opciones;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Componente de teletipo de noticias"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Fechas especiales"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Configuración del resumen de las fechas especiales"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "cumpleaños; aniversario; vacaciones; configurar; preferencias;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Fechas especiales"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Componente de resumen de fechas especiales"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Configuración general de la vista del resumen de Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Resumen"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Componente de resumen de fechas especiales"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+#, fuzzy
+msgid "TestPlugin"
+msgstr "Plugin de prueba para Kontact"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Plugin de prueba para Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Servicio meteorológico"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Contactos"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Gestor de información personal"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Contactos"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Contactos"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Plugin Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Resumen"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Resumen de fechas especiales"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Componente de resumen de fechas especiales"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Meteorología"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Componente de teletipo de noticias"
diff --git a/translations/desktop_files/kontact-desktops/et.po b/translations/desktop_files/kontact-desktops/et.po
new file mode 100644
index 00000000..2ffef1e4
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/et.po
@@ -0,0 +1,360 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontacti plugin"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Uudisevood"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Uudistevoogude plugin (Akregator)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregatori plugin"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Kontaktid"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Kontaktide plugin (TDE aadressiraamat)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "Ajaarvestaja"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Ajaarvestaja plugin (KArm)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "E-posti ülevaade"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "E-posti kokkuvõtte seadistus"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "e-post; meil; seadistamine; seadistused;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "E-post"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "E-posti plugin (KMail)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Uudisegrupid"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "Uudistelugeja plugin (KNode)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Märkmed"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Märkmete plugin (KNotes)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Päevik"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Päevikuplugin (KOrganizer)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Kohtumised ja ülesannete ülevaade"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Kohtumiste ja ülesannete kokkuvõtte seadistus"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "kalender; ülesanded; seadistamine; seadistused;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalender"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Kalendriplugin (KOrganizer)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Ülesanded"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Ülesannete nimekirja plugin (KOrganizer)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Palmi tööriistade plugin (KPilot)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Uudistejälgija"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Uudistejälgija kokkuvõtte seadistus"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "uudistejälgija; seadistamine; seadistused;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Uudistejälgija plugin"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Tähtpäevade ülevaade"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Tähtpäevade kokkuvõtte seadistus"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "sünnipäev; tähtpäev; pidupäev; seadistamine; seadistused;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Tähtpäevad"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Tähtpäevade plugin"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "Kokkuvõttevaate elemendid"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Kontacti kokkuvõttevaate üldised seadistused"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Kokkuvõte"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Kokkuvõttevaate plugin"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+#, fuzzy
+msgid "TestPlugin"
+msgstr "Kontacti testplugin"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontacti testplugin"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Ilmateade"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Kontacti ilmaplugin"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Kontaktid"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Personaalse info haldur"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Kontaktid"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Kontaktid"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontacti plugin"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Kokkuvõttevaade"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Kontacti <b>kokkuvõttevaate</b> seadistamine. Mõned pluginad pakuvad "
+"<i>kokkuvõttevaate</i> elemente. Vali nimekirjas need, mida soovid näha."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Kontacti e-posti plugina <b>KMaili</b> seadistamine, mis sisaldab "
+"<i>kokkuvõttevaate elementi</i>."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr "Kontacti aadressiraamatu plugina <b>KAdressbook</b> seaditamine."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Tähtpäevade kokkuvõte"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Tähtpäevade kokkuvõtte komponent"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Kontacti kalendriplugina <b>KOrganizeri</b> seadistamine, mis sisaldab "
+"<i>kokkuvõttevaate elementi</i>."
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr "Kontacti uudisteplugina <b>KNode</b> seadistamine."
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Ilm"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Ilmateate komponent"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Uudistejälgija komponent"
diff --git a/translations/desktop_files/kontact-desktops/eu.po b/translations/desktop_files/kontact-desktops/eu.po
new file mode 100644
index 00000000..c15b149e
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/eu.po
@@ -0,0 +1,361 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact plugin-a"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Iturriak"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator plugin-a"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Kontaktuak"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Data berezien laburpenen konfigurazioa"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "eposta; laburpena; konfiguratu; ezarpenak;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Berriak"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Oharrak"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Egunkaria"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Hitzordu eta egitekoen laburpenen konfigurazioa"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Hitzordu eta egitekoen laburpenen konfigurazioa"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "egutegia; egitekoak; konfiguratu; ezarpenak;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Egutegia"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Berri markatzailea"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Berri markatzailearen laburpenaren konfigurazioa"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "berri markatzaileak; konfiguratu; ezarpenak;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Berri markatzaile osagaia"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Data bereziak"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Data berezien laburpenen konfigurazioa"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "urtebetezea; urteurrena; jaia; konfiguratu; ezarpenak;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Data bereziak"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Data berezien laburpenaren osagaia"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Kontact-en laburpen ikuspegiaren konfigurazio orokorra"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Laburpena"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Data berezien laburpenaren osagaia"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+#, fuzzy
+msgid "TestPlugin"
+msgstr "Kontact-en proba plugin-a"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact-en proba plugin-a"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Eguraldiaren zerbitzua"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Kontaktuak"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Informazio pertsonalaren kudeatzailea"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Kontaktuak"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Kontaktuak"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact plugin-a"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Laburpena"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Data berezien laburpena"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Data berezien laburpenaren osagaia"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Eguraldia"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Berri markatzaile osagaia"
diff --git a/translations/desktop_files/kontact-desktops/fa.po b/translations/desktop_files/kontact-desktops/fa.po
new file mode 100644
index 00000000..cd970c37
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/fa.po
@@ -0,0 +1,360 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "وصلۀ Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "خوراندنها"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "وصلۀ Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "تماسها"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "برپایی خلاصۀ تاریخهای ویژه"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "email، خلاصه، پیکربندی، تنظیمات;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "اخبار"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "یادداشتها"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "نشریه"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "برپایی خلاصۀ قرار ملاقاتها و کارهایی که باید انجام شوند"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "برپایی خلاصۀ قرار ملاقاتها و کارهایی که باید انجام شوند"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "تقویم، کارهای انجامی، پیکربندی، تنظیمات;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "تقویم"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Ticker اخبار"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "برپایی خلاصۀTicker اخبار"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "ticker اخبار، پیکربندی، تنظیمات;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "مؤلفۀ Ticker اخبار"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "تاریخهای ویژه"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "برپایی خلاصۀ تاریخهای ویژه"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "تولد، جشن سالانه، تعطیلات، پیکربندی، تنظیمات;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "تاریخهای ویژه"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "مؤلفۀ خلاصۀ تاریخهای ویژه"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "پیکربندی عمومی نمای خلاصۀ Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "خلاصه"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "مؤلفۀ خلاصۀ تاریخهای ویژه"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "وصلۀ آزمون"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "وصلۀ آزمون Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "خدمت آب و هوا"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "تماسها"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "مدیر اطلاعات شخصی"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "تماسها"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "تماسها"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "وصلۀ Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "خلاصه"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "خلاصۀ تاریخهای ویژه"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "مؤلفۀ خلاصۀ تاریخهای ویژه"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "آب و هوا"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "مؤلفۀ Ticker اخبار"
diff --git a/translations/desktop_files/kontact-desktops/fi.po b/translations/desktop_files/kontact-desktops/fi.po
new file mode 100644
index 00000000..9b362877
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/fi.po
@@ -0,0 +1,360 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact-liitännäinen"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Syötteet"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator-liitännäinen"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Yhteystiedot"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Erikoispäivien yhteenvedon asetukset"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "sähköposti; yhteenveto; asetukset;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Uutiset"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Muistio"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Päiväkirja"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Tapaamiset ja tehtävät -yhteenvedon asetukset"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Tapaamiset ja tehtävät -yhteenvedon asetukset"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "kalenteri; tehtävät; muokkaa; asetukset;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalenteri"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Uutisnäytin"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Uutisnäyttimen yhteenvedon asetukset"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "uutiset; asetukset; muokkaa;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Uutiskomponentti"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Erikoispäivät"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Erikoispäivien yhteenvedon asetukset"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "syntymäpäivä; juhlapäivä; loma; aseta; asetukset;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Erikoispäivät"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Erikoispäivien yhteenvedon komponentti"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Kontactin yhteenvetonäkymän yleiset asetukset"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Yhteenveto"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Erikoispäivien yhteenvedon komponentti"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+#, fuzzy
+msgid "TestPlugin"
+msgstr "Kontactin testiliitännäinen"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontactin testiliitännäinen"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Sääpalvelu"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Yhteystiedot"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Henkilötietojen hallinta"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "Kontact"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Yhteystiedot"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact-liitännäinen"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Yhteenveto"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Erikoispäivien yhteenveto"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Erikoispäivien yhteenvedon komponentti"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Sää"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Uutiskomponentti"
diff --git a/translations/desktop_files/kontact-desktops/fr.po b/translations/desktop_files/kontact-desktops/fr.po
new file mode 100644
index 00000000..b0a155a8
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/fr.po
@@ -0,0 +1,360 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Module Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Flux"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Module pour Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr ""
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Configuration du résumé des dates particulières"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+"message;messagerie;courrier;résumé;vue;configurer;paramètres;paramètre;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Nouvelles"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Configuration du résumé des évènements et des tâches"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Configuration du résumé des évènements et des tâches"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "calendrier;agenda;tâches;configurer;paramètres;paramètre;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Calendrier"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Téléscripteur de nouvelles"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Configuration du résumé du téléscripteur de nouvelles"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "configurer;paramètre;news ticker; téléscripteur;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Composant d'affichage de nouvelles"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Dates particulières"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Configuration du résumé des dates particulières"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"anniversaire;date de naissance;vacances;configurer;paramètres;préférences;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Dates particulières"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Composant de résumé des dates particulières"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Configuration générale de la vue résumée de Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Résumé"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Composant de résumé des dates particulières"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Module de test"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Module de test pour Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "KWeatherService"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Module Kontact"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Gestionnaire d'informations personnelles"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr ""
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr ""
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Module Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Résumé"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Résumé des dates particulières"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Composant de résumé des dates particulières"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Météo"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Composant d'affichage de nouvelles"
diff --git a/translations/desktop_files/kontact-desktops/fy.po b/translations/desktop_files/kontact-desktops/fy.po
new file mode 100644
index 00000000..f1471fdf
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/fy.po
@@ -0,0 +1,363 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+#, fuzzy
+msgid "Kontact Plugin"
+msgstr "Kontact Test-plugin"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Nijsoanfier"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregatorplugin"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Adressen"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Spesjale datums oersichts opset"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "email;e-mail;e-post;oersicht;gearfetting;ynstellings; konfiguraasje;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Nijs"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notysjes"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Journaal"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Oersichtsynstellings foar eveneminten en taken"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Oersichtsynstellings foar eveneminten en taken"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "kalinder;aginda;taken;todo;ynstellings;konfiguraasje;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Aginda"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Nijs Tikker"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Oersichtsynstellings nijstikker"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "newsticker;instellingen;ynstellings;configuratie;nieuws;nijs;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Nijstikkerkomponint"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Spesjale datums"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Spesjale datums oersichts opset"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"verjaardag;jubileum;vakantie;instellingen;configuratie;feestdag; jierdei; "
+"fakânsje; ynstellings; feestdei;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Spesjale datums"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Komponint foar oersicht fan spesjale datums"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Algemiene ynstellings fan Kontact's oersichtswerjefte"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Oersicht"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Komponint foar oersicht fan spesjale datums"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Test-plugin"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact Test-plugin"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Waarberjocht"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Adressen"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Adressen"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Adressen"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact Test-plugin"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Oersicht"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Oersicht foar spesjale datums"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Komponint foar oersicht fan spesjale datums"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "It waar"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Nijstikkerkomponint"
diff --git a/translations/desktop_files/kontact-desktops/ga.po b/translations/desktop_files/kontact-desktops/ga.po
new file mode 100644
index 00000000..53f7ced4
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/ga.po
@@ -0,0 +1,362 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Breiseán Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Fothaí"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Breiseán Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Teagmhálacha"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "ríomhphost; achoimre; cumraigh; socruithe;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Nuacht"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Nótaí"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Iris"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "féilire; tascanna; cumraigh; socruithe;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Féilire"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+#, fuzzy
+msgid "news ticker; configure; settings;"
+msgstr "ríomhphost; achoimre; cumraigh; socruithe;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Dátaí Speisialta"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+#, fuzzy
+msgid "Special Dates Summary Setup"
+msgstr "Dátaí Speisialta"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+#, fuzzy
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "féilire; tascanna; cumraigh; socruithe;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Dátaí Speisialta"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Dátaí Speisialta"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Achoimre"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+#, fuzzy
+msgid "TestPlugin"
+msgstr "Breiseán Akregator"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+#, fuzzy
+msgid "Kontact Test Plugin"
+msgstr "Breiseán Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Seirbhís Aimsire"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Teagmhálacha"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Teagmhálacha"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Teagmhálacha"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Breiseán Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Achoimre"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+#, fuzzy
+msgid "Special Dates Summary"
+msgstr "Dátaí Speisialta"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Aimsir"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr ""
diff --git a/translations/desktop_files/kontact-desktops/gl.po b/translations/desktop_files/kontact-desktops/gl.po
new file mode 100644
index 00000000..4f1ddb7f
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/gl.po
@@ -0,0 +1,361 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Extensión de Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Fontes"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Extensión para Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Contactos"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Configuración do Resumo de Datas Especiais"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "email; resumo; configurar; opcións;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Novas"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notas"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Xornal"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Configuración de sumarios de tarefas e notas"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Configuración de sumarios de tarefas e notas"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "calendario; pendentes; configurar; opcións;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Calendario"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Colector de Novas"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Configuración do Resumo de Fontes de Novas"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "capturador de novas; configurar; opcións;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Compoñente de Fonte de Novas"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Datas Especiais"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Configuración do Resumo de Datas Especiais"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "cumpreanos; aniversario; vacacións; configurar; opcións;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Datas Especiais"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Compoñente de Resumo de Datas Especiais"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Configuración xeral para a vista de resumo de Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Resumo"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Compoñente de Resumo de Datas Especiais"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+#, fuzzy
+msgid "TestPlugin"
+msgstr "Extensión de Proba para Kontact"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Extensión de Proba para Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Servicio do Tempo"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Contactos"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Xestor de Información Persoal"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Contactos"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Contactos"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Extensión de Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Resumo"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Resumo de Datas Especiais"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Compoñente de Resumo de Datas Especiais"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "O Tempo"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Compoñente de Fonte de Novas"
diff --git a/translations/desktop_files/kontact-desktops/he.po b/translations/desktop_files/kontact-desktops/he.po
new file mode 100644
index 00000000..87a17ab0
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/he.po
@@ -0,0 +1,365 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "תוסף Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "ערוצים"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "תוסף עבור Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "אנשי קשר"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "תצורת תאריכים מיוחדים"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+"email; summary; configure; settings; דוא\"ל; תקציר; תצורה; הגדרת; דואל; "
+"דואר; דואר אלקטרוני;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "חדשות"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "פתקים"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "יומן"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+"calendar; todos; configure; settings; יומן; יומנים; משימות; מטלות; הגדרות; "
+"תצורה;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "לוח שנה"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "חדשות רצות"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "הגדרות תקציר חדשות רצות"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "news ticker; configure; settings; חדשות; תצורה; הגדרות;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "תאריכים מיוחדים"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "תצורת תאריכים מיוחדים"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"birthday; anniversary; holiday; configure; settings; יום הולדת; הולדת; שנה; "
+"יום שנה; חג; חגים; תצורה; הגדרות;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "תאריכים מיוחדים"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "רכיב תאריכים חשובים"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "תקציר"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "רכיב תאריכים חשובים"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "תוסף ניסיון"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "תוסף ניסיון עבור Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "שירות מזג אוויר"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "אנשי קשר"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "מנהל מידע אישי"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "אנשי קשר"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "אנשי קשר"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "תוסף Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "תקציר"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "תקציר תאריכים מיוחדים"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "רכיב תאריכים חשובים"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "מזג אוויר"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "חדשות רצות"
diff --git a/translations/desktop_files/kontact-desktops/hi.po b/translations/desktop_files/kontact-desktops/hi.po
new file mode 100644
index 00000000..b38f6143
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/hi.po
@@ -0,0 +1,355 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "कॉन्टेक्ट प्लगइन"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+#, fuzzy
+msgid "Akregator Plugin"
+msgstr "टेस्ट-प्लगइन"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "सम्पर्कों"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "समाचार"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "टीप"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "कैलेन्डर"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "न्यूज टिकर"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "न्यूज टिकर"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "सारांश"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "टेस्ट-प्लगइन"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "कॉन्टेक्ट जांच प्लगइन"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+#, fuzzy
+msgid "Weather Service"
+msgstr "वेदर"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr "कॉन्टेक्ट"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "निजी जानकारी प्रबंधक"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "केडीई कॉन्टेक्ट"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "कॉन्टेक्ट;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "कॉन्टेक्ट"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "सारांश"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "वेदर"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "न्यूज टिकर"
diff --git a/translations/desktop_files/kontact-desktops/hr.po b/translations/desktop_files/kontact-desktops/hr.po
new file mode 100644
index 00000000..fcc6ded2
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/hr.po
@@ -0,0 +1,353 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr ""
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+#, fuzzy
+msgid "Akregator Plugin"
+msgstr "Probni dodatak"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr ""
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr ""
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Ticker sa novostima"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Ticker sa novostima"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr ""
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Probni dodatak"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+#, fuzzy
+msgid "Kontact Test Plugin"
+msgstr "Probni dodatak"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr ""
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr ""
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr ""
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr ""
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr ""
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "Ticker sa novostima"
diff --git a/translations/desktop_files/kontact-desktops/hu.po b/translations/desktop_files/kontact-desktops/hu.po
new file mode 100644
index 00000000..3fe1d895
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/hu.po
@@ -0,0 +1,359 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact-bővítőmodul"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Hírforrások"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator bővítőmodul"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Névjegyek"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "A fontos dátumok áttekintőjének beállításai"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "e-mail;áttekintés;konfigurálás;beállítások;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Hírek"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Feljegyzések"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Napló"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "A találkozók és feladatok áttekintőjének beállítása"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "A találkozók és feladatok áttekintőjének beállítása"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "naptár;feladatok;konfigurálás;beállítások;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Naptár"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "RSS hírmegjelenítő"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "A hírmegjelenítő áttekintőjének beállításai"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "hírmegjelenítő;konfigurálás;beállítások;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Hírmegjelenítő komponens"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Fontos dátumok"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "A fontos dátumok áttekintőjének beállításai"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "születésnap;évforduló;szabadság;konfigurálás;beállítások;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Fontos dátumok"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "A fontos dátumok áttekintő komponense"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "A Kontact áttekintő nézetének beállításai"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Áttekintő"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "A fontos dátumok áttekintő komponense"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Tesztmodul"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact tesztmodul"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Időjárás"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Névjegyek"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Információkezelő"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Névjegyek"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "kapcsolat;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact-bővítőmodul"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Áttekintő"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "A fontos dátumok áttekintője"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "A fontos dátumok áttekintő komponense"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Időjárás"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Hírmegjelenítő komponens"
diff --git a/translations/desktop_files/kontact-desktops/id.po b/translations/desktop_files/kontact-desktops/id.po
new file mode 100644
index 00000000..883f7147
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/id.po
@@ -0,0 +1,351 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: id\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr ""
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr ""
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr ""
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr ""
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Ticker Berita"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Ticker Berita"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr ""
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr ""
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr ""
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr ""
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr ""
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr ""
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr ""
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr ""
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "Ticker Berita"
diff --git a/translations/desktop_files/kontact-desktops/is.po b/translations/desktop_files/kontact-desktops/is.po
new file mode 100644
index 00000000..6eade932
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/is.po
@@ -0,0 +1,360 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact íforrit"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Fréttastraumar"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator íforrit"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Tengiliðir"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Yfirlitsuppsetning sérstakra daga"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "tölvupóstur; yfirlit; stillingar; stilla;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Fréttir"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Minnismiðar"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Dagbók"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Uppsetning á yfirliti yfir fundi og verkþætti"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Uppsetning á yfirliti yfir fundi og verkþætti"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "dagatal; verkþættir; stillingar; stilla;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Dagatal"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Fréttastrimill"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Uppsetning á yfirliti yfir fréttastrimla"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "fréttastrimill; stillingar; stilla;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Fréttastrimilshluti"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Sérstakir dagar"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Yfirlitsuppsetning sérstakra daga"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "afmæli; frídagar; stillingar; stilla;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Sérstakir dagar"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Yfirlitshluti sérstakra daga"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Almennar stillingar fyrir Kontact yfirlitssýn"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Yfirlit"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Yfirlitshluti sérstakra daga"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Prufu íforrit"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact prufu íforrit"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Veðurþjónusta"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Tengiliðir"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Persónulegur upplýsingastjórnandi"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Tengiliðir"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Tengiliðir"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact íforrit"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Yfirlit"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Yfirlit sérstakra daga"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Yfirlitshluti sérstakra daga"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Veður"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Fréttastrimilshluti"
diff --git a/translations/desktop_files/kontact-desktops/it.po b/translations/desktop_files/kontact-desktops/it.po
new file mode 100644
index 00000000..cac49eaf
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/it.po
@@ -0,0 +1,361 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2023-02-02 02:22+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kontact-desktop-files/it/>\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: Weblate 4.15.2\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Plugin Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Fonti"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Componente lettore fonti (plugin Akregator)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Plugin aKregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Contatti"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Componente contatti (plugin KAddressbook)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "Timer"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Componente segna-tempo (plugin Karm)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "Panoramica posta elettronica"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "Impostazioni sommario posta elettronica"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "posta elettronica; email; sommario; configura; impostazioni;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "Posta elettronica"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "Componente posta elettronica (plugin KMail)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Notizie"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "Componente lettore di news (plugin KNode)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Note"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Componente note (plugin KNotes)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Diario"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Componente diario (plugin KOrganizer)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Panoramica appuntamenti e cose da fare"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Impostazioni sommario appuntamenti e cose da fare"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "calendario; cose da fare; configura; impostazioni;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Calendario"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Componente calendario (plugin KOrganizer)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Cose da fare"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Componente elenco delle cose da fare (plugin KOrganizer)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr "Palm"
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Componente strumenti Palm (plugin KPilot)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Ticker notizie"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Impostazioni sommario ticker notizie"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "ticker notizie; configura; impostazioni;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Componente ticker notizie"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Panoramica delle date speciali"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Impostazioni per le date speciali"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "compleanno; anniversario; vacanze; configura; impostazioni;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Date speciali"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Componente per le date speciali"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "Elementi vista sommario"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Configurazione generale della vista sommario di Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Sommario"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Componente vista sommario"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Plugin Test"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Plugin test Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Servizio meteorologico"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Componente meteorologico di Kontact"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr "Kontact"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Gestione informazioni personali"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "TDE Kontact"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "contatti;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr "Impostazioni predefinite di TDE Kontact"
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr "Stile Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr "Impostazioni simili a MS Outlook"
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr "Style Outlook "
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Vista sommario"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Configurazione della <b>vista sommario</b> di Kontact. Alcuni plugin "
+"forniscono elementi di <i>vista sommario</i>, scegli quelli che desideri "
+"vedere nell'elenco."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Configurazione del plugin di posta elettronica <b>KMail</b> di Kontact, "
+"include una <i>vista sommario</i> e rappresenta un <i>componente Kontact</i>."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Configurazione del plugin rubrica di <b>KAddressbook</b> che rappresenta un "
+"<i>componente Kontact</i>."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Sommario date speciali"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Componente sommario per le date speciali"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Configurazione del plugin calendario <b>KOrganizer</b> di Kontact, include "
+"una <i>vista sommario</i> e rappresenta un <i>componente Kontact</i>."
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Configurazione del plugin notizie <b>KNode</b> di Kontact, che rappresenta "
+"un <i>componente Kontact</i>."
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Tempo meteorologico"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Informazioni meteorologiche"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Ticker notizie"
diff --git a/translations/desktop_files/kontact-desktops/ja.po b/translations/desktop_files/kontact-desktops/ja.po
new file mode 100644
index 00000000..f25c2fe7
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/ja.po
@@ -0,0 +1,355 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact プラグイン"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "フィード"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "フィードリーダーコンポーネント (Akregator プラグイン)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator プラグイン"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "コンタクト"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "アドレス帳コンポーネント (KAddressbook プラグイン)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "タイマー"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "タイムトラッカーコンポーネント (KArm プラグイン)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "メールの要約"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "メール要約の設定"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "メール;要約;設定;設定;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "メール"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "メールコンポーネント (KMail プラグイン)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "ニュース"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "ニュースリーダーコンポーネント (KNode プラグイン)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "メモ"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "メモコンポーネント (KNotes プラグイン)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "ジャーナル"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "ジャーナルコンポーネント (KOrganizer プラグイン)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "約束と To-Do の要約"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "約束と To-Do の要約設定"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "カレンダー; To-Do; 設定;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "カレンダー"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "カレンダーコンポーネント (KOrganizer プラグイン)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "To-Do"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "To-Do リストコンポーネント (KOrganizer プラグイン)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Palm ツールコンポーネント (KPilot プラグイン)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "ニュースティッカー"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "ニュースティッカーの設定"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "ニュースティッカー;設定;設定;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "ニュースティッカーコンポーネント"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "特別な日の要約"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "特別な日の要約設定"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "誕生日;記念日;休日;設定;設定;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "特別な日"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "特別な日コンポーネント"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "要約ビューの項目"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Kontact の要約表示の一般的な設定"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "要約"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "要約ビューコンポーネント"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "テストプラグイン"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact テストプラグイン"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "気象サービス"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Kontact 気象情報コンポーネント"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "コンタクト"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "個人情報マネージャ"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "コンタクト"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "コンタクト"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact プラグイン"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "要約ビュー"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Kontact の要約ビューの設定。要約ビューの項目を提供するプラグインがいくつかあ"
+"ります。要約ビューに表示させる項目を選択してください。"
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "特別な日の要約"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "特別な日の要約コンポーネント"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "気象情報"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "気象情報コンポーネント"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "ニュースティッカーコンポーネント"
diff --git a/translations/desktop_files/kontact-desktops/kk.po b/translations/desktop_files/kontact-desktops/kk.po
new file mode 100644
index 00000000..35edca57
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/kk.po
@@ -0,0 +1,360 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact модулі"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Ақпарлар"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator модулі"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Контакттар"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Ерекше күндер тұжырымының баптауы"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Жаңалықтар"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Жазбалар"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Күнделік"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Кездесулер мен Жоспарлар тұжырымының баптау"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Кездесулер мен Жоспарлар тұжырымының баптау"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Күнтізбе"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Жаңалық таспасы"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Жаңалық таспасының тұжырымынын баптау"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Жаңалық таспасының компоненті"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Ерекше күндер"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Ерекше күндер тұжырымының баптауы"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Ерекше күндер"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Ерекше күндер тұжырымының компоненті"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Тұжырымдаманың жалпы параметрлері"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Тұжырым"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Ерекше күндер тұжырымының компоненті"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Сынақ модулі"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Сынақ модулі"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Ауа райы қызметі"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Контакттар"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Дербес Ақпарат Менеджері"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Контакттар"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Контакттар"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact модулі"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Тұжырым"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Ерекше күндер тұжырымы"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Ерекше күндер тұжырымының компоненті"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Ауа райы"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Жаңалық таспасының компоненті"
diff --git a/translations/desktop_files/kontact-desktops/km.po b/translations/desktop_files/kontact-desktops/km.po
new file mode 100644
index 00000000..20436b81
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/km.po
@@ -0,0 +1,360 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "កម្មវិធី​ជំនួយ Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "មតិព័ត៌មាន"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "កម្មវិធី​ជំនួយ Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "ទំនាក់ទំនង"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "រៀបចំ​សេចក្ដី​សង្ខេប​ថ្ងៃ​ពិសេស"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "អ៊ីមែល;សង្ខេប;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "ព័ត៌មាន"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "ចំណាំ"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "ទិនានុប្បវត្តិ"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "រៀបចំ​សេចក្ដី​សង្ខេប​ការ​ណាត់ និង​ការងារ​ត្រូវ​ធ្វើ"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "រៀបចំ​សេចក្ដី​សង្ខេប​ការ​ណាត់ និង​ការងារ​ត្រូវ​ធ្វើ"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "ប្រតិទិន;ការងារ​ត្រូវ​ធ្វើ;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "ប្រតិទិន"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "កម្មវិធី​ទទួល​ព័ត៌មាន"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "រៀបចំ​សេចក្ដី​សង្ខេប​កម្មវិធី​ទទួល​ព័ត៌មាន"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "កម្មវិធី​ទទួល​ព័ត៌មាន;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "សមាសភាគ​កម្មវិធី​ទទួល​ព័ត៌មាន"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "ថ្ងៃ​ពិសេស"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "រៀបចំ​សេចក្ដី​សង្ខេប​ថ្ងៃ​ពិសេស"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "ថ្ងៃ​ខួប​កំណើត;បុណ្យ​ខួប;វិស្សមកាល;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "ថ្ងៃ​ពិសេស"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "សមាសភាគ​សង្ខេប​នៃ​ថ្ងៃ​ពិសេស"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "ការ​កំណត់​រចនាសម្ព័ន្ធ​ទូទៅ​នៃ​ទិដ្ឋភាព​សង្ខេប​របស់ Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "សង្ខេប"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "សមាសភាគ​សង្ខេប​នៃ​ថ្ងៃ​ពិសេស"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "កម្មវិធី​ជំនួយ​ការ​សាកល្បង"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "កម្មវិធី​ជំនួយ​ការ​សាកល្បង​ក្នុង Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "សេវា​អាកាសធាតុ"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "ទំនាក់ទំនង"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "កម្មវិធី​គ្រប់គ្រង​ព័ត៌មាន​ផ្ទាល់​ខ្លួន"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "ទំនាក់ទំនង"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "ទំនាក់ទំនង"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "កម្មវិធី​ជំនួយ Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "សង្ខេប"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "សង្ខេប​ថ្ងៃ​ពិសេស"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "សមាសភាគ​សង្ខេប​នៃ​ថ្ងៃ​ពិសេស"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "អាកាសធាតុ"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "សមាសភាគ​កម្មវិធី​ទទួល​ព័ត៌មាន"
diff --git a/translations/desktop_files/kontact-desktops/kontact-desktops.pot b/translations/desktop_files/kontact-desktops/kontact-desktops.pot
new file mode 100644
index 00000000..e33e850a
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/kontact-desktops.pot
@@ -0,0 +1,349 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr ""
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr ""
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr ""
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr ""
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr ""
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr ""
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr ""
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr ""
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr ""
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr ""
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr ""
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr ""
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr ""
diff --git a/translations/desktop_files/kontact-desktops/lt.po b/translations/desktop_files/kontact-desktops/lt.po
new file mode 100644
index 00000000..2ff0472a
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/lt.po
@@ -0,0 +1,369 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact priedas"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Kanalai"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator priedas"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Kontaktai"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Ypatingų datų santraukos sąranka"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+"email; summary; configure; settings; e. paštas; santrauka; konfigūruoti; "
+"nustatymai;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Naujienos"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Užrašai"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Dienynas"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Susitikimų ir užduočių santraukos nustatymai"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Susitikimų ir užduočių santraukos nustatymai"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+"calendar; todos; configure; settings; kalendorius; darbai; konfigūruoti; "
+"nustatymai;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalendorius"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "News pranešėjas"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "News Ticker santraukos nustatymai"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+"news ticker; configure; settings; konfigūravimas; nustatymai; naujienų "
+"pranešėjas;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Naujienų pranešėjo komponentas"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Ypatingos datos"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Ypatingų datų santraukos sąranka"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"birthday; anniversary; holiday; configure; settings; konfigūruoti; "
+"nustatymai; gimtadieniai; išeiginės;sukaktys;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Ypatingos datos"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Ypatingų dienų santraukos komponentas"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Kontact Santraukos vaizdo bendrasis konfigūravimas"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Santrauka"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Ypatingų dienų santraukos komponentas"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+#, fuzzy
+msgid "TestPlugin"
+msgstr "Kontact bandymo priedas"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact bandymo priedas"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Orų tarnyba"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Kontaktai"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Asmeninės informacijos tvarkyklė"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Kontaktai"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Kontaktai"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact priedas"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Santrauka"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Ypatingų dienų santrauka"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Ypatingų dienų santraukos komponentas"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Orų pranešėjas"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Naujienų pranešėjo komponentas"
diff --git a/translations/desktop_files/kontact-desktops/lv.po b/translations/desktop_files/kontact-desktops/lv.po
new file mode 100644
index 00000000..da09f286
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/lv.po
@@ -0,0 +1,351 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr ""
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr ""
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr ""
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr ""
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Ziņu Tikkers"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Ziņu Tikkers"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr ""
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr ""
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr ""
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr ""
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr ""
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr ""
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr ""
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr ""
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "Ziņu Tikkers"
diff --git a/translations/desktop_files/kontact-desktops/mk.po b/translations/desktop_files/kontact-desktops/mk.po
new file mode 100644
index 00000000..623a46f9
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/mk.po
@@ -0,0 +1,367 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Приклучок за Контакт"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Приклучок за Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Контакти"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Поставувања за прегледот на специјални датуми"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+"email; summary; configure; settings; е-пошта; преглед; конфигурација; "
+"поставувања;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Вести"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Белешки"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Поставување на преглед за состаноци и задачи"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Поставување на преглед за состаноци и задачи"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+#, fuzzy
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+"email; summary; configure; settings; е-пошта; преглед; конфигурација; "
+"поставувања;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Календар"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Поставувања за прегледот на специјални датуми"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+#, fuzzy
+msgid "news ticker; configure; settings;"
+msgstr ""
+"email; summary; configure; settings; е-пошта; преглед; конфигурација; "
+"поставувања;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Специјални датуми"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Поставувања за прегледот на специјални датуми"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"birthday; anniversary; holiday; configure; settings; роденден; годишнина; "
+"конфигурирање; конфигурација; поставувања;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Специјални датуми"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Компонента за преглед на специјални датуми"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Општа конфигурација на прегледот на Контакт"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Преглед"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Компонента за преглед на специјални датуми"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Приклучок за тест"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Приклучок за тест на Контакт"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Временска прогноза"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr "Контакт"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Менаџер на лични информации"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "TDE Контакт"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "kontact;контакт;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Контакт"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Преглед"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Преглед на специјални датуми"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Компонента за преглед на специјални датуми"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Време"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr ""
diff --git a/translations/desktop_files/kontact-desktops/ms.po b/translations/desktop_files/kontact-desktops/ms.po
new file mode 100644
index 00000000..b79ed431
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/ms.po
@@ -0,0 +1,360 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Plugin Kontact "
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Suapan"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Plugin Akregator "
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Orang hubungan"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Setup Ringkasan Tarikh Khusus"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "e-mel; ringkasan; konfigur; seting;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Berita"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Nota"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Jurnal"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "kalendar; tugasan; konfigur; seting;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalendar"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Pengetik Berita"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Setup Ringkasan Tarikh Khusus"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "Pengetik berita; konfigur; seting;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Komponen Pengetik Berita"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Tarikh Khusus"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Setup Ringkasan Tarikh Khusus"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "tarikh lahir; ulang tahun; cuti; konfigur; seting;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Tarikh Khusus"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Komponen Ringkasan Tarikh Khusus"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Konfigurasi Am Paparan Ringkasan Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Ringkasan"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Komponen Ringkasan Tarikh Khusus"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Plugin Ujian"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Plugin Ujian Kontact "
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+#, fuzzy
+msgid "Weather Service"
+msgstr "Cuaca"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Orang hubungan"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Pengurus Makumat Peribadi"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "Kontact TDE "
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Orang hubungan"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Plugin Kontact "
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Ringkasan"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Ringkasan Tarikh Khusus"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Komponen Ringkasan Tarikh Khusus"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Cuaca"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Komponen Pengetik Berita"
diff --git a/translations/desktop_files/kontact-desktops/nb.po b/translations/desktop_files/kontact-desktops/nb.po
new file mode 100644
index 00000000..fae377a2
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/nb.po
@@ -0,0 +1,360 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact-programtillegg"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Kanaler"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akgregator-programtillegg"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+#, fuzzy
+msgid "Contacts"
+msgstr "kontact; kontakt;"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Sammendragsoppsett for spesielle datoer"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "e-post; sammendrag; oppsett; innstillinger;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Njus"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Dagbok"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Oppsett av sammendraget av gjøremål og avtaler"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Oppsett av sammendraget av gjøremål og avtaler"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "kalender; gjørelister; oppsett; innstillinger;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalender"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Nyhetstelegraf"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Oppsett av sammendraget til nyhetstelegrafen"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "nyhetstelegraf; oppsett; innstillinger;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Komponent for Nyhetstelegraf"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Spesielle datoer"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Sammendragsoppsett for spesielle datoer"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "fødselsdag; jubileum; ferie; sette opp; innstillinger;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Spesielle datoer"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Komponent for sammendrag av spesielle datoer"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Generelt oppsett av Kontact's sammendragsoversikt"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Sammendrag"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Komponent for sammendrag av spesielle datoer"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Test-programtillegg"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact test-programtillegg"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Værtjeneste"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "kontact; kontakt;"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Personlig informasjonsbehandler"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "kontact; kontakt;"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "kontact; kontakt;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact-programtillegg"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Sammendrag"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Sammendrag av spesielle datoer"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Komponent for sammendrag av spesielle datoer"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Været"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Komponent for Nyhetstelegraf"
diff --git a/translations/desktop_files/kontact-desktops/nds.po b/translations/desktop_files/kontact-desktops/nds.po
new file mode 100644
index 00000000..f6d1db5c
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/nds.po
@@ -0,0 +1,361 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact-Moduul"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Narichtenströöm"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Stroomleser-Komponent (Akregator-Moduul)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator-Moduul"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Kontakten"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Kontakten-Komponent (KAddressbook-Moduul)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "Tietgever"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Tietlogbook-Komponent (KArm-Moduul)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "Nettpost-Översicht"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "Instellen för Nettpost-Översicht"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "Nettpost;Nettbreef;Översicht;instellen;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "Nettpost"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "Nettpost-Komponent (KMail-Moduul)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Narichten"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "Narichtenkieker-Komponent (KNode-Moduul)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notizen"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Notizen-Komponent (KNotes-Moduul)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Daagbook"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Daagböker-Komponent (KOrganizer-Moduul)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Termin- un Opgaven-Översicht"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Termin- un Opgaven-Översicht instellen"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "Kalenner;Opgaven;Opgaav;instellen;Mööt;Möten;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalenner"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Kalenner-Komponent (KOrganizer-Moduul)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Opgaav"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Opgavenlist-Komponent (KOrganizer-Moduul)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr "Palmreekner"
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Palmreekner-Warktüüchkomponent (KPilot-Moduul)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Narichten-Ticker"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Narichten-Översicht instellen"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "Narichten-Ticker; instellen;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Narichtentelegraaf-Komponent"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Översicht besünner Daten"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Översicht över besünner Daag instellen"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "Geboortsdag;Johrdag;Fierdag;instellen;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Besünner Daag"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Komponent för besünner Daten"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "Översicht-Indrääg"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Allgemeen Instellen för de Översichtansicht von Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Översicht"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Översicht-Komponent"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Testmoduul"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Test-Moduul för Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Wederdeenst"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Kontact-Wederkomponent"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Kontakten"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Pleger för persöönliche Informatschonen"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "TDE-Kontact"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "Kontact;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact-Moduul"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Översicht"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Kontact sien <b>Översicht</b> instellen. En Reeg Modulen stellt Indrääg för "
+"de <i>Översicht</i> praat. Hier kannst Du de utsöken, de Du hebben wullt."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Kontact sien Nettpost-Moduul <b>KMail</b> instellen. Stellt en <i>Översicht-"
+"Indrag</i> praat un is en <i>Kontact-Komponent</i>."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Kontact sien Adressbook-Moduul <b>KAddressbook</b> instellende, dat en "
+"<i>Kontact-Komponent</i> is."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Översicht över besünner Daag"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Översichtkomponent för besünner Daag"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Kontact sien Kalenner-Moduul <b>KOrganizer</b> instellen. Stellt en "
+"<i>Översicht-Indrag</i> praat un is en <i>Kontact-Komponent</i>."
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Kontact sien Narichten-Moduul <b>KNode</b> instellen, dat en <i>Kontact-"
+"Komponent</i> is."
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Weder"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Wederinformatschonen-Komponent"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Narichtentelegraaf-Komponent"
diff --git a/translations/desktop_files/kontact-desktops/ne.po b/translations/desktop_files/kontact-desktops/ne.po
new file mode 100644
index 00000000..716f3b3a
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/ne.po
@@ -0,0 +1,357 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "सम्पर्क प्लगइन"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "फिड"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "एक्रिगेटर प्लगइन"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "सम्पर्क"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "विशेष मिति सारांश सेटअप"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "इमेल; सारांश; कन्फिगर; सेटिङ;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "समाचार"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "टिपोट"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "जर्नल"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "भेटघाट र गर्नुपर्ने कार्यहरूको सारांश सेटअप"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "भेटघाट र गर्नुपर्ने कार्यहरूको सारांश सेटअप"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "क्यालेन्डर; गर्नुपर्ने कार्यहरू; कन्फिगर; सेटिङ;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "क्यालेन्डर"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "न्यूज टिकर"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "न्यूज टिकर सारांश सेटअप"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "न्यूज टिकर; कन्फिगर; सेटिङ;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "समाचार टिकर अवयव"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "विशेष मिति"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "विशेष मिति सारांश सेटअप"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "जन्मदिन; वार्षिकोत्सव; बिदा; कन्फिगर; सेटिङ;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "विशेष मिति"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "विशेष मिति सारांश अवयव"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "सम्पर्कको सारांश दृश्यको साधारण कन्फिगरेसन"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "सारांश"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "विशेष मिति सारांश अवयव"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "परीक्षण प्लगइन"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "परीक्षण प्लगइनमा सम्पर्क गर्नुहोस्"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "मौसम कार्य"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr "सम्पर्क गर्नुहोस्"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "व्यक्तिगत सूचना प्रबन्धक"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "केडीई सम्पर्क"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "सम्पर्क;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "सम्पर्क गर्नुहोस्"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "सारांश"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "विशेष मिति सारांश"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "विशेष मिति सारांश अवयव"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "मौसम"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "समाचार टिकर अवयव"
diff --git a/translations/desktop_files/kontact-desktops/nl.po b/translations/desktop_files/kontact-desktops/nl.po
new file mode 100644
index 00000000..0cac82fb
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/nl.po
@@ -0,0 +1,365 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+#, fuzzy
+msgid "Kontact Plugin"
+msgstr "Kontact Test-plugin"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Component om feeds te lezen (Akregator-plugin)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregatorplugin"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Adressen"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Adresboekcomponent (KAddressbook-plugin)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "Tijdklok"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Tijdsregistratiecomponent (KArm-plugin)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "E-mailoverzicht"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "Instellingen voor e-mailoverzicht"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "email;e-mail;overzicht;samenvatting;instellingen;configuratie;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "E-mail"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "E-mailcomponent (KMail-plugin)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Nieuws"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "Nieuwscomponent (KNode-plugin)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notities"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Notitiecomponent (KNotes-plugin)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Journaal"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Journaalcomponent (KOrganizer-plugin)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Overzicht van evenementen en taken"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Overzichtsinstellingen voor evenementen en taken"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "kalender;agenda;taken;todo;instellingen;configuratie;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Agenda"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Agendacomponent (KOrganizer-plugin)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Takenlijst"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Takenlijstcomponent (KOrganizer-plugin)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr "PalmOS(tm)-apparaat"
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Component met hulpmiddelen voor PalmOS(tm)-apparaten (KPilot-plugin)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+#, fuzzy
+msgid "News Ticker"
+msgstr "Newstickercomponent"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Overzichtsinstellingen nieuwsticker"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "newsticker;instellingen;configuratie;nieuws;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Nieuwstickercomponent"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Overzicht van speciale data"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Instellingen voor speciale data in overzicht"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "verjaardag;jubileum;vakantie;instellingen;configuratie;feestdag;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Speciale data"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Component voor overzicht van speciale data"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "Overzichtsweergave-items"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Algemene instellingen van Kontact's overzichtsweergave"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Overzicht"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Overzichtsweergaveitem"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Test-plugin"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact Test-plugin"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Weerbericht"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Kontact Weercomponent"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Adressen"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Adressen"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Adressen"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact Test-plugin"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Overzichtsweergave"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Configuratie van Kontacts <b>Overzichtsweergave</b>. Sommige plugins bieden "
+"ook items aan voor de <i>Overzichtweergave</i>, kies welke u wilt zien."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Instellingen voor Kontacts e-mailplugin <b>KMail</b>. Bevat een "
+"<i>Overzichtsweergaveplugin</i> en een <i>Kontact-component</i>."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Instellingen voor Kontacts adresboekplugin <b>KMail</b>. Bevat een "
+"<i>Kontact-component</i>."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Overzicht voor speciale data"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Component voor overzicht van speciale data"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Instellingen voor Kontacts agendaplugin <b>KOrganizer</b>. Bevat een "
+"<i>Overzichtsweergaveplugin</i> en een <i>Kontact-component</i>."
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Instellingen voor Kontacts nieuwsplugin <b>KNode</b>. Bevat een <i>Kontact-"
+"component</i>."
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Het weer"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Weerinformatiecomponent"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Newstickercomponent"
diff --git a/translations/desktop_files/kontact-desktops/nn.po b/translations/desktop_files/kontact-desktops/nn.po
new file mode 100644
index 00000000..cbfb1ac0
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/nn.po
@@ -0,0 +1,362 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact-programtillegg"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Kanalar"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator-programtillegg"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Kontaktar"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Oppsett av samandrag for spesielle datoar"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "e-post;samandrag;oppsett;innstillingar;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Nyheiter"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notat"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Dagbok"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Oppsett av samandrag av avtalar og oppgåver"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Oppsett av samandrag av avtalar og oppgåver"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "kalender;hugselister;oppsett;innstillingar;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalender"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Nyheitstelegraf"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Oppsett av nyhendetelegrafsamandrag"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "nyhendetelegraf;oppsett;innstillingar;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Nyhendetelegrafkomponent"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Spesielle datoar"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Oppsett av samandrag for spesielle datoar"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"fødselsdag;bursdag;gebursdag;jubileum;ferie;helgedag;merkedag;oppsett;"
+"innstillingar;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Spesielle datoar"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Komponent for samandrag for spesielle datoar"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Generelt oppsett av samandragsvisinga i Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Samandrag"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Komponent for samandrag for spesielle datoar"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Test-programtillegg"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact, test-programtillegg"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Vêrmelding"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Kontaktar"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Personleg informasjonshandtering"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Kontaktar"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Kontaktar"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact-programtillegg"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Samandrag"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Samandrag for spesielle datoar"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Komponent for samandrag for spesielle datoar"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Vêrmelding"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Nyhendetelegrafkomponent"
diff --git a/translations/desktop_files/kontact-desktops/nso.po b/translations/desktop_files/kontact-desktops/nso.po
new file mode 100644
index 00000000..66b5ce6b
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/nso.po
@@ -0,0 +1,351 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nso\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr ""
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+#, fuzzy
+msgid "Akregator Plugin"
+msgstr "Plugin ya Teko"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr ""
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr ""
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr ""
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Plugin ya Teko"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+#, fuzzy
+msgid "Kontact Test Plugin"
+msgstr "Plugin ya Teko"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr ""
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr ""
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr ""
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr ""
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr ""
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr ""
diff --git a/translations/desktop_files/kontact-desktops/pa.po b/translations/desktop_files/kontact-desktops/pa.po
new file mode 100644
index 00000000..8c00b8ee
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/pa.po
@@ -0,0 +1,352 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr ""
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr ""
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "ਸੰਪਰਕ"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "ਖ਼ਬਰਾਂ"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "ਕੈਲੰਡਰ"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr ""
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr ""
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr ""
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr ""
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "ਸੰਪਰਕ"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "ਸੰਪਰਕ"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "ਸੰਪਰਕ"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr ""
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr ""
diff --git a/translations/desktop_files/kontact-desktops/pl.po b/translations/desktop_files/kontact-desktops/pl.po
new file mode 100644
index 00000000..8fff36cf
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/pl.po
@@ -0,0 +1,363 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Wtyczka Kontakt"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Kanały"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Składnik do czytania niusów (wtyczka Akregator)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Wtyczka Akregatora"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Wizytówki"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Składnik wizytówek (wtyczka KAddressBook)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "Stoper"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Składnik śledzenia czasu (wtyczka KArm)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "Poczta"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "Ustawienia podsumowania e-maili"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "email;list;podsumowanie;konfiguracja;ustawienia;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "E-mail"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "Składnik poczty (wtyczka KMail)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Listy dyskusyjne"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "Składnik wiadomości (wtyczka KNode)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notatki"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Składnik notatek (wtyczka KNotes)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Dziennik"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Składnik dziennika (wtyczka Korganizer)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Spotkania i zadania"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Ustawienia podsumowania spotkań i zadań"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "kalendarz;do zrobienia;konfiguracja;ustawienia;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalendarz"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Składnik kalendarza (wtyczka KOrganizer)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Lista zadań"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Składnik zadań (wtyczka KOrganizer)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Składnik narzędzi Palma (wtyczka KPilot)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Wiadomości"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Ustawienia podsumowania wiadomości"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "news ticker;wiadomości;nagłówki;konfiguracja;ustawienia;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Składnik paska wiadomości"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Daty specjalne"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Ustawienia podsumowania dat specjalnych"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "urodziny;rocznica;rocznice;wakacje;urlop;konfiguracja;ustawienia;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Daty specjalne"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Składnik dat specjalnych"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+#, fuzzy
+msgid "Summary View Items"
+msgstr "Podsumowanie"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Ogólna konfiguracja widoku podsumowania w Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Podsumowanie"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Składnik podsumowania"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Wtyczka testowa"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Wtyczka Kontact do testowania"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Pogoda"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Składnik Kontaktu wiadomości o pogodzie"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Wizytówki"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Program do zarządzania informacjami osobistymi"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "Kontact dla TDE"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Wizytówki"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Wtyczka Kontakt"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Podsumowanie"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Konfiguracja <b>Podsumowania</b> Kontaktu. Niektóre wtyczki zapewniają "
+"elementy <i>Widok podsumowania</i>, wybierz te które chcesz zobaczyć."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Konfiguracja wtyczki poczty Kontaktu <b>KMail</b>, zawiera <i>element "
+"Podsumowanie</i> i jest <i>Składnikiem Kontaktu</i>."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Konfiguracja wtyczki książki adresowej Kontaktu <b>KAddressBook</b>, która "
+"jest <i>Składnikiem Kontaktu</i>."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Podsumowanie dat specjalnych"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Składnik podsumowania dat specjalnych"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Konfiguracja wtyczki kalendarza Kontaktu <b>KOrganizer</b>, zawiera "
+"<i>element Podsumowanie</i> i jest <i>Składnikiem Kontaktu</i>."
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Konfiguracja wtyczki niusów Kontaktu <b>KNode</b>, która jest <i>Składnikiem "
+"Kontaktu</i>."
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Pogoda"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Składnik informacji o pogodzie"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Składnik paska wiadomości"
diff --git a/translations/desktop_files/kontact-desktops/pt.po b/translations/desktop_files/kontact-desktops/pt.po
new file mode 100644
index 00000000..7ded651f
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/pt.po
@@ -0,0 +1,360 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "'Plugin' do Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Fontes"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "'Plugin' Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Contactos"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Configuração do Sumário de Datas Especiais"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "e-mail; sumário; configurar; configuração;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Notícias"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notas"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Diário"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Configuração do Sumário de Compromissos e A-fazeres"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Configuração do Sumário de Compromissos e A-fazeres"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "calendário; a fazer; configurar; configuração;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Calendário"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Extractor de Notícias"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Configuração do Sumário do Extractor de Notícias"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "notícias; configurar; configuração;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Componente de Fontes de Notícias"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Datas Especiais"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Configuração do Sumário de Datas Especiais"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "data de nascimento; aniversário; feriado; configurar; configuração;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Datas Especiais"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Componente de Sumário de Datas Especiais"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Configuração Geral da Vista Sumária do Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Resumo"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Componente de Sumário de Datas Especiais"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+#, fuzzy
+msgid "TestPlugin"
+msgstr "'Plugin' de Teste do Kontact"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "'Plugin' de Teste do Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Serviço Meteorológico"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Contactos"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Gestor Pessoal de Informações"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "Kontact do TDE"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Contactos"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "'Plugin' do Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Resumo"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Sumário de Datas Especiais"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Componente de Sumário de Datas Especiais"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Meteorologia"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Componente de Fontes de Notícias"
diff --git a/translations/desktop_files/kontact-desktops/pt_BR.po b/translations/desktop_files/kontact-desktops/pt_BR.po
new file mode 100644
index 00000000..830c3cc1
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/pt_BR.po
@@ -0,0 +1,360 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Plug-in do Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Fontes de Notícias"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Plug-in do Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Contatos"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Configuração do Resumo de Datas Especiais"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "e-mail; resumo; configurar; configurações;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Notícias"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notas"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Diário"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Configuração do Resumo de Compromissos e Tarefas"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Configuração do Resumo de Compromissos e Tarefas"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "calendário; pendências; configurar; configurações;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Calendário"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Animação de Notícias"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Configuração de Resumo de Notícias"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "mostrador de notícias;configurar; preferências;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Componente Mostrador de Notícias"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Datas Especiais"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Configuração do Resumo de Datas Especiais"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"aniversário;aniversário de casamento; feriados;configurar;configurações;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Datas Especiais"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Componente de Datas Especiais"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Configuração Geral da Visão de Resumo do Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Resumo"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Componente de Datas Especiais"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Plug-in de Teste"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Plug-in para Teste do Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Serviço de Previsão do Tempo"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Contatos"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Gerenciador de Informações Pessoais"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "Kontact do TDE"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Contatos"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Plug-in do Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Resumo"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Resumo de Datas Especiais"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Componente de Datas Especiais"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Tempo"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Componente Mostrador de Notícias"
diff --git a/translations/desktop_files/kontact-desktops/ro.po b/translations/desktop_files/kontact-desktops/ro.po
new file mode 100644
index 00000000..7024a543
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/ro.po
@@ -0,0 +1,357 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Modul Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+#, fuzzy
+msgid "Akregator Plugin"
+msgstr "Modul de test"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Contacte"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Ştiri"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notiţe"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Ştiri Internet"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Ştiri Internet"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Sumar"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Modul de test"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Modul de test Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+#, fuzzy
+msgid "Weather Service"
+msgstr "Vreme"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Contacte"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Manager de informaţii personale"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "Contact TDE"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Contacte"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Modul Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Sumar"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Vreme"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "Ştiri Internet"
diff --git a/translations/desktop_files/kontact-desktops/ru.po b/translations/desktop_files/kontact-desktops/ru.po
new file mode 100644
index 00000000..6fb26724
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/ru.po
@@ -0,0 +1,362 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Модуль Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Ленты новостей"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Модуль Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Контакты"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Настройка особых дат"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "email;summary;configure;settings;настройки;дайджест;почта;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Новости"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Заметки"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Журнал"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Настройка показа встреч и задач"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Настройка показа встреч и задач"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "calendar;todos;configure;settings;настройка;календарь;задачи;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Календарь"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Новости"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Настройка дайджеста новостей"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "news ticker; configure; settings; настройка; новости;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Компонент ленты новостей"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Особые даты"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Настройка особых дат"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"birthday;anniversary;configure;settings;дни рождения;настройки;праздники;"
+"годовщины;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Особые даты"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Компонент дайджеста особых дат"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Общие настройки дайджеста Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Дайджест"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Компонент дайджеста особых дат"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Проверочный модуль"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Проверочный модуль Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Погода"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Контакты"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Персональный информационный менеджер"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Контакты"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Контакты"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Модуль Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Дайджест"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Дайджест особых дат"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Компонент дайджеста особых дат"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Погода"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Компонент ленты новостей"
diff --git a/translations/desktop_files/kontact-desktops/rw.po b/translations/desktop_files/kontact-desktops/rw.po
new file mode 100644
index 00000000..2c4ed46f
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/rw.po
@@ -0,0 +1,352 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: rw\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr ""
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr ""
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Amaderesi"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr ""
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr ""
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr ""
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr ""
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr ""
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Amaderesi"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Amaderesi"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Amaderesi"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr ""
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr ""
diff --git a/translations/desktop_files/kontact-desktops/se.po b/translations/desktop_files/kontact-desktops/se.po
new file mode 100644
index 00000000..afefa83b
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/se.po
@@ -0,0 +1,356 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact-lassemoduvla"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+#, fuzzy
+msgid "Akregator Plugin"
+msgstr "Geahččalan-lassemoduvla"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Oktavuođat"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Ođđasat"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Nohtat"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kaleandar"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Čoahkkáigeassu"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Geahččalan-lassemoduvla"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact, geahččalanlassemoduvla"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+#, fuzzy
+msgid "Weather Service"
+msgstr "Dáldedieđáhus"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Oktavuođat"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Persuvnnalaš diehtogieđaheapmi"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Oktavuođat"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Oktavuođat"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact-lassemoduvla"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Čoahkkáigeassu"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Dáldedieđáhus"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr ""
diff --git a/translations/desktop_files/kontact-desktops/sk.po b/translations/desktop_files/kontact-desktops/sk.po
new file mode 100644
index 00000000..95318c54
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/sk.po
@@ -0,0 +1,362 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+#, fuzzy
+msgid "Kontact Plugin"
+msgstr "Modul Akregator"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Kŕmitka"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Modul Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Kontakty"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Nastavenie súhrnu špeciálnych dátumov"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "email;súhrn;nastavenie;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Diskusné skupiny"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Poznámky"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Žurnál"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Nastavenie súhrnu pripomienok a úloh"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Nastavenie súhrnu pripomienok a úloh"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "kalendár;úlohy;nastavenie;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalendár"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Sledovanie správ"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Nastavenie súhrnu správ"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "zdroje správ;nastavenie;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Komponent zdrojov správ"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Špeciálne dátumy"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Nastavenie súhrnu špeciálnych dátumov"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+#, fuzzy
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "kalendár;úlohy;nastavenie;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Špeciálne dátumy"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Komponent súhrnu špeciálnych dátumov"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Všeobecné nastavenie súhrnu Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Súhrn"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Komponent súhrnu špeciálnych dátumov"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "TestModul"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+#, fuzzy
+msgid "Kontact Test Plugin"
+msgstr "TestModul"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Služba počasie"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Kontakty"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Osobný manažér informácii"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Kontakty"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Kontakty"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr ""
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Súhrn"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Súhrn špeciálnych dátumov"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Komponent súhrnu špeciálnych dátumov"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Počasie"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Komponent zdrojov správ"
diff --git a/translations/desktop_files/kontact-desktops/sl.po b/translations/desktop_files/kontact-desktops/sl.po
new file mode 100644
index 00000000..4afc0d94
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/sl.po
@@ -0,0 +1,360 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Vstavek za Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Viri"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Vstavek Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Stiki"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Nastavitve povzetka posebnih datumov"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "e-pošta;pošta;povzetek;nastavi;nastavitve;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Novice"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notice"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Dnevnik"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Nastavitve povzetka sestankov in opravil"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Nastavitve povzetka sestankov in opravil"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "koledar;za narediti;nastavitve;nastavi;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Koledar"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Prikazovalnik novic"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Nastavitve povzetka novic"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "prikazovalnik novic; nastavi; nastavitve;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Komponenta prikazovalnika novic"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Posebni datumi"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Nastavitve povzetka posebnih datumov"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "rojstni dan; obletnica; praznik; nastavi; nastavitve;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Posebni datumi"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Komponenta za povzetke posebnih datumov"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Splošne nastavitve za prikaz povzetka v Kontract"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Povzetek"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Komponenta za povzetke posebnih datumov"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Preizkusni vstavek"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Preizkusni vstavek za Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Vremenska storitev"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Stiki"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Osebni upravitelj informacij"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Stiki"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Stiki"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Vstavek za Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Povzetek"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Povzetek posebnih datumov"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Komponenta za povzetke posebnih datumov"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Vreme"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Komponenta prikazovalnika novic"
diff --git a/translations/desktop_files/kontact-desktops/sr.po b/translations/desktop_files/kontact-desktops/sr.po
new file mode 100644
index 00000000..f13f0bfb
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/sr.po
@@ -0,0 +1,365 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Прикључак Kontact-а"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Доводи"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Компонента читања довода (прикључак Akregator-а)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Прикључак Akregator-а"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Контакти"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Компонента контаката (прикључак KAddressBook-а)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "Тајмер"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Компонента праћења времена (прикључак KArm-а)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "Преглед е-поште"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "Подешавање сажетка е-поште"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "емаил; сажетак; подеси; поставке;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "Е-пошта"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "Компонента е-поште (прикључак KMail-а)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Вести"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "Компонента вести (прикључак KNode-а)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Белешке"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Компонента белешки (прикључак KNotes-а)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Дневник"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Компонента дневника (прикључак KOrganizer-а)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Преглед састанака и обавеза"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Подешавање сажетка састанака и обавеза"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+"calendar; todos; configure; settings; календар; послови; подеси; поставке;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Календар"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Компонента календара (прикључак KOrganizer-а)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Обавезе"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Прикључак листе обавеза (прикључак KOrganizer-а)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Компонента алата за Palm (прикључак KPilot-а)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Откуцавач вести"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Подешавање сажетка приказивања вести"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "news ticker; подеси; поставке;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Компонента откуцавача вести"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Преглед посебних датума"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Подешавање сажетка посебних датума"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"birthday; anniversary; holiday; configure; settings; рођендан; годишњица; "
+"подеси; поставке; подешавања;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Посебни датуми"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Компонента посебних датума"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "Ставке приказа сажетка"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Опште подешавање Kontact-овог приказа сажетка"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Сажетак"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Компонента приказа сажетка"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Пробни прикључак"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Пробни прикључак Kontact-а"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Време"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Компонента времена за Kontact"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Контакти"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Менаџер личних информација"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Контакти"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "kontact; контакт;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Прикључак Kontact-а"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Приказ сажетка"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Подешавање Kontact-овог <b>приказа сажетка</b>. Неки прикључци дају ставке "
+"<i>приказа сажетка</i>, изаберите оне које желите."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Подешавање Kontact-овог прикључка за е-пошту преко <b>KMail-</b>, укључујући "
+"<i>приказ сажетка</i>, и дат као <i>компонента Kontact-а</i>."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Подешавање Kontact-овог прикључка за адресар преко <b>KAdressbook</b> у "
+"облику <i>компоненте Kontact-а</i>."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Сажетак посебних датума"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Компонента сажетка посебних датума"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Подешавање Kontact-овог прикључка за календар преко <b>KOrganizer-а</b>, "
+"укључујући <i>приказ сажетка</i>, и дат као <i>компонента Kontact-а</i>."
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Подешавање Kontact-овог прикључка за вести преко <b>KNode-а</b> у облику "
+"<i>компненте Kontact-а</i>."
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Време"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Компонента информација о времену"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Компонента откуцавача вести"
diff --git a/translations/desktop_files/kontact-desktops/sr@Latn.po b/translations/desktop_files/kontact-desktops/sr@Latn.po
new file mode 100644
index 00000000..30a86c38
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/sr@Latn.po
@@ -0,0 +1,365 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Priključak Kontact-a"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Dovodi"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Komponenta čitanja dovoda (priključak Akregator-a)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Priključak Akregator-a"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Kontakti"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Komponenta kontakata (priključak KAddressBook-a)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "Tajmer"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Komponenta praćenja vremena (priključak KArm-a)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "Pregled e-pošte"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "Podešavanje sažetka e-pošte"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "email; sažetak; podesi; postavke;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "E-pošta"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "Komponenta e-pošte (priključak KMail-a)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Vesti"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "Komponenta vesti (priključak KNode-a)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Beleške"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Komponenta beleški (priključak KNotes-a)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Dnevnik"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Komponenta dnevnika (priključak KOrganizer-a)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Pregled sastanaka i obaveza"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Podešavanje sažetka sastanaka i obaveza"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+"calendar; todos; configure; settings; kalendar; poslovi; podesi; postavke;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalendar"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Komponenta kalendara (priključak KOrganizer-a)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Obaveze"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Priključak liste obaveza (priključak KOrganizer-a)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Komponenta alata za Palm (priključak KPilot-a)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Otkucavač vesti"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Podešavanje sažetka prikazivanja vesti"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "news ticker; podesi; postavke;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Komponenta otkucavača vesti"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Pregled posebnih datuma"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Podešavanje sažetka posebnih datuma"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"birthday; anniversary; holiday; configure; settings; rođendan; godišnjica; "
+"podesi; postavke; podešavanja;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Posebni datumi"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Komponenta posebnih datuma"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "Stavke prikaza sažetka"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Opšte podešavanje Kontact-ovog prikaza sažetka"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Sažetak"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Komponenta prikaza sažetka"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Probni priključak"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Probni priključak Kontact-a"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Vreme"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Komponenta vremena za Kontact"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Kontakti"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Menadžer ličnih informacija"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Kontakti"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "kontact; kontakt;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Priključak Kontact-a"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Prikaz sažetka"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Podešavanje Kontact-ovog <b>prikaza sažetka</b>. Neki priključci daju stavke "
+"<i>prikaza sažetka</i>, izaberite one koje želite."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Podešavanje Kontact-ovog priključka za e-poštu preko <b>KMail-</b>, "
+"uključujući <i>prikaz sažetka</i>, i dat kao <i>komponenta Kontact-a</i>."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Podešavanje Kontact-ovog priključka za adresar preko <b>KAdressbook</b> u "
+"obliku <i>komponente Kontact-a</i>."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Sažetak posebnih datuma"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Komponenta sažetka posebnih datuma"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Podešavanje Kontact-ovog priključka za kalendar preko <b>KOrganizer-a</b>, "
+"uključujući <i>prikaz sažetka</i>, i dat kao <i>komponenta Kontact-a</i>."
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Podešavanje Kontact-ovog priključka za vesti preko <b>KNode-a</b> u obliku "
+"<i>kompnente Kontact-a</i>."
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Vreme"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Komponenta informacija o vremenu"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Komponenta otkucavača vesti"
diff --git a/translations/desktop_files/kontact-desktops/sv.po b/translations/desktop_files/kontact-desktops/sv.po
new file mode 100644
index 00000000..b0ee90b7
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/sv.po
@@ -0,0 +1,362 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact-insticksprogram"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Kanaler"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Komponent för läsning av kanaler (Akregator-insticksprogram)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator-insticksprogram"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Kontakter"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Kontaktkomponent (adressboksinsticksprogram)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "Tidmätning"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Komponent för tidmätning (Karm-insticksprogram)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "E-postöversikt"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "Inställning av e-postöversikt"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "e-post; översikt; anpassa; inställningar;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "E-post"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "E-postkomponent (Kmail-insticksprogram)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Nyheter"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "Komponent för läsning av diskussionsgrupper (Knode-insticksprogram)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Anteckningar"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Anteckningskomponent (Knotes-insticksprogram)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Journalkomponent (Korganizer-insticksprogram)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Översikt av möten och uppgifter"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Inställning av översikt av möten och uppgifter"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "kalender; uppgifter; anpassa; inställningar;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Kalender"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Kalenderkomponent (Korganizer-insticksprogram)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Uppgift"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Uppgiftslistkomponent (Korganizer-insticksprogram)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr "Palm Pilot"
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Palm Pilot-verktygskomponent (Kpilot-insticksprogram)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Nyhetsövervakare"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Inställning av nyhetsövervakningsöversikt"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "nyhetsövervakare; anpassa; inställningar;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Nyhetsövervakningskomponent"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Översikt av speciella datum"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Inställning av översikt av speciella datum"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "födelsedag;årsdag;helgdag;anpassa;inställningar;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Speciella datum"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Speciella datumkomponent"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "Objekt i översiktsvy"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Allmän inställning av Kontacts översiktsvy"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Översikt"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Översiktsvykomponent"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Testinsticksprogram"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact-testinsticksprogram"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Väderleksprognos"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Kontacts väderkomponent"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr "Kontakt"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Personlig informationshantering"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Kontakt"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "kontakt;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontakt"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Översiktsvy"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Inställning av Kontacts <b>översiktsvy</b>. Vissa insticksprogram "
+"tillhandahåller objekt för <i>översiktsvyn</i>. Välj de du skulle vilja visa."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Inställning av Kontacts e-postinsticksprogram <b>Kmail</b>, omfattar ett "
+"objekt för <i>översiktsvyn</i> och representerar en <i>Kontactkomponent</i>."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Inställning av Kontacts adressboksinsticksprogram <b>Kaddressbook</b>, som "
+"representerar en <i>Kontactkomponent</i>."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Översikt av speciella datum"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Komponent för översikt av speciella datum"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Inställning av Kontacts kalenderinsticksprogram <b>Korganizer</b>, omfattar "
+"ett objekt för <i>översiktsvyn</i> och representerar en <i>Kontactkomponent</"
+"i>."
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Inställning av Kontacts nyhetsinsticksprogram <b>Knode</b>, som "
+"representerar en <i>Kontactkomponent</i>."
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Väder"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Komponent med väderrapport"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Nyhetskomponent"
diff --git a/translations/desktop_files/kontact-desktops/ta.po b/translations/desktop_files/kontact-desktops/ta.po
new file mode 100644
index 00000000..2aa5c5a4
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/ta.po
@@ -0,0 +1,358 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "சொருகுப்பொருளை தொடர்புக்கொள்"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "உள்ளீடுகள்"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator சொருகுப்பொருள்"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "தொடர்புகள்"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "விசேஷ தேதிகள் சுருக்க அமைப்பு"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "மின்னஞ்சல்;சுருக்கம்;கட்டமைப்பு;அமைவுகள்;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "செய்திகள்"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "குறிப்புகள்"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "பத்திரிகை"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "நாள்காட்டி;செய்யவேண்டியவைகள்;கட்டமைப்பு;அமைவுகள்;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "நாள்காட்டி"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "செய்திகள் குறிப்பான்"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "விசேஷ தேதிகள் சுருக்க அமைப்பு"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "கேமுகவரிப்புத்தகம்;கட்டமைப்பு;அமைவுகள்;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "செய்தி எடுக்கும் பகுதி"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "விசேஷ தேதிகள்"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "விசேஷ தேதிகள் சுருக்க அமைப்பு"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "பிறந்தநாள்; ஆண்டுவிழா; விடுமுறை; வடிவமைப்பு; அமைப்புகள்;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "விசேஷ தேதிகள்"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "விசேஷ தேதிகள் சுருக்கப் பகுதி"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "கான்டாக்கின் சுருக்க காட்சியின் பொது கட்டமைப்பு"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "சுருக்கம்"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "விசேஷ தேதிகள் சுருக்கப் பகுதி"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "சோதனை சொருகுப்பொருள்"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "பரிசோதனை சொருகுப்பொருளை தொடர்பு கொள்"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+#, fuzzy
+msgid "Weather Service"
+msgstr "வானிலை"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr "தொடர்பு கொள்"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "அந்தரங்க தகவல் மேலாளர்"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "கேடிஇ தொடர்புகொள்"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "தொடர்புகொள்;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "தொடர்பு கொள்"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "சுருக்கம்"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "விசேஷ செய்திகளின் சுருக்கம்"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "விசேஷ தேதிகள் சுருக்கப் பகுதி"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "வானிலை"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "செய்தி எடுக்கும் பகுதி"
diff --git a/translations/desktop_files/kontact-desktops/tg.po b/translations/desktop_files/kontact-desktops/tg.po
new file mode 100644
index 00000000..98ec2ee1
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/tg.po
@@ -0,0 +1,359 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Модули Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+#, fuzzy
+msgid "Akregator Plugin"
+msgstr "Модули матнӣ"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Алоқот"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "email; summary; configure; settings;танзимот; дайджест;почта;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Ахборот"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Ахборот"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "calendar; todos; configure; settings;танзимот; тақвим;вазифа;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Тақвим"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Ахборот"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Ахборот"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "news ticker; configure; settings; танзимот;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+#, fuzzy
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "calendar; todos; configure; settings;танзимот; тақвим;вазифа;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Танзимотҳои умумии дайджести Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Дайджест"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Модули матнӣ"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Модули матнии Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+#, fuzzy
+msgid "Weather Service"
+msgstr "Пешгӯии ҳаво"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Алоқот"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Мудири маълумоти шахсӣ"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Алоқот"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Алоқот"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Модули Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Дайджест"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Пешгӯии ҳаво"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "Ахборот"
diff --git a/translations/desktop_files/kontact-desktops/th.po b/translations/desktop_files/kontact-desktops/th.po
new file mode 100644
index 00000000..8d487031
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/th.po
@@ -0,0 +1,359 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: th\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr ""
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr ""
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "ที่อยู่ติดต่อ"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "ต้้งค่าส่วนสรุปวันพิเศษ"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "ข่าว"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "บันทึกช่วยจำ"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "วารสาร"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "บันทึกประจำวัน"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "ตั๋วข่าว"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "ต้้งค่าส่วนสรุปวันพิเศษ"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "วันพิเศษ"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "ต้้งค่าส่วนสรุปวันพิเศษ"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "วันพิเศษ"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "วันพิเศษ"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "หน้าสรุป"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr ""
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr ""
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "รายงานอากาศ"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "ที่อยู่ติดต่อ"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "ที่อยู่ติดต่อ"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "ที่อยู่ติดต่อ"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr ""
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "หน้าสรุป"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "สรุปวันพิเศษ"
+
+#. Comment
+#: src/kontact.setdlg:21
+#, fuzzy
+msgid "Special Dates Summary Component"
+msgstr "ต้้งค่าส่วนสรุปวันพิเศษ"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "รายงานอากาศ"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "ตั๋วข่าว"
diff --git a/translations/desktop_files/kontact-desktops/tr.po b/translations/desktop_files/kontact-desktops/tr.po
new file mode 100644
index 00000000..b9624ebb
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/tr.po
@@ -0,0 +1,359 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact Eklentisi"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Haberler"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator Eklentisi"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Bağlantılar"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+#, fuzzy
+msgid "E-Mail Summary Setup"
+msgstr "Özel Tarih Özeti Yapılandırması"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "e-posta; özet; yapılandır; yapılandırma;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Haberler"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Notlar"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Günlük"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+#, fuzzy
+msgid "Appointment and To-do Overview"
+msgstr "Özel Günler ve Yapılacaklar Listesi Yapılandırması"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Özel Günler ve Yapılacaklar Listesi Yapılandırması"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "takvim; yapılacaklar; yapılandır; yapılandırma;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Takvim"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Haber İzleyici"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Haber Yakalayıcı Özet Ayarları"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "haber izleyici; yapılandırma; yapılandır;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+#, fuzzy
+msgid "Newsticker Component"
+msgstr "Haber İzleyici Bileşeni"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Özel Tarihler"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Özel Tarih Özeti Yapılandırması"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr "doğumgünü; evlilik yıldönümü; tatil; yapılandır; ypılandırma;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Özel Tarihler"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Özel Tarihler Özeti Bileşeni"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Kontact'ın Özet Görünümü için Genel Yapılandırma"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Özet"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+#, fuzzy
+msgid "Summary View Component"
+msgstr "Özel Tarihler Özeti Bileşeni"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Test Eklentisi"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact Test Eklentisi"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Hava Durumu Servisi"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Bağlantılar"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Kişisel Bilgi Yöneticisi"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Bağlantılar"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "bağlantı;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact Eklentisi"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Özet"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Özel Tarihler Özeti"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Özel Tarihler Özeti Bileşeni"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Hava Durumu"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Haber İzleyici Bileşeni"
diff --git a/translations/desktop_files/kontact-desktops/uk.po b/translations/desktop_files/kontact-desktops/uk.po
new file mode 100644
index 00000000..336a2b0f
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/uk.po
@@ -0,0 +1,364 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: 2020-08-22 07:31+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/kontact-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Втулок Kontact"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Подачі"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Компонент Читача Подач (Втулок Akregator)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Втулок Akregator"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Контакти"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "Компонент Контактів (Втулок KAdressbook)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "Таймер"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "Компонент Трекеру Часу (Втулок KArm)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "Переглянути Е-Пошту"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "Підсумкове Налаштування Е-Пошти"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "пошта; підсумок; налаштування; параметри;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "Е-Пошта"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "Компонент Е-Пошти (Втулок KMail)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Новини"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "Компонент Читача Новин (Втулок KNode)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Примітки"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "Компонент Приміток (Втулок KNotes)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Журнал"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "Компонент Журналу (Втулок KOrganizer)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "Перегляд Призначень та Завдань"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "Налаштування зведення зустрічей і завдань"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "календар; завдання; налаштування; параметри;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Календар"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "Компонент Календаря (Втулок KOrganizer)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "Завдання"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "Компонент Переліку Завдань (Втулок KOrganizer)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr "Palm"
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Компонент Інструментів Palm (Втулок KPilot)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Стрічка новин"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "Налаштування зведення стрічки новин"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "новини; налаштування; параметри;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "Компонент Newsticker"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "Перегляд Особливих Дат"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "Налаштування підсумку особливих дат"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"birthday; anniversary; holiday; configure; settings; день народження; "
+"ювілей; свято; налаштування; параметри;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Особливі дати"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "Компонент Особливих Дат"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "Елементи Підсумкового Виду"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Загальні параметри підсумків Kontact"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Зведення"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "Компонент Підсумкового Виду"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Тестовий втулок"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Тестовий втулок Kontact"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Служба погоди"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Компонент Погоди Kontact"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr "Kontact"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Менеджер особистої інформації"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr "TDE Kontact"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr "контакт;"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr "Типові налаштування KDE Kontact"
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr "Стиль Kontact"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr "Налаштування схожі на MS Outlook"
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr "Стиль Outlook "
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "Підсумковий Вигляд"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Конфігурація Kontact <b>Підсумковий Вид</b>. Деякі втулки надають елементи "
+"<i>Підсумкового Виду</i>, оберіть такі які бажали-б бачити у переліку."
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Конфігурація Kontact Втулку Е-Пошти <b>KMail</b>, включно із <i>Елементами "
+"Підсумкового Виду</i> та представлення <i>Компоненту Kontact</i>."
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Конфігурація Kontact Втулку Адресної Книги <b>KAdressbook</b> із "
+"представленням <i>Компоненту Kontact</i>."
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "Короткий підсумок особливих дат"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "Компонент короткого підсумку особливих дат"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Конфігурація Kontact Втулку Календаря <b>KOrganizer</b>, включно із "
+"<i>Елементами Підсумкового Виду</i> та представлення <i>Компоненту Kontact</"
+"i>."
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Конфігурація Kontact Втулку Новин <b>KNode</b> із представленням "
+"<i>Компоненту Kontact</i>."
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Погода"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "Погодний Інформаційний Компонент"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "Компонент смужки новин"
diff --git a/translations/desktop_files/kontact-desktops/uz.po b/translations/desktop_files/kontact-desktops/uz.po
new file mode 100644
index 00000000..a4c52d7b
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/uz.po
@@ -0,0 +1,359 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact учун плагин"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "Янгиликлар тасмалари"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator плагини"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "Алоқалар"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "Янгиликлар"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "Ёзма хотира"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "Кундалик"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "Календар"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+#, fuzzy
+msgid "Special Dates Overview"
+msgstr "Махсус кунлар"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+#, fuzzy
+msgid "Special Dates Summary Setup"
+msgstr "Махсус кунлар"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "Махсус кунлар"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+#, fuzzy
+msgid "Special Dates Component"
+msgstr "Махсус кунлар"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "Ҳисобот"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+#, fuzzy
+msgid "TestPlugin"
+msgstr "Kontact учун синаш плагини"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact учун синаш плагини"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "Об-ҳаво хизмати"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "Алоқалар"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "Шахсий маълумот бошқарувчиси"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Алоқалар"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Алоқалар"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact учун плагин"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+#, fuzzy
+msgid "Summary View"
+msgstr "Ҳисобот"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+#, fuzzy
+msgid "Special Dates Summary"
+msgstr "Махсус кунлар"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "Об-ҳаво"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr ""
diff --git a/translations/desktop_files/kontact-desktops/ven.po b/translations/desktop_files/kontact-desktops/ven.po
new file mode 100644
index 00000000..1523d4d9
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/ven.po
@@ -0,0 +1,353 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ven\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr ""
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+#, fuzzy
+msgid "Akregator Plugin"
+msgstr "Lingani Plugin"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr ""
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr ""
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Musengulusi wa Mafhungo"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Musengulusi wa Mafhungo"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr ""
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Lingani Plugin"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+#, fuzzy
+msgid "Kontact Test Plugin"
+msgstr "Lingani Plugin"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr ""
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr ""
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr ""
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr ""
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr ""
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "Musengulusi wa Mafhungo"
diff --git a/translations/desktop_files/kontact-desktops/vi.po b/translations/desktop_files/kontact-desktops/vi.po
new file mode 100644
index 00000000..bb42f83a
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/vi.po
@@ -0,0 +1,351 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: vi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr ""
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr ""
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr ""
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr ""
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Trình kiểm tra news "
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Trình kiểm tra news "
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr ""
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr ""
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr ""
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr ""
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr ""
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr ""
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr ""
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr ""
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "Trình kiểm tra news "
diff --git a/translations/desktop_files/kontact-desktops/xh.po b/translations/desktop_files/kontact-desktops/xh.po
new file mode 100644
index 00000000..a4fbf852
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/xh.po
@@ -0,0 +1,351 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: xh\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr ""
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr ""
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr ""
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr ""
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Umchola-choli weendaba"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Umchola-choli weendaba"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr ""
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr ""
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr ""
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr ""
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr ""
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr ""
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr ""
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr ""
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "Umchola-choli weendaba"
diff --git a/translations/desktop_files/kontact-desktops/zh_CN.po b/translations/desktop_files/kontact-desktops/zh_CN.po
new file mode 100644
index 00000000..c85c5969
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/zh_CN.po
@@ -0,0 +1,364 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontact 插件"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr "种子"
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "新闻源阅读器组件(Akregator 插件)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator 插件"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "联系人"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "联系人组件(KAddressbook 插件)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "计时器"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "时间追踪组件(KArm 插件)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "邮件概览"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "邮件摘要设置"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr "email; summary; configure; settings; 电子邮件; 摘要; 配置; 设置;"
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "邮件"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "邮件组件(KMail 插件)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "新闻"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "新闻组阅读器组件(KNode 插件)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "便笺"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "便笺组件(KNotes 插件)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "日记"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "日记组件(KOrganizer 插件)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "约会和待办概览"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "约会和待办摘要设置"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr "calendar; todos; configure; settings; 日历; 待办事项; 配置; 设置;"
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "日历"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "日历组件(KOrganizer 插件)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "待办清单"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "待办清单组件(KOrganizer 插件)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Palm 工具组件(KPilot 插件)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "新闻点点通"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "新闻点点通摘要设置"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr "news ticker; configure; settings; 新闻点点通; 配置; 设置;"
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "新闻点点通组件"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "特殊日期概览"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "特殊日期摘要设置"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+"birthday; anniversary; holiday; configure; settings; 周年纪念; 配置; 设置; 假"
+"日;"
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "特殊日期"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "特殊日期组件"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr "摘要视图项目"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Kontact 概览视图的常规配置"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "概览"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "摘要视图组件"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "Test 插件"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact Test 插件"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "天气服务"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Kontact 天气插件"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+#, fuzzy
+msgid "Kontact"
+msgstr "联系人"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "个人信息管理器"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "联系人"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "联系人"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact 插件"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "摘要视图"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"Kontact <b>摘要视图</b>配置。有些插件提供了<i>摘要视图</i>项目,请选择您希望"
+"出现在列表中的项目。"
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Kontact <b>KMail</b> 电子邮件插件配置,其中包含一个<i>摘要视图项目,以 "
+"<i>Kontact 组件</i>形式呈现。"
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+"Kontact <b>KAdressbook</b> 地址簿插件配置,KAdressbook 以一个<i>Kontact 组件"
+"</i>形式呈现。"
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "特殊日期摘要"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "特殊日期摘要组件"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+"Kontact 日历插件配置,<b>KOrganizer</b> 包含一个<i>摘要视图项目</i>,以 "
+"<i>Kontact 组件</i>形式呈现。"
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+"Kontact 新闻组插件配置,<b>KNode</b> 以一个 <i>Kontact 组件</i>形式呈现。"
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "天气"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "天气信息组件"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "新闻点点通组件"
diff --git a/translations/desktop_files/kontact-desktops/zh_TW.po b/translations/desktop_files/kontact-desktops/zh_TW.po
new file mode 100644
index 00000000..d9cfa7e1
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/zh_TW.po
@@ -0,0 +1,355 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr "Kontack 外掛程式"
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr "Feed 閱讀器組件(Akregator 外掛程式)"
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr "Akregator 外掛程式"
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr "聯絡人"
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr "聯絡人組件(KAddressBook 外掛程式)"
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr "計時器"
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr "時間追蹤器組件(KArm 外掛程式)"
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr "郵件概要"
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr "郵件摘要設定"
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr "電子郵件"
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr "電子郵件組件(KMail 外掛程式)"
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr "新聞"
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr "新聞閱讀器組件(KNode 外掛程式)"
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr "備忘錄"
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr "便條組件(KNotes 外掛程式)"
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr "日誌"
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr "日誌組件(KOrganizer 外掛程式)"
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr "約會與待辦事項概觀"
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr "約會與待辦事項摘要設定"
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr "行事曆"
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr "行事曆組件(KOrganizer 外掛程式)"
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr "待辦事項"
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr "待辦事項清單組件(KOrganizer 外掛程式)"
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr "Palm 工具組件(KPilot 外掛程式)"
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "新聞顯示器"
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+msgid "News Ticker Summary Setup"
+msgstr "新聞顯示器摘要設定"
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr "新聞顯示組件"
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr "特殊日期概觀"
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr "特殊日期摘要設定"
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr "特殊日期"
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr "特殊日期組件"
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+#, fuzzy
+msgid "Summary View Items"
+msgstr "摘要檢視"
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr "Kontacts 摘要檢視的一般設定"
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr "摘要"
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr "摘要檢視組件"
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr "測試外掛程式"
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr "Kontact 測試外掛程式"
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr "天氣服務"
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr "Kontact 天氣組件"
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr "Kontact 個人資訊管理"
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr "個人資訊管理者"
+
+#. Comment
+#: src/kontactconfig.desktop:17
+#, fuzzy
+msgid "TDE Kontact"
+msgstr "Kontact 個人資訊管理"
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+#, fuzzy
+msgid "kontact;"
+msgstr "Kontact 個人資訊管理"
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+#, fuzzy
+msgid "Kontact Style"
+msgstr "Kontact 個人資訊管理"
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr "摘要檢視"
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+"設定 Kontact 的摘要檢視。有些外掛程式會提供「摘要檢視」的項目,您可以選取您要"
+"列出的項目。"
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr "設定 Kontact 的電子郵件組件。"
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr "設定 Kontact 的通訊錄組件。"
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr "特殊日期摘要"
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr "特殊日期摘要元件"
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr "設定 Kontact 的行事曆組件。"
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr "設定 Kontact 的新聞組件。"
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr "天氣"
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr "天氣資訊組件"
+
+#. Comment
+#: src/kontact.setdlg:45
+msgid "News Ticker Component"
+msgstr "新聞顯示元件"
diff --git a/translations/desktop_files/kontact-desktops/zu.po b/translations/desktop_files/kontact-desktops/zu.po
new file mode 100644
index 00000000..8866e704
--- /dev/null
+++ b/translations/desktop_files/kontact-desktops/zu.po
@@ -0,0 +1,351 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:17+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: interfaces/kontactplugin.desktop:4
+msgid "Kontact Plugin"
+msgstr ""
+
+#. Name
+#: plugins/akregator/akregatorplugin.desktop:16
+#: plugins/akregator/akregatorplugin3.2.desktop:15
+msgid "Feeds"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin.desktop:18
+msgid "Feed Reader Component (Akregator Plugin)"
+msgstr ""
+
+#. Comment
+#: plugins/akregator/akregatorplugin3.2.desktop:17
+msgid "Akregator Plugin"
+msgstr ""
+
+#. Name
+#: plugins/kaddressbook/kaddressbookplugin.desktop:18 src/kontact.setdlg:14
+msgid "Contacts"
+msgstr ""
+
+#. Comment
+#: plugins/kaddressbook/kaddressbookplugin.desktop:20
+msgid "Contacts Component (KAdressbook Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/karm/karmplugin.desktop:15
+msgid "Timer"
+msgstr ""
+
+#. Comment
+#: plugins/karm/karmplugin.desktop:17
+msgid "Time Tracker Component (KArm Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kcmkmailsummary.desktop:13
+msgid "E-Mail Overview"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kcmkmailsummary.desktop:15
+msgid "E-Mail Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/kmail/kcmkmailsummary.desktop:17
+msgid "email; summary; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/kmail/kmailplugin.desktop:19 src/kontact.setdlg:8
+msgid "E-Mail"
+msgstr ""
+
+#. Comment
+#: plugins/kmail/kmailplugin.desktop:21
+msgid "E-Mail Component (KMail Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knode/knodeplugin.desktop:16
+#: plugins/newsticker/newstickerplugin.desktop:17 src/kontact.setdlg:32
+msgid "News"
+msgstr ""
+
+#. Comment
+#: plugins/knode/knodeplugin.desktop:18
+msgid "Newsreader Component (KNode Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/knotes/knotesplugin.desktop:16
+msgid "Notes"
+msgstr ""
+
+#. Comment
+#: plugins/knotes/knotesplugin.desktop:18
+msgid "Notes Component (KNotes Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/journalplugin.desktop:18
+msgid "Journal"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/journalplugin.desktop:20
+msgid "Journal Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/kcmkorgsummary.desktop:13
+msgid "Appointment and To-do Overview"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/kcmkorgsummary.desktop:15
+msgid "Appointments and To-dos Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/korganizer/kcmkorgsummary.desktop:17
+msgid "calendar; todos; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/korganizerplugin.desktop:18 src/kontact.setdlg:26
+msgid "Calendar"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/korganizerplugin.desktop:20
+msgid "Calendar Component (KOrganizer Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/korganizer/todoplugin.desktop:18
+msgid "To-do"
+msgstr ""
+
+#. Comment
+#: plugins/korganizer/todoplugin.desktop:20
+msgid "To-do List Component (KOrganizer plugin)"
+msgstr ""
+
+#. Name
+#: plugins/kpilot/kpilotplugin.desktop:18
+msgid "Palm"
+msgstr ""
+
+#. Comment
+#: plugins/kpilot/kpilotplugin.desktop:20
+msgid "Palm Tools Component (KPilot Plugin)"
+msgstr ""
+
+#. Name
+#: plugins/newsticker/kcmkontactknt.desktop:13 src/kontact.setdlg:44
+msgid "News Ticker"
+msgstr "Umlungiseleli Wezindaba "
+
+#. Comment
+#: plugins/newsticker/kcmkontactknt.desktop:15
+#, fuzzy
+msgid "News Ticker Summary Setup"
+msgstr "Umlungiseleli Wezindaba "
+
+#. Keywords
+#: plugins/newsticker/kcmkontactknt.desktop:17
+msgid "news ticker; configure; settings;"
+msgstr ""
+
+#. Comment
+#: plugins/newsticker/newstickerplugin.desktop:19
+msgid "Newsticker Component"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/kcmsdsummary.desktop:13
+msgid "Special Dates Overview"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/kcmsdsummary.desktop:15
+msgid "Special Dates Summary Setup"
+msgstr ""
+
+#. Keywords
+#: plugins/specialdates/kcmsdsummary.desktop:17
+msgid "birthday; anniversary; holiday; configure; settings;"
+msgstr ""
+
+#. Name
+#: plugins/specialdates/specialdatesplugin.desktop:16
+msgid "Special Dates"
+msgstr ""
+
+#. Comment
+#: plugins/specialdates/specialdatesplugin.desktop:18
+msgid "Special Dates Component"
+msgstr ""
+
+#. Name
+#: plugins/summary/kcmkontactsummary.desktop:13
+msgid "Summary View Items"
+msgstr ""
+
+#. Comment
+#: plugins/summary/kcmkontactsummary.desktop:15
+msgid "General Configuration of Kontact's Summary View"
+msgstr ""
+
+#. Name
+#: plugins/summary/summaryplugin.desktop:14
+msgid "Summary"
+msgstr ""
+
+#. Comment
+#: plugins/summary/summaryplugin.desktop:16
+msgid "Summary View Component"
+msgstr ""
+
+#. Name
+#: plugins/test/kptestplugin.desktop:13
+msgid "TestPlugin"
+msgstr ""
+
+#. Comment
+#: plugins/test/kptestplugin.desktop:15
+msgid "Kontact Test Plugin"
+msgstr ""
+
+#. Name
+#: plugins/weather/weatherplugin.desktop:18
+msgid "Weather Service"
+msgstr ""
+
+#. Comment
+#: plugins/weather/weatherplugin.desktop:20
+msgid "Kontact Weather Component"
+msgstr ""
+
+#. Name
+#: src/Kontact.desktop:6 src/kontactconfig.desktop:15 src/kontactdcop.desktop:2
+msgid "Kontact"
+msgstr ""
+
+#. GenericName
+#: src/Kontact.desktop:8
+msgid "Personal Information Manager"
+msgstr ""
+
+#. Comment
+#: src/kontactconfig.desktop:17
+msgid "TDE Kontact"
+msgstr ""
+
+#. Keywords
+#: src/kontactconfig.desktop:19
+msgid "kontact;"
+msgstr ""
+
+#. Description
+#: profiles/KontactDefaults/profile.cfg:2
+msgid "Default KDE Kontact settings"
+msgstr ""
+
+#. Name
+#: profiles/KontactDefaults/profile.cfg:4
+msgid "Kontact Style"
+msgstr ""
+
+#. Description
+#: profiles/OutlookDefaults/profile.cfg:2
+msgid "Settings resembling MS Outlook"
+msgstr ""
+
+#. Name
+#: profiles/OutlookDefaults/profile.cfg:4
+msgid "Outlook Style "
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:2
+msgid "Summary View"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:3
+msgid ""
+"Configuration of Kontact's <b>Summary View</b>. Some plugins provide "
+"<i>Summary View</i> items, choose the ones you would like to list."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:9
+msgid ""
+"Configuration of Kontact's E-Mail Plugin <b>KMail</b>, includes a <i>Summary "
+"View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:15
+msgid ""
+"Configuration of Kontact's Adress Book Plugin <b>KAdressbook</b> which "
+"represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:20
+msgid "Special Dates Summary"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:21
+msgid "Special Dates Summary Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:27
+msgid ""
+"Configuration of Kontact's Calendar Plugin <b>KOrganizer</b>, includes a "
+"<i>Summary View Item</i> and represents a <i>Kontact Component</i>."
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:33
+msgid ""
+"Configuration of Kontact's News Plugin <b>KNode</b> which represents a "
+"<i>Kontact Component</i>."
+msgstr ""
+
+#. Name
+#: src/kontact.setdlg:38
+msgid "Weather"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:39
+msgid "Weather Information Component"
+msgstr ""
+
+#. Comment
+#: src/kontact.setdlg:45
+#, fuzzy
+msgid "News Ticker Component"
+msgstr "Umlungiseleli Wezindaba "
diff --git a/translations/desktop_files/korganizer-desktops/af.po b/translations/desktop_files/korganizer-desktops/af.po
new file mode 100644
index 00000000..ed415fc2
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/af.po
@@ -0,0 +1,338 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organiseerder met 'n DCOP koppelvlak"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Kalender Versiering Inplak"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Kalender Inplak"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Korganizer Deel"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer herhinner kliënt"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Korganizer herhinner bediener kliënt"
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "Korganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Persoonlike Organiseerder"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalender en Skedulering Program"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Kleure"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer kleure opstelling"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+#, fuzzy
+msgid "korganizer;colors;"
+msgstr "korganizer; fonts;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Pasmaak Blaaie"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Stel die pasmaak blaaie op"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Skrif tipes"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer skrif tipe opstelling"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer; fonts;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Beskikbaar/Besig"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer Beskikbaar/Besig opstelling"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer; freebusy; scheduling;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Groep outomatisasie"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer groep outomatisasie opstelling"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer; group; automation;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Groep Skedulering"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer groep skedulering opstelling"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+#, fuzzy
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer; freebusy; scheduling;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Persoonlik"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer hoof opstelling"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+#, fuzzy
+msgid "korganizer;main;personal;"
+msgstr "korganizer; fonts;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Inprop modules"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Korganizer inprop module opstelling"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+#, fuzzy
+msgid "korganizer;plugin;module;"
+msgstr "korganizer; fonts;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Datum & Tyd"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer tyd opstelling"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+#, fuzzy
+msgid "korganizer;time;"
+msgstr "korganizer; fonts;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Aansigte"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer aansig opstelling"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+#, fuzzy
+msgid "korganizer;view;"
+msgstr "korganizer; fonts;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Dag nommer inprop module vir kalenders"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Die inprop module vertoon die dag nommer van die jaar bo aan die agenda "
+"aansig. Bv: 1 Februarie is dag 32 van die jaar."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Microsoft Exchange 2000 inprop module vir KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Hierdie inprop module maak dit vir korganizer gebruikers moontlik om met "
+"Microsoft Exchange 2000 bedieners te praat."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Joodse kalender inprop module"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Vertoon alle datums in KOrganizer ook volgens die Joodse kalender."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Joernaal druk styl"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+"Hierdie inprop module maak dit moontlik om joernaal inskrywings (dagboek "
+"inskrywings) te druk."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Lys druk styl"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "Hierdie inprop module druk afsprake en te-doen items in lys vorm."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Wat is volgende - druk styl"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Hierdie inprop module druk 'n lys van al die opkomende afsprake en te-doen "
+"itemme."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Druk styl: Jaarliks"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+"Hierdie inprop module maak dit moontlik om 'n kalender vir 'n hele jaar te "
+"druk."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Projek Besigtig Inplak vir Korganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Hierdie inprop module verskaf 'n projek beplanning aansig vir KOrganizer. "
+"Dit lyk baie soos die te-doen of maand aansig. As hierdie inprop module "
+"geaktiveer is, kan jy na die projek aansig wissel en na jou te-doen in "
+"projek beplanner formaat kyk."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Tydlyn aansig inprop module vir KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Hierdie inprop module verskaf 'n tydlyn aansig vir KOrganizer. Dit lyk baie "
+"soos die te-doen of maand aansig. As hierdie inprop module geaktiveer is, "
+"kan jy na die tydlyn aansig wissel en na jou te-doen lys in tydlyn formaat "
+"kyk."
diff --git a/translations/desktop_files/korganizer-desktops/ar.po b/translations/desktop_files/korganizer-desktops/ar.po
new file mode 100644
index 00000000..f79cff1e
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/ar.po
@@ -0,0 +1,323 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+#, fuzzy
+msgid "KOrganizer Part"
+msgstr "زبون المنبه لِــ KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "زبون المنبه لِــ KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+#, fuzzy
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "زبون المنبه لِــ KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "المنظم الشخصي"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "المنظم الشخصي"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "برنامج الجدولة والتقويم"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "الألوان"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "إعداد ألوان KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "الصفحات المعتادة"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "إعداد الصفحات المعتادة"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "المحارف"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "إعداد المحارف لِــ KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "متوفّر/مشغول"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+#, fuzzy
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "إعداد المحارف لِــ KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+#, fuzzy
+msgid "KOrganizer Group Automation Configuration"
+msgstr "إعداد جدولة مجموعة KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "جدولة المجموعة"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "إعداد جدولة مجموعة KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+#, fuzzy
+msgid "korganizer;group;scheduling;"
+msgstr "إعداد جدولة مجموعة KOrganizer"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "الشخصي"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+#, fuzzy
+msgid "KOrganizer Main Configuration"
+msgstr "إعداد الوقت لِــ KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "القوابس"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "إعداد الوقت لِــ KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "الوقت و التاريخ"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "إعداد الوقت لِــ KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "العروض"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+#, fuzzy
+msgid "KOrganizer View Configuration"
+msgstr "إعداد الوقت لِــ KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "قابس أرقام التاريخ للتقويم"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr ""
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/az.po b/translations/desktop_files/korganizer-desktops/az.po
new file mode 100644
index 00000000..c5d762db
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/az.po
@@ -0,0 +1,318 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: az\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+#, fuzzy
+msgid "Calendar Decoration Plugin"
+msgstr "Təqvim Əlavəsi"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Təqvim Əlavəsi"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr ""
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr ""
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr ""
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr ""
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr ""
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Rənglər"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Yazı növləri"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+#, fuzzy
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "KOrganizer Layihə Nümayiş Əlavəsi"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "Təqvim Əlavəsi"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "KOrganizer Layihə Nümayiş Əlavəsi"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "KOrganizer Layihə Nümayiş Əlavəsi"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/be.po b/translations/desktop_files/korganizer-desktops/be.po
new file mode 100644
index 00000000..aa4e172c
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/be.po
@@ -0,0 +1,328 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Арганізатар з DCOP інтэрфэйсам"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+#, fuzzy
+msgid "Calendar Decoration Plugin"
+msgstr "Дапаўненне \"Календар\""
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Дапаўненне \"Календар\""
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Частка \"K Арганізатар\""
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "Частка \"K Арганізатар\""
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Частка \"K Арганізатар\""
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Пэрсанальны арганізатар"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr ""
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Колеры"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Канфігурацыя колераў KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "K Арганізатар;колеры;korganizer;colors;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Шрыфты"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Канфігурацыя шрыфтоў \"K Арганізатара\""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "K Арганізатар;шрыфты;korganizer;fonts;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+#, fuzzy
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Канфігурацыя шрыфтоў \"K Арганізатара\""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+#, fuzzy
+msgid "korganizer;freebusy;scheduling;"
+msgstr "K Арганізатар;дапаўненне;модуль;korganizer;plugin;module;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+#, fuzzy
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Канфігурацыя дапаўненняў \"K Арганізатара\""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+#, fuzzy
+msgid "korganizer;group;automation;"
+msgstr "K Арганізатар;час;korganizer;time;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+#, fuzzy
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Канфігурацыя дапаўненняў \"K Арганізатара\""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+#, fuzzy
+msgid "korganizer;group;scheduling;"
+msgstr "K Арганізатар;дапаўненне;модуль;korganizer;plugin;module;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Пэрсанальныя"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+#, fuzzy
+msgid "KOrganizer Main Configuration"
+msgstr "Канфігурацыя дапаўненняў \"K Арганізатара\""
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+#, fuzzy
+msgid "korganizer;main;personal;"
+msgstr "K Арганізатар;час;korganizer;time;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Дапаўненні"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Канфігурацыя дапаўненняў \"K Арганізатара\""
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "K Арганізатар;дапаўненне;модуль;korganizer;plugin;module;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Час і дата"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Канфігурацыя часу \"K Арганізатара\""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "K Арганізатар;час;korganizer;time;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Выгляды"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Канфігурацыя выгляду \"K Арганізатара\""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "K Арганізатар;выгляд;korganizer;view;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Дапаўненне K Арганізатара \"Microsoft Exchange 2000\""
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "Дапаўненне \"Календар\""
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+#, fuzzy
+msgid "Project View Plugin for KOrganizer"
+msgstr "Дапаўненне K Арганізатара \"Microsoft Exchange 2000\""
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Дапаўненне K Арганізатара \"Microsoft Exchange 2000\""
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/bg.po b/translations/desktop_files/korganizer-desktops/bg.po
new file mode 100644
index 00000000..ec936a97
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/bg.po
@@ -0,0 +1,325 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Организатор с поддръжка на интерфейс DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Приставка за декорация на календара"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Приставка за календар"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Модул KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Аларма на KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Демон за алармата на KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Модул KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Организатор"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Програма за календар и разписание"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Цветове"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Настройки на цветовете за KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "организатор; цветове; настройки; korganizer; colors;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Потребителски полета"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Настройки на потребителските полета"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+"организатор; настройки; korganizer; configure; settings; custom fields;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Шрифтове"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Настройки на шрифтовете за KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "организатор; шрифтове; настройки; korganizer; fonts;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Свободен/зает"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Настройки на свободно/заето за KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+"организатор; свободно; заето; настройки; korganizer; freebusy; scheduling;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Организация"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Настройки на организация за KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "организатор; организация; настройки; korganizer; group; automation;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Разписание"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Настройки на разписание за KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "организатор; разписание; настройки; korganizer; group; scheduling;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Персоналност"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Главни настройки за KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+"организатор; главни; персонални; настройки; korganizer; main; personal;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Приставки"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Настройки на приставките за KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "организатор; модул; приставка; korganizer; plugin; module;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Дата и час"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Настройки на дата и час за KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "организатор; дата; час; настройки; korganizer; time;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Изгледи"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Настройки на изгледи за KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "организатор; изглед; изгледи; настройки; korganizer; view;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Приставка на календара за дати"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Приставката служи за показване на деня от началото на годината. Примерно, 1-"
+"ви февруари е 32-ия ден от годината."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Приставка на организатора за връзка с Microsoft Exchange 2000"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Приставката служи за връзка на Korganizer със сървъра Microsoft Exchange "
+"2000 groupware."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Приставка за еврейския календар"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Приставката служи за показване на датите според еврейския календар."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Стил на отпечатване на календар"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Приставката служи за печат на дневника."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Печат като списък"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "Приставката служи за печат на събитията и задачите в списъчна форма."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Стил за отпечатване на \"Какво следва\""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Приставката служи за печат на бъдещи събития и задачи в списъчна форма."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Стил за отпечатване на годишно разписание"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Приставката служи за печат на годишния календар."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Приставка на организатора за преглед на проекти"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr "Приставката служи за планиране и управление на проекти."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Приставка за разпределението на времето в организатора"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Приставката служи за преглед на събитията и задачите в зададен период от "
+"време."
diff --git a/translations/desktop_files/korganizer-desktops/br.po b/translations/desktop_files/korganizer-desktops/br.po
new file mode 100644
index 00000000..ecdf7cd3
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/br.po
@@ -0,0 +1,330 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Deiziater gant un etrefas DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Lugent kinkladur an deiziadur"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Lugent an deiziadur"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Perzh KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "Perzh KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Perzh KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+#, fuzzy
+msgid "Personal Organizer"
+msgstr "Diouzhoc'h"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr ""
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Livioù"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+#, fuzzy
+msgid "KOrganizer Colors Configuration"
+msgstr "Kefluniadur al lugent KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;livioù;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Pajennoù dre ziouer"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Kefluniañ ar pajennoù diouzhoc'h"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Fontoù"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+#, fuzzy
+msgid "KOrganizer Fonts Configuration"
+msgstr "Kefluniadur kentañ KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;nodrezhoù;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+#, fuzzy
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Kefluniadur al lugent KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+#, fuzzy
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Kefluniadur kentañ KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+#, fuzzy
+msgid "korganizer;group;automation;"
+msgstr "korganizer;amzer;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+#, fuzzy
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Kefluniadur al lugent KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+#, fuzzy
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;nodrezhoù;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Diouzhoc'h"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Kefluniadur kentañ KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+#, fuzzy
+msgid "korganizer;main;personal;"
+msgstr "korganizer;amzer;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Lugantoù"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Kefluniadur al lugent KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+#, fuzzy
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;amzer;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Deiziad hag eur"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+#, fuzzy
+msgid "KOrganizer Time Configuration"
+msgstr "Kefluniadur kentañ KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;amzer;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Gweloù"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+#, fuzzy
+msgid "KOrganizer View Configuration"
+msgstr "Kefluniadur kentañ KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;gwell;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+#, fuzzy
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Lugent gwell raktres evit KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Lugent deiziadur yudev"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Lugent gwell raktres evit KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Lugent gwell raktres evit KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/bs.po b/translations/desktop_files/korganizer-desktops/bs.po
new file mode 100644
index 00000000..063e40c0
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/bs.po
@@ -0,0 +1,319 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizer sa DCOP interfejsom"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Dodatak za ukrašavanje kalendara"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Dodatak za kalendar"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer dio"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer dio"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer dio"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Lični organizer"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalendar i rokovnik"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Boje"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer podešavanje boja"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;colors;boje;boja;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Vlastite stranice"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Podesite vlastite stranice"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Fontovi"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer podešavanje fontova"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fonts;fontovi;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Slobodan/Zauzet"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer podešavanje za Slobodan/Zauzet"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;freebusy;scheduling;raspored;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Automatizacija grupe"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer podešavanje automatizacije grupe"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;group;automation;automatizacija;grupa;grupe;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Raspoređivanje grupe"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer podešavanje raspoređivanja grupe"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;group;scheduling;raspoređivanje;grupa;grupe;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Lično"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer glavno podešavanje"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;main;personal;lično;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer glavno podešavanje"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+#, fuzzy
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;time;vrijeme;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Vrijeme i datum"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer podešavanje vremena"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;time;vrijeme;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Pogledi"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer podešavanje pogleda"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;view;pogled;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Dodatak za kalendar - brojevi datuma"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Microsoft Exchange 2000 dodatak za KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Dodatak za hebrejski kalendar"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Preglednik projekata, dodatak za KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Preglednik projekata, dodatak za KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/ca.po b/translations/desktop_files/korganizer-desktops/ca.po
new file mode 100644
index 00000000..0c480ca1
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/ca.po
@@ -0,0 +1,335 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organitzador amb una interfície DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Endollable de decoració del calendari"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Endollable calendari"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Part de KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Client de l'alarma de KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Client del dimoni d'alarma de KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Part de KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Organitzador personal"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Un programa de calendari i planificació"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr ""
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Configuració de colors a KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+#, fuzzy
+msgid "korganizer;colors;"
+msgstr "korganizer;lletres;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Pàgines a mida"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Configura les pàgines a mida"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; configura; opcions; camps a mida;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Tipus de lletres"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Configuració de lletres al KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;lletres;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Lliure/ocupat"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Configuració de Lliure/ocupat per a KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;lliure ocupat;planificació;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Automatització de grups"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Configuració de l'automatització de grups a KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;grup;automatització;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Planificació de grups"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Configuració de la planificació de grups a KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;grup;planificació;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+#, fuzzy
+msgid "Personal"
+msgstr "Organitzador personal"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Configuració principal a KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;principal;personal;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Endollables"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Configuració de l'endollable de KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;endollable;mòdul;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Hora i data"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Configuració del temps a KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;temps;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Vistes"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Configuració de la vista a KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;vista;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Endollable de números de data per als calendaris"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Per cada dia, aquest endollable mostra el número de dia de l'any al "
+"capdamunt de la vista d'agenda. Per exemple, 1 de Febrer és el dia 32 de "
+"l'any."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Endollable Microsoft Exchange 2000 per a KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Aquest endollable permet als usuaris de korganizer treballar amb servidors "
+"groupware Microsoft Exchange 2000."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Endollable de calendari jueu"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+"Mostra totes les dates del korganizer també en el sistema del calendari jueu."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Estil d'impressió del diari"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Aquest endollable us permet imprimir entrades del diari."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Estil d'impressió en llista"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Aquest endollable permet imprimir esdeveniments i tasques pendents en forma "
+"de llista."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Estil d'impressió Què toca ara?"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Aquest endollable us permet imprimir una llista de tots els esdeveniments i "
+"tasques pendents propers."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Estil d'impressió anual"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Aquest endollable us permet imprimir un calendari anual."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Endollable de vista de projectes per a KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Aquest endollable proporciona una vista de planificació de projectes per a "
+"KOrganizer (com ara les vistes de pendents o mensual). Si habiliteu aquest "
+"endollable, podeu canviar a la vista de projecte i veure la llista de "
+"tasques pendents com en un planificador de projectes."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Endollable de vista de període temporal per a KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Aquest endollable proporciona una vista d'un període temporal per a "
+"KOrganizer (com ara les vistes de pendents o mensual). Si habiliteu aquest "
+"endollable, podeu canviar a la vista de període temporal i veure els "
+"esdeveniments com en un diagrama de Gantt."
diff --git a/translations/desktop_files/korganizer-desktops/cs.po b/translations/desktop_files/korganizer-desktops/cs.po
new file mode 100644
index 00000000..69776caa
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/cs.po
@@ -0,0 +1,325 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/korganizer-desktop-files/cs/>\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: Weblate 4.8.1\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizátor s DCOP rozhraním"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Modul dekorace kalendáře"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Modul kalendáře"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Komponenta KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Klient upomínek KOrganizeru"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Klient démona připomínek KOrganizeru"
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Osobní organizátor"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalendářový a plánovací program"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Barvy"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Nastavení barev KOrganizeru"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;barvy;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Vlastní stránky"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Nastavení vlastních stránek"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer;nastavení;vlastní pole;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Písma"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Nastavení písem KOrganizeru"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;písma;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Aktivita"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Nastavení volného/zaneprázdněného času pro KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;volný;zaneprázdněn;plánování;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Řízení skupiny"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Nastavení skupinového řízení KOrganizeru"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;skupina;řízení;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Skupinové plánování"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Nastavení skupinového plánování KOrganizeru"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;skupina;plánování;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Osobní"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Hlavní nastavení KOrganizeru"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;hlavní;osobní;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Moduly"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Nastavení modulů KOrganizeru"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;modul;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Datum a čas"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Nastavení času v KOrganizeru"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;čas;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Pohledy"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Nastavení pohledů KOrganizeru"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;pohled;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Modul pro očíslování dat v kalendáři"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Tento modul pro každý den zobrazuje pořadí dne v roce na vrchu pohledu "
+"agendy. Např. 1. únor je 32. den v roce."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Modul Microsoft Exchange 2000 pro KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Tento modul umožňuje pracovat uživatelům KOrganizeru s Microsoft Exchange "
+"2000 groupware servery."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Modul židovského kalendáře"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Zobrazení všech dat v KOrganizeru také v židovském kalendáři."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Tiskový styl deníku"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Tento modul umožňuje tisk položek deníku."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Styl deníku – seznam"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "Tento modul umožňuje tisknout události a úkoly do seznamu."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Styl deníku – co je nového"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr "Tento modul umožňuje tisk seznamu všech budoucích událostí a úkolů."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Roční tiskový styl"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Tento modul umožňuje tisk ročního kalendáře."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Modul projektového pohledu pro KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Tento modul poskytuje projektový pohled pro KOrganizer (podobně jako úkoly "
+"nebo měsíční pohled). Pokud jej povolíte, může přepnout do projektového "
+"pohledu a prohlížet si úkoly jako v plánovači projektů."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Modul časového pohledu pro KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Tento modul umožňuje časový pohled pro KOrganizer (podobně jako úkoly nebo "
+"měsíční pohled). Pokud jej povolíte, můžete se přepnout na časový pohled a "
+"prohlížet si události v Ganttově diagramu."
diff --git a/translations/desktop_files/korganizer-desktops/cy.po b/translations/desktop_files/korganizer-desktops/cy.po
new file mode 100644
index 00000000..b24c63aa
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/cy.po
@@ -0,0 +1,320 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Trefnydd gyda rhyngwyneb DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Ategyn Addurniad Calendr"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Ategyn Calendr"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KTrefnydd Part"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "KTrefnydd Part"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "KTrefnydd"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Trefnydd Personol"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Rhaglen Galendr a Drefnlennu"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Lliwiau"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Ffurfweddiad Lliwiau KTrefnydd"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;ktrefnydd;lliwiau;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Wynebfathau"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "ffurfweddiad Wynebfathau KTrefnydd"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;ktrefnydd;wynebfathau;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Rhydd/Prysur"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Ffurfweddiad Rhydd/Prysur KTrefnydd"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;ktrefnydd;rhydd;prysur;trefnlennu;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Ymysgogi Grŵp"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Ffurfweddiad Ymysgogi Grŵp KTrefnydd"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;ktrefnydd;grŵp;ymysgogi;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Trefnlennu Grŵp"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Ffurfweddiad Trefnlennu Grŵp KTrefnydd"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;ktrefnydd;grŵp;trefnlenni;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Personol"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Prif Ffurfweddiad KTrefnydd"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;ktrefnydd;prif;personol;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Ategion"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "Prif Ffurfweddiad KTrefnydd"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+#, fuzzy
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;ktrefnydd;amser;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Amser & Dyddiad"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Ffurfweddiad Amser KTrefnydd"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;ktrefnydd;amser;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Golygon"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Ffurfweddiad Golygon KTrefnydd"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;ktrefnydd;golwg;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+#, fuzzy
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Ategyn Golwg Cywaith ar gyfer KTrefnydd"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "Ategyn Calendr"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Ategyn Golwg Cywaith ar gyfer KTrefnydd"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Ategyn Golwg Cywaith ar gyfer KTrefnydd"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/da.po b/translations/desktop_files/korganizer-desktops/da.po
new file mode 100644
index 00000000..710e7f71
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/da.po
@@ -0,0 +1,328 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organisator med en DCOP-grænseflade"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Calendar-dekorations-plugin"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Calendar-plugin"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer-del"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer-påmindelsesklient"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "KOrganizer-påmindelsesklient"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer-del"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Personlig organisering"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalender- og planlægningsprogram"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Farver"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer farveindstilling"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;farver;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Brugervalgte sider"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Indstil de selvvalgte sider"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; indstil; opsætning; brugervalgte felter;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Skrifttyper"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer skrifttypeindstilling"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;skrifttyper;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Fri/Optaget"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer Fri/Optaget-indstilling"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;fri/optaget;skemalægning;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Gruppeautomation"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer gruppeautomation indstilling"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;gruppe;automation;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Gruppeskemalægning"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer gruppeskemalægning indstilling"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;gruppe;skemalægning;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Personlig"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer hovedindstilling"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;hoved;personlig;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Plugin"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer plugin-indstilling"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;plugin;modul;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Tid & Dato"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer tidsindstilling"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;tid;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Visninger"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer visningsindstilling"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;visning;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Datonumre-plugin for kalendere"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"For hver dag viser dette plugin nummeret for dagen i året for oven i "
+"agendavisningen. For eksempel er 1. februar 1 is den 32. dag i året."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Microsoft Exchange 2000-plugin for KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Dette plugin tillader brugere af korganizer at arbejde med Microsoft "
+"Exchange 2000 groupware servere."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Jødisk kalender-plugin"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Viser alle datoer i korganizer også i det jødiske kalendersystem."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Journal udskriftsstil"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Dette plugin gør at du kan udskrive journalindgange (dagbogsindgange)."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Listeudskriftsstil"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Dette plugin gør at du kan udskrive begivenheder og opgaver på en liste."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Hvad er det næste-udskriftsstil"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Dette plugin gør at du kan udskrive en liste med alle kommende begivenheder "
+"og opgaver."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Yearly udskriftsstil"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Dette plugin gør at du kan udskrive en årlig kalender"
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Projektvisning-plugin for KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Dette plugin sørger for en projektplanvisning i Korganizer (som ligner "
+"gøremål eller månedsvisning). Hvis du aktiverer dette plugin kan du skifte "
+"til projektvisning og vise din gøremålsliste som i et projektplan-værktøj."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Timespan-visning-plugin for KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Pluginnet sørger for en tidsintervalsvisning i Korganizer (som ligner "
+"gøremål eller månedsvisning). Hvis du aktiverer dette plugin kan du skifte "
+"til tidsintervalvisning og vise dine begivenheder som i et Gantt-diagram."
diff --git a/translations/desktop_files/korganizer-desktops/de.po b/translations/desktop_files/korganizer-desktops/de.po
new file mode 100644
index 00000000..3385aaf5
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/de.po
@@ -0,0 +1,333 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizer mit DCOP-Schnittstelle"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Dekoration für den Kalender"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Kalender-Modul"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer-Komponente"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer Erinnerungsfunktion"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Hintergrund-Erinnerungsfunktion für KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer-Komponente"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Persönliche Daten organisieren"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Ein Kalender und Zeitplaner"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Farben"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Farbenfestlegung für KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "KOrganizer;Farben;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Benutzerdefinierte Seiten"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Einstellungen für benutzerdefinierte Seiten"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "KOrganizer;konfigurieren;Einstellungen;benutzerdefinierte Felder;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Schriften"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Schriftenfestlegung für KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "KOrganizer;Schriften;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Frei/Beschäftigt"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Frei/Beschäftigt-Festlegung für KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "KOrganizer;Frei/Beschäftigt;Ablaufplanung;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Gruppen-Automation"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Einrichtung von Gruppen-Automatismen für KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "KOrganizer;Gruppe;Automatisierung;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Gruppenplanung"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Einrichtung von Gruppen-Planungen für KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "KOrganizer;Gruppe;Planung;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Persönliches"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Grundeinrichtung für KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "KOrganizer;Persönliches;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Module"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Modul-Einrichtung für KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "KOrganizer;Modul;Plugin;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Zeit & Datum"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Zeitliche Vorgaben für KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "KOrganizer;Zeit;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Ansichten"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Ansichts-Einstellungen für KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "KOrganizer;Ansicht;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Kalendertag-Modul für Kalender"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Für jeden Tag des Jahres wird mit diesem Modul der Kalendertag oben in der "
+"Tagesansicht angezeigt. Der 1. Februar ist beispielsweise der 32. "
+"Kalendertag des Jahres."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Microsoft Exchange 2000-Modul für KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Mit diesem Modul kann KOrganizer mit Microsoft Exchange 2000 Groupware-"
+"Servern zusammenarbeiten."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Modul für jüdischen Kalender"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Zeigt alle Daten in KOrganizer auch im jüdischen Kalendarium an."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Journal Druckstil"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+"Mit diesem Modul können Journaleinträge (Tagebucheinträge) gedruckt werden."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Listen Druckstil"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Mit diesem Modul können Ereignisse und Aufgaben in Listenform ausgedruckt "
+"werden."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Was-kommt-als-nächstes Druckstil"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Mit diesem Modul kann eine Liste der als nächstes anliegenden Ereignisse und "
+"Aufgaben gedruckt werden"
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Jahres-Druckstil"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Mit diesem Modul können Jahresübersichten gedruckt werden."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Projektbetrachter-Modul für KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Mit diesem Modul wird KOrganizer um eine Projektplanungsansicht (ähnlich der "
+"Aufgaben- und Monatsansicht) erweitert. Wenn Sie es einschalten, können Sie "
+"zur Projektansicht wechseln und sich Ihre Aufgaben wie in einem "
+"Projektplaner ansehen."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Zeitspannenansicht-Modul für KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Mit diesem Modul wird KOrganizer um eine Zeitspannenansicht (ähnlich der "
+"Aufgaben- und Monatsansicht) erweitert. Wenn Sie es einschalten, können Sie "
+"zur Zeitspannenansicht wechseln und sich Ihre Ereignisse wie in einem Gantt-"
+"Diagramm ansehen."
diff --git a/translations/desktop_files/korganizer-desktops/el.po b/translations/desktop_files/korganizer-desktops/el.po
new file mode 100644
index 00000000..4d0a2eec
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/el.po
@@ -0,0 +1,335 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizer με περιβάλλον χρήσης DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Πρόσθετο διακόσμησης ημερολογίου"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Πρόσθετο ημερολογίου"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+#, fuzzy
+msgid "KOrganizer Part"
+msgstr "Κύρια ρύθμιση του KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Πελάτης υπενθύμισης του KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Δαίμονας πελάτη υπενθύμισης του KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Προσωπικός οργανωτής"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Προσωπικός οργανωτής"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Πρόγραμμα ημερολογίου και προγραμματισμού"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Χρώματα"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Ρύθμιση χρωμάτων του KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;χρώματα;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Προσαρμοσμένες σελίδες"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Ρύθμιση των προσαρμοσμένων σελίδων"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; ρύθμιση; ρυθμίσεις; προσαρμοσμένα πεδία;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Γραμματοσειρές"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Ρύθμιση γραμματοσειρών του KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;γραμματοσειρές;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Ρυθμίσεις KOrganizer Free/Busy"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;freebusy;προγραμματισμός;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Αυτοματισμός ομάδας"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Ρύθμιση αυτοματισμού ομάδας του KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;ομάδα;αυτοματοποίηση;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Προγραμματισμός ομάδας"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Ρύθμιση προγραμματισμού ομάδας του KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;ομάδα;προγραμματισμός;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Προσωπικό"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Κύρια ρύθμιση του KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;κύρια;προσωπικό;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Πρόσθετα"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Ρύθμιση προσθέτων του KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;πρόσθετο;άρθρωμα;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Ώρα & Ημερομηνία"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Ρύθμιση ώρας του KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;ώρα;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Προβολές"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Ρύθμιση προβολής του KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;προβολή;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Πρόσθετο αριθμού ημερών για Ημερολόγια"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Για κάθε μέρα, αυτό το πρόσθετο εμφανίζει τον αύξοντα αριθμό της ημέρας του "
+"έτους στην προβολή προγράμματος εργασίας. Για παράδειγμα, η 1ι Φεβρουαρίου "
+"είναι η ημέρα 32 του έτους."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Πρόσθετο Microsoft Exchange 2000 του KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Αυτό το πρόσθετο επιτρέπει στους χρήστες του korganizer να δουλεύουν με "
+"εξυπηρετητές groupware του Microsoft Exchange 2000."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Πρόσθετο εβραϊκού ημερολογίου"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+"Εμφανίζει όλες τις ημερομηνίες στο korganizer και στο εβραϊκό ημερολογιακό "
+"σύστημα."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Στυλ εκτύπωσης χρονικού"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Αυτό το πρόσθετο σας επιτρέπει να εκτυπώνετε καταχωρήσεις χρονικού."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Στυλ εκτύπωσης λίστας"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Αυτό το πρόσθετο σας επιτρέπει να εκτυπώνετε λίστες γεγονότων και προς "
+"υλοποίηση λίστες σε μορφή λίστας."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Στυλ εκτύπωσης 'Τί νέο υπάρχει'"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Αυτό το πρόσθετο σας επιτρέπει να εκτυπώνετε μία λίστα γεγονότων ή προς "
+"υλοποίηση εργασιών."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Στυλ ετήσιας εκτύπωσης"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Αυτό το πρόσθετο σας επιτρέπει να εκτυπώσετε ένα ετήσιο ημερολόγιο."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Πρόσθετο προβολής έργου του KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Αυτό το πρόσθετο παρέχει μία προβολή σχεδιασμού έργου για το KOrganizer "
+"(όπως η προβολή προς υλοποίηση εργασιών και μηνών). Αν το ενεργοποιήσετε, "
+"μπορείτε να αλλάξετε στην προβολή έργου και να δείτε τη λίστα των προς "
+"υλοποίηση εργασιών σας σαν σε ένα προγραμματιστή έργου."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Πρόσθετο προβολής εργασιών του KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Αυτό το πρόσθετο παρέχει μία προβολή 'ανοίγματος' χρόνου για το korganizer "
+"(όπως οι μηνιαίες προβολές των προς υλοποίηση εργασιών). Αν το "
+"ενεργοποιήσετε, μπορείτε να αλλάξετε σε προβολή 'ανοίγματος' χρόνου και να "
+"δείτε τα γεγονότα σας όπως ένα διάγραμμα του Gantt."
diff --git a/translations/desktop_files/korganizer-desktops/en_GB.po b/translations/desktop_files/korganizer-desktops/en_GB.po
new file mode 100644
index 00000000..c9046566
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/en_GB.po
@@ -0,0 +1,331 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: en_GB\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organiser with a DCOP interface"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr ""
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr ""
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Personal Organiser"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Personal Organiser"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr ""
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Colours"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer Colours Configuration"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;colours;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr ""
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+#, fuzzy
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer Colours Configuration"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+#, fuzzy
+msgid "korganizer;fonts;"
+msgstr "korganizer;colours;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+#, fuzzy
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer Colours Configuration"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+#, fuzzy
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer Colours Configuration"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+#, fuzzy
+msgid "korganizer;group;automation;"
+msgstr "korganizer;colours;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+#, fuzzy
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer Colours Configuration"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+#, fuzzy
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;colours;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+#, fuzzy
+msgid "Personal"
+msgstr "Personal Organiser"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+#, fuzzy
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer Colours Configuration"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+#, fuzzy
+msgid "korganizer;main;personal;"
+msgstr "korganizer;colours;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer Colours Configuration"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+#, fuzzy
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;colours;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+#, fuzzy
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer Colours Configuration"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+#, fuzzy
+msgid "korganizer;time;"
+msgstr "korganizer;colours;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+#, fuzzy
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer Colours Configuration"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+#, fuzzy
+msgid "korganizer;view;"
+msgstr "korganizer;colours;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr ""
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/eo.po b/translations/desktop_files/korganizer-desktops/eo.po
new file mode 100644
index 00000000..b38807ed
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/eo.po
@@ -0,0 +1,319 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizilo kun DCOP-interfaco"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Kalendarornama kromaĵo"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Kalendaro-kromaĵo"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Organizilo-parto"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Alarmilo por Organizilo"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Kliento por la alarmo-demono de Organizilo"
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "KOrganizilo"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Persona Organizilo"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalendara kaj plana programo"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Koloroj"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizilo Kolor-agordo"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizilo; koloroj;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Propraj Paĝoj"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Agordi la proprajn paĝojn"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Tiparoj"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizilo Tipar-agordo"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizilo; tiparoj;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Libera/Okupita"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizilo Agordo pri libero/okupito"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+#, fuzzy
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizilo;grupo;aŭtomatigo;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Grup-aŭtomatigo"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizilo Grup-aŭtomatiga Agordo"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizilo;grupo;aŭtomatigo;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+#, fuzzy
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizilo Grup-aŭtomatiga Agordo"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+#, fuzzy
+msgid "korganizer;group;scheduling;"
+msgstr "korganizilo;grupo;aŭtomatigo;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Personaĵoj"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizilo-Ĉefagordo"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+#, fuzzy
+msgid "korganizer;main;personal;"
+msgstr "korganizilo;tempo;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Kromaĵoj"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizilo-Kromaĵagordo"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+#, fuzzy
+msgid "korganizer;plugin;module;"
+msgstr "korganizilo;tempo;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Tempo & Dato"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizilo-tempagordo"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizilo;tempo;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Rigardoj"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizilo-Rigardagordo"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizilo;rigardo;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Datnumera kromaĵo por Kalendaro"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Microsoft Exchange 2000-kromaĵo por Organizilo"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Judkalendar-kromaĵo"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Ĵurnal-Presostilo"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "List-Presostilo"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "\"Kio postsekvas\"-Presostilo"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Pojara Presostilo"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Projektrigardo-kromaĵo por Organizilo"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Tempgamrigardo-kromaĵo por Organizilo"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/es.po b/translations/desktop_files/korganizer-desktops/es.po
new file mode 100644
index 00000000..650a1100
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/es.po
@@ -0,0 +1,334 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizador con un interfaz DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Plugin de decoración de calendario"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Plugin de calendario"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Parte de KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Cliente de recordatorio para KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Cliente del daemon de recordatorio para KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Parte de KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Organizador personal"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Calendario y planificador"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Colores"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Configuración de los colores de KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;colores;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Páginas personalizadas"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Configura las páginas personalizadas"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; configurar; opciones; campos personalizados;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Tipografías"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Configuración de las tipografías de KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;tipografías;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Libre/Ocupado"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Configuración de libre/ocupado de KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;libreocupado;planificación;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Automatización del grupo"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Configuración del automatización del grupo de KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;grupo;automatización;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Planificación de grupo"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Configuración de la planificación de grupos de KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;grupo;planificación;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+#, fuzzy
+msgid "Personal"
+msgstr "Organizador personal"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Configuración principal de KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;principal;personal;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Extensiones"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Configuración de las extensiones de KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;extensión;plugin;módulo;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Fecha y hora"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Configuración de la hora de KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;hora;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Vistas"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Configuración de la vista de KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;vista;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Accesorio de números de fecha para calendarios"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Para cada día, esta extensión mostrará el número del día en el año en la "
+"parte superior de la vista de la agenda. Por ejemplo, el 1 de febrero es el "
+"día número 32 del año."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Accesorio de Microsoft Exchange 2000 para KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Esta extensión permite que los usuarios de korganizer trabajen con "
+"servidores de groupware de Microsoft Exchange 2000."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Accesorio de calendario judío"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+"Muestra todas las fechas de korganizer también en el sistema de calendario "
+"judío."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Estilo de impresión del diario"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Esta extensión le permite imprimir entradas del diario."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Estilo de impresión de la lista"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Esta extensión le permite imprimir eventos y tareas pendientes en forma de "
+"lista."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Estilo de impresión de «Qué es lo siguiente»"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Esta extensión le permite imprimir una lista de todos los eventos y tareas "
+"pendientes futuros."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Estilo de impresión del diario"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Este plugin le permite imprimir entradas del diario."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Plugin de visor de proyectos para KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Esta extensión proporciona una vista de planificación de proyectos para "
+"KOrganizer (como las vistas de tareas pendientes o de mes). Si activa esta "
+"extensión, puede pasar a la vista del proyecto y ver la lista de tareas "
+"pendientes como en un planificador de proyectos."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Extensión de visor de Timespan para KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Esta extensión proporciona una vista de timespan para korganizer (como la "
+"vista de tareas pendientes o la mensual). Si activa esta extensión, puede "
+"pasar a la vista de timespan y ver sus eventos como un diagrama de Gantt."
diff --git a/translations/desktop_files/korganizer-desktops/et.po b/translations/desktop_files/korganizer-desktops/et.po
new file mode 100644
index 00000000..00faecaa
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/et.po
@@ -0,0 +1,327 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "KOrganizer DCOP-liidesega"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Kalendri dekoratsiooni plugin"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Kalendriplugin"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizeri komponent"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizeri meeldetuletuse klientprogramm"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "KOrganizeri meeldetuletusdeemoni klientprogramm"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizeri komponent"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Personaalne ajaarvestus"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalendri ja ajakava haldamise rakendus"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Värvid"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizeri värvide seadistamine"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;värvid;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Omaloodud leheküljed"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Omaloodud lehekülgede seadistamine"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; seadistamine; seadistused; omaloodud väljad;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Fondid"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizeri fontide seadistamine"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fondid;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Vaba/hõivatud"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizeri vaba/hõivatuse seadistused"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;vaba;hõivatud;ajakava;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Grupitöö"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizeri grupitöö seadistamine"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;grupid;grupitöö;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Grupitöö ajakavad"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Korganizeri grupitöö ajakavade seadistamine"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;grupid;grupitöö;ajakavad;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Isiklik"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizeri põhiseadistused"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;peamine;isiklik;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Pluginad"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizeri pluginate seadistused"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;plugin;moodul;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Aeg"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizeri ajaseadistused"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;aeg;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Vaated"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizeri vaateseadistused"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;vaade;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Kuupäeva nummerdamise plugin kalendritele"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"See plugin näitab iga päevakavavaate ülaosas iga päeva järjekorranumbrit "
+"aastas. Näiteks 1. veebruar on aasta 32. päev."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Microsoft Exchange 2000 plugin KOrganizeri jaoks"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"See plugin võimaldab KOrganizeri kasutajatel pruukida Microsoft Exchange "
+"2000 grupitööservereid."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Juudi kalendri plugin"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Näitab KOrganizeris kõiki kuupäevi ka juudi kalendri järgi."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Päeviku trükkimise stiil"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "See plugin võimaldab trükkida päeviku sissekandeid."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Nimekirja trükkimise stiil"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "See plugin võimaldab trükkida sündmusi ja ülesandeid nimekirjana."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "\"Mis järgmiseks?\" trükkimise stiil"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"See plugin võimaldab trükkida kõigi eelseisvate sündmuste ja ülesannete "
+"nimekirja."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Aastakalendri trükkimise stiil"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "See plugin võimaldab trükkida terve aasta kalendri."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "KOrganizeri projektivaate plugin"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"See plugin lisab KOrganizerile projekti planeerimise vaate (nagu ülesannete "
+"või kuuvaade). Selle lubamisel saab lülituda projektivaatele ning näha oma "
+"ülesannete nimekirja projektiplaneerija moodi."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "KOrganizeri perioodivaate plugin"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"See plugin lisab KOrganizerile perioodivaate (nagu ülesannete või kuuvaade). "
+"Selle lubamisel saab lülituda perioodivaatele ning näha oma sündmusi Gantti "
+"diagrammina."
diff --git a/translations/desktop_files/korganizer-desktops/eu.po b/translations/desktop_files/korganizer-desktops/eu.po
new file mode 100644
index 00000000..5966cbd9
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/eu.po
@@ -0,0 +1,337 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "DCOP interfazedun antolatzailea"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Egutegi apainketa plugin-a"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Egutegi plugin-a"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer zatia"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer-en oroigarrien bezeroa"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "KOrganizer-en oroigarrien deabruaren bezeroa"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer zatia"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Antolatzaile pertsonala"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Egutegi eta antolaketa progrmaa"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Koloreak"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer-en koloreen konfigurazioa"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;koloreak;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Orri pertsonalizatuak"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Konfiguratu orri pertsonalizatuak"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; konfiguratu; ezarpenak; eremu pertsonalizatuak;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Letra-tipoak"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer-en letra-tipoen konfigurazioa"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;letra-tipoak;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Libre/Lanpetuta"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer-en Libre/Lanpetuta konfigurazioa"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;libre; lanpetuta;antolaketa;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Talde automatizazioa"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer-en talde automatizazioaren konfigurazioa"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;taldea;automatizazioa;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Talde antolaketa"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer-en talde antolaketaren konfigurazioa"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;taldea;antolaketa;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Pertsonala"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer-en konfigurazio nagusia"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;nagusia;pertsonala;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Plugin-ak"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer-en plugin konfigurazioa"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;plugin-a;modulua;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Ordua eta data"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer-en ordu/data konfigurazioa"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;ordua;data;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Ikuspegiak"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer-en ikuspegi konfigurazioa"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;ikuspegia;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Egutegientzako data zenbakiak"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Egun bakoitzeko, plugin honek bere urteko egun-zenbakia erakutsiko du agenda "
+"ikuspegiaren goiko aldean. Adibidez, Otsailak 1 urtearen 32. eguna da."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "KOrganizer-en Microsoft Exchange 2000 plugin-a"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Plugin honek korganizer-en erabiltzaileei Microsoft Exchange 2000 groupware "
+"zerbitzariekin lan egiteko aukera ematen die."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Egutegi judutar plugin-a"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+"korganizer-en data guztiak egutegi judutar sisteman ere erakusten ditu."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Egunkariak inprimatzeko estiloa"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+"Plugin honek egunkarien sarrerak (eguneroko sarrerak) inprimatzeko aukera "
+"ematen dizu."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Zerrenda inprimatzeko estiloa"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Plugin honek gertaerak eta egitekoak zerrenda moduan inprimatzeko aukera "
+"ematen dizu."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "\"Zer da hurrengoa\" inprimatzeko estiloa"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Plugin honek gertatuko diren gertaera eta egitekoen zerrenda bat "
+"inprimatzeko aukera ematen dizu."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+#, fuzzy
+msgid "Yearly Print Style"
+msgstr "Egunkariak inprimatzeko estiloa"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+#, fuzzy
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+"Plugin honek egunkarien sarrerak (eguneroko sarrerak) inprimatzeko aukera "
+"ematen dizu."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "KOrganizer-en proiektu ikuspegi plugin-a"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Plugin honek KOrganizer-en proiektuaren plangintza ikuspegi bat eskeintzen "
+"du (egiteko edo hilabete ikupegien antzera). Plugin hau gaitzen baduzu, "
+"proiektuaren ikuspegira alda zaitezke eta egitekoak proiektu plangintza "
+"batean bezala ikus dezakezu."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "KOrganizer-rako denbora-barruti ukuspegi plugin-a"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Plugin honek KOrganizer-entzat denbora barruti ikuspegi bat eskeintzen du. "
+"Plugin hau gaitzen baduzu denbora-barruti ikuspegira alda zaitezke gertaerak "
+"Gantt diagrama batean bezala ikusi."
diff --git a/translations/desktop_files/korganizer-desktops/fa.po b/translations/desktop_files/korganizer-desktops/fa.po
new file mode 100644
index 00000000..9c6cfb23
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/fa.po
@@ -0,0 +1,331 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "سازمان‌دهنده با یک واسط DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "وصلۀ تزئین تقویم"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "وصلۀ تقویم"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "بخش KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "کارخواه یادآوری‌کنندۀ KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "کارخواه شبح یادآوری KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "بخش KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "سازمان‌دهندۀ شخصی"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "تقویم و برنامۀ زمان‌بندی"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "رنگها"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "پیکربندی رنگهای KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer،رنگها;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "صفحات سفارشی"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "پیکربندی صفحات سفارشی"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer، پیکربندی، تنظیمات، حوزه‌های سفارشی;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "قلمها"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "پیکربندی قلمهای KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer،قلمها;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "آزاد/اشغال"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "پیکربندی آزاد/اشغال KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer،آزاد اشغال، زمان‌بندی;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "خودکارسازی گروه"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "پیکربندی خودکارسازی گروه KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer،گروه، خودکارسازی;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "زمان‌بندی گروه"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "پیکربندی زمان‌بندی گروه KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer،گروه، زمان‌بندی;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "شخصی"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "پیکربندی اصلی KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer،اصلی، شخصی;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "وصله‌ها"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "پیکربندی وصلۀ KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer،وصله، پیمانه;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "زمان و تاریخ"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "پیکربندی زمان KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer،زمان;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "نماها"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "پیکربندی نمای KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer،نما;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "وصلۀ عدد تاریخ برای تقویمها"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"در هر روز، این وصله عدد مربوط به روز سال را در بالای نمای agenda نمایش "
+"می‌دهد. مثلاً ۱ فوریه، سی و دومین روز سال می‌باشد."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "وصلۀ Microsoft Exchange ۲۰۰۰ برای KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"این وصله به کاربران korganizer اجازه می‌دهد که با کارسازهای Microsoft "
+"Exchange 2000 groupware کار کند."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "وصلۀ تقویم یهودی"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "همۀ تاریخهای korganizer، همچنین سیستم تقویم یهودی را نمایش می‌دهد."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "سبک چاپ نشریه"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+"این وصله، به شما اجازه می‌دهد که مدخلهای نشریه )مدخلهای روزانه( را چاپ کنید."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "سبک چاپ فهرست"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"این وصله به شما اجازه می‌دهد که رویدادها و کارهای انجامی را در برگۀ فهرست چاپ "
+"کنید."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "سبک چاپ بعدی چیست"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"این وصله به شما اجازه می‌دهد که فهرستی از همۀ رویدادها و کارهای انجامی که "
+"بالا می‌آیند را چاپ کنید."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "سبک چاپ نشریه"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+"این وصله، به شما اجازه می‌دهد که مدخلهای نشریه )مدخلهای روزانه( را چاپ کنید."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "وصلۀ نمای پروژه برای KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"این وصله، برای KOrganizer یک نمای طراحی پروژه )مثل نماهای کارهای انجامی یا "
+"ماهانه( فراهم می‌‌کند. اگر این وصله را فعال کنید، می‌توانید به نمای پروژه سودهی "
+"کرده و مانند طراح پروژه، فهرست کارهای انجامی خود را مشاهده کنید."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "وصلۀ نمای گسترۀ زمان برای KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"این وصله، برای KOrganizer یک نمای گسترۀ زمان )مثل نماهای کارهای انجامی یا "
+"ماهانه( فراهم می‌‌کند. اگر این وصله را فعال کنید، می‌توانید به گسترۀ زمان سودهی "
+"کرده و مانند نمودار Gantt، رویدادهای خود را مشاهده کنید."
diff --git a/translations/desktop_files/korganizer-desktops/fi.po b/translations/desktop_files/korganizer-desktops/fi.po
new file mode 100644
index 00000000..06f00493
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/fi.po
@@ -0,0 +1,334 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Kalenteri DCOP-rajapinnalla"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Kalenteritekstin koristeluliitännäinen"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Kalenteriliitännäinen"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+#, fuzzy
+msgid "KOrganizer Part"
+msgstr "KOrganizerin pääasetukset"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer-hälytysasiakas"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "KOrganizer hälytyspalvelimen asiakas"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Henkilökohtainen ajanhallintaohjelma"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Henkilökohtainen ajanhallintaohjelma"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalenteri ja ajanhallintaohjelma"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Värit"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer värien asetukset"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;värit;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Omat sivut"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Muokkaa omia sivuja"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "kaddressbook; aseta; asetukset;omat kentät;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Kirjasimet"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Korganizer kirjasinten asetukset"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;kirjasimet;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Vapaa/Varattu"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer vapaa/varattu asetukset"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;vapaa;varattu;ajastus;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Ryhmän automatisointi"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Korganizer ryhmän automatisoinnin asetukset"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;ryhmä;automaatio;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Ryhmän ajastus"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer ryhmäajastuksen asetukset"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;ryhmä;ajastus;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Henkilökohtainen"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizerin pääasetukset"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;pää;henkilökohtainen;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Liitännäiset"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizerin liitännäisen asetukset"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;liitännäinen;moduuli;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Aika ja päiväys"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizerin aika-asetukset"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;aika;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Näkymät"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizerin näkymäasetukset"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;näkymä;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Päivämääräliitännäinen kalentereihin"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Tämä liitännäinen näyttää jokaisen päivän järjestysnumeron vuoden alusta "
+"agendanäkymässä. Esimerkiksi helmikuun ensimmäinen päivä on vuoden 32. päivä."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "KOrganizerin Microsoft Exchange 2000 -liitännäinen"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Tämä liitännäinen mahdollistaa KOrganizer-käyttäjien työskentelemisen "
+"Microsoft Exchange 2000 -ryhmätyöpalvelimien kanssa."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Juutalaisen kalenterin laajennus"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+"Näyttää kaikki päivät KOrganizerissa myös Juutalaisen kalenterijärjestelmän "
+"mukaan."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Päiväkirjan tulostustyyli"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Tämä liitännäinen mahdollistaa päiväkirjan tulostuksen."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Listatulostustyyli"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Tämä liitännäinen mahdollistaa tapahtumien ja tehtävien tulostuksen listana."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Mitä seuraavaksi -tulostustyyli"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Tämä liitännäinen mahdollistaa tulevien tapahtumien ja tehtävien tulostuksen "
+"listana."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+#, fuzzy
+msgid "Yearly Print Style"
+msgstr "Päiväkirjan tulostustyyli"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+#, fuzzy
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Tämä liitännäinen mahdollistaa päiväkirjan tulostuksen."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Projektinäkymäliitännäinen KOrganizeriin"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Tämä liitännäinen mahdollistaa projektin suunnittelunäkymän KOrganizeriin "
+"(kuten tehtävälista- tai kuukausinäkymän). Jos kytket tämän päälle, voit "
+"vaihtaa projektinäkymään ja katsoa tehtävälistaa kuten projektin "
+"suunnittelussa."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Ajankulkunäkymäliitännäinen Korganizeriin"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Tämä liitännäinen mahdollistaa ajankulkunäkymän KOrganizeriin (kuten "
+"tehtävälista- tai kuukausinäkymän). Jos kytket tämän päälle, voit vaihtaa "
+"ajankulkunäkymään ja katsoa tapahtumia kuten Gantt-diagrammissa."
diff --git a/translations/desktop_files/korganizer-desktops/fr.po b/translations/desktop_files/korganizer-desktops/fr.po
new file mode 100644
index 00000000..74941480
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/fr.po
@@ -0,0 +1,327 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organiseur avec une interface DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Module de décoration d'agenda"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Module d'agenda"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Composant KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Client d'alarme de KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Client pour le démon d'alarme de KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Composant KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Organiseur personnel"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Calendrier et agenda personnel"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Couleurs"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Configuration des couleurs de KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "KOrganizer;couleurs;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Pages personnalisées"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Configurer les pages personnalisées"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "KOrganizer; configuration; configurer; champs personnalisés;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Polices"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Configuration des polices de KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "KOrganizer;polices;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Disponibilité"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Configuration de la disponibilité pour KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "KOrganizer;disponibilité; planification;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Automatisation des groupes"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Configuration de l'automatisation des groupes de KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "KOrganizer;groupes;automatisation;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Planification des tâches"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Configuration de la planification des groupes de KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "KOrganizer;groupes;planification;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Personnel"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Configuration principale de KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "KOrganizer;principal;personnel;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Modules externes"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Configuration du module KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "KOrganizer;module;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Date et heure"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Configuration de l'heure de KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "KOrganizer;date;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Vues"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Configuration des vues de KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "KOrganizer;vues;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Module de numérotation des jours"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Pour chaque jour, ce module montre le numéro du jour en haut de la vue "
+"agenda. Par exemple, le 1er février est le 32ème jour de l'année."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Module Microsoft Exchange 2000 pour KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Ce module permet à KOrganizer de fonctionner avec Microsoft Exchange 2000"
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Module de prise en charge du calendrier juif"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Affiche toutes les dates de KOrganizer selon le calendrier Juif"
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Impression en journal"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Ce module vous permet d'imprimer l'ensemble de vos journaux personnels"
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Impression en liste"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Ce module vous permet d'imprimer les évènements et les tâches sous forme de "
+"liste"
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Impression de la suite du programme"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Ce module vous permet d'imprimer la liste des prochaines évènements et des "
+"prochaines tâches."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Impression annuelle"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Ce module vous permet d'imprimer l'ensemble de l'année"
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Module afficheur de projet pour KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Ce module propose une vue en projet pour KOrganizer. Si vous activez ce "
+"module, vous pourrez afficher vos tâches sous la forme d'un planning projet."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Module d'affichage de planification pour KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Ce module vous permet d'avoir une vue de KOrganizer qui affiche les "
+"évènements selon l'axe temporel. Si vous activez cette vue, vous verrez vos "
+"évènements comme un diagramme de Gantt."
diff --git a/translations/desktop_files/korganizer-desktops/fy.po b/translations/desktop_files/korganizer-desktops/fy.po
new file mode 100644
index 00000000..1bc0c5f9
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/fy.po
@@ -0,0 +1,334 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizer mei in DCOP-ynterface"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Agindadekoraasjeplugin"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Agindaplugin"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+#, fuzzy
+msgid "KOrganizer Part"
+msgstr "KOrganizer algemiene ynstellings"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer omtinkerdaemon"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "KOrganizer omtinkerdaemon"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Persoanlike organizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Persoanlike organizer"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Aginda- en ôfsprakenprogramma"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Kleuren"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer kleuren ynstelle"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;colors;kleuren;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Oanpaste siden"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Hjir kinne jo de oanpaste siden ynstelle"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+"korganizer; configuratie; instellingen; ynstellings; oanpaste fjilden; "
+"aangepaste velden;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Lettertypen"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer lettertypen ynstelle"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fonts;lettertypen;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Frij/beset"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer frij/beset ynstelle"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;freebusy;scheduling;plannen;frij;beset;roaster;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Groepautomatisearring"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer groepautomatisearring ynstelle"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;groep;automatisearring;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Groepsplanning"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer groepsplanning ynstelle"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;group;scheduling;plannen;groep;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Persoanlik"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer algemiene ynstellings"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;algemien; persoanlik;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer pluginynstellings"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+#, fuzzy
+msgid "korganizer;plugin;module;"
+msgstr "datum;tijd;tiid;korganizer;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Datum & tiid"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer datum en tiid ynstelle"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "datum;tijd;tiid;korganizer;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Werjeften"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer werjefte ynstelle"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;weergave; werjefte;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Datumgetallenplugin foar aginda's"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Dizze plugin soarget derfoar dat it nûmer fan de dei boppe de agindawerjefte "
+"setten wurdt. Bygelyks, by 1 february heard deinûmer 32."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Microsoft Exchange 2000 plugin foar KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Dizze plugin makket it mooglik om Microsoft Exchange 2000 te brûken yn "
+"KOrganizer."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Joadske kalenderplugin"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Lit alle datums yn KOrganizer ek yn it Joadske kalinderssysteem sjen."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Printstyl foar journaals"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+"Dizze plugin makket it mooglik journalen út te printsjen (deiboekitems)."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Printstyl foar listen"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Dizze plugin makket it mooglik om eveneminten en taken yn list foar út te "
+"printen."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Printstyl foar Wat komt der no"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Dizze plugin makket it mooglik om in list fan alle kommende eveneminten en "
+"taken út te printsjen."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Printstyl foar jierkalinder"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Dizze plugin makket it mooglik om in jierkalinder út te printsjen."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Projektwerjefteplugin foar KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Dizze plugin jout jo in projektwerjefte foar KOrganizer (krekt as in "
+"takenlist of moannewerjefte). Wannear jo dizze plugin ynskeakelje, kinne jo "
+"dizze werjefte oansette om jo takenlist te besjen as projektplanner."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Tiidspanneplugin foar KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Dizze plugin jout in werjefte foar KOrganizer (lykas de takenlist en de "
+"moannewerjefte). Wannear jo dizze plugin ynskeakelje kinne jo kieze foar in "
+"werjefte wêryn jo eveneminten yn in Gantt-diagram besjen kinne."
diff --git a/translations/desktop_files/korganizer-desktops/ga.po b/translations/desktop_files/korganizer-desktops/ga.po
new file mode 100644
index 00000000..2a07719e
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/ga.po
@@ -0,0 +1,332 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+#, fuzzy
+msgid "KOrganizer Part"
+msgstr "Príomhchumraíocht KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "Príomhchumraíocht KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "korganizer;am;"
+
+#. GenericName
+#: korganizer.desktop:6
+#, fuzzy
+msgid "Personal Organizer"
+msgstr "Pearsanta"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr ""
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Dathanna"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+#, fuzzy
+msgid "KOrganizer Colors Configuration"
+msgstr "Príomhchumraíocht KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;dathanna;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Leathanaigh Shaincheaptha"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Cumraigh na Leathanaigh Shaincheaptha"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; cumraigh; socruithe; réimsí saincheaptha;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Clónna"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+#, fuzzy
+msgid "KOrganizer Fonts Configuration"
+msgstr "Príomhchumraíocht KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;clónna;clófhoirne;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+#, fuzzy
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Príomhchumraíocht KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+#, fuzzy
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;breiseán;modúl;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+#, fuzzy
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Príomhchumraíocht KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+#, fuzzy
+msgid "korganizer;group;automation;"
+msgstr "korganizer;am;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+#, fuzzy
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Príomhchumraíocht KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+#, fuzzy
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;breiseán;modúl;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Pearsanta"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Príomhchumraíocht KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+#, fuzzy
+msgid "korganizer;main;personal;"
+msgstr "korganizer;am;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Breiseáin"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "Príomhchumraíocht KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;breiseán;modúl;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Am & Dáta"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+#, fuzzy
+msgid "KOrganizer Time Configuration"
+msgstr "Príomhchumraíocht KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;am;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Amhairc"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+#, fuzzy
+msgid "KOrganizer View Configuration"
+msgstr "Príomhchumraíocht KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;amharc;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Breiseán Microsoft Exchange 2000 le haghaidh KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr ""
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+#, fuzzy
+msgid "Project View Plugin for KOrganizer"
+msgstr "Breiseán Microsoft Exchange 2000 le haghaidh KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Breiseán Microsoft Exchange 2000 le haghaidh KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/gl.po b/translations/desktop_files/korganizer-desktops/gl.po
new file mode 100644
index 00000000..b440bac9
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/gl.po
@@ -0,0 +1,331 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizador con interface DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Extensión para a Decoración do Calendario"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Extensión de Calendario"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Parte de KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Cliente de Lembranzas de KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Daemon do Cliente de Lembranzas de KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Parte de KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Organizador Persoal"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Programa de Calendario e Axenda"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Cores"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Configuración de Cores de KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;cores;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Páxinas Personalizadas"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Configurar as Páxinas Personalizadas"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; configurar; opcións; campos personalizados;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Fontes"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Configuración de Fontes de KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fontes;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Ceibe/Ocupado"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Configuración de Dispoñibilidade de Korganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;dispoñibilidade;axenda;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Automatización de Grupo"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Configuración da Automatización de Grupo de KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;grupo;automatización;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Organización de Grupo"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Configuración da Axenda de Grupo de KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;grupo;programar;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Persoal"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Configuración Principal de KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;principal;persoal;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Extensións"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Configuración de Extensións de KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;extensión;módulo;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Hora e Data"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Configuración de Hora de KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;hora;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Vistas"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Configuración de Vista de KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;vista;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Engadido para Números dos Días nos Calendarios"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Este engadido amosa cada día o número de día anual na vista superior da "
+"axenda. Por exemplo, o 1 de febreiro é o día 32 do ano."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Extensión de Microsoft Exchange 2000 para KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Este engadido permite que os usuarios de korganizer traballen con servidores "
+"de traballo en grupo Microsoft Exchange 2000"
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Extensión para Calendario Xudeu"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+"Amosa todas as datas en korganizer, tamén o sistema de calendario xudeu."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Imprimir en Estilo Xornal"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+"Este engadido permítelle imprimir as entradas do xornal (entradas do diario)."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Imprimir en Estilo de Lista"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Este plugin permítelle imprimir os eventos e as tarefas e forma de lista."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Imprimir en Estilo Qué Vén Agora"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Este engadido permítelle imprimir unha lista de todos os eventos e tarefas "
+"por vir."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Estilo de impresión anual"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Este engadido permítelle imprimir un calendario anual."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Extensión para Vista de Proxecto para KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Este engadido fornece unha vista planificadora de proxectos para KOrganizer "
+"(como as vistas de tarefas ou mensuais). Se habilita este engadid, pode "
+"trocar á vista de proxecto e ver a súa lista de tarefas nun planificador de "
+"proxectos."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Extensión de Vista en Unidades de Tempo para KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Esta extensión fornece unha vista en unidades de tempo (como as vistas "
+"mensuais e a vista de tarefas). Se habilita esta extensión, pode trocar a "
+"vista en unidades de tempo e ver os seus eventos como un diagrama Gantt."
diff --git a/translations/desktop_files/korganizer-desktops/he.po b/translations/desktop_files/korganizer-desktops/he.po
new file mode 100644
index 00000000..ae913f2b
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/he.po
@@ -0,0 +1,329 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "ארגונים עם ממשק DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "תוסף קישוטי לוח שנה"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "תוסף לוח שנה"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "רכיב KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "רכיב KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "רכיב KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "מנהל זמן אישי"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "תוכניות לוח שנה ותזמון משימות"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "צבעים"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "הגדרות צבעים של הארגונית"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;colors; ארגונית; צבעים;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "דפים מותאמים אישית"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "הגדר את הדפים המותאמים אישית"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+"korganizer; configure; settings; custom fields; הגדרות; תצורה; שדות; מותאמים "
+"אישית;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "גופנים"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "הגדרות גופנים של הארגונים"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fonts;ארגונית;גופנים;גופן;פונט;פונטים;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+#, fuzzy
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "הגדרות גופנים של הארגונים"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+#, fuzzy
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;plugin;module;מודול;תוסף;ארגונית;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+#, fuzzy
+msgid "KOrganizer Group Automation Configuration"
+msgstr "תצורה ראשית של הארגונית"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+#, fuzzy
+msgid "korganizer;group;automation;"
+msgstr "korganizer;main;personal;ארגונית;תצורה;הגדרה;הגדרות;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+#, fuzzy
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "הגדרות תוסף הארגונית"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+#, fuzzy
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;plugin;module;מודול;תוסף;ארגונית;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "אישי"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "תצורה ראשית של הארגונית"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;main;personal;ארגונית;תצורה;הגדרה;הגדרות;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "תוספים"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "הגדרות תוסף הארגונית"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;plugin;module;מודול;תוסף;ארגונית;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "תאריך ושעה"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "הגדרות שעה בארגונית"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;time;ארגונית;שעה;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "תצוגות"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+#, fuzzy
+msgid "KOrganizer View Configuration"
+msgstr "הגדרות שעה בארגונית"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+#, fuzzy
+msgid "korganizer;view;"
+msgstr "korganizer;time;ארגונית;שעה;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "תוסף מספרי תאריכים ללוחות שנה"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+#, fuzzy
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "תוסף תצוגת פרוייקט ל-KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "תוסף לוח שנה"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "מציג את כל התאריכים בארגונית גם בלוח השנה העברי"
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "תוסף תצוגת פרוייקט ל-KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "תוסף תצוגת פרוייקט ל-KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/hi.po b/translations/desktop_files/korganizer-desktops/hi.po
new file mode 100644
index 00000000..c44021a5
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/hi.po
@@ -0,0 +1,321 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "डीकॉप इंटरफेस सहित आर्गेनाइज़र"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "कैलेन्डर सजावट प्लगइन"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "कैलेन्डर प्लगइन"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "के-आर्गेनाइज़र हिस्सा"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "के-आर्गेनाइज़र हिस्सा"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "के-आर्गेनाइज़र"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "निजी प्रबंधक"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "कैलेन्डर तथा समय-सारणी प्रोग्राम"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "रंग"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "के-आर्गेनाइज़र रंग कॉन्फ़िगरेशन"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "के-आर्गेनाइज़र;रंग;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "फ़ॉन्ट्स"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "के-आर्गेनाइज़र फ़ॉन्ट्स कॉन्फ़िगरेशन"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "के-आर्गेनाइज़र;फ़ॉन्ट्स;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "फ्री/बिज़ी"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "के-आर्गेनाइज़र फ्री/बिज़ी कॉन्फ़िगरेशन"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "के-आर्गेनाइज़र;फ्री-बिज़ी;समय-सारणी;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "समूह स्वचालन"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "के-आर्गेनाइज़र फ़ॉन्ट्स कॉन्फ़िगरेशन"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "के-आर्गेनाइज़र;समूह;स्वचालन;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "समूह समय-सारणी"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "के-आर्गेनाइज़र समूह समय-सारणी कॉन्फ़िगरेशन"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+#, fuzzy
+msgid "korganizer;group;scheduling;"
+msgstr "के-आर्गेनाइज़र;फ्री-बिज़ी;समय-सारणी;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "निजी"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "के-आर्गेनाइज़र मुख्य कॉन्फ़िगरेशन"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "के-आर्गेनाइज़र;मुख्य;निजी;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "के-आर्गेनाइज़र मुख्य कॉन्फ़िगरेशन"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+#, fuzzy
+msgid "korganizer;plugin;module;"
+msgstr "के-आर्गेनाइज़र;समय;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "तारीख़ व समय"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "के-आर्गेनाइज़र समय कॉन्फ़िगरेशन"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "के-आर्गेनाइज़र;समय;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "दृश्य"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "के-आर्गेनाइज़र दृश्य कॉन्फ़िगरेशन"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "के-आर्गेनाइज़र;दृश्य;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+#, fuzzy
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "के-आर्गेनाइज़र के लिए परियोजना दृश्य प्लगइन"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "कैलेन्डर प्लगइन"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "के-आर्गेनाइज़र के लिए परियोजना दृश्य प्लगइन"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "के-आर्गेनाइज़र के लिए परियोजना दृश्य प्लगइन"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/hr.po b/translations/desktop_files/korganizer-desktops/hr.po
new file mode 100644
index 00000000..54e80dff
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/hr.po
@@ -0,0 +1,321 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Dodatak za dekoraciju kalendara"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Kalendar dodatak"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer komponenta"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer komponenta"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer komponenta"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr ""
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalendar i rokovnik"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Boje"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Pisma"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+#, fuzzy
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer komponenta"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer komponenta"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+#, fuzzy
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "KOrganizer dodatak za pogled na projekt"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "Kalendar dodatak"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "KOrganizer dodatak za pogled na projekt"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "KOrganizer dodatak za pogled na projekt"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/hu.po b/translations/desktop_files/korganizer-desktops/hu.po
new file mode 100644
index 00000000..d0dbbe19
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/hu.po
@@ -0,0 +1,327 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Határidőnapló DCOP-felülettel"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Naptármegjelenési bővítőmodul"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Naptárkezelő bővítőmodul"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer objektum"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer-emlékeztető kliens"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "KOrganizer emlékeztető szolgáltatás kliense"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer objektum"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Határidőnapló"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Határidőnapló és eseményszervező"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Színek"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer színbeállítások"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;színek;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Egyéni lapok"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Az egyéni lapok beállítása"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer;beállítás;beállítások;egyéni mezők;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Betűtípusok"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer betűtípus-beállítások"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;betűtípusok;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Foglaltság"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer foglaltsági beállítások"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;foglaltság;szervezés;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Csoportmunka"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer csoportmunka-beállítások"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;csoport;csoportmunka;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Szervezés"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer szervezési beállítások"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;csoport;szervezés;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Alapbeállítások"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "A KOrganizer alapbeállításai"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;alapbeállítások;személyes;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Bővítőmodulok"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "A KOrganizer bővítőmodul beállításai"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;bővítőmodul;modul;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Dátum és idő"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer dátum- és időbeállítások"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;idő;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Nézetek"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer nézeti beállítások"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;nézet;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Dátumkezelő bővítőmodul naptárakhoz"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Megjeleníti az év elejétől eltelt napok számát az áttekintő nézet tetején. "
+"Például február elseje az év 32. napja."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Microsoft Exchange 2000-bővítőmodul a KOrganizerhez"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Ez a modul lehetővé teszi KOrganizer-felhasználóknak Microsoft Exchange 2000-"
+"kiszolgálón tárolt csoportmunka-adatok elérését."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Bővítőmodul a zsidó naptár kezeléséhez"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "A KOrganizer dátumait kiírja a hagyományos zsidó naptár szerint is."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Naplónyomtatási stílus"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Ez a modul naplóbejegyzések kinyomtatását teszi lehetővé."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Eseménylista kinyomtatása"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "Ezzel a modullal listaként kinyomtathatók a feladatok és események."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "A közeljövő eseményeinek kinyomtatása"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Ezzel a modullal kinyomtathatók a rövidesen aktuálissá váló feladatok és "
+"események."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Éves naptár nyomtatási stílus"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Ez a modul egy egész éves naptár kinyomtatását teszi lehetővé."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Projektnézegető bővítőmodul a KOrganizerhez"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Ezzel a modullal projekttervező nézet alakítható ki a KOrganizerben (például "
+"a feladatokhoz vagy a havi nézetekhez). Ha aktiválja ezt a modult, átválthat "
+"projektnézetbe, hogy a feladatok projekttervként legyenek megtekinthetők."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Időszakáttekintő bővítőmodul a KOrganizerhez"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Ezzel modullal egy időszakot lehet áttekinteni a KOrganizerben (például a "
+"feladatokat vagy a havi nézeteket). Ha aktiválja ezt a modult, átválthat "
+"időszakos nézetbe, hogy az események Gantt-diagramon legyenek megtekinthetők."
diff --git a/translations/desktop_files/korganizer-desktops/id.po b/translations/desktop_files/korganizer-desktops/id.po
new file mode 100644
index 00000000..73b14cc9
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/id.po
@@ -0,0 +1,314 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: id\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr ""
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr ""
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr ""
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr ""
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr ""
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Warna"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr ""
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr ""
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/is.po b/translations/desktop_files/korganizer-desktops/is.po
new file mode 100644
index 00000000..a816aff7
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/is.po
@@ -0,0 +1,330 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Skipuleggjari með DCOP viðmóti"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Íforrit til að skreyta texta dagatals"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Dagatals íforrit"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer hluti"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Áminningarforrit fyrir KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Áminningarpúki fyrir KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer hluti"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Persónuleg skipulagsbók"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Dagbók og skipulag"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Litir"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer litastillingar"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;litir;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Sérsniðnar síður"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Stilla sérsniðnu síðurnar"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; stillingar; stilla; sérsniðnir reitir;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Letur"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer leturstillingar"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;letur;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Tímaráðstöfun"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer stillingar fyrir tímaráðstöfun"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;tímaráðstöfun;áætlun;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Hópsjálfvirkni"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Stillingar KOrganizer hópsjálfvirkni"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;hópar;sjálfvirkni;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Hópáætlun"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Stillingar fyrir KOrganizer hópáætlun"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;hóp;áætlun;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Persónulegt"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Aðalstillingar KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;aðal;persónulegt;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Íforrit"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Stillingar KOrganizer íforrita"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;íforrit;eining;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Tími og dagsetning"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer tímastillingar"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;tími;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Sýn"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Stillingar KOrganizer sýna"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;sýn;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Íforrit fyrir númer dags á dagatali"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Þetta íforrit sýnir efst í fundarskránni númer hvers dags í árinu. T.d. er "
+"1. febrúar 32. dagurinn í árinu."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Microsoft Exchange 2000 íforrit fyrir KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Þetta íforrit gerir KOrganizer kleyft að vinna með Microsoft Exchange 2000 "
+"hópvinnuþjónum."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Gyðinga dagatalsíforrit"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Sýna alla dagsetningar í KOrganizer sem eru einnig í dagatali gyðinga."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Dagbókarprentstíll"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Þetta íforrit gerir þér kleyft að prenta út dagbókarfærslur."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Listaprentstíll"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Þetta íforrit gerir þér kleyft að prenta út lista með atburðum og verkþáttum."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Hvað er næst prentstíll"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Þetta íforrit gerir þér kleyft að prenta út lista yfir alla væntanlega "
+"atburði og verkþætti."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+#, fuzzy
+msgid "Yearly Print Style"
+msgstr "Dagbókarprentstíll"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+#, fuzzy
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Þetta íforrit gerir þér kleyft að prenta út dagbókarfærslur."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Verkefnasýnaríforrit fyrir KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Þetta íforrit veitir verkskipulagssýn fyrir KOrganizer (svipað og verkþátta "
+"eða mánaðarsýn). Ef þú virkjar þetta íforrit, getur þú á einfaldan hátt "
+"skipt yfir í verkefnasýn og skoðað verkþáttalistann þinn í skipuleggjara."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Tímabilsskoðunar íforrit fyrir KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Þetta íforrit veitir tímabilssýn fyrir KOrganizer (svipað og verkþátta eða "
+"mánaðarsýn). Ef þú virkjar þetta íforrit getur þú skipt yfir í tímabilssýn "
+"og skoðað atburðina þína eins og á Gantt skýringarmynd."
diff --git a/translations/desktop_files/korganizer-desktops/it.po b/translations/desktop_files/korganizer-desktops/it.po
new file mode 100644
index 00000000..1a30cc51
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/it.po
@@ -0,0 +1,331 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: 2020-11-29 07:59+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/korganizer-desktop-files/it/>\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: Weblate 4.3.2\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizer con un'interfaccia DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Plugin di decorazione del calendario"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Plugin calendario"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Parte di KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Client degli avvisi di KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Client del demone degli avvisi di KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Organizzatore personale"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Programma di calendario e di agenda"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Colori"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Configurazione dei colori di Korganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;colori;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Pagine personalizzate"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Configura le pagine personalizzate"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; configura; impostazioni; campi personalizzati;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Tipi di carattere"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Configurazione font di KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;font;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Libero/Occupato"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Configurazione Libero/Occupato di KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;libero/occupato;pianificazione;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Automazione gruppi"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Configurazione automazione gruppi di KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;gruppi;automazione;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Programmazione gruppi"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Configurazione del programmatore gruppi di KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;gruppo;programmazione;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Personale"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Configurazione principale di KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;principale;personale;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Plugin"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Configurazione plugin KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;plugin;modulo;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Data e ora"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Configurazione data di KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;data;ora;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Viste"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Configurazione viste di KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;viste;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Plugin delle date per i calendari"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Per ciascun giorno, questo plugin mostra la data giuliana (numero "
+"progressivo a partire dal primo gennaio dell'anno corrente). Per esempio al "
+"primo di febbraio corrisponde il numero 32."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Plugin Microsoft Exchange 2000 per KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Questo plugin permette agli utenti di korganizer di lavorare con i server "
+"groupware Microsoft Exchange 2000."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Plugin calendario ebraico"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Mostra tutte le date in korganizer secondo il calendario ebraico."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Stile di stampa a diario"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Questo plugin ti permette di stampare le registrazioni del diario."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Stile di stampa ad elenco"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Questo plugin ti permette di stampare eventi e cose da fare in modalità "
+"elenco."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Stile di stampa \"cosa viene dopo\""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Questo plugin vi permette di stampare una lista dei prossimi eventi e cose "
+"da fare."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Stile di stampa annuale"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Questo plugin ti permette di stampare un calendario annuale."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Plugin di vista dei progetti per KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Questo plugin fornisce una vista di pianificazione progetto per KOrganizer "
+"(come la vista delle cose da fare o quella mensile). Se abiliti questo "
+"plugin, puoi passare dalla vista progetto alla vista delle cose da fare come "
+"in un pianificatore di progetti."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Plugin vista intervalli temporali per KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Questo plugin fornisce una vista a intervalli temporali. Se abiliti questo "
+"plugin, potrai passare alla vista a intervalli temporali e vedere i tuoi "
+"eventi come in un diagramma di Gantt."
diff --git a/translations/desktop_files/korganizer-desktops/ja.po b/translations/desktop_files/korganizer-desktops/ja.po
new file mode 100644
index 00000000..b8e80e01
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/ja.po
@@ -0,0 +1,332 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "DCOP インターフェースを持つオーガナイザ"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "カレンダー装飾プラグイン"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "カレンダープラグイン"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer パート"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer リマインダクライアント"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "KOrganizer リマインダデーモンクライアント"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer パート"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "個人向けスケジュール管理"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "カレンダーとスケジュール管理プログラム"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "色"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer 色設定"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;色;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "カスタムページ"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "カスタムページの設定"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer、設定、設定;カスタムフィールド;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "フォント"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer フォント設定"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;フォント;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "動静情報"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer 動静情報の設定"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;動静;スケジューラ;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "グループ自動化"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer グループ自動化設定"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;グループ;自動化;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "グループスケジューリング"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer グループスケジューリング設定"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;グループ;スケジューリング;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "個人設定"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer 主要設定"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;メイン;個人;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "プラグイン"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer プラグイン設定"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;プラグイン;モジュール;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "日付と時間"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer 時間設定"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;時間;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "ビューア"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer ビューア設定"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+#, fuzzy
+msgid "korganizer;view;"
+msgstr "korganizer;時間;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "日数表示カレンダープラグイン"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"このプラグインは予定表ビューの上に、それぞれの日がその年の何日目であるかを表"
+"示します。例えば、2 月 1 日はその年の 32 日目です。"
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "KOrganizer の Microsoft Exchange 2000 プラグイン"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"このプラグインにより、korganizer のユーザが Microsoft Exchange 2000 グループ"
+"ウェアサーバと同期できるようになります。"
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "ユダヤ歴カレンダープラグイン"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "korganizer のすべての日付をユダヤ暦でも表示します。"
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "ジャーナル印刷スタイル"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+"このプラグインにより、ジャーナル (日誌) のエントリを印刷できるようになりま"
+"す。"
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "リスト印刷スタイル"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"このプラグインにより、リストフォーム内のイベントや To-Do を印刷できるようにな"
+"ります。"
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "次は何? 印刷スタイル"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"このプラグインにより、将来のすべてのイベントや To-Do のリストを印刷できるよう"
+"になります。"
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "年毎印刷スタイル"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "このプラグインにより、年毎のカレンダーを印刷できるようになります。"
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "KOrganizer プロジェクトビュー プラグイン"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"このプラグインは KOrganizer にプロジェクト計画ビューを提供します (To-Do "
+"ビューや月ビューなど)。このプラグインを有効にすると、プロジェクトビューに切り"
+"替えて、スケジュール管理ソフトのように To-Do リストを見ることができます。"
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "KOrganizer タイムスパンビュー プラグイン"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"このプラグインは KOrganizer にタイムスパンビューを提供します (To-Do ビューや"
+"月ビューなど)。このプラグインを有効にすると、タイムスパンビューに切り替えて、"
+"ガントチャートのようにイベントを見ることができます。"
diff --git a/translations/desktop_files/korganizer-desktops/ka.po b/translations/desktop_files/korganizer-desktops/ka.po
new file mode 100644
index 00000000..88bf19a2
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/ka.po
@@ -0,0 +1,325 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ka\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr ""
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr ""
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr ""
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr ""
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr ""
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr ""
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr ""
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+#, fuzzy
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "KOrganizer-ის პროექტის ხედის მოდული"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr ""
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "KOrganizer-ის პროექტის ხედის მოდული"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"ეს მოდული უზრუნველყოფს პროექტის დაგეგმარების ხედს KOrganizer-სთვის(მაგ.: "
+"დავალებები ან თვიური მიმოხილვა). თუ ამ მოდულს გაააქტიურებთ,შეგიძლიათ "
+"გადართოთ პროექტის ხედზე და იხილოთ თქვენი დავალებათა სია პროექტის მგეგმავის "
+"სახით."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "KOrganizer-ის პროექტის ხედის მოდული"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+#, fuzzy
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"ეს მოდული უზრუნველყოფს პროექტის დაგეგმარების ხედს KOrganizer-სთვის(მაგ.: "
+"დავალებები ან თვიური მიმოხილვა). თუ ამ მოდულს გაააქტიურებთ,შეგიძლიათ "
+"გადართოთ პროექტის ხედზე და იხილოთ თქვენი დავალებათა სია პროექტის მგეგმავის "
+"სახით."
diff --git a/translations/desktop_files/korganizer-desktops/kk.po b/translations/desktop_files/korganizer-desktops/kk.po
new file mode 100644
index 00000000..23fd8aac
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/kk.po
@@ -0,0 +1,326 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "DCOP интерфейсті Ұйымдастырғыш"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Күнтізбені безендіру модулі"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Күнтізбе модулі"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer бөлшегі"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer-дің еске салу клиенті"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Organizer-дің еске салу қызметінің клиенті"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer бөлшегі"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Дербес ұйымдастырғышы"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Күнтізбе және Жоспарлау бағдарламасы"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Түстері"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer-дің түстер параметрлері"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Қосымша парақтар"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Қосымша парақтарды баптау"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Қаріптері"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer-дің қаріптер параметрлері"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Бос/Істе"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer--дің Бос/Істе мәлімет параметрлері"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Топтың біріккен жұмысы"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer топтық жұмысының параметрлері"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+#, fuzzy
+msgid "korganizer;group;automation;"
+msgstr "KOrganizer топтық жұмысының параметрлері"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Топтың жұмысын жоспарлау"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer топтық жұмысты жоспрлаудың параметрлері"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+#, fuzzy
+msgid "korganizer;group;scheduling;"
+msgstr "KOrganizer топтық жұмысты жоспрлаудың параметрлері"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Дербес"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer-дің негізгі параметрлері"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Плагин модульдері"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer-дің плагин модульдерінің параметрлері"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Уақыт пен Күн"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer-дің уақыт параметрлері"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Көріністері"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer-дің көрінісінің параметрлері"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Күнтізбедегі күн нөмірінің модулі"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Бұл модуль күн тәртібі бетінің жоғарында жыл басынан өткен күндер санын "
+"көрсетеді. Мысалы, 1-ақпан жылдың 32-күні."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "KOrganizer-дің Microsoft Exchange 2000 модулі"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Бұл модуль korganizer-мен MS Exchange 2000 біріккен жұмыс сервермен істеуге "
+"мүмкіндік береді."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Яһуди күнтізбесінің модулі"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Яһуди күнтізбе күндерін korganizer-де көрсететін модулі."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Күнделікті басу стилі"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Бұл күнделіктің жазуларын басып шығаратын модулі."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Тізімді басу стилі"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "Бұл оқиғалар мен жоспарларды тізім түрінде басатын модулі."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "\"Не істеу?\" бетін басу стилі"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr "Бұл келер оқиғалар мен жоспарлар тізімін басып шығаратын модулі."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Жылдық басу стилі"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Бұл жылдық күнтізбені басып шығаратын модулі."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "KOrganizer-дің жоба көрінісінің модулі"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Бұл KOrganizer-нің жобаны жоспарлау көрінісінің модулі. Модулін орнатсаңыз, "
+"осы көрініске ауысып жоспар тізімініңізді жоба жоспарлағышындағы түріне "
+"келтіре аласыз."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "KOrganizer-дің уақыт аралығы көрініс модулі"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Бұл KOrganizer-нің уақыт аралығы көрінісінің модулі. Модулін орнатсаңыз, осы "
+"көрініске ауысып оқиғаларыңызды Гант диаграмма түріне келтре аласыз."
diff --git a/translations/desktop_files/korganizer-desktops/km.po b/translations/desktop_files/korganizer-desktops/km.po
new file mode 100644
index 00000000..ac0f7f7b
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/km.po
@@ -0,0 +1,325 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "កម្មវិធី​រៀបចំ​ដែល​មាន​ចំណុច​ប្រទាក់ DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "កម្មវិធី​ជំនួយ​សម្រាប់​តុបតែង​ប្រតិទិន"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "កម្មវិធី​ជំនួយ​ប្រតិទិន"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "ផ្នែក​របស់ KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "កម្មវិធី​រំលឹក​របស់ KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "កម្មវិធី​ដេមិន​អ្នក​រំលឹក​របស់ KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "ផ្នែក​របស់ KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "កម្មវិធី​រៀបចំ​ផ្ទាល់​ខ្លួន"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "កម្មវិធី​ប្រតិទិន និង​កាលវិភាគ"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "ពណ៌"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "ការ​កំណត់​រចនាសម្ព័ន្ធ​ពណ៌ KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;ពណ៌;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "ទំព័រ​ផ្ទាល់​ខ្លួន"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "កំណត់​រចនាសម្ព័ន្ធ​ទំព័រ​ផ្ទាល់​ខ្លួន"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer;កំណត់​រចនាសម្ព័ន្ធ;ការ​កំណត់;វាល​ផ្ទាល់​ខ្លួន;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "ពុម្ពអក្សរ"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "ការ​កំណត់​រចនាសម្ព័ន្ធ​ពុម្ពអក្សរ KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;ពុម្ពអក្សរ;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "ទំនេរ/រវល់"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "ការ​កំណត់​រចនាសម្ព័ន្ធ​ទំនេរ/រវល់ របស់ KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;ទំនេរ;រវល់;កាលវិភាគ;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "ស្វ័យប្រតិកម្ម​ក្រុម"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "ការ​កំណត់​រចនាសម្ព័ន្ធ​ស្វ័យប្រតិកម្ម​ក្រុម​របស់ KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;ក្រុម;ស្វ័យប្រតិកម្ម;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "រៀបចំ​កាលវិភាគ​ក្រុម"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "ការ​កំណត់​រចនាសម្ព័ន្ធ​ការ​រៀបចំ​កាលវិភាគ​ក្រុម​របស់ KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;ក្រុម;កាលវិភាគ;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "ផ្ទាល់​ខ្លួន"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "ការ​កំណត់​រចនាសម្ព័ន្ធ​សំខាន់ៗ​របស់ KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;សំខាន់;ផ្ទាល់​ខ្លួន;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "កម្មវិធី​ជំនួយ"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "ការ​កំណត់​រចនាសម្ព័ន្ធ​កម្មវិធី​ជំនួយ KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;កម្មវិធី​ជំនួយ;ម៉ូឌុល;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "កាលបរិច្ឆេទ & ពេលវេលា"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "ការ​កំណត់​រចនាសម្ព័ន្ធ​ពេលវេលា​របស់ KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;ពេលវេលា;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "ទិដ្ឋភាព"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "ការ​កំណត់​រចនាសម្ព័ន្ធ​ទិដ្ឋភាព​របស់ KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;ទិដ្ឋភាព;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "កម្មវិធី​ជំនួយ​លេខ​កាលបរិច្ឆេទ​សម្រាប់​ប្រតិទិន"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"សម្រាប់​ថ្ងៃ​នីមួយៗ កម្មវិធី​ជំនួយ​នេះ​នឹង​បង្ហាញ​លេខ​ថ្ងៃ​នៃ​ឆ្នាំ នៅ​ផ្នែក​ខាង​លើ​នៃ​ទិដ្ឋភាព​របៀបវារៈ ។ "
+"ឧទាហរណ៍ ថ្ងៃ​ទី ១ ខែ កុម្ភៈ នឹង​ត្រូវ​ជា​ថ្ងៃ​ទី ៣២ នៃ​ឆ្នាំ ។"
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "កម្មវិធី​ជំនួយ​ម៉ៃក្រូសូហ្វ Exchange ២០០០ សម្រាប់ KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"កម្មវិធី​ជំនួយ​នេះ​អនុញ្ញាត​ឲ្យ​អ្នក​ប្រើ​របស់ korganizer ធ្វើការ​ជាមួយ​ម៉ាស៊ីន​បម្រើ​កម្មវិធី​ពហុ​អ្នកប្រើ​របស់​"
+"ម៉ៃក្រូសូហ្វ Exchange ២០០០ ។"
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "កម្មវិធី​ជំនួយ​ប្រតិទិន Jewish"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "បង្ហាញ​កាលបរិច្ឆេទ​ទាំងអស់​ក្នុង korganizer នៅ​ក្នុង​ប្រព័ន្ធ​ប្រតិទិន Jewish ។"
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "រចនាប័ទ្ម​បោះពុម្ព​ទិនានុប្បវត្តិ"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "កម្មវិធី​ជំនួយ​នេះ​អនុញ្ញាត​ឲ្យ​អ្នក​បោះពុម្ព​ធាតុ​ទិនានុប្បវត្តិ (ធាតុ​កំណត់ហេតុ​ប្រចាំ​ថ្ងៃ) ។"
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "រចនាប័ទ្ម​បោះពុម្ព​បញ្ជី"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "កម្មវិធី​ជំនួយ​នេះ​អនុញ្ញាត​ឲ្យ​អ្នក​បោះពុម្ព​ព្រឹត្តិការណ៍ និង​ការងារ​ត្រូវ​ធ្វើក្នុង​ទម្រង់​ជា​បញ្ជី ។"
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "រចនាប័ទ្ម​បោះពុម្ព​ការងារ​បន្តបន្ទាប់"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr "កម្មវិធី​ជំនួយ​នេះ​អនុញ្ញាត​ឲ្យ​អ្នក​បោះពុម្ព​បញ្ជី​នៃ​ព្រឹត្តិការណ៍ និង​ការងារ​ត្រូវ​ធ្វើ​បន្តបន្ទាប់"
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "រចនាប័ទ្ម​បោះពុម្ព​ប្រចាំ​ឆ្នាំ"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "កម្មវិធី​ជំនួយ​នេះ​អនុញ្ញាត​ឲ្យ​អ្នក​បោះពុម្ព​​ប្រតិទិន​ប្រចាំ​ឆ្នាំ ។"
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "កម្មវិធី​ជំនួយ​ទិដ្ឋភាព​គម្រោង​សម្រាប់ KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"កម្មវិធី​ជំនួយ​នេះ​ផ្ដល់​នូវ​ទិដ្ឋភាព​រៀបចំ​គម្រោង​សម្រាប់ korganizer (ដូចជា ទិដ្ឋភាព​ការងារ​ត្រូវ​ធ្វើ ឬ "
+"ទិដ្ឋភាព​ខែ​ជាដើម) ។ បើ​អ្នក​ធ្វើ​ឲ្យ​កម្មវិធី​ជំនួយ​នេះ​ប្រើ​បាន អ្នក​នឹង​អាច​ប្ដូរ​ទិដ្ឋភាព​គម្រោង ហើយ​មើល​"
+"ព្រឹត្តិការណ៍​របស់​អ្នក​ដូចជា​នៅ​ក្នុងកម្មវិធី​រៀបចំ​គម្រោង​អញ្ចឹង​ដែរ ។"
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "កម្មវិធី​ជំនួយ​ទិដ្ឋភាព​រយៈពេល​សម្រាប់ KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"កម្មវិធី​ជំនួយ​នេះ​ផ្ដល់​នូវ​ទិដ្ឋភាព​រយៈពេល​សម្រាប់ korganizer (ដូចជា ទិដ្ឋភាព​ការងារ​ត្រូវ​ធ្វើ ឬ "
+"ទិដ្ឋភាព​ខែ​ជាដើម) ។ បើ​អ្នក​ធ្វើ​ឲ្យ​កម្មវិធី​ជំនួយ​នេះ​ប្រើ​បាន អ្នក​នឹង​អាច​ប្ដូរ​ទិដ្ឋភាព​រយៈពេល ហើយ​មើល​"
+"ព្រឹត្តិការណ៍​របស់​អ្នក​ដូចជា​នៅ​ក្នុងដ្យាក្រាម Gantt អញ្ចឹង​ដែរ ។"
diff --git a/translations/desktop_files/korganizer-desktops/ko.po b/translations/desktop_files/korganizer-desktops/ko.po
new file mode 100644
index 00000000..15ea58a0
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/ko.po
@@ -0,0 +1,316 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+#, fuzzy
+msgid "Calendar Decoration Plugin"
+msgstr "달력 플러그인"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "달력 플러그인"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr ""
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr ""
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr ""
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr ""
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr ""
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr ""
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr ""
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "달력 플러그인"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/korganizer-desktops.pot b/translations/desktop_files/korganizer-desktops/korganizer-desktops.pot
new file mode 100644
index 00000000..721d0741
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/korganizer-desktops.pot
@@ -0,0 +1,314 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr ""
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr ""
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr ""
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr ""
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr ""
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr ""
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr ""
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr ""
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/lt.po b/translations/desktop_files/korganizer-desktops/lt.po
new file mode 100644
index 00000000..7bc122c5
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/lt.po
@@ -0,0 +1,328 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Tvarkyklė su DCOP sąsaja"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "vCalendar dekoracijų priedas"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "iCalendar priedas"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer dalis"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer priminimų klientas"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "KOrganizer priminimų tarnybos klientas"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer dalis"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Asmeninės informacijos tvarkyklė"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalendoriaus ir planavimo programa"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Spalvos"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer spalvų konfigūravimas"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;colors; spalvos;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Pasirinkti puslapiai"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Konfigūruoti darbastalių skaičių ir pavadinimus"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+"korganizer; configure; settings; custom fields; konfigūruoti; nustatymai; "
+"pasirinkti laukai;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Šriftai"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer šriftų konfigūravimas"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fonts; šriftai;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Užimtumas"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer užimtumo konfigūravimas"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+#, fuzzy
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;group;scheduling;tvarkaraštis; grupė;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Grupių automatizavimas"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer grupių automatizavimo konfigūravimas"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;group;automation; grupės;automatizavimas;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Grupių tvarkaraščių tvarkymas"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer grupių tvarkaraščių tvarkymo konfigūravimas"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;group;scheduling;tvarkaraštis; grupė;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Suasmeninimas"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer bendroji konfigūravimas"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;main;personal;pagrindinis;asmeninis;bendroji;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Priedai"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer priedų konfigūravimas"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;plugin;module;modulis;priedas;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Laikas ir data"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer laiko konfigūravimas"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;time;laikas;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Žiūrikliai"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer žiūriklių konfigūravimas"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;view;žiūrikliai;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Datų numerių priedas kalendoriams"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Kiekvienai dienai šis priedas rodo metų dienos numerį tvarkyklės viršuje. "
+"Pvz., Vasario 1 yra32 metų diena."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Microsoft Exchange 2000 priedas, skirtas KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Šis priedas leidžia korganizer dirbti su Microsoft Exchange 2000 groupware "
+"serveriais."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Žydų kalendoriaus priedas"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Rodo visas dienas kalendoriuje taip pat ir žydų kalendoriaus sistema."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Dienyno spausdinimo stilius"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Šis priedas leidžia spausdinti dienyno įrašus."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Sąrašo spausdinimo stilius"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "Šis priedas leidžia spausdinti įvykius ir darbus sąrašo forma."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Ateinančių įvykių spausdinimo stilius"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr "Šis priedas leidžia spausdinti sąrašą visų artėjančių įvykių ir darbų."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Metų spausdinimo stilius"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Šis priedas leidžia spausdinti metų kalendorių."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Projekto peržiūros priedas, skirtas KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Šis priedas pateikia KOrganizaer projekto planavimo vaizdą (panašiai kaip "
+"darbų ar mėnesio vaizdai). Jei įjungsite šį įskiepį, galėsite peršokti į "
+"projekto vaizdą ir peržiūrėti savo darbų sąrašą kaip projektą."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Laiko tarpsnio vaizdo KOrganizer priedas"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Šis priedas korganizer programoje sudaro galimybę apžvelgti laiko tarpą "
+"(pvz., darbų arba mėnesio peržiūra). Įgalinus šį priedą galėsite persijungti "
+"į laiko tarpo peržiūrą ir žiūrėti įvykius tarsi Gantt diagramoje."
diff --git a/translations/desktop_files/korganizer-desktops/lv.po b/translations/desktop_files/korganizer-desktops/lv.po
new file mode 100644
index 00000000..17977172
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/lv.po
@@ -0,0 +1,323 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Kalendāra Dekorāciju Iespraudnis"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Kalendāra Iespraudnis"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer Daļa"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer Daļa"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "KOrganaizers"
+
+#. GenericName
+#: korganizer.desktop:6
+#, fuzzy
+msgid "Personal Organizer"
+msgstr "KOrganaizers"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalendāra un Plānošanas Programma"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Krāsas"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Fonti"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+#, fuzzy
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer Daļa"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer Daļa"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+#, fuzzy
+msgid "korganizer;time;"
+msgstr "KOrganaizers"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+#, fuzzy
+msgid "korganizer;view;"
+msgstr "KOrganaizers"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+#, fuzzy
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Projekta Skatījuma Iespraudnis KOrganaizeram"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "Kalendāra Iespraudnis"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Projekta Skatījuma Iespraudnis KOrganaizeram"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Projekta Skatījuma Iespraudnis KOrganaizeram"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/mk.po b/translations/desktop_files/korganizer-desktops/mk.po
new file mode 100644
index 00000000..0806670f
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/mk.po
@@ -0,0 +1,326 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Организатор со DCOP-интерфејс"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Приклучок за декорација на календар"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Приклучок за календар"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Дел од КОрганизатор"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Клиент за потсетување во КОрганизатор"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+#, fuzzy
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Клиент за потсетување во КОрганизатор"
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "КОрганизатор"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Личен организатор"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Програма за календари и закажувања"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Бои"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Конфигурација на боите"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;colors;корганизатор;бои;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Сопствени страници"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Конфигурирајте ги сопствените страници"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+"korganizer; configure; settings; custom fields; корганизатор; конфигурација; "
+"конфигурирање; поставувања; сопствени полиња;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Фонтови"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Конфигурација на фонтовите"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fonts;корганизатор;фонтови;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Слободен/зафатен"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Конфигурација на слободни/зафатени термини"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+"korganizer;freebusy;scheduling;корганизатор;слободно;зафатено;закажување;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Автоматизација на групи"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Конфигурација на автоматизација на групи"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;group;automation;корганизатор;група;групи;автоматизација;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Закажување групи"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Конфигурација на закажување групи"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;group;scheduling;корганизатор;група;групи;закажување;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Лично"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Главна конфигурација на КОрганизатор"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;main;personal;корганизатор;главно;лично;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Приклучоци"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Конфигурација на приклучоци"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+"korganizer;plugin;module;корганизатор;приклучок;приклучоци;модул.модули;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Датуми и времиња"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Конфигурација на датуми и времиња"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;time;корганизатор;датум;време;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Приказ"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Конфигурација на приказот"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;view;корганизатор;приказ;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Приклучок за КОрганизатор за Microsoft Exchange 2000"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Овој приклучок им овозможува на корисниците на КОрганизатор да работат со "
+"groupware-серверите на Microsoft Exchange 2000."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Приклучок за еврејски календар"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Ги прикажува сите датуми во КОрганизатор и според еврејскиот календар."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+#, fuzzy
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Овој приклучок Ви овозможува да испечатите годишен календар."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+#, fuzzy
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "Овој приклучок Ви овозможува да испечатите годишен календар."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+#, fuzzy
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr "Овој приклучок Ви овозможува да испечатите годишен календар."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Овој приклучок Ви овозможува да испечатите годишен календар."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+#, fuzzy
+msgid "Project View Plugin for KOrganizer"
+msgstr "Приклучок за КОрганизатор за Microsoft Exchange 2000"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Приклучок за КОрганизатор за Microsoft Exchange 2000"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/ms.po b/translations/desktop_files/korganizer-desktops/ms.po
new file mode 100644
index 00000000..72a1f648
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/ms.po
@@ -0,0 +1,335 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Penyusun dengan antara muka DCOP "
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Plugin Hiasan Kalendar"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Plugin Kalendar"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Bahagian KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "Bahagian KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Bahagian KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Penyusun Peribadi"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalendar dan Program Penjadualan"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Warna"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOnfigurasi Warna KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;warna;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Halaman Kebiasaan "
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Konfigurkan Halaman Langganan "
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; konfigur; seting; medan kebiasaan;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Fon"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Konfigurasi Fon KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fon;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Lapang/Sibuk"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Konfigurasi Lapang/Sibuk KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;lapang sibuk;penjadualan;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Automasi Kumpulan"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Konfigurasi Automasi Kumpulan KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;kumpulan;automasi;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Penjadualan Kumpulan"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Konfigurasi Penjadualan Kumpulan KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;kumpulan;penjadualan;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Peribadi"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Konfigurasi Utama KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;utama;peribadi;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Plugin"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Konfigurasi Plugin KOrganizer "
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;plugin;modul;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Waktu & Tarikh"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Konfigurasi Waktu KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;waktu;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Paparan"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Konfigurasi Paparan KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;paparan;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Plugin Bilangan Tarikh untuk Kalendar"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Setiap hari plugin ini memaparkan bilangan hari tahun tersebut di atas "
+"paparan agenda. Contohnya , 1 Februari adalah hari ke 32 bagi tahun tersebut."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "PLugin Microsoft Exchange 2000 untuk KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Plugin ini membenarkan pengguna korganizer bekerja bersama pelayan groupware "
+"Microsoft Exchange 2000."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "PLugin Kalender Yahudi"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+"Memaparkan semua tarikh dalam korganizer dan juga dalam sistem kalendar "
+"Yahudi."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Gaya Cetak Jurnal "
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Plugin ini membenarkan anda mencetak entri jurnal (entri diari)."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Gaya Cetakan Senarai "
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Plugin ini membenarkan anda mencetak peristiwa dan tugasan dalam borang "
+"senarai."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Gaya Cetak Apa Seterusnya"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Plugin ini membenarkan anda mencetak senarai semua peristiwa dan tugasan "
+"mendatang. "
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+#, fuzzy
+msgid "Yearly Print Style"
+msgstr "Gaya Cetak Jurnal "
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+#, fuzzy
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Plugin ini membenarkan anda mencetak entri jurnal (entri diari)."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Plugin Paparan Projek untuk KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Plugin ini menyediakan paparan perancangan projek untuk KOrganizer (seperti "
+"tugasan atau paparan bulan). Jika plugin ini diaktifkan, anda boleh beralih "
+"ke paparan projek dan paparkan senarai tugasan seperti dalam perancang "
+"projek."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Plugin Paparan Kitar Waktu untuk KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Plugin ini menyediakan paparan kitar waktu untuk korganizer (seperti "
+"tugasan atau paparan bulan). Jika plugin ini diaktifkan,anda boleh beralih "
+"ke paparan kitar masa dan paparkan peristiwa seperti dalam diagram Gantt."
diff --git a/translations/desktop_files/korganizer-desktops/mt.po b/translations/desktop_files/korganizer-desktops/mt.po
new file mode 100644
index 00000000..fabbf9b7
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/mt.po
@@ -0,0 +1,319 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Plagin ta' dekorazzjoni tal-kalendarju"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Plagin tal-kalendarju"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Parti ta' KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "Parti ta' KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Parti ta' KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr ""
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Programm b' kalendarju w skeda"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Kuluri"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr ""
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+#, fuzzy
+msgid "KOrganizer Main Configuration"
+msgstr "Parti ta' KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "Parti ta' KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "Plagin tal-kalendarju"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/nb.po b/translations/desktop_files/korganizer-desktops/nb.po
new file mode 100644
index 00000000..dfd5721d
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/nb.po
@@ -0,0 +1,329 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizer med DCOP-grensesnitt"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Calendar dekorasjonsprogramtillegg"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Calendar-programtillegg"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizerdel"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer klient for påminning"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "KOrganizer klient for påminningstjenesten"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizerdel"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Personlig planlegger"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Et kalender- og tidsplanleggingsprogram"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Farger"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer fargeoppsett"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;farger;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Tilpassede sider"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Stille inn de tilpassede sidene"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "kaddressbook; sette opp; innstillinger; tilpassede felter;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Skrifter"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer skriftoppsett"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;skrifter; skrifttyper;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Ledig/Opptatt"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer oppsett for ledig/opptatt tid"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;ledigopptatt;planlegger;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Gruppeautomat"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer oppsett for gruppeautomat"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;gruppe;automat;automatisering;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Gruppeplanlegging"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Gruppeplanleggingsoppsett for KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;gruppe;planlegging;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Personlig"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer hovedoppsett"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;hoved;personlig;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Programtillegg"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer oppsett for programtillegg"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;programtillegg;modul;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Dato og klokkeslett"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer tidsoppsett"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;tid;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Visninger"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer visningsoppsett"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;visning;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Datonummer programtillegg for Kalender"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"For hver dag viser dette programtillegget dagens nummer i året øverst på "
+"dagsvisningen. 1. februar er f.eks. dag nr. 32 i året."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Microsoft Exchange 2000 programtillegg for KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Med dette programtillegget kan korganizer-brukere arbeide med gruppevare-"
+"tjenere fra Microsoft Exchange 2000.i"
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Programtillegg for jødisk kalender"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Viser alle datoer i korganizer også i det jødiske kalendersystemet. "
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Utskriftsstil for dagbok"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Med dette programtillegget kan du skrive ut oppføringer i dagboka."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Utskriftsstil for liste"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Med dette programtillegget kan du skrive ut hendelser og gjørelister på "
+"liste-form."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Utskriftsstil for Hva Nå"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Med dette programtillegget kan du skrive ut en liste over kommende hendelser "
+"og ting som skal gjøres."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Utskriftsstil for kalender"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Med dette programtillegget kan du skrive ut en årskalender."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Programtillegg for prosjektvisning i KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Dette programtillegget lager en prosjektplan-visning for KOrganizer (som i "
+"gjørelister og månedsvisninger). Slår du på dette programtillegget kan du "
+"bytte til prosjektvisning og se på gjørelista som i en prosjektplan."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Programtillegg for periodevisning i KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Dette programtillegget lager en periodevisning for korganizer (slik som "
+"gjøreliste og månedsvisning). Hvis du slår på dette programtillegget kan du "
+"bytte til periodevisning og se hendelser som i et Gantt-diagram."
diff --git a/translations/desktop_files/korganizer-desktops/nds.po b/translations/desktop_files/korganizer-desktops/nds.po
new file mode 100644
index 00000000..f85731f5
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/nds.po
@@ -0,0 +1,329 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Mötenkalenner mit DCOP-Koppelsteed"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Dekoratschoon för den Kalenner"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Kalenner-Moduul"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer-Komponent"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer-Anstöötgever"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Client för den Anstötendämoon vun KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer-Komponent"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Persöönlich Mötenkalenner"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalenner un Tietplaner"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Klören"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Klören för KOrganizer instellen"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "KOrganizer;Klören;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Egen Sieden"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Egen Sieden instellen"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "KOrganizer;Instellen;egen Feller;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Schriftoorden"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Schriftoorden för KOrganizer instellen"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "KOrganizer;Schriftoorden;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Free/Bunnen"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Free/Bunnen-Instellen för KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "KOrganizer;Free/Bunnen;Free;Bunnen;Planen;Plaan;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Koppel-Akschonen"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Automaatsche Koppel-Akschonen för KOrganizer instellen"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "KOrganizer;Koppel;automaatsch;Akschoon;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Koppelplanen"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Koppelplanen för KOrganizer instellen"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "KOrganizer;Koppel;Plaan;planen;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Persöönlich"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Hööftinstellen för KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "KOrganizer;hööft;persöönlich;instellen;hööftinstellen;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Modulen"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Modulen för KOrganizer instellen"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "KOrganizer;Moduul;Modulen;Plugins;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Tiet & Datum"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Tietinstellen för KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "KOrganizer;Tiet;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Ansichten"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Ansichteninstellen för KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "KOrganizer;Ansichten;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Kalennerdag-Moduul för Kalenners"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Dit Moduul wiest för elkeen Dag sien Nummer in't Johr baven de Dagansicht. "
+"De 1. Februor is t.B. de 32. Dag vun't Johr."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "MSExchange2000-Moduul för KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Över dit Moduul köönt KOrganizer-Brukers mit Groupware-Servers för "
+"MSExchange-2000 arbeiden."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Moduul för juudschen Kalenner"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Wiest all Daten binnen KOrganizer ok in den juudschen Kalenner."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Daagbook-Druckstil"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Mit dit Moduul köönt Daagbook-Indrääg utdruckt warrn."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Listen-Druckstil"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "Mit dit Moduul köönt Begeefnissen un Opgaven as Listen utdruckt warrn."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Druckstil för \"Wat kummt nu\"-Indrääg"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Mit dit Moduul kann en List vun de direktemang nakamen Begeefnissen un "
+"Opgaven utdruckt warrn."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Johrkalenner-Druckstil"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Mit dit Moduul kannst Du en Kalenner för't hele Johr utdrucken."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Projektkieker-Moduul för KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Mit dit Moduul kannst Du in KOrganizer en Projektplaan-Ansicht opropen (jüst "
+"as de Opgaven- oder Maandansichten). Wenn Du dit Moduul aktiveerst, kannst "
+"Du na de Projektansicht wesseln un Dien Opgavenlist as mit en Projektplaner "
+"ankieken."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Tietbruuk-Moduul för KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Mit dit Moduul kannst Du in KOrganizer en Tietbruuk-Ansicht opropen (jüst as "
+"de Opgaven- oder Maandansichten). Wenn Du dit Moduul aktiveerst, kannst Du "
+"na de Tietbruukansicht wesseln un Dien Begeefnissen as Ganntt-Diagramm "
+"ankieken."
diff --git a/translations/desktop_files/korganizer-desktops/ne.po b/translations/desktop_files/korganizer-desktops/ne.po
new file mode 100644
index 00000000..b9e16d9b
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/ne.po
@@ -0,0 +1,328 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "DCOP इन्टरफेसको आयोजक"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "क्यालेन्डर सजावट प्लगइन"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "क्यालेन्डर प्लगइन"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "केडीई आयोजक भाग"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "केडीई आयोजक रिमाइन्डर क्लाइन्ट"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "केडीई आयोजक रिमाइन्डर डेइमन क्लाइन्ट"
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "केडीई आयोजक"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "व्यक्तिगत आयोजक"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "क्यालेन्डर र कार्यतालिका कार्यक्रम"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "रङ"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "केडीई आयोजक रङ कन्फिगरेसन"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "केडीई आयोजक; रङ;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "अनुकूल पृष्ठ"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "अनुकूल पृष्ठ कन्फिगर गर्नुहोस्"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "केडीई आयोजक; कन्फिगर; सेटिङ; अनुकूल फिल्ड;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "फन्ट"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "केडीई आयोजक फन्ट कन्फिगरेसन"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "केडीई आयोजक; फन्ट;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "स्वतन्त्र/व्यस्त"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "केडीई आयोजक स्वतन्त्र/व्यस्त कन्फिगरेसन"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "केडीई आयोजक; स्वतन्त्र व्यस्त; कार्यतालिका;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "समूह स्वचालिकरण"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "केडीई आयोजक समूह स्वचालिकरण कन्फिगरेसन"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "केडीई आयोजक; समूह; स्वचालिकरण;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "समूह कार्यतालिका"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "केडीई आयोजक समूह कार्यतालिका कन्फिगरेसन"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "केडीई आयोजक; समूह; कार्यतालिका;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "व्यक्तिगत"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "केडीई आयोजक मुख्य कन्फिगरेसन"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "केडीई आयोजक; मुख्य; व्यक्तिगत;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "प्लगइन"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "केडीई आयोजक प्लगइन कन्फिगरेसन"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "केडीई आयोजक; प्लगइन; मोड्युल;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "मिति र समय"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "केडीई आयोजक समय कन्फिगरेसन"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "केडीई आयोजक; समय;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "दृश्य"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "केडीई आयोजक दृश्य कन्फिगरेसन"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "केडीई आयोजक; दृश्य;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "क्यालेन्डरका लागि मिति सङ्ख्या प्लगइन"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"प्रत्येक दिनका लागि यो प्लगइनले एजेन्डा दृश्यको माथि यस वर्षको दिन नम्बर देखाउछ । "
+"उदारणका लागि, फेब्रुवरी १ वर्षको बत्तिसौ दिन हो ।"
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "केडीई आयोजकका लागि माइक्रोसफ्ट एक्सचेन्ज 2000"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"यो प्लगइनले माइक्रोसफ्ट एक्सचेन्ज 2000 ग्रुपवेयर सर्भरमा केडीई आयोजकलाई कार्य गर्न अनुमति "
+"दिन्छ ।"
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "यहूदि क्यालेन्डर प्लगइन"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "केडीई आयोजकमा पनि सबै मिति यहूदि क्यालेन्डर प्रणालीमा देखाउछ ।"
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "जर्नल मुद्रण शैली"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+"यो प्लगइनले तपाईँलाई जर्नल प्रविष्टि मुद्रण गर्न अनुमति दिन्छ (दैनिक विवरण प्रविष्टि) ।"
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "सूची मुद्रण शैली"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"यो प्लगइनले तपाईँलाई घटना मुद्रण गर्न र सूची फारममा गर्नुपर्ने कार्यहरू गर्न अनुमति दिन्छ ।"
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "पछिल्लो मुद्रण शैली कुन हो"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"यो प्लगइनले तपाईँलाई सबै पछि हुने घटना र गर्नुपर्ने कार्यहरुको सूचीको मुद्रण गर्न अनुमति दिन्छ "
+"।"
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "वार्षिक मुद्रण शैली"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "यो प्लगइनले तपाईँलाई वार्षिक पात्रो मुद्रण गर्न अनुमति दिन्छ ।"
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "केडीई आयोजकका लागि परियोजना दृश्य प्लगइन"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"यो प्लगइनले केडीई आयोजकका लागि परियोजना योजना दृश्य उपलब्ध गराउछ (जस्तै: कार्य गर्न वा "
+"महिना हेर्न) । तपाईँले यो प्लगइन सक्षम पारेमा, परियोजना दृश्यमा स्विच गर्न र परियोजना "
+"योजनाकारमा जस्तै तपाईँको कार्य गर्ने सूची हेर्न सक्नुहुन्छ ।"
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "केडीई आयोजकका लागि समयावधि दृश्य प्लगइन"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"यो प्लगइनले केडीई आयोजकका लागि समयावधि उपलब्ध गराउछ (गर्नुपर्ने कार्य वा महिना दृश्य "
+"जस्तो) । तपाईँले यो प्लगइन सक्षम पारेमा, तपाईँले समयावधि दृश्यमा स्वीच गर्न र गान्ट "
+"रेखाचित्र जस्तोमा घटना हेर्न सक्नुहुन्छ ।"
diff --git a/translations/desktop_files/korganizer-desktops/nl.po b/translations/desktop_files/korganizer-desktops/nl.po
new file mode 100644
index 00000000..01d54750
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/nl.po
@@ -0,0 +1,332 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizer met een DCOP-interface"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Agendadecoratieplugin"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Agendaplugin"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+#, fuzzy
+msgid "KOrganizer Part"
+msgstr "KOrganizer algemene instellingen"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer herinneringsdaemon"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "KOrganizer herinneringsdaemon"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Persoonlijke organizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Persoonlijke organizer"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Agenda- en afsprakenprogramma"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Kleuren"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer kleuren instellen"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;colors;kleuren;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Aangepaste pagina's"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Hier kunt u de aangepaste pagina's instellen"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; configuratie; instellingen; aangepaste velden;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Lettertypen"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer lettertypen instellen"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fonts;lettertypen;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Vrij/bezet"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer vrij/bezet instellen"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;freebusy;scheduling;plannen;vrij;bezet;rooster;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Groepautomatisering"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer groepautomatisering instellen"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;groep;automatisering;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Groepsplanning"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer groepsplanning instellen"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;group;scheduling;plannen;groep;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Persoonlijk"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer algemene instellingen"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;algemeen;persoonlijk;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer plugininstellingen"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+#, fuzzy
+msgid "korganizer;plugin;module;"
+msgstr "datum;tijd;korganizer;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Datum & tijd"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer datum en tijd instellen"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "datum;tijd;korganizer;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Weergaven"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer weergave instellen"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;weergave;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Datumgetallenplugin voor agenda's"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Deze plugin zorgt ervoor dat het dagnummer boven de agendaweergave wordt "
+"geplaatst. Bijvoorbeeld, bij 1 februari hoort dagnummer 32."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Microsoft Exchange 2000 plugin voor KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Deze plugin maakt het mogelijk om Microsoft Exchange 2000 te gebruiken in "
+"KOrganizer."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Joodse kalenderplugin"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Toont alle data in KOrganizer ook in het Joodse kalendersysteem."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Printstijl voor journaals"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+"Deze plugin maakt het mogelijk om journalen uit te printen (dagboekitems)."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Printstijl voor lijsten"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Deze plugin maakt het mogelijk om evenementen en taken in lijstvorm uit te "
+"printen."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Printstijl voor Wat komt er nu"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Deze plugin maakt het mogelijk om een lijst van alle komende evenementen en "
+"taken uit te printen."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Printstijl voor jaarkalender"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Deze plugin maakt het mogelijk om een jaarkalender af te drukken."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Projectenweergaveplugin voor KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Deze plugin biedt een projectweergave voor KOrganizer (net zoals een "
+"takenlijst of maandweergave). Wanneer u deze plugin aanzet, kunt u deze "
+"weergave aanzetten om uw takenlijst te bekijken als een projectplanner."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Tijdspanneplugin voor KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Deze plugin biedt een weergave voor KOrganizer (zoals de takenlijst en de "
+"maandweergave). Wanneer u deze plugin inschakelt kunt u kiezen voor een "
+"weergave waarin u uw evenementen in een Gantt-diagram kunt bekijken."
diff --git a/translations/desktop_files/korganizer-desktops/nn.po b/translations/desktop_files/korganizer-desktops/nn.po
new file mode 100644
index 00000000..c14834b5
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/nn.po
@@ -0,0 +1,332 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organisator med eit DCOP-grensesnitt"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Tilleggsmodul for kalenderpynt"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Kalendermodul"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer-del"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Alarmklient for KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Alarmnisseklient for KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer-del"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Personleg organiserar"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalender- og planleggingsprogram"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Fargar"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer, fargeinnstillingar"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;fargar;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Tilpassa sider"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Set opp dei tilpassa sidene"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; oppsett; innstillingar; tilpassa felt;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Skrifttypar"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer, skriftinnstillingar"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;skrift;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Ledig/opptatt"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer, ledig/opptatt-innstillingar"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;ledigopptatt;planlegging;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Gruppeautomatisering"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer, innstillingar for gruppeautomatisering"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;gruppe;automatisering;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Gruppeplanlegging"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer, innstillingar for gruppeplanlegging"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;gruppe;planlegging;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Personleg"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer, hovudinnstillingar"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;hovud;personleg;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Programtillegg"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Oppsett av KOrganizer-programtillegg"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;programtillegg;modul;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Tidsinnstillingar"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer, tidsinnstillingar"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;tid;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Visingar"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer, visingsinnstillingar"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;vising;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Datonummer programtillegg for Kalender"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"For kvar dag vil dette programtillegget visa nummeret til denne dagen i året "
+"øvst i tidsplanen. 1. februar vil til dømes visast som dag 32."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Microsoft Exchange 2000 programtillegg for KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Dette programtillegget lèt KOrganizer-brukarar arbeida saman med Microsoft "
+"Exchange 2000-gruppevaretenarar."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Programtillegg for jødisk kalender"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Viser alle datoane i KOrganizer i den jødiske kalenderen."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Utskriftsstil for dagbok"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Dette programtillegget lèt deg skriva ut dagboksoppføringar."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Utskriftsstil for dagbøker"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Dette programtillegget lèt deg skriva ut hendingar og hugselister på "
+"listeform."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Utskriftsstil for «Kva no»"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Dette programtillegget lèt deg skriva ut ei liste over alle dei komande "
+"hendingane og oppføringane i hugselista."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+#, fuzzy
+msgid "Yearly Print Style"
+msgstr "Utskriftsstil for dagbok"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+#, fuzzy
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Dette programtillegget lèt deg skriva ut dagboksoppføringar."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Programtillegg for prosjektvising i KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Dette programtillegget lagar ei prosjektplanvising for KOrganizer (slik som "
+"oppgåve- eller månadsvisingane). Dersom du brukar dette programtillegget, "
+"kan du visa oppgåvelista som i ein prosjektplanleggjar."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Programtillegg for tidsromsvising i KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+#, fuzzy
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Dette programtillegget lagar ei prosjektplanvising for KOrganizer (slik som "
+"oppgåve- eller månadsvisingane). Dersom du brukar dette programtillegget, "
+"kan du visa oppgåvelista som i ein prosjektplanleggjar."
diff --git a/translations/desktop_files/korganizer-desktops/nso.po b/translations/desktop_files/korganizer-desktops/nso.po
new file mode 100644
index 00000000..2db9dff6
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/nso.po
@@ -0,0 +1,323 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nso\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Plugin ya Kgabiso ya Tshupamabaka"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Plugin ya Tshupamabaka"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Seripa sa KMokopanyi"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "Seripa sa KMokopanyi"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "KMokopanyi"
+
+#. GenericName
+#: korganizer.desktop:6
+#, fuzzy
+msgid "Personal Organizer"
+msgstr "KMokopanyi"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Lenaneo la Peakanyo ya Tshupamabaka"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr ""
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr ""
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+#, fuzzy
+msgid "KOrganizer Main Configuration"
+msgstr "Seripa sa KMokopanyi"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "Seripa sa KMokopanyi"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+#, fuzzy
+msgid "korganizer;time;"
+msgstr "KMokopanyi"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+#, fuzzy
+msgid "korganizer;view;"
+msgstr "KMokopanyi"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+#, fuzzy
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Plugin ya Pono ya Porojeke ya KMmeakanyi"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "Plugin ya Tshupamabaka"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Plugin ya Pono ya Porojeke ya KMmeakanyi"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Plugin ya Pono ya Porojeke ya KMmeakanyi"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/pl.po b/translations/desktop_files/korganizer-desktops/pl.po
new file mode 100644
index 00000000..999090b7
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/pl.po
@@ -0,0 +1,325 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizator z interfejsem DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Wtyczka do dekoracji kalendarza"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Wtyczka do kalendarza"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Moduł KOrganizera"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Klient przypominania KOrganizera"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Klient demona przypominania KOrganizera"
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "Organizator"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Osobisty organizator"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalendarz i terminarz"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Kolory"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Konfiguracja kolorów KOrganizera"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;kolory;kolor;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Własne strony"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Konfiguracja własnych stron"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer;konfiguracja;ustawienia;własne pola;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Czcionki"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Konfiguracja czcionek KOrganizera"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;czcionki;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Wolny/zajęty"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Konfiguracja czasu wolnego/zajętego dla KOrganizera"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;wolny/zajęty;planowanie;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Automatyzacja pracy grupowej"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Konfiguracja automatyzacji pracy grupowej dla KOrganizera"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;grupy;praca grupowa;automatyzacja;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Planowanie grupowe"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Konfiguracja planowania grupowego dla KOrganizera"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;grupa;planowanie;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Osobiste"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Główna konfiguracja KOrganizera"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;główny;główna;osobisty;osobista;osobiste;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Wtyczki"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Konfiguracja wtyczek KOrganizera"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;wtyczka;moduł;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Czas i data"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Konfiguracja czasu dla KOrganizera"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;czas;data;daty;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Widoki"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Konfiguracja widoków KOrganizera"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;widok;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Wtyczka numerów dni dla Kalendarzy"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Ta wtyczka dla każdego dnia pokazuje jego numer kolejny w roku, na szczycie "
+"widoku planu. Na przykład, 1 luty to 32 dzień roku."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Wtyczka Microsoft Exchange 2000 dla Organizatora"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Ta wtyczka pozwala KOrganizerowi współpracować z serwerami pracy grupowej "
+"Microsoft Exchange."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Wtyczka kalendarza żydowskiego"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Pokazuje wszystkie daty w KOrganizerze również w kalendarzu żydowskim."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Styl drukowania dziennika"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Ta wtyczka pozwala drukować wpisy dziennika."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Styl drukowania listy"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "Ta wtyczka pozwala drukować zdarzenia i zadania w postaci listy."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Styl drukowania \"Do dalej\""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr "Ta wtyczka pozwala wydrukować wszystkie przyszłe zdarzenia i zadania."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Styl drukowania roku"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Ta wtyczka pozwala drukować roczny kalendarz."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Wtyczka przeglądania projektów dla Organizatora"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Ta wtyczka tworzy widok planowania projektu w KOrganizerze (tak jak widok "
+"zadań do zrobienia lub widok miesiąca). Po włączeniu tej wtyczki możliwe "
+"jest przełączenie się na widok projektu zadań do zrobienia."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Wtyczka widoku zakresu czasu dla KOrganizera"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Ta wtyczka tworzy widok zakresu czasu w KOrganizerze (tak jak widok zadań do "
+"zrobienia lub widok miesiąca). Po włączeniu tej wtyczki możliwe jest "
+"przełączenie się na widok zakresu czasu i przeglądanie zdarzeń jak na "
+"diagramie Gantta."
diff --git a/translations/desktop_files/korganizer-desktops/pt.po b/translations/desktop_files/korganizer-desktops/pt.po
new file mode 100644
index 00000000..3802d843
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/pt.po
@@ -0,0 +1,332 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizador com uma interface de DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "'Plugin' de Decoração do Calendário"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "'Plugin' de Calendário"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Componente do KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Cliente de Avisos do KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Cliente do Servidor de Avisos do KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Componente do KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Organizador Pessoal"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Calendário e Programa de Escalonamento"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Cores"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Configuração de Cores do KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;cores;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Páginas Personalizadas"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Configurar as Páginas Personalizadas"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; configurar; configuração; campos personalizados;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Tipos de Letra"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Configuração dos Tipos de Letra do KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;tipos de letra;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Livre/Ocupado"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Configuração de Livre/Ocupado do KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;livre;ocupado;escalonamento;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Automação do Grupo"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Configuração da Automação do Grupo do KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;grupo;automação;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Escalonamento do Grupo"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Configuração do Escalonamento do Grupo do KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;grupo;escalonamento;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Pessoal"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Configuração Principal do KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;principal;pessoal;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "'Plugins'"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Configuração de 'Plugins' do KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;'plugin';módulo;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Data e Hora"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Configuração da Hora no KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;hora;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Janelas"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Configuração da Janela do KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;janela;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "'plugin' de Números de Datas para Calendários"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Para cada dia, este 'plugin' mostra o seu número de dia do ano no topo da "
+"agenda. Por exemplo, o dia 1 de Fevereiro é o dia 32 do ano."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "'Plugin' do Microsoft Exchange 2000 para o KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Este 'plugin' permite aos utilizadores do KOrganizer lidarem com servidores "
+"de 'groupware' do Microsoft Exchange 2000."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "'Plugin' do Calendário Judeu"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+"Mostra todas as datas no KOrganizer também no sistema de calendários Judeu."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Estilo de Impressão em Diário"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Este diário permite-lhe imprimir os itens de diário."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Estilo de Impressão em Lista"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Este 'plugin' permite-lhe imprimir os eventos e os itens por-fazer no "
+"formato de uma lista."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Estilo de Impressão \"O Que Se Segue\""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Este 'plugin' permite-lhe imprimir uma lista com todos os eventos e itens "
+"por-fazer próximos."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Estilo de Impressão em Anuário"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Este 'plugin' permite-lhe imprimir um calendário anual."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "'Plugin' de Gestão de Projectos para o KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Este 'plugin' oferece uma vista de planeamento de projectos para o "
+"KOrganizer (como as vistas de itens por-fazer ou mensais). Se activar este "
+"'plugin', poderá mudar para a vista de projecto e ver a sua lista de itens "
+"por-fazer como num planeador de projectos."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "'Plugin' de Vista de Intervalo de Tempo para o KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Este 'plugin' oferece uma vista de distribuição temporal para o KOrganizer "
+"(como as vistas de itens por-fazer ou mensais). Se activar este 'plugin', "
+"poderá mudar para a vista de distribuição temporal e ver os seus eventos "
+"como num diagrama de Gantt."
diff --git a/translations/desktop_files/korganizer-desktops/pt_BR.po b/translations/desktop_files/korganizer-desktops/pt_BR.po
new file mode 100644
index 00000000..e8151599
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/pt_BR.po
@@ -0,0 +1,331 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizador com uma interface DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Plug-in para Decoração do Calendário"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Plug-in de Calendário"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Componente do KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Cliente do Alarme do KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Cliente do Servidor de Alarme do KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Componente do KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Organizador Pessoal"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Programa de Calendário e Agenda"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Cores"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Configuração de Cores do KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;cores;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Páginas personalizadas"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Configurar Páginas personalizadas"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer;configurar;configurações; campos personalizados;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Fontes"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Configuração de Fontes do KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fontes;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Livre/Ocupado"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Configuração Livre/Ocupado do KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;livreocupado;agendamento;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Automação de Grupo"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Configuração de Automação de Grupo do KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;grupo;automação;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Agendamento de Grupo"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Configuração de Agendamento de Grupo do KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;grupo;agendamento;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Pessoal"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Configuração Principal do KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;principal;pessoal;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Configuração dos Plug-ins do KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;plugin;módulo;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Data & Hora"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Configuração de Tempo do KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;tempo;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Visões"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Configuração de Visões do KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;visão;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Plugin-de Números e Datas para Calendários"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Para cada dia, esse plug-in mostra o número do dia no topo da visão de "
+"agenda. Por exemplo, 1º de fevereiro é o dia 32 do ano."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Plug-in do Microsoft Exchange 2000 para o KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Esse plug-in permite que o KOrganizer conecte-se à servidores groupware "
+"Microsoft Exchance 2000"
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Plug-in de Calendário Judaico"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+"Mostra todas as datas no KOrganizer também no sistema de calendário judaico"
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Estilo de Impressão de Diário"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Esse estilo lhe permite imprimir entradas de diário"
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Estilo de Impressão em Lista"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Este plug-in permite que você imprima eventos e pendências em forma de lista."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Estilo de impressão \"A Seguir\""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Este plug-in permite que você imprima uma lista de todos os eventos e "
+"pendências que estão por vir."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Estilo de Impressão de Calendário Anual"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Este plug-in permite imprimir um calendário anual."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Plug-in de Visualização de Projetos para o KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Este plug-in fornece uma visão de planejamento de projeto para o KOrganizer "
+"(como as visões de pendências ou de mês). Se você ativar este plugin, você "
+"pode mudar para a visão de projeto e ver a sua lista de pendências como num "
+"software de planejamento de projetos."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Plug-in de Visualização de Período de Tempo Para o KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Este plug-in fornece uma visão de período de tempo para o KOrganizer (como a "
+"visão de pendências e do mês). Se você ativar este plugin, você pode mudar "
+"para a visão de período de tempo e ver seus eventos como num diagrama de "
+"Gantt."
diff --git a/translations/desktop_files/korganizer-desktops/ro.po b/translations/desktop_files/korganizer-desktops/ro.po
new file mode 100644
index 00000000..86eadea2
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/ro.po
@@ -0,0 +1,328 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizator cu interfaţă DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Modul decorare calendar"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Modul calendar"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Componentă KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "Componentă KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Componentă KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Organizator personal"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Program de planificare şi calendar"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Culori"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Configurare culori KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;culori;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Fonturi"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Configurare fonturi KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fonturi;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+#, fuzzy
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Configurare fonturi KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+#, fuzzy
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;grup;planificare;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+#, fuzzy
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Configurare fonturi KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;grup;automatizare;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Planificare grup"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+#, fuzzy
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Configurare fonturi KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;grup;planificare;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+#, fuzzy
+msgid "Personal"
+msgstr "Organizator personal"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+#, fuzzy
+msgid "KOrganizer Main Configuration"
+msgstr "Configurare timp KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;principal;personal;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "Configurare timp KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+#, fuzzy
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;timp;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Timp şi dată"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Configurare timp KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;timp;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Vizualizări"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+#, fuzzy
+msgid "KOrganizer View Configuration"
+msgstr "Configurare timp KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;vizualizare;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+#, fuzzy
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Modul vizualizare proiect pentru KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "Modul calendar"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Modul vizualizare proiect pentru KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Modul vizualizare proiect pentru KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/ru.po b/translations/desktop_files/korganizer-desktops/ru.po
new file mode 100644
index 00000000..8c197514
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/ru.po
@@ -0,0 +1,325 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: 2024-04-12 16:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/korganizer-desktop-files/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Органайзер с интерфейсом DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Оформление календаря"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Модуль календаря"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Компонент органайзера"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Клиент напоминаний KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Клиент демона напоминаний KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Персональный органайзер"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Календарь и личное расписание"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Цвета"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Настройка цветов органайзера TDE"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;colors;органайзер;цвета;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Дополнительные поля"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Настройка пользовательских вкладок"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; configure; settings; custom fields; настройка; органайзер;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Шрифты"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Настройка шрифтов органайзера TDE"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fonts;органайзер;шрифты;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Занятое время"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Настройка свободного и занятого времени органайзера TDE"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;freebusy;scheduling;органайзер;занятое время;календарь;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Совместная работа"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Настройка совместной работы в органайзере TDE"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;group;automation;совместная работа;органайзер;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Календарь группы"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Настройка календаря группы органайзера TDE"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;group;scheduling;календарь группы;органайзер;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Общие"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Общие настройки органайзера TDE"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;main;personal;почта;персональные настройки;органайзер;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Модули"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Настройки модуля KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;plugin;module;органайзер;модуль;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Дата и время"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Настройка времени органайзера TDE"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;time;органайзер;время;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Вид"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Настройка видов органайзера TDE"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;view;органайзер;виды;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Даты календаря"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Этот модуль показывает номер дня в году для каждой даты. Например, для 1 "
+"февраля будет показан номер 32."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Доступ к Microsoft Exchange 2000"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Этот модуль позволяет пользователям органайзера работать с серверами "
+"совместной работы Microsoft Exchange 2000."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Еврейский календарь"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Показывать все даты по еврейскому календарю."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Журнал"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Этот модуль позволяет печатать журнал в виде дневника."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Список"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "Этот модуль позволяет печатать список событий и задач."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Даджест"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr "Этот модуль позволяет печатать список будущих событий и задач."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Календарь на год"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Этот модуль позволяет печатать календарь на год."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Просмотр проекта"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Этот модуль показывает проект для органайзера TDE. Если вы подключите этот "
+"модуль, вы можете посмотреть ваши задачи в виде проекта."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Диаграмма Ганта для KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Этот модуль показывает диаграмму Ганта для органайзера TDE. Если вы "
+"подключите этот модуль, вы можете посмотреть ваши события в виде диаграммы "
+"Ганта."
diff --git a/translations/desktop_files/korganizer-desktops/rw.po b/translations/desktop_files/korganizer-desktops/rw.po
new file mode 100644
index 00000000..bd84574b
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/rw.po
@@ -0,0 +1,314 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: rw\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr ""
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr ""
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr ""
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr ""
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr ""
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr ""
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Amabara"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Imyandikire"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Amacomeka"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr ""
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/se.po b/translations/desktop_files/korganizer-desktops/se.po
new file mode 100644
index 00000000..bf44dae3
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/se.po
@@ -0,0 +1,324 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Kaleandarčiŋaid lassemoduvla"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Kaleandarlassemoduvla"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer-oassi"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer-oassi"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer-oassi"
+
+#. GenericName
+#: korganizer.desktop:6
+#, fuzzy
+msgid "Personal Organizer"
+msgstr "Peršuvnnalaš"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kaleandar- ja plánenprográmma"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Ivnnit"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer, ivdneheivehusat"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Iežat siiddut"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Heivet iežat siidduid"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Fonttat"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer, fontaheivehusat"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+#, fuzzy
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer, fontaheivehusat"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Joavkoautomatiseren"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer, joavkoautomatiserema heivehusat"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+#, fuzzy
+msgid "korganizer;group;automation;"
+msgstr "KOrganizer, joavkoautomatiserema heivehusat"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Joavkoplánen"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer, joavkoplánema heivehusat"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+#, fuzzy
+msgid "korganizer;group;scheduling;"
+msgstr "KOrganizer, joavkoplánema heivehusat"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Peršuvnnalaš"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Korganizer, váldoheivehusat"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "Korganizer, váldoheivehusat"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Áigi ja beaivvit"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+#, fuzzy
+msgid "KOrganizer Time Configuration"
+msgstr "Korganizer, váldoheivehusat"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Čájeheamit"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+#, fuzzy
+msgid "KOrganizer View Configuration"
+msgstr "Korganizer, váldoheivehusat"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "Kaleandarlassemoduvla"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/sk.po b/translations/desktop_files/korganizer-desktops/sk.po
new file mode 100644
index 00000000..e733a2dd
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/sk.po
@@ -0,0 +1,327 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizér s DCOP rozhraním"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Modul pre skrášlenie kalendára"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Modul Calendar"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Part KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Klient pripomienok pre KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Klient KOrganizer pre démona pripomienok"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Part KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Osobný plánovač"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalendár a plánovací program"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Farby"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Nastavenie farieb pre KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;farby;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Vlastné stránky"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Nastavenie vlastných stránok"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Písma"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Nastavenie písiem pre KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;písma;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Voľný čas"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Nastavenie voľného času pre KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;voľný čas;plánovanie;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Skupinová automatizácia"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Nastavenie skupinovej automatizácie pre KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;skupina;automatizácia;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Skupinové plánovanie"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Nastavenie skupinového plánovania pre KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;skupina;plánovanie;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Osobné"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Hlavné nastavenie KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;hlavné;osobné;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Moduly"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Nastavenie modulu KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+#, fuzzy
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;čas;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Dátum a čas"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Nastavenie času pre KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;čas;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Pohľady"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Nastavenie pohľadov pre KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;pohľad;zobrazenie;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Modul dátumov pre kalendáre"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Tento modul pre každý deň zobrazí jeho číslo dňa v roku navrchu pohľadu "
+"agendy. Napríklad 1. február je deň číslo 32 v roku."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "KOrganizer modul pre Microsoft Exchange 2000"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Tento modul umožní, aby korganizer užívatelia pracovali s Microsoft Exchange "
+"2000 groupware servermi."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Modul Židovského kalendára"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Zobrazí všetky dátumy v korganizer tiež aj židovskom kalendári."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Štýl tlače žurnálu"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Tento modul umožní vytlačiť položky žurnálu (denníkové položky)."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Štýl tlače zoznamu"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "Tento modul umožní vytlačiť udalosti a úlohy vo forme zoznamu."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Štýl tlače Čo nasleduje"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Tento modul umožní vytlačiť zoznam všetkých nadchádzajúcich udalostí a úloh."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Štýl tlače pre rok"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Tento modul vám umožní vytlačiť kalendár na rok."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "KOrganizer modul pre projektový pohľad"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Tento modul poskytuje pohľad na plánovanie projektu pre KOrganizer (ako sú "
+"úlohy alebo mesačné pohľady). Ak povolíte tento modul, môžete prepínať "
+"projektový pohľad a pohľad na zoznam úloh ako plánovač projektu."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "KOrganizer modul pre projektový pohľad"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Tento modul poskytuje projektový pohľad pre korganizer (ako sú úlohy alebo "
+"mesačné pohľady). Ak povolíte tento modul, môžete prepínať projektový pohľad "
+"a pohľad na udalosti ako je Gantt diagram."
diff --git a/translations/desktop_files/korganizer-desktops/sl.po b/translations/desktop_files/korganizer-desktops/sl.po
new file mode 100644
index 00000000..bd897be6
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/sl.po
@@ -0,0 +1,329 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Oragnizator z vmesnikom DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Vstavek besedilnega okrasa za Koledar"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Vstavek za Koledar"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Del KOrganizerja"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Odjemalec za opomnik KOrganizerja"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Pritajeni odjemalec za opomnik KOrganizerja"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Del KOrganizerja"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Osebni organizator"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Program za koledar in razporejanje"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Barve"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Nastavitve barv v KOrganizerju"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;barve;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Prilagojene strani"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Nastavi prilagojene strani"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; nastavi; nastavitve; prilagojena polja;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Pisave"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Nastavitev pisav v KOrganizerju"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;pisave;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Prost/zaseden"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Nastavitev prost/zaseden za KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;freebusy;razporejanje;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Avtomatizacija skupin"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Nastavitev avtomatizacije v KOrganizerju"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;skupina;samodejnost;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Razporejanje skupin"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Nastavitev razporejanja skupin v KOrganizerju"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;skupina;razporejanje;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Osebno"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Glavne nastavitve KOrganizerja"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;glavne;osebne;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Vstavki"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Nastavitve vstavka KOrganizerja"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;vstavek;modul;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Čas in datum"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Nastavitev časa v KOrganizerju"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;čas;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Prikazi"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Nastavitev prikaza KOrganizerja"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;prikaz;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Datumski vstavek za koledarje"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Za vsak dan ta vstavek prikazuje številko dneva v letu na vrhu praikaza "
+"agende. Npr., 1. februar je 32. dan v letu."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Vstavek za Microsoft Exchange 2000 za KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Ta vstavke omogoča uporabnikom KOrganizerja delo s strežniki Microsoft "
+"Exchange 2000."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Vstavek za židovski koledar"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+"Prikaže vse datume v KOrganizerju; tudi v židovskem koledarskem sistemu."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Dnevniški slog tiskanja"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Ta vstavek vam omogoča natis vnosov v dnevnik."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Slog tiskanja v obliki list"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Ta vstavek vam omogoča natis dogodkov in čakajočih opravil v obliki seznama."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Slog tiskanja v obliki »Kaj je naslednje«"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Ta vstavek vam omogoča natis seznama vseh prihahajočih dogodkov in čakajočih "
+"opravil."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Letni slog tiskanja"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Ta vstavek vam omogoča natis letnega koledarja."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Vstavek za projektni prikaz za KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Ta vstavek prikazuje projektno načrtovanje za KOrganizer (kot prikaz opravil "
+"ali mesečni prikaz). Če omogočite ta vstavek, lahko preklopite na projektni "
+"prikaz in si ogledate seznam opravil kot v projektnem prikazu."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Vstavek za časovni prikaz za KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Ta vstavek ponuja časovni prikaz za KOrganizer (kot prikaz opravil ali "
+"mesečni prikaz). Če omogočite ta vstavek, lahko preklopite na časovni prikaz "
+"in si ogledate dogodke kot v Ganttovem diagramu."
diff --git a/translations/desktop_files/korganizer-desktops/sr.po b/translations/desktop_files/korganizer-desktops/sr.po
new file mode 100644
index 00000000..9776115c
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/sr.po
@@ -0,0 +1,331 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Организатор са DCOP интерфејсом"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Прикључак за декорацију календара"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Прикључак за календар"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Део KOrganizer-а"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Клијент подсетника KOrganizer-а"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Клијент демона подсетника KOrganizer-а"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Део KOrganizer-а"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Лични планер"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Календарски и планерски програм"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Боје"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Подешавање боја у KOrganizer-у"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;colors;планер;боје;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Посебне странице"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Подешавање посебних страница"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+"korganizer; configure; settings; custom fields; подешавање; посебна поља;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Фонтови"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Подешавање фонтова у KOrganizer-у"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fonts;планер;фонтови;фонт;текст;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Слободан/заузет"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Подешавање слободног/заузетог у KOrganizer-у"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;freebusy;scheduling;слободан;заузет;планирање;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Аутоматизација група"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Подешавање аутоматизације група у KOrganizer-у"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;group;automation;група;аутоматизација;планер;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Распоређивање група"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Подешавање распоређивања група у KOrganizer-у"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;group;scheduling;планер;група;распоред;распоређивање;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Лично"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Главна подешавања у KOrganizer-у"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;main;personal;планер;главни;лични;лично;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Прикључци"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Подешавање прикључака KOrganizer-а"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;plugin;module;прикључак;модул;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Време и датум"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Подешавање времена у KOrganizer-у"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;time;време;планер;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Прикази"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Подешавање приказа у KOrganizer-у"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;view;планер;приказ;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Прикључак календара за бројеве датума"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"За сваки датум овај прикључак приказује његов број дана у години на врху "
+"приказа распореда. На пример, 1. фебруар је 32. дан у години."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Прикључак KOrganizer-а за Microsoft Exchange 2000"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Овај прикључак омогућава корисницима KOrganizer-а да раде са Microsoft-овим "
+"Exchange 2000 groupware серверима."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Прикључак календара за јеврејски календар"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+"Приказује све датуме у KOrganizer-у и по јеврејском календарском систему."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Дневнички стил штампе"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Овај прикључак вам омогућава да одштампате уносе из дневника."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Листајући стил штампе"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Овај прикључак вам омогућава да одштампате догађаје и обавезе у облику листе."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Стил штампе „Шта је следеће“"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Овај прикључак вам омогућава да одштампате листу свих наступајућих догађаја "
+"и обавеза."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Годишњи стил штампе"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Овај прикључак вам омогућава да одштампате годишњи календар."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Прикључак KOrganizer-а за приказ пројекта"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Овај прикључак пружа приказ планирања пројекта за KOrganizer (као месечни "
+"или прикази обавеза). Ако укључите овај прикључак, можете се пребацити на "
+"приказ пројекта и разгледати своју листу послова у планеру пројекта."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Прикључак KOrganizer-а за приказ временског распона"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Овај прикључак пружа приказ временског распона за KOrganizer (као месечни "
+"или прикази обавеза). Ако укључите овај прикључак, можете се пребацити на "
+"приказ временског распона и разгледати своје догађаје као у Гантовом "
+"дијаграму."
diff --git a/translations/desktop_files/korganizer-desktops/sr@Latn.po b/translations/desktop_files/korganizer-desktops/sr@Latn.po
new file mode 100644
index 00000000..2cee1c9e
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/sr@Latn.po
@@ -0,0 +1,332 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Organizator sa DCOP interfejsom"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Priključak za dekoraciju kalendara"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Priključak za kalendar"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Deo KOrganizer-a"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Klijent podsetnika KOrganizer-a"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Klijent demona podsetnika KOrganizer-a"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Deo KOrganizer-a"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Lični planer"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalendarski i planerski program"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Boje"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Podešavanje boja u KOrganizer-u"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;colors;planer;boje;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Posebne stranice"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Podešavanje posebnih stranica"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+"korganizer; configure; settings; custom fields; podešavanje; posebna polja;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Fontovi"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Podešavanje fontova u KOrganizer-u"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fonts;planer;fontovi;font;tekst;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Slobodan/zauzet"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Podešavanje slobodnog/zauzetog u KOrganizer-u"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;freebusy;scheduling;slobodan;zauzet;planiranje;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Automatizacija grupa"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Podešavanje automatizacije grupa u KOrganizer-u"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;group;automation;grupa;automatizacija;planer;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Raspoređivanje grupa"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Podešavanje raspoređivanja grupa u KOrganizer-u"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;group;scheduling;planer;grupa;raspored;raspoređivanje;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Lično"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Glavna podešavanja u KOrganizer-u"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;main;personal;planer;glavni;lični;lično;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Priključci"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Podešavanje priključaka KOrganizer-a"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;plugin;module;priključak;modul;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Vreme i datum"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Podešavanje vremena u KOrganizer-u"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;time;vreme;planer;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Prikazi"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Podešavanje prikaza u KOrganizer-u"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;view;planer;prikaz;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Priključak kalendara za brojeve datuma"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Za svaki datum ovaj priključak prikazuje njegov broj dana u godini na vrhu "
+"prikaza rasporeda. Na primer, 1. februar je 32. dan u godini."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Priključak KOrganizer-a za Microsoft Exchange 2000"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Ovaj priključak omogućava korisnicima KOrganizer-a da rade sa Microsoft-ovim "
+"Exchange 2000 groupware serverima."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Priključak kalendara za jevrejski kalendar"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+"Prikazuje sve datume u KOrganizer-u i po jevrejskom kalendarskom sistemu."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Dnevnički stil štampe"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Ovaj priključak vam omogućava da odštampate unose iz dnevnika."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Listajući stil štampe"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Ovaj priključak vam omogućava da odštampate događaje i obaveze u obliku "
+"liste."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Stil štampe „Šta je sledeće“"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Ovaj priključak vam omogućava da odštampate listu svih nastupajućih događaja "
+"i obaveza."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Godišnji stil štampe"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Ovaj priključak vam omogućava da odštampate godišnji kalendar."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Priključak KOrganizer-a za prikaz projekta"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Ovaj priključak pruža prikaz planiranja projekta za KOrganizer (kao mesečni "
+"ili prikazi obaveza). Ako uključite ovaj priključak, možete se prebaciti na "
+"prikaz projekta i razgledati svoju listu poslova u planeru projekta."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Priključak KOrganizer-a za prikaz vremenskog raspona"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Ovaj priključak pruža prikaz vremenskog raspona za KOrganizer (kao mesečni "
+"ili prikazi obaveza). Ako uključite ovaj priključak, možete se prebaciti na "
+"prikaz vremenskog raspona i razgledati svoje događaje kao u Gantovom "
+"dijagramu."
diff --git a/translations/desktop_files/korganizer-desktops/sv.po b/translations/desktop_files/korganizer-desktops/sv.po
new file mode 100644
index 00000000..48fbbb45
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/sv.po
@@ -0,0 +1,331 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Filofax med DCOP-gränssnitt"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Insticksprogram för kalenderdekoration"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Insticksprogram för kalender"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Korganizer-del"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Korganizer-påminnelseklient"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Korganizer-alarmdemonklient"
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "Korganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Filofax"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Kalender- och schemaläggningsprogram"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Färger"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Inställning av Korganizers färger"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;färger;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Egna sidor"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Anpassa egna sidor"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer;anpassa;inställningar;egna fält;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Teckensnitt"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Inställning av Korganizers teckensnitt"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;teckensnitt;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Ledig/upptagen"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Inställning av ledig/upptagen i Korganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;ledig/upptagen;schemaläggning;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Gruppautomation"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Inställning av Korganizers gruppautomation"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;grupp;automation;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Gruppschemaläggning"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Inställning av Korganizers gruppschemaläggning"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;grupp;schemaläggning;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Personlig inställning"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Korganizers huvudinställning"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;huvudinställning;personlig inställning;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Insticksprogram"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Korganizers inställning av insticksprogram"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;insticksprogram;modul;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Tid och datum"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Inställning av Korganizers tid"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;tid;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Vyer"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Inställning av Korganizers vyer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;vy;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Datuminsticksprogram för kalendrar"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Insticksprogrammet visar dagens nummer under året för varje dag längst upp i "
+"agendavyn. Till exempel är 1:a februari den 32:e dagen under året."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Microsoft Exchange 2000-insticksprogram för Korganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Insticksprogrammet gör det möjligt för användare av Korganizer att arbeta "
+"med Microsoft Exchange 2000 grupprogramservrar."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Insticksprogram för judisk kalender"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Visar också alla datum i Korganizer enligt den judiska kalendern."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Journal-utskriftsstil"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+"Det här insticksprogrammet gör att du kan skriva ut journalanteckningar "
+"(dagboksanteckningar)."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "List-utskriftsstil"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Det här insticksprogrammet gör att du kan skriva ut händelser och uppgifter "
+"i en lista."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Vad står på tur-utskriftsstil"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Det här insticksprogrammet gör att du kan skriva ut en lista med alla "
+"kommande händelser och uppgifter."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Årlig utskriftsstil"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Det här insticksprogrammet gör att du kan skriva ut en årlig kalender."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Projektvyinsticksprogram för Korganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Insticksprogrammet tillhandahåller en projektplaneringsvy i Korganizer (som "
+"liknar uppgifts- eller månadsvyn). Om du aktiverar insticksprogrammet kan du "
+"byta till projektvyn och visa din uppgiftslista som i ett "
+"projektplaneringsverktyg."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Tidsintervallvyinsticksprogram för Korganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Insticksprogrammet tillhandahåller en tidsintervallvy i Korganizer (som "
+"liknar uppgifts- eller månadsvyn). Om du aktiverar insticksprogrammet kan du "
+"byta till idsintervallvyn och visa dina händelser som i ett Gantt-diagram."
diff --git a/translations/desktop_files/korganizer-desktops/ta.po b/translations/desktop_files/korganizer-desktops/ta.po
new file mode 100644
index 00000000..e8825b32
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/ta.po
@@ -0,0 +1,336 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "DCOP முகப்பு அமைப்பாளர்"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "நாள்காட்டி அலங்கார சொருகுப்பொருள்"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "நாள்காட்டி சொருகுப்பொருள்"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "கேஅமைப்பாளர் பகுதி"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "கேஅமைப்பாளர் பகுதி"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "கேஅமைப்பாளர்"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "தனிப்பயன் அமைப்பாளர்"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "நாள்காட்டி மற்றும் திட்ட நிரல்"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "வண்ணங்கள்"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "கேஅமைப்பவர் வண்ணங்களின் கட்டமைப்பு"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "கேஅமைப்பாளர்; வண்ணங்கள்;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "தனிபயன் பக்கங்கள்"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "தனிபயன் பக்கங்களை கட்டமை"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "கேஅமைப்பாளர்; வடிவமைப்பு; அமைப்புகள்; தனிபயன் புலங்கள்;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "எழுத்துருக்கள்"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "கேஅமைப்பாளர் எழுத்துருக்கள் கட்டமைப்பு"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "கேஅமைப்பாளர்;எழுத்துரு;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "சுதந்திரமான/வேலையில் இருக்கும்"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "கேஅமைப்பாளர்,சுதந்திரமான/செயலிலுள்ள கட்டமைப்பு"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "கேஅமைப்பாளர்;சுதந்திரமான/திட்டம் அமைத்தல்;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "குழு தானியங்கி"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "கேஅமைப்பாளர் குழு தானியங்கி கட்டமைப்பு"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "கேஅமைப்பாளர்; குழு; தானியக்கம்;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "குழு திட்ட வரையறை"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "கேஅமைப்பாளர் குழு நேர அமைப்புக்கான கட்டமைப்பு"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "கேஅமைப்பாளர்;குழு; திட்டம் அமைத்தல்;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "அந்தரங்கமான"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "கேஅமைப்பாளர் முக்கிய கட்டமைப்பு"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "கேஅமைப்பாளர்;முக்கிய; தனிப்பட்ட;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "சொருகுப்பொருள்கள்"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "கேஅமைப்பாளர் சொருகுப்பொருள் வடிவமைப்பு"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "கேஅமைப்பாளர்;சொருகுப்பொருள்;பகுதி;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "நேரம் & தேதி"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "கேஅமைப்பாளர் நேர கட்டமைப்பு"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "கேஅமைப்பாளர்;நேரம்;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "காட்சிகள்"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "கேஅமைப்பாளர் காட்சி கட்டமைப்பு"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "கேஅமைப்பாளர்;காட்சி;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "நாள்காட்டிகளுக்கான தேதி எண்களின் சொருகுப்பொருள்"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"ஒவ்வோரு நாளும் நிகழ்ச்சி நிரல் காட்சியின் மேற்புறத்தில் வருடத்தின் நாளின் எண்ணை இந்த "
+"சொருகுப்பொருள் காட்டுகிறது. உதாரணமாக, பிப்ரவரி 1 வருடத்தின் 32வது நாள்"
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "கேஅமைப்பாளருக்கான மைக்ரோசாஃப்ட் எக்ஸ்சேன்ஜ் 2000 சொருகுப்பொருள்"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"இந்த சொருகுப்பொருள் korganizer பயனர்களை மைக்ரோசாப்ட் எக்ஸ்சேஞ்ச் 2000 குழுவாரி "
+"சேவகன்களில் பணி செய்ய அனுமதிக்கிறது."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "ஜூவிஷ் நாள்காட்டி சொருகுப்பொருள்"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+"korganizer மற்றும் ஜேவிஷ் நாட்காட்டி அமைப்பில் ல் உள்ள எல்லா தேதிகளையும் காட்டுகிறது."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "செய்தி அச்சுப்பாணி"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+"இந்த சொருகுப்பொருள் இதழ் உள்ளீடுகளை அச்சிட உங்களை அனுமதிக்கிறது (நாள் குறிப்பேடு "
+"உள்ளீடுகள்)."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "அச்சு பாணியை பட்டியலிடு"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"இந்த சொருகுப்பொருள் பட்டியல் படிவத்தில் உள்ள செய்திகள் மற்றும் செய்யவேண்டியவைகளை அச்சிட "
+"உங்களை அனுமதிக்கிறது."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "அடுத்டு என்ன அச்சுப் பாணி"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"இந்த சொருகுப்பொருள் ஒரு வரப்போகும் நிகழ்வுகளின் பட்டியல் மற்றும் செய்யவேண்டியவைகளை அச்சிட "
+"உங்களை அனுமதிக்கிறது."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+#, fuzzy
+msgid "Yearly Print Style"
+msgstr "செய்தி அச்சுப்பாணி"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+#, fuzzy
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+"இந்த சொருகுப்பொருள் இதழ் உள்ளீடுகளை அச்சிட உங்களை அனுமதிக்கிறது (நாள் குறிப்பேடு "
+"உள்ளீடுகள்)."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "கேஅமைப்பாளருக்கான திட்டக் காட்சி சொருகுப்பொருள்"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"இந்த சொருகுப்பொருள் KOrganizer-க்கான ஒரு திட்டப்பணி செய்யும் காட்சியை வழங்குகிறது. "
+"(செய்யவேண்டியது அல்லது மாத காட்சிகள் போன்ற). இது செயலில் இருந்தால், நீங்கள் "
+"திட்டக்காட்சிக்கு செல்லலாம் திட்ட அமைப்பான் போன்ற திட்டக் காட்சிக்கும் செல்லலாம்."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "கேஅமைப்பாளருக்கான திட்டக் காட்சி சொருகுப்பொருள்"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"இந்த சொருகுப்பொருள் korganizerக்கான ஒரு குறுகிய நேரத்தை வழங்குகிறது. lசெய்யவேண்டியவை "
+"அல்ல்து மாதக் காட்சிகள் போன்ற). இந்த சொருகுப்பொருள் செயலில் இருந்தால், நீங்கள் குறுகிய நேரக் "
+"காட்சி மற்ரும் Gantt விளக்க வரைபடத்தில் உள்ளது போன்ற நிகழ்வுகளை பார்க்கலாம்."
diff --git a/translations/desktop_files/korganizer-desktops/tg.po b/translations/desktop_files/korganizer-desktops/tg.po
new file mode 100644
index 00000000..8e2967d0
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/tg.po
@@ -0,0 +1,319 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Органайзер бо интерфейси DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Модул барои ороиш додани тақвимот"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Модул барои тақвимот"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Қисмати органайзер"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "Қисмати органайзер"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Қисмати органайзер"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Органайзери инфиродӣ"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Тақвимот ва ҷадвали шахсӣ"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Рангҳо"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Танзимотҳои ранги органайзери TDE"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;colors;органайзер;рангҳо;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Варақаҳои замимавии истифодашаванда"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Танзимоти варақаҳои замимавии истифодашаванда"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Ҳарфҳо"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Танзимотҳои ҳуруфҳои органайзери TDE"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fonts;органайзер;ҳуруфҳо;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Озод/машғул аст"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Танзимоти вақти озоди органайзери TDE"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;freebusy;scheduling;органайзер; вақти холӣ;ҷадвал;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Кори гурӯҳӣ"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Танзимоти кори гурӯҳӣ дар органайзер-TDE"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;group;automation;кори гурӯҳӣ; органайзер;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Ҷадвали гурӯҳҳо"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Танзимоти ҷадвали гурӯҳҳои органайзер-TDE"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;group;scheduling;ҷадвалигурӯҳҳо;органайзер;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Танзимотҳои шахсӣ"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Танзимотҳои умумии органайзер-TDE"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;main;personal;почта;танзимотҳои шахсӣ;органайзер;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "Танзимотҳои умумии органайзер-TDE"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+#, fuzzy
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;time;органайзер;вақт;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Сана ва вақт"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Танзимоти вақти органайзери TDE"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;time;органайзер;вақт;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Намудҳо"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Танзимоти намудҳои органайзери TDE"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;view;органайзер;намудҳо;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Санаҳои тақвим"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Дастрасӣ ба Microsoft Exchange 2000"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Тақвимоти яҳудӣ"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Намоиши нақшот"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Намоиши нақшот"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/th.po b/translations/desktop_files/korganizer-desktops/th.po
new file mode 100644
index 00000000..2ccfc5cd
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/th.po
@@ -0,0 +1,315 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: th\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "โปรแกรมเสริมตกแต่งบันทึกประจำวัน"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "โปรแกรมเสริมบันทึกประจำวัน"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr ""
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr ""
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr ""
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr ""
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "โปรแกรมจัดการบันทึกประจำวันและตารางการนัดหมาย"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "สี"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "รูปแบบตัวอักษร"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "โปรแกรมเสริมบันทึกประจำวัน"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/tr.po b/translations/desktop_files/korganizer-desktops/tr.po
new file mode 100644
index 00000000..d4f0a0cc
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/tr.po
@@ -0,0 +1,331 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "DCOP arayüzü ile Organizer"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Takvim Dekorasyon Eklentisi"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Takvim Eklentisi"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer Parçası"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer Hatırlatma İstemcisi"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "KOrganizer Hatırlatma Servisi İstemcisi"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer Parçası"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Kişisel Bilgi Yöneticisi"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Takvim ve Zamanlama Programı"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Renkler"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer Renk Yapılandırması"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;renkler;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Özel Sayfa"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Özel Sayfaları Yapılandır"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; yapılandır; yapılandırma; özel alanlar;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Yazı tipleri"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer Yazıtipi Yapılandırması"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;yazıtipleri;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Boş/Meşgul"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer Boş/Meşgul Yapılandırması"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;boş/meşgul;zamanlama;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Grup Otomasyonu"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer Grup Otomasyon Yapılandırması"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;grup;otomasyon;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Group Zamanlama"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer Grup Zamanlama Yapılandırması"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;grup;zamanlama;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Kişisel"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer Temel Yapılandırması"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;temel;kişisel;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Eklentiler"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer Eklenti Yapılandırması"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;eklenti;modül;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Saat & Tarih"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer Zaman Yapılandırması"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;zaman;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Görünümler"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer Görünüm Yapılandırması"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;görünüm;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Takvimler için Tarih Rakamları Eklentisi"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Bu eklenti, her gün için tarih bilgisini gün sayısı olarak ajanda "
+"görünümünün yukarısında gösterir. Örneğin, 1 Şubat yılın 32. günüdür."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "KOrganizer için Microsoft Exchange 2000 Eklentisi"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Bu eklenti KOrganizer kullanıcılarının Microsoft Exchange 2000 sunucuları "
+"ile çalışabilmelerini sağlar."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "İbrani Takvimi Eklentisi"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "KOrganizer'da tüm tarihleri İbrani takvimine göre gösterir."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Günlük Yazdırma Tarzı"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "Bu eklenti, günlük girişlerinizi yazıcıdan çıkartmanızı sağlar."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Liste Yazdırma Tarzı"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+"Bu eklenti, olayları ve yapılacaklar listesini bir liste biçiminde "
+"yazdırmanızı sağlar."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Sıradaki Nedir Yazdırma Tarzı"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+"Bu eklenti, sıradaki olayları ve yapılacaklar listesini bir liste biçiminde "
+"yazdırmanızı sağlar."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Yıllık Yazdırma Stili"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Bu eklenti, yıllık takvimi yazıcıdan çıkartmanızı sağlar."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "KOrganizer için Proje Görüntüleme eklentisi"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Bu eklenti, KOrganizer için bir proje planı görünümü sağlar (yapılacaklar ve "
+"aylık görünüm gibi). Eğer bu eklentiyi aktif hale getirirseniz, proje "
+"görünümüne geçebilir ve yapılacaklar listenizi proje planlayıcısı şeklinde "
+"görüntüleyebilirsiniz."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "KOrganizer için Zaman Dilimi Görünümü Eklentisi"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Bu eklenti, KOrganizer için zaman dilimi görünümü sağlar (yapılacaklar "
+"listesi ya da aylık görünüm gibi). Eğer bu eklentiyi aktif hale "
+"getirirseniz, zaman dilimi görünümüne geçebilir ve olayları Gantt diyagramı "
+"şeklinde görüntüleyebilirsiniz."
diff --git a/translations/desktop_files/korganizer-desktops/uk.po b/translations/desktop_files/korganizer-desktops/uk.po
new file mode 100644
index 00000000..ffda12b5
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/uk.po
@@ -0,0 +1,329 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: 2020-08-22 07:31+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/korganizer-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "Тижневик з інтерфейсом DCOP"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Втулок прикрас календаря"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Втулок календаря"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Складова KOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "Клієнт нагадувань KOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "Демон клієнта нагадування для KOrganizer"
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "KOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Персональний тижневик"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Програма календаря та розкладу"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Кольори"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "Налаштування кольорів у KOrganizer"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;кольори;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "Нетипові сторінки"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "Налаштування нетипових сторінок"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+"korganizer; configure; settings; custom fields; налаштування; параметри; "
+"нетипові поля;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Шрифти"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "Налаштування шрифтів у KOrganizer"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;шрифти;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Вільний/зайнятий час"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "Налаштування вільного/зайнятого часу в KOrganizer"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;вільно;зайнято;час;розклад;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "Автоматизація груп"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "Налаштування автоматизації груп у KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;група;автоматизація;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "Розклад груп"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Налаштування групового розкладу в KOrganizer"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;груп;розклад;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Особисті"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "Налаштування особистих даних у KOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;особистий;Персональний;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Втулки"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "Втулок налаштування KOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;plugin;module;втулок;модуль;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Час та дата"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "Налаштування часу та дати в KOrganizer"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;час;дата;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Перегляди"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "Налаштування переглядів у KOrganizer"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;перегляд;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "Втулок дат для календарів"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"Цей втулок показує зверху перегляду щоденника номер для кожного дня року. "
+"Наприклад, 1-го лютого - це 32 день року."
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Втулок Microsoft Exchange 2000 для KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"Цей втулок дозволяє користувачам korganizer працювати з серверами "
+"групової роботи Microsoft Exchange 2000."
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "Втулок єврейського календаря"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "Показує всі дати в korganizer також і в системі єврейського календаря."
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "Стиль друку журналом"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+"Цей журнал надає можливість друкувати записи журналу (записи щоденника)."
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "Стиль друку списком"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "Цей втулок дозволяє друкувати події і завдання у вигляді списку."
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "Стиль друку \"Що далі?\""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr "Цей втулок дозволяє друкувати список всіх майбутніх подій та завдань."
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "Стиль друку щорічником"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "Цей журнал надає можливість друкувати щорічний календар."
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Втулок перегляду проектів для KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"Цей втулок показує вигляд планування проектів у KOrganizer (подібно до "
+"виглядів завдань або місячного). Якщо увімкнути цей втулок, то можна "
+"переглядати ваш список завдань у вигляді плановика проектів."
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Втулок перегляду періоду часу для KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"Цей втулок показує вигляд діаграми Ганта для korganizer (подібно до вигляду "
+"завдань та місячного). Якщо увімкнути цей втулок, то можна переглядати ваші "
+"події у вигляді діаграми Ганта."
diff --git a/translations/desktop_files/korganizer-desktops/uz.po b/translations/desktop_files/korganizer-desktops/uz.po
new file mode 100644
index 00000000..cb62592b
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/uz.po
@@ -0,0 +1,320 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+#, fuzzy
+msgid "Calendar Decoration Plugin"
+msgstr "Календар плагини"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Календар плагини"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr ""
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr ""
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Шахсий органайзер"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "Шахсий органайзер"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Календар ва режалаштириш дастури"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Ранглар"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;органайзер;ранглар;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Шрифтлар"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;органайзер;шрифтлар;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "Бўш/Банд"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+#, fuzzy
+msgid "korganizer;group;automation;"
+msgstr "korganizer;органайзер;асосий;шахсий;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+#, fuzzy
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;органайзер;шрифтлар;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "Шахсий"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;органайзер;асосий;шахсий;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "Плагинлар"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+#, fuzzy
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;органайзер;сана;вақт;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "Сана ва вақт"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;органайзер;сана;вақт;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "Кўринишлар"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;органайзер;кўриниш;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "Календар плагини"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr ""
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/ven.po b/translations/desktop_files/korganizer-desktops/ven.po
new file mode 100644
index 00000000..b56bd876
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/ven.po
@@ -0,0 +1,323 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ven\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Pulagini yo khavhisiwaho ya khalenda"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "U pulaga ha khalenda"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Tshipida tsha mudzudzanyi wa K"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "Tshipida tsha mudzudzanyi wa K"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "Mulugisi wa K"
+
+#. GenericName
+#: korganizer.desktop:6
+#, fuzzy
+msgid "Personal Organizer"
+msgstr "Mulugisi wa K"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Khalenda na mbekanyamushumo ya u shedula"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Mivhala"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Fontu"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+#, fuzzy
+msgid "KOrganizer Main Configuration"
+msgstr "Tshipida tsha mudzudzanyi wa K"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "Tshipida tsha mudzudzanyi wa K"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+#, fuzzy
+msgid "korganizer;time;"
+msgstr "Mulugisi wa K"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+#, fuzzy
+msgid "korganizer;view;"
+msgstr "Mulugisi wa K"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+#, fuzzy
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Plugin ya mbonalelo ya phurodzhekiti ya mudzudzanyi wa K"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "U pulaga ha khalenda"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Plugin ya mbonalelo ya phurodzhekiti ya mudzudzanyi wa K"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Plugin ya mbonalelo ya phurodzhekiti ya mudzudzanyi wa K"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/vi.po b/translations/desktop_files/korganizer-desktops/vi.po
new file mode 100644
index 00000000..2c6b7329
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/vi.po
@@ -0,0 +1,317 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: vi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Plugin phối trí lịch "
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Plugin lịch"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr ""
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr ""
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr ""
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr ""
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Chương trình lịch và kế hoạch"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Màu"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Phông"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+#, fuzzy
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Plugin xem dự án cho KOrganizer"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "Plugin lịch"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Plugin xem dự án cho KOrganizer"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Plugin xem dự án cho KOrganizer"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/xh.po b/translations/desktop_files/korganizer-desktops/xh.po
new file mode 100644
index 00000000..0ef38d7a
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/xh.po
@@ -0,0 +1,321 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: xh\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Ikhalenda Yohombiso lwe Plugin"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Ikhalenda ye Plugin"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "Indawana yeKOrganizer"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "Indawana yeKOrganizer"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "Indawana yeKOrganizer"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr ""
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Ikhalenda no Dweliso lwenkqubo Yokucwangcisa"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Imibala"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "Ubungakanani bamagama"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+#, fuzzy
+msgid "KOrganizer Main Configuration"
+msgstr "Indawana yeKOrganizer"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "Indawana yeKOrganizer"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+#, fuzzy
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Iprojekthi Ijongela KOrganize i Plugin"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "Ikhalenda ye Plugin"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Iprojekthi Ijongela KOrganize i Plugin"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Iprojekthi Ijongela KOrganize i Plugin"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/korganizer-desktops/zh_CN.po b/translations/desktop_files/korganizer-desktops/zh_CN.po
new file mode 100644
index 00000000..8b2d86ba
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/zh_CN.po
@@ -0,0 +1,322 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "具有 DCOP 接口的 PDA"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "日历装饰插件"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "日历插件"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer 部件"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer 定时器客户端程序"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "KOrganizer 定时守护进程的客户端程序"
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KOrganizer 部件"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "个人日程安排"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "日历和日程安排程序"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "颜色"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer 颜色配置"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr "korganizer;colors;颜色;"
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr "定制页"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "配置定制页"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr "korganizer; configure; settings; custom fields; 配置; 设置; 定制项;"
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "字体"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer 字体配置"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr "korganizer;fonts;字体;"
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "忙/闲"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer 空闲/忙碌配置"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr "korganizer;freebusy;scheduling;空闲;忙碌;日程安排;"
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "组自动化"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer 组自动化配置"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr "korganizer;group;automation;组;自动化;"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "组日程安排"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "Korganizer 组日程安排配置"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr "korganizer;group;scheduling;组;日程安排;"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "个人"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer 主要配置"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr "korganizer;main;personal;主要;个人;"
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "插件"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer 插件配置"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr "korganizer;plugin;module;插件;模块;"
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "时间和日期"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer 时间配置"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr "korganizer;time;时间;"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "视图"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer 视图配置"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr "korganizer;view;视图;"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "日历的日期数字插件"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+"此插件可对每天在议事日程视图中上方显示该日在一年中的序号。例如,2月1日是一年"
+"的第32天。"
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "KOrganizer 的 Microsoft Exchange 2000 插件"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"此插件允许 KOrganizer 用户与 Microsoft Exchange 2000 群件服务器协同工作。"
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "犹太教日历插件"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "在 KOrganizer 中显示犹太教日历系统的全部日期。"
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "日记打印样式"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "此插件允许您打印日记项目。"
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "列表打印样式"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "此插件允许您以列表格式打印事件和待办事宜。"
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "下步安排打印样式"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr "此插件允许您打印所有即将到达的事件和代办事宜。"
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "按年打印样式"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "此插件允许您打印年历。"
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "KOrganizer 的项目查看插件"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"此插件为 KOrganizer 提供了项目规划视图(类似于待办或月视图)。如果您启用了此插"
+"件,您可以像项目规划程序那样切换到项目视图并查看您的待办清单。"
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "KOrganizer 的时间跨度查看插件"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"此插件为 KOrganizer 提供了时间跨度视图(类似于待办或月视图)。如果您启用了此插"
+"件,您可以像甘特图程序那样切换到时间跨度视图并查看您的事件。"
diff --git a/translations/desktop_files/korganizer-desktops/zh_TW.po b/translations/desktop_files/korganizer-desktops/zh_TW.po
new file mode 100644
index 00000000..d3f01db8
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/zh_TW.po
@@ -0,0 +1,325 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr "有 DCOP 介面的 Organizer"
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "行事曆文字裝飾外掛程式"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "行事曆外掛程式"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KOrganizer 組件"
+
+#. Name
+#: korgac/korgac.desktop:2
+msgid "KOrganizer Reminder Client"
+msgstr "KOrganizer 提醒客戶端程式"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr "KOrganizr 提醒守護程式客戶端"
+
+#. Name
+#: korganizer.desktop:4
+msgid "KOrganizer"
+msgstr "KOrganizer 行事曆"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr "個人行程組織軟體"
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "行事曆與排程軟體"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "顏色"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr "KOrganizer 顏色設定"
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+#, fuzzy
+msgid "Custom Pages"
+msgstr "設定 Custom Pages"
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr "設定 Custom Pages"
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr "字型"
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr "KOrganizer 字型設定"
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr "行程資訊"
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr "KOrganizer 行程資訊設定"
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr "群組自動化"
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr "KOrganizer 群組自動化設定"
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+#, fuzzy
+msgid "korganizer;group;automation;"
+msgstr "KOrganizer 群組自動化設定"
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr "群組排程"
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr "KOrganizer 群組排程設定"
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+#, fuzzy
+msgid "korganizer;group;scheduling;"
+msgstr "KOrganizer 群組排程設定"
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr "個人"
+
+#. Comment
+#: korganizer_configmain.desktop:16
+msgid "KOrganizer Main Configuration"
+msgstr "KOrganizer 主設定"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr "外掛程式"
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+msgid "KOrganizer Plugin Configuration"
+msgstr "KOrganizer外掛程式設定"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr "時間與日期"
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr "KOrganizer 時間設定"
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+#, fuzzy
+msgid "korganizer;time;"
+msgstr "KOrganizer 行事曆"
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr "檢視"
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr "KOrganizer 檢視設定"
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+#, fuzzy
+msgid "korganizer;view;"
+msgstr "KOrganizer 行事曆"
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr "行事曆日期數字外掛程式"
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr "對每一天,此外掛程式會顯示這是一年中的第幾天。"
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "KOrganizer 的 Microsoft Exchange 2000 外掛程式"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+"這個外掛程式允許 KOrganizer 使用者與 Microsoft Exchange 2000 群組伺服器一起工"
+"作。"
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+msgid "Jewish Calendar Plugin"
+msgstr "猶太行事曆外掛程式"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr "顯示所有猶太行事曆的日期"
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr "日誌列印風格"
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr "此外掛程式讓您印出日誌項目。"
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr "清單列印風格"
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr "此外掛程式允許您以清單格式印出事件與待辦事項。"
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr "「下一個是什麼」列印風格"
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr "此外掛程式允許您印出即將發生的事件與待辦事項清單。"
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr "年度列印風格"
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr "此外掛程式讓您印出年曆。"
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "KOrganizer 專案檢視外掛程式"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+"此外掛程式提供 KOrganizer 專案計畫檢視。如果您開啟此外掛程式,您可以切換專案"
+"檢視與待辦事項清單。"
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "KOrganizer 時間檢視外掛程式"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
+"此外掛程式提供時間檢視模式。如果您開啟此外掛程式,您可以切換時間檢視,讓您使"
+"用類似甘特圖的圖形來檢視事件。"
diff --git a/translations/desktop_files/korganizer-desktops/zu.po b/translations/desktop_files/korganizer-desktops/zu.po
new file mode 100644
index 00000000..e5ff8271
--- /dev/null
+++ b/translations/desktop_files/korganizer-desktops/zu.po
@@ -0,0 +1,321 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-11 02:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Comment
+#: dcopcalendar.desktop:5
+msgid "Organizer with a DCOP interface"
+msgstr ""
+
+#. Comment
+#: interfaces/calendar/calendardecoration.desktop:5
+msgid "Calendar Decoration Plugin"
+msgstr "Ikhalenda Yeplagi Yokuhlobisa"
+
+#. Comment
+#: interfaces/calendar/calendarplugin.desktop:5
+msgid "Calendar Plugin"
+msgstr "Iplagi Yekhalanda"
+
+#. Comment
+#: interfaces/korganizer/korganizerpart.desktop:5
+#: interfaces/korganizer/korgprintplugin.desktop:5
+msgid "KOrganizer Part"
+msgstr "KUmgqugquzeleli Wengxenye"
+
+#. Name
+#: korgac/korgac.desktop:2
+#, fuzzy
+msgid "KOrganizer Reminder Client"
+msgstr "KUmgqugquzeleli Wengxenye"
+
+#. GenericName
+#: korgac/korgac.desktop:4
+msgid "KOrganizer Reminder Daemon Client"
+msgstr ""
+
+#. Name
+#: korganizer.desktop:4
+#, fuzzy
+msgid "KOrganizer"
+msgstr "KUmgqugquzeleli Wengxenye"
+
+#. GenericName
+#: korganizer.desktop:6
+msgid "Personal Organizer"
+msgstr ""
+
+#. Comment
+#: korganizer.desktop:8
+msgid "Calendar and Scheduling Program"
+msgstr "Ikhalenda kanye Neprogramu Yokugcina isikhathi"
+
+#. Name
+#: korganizer_configcolors.desktop:14
+msgid "Colors"
+msgstr "Imibala"
+
+#. Comment
+#: korganizer_configcolors.desktop:16
+msgid "KOrganizer Colors Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configcolors.desktop:18
+msgid "korganizer;colors;"
+msgstr ""
+
+#. Name
+#: korganizer_configdesignerfields.desktop:14
+msgid "Custom Pages"
+msgstr ""
+
+#. Comment
+#: korganizer_configdesignerfields.desktop:16
+msgid "Configure the Custom Pages"
+msgstr ""
+
+#. Keywords
+#: korganizer_configdesignerfields.desktop:18
+msgid "korganizer; configure; settings; custom fields;"
+msgstr ""
+
+#. Name
+#: korganizer_configfonts.desktop:14
+msgid "Fonts"
+msgstr ""
+
+#. Comment
+#: korganizer_configfonts.desktop:16
+msgid "KOrganizer Fonts Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfonts.desktop:18
+msgid "korganizer;fonts;"
+msgstr ""
+
+#. Name
+#: korganizer_configfreebusy.desktop:14
+msgid "Free/Busy"
+msgstr ""
+
+#. Comment
+#: korganizer_configfreebusy.desktop:16
+msgid "KOrganizer Free/Busy Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configfreebusy.desktop:18
+msgid "korganizer;freebusy;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupautomation.desktop:14
+msgid "Group Automation"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupautomation.desktop:16
+msgid "KOrganizer Group Automation Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupautomation.desktop:18
+msgid "korganizer;group;automation;"
+msgstr ""
+
+#. Name
+#: korganizer_configgroupscheduling.desktop:14
+msgid "Group Scheduling"
+msgstr ""
+
+#. Comment
+#: korganizer_configgroupscheduling.desktop:16
+msgid "KOrganizer Group Scheduling Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configgroupscheduling.desktop:18
+msgid "korganizer;group;scheduling;"
+msgstr ""
+
+#. Name
+#: korganizer_configmain.desktop:14
+msgid "Personal"
+msgstr ""
+
+#. Comment
+#: korganizer_configmain.desktop:16
+#, fuzzy
+msgid "KOrganizer Main Configuration"
+msgstr "KUmgqugquzeleli Wengxenye"
+
+#. Keywords
+#: korganizer_configmain.desktop:18
+msgid "korganizer;main;personal;"
+msgstr ""
+
+#. Name
+#: korganizer_configplugins.desktop:14
+msgid "Plugins"
+msgstr ""
+
+#. Comment
+#: korganizer_configplugins.desktop:16
+#, fuzzy
+msgid "KOrganizer Plugin Configuration"
+msgstr "KUmgqugquzeleli Wengxenye"
+
+#. Keywords
+#: korganizer_configplugins.desktop:18
+msgid "korganizer;plugin;module;"
+msgstr ""
+
+#. Name
+#: korganizer_configtime.desktop:14
+msgid "Time & Date"
+msgstr ""
+
+#. Comment
+#: korganizer_configtime.desktop:16
+msgid "KOrganizer Time Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configtime.desktop:18
+msgid "korganizer;time;"
+msgstr ""
+
+#. Name
+#: korganizer_configviews.desktop:14
+msgid "Views"
+msgstr ""
+
+#. Comment
+#: korganizer_configviews.desktop:16
+msgid "KOrganizer View Configuration"
+msgstr ""
+
+#. Keywords
+#: korganizer_configviews.desktop:18
+msgid "korganizer;view;"
+msgstr ""
+
+#. Name
+#: plugins/datenums/datenums.desktop:4
+msgid "Date Numbers Plugin for Calendars"
+msgstr ""
+
+#. Comment
+#: plugins/datenums/datenums.desktop:6
+msgid ""
+"For each day this plugin shows its daynumber of the year at the top of the "
+"agenda view. For example, February 1 is day 32 of the year."
+msgstr ""
+
+#. Name
+#: plugins/exchange/exchange.desktop:4
+#, fuzzy
+msgid "Microsoft Exchange 2000 Plugin for KOrganizer"
+msgstr "Project Khombisa Iplagi ye KUmgqugquzeli"
+
+#. Comment
+#: plugins/exchange/exchange.desktop:6
+msgid ""
+"This plugin allows korganizer users to work with Microsoft Exchange 2000 "
+"groupware servers."
+msgstr ""
+
+#. Name
+#: plugins/hebrew/hebrew.desktop:4
+#, fuzzy
+msgid "Jewish Calendar Plugin"
+msgstr "Iplagi Yekhalanda"
+
+#. Comment
+#: plugins/hebrew/hebrew.desktop:6
+msgid "Shows all dates in korganizer also in the Jewish calendar system."
+msgstr ""
+
+#. Name
+#: plugins/printing/journal/journalprint.desktop:4
+msgid "Journal Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/journal/journalprint.desktop:6
+msgid "This plugin allows you to print out journal entries (diary entries)."
+msgstr ""
+
+#. Name
+#: plugins/printing/list/listprint.desktop:4
+msgid "List Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/list/listprint.desktop:6
+msgid "This plugin allows you to print out events and to-dos in list form."
+msgstr ""
+
+#. Name
+#: plugins/printing/whatsnext/whatsnextprint.desktop:4
+msgid "What's Next Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/whatsnext/whatsnextprint.desktop:6
+msgid ""
+"This plugin allows you to print out a list of all upcoming events and to-dos."
+msgstr ""
+
+#. Name
+#: plugins/printing/year/yearprint.desktop:4
+msgid "Yearly Print Style"
+msgstr ""
+
+#. Comment
+#: plugins/printing/year/yearprint.desktop:6
+msgid "This plugin allows you to print out a yearly calendar."
+msgstr ""
+
+#. Name
+#: plugins/projectview/projectview.desktop:4
+msgid "Project View Plugin for KOrganizer"
+msgstr "Project Khombisa Iplagi ye KUmgqugquzeli"
+
+#. Comment
+#: plugins/projectview/projectview.desktop:6
+msgid ""
+"This plugin provides a project planning view for KOrganizer (like the to-do "
+"or month views). If you enable this plugin, you can switch to the project "
+"view and view your to-do list like in a project planner."
+msgstr ""
+
+#. Name
+#: plugins/timespanview/timespanview.desktop:4
+#, fuzzy
+msgid "Timespan View Plugin for KOrganizer"
+msgstr "Project Khombisa Iplagi ye KUmgqugquzeli"
+
+#. Comment
+#: plugins/timespanview/timespanview.desktop:6
+msgid ""
+"This plugin provides a timespan view for korganizer (like the to-do or month "
+"views). If you enable this plugin, you can switch to the timespan view and "
+"view your events like in a Gantt diagram."
+msgstr ""
diff --git a/translations/desktop_files/ktnef-desktops/af.po b/translations/desktop_files/ktnef-desktops/af.po
new file mode 100644
index 00000000..e1b60b15
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/af.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF lêer leser"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "'n Leeser en data onttrekker vir TNEF lêers"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF lêer"
diff --git a/translations/desktop_files/ktnef-desktops/be.po b/translations/desktop_files/ktnef-desktops/be.po
new file mode 100644
index 00000000..31f1c299
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/be.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+#, fuzzy
+msgid "TNEF File Viewer"
+msgstr "TNEF файл"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr ""
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF файл"
diff --git a/translations/desktop_files/ktnef-desktops/bg.po b/translations/desktop_files/ktnef-desktops/bg.po
new file mode 100644
index 00000000..01519261
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/bg.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Преглед на файлове TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Програма за преглед и извличане на файлове TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Файл TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/br.po b/translations/desktop_files/ktnef-desktops/br.po
new file mode 100644
index 00000000..fbd3724c
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/br.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Gweler restr TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr ""
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Restr TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/bs.po b/translations/desktop_files/ktnef-desktops/bs.po
new file mode 100644
index 00000000..ab8e8099
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/bs.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+#, fuzzy
+msgid "TNEF File Viewer"
+msgstr "TNEF datoteka"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Preglednik/ekstraktor za TNEF datoteke"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF datoteka"
diff --git a/translations/desktop_files/ktnef-desktops/ca.po b/translations/desktop_files/ktnef-desktops/ca.po
new file mode 100644
index 00000000..a2a46b94
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/ca.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Visor de fitxers TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Un visor/extractor per a fitxers TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Fitxer TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/cs.po b/translations/desktop_files/ktnef-desktops/cs.po
new file mode 100644
index 00000000..d1012391
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/cs.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: 2020-09-20 18:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/ktnef-desktop-files/cs/>\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: Weblate 4.2.2\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr "KTnef"
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Prohlížeč TNEF souborů"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Prohlížeč/rozbalovač TNEF souborů"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF soubor"
diff --git a/translations/desktop_files/ktnef-desktops/cy.po b/translations/desktop_files/ktnef-desktops/cy.po
new file mode 100644
index 00000000..da879022
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/cy.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Syllwr Ffeil TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Gwelydd/echdynnydd i ffeiliau TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Ffeil TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/da.po b/translations/desktop_files/ktnef-desktops/da.po
new file mode 100644
index 00000000..78656e1b
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/da.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF Fil-fremviser"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "En fremviser/udpakker for TNEF-filer"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+#, fuzzy
+msgid "TNEF File"
+msgstr "TNEF Fil-fremviser"
diff --git a/translations/desktop_files/ktnef-desktops/de.po b/translations/desktop_files/ktnef-desktops/de.po
new file mode 100644
index 00000000..06417d73
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/de.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF-Dateibetrachter"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Betrachten und Extrahieren von TNEF-Dateien"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF-Datei"
diff --git a/translations/desktop_files/ktnef-desktops/el.po b/translations/desktop_files/ktnef-desktops/el.po
new file mode 100644
index 00000000..b993dcb9
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/el.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Προβολέας αρχείων TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Ένας προβολέας/εξαγωγέας για αρχεία TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Αρχείο TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/eo.po b/translations/desktop_files/ktnef-desktops/eo.po
new file mode 100644
index 00000000..018ee7ba
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/eo.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF-dosierorigardilo"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr ""
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF-dosiero"
diff --git a/translations/desktop_files/ktnef-desktops/es.po b/translations/desktop_files/ktnef-desktops/es.po
new file mode 100644
index 00000000..093a016a
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/es.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Visor de archivos TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "A visor/extractor para archivos TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Archivo TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/et.po b/translations/desktop_files/ktnef-desktops/et.po
new file mode 100644
index 00000000..cd31cd2b
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/et.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF-failide näitaja"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "TNEF-failide näitaja/ekstraktija"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF-fail"
diff --git a/translations/desktop_files/ktnef-desktops/eu.po b/translations/desktop_files/ktnef-desktops/eu.po
new file mode 100644
index 00000000..41f6a61b
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/eu.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF fitxategi ikustailea"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "TNEF fitxategien ikustaile/erauzlea"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF fitxategia"
diff --git a/translations/desktop_files/ktnef-desktops/fa.po b/translations/desktop_files/ktnef-desktops/fa.po
new file mode 100644
index 00000000..0cd476cd
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/fa.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "مشاهده‌گر پروندۀ TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "یک مشاهده‌گر/استخراج‌گر برای پرونده‌های TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "پروندۀ TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/fi.po b/translations/desktop_files/ktnef-desktops/fi.po
new file mode 100644
index 00000000..f612d650
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/fi.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF-tiedostonäytin"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Näytin/purkaja TNEF-tiedostoille"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF-tiedosto"
diff --git a/translations/desktop_files/ktnef-desktops/fr.po b/translations/desktop_files/ktnef-desktops/fr.po
new file mode 100644
index 00000000..8c353af7
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/fr.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Afficheur de fichiers TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Pour afficher / extraire des fichiers TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Fichier TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/fy.po b/translations/desktop_files/ktnef-desktops/fy.po
new file mode 100644
index 00000000..d5ae7544
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/fy.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF-triemwerjefte"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "In werjefteprogramma/útpakker foar TNEF-triemmen"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF-triem"
diff --git a/translations/desktop_files/ktnef-desktops/ga.po b/translations/desktop_files/ktnef-desktops/ga.po
new file mode 100644
index 00000000..e56d1134
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/ga.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Amharcán Comhad TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr ""
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Comhad TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/gl.po b/translations/desktop_files/ktnef-desktops/gl.po
new file mode 100644
index 00000000..5849e0e1
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/gl.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Visor de Ficheiros TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Un visor/extractor para ficheiros TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Ficheiro TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/he.po b/translations/desktop_files/ktnef-desktops/he.po
new file mode 100644
index 00000000..7be6dbab
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/he.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+#, fuzzy
+msgid "TNEF File Viewer"
+msgstr "קובץ TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr ""
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "קובץ TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/hi.po b/translations/desktop_files/ktnef-desktops/hi.po
new file mode 100644
index 00000000..1003b386
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/hi.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+#, fuzzy
+msgid "TNEF File Viewer"
+msgstr "टीएनईएफ फ़ाइल"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "टीएनईएफ फ़ाइलों के लिए एक प्रदर्शक/एक्सट्रेक्टर"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "टीएनईएफ फ़ाइल"
diff --git a/translations/desktop_files/ktnef-desktops/hr.po b/translations/desktop_files/ktnef-desktops/hr.po
new file mode 100644
index 00000000..1ab62c60
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/hr.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+#, fuzzy
+msgid "TNEF File Viewer"
+msgstr "TNEF datoteka"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Prikazivač/izdvajač za TNEF datoteke"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF datoteka"
diff --git a/translations/desktop_files/ktnef-desktops/hu.po b/translations/desktop_files/ktnef-desktops/hu.po
new file mode 100644
index 00000000..aa79b0c6
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/hu.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF-fájlnézegető"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Nézegetőprogram TNEF-fájlokhoz"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF-fájl"
diff --git a/translations/desktop_files/ktnef-desktops/is.po b/translations/desktop_files/ktnef-desktops/is.po
new file mode 100644
index 00000000..ab47572e
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/is.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF skráarskoðari"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Sýnir/lesari fyrir TNEF skrár"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF skrá"
diff --git a/translations/desktop_files/ktnef-desktops/it.po b/translations/desktop_files/ktnef-desktops/it.po
new file mode 100644
index 00000000..47724605
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/it.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: 2020-11-29 07:59+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/ktnef-desktop-files/it/>\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: Weblate 4.3.2\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr "KTnef"
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Visualizzatore file TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Un visualizzatore/estrattore di file TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "File TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/ja.po b/translations/desktop_files/ktnef-desktops/ja.po
new file mode 100644
index 00000000..d8b83a04
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/ja.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF ファイルビュー"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "TNEF ファイルのためのビューア/展開ツール"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF ファイル"
diff --git a/translations/desktop_files/ktnef-desktops/kk.po b/translations/desktop_files/ktnef-desktops/kk.po
new file mode 100644
index 00000000..1538d037
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/kk.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF файлды қарау құралы"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "TNEF файдарды қарау/тарқату"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF файлы"
diff --git a/translations/desktop_files/ktnef-desktops/km.po b/translations/desktop_files/ktnef-desktops/km.po
new file mode 100644
index 00000000..660fb610
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/km.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "កម្មវិធី​មើល​ឯកសារ TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "កម្មវិធី​មើល និង​ស្រង់​ឯកសារ TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "ឯកសារ TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/ktnef-desktops.pot b/translations/desktop_files/ktnef-desktops/ktnef-desktops.pot
new file mode 100644
index 00000000..4f3a103b
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/ktnef-desktops.pot
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr ""
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr ""
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr ""
diff --git a/translations/desktop_files/ktnef-desktops/lt.po b/translations/desktop_files/ktnef-desktops/lt.po
new file mode 100644
index 00000000..12286a49
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/lt.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF bylų žiūryklė"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "TNEF bylų žiūryklė - išpakuotojas"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF byla"
diff --git a/translations/desktop_files/ktnef-desktops/mk.po b/translations/desktop_files/ktnef-desktops/mk.po
new file mode 100644
index 00000000..951474ce
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/mk.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Прегледувач на TNEF-датотеки"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr ""
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF-датотека"
diff --git a/translations/desktop_files/ktnef-desktops/ms.po b/translations/desktop_files/ktnef-desktops/ms.po
new file mode 100644
index 00000000..57ef489b
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/ms.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Pemapar Fail TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Pemapar/pengekstrak untuk fail TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Fail TNEF "
diff --git a/translations/desktop_files/ktnef-desktops/nb.po b/translations/desktop_files/ktnef-desktops/nb.po
new file mode 100644
index 00000000..e9fe6bee
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/nb.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF-filvisning"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "En utpakker/fremviser for TNEF-filer"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF-fil"
diff --git a/translations/desktop_files/ktnef-desktops/nds.po b/translations/desktop_files/ktnef-desktops/nds.po
new file mode 100644
index 00000000..bfc5faaf
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/nds.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF-Dateikieker"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "TNEF-Dateien ankieken un Delen ruttrecken"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF-Datei"
diff --git a/translations/desktop_files/ktnef-desktops/ne.po b/translations/desktop_files/ktnef-desktops/ne.po
new file mode 100644
index 00000000..aaa0a340
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/ne.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF फाइल दर्शक"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "TNEF फाइलका लागि दर्शक/निष्कासक"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF फाइल"
diff --git a/translations/desktop_files/ktnef-desktops/nl.po b/translations/desktop_files/ktnef-desktops/nl.po
new file mode 100644
index 00000000..59e7d9eb
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/nl.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF-bestandsweergave"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Een weergaveprogramma/uitpakker voor TNEF-bestanden"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF-bestand"
diff --git a/translations/desktop_files/ktnef-desktops/nn.po b/translations/desktop_files/ktnef-desktops/nn.po
new file mode 100644
index 00000000..dcc34f16
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/nn.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF filvisar"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Ein framvisar/utpakkar for TNEF-filer"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF-fil"
diff --git a/translations/desktop_files/ktnef-desktops/pl.po b/translations/desktop_files/ktnef-desktops/pl.po
new file mode 100644
index 00000000..29433793
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/pl.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Przeglądarka plików TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Przeglądarka/program wyciągający zawartość plików TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Plik TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/pt.po b/translations/desktop_files/ktnef-desktops/pt.po
new file mode 100644
index 00000000..eed67a6e
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/pt.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Visualizador de Ficheiros TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Um visualizador/extractor de ficheiros TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Ficheiro TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/pt_BR.po b/translations/desktop_files/ktnef-desktops/pt_BR.po
new file mode 100644
index 00000000..b744e229
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/pt_BR.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Visualizador de Arquivos TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Um visualizador/extrator para arquivos TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Arquivo TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/ro.po b/translations/desktop_files/ktnef-desktops/ro.po
new file mode 100644
index 00000000..0987b1ec
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/ro.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+#, fuzzy
+msgid "TNEF File Viewer"
+msgstr "Fişier TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Un vizualizor/extractor pentru fişiere TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Fişier TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/ru.po b/translations/desktop_files/ktnef-desktops/ru.po
new file mode 100644
index 00000000..cd56b589
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/ru.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: 2024-04-12 16:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/ktnef-desktop-files/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr "KTnef"
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Просмотр файлов TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Просмотр и распаковка файлов TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Файл TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/sk.po b/translations/desktop_files/ktnef-desktops/sk.po
new file mode 100644
index 00000000..592dceaa
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/sk.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Prehliadač súborov TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Prehliadač/extraktor pre TNEF súbory"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF súbor"
diff --git a/translations/desktop_files/ktnef-desktops/sl.po b/translations/desktop_files/ktnef-desktops/sl.po
new file mode 100644
index 00000000..edb04864
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/sl.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Pregledovalnik datotek TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Pregledovalnik/izvlečevalnik za datoteke TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Datoteka TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/sr.po b/translations/desktop_files/ktnef-desktops/sr.po
new file mode 100644
index 00000000..41cbe306
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/sr.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Приказивач TNEF фајлова"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Приказивач/издвајач за TNEF фајлове"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF фајл"
diff --git a/translations/desktop_files/ktnef-desktops/sr@Latn.po b/translations/desktop_files/ktnef-desktops/sr@Latn.po
new file mode 100644
index 00000000..a90823db
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/sr@Latn.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Prikazivač TNEF fajlova"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Prikazivač/izdvajač za TNEF fajlove"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF fajl"
diff --git a/translations/desktop_files/ktnef-desktops/sv.po b/translations/desktop_files/ktnef-desktops/sv.po
new file mode 100644
index 00000000..2480cc7f
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/sv.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr "Ktnef"
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF-filvisning"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Visning och uppackning av TNEF-filer"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF-fil"
diff --git a/translations/desktop_files/ktnef-desktops/ta.po b/translations/desktop_files/ktnef-desktops/ta.po
new file mode 100644
index 00000000..11533080
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/ta.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF கோப்பு காட்சியாளன்"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "TNEF கோப்புகளுக்கான காட்சியகம்/பிரித்தெடுப்பாளர்"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF கோப்பு"
diff --git a/translations/desktop_files/ktnef-desktops/tg.po b/translations/desktop_files/ktnef-desktops/tg.po
new file mode 100644
index 00000000..7a22eeef
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/tg.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+#, fuzzy
+msgid "TNEF File Viewer"
+msgstr "Файли TNEF "
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Намоиш ва боз кардани файлҳои TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Файли TNEF "
diff --git a/translations/desktop_files/ktnef-desktops/tr.po b/translations/desktop_files/ktnef-desktops/tr.po
new file mode 100644
index 00000000..30ff7226
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/tr.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF Dosya Göstericisi"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "TNEF dosyaları için gösterici/çıkarıcı"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF Dosyası"
diff --git a/translations/desktop_files/ktnef-desktops/uk.po b/translations/desktop_files/ktnef-desktops/uk.po
new file mode 100644
index 00000000..b5ef6d42
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/uk.po
@@ -0,0 +1,39 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: 2020-08-22 07:31+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/ktnef-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr "KTnef"
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "Переглядач файлів TNEF"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "Переглядач/розпаковувач файлів TNEF"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "Файл TNEF"
diff --git a/translations/desktop_files/ktnef-desktops/uz.po b/translations/desktop_files/ktnef-desktops/uz.po
new file mode 100644
index 00000000..c8c1b1e4
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/uz.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+#, fuzzy
+msgid "TNEF File Viewer"
+msgstr "TNEF-файли"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr ""
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF-файли"
diff --git a/translations/desktop_files/ktnef-desktops/zh_CN.po b/translations/desktop_files/ktnef-desktops/zh_CN.po
new file mode 100644
index 00000000..dc0f6b20
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/zh_CN.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF 文件查看器"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "TNEF 文件的查看/提取器"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF 文件"
diff --git a/translations/desktop_files/ktnef-desktops/zh_TW.po b/translations/desktop_files/ktnef-desktops/zh_TW.po
new file mode 100644
index 00000000..d0108e38
--- /dev/null
+++ b/translations/desktop_files/ktnef-desktops/zh_TW.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:28+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: gui/ktnef.desktop:2
+msgid "KTnef"
+msgstr ""
+
+#. GenericName
+#: gui/ktnef.desktop:4
+msgid "TNEF File Viewer"
+msgstr "TNEF 檔案檢視器"
+
+#. Comment
+#: gui/ktnef.desktop:6
+msgid "A viewer/extractor for TNEF files"
+msgstr "TNEF 檔案檢視器"
+
+#. Comment
+#: gui/ms-tnef.desktop:7
+msgid "TNEF File"
+msgstr "TNEF 檔案"
diff --git a/translations/desktop_files/libkcal-desktops/af.po b/translations/desktop_files/libkcal-desktops/af.po
new file mode 100644
index 00000000..4d59f3ce
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/af.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalender"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalender in plaaslike lêer"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalender in plaaslike gids"
diff --git a/translations/desktop_files/libkcal-desktops/ar.po b/translations/desktop_files/libkcal-desktops/ar.po
new file mode 100644
index 00000000..a214ed53
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/ar.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "التقويم"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr ""
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr ""
diff --git a/translations/desktop_files/libkcal-desktops/be.po b/translations/desktop_files/libkcal-desktops/be.po
new file mode 100644
index 00000000..1953ba55
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/be.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Каляндар"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Каляндар у лякальным файле"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Каляндар у лякальным каталёгу"
diff --git a/translations/desktop_files/libkcal-desktops/bg.po b/translations/desktop_files/libkcal-desktops/bg.po
new file mode 100644
index 00000000..b2cd4740
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/bg.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Календар"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Календар в локален файл"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Календар в локална директория"
diff --git a/translations/desktop_files/libkcal-desktops/br.po b/translations/desktop_files/libkcal-desktops/br.po
new file mode 100644
index 00000000..8b4d1a47
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/br.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Deiziadur"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Deiziadur e restr lec'hel"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Deiziadur en ur restr lec'hel"
diff --git a/translations/desktop_files/libkcal-desktops/bs.po b/translations/desktop_files/libkcal-desktops/bs.po
new file mode 100644
index 00000000..39ec885f
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/bs.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalendar"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalendar u lokalnoj datoteci"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalendar u lokalnom direktoriju"
diff --git a/translations/desktop_files/libkcal-desktops/ca.po b/translations/desktop_files/libkcal-desktops/ca.po
new file mode 100644
index 00000000..9bc1fd1c
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/ca.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Calendari"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Calendari a un fitxer local"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Calendari a un directori local"
diff --git a/translations/desktop_files/libkcal-desktops/cs.po b/translations/desktop_files/libkcal-desktops/cs.po
new file mode 100644
index 00000000..514aff7f
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/cs.po
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/libkcal-desktop-files/cs/>\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: Weblate 4.8.1\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalendář"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalendář v lokálním souboru"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalendář v lokální složce"
diff --git a/translations/desktop_files/libkcal-desktops/cy.po b/translations/desktop_files/libkcal-desktops/cy.po
new file mode 100644
index 00000000..ed6a18a3
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/cy.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Calendr"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Calendr mewn Ffeil Lleol"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Calendr mewn Cyfeiriadur Lleol"
diff --git a/translations/desktop_files/libkcal-desktops/da.po b/translations/desktop_files/libkcal-desktops/da.po
new file mode 100644
index 00000000..cf2a89d6
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/da.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalender"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalender i lokal fil"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalender i lokal mappe"
diff --git a/translations/desktop_files/libkcal-desktops/de.po b/translations/desktop_files/libkcal-desktops/de.po
new file mode 100644
index 00000000..0fea9c5b
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/de.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalender"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalender in lokaler Datei"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalender in lokalem Ordner"
diff --git a/translations/desktop_files/libkcal-desktops/el.po b/translations/desktop_files/libkcal-desktops/el.po
new file mode 100644
index 00000000..a83718ac
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/el.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Ημερολόγιο"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Ημερολόγιο σε τοπικό αρχείο"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Ημερολόγιο σε τοπικό κατάλογο"
diff --git a/translations/desktop_files/libkcal-desktops/eo.po b/translations/desktop_files/libkcal-desktops/eo.po
new file mode 100644
index 00000000..32fd159c
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/eo.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalendaro"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalendaro en loka dosiero"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalendaro en loka dosierujo"
diff --git a/translations/desktop_files/libkcal-desktops/es.po b/translations/desktop_files/libkcal-desktops/es.po
new file mode 100644
index 00000000..937ce79f
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/es.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Calendario"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Calendario en archivo local"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Calendario en el directorio local"
diff --git a/translations/desktop_files/libkcal-desktops/et.po b/translations/desktop_files/libkcal-desktops/et.po
new file mode 100644
index 00000000..13234721
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/et.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalender"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalender kohalikus failis"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalender kohalikus kataloogis"
diff --git a/translations/desktop_files/libkcal-desktops/eu.po b/translations/desktop_files/libkcal-desktops/eu.po
new file mode 100644
index 00000000..70ed77ca
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/eu.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Egutegia"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Egutegia fitxategi lokalean"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Egutegia direktorio lokalean"
diff --git a/translations/desktop_files/libkcal-desktops/fa.po b/translations/desktop_files/libkcal-desktops/fa.po
new file mode 100644
index 00000000..dde0c897
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/fa.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "تقویم"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "تقویم در پروندۀ محلی"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "تقویم در فهرست راهنمای محلی"
diff --git a/translations/desktop_files/libkcal-desktops/fi.po b/translations/desktop_files/libkcal-desktops/fi.po
new file mode 100644
index 00000000..988f36f0
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/fi.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalenteri"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalenteri paikallisessa tiedostossa"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalenteri paikallisessa kansiossa"
diff --git a/translations/desktop_files/libkcal-desktops/fr.po b/translations/desktop_files/libkcal-desktops/fr.po
new file mode 100644
index 00000000..db6d957d
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/fr.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Calendrier"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Calendrier dans un fichier local"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Calendrier dans un dossier local"
diff --git a/translations/desktop_files/libkcal-desktops/fy.po b/translations/desktop_files/libkcal-desktops/fy.po
new file mode 100644
index 00000000..c59a95a3
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/fy.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Aginda"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Aginda yn lokaal triem"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Aginda yn lokale triemtafel"
diff --git a/translations/desktop_files/libkcal-desktops/ga.po b/translations/desktop_files/libkcal-desktops/ga.po
new file mode 100644
index 00000000..24df8ff1
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/ga.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Féilire"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Féilire i gComhad Logánta"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Féilire i gComhadlann Logánta"
diff --git a/translations/desktop_files/libkcal-desktops/gl.po b/translations/desktop_files/libkcal-desktops/gl.po
new file mode 100644
index 00000000..95c7a315
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/gl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Calendario"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Calendario nun Ficheiro Local"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Calendario nun Cartafol Local"
diff --git a/translations/desktop_files/libkcal-desktops/he.po b/translations/desktop_files/libkcal-desktops/he.po
new file mode 100644
index 00000000..96d35de1
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/he.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "לוח שנה"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr ""
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr ""
diff --git a/translations/desktop_files/libkcal-desktops/hi.po b/translations/desktop_files/libkcal-desktops/hi.po
new file mode 100644
index 00000000..9d784ea7
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/hi.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "कैलेन्डर"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "स्थानीय फ़ाइल में कैलेन्डर"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "स्थानीय डिरेक्ट्री में कैलेन्डर"
diff --git a/translations/desktop_files/libkcal-desktops/hu.po b/translations/desktop_files/libkcal-desktops/hu.po
new file mode 100644
index 00000000..694de33f
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/hu.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Naptár"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Helyi fájlban tárolt naptár"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Helyi könyvtárban tárolt naptár"
diff --git a/translations/desktop_files/libkcal-desktops/is.po b/translations/desktop_files/libkcal-desktops/is.po
new file mode 100644
index 00000000..fe940629
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/is.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Dagatal"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Dagatal í staðbundinni skrá"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Dagatal í staðbundinni möppu"
diff --git a/translations/desktop_files/libkcal-desktops/it.po b/translations/desktop_files/libkcal-desktops/it.po
new file mode 100644
index 00000000..54466708
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/it.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Calendario"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Calendario in file locale"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Calendario nella directory locale"
diff --git a/translations/desktop_files/libkcal-desktops/ja.po b/translations/desktop_files/libkcal-desktops/ja.po
new file mode 100644
index 00000000..97e64fa2
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/ja.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "カレンダー"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "ローカルファイルのカレンダー"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "ローカルディレクトリのカレンダー"
diff --git a/translations/desktop_files/libkcal-desktops/kk.po b/translations/desktop_files/libkcal-desktops/kk.po
new file mode 100644
index 00000000..893a27b8
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/kk.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Күнтізбе"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Жергілікті файлдағы күнтізбе"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Жергілікті каталогтағы күнтізбе"
diff --git a/translations/desktop_files/libkcal-desktops/km.po b/translations/desktop_files/libkcal-desktops/km.po
new file mode 100644
index 00000000..c15d42b1
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/km.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "ប្រតិទិន"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "ប្រតិទិន​នៅ​ក្នុង​ឯកសារ​មូលដ្ឋាន"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "ប្រតិទិន​នៅ​ក្នុង​ថត​មូលដ្ឋាន"
diff --git a/translations/desktop_files/libkcal-desktops/libkcal-desktops.pot b/translations/desktop_files/libkcal-desktops/libkcal-desktops.pot
new file mode 100644
index 00000000..54069d8b
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/libkcal-desktops.pot
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr ""
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr ""
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr ""
diff --git a/translations/desktop_files/libkcal-desktops/lt.po b/translations/desktop_files/libkcal-desktops/lt.po
new file mode 100644
index 00000000..9756e61e
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/lt.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalendorius"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalendorius vietinėje byloje"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalendorius vietiniame aplanke"
diff --git a/translations/desktop_files/libkcal-desktops/mk.po b/translations/desktop_files/libkcal-desktops/mk.po
new file mode 100644
index 00000000..05e930dc
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/mk.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Календар"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Календар во локална датотека"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Календар во локална папка"
diff --git a/translations/desktop_files/libkcal-desktops/ms.po b/translations/desktop_files/libkcal-desktops/ms.po
new file mode 100644
index 00000000..393b0ab6
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/ms.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalendar"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalendar dalam Fail Setempat"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalendar dalam Direktori Setempat"
diff --git a/translations/desktop_files/libkcal-desktops/nb.po b/translations/desktop_files/libkcal-desktops/nb.po
new file mode 100644
index 00000000..27658a2e
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/nb.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalender"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalender i lokal fil"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalender i lokal katalog"
diff --git a/translations/desktop_files/libkcal-desktops/nds.po b/translations/desktop_files/libkcal-desktops/nds.po
new file mode 100644
index 00000000..738d6002
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/nds.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalenner"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalenner as lokaal Datei"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalenner in lokaal Orner"
diff --git a/translations/desktop_files/libkcal-desktops/ne.po b/translations/desktop_files/libkcal-desktops/ne.po
new file mode 100644
index 00000000..03a5a107
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/ne.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "क्यालेन्डर"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "स्थानीय फाइलको क्यालेन्डर"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "स्थानीय डाइरेक्टरीको क्यालेन्डर"
diff --git a/translations/desktop_files/libkcal-desktops/nl.po b/translations/desktop_files/libkcal-desktops/nl.po
new file mode 100644
index 00000000..75e9e0c3
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/nl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Agenda"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Agenda in lokaal bestand"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Agenda in lokale map"
diff --git a/translations/desktop_files/libkcal-desktops/nn.po b/translations/desktop_files/libkcal-desktops/nn.po
new file mode 100644
index 00000000..de45881c
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/nn.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalender"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalender i lokal fil"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalender i lokal mappe"
diff --git a/translations/desktop_files/libkcal-desktops/pa.po b/translations/desktop_files/libkcal-desktops/pa.po
new file mode 100644
index 00000000..636e6b2a
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/pa.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "ਕੈਲੰਡਰ"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr ""
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr ""
diff --git a/translations/desktop_files/libkcal-desktops/pl.po b/translations/desktop_files/libkcal-desktops/pl.po
new file mode 100644
index 00000000..cc3399f8
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/pl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalendarz"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalendarz w pliku lokalnym"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalendarz w katalogu lokalnym"
diff --git a/translations/desktop_files/libkcal-desktops/pt.po b/translations/desktop_files/libkcal-desktops/pt.po
new file mode 100644
index 00000000..362da3ea
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/pt.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Calendário"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Calendário num Ficheiro Local"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Calendário numa Directoria Local"
diff --git a/translations/desktop_files/libkcal-desktops/pt_BR.po b/translations/desktop_files/libkcal-desktops/pt_BR.po
new file mode 100644
index 00000000..c918346c
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/pt_BR.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Calendário"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Calendário em Arquivo Local"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Calendário em Diretório Local"
diff --git a/translations/desktop_files/libkcal-desktops/ro.po b/translations/desktop_files/libkcal-desktops/ro.po
new file mode 100644
index 00000000..e0f923a1
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/ro.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr ""
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Calendar în fişier local"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Calendar în director local"
diff --git a/translations/desktop_files/libkcal-desktops/ru.po b/translations/desktop_files/libkcal-desktops/ru.po
new file mode 100644
index 00000000..6eb250aa
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/ru.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Календарь"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Календарь в локальном файле"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Календарь в локальной папке"
diff --git a/translations/desktop_files/libkcal-desktops/se.po b/translations/desktop_files/libkcal-desktops/se.po
new file mode 100644
index 00000000..4c84dd93
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/se.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kaleandar"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr ""
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr ""
diff --git a/translations/desktop_files/libkcal-desktops/sk.po b/translations/desktop_files/libkcal-desktops/sk.po
new file mode 100644
index 00000000..318b6d8e
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/sk.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalendár"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalendár v lokálnom súbore"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalendár v lokálnom priečinku"
diff --git a/translations/desktop_files/libkcal-desktops/sl.po b/translations/desktop_files/libkcal-desktops/sl.po
new file mode 100644
index 00000000..3c3d41aa
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/sl.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Koledar"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Koledar v krajevni datoteki"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Koledar v krajevnem imeniku"
diff --git a/translations/desktop_files/libkcal-desktops/sr.po b/translations/desktop_files/libkcal-desktops/sr.po
new file mode 100644
index 00000000..5e6d2e1e
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/sr.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Календар"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Календар у локалном фајлу"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Календар у локалном директоријуму"
diff --git a/translations/desktop_files/libkcal-desktops/sr@Latn.po b/translations/desktop_files/libkcal-desktops/sr@Latn.po
new file mode 100644
index 00000000..5900398c
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/sr@Latn.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalendar"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalendar u lokalnom fajlu"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalendar u lokalnom direktorijumu"
diff --git a/translations/desktop_files/libkcal-desktops/sv.po b/translations/desktop_files/libkcal-desktops/sv.po
new file mode 100644
index 00000000..0a5874fa
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/sv.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Kalender"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Kalender i lokal fil"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Kalender i lokal katalog"
diff --git a/translations/desktop_files/libkcal-desktops/ta.po b/translations/desktop_files/libkcal-desktops/ta.po
new file mode 100644
index 00000000..38f9c769
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/ta.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "நாள்காட்டி"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "பொது அடைவில் உள்ள நாள்காட்டி"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "பொது அடைவில் உள்ள நாள்காட்டி"
diff --git a/translations/desktop_files/libkcal-desktops/tg.po b/translations/desktop_files/libkcal-desktops/tg.po
new file mode 100644
index 00000000..819841f5
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/tg.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Тақвим"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Тақвимот дар файли локалӣ"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Тақвимот дар каталоги локалӣ"
diff --git a/translations/desktop_files/libkcal-desktops/th.po b/translations/desktop_files/libkcal-desktops/th.po
new file mode 100644
index 00000000..ca2300d7
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/th.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: th\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "บันทึกประจำวัน"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr ""
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr ""
diff --git a/translations/desktop_files/libkcal-desktops/tr.po b/translations/desktop_files/libkcal-desktops/tr.po
new file mode 100644
index 00000000..7a44dcd9
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/tr.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Takvim"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Yerel Dosyadaki Takvim"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Yerel Dizindeki Takvim"
diff --git a/translations/desktop_files/libkcal-desktops/uk.po b/translations/desktop_files/libkcal-desktops/uk.po
new file mode 100644
index 00000000..59445c90
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/uk.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Календар"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "Календар у локальному файлі"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "Календар у локальному каталозі"
diff --git a/translations/desktop_files/libkcal-desktops/uz.po b/translations/desktop_files/libkcal-desktops/uz.po
new file mode 100644
index 00000000..18fdab7f
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/uz.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uz\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "Календар"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr ""
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr ""
diff --git a/translations/desktop_files/libkcal-desktops/zh_CN.po b/translations/desktop_files/libkcal-desktops/zh_CN.po
new file mode 100644
index 00000000..e9dc5562
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/zh_CN.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "日历"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "本地文件中的日历"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "本地目录中的日历"
diff --git a/translations/desktop_files/libkcal-desktops/zh_TW.po b/translations/desktop_files/libkcal-desktops/zh_TW.po
new file mode 100644
index 00000000..a8183ce5
--- /dev/null
+++ b/translations/desktop_files/libkcal-desktops/zh_TW.po
@@ -0,0 +1,32 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:31+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: kcal_manager.desktop:2
+msgid "Calendar"
+msgstr "行事曆"
+
+#. Name
+#: local.desktop:2
+msgid "Calendar in Local File"
+msgstr "本地檔案中的行事曆"
+
+#. Name
+#: localdir.desktop:2
+msgid "Calendar in Local Directory"
+msgstr "本地目錄中的行事曆"
diff --git a/translations/desktop_files/libtdepim-desktops/af.po b/translations/desktop_files/libtdepim-desktops/af.po
new file mode 100644
index 00000000..b9b2877c
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/af.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer Redigeerder"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer Redigeerder"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer inprop module"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer standaard redigeerder"
diff --git a/translations/desktop_files/libtdepim-desktops/bg.po b/translations/desktop_files/libtdepim-desktops/bg.po
new file mode 100644
index 00000000..33887303
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/bg.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "редактор; съставител; форматиране; текст; komposer;"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "Писане на форматиран текст"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "редактор; съставител; форматиране; текст; komposer;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Писане на форматиран текст"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Приставка за Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Подразбиращ се редактор за Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/br.po b/translations/desktop_files/libtdepim-desktops/br.po
new file mode 100644
index 00000000..9ce1ee58
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/br.po
@@ -0,0 +1,52 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer TDE"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "Komposer TDE"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+#, fuzzy
+msgid "komposer;"
+msgstr "Komposer TDE"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Aozer Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Lugent Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+#, fuzzy
+msgid "Komposer default editor"
+msgstr "Aozer Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/bs.po b/translations/desktop_files/libtdepim-desktops/bs.po
new file mode 100644
index 00000000..028cfff5
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/bs.po
@@ -0,0 +1,51 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer editor"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer editor"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer dodatak"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+#, fuzzy
+msgid "Komposer default editor"
+msgstr "Komposer editor"
diff --git a/translations/desktop_files/libtdepim-desktops/ca.po b/translations/desktop_files/libtdepim-desktops/ca.po
new file mode 100644
index 00000000..14bf50d0
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/ca.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "compositor;"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "Compositor per a TDE"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "compositor;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Compositor per a TDE"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Endollable Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Editor predeterminat de Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/cs.po b/translations/desktop_files/libtdepim-desktops/cs.po
new file mode 100644
index 00000000..3cb9e817
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/cs.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/libtdepim-desktop-files/cs/>\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: Weblate 4.8.1\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+msgid "Komposer"
+msgstr "Komposer"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "Komposer TDE"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "komposer;editor;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Editor Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Modul Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Výchozí editor Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/cy.po b/translations/desktop_files/libtdepim-desktops/cy.po
new file mode 100644
index 00000000..273f5687
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/cy.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+msgid "Komposer"
+msgstr "Kyfansoddydd"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "Cyfansoddydd TDE"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "komposer;kyfansoddydd;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+#, fuzzy
+msgid "Komposer Editor"
+msgstr "Kyfansoddydd"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Ategyn Kyfansoddydd"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr ""
diff --git a/translations/desktop_files/libtdepim-desktops/da.po b/translations/desktop_files/libtdepim-desktops/da.po
new file mode 100644
index 00000000..7651360a
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/da.po
@@ -0,0 +1,49 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+msgid "Komposer"
+msgstr "Brevskriver"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "TDE Brevskriver"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "brevskriver;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer editor"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Brevskriver-plugin"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer standardeditor"
diff --git a/translations/desktop_files/libtdepim-desktops/de.po b/translations/desktop_files/libtdepim-desktops/de.po
new file mode 100644
index 00000000..5b1ff2c2
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/de.po
@@ -0,0 +1,51 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer;"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "TDE-Komposer"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "Komposer;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+#, fuzzy
+msgid "Komposer Editor"
+msgstr "Komposer Standardeditor"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer-Modul"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer Standardeditor"
diff --git a/translations/desktop_files/libtdepim-desktops/el.po b/translations/desktop_files/libtdepim-desktops/el.po
new file mode 100644
index 00000000..c3caefa4
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/el.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Επεξεργαστής Komposer"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Επεξεργαστής Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Πρόσθετο του Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Προεπιλεγμένος επεξεργαστής του Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/eo.po b/translations/desktop_files/libtdepim-desktops/eo.po
new file mode 100644
index 00000000..7b8e7668
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/eo.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer-redaktilo"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer-redaktilo"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer-kromaĵo"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer-redaktilo apriora"
diff --git a/translations/desktop_files/libtdepim-desktops/es.po b/translations/desktop_files/libtdepim-desktops/es.po
new file mode 100644
index 00000000..361a5327
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/es.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Editor Komposer"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Editor Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Accesorio Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Editor predefinido Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/et.po b/translations/desktop_files/libtdepim-desktops/et.po
new file mode 100644
index 00000000..6ba7fdae
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/et.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposeri redaktor"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposeri redaktor"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposeri plugin"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposeri vaikeredaktor"
diff --git a/translations/desktop_files/libtdepim-desktops/eu.po b/translations/desktop_files/libtdepim-desktops/eu.po
new file mode 100644
index 00000000..879c7c47
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/eu.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer editorea"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer editorea"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer plugin-a"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer editore lehenetsia"
diff --git a/translations/desktop_files/libtdepim-desktops/fa.po b/translations/desktop_files/libtdepim-desktops/fa.po
new file mode 100644
index 00000000..a20e9b35
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/fa.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "ویرایشگر Komposer"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "ویرایشگر Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "وصلۀ Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "ویرایشگر پیش‌فرض Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/fi.po b/translations/desktop_files/libtdepim-desktops/fi.po
new file mode 100644
index 00000000..de8179f9
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/fi.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer-muokkain"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer-muokkain"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer-liitännäinen"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer oletusmuokkain"
diff --git a/translations/desktop_files/libtdepim-desktops/fr.po b/translations/desktop_files/libtdepim-desktops/fr.po
new file mode 100644
index 00000000..32f3262a
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/fr.po
@@ -0,0 +1,51 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer TDE"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "Komposer TDE"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+#, fuzzy
+msgid "komposer;"
+msgstr "Komposer TDE"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Éditeur Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Module de Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Éditeur Komposer par défaut"
diff --git a/translations/desktop_files/libtdepim-desktops/fy.po b/translations/desktop_files/libtdepim-desktops/fy.po
new file mode 100644
index 00000000..cbeec6fd
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/fy.po
@@ -0,0 +1,51 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "komposer;opstellen; opsteller;"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+#, fuzzy
+msgid "TDE Komposer"
+msgstr "komposer;opstellen; opsteller;"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "komposer;opstellen; opsteller;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer-bewurker"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer-plugin"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer standertbewurker"
diff --git a/translations/desktop_files/libtdepim-desktops/ga.po b/translations/desktop_files/libtdepim-desktops/ga.po
new file mode 100644
index 00000000..9c2d29bf
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/ga.po
@@ -0,0 +1,51 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer TDE"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "Komposer TDE"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+#, fuzzy
+msgid "komposer;"
+msgstr "Komposer TDE"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Eagarthóir Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Breiseán Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Eagarthóir réamhshocraithe Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/gl.po b/translations/desktop_files/libtdepim-desktops/gl.po
new file mode 100644
index 00000000..670cfe05
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/gl.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Editor Komposer"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Editor Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Extensión Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Editor por defecto Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/he.po b/translations/desktop_files/libtdepim-desktops/he.po
new file mode 100644
index 00000000..e35c356b
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/he.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "עורך של Komposer"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "עורך של Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "תןסף Kompoer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "עורך ברירת מחדל של Kompoer"
diff --git a/translations/desktop_files/libtdepim-desktops/hi.po b/translations/desktop_files/libtdepim-desktops/hi.po
new file mode 100644
index 00000000..ac8e395d
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/hi.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+msgid "Komposer"
+msgstr "कम्पोज़र"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "केडीई कम्पोज़र"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "कम्पोज़र;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+#, fuzzy
+msgid "Komposer Editor"
+msgstr "कम्पोज़र"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "कम्पोज़र प्लगइन"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr ""
diff --git a/translations/desktop_files/libtdepim-desktops/hu.po b/translations/desktop_files/libtdepim-desktops/hu.po
new file mode 100644
index 00000000..acbe7c66
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/hu.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer bővítőmodul"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "A Komposer alapértelmezett szerkesztője"
diff --git a/translations/desktop_files/libtdepim-desktops/is.po b/translations/desktop_files/libtdepim-desktops/is.po
new file mode 100644
index 00000000..336f253a
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/is.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer ritill"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer ritill"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer íforrit"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Sjálfgefinn ritill Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/it.po b/translations/desktop_files/libtdepim-desktops/it.po
new file mode 100644
index 00000000..d4d66ef9
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/it.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: 2020-11-22 12:59+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/libtdepim-desktop-files/it/>\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: Weblate 4.3.2\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+msgid "Komposer"
+msgstr "Komposer editor"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "TDE Komposer"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "komposer;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer editor"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Plugin Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Editor di default per Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/ja.po b/translations/desktop_files/libtdepim-desktops/ja.po
new file mode 100644
index 00000000..729c637a
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/ja.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer,エディタ"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer,エディタ"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer プラグイン"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer 標準エディタ"
diff --git a/translations/desktop_files/libtdepim-desktops/kk.po b/translations/desktop_files/libtdepim-desktops/kk.po
new file mode 100644
index 00000000..8892efe6
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/kk.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer өңдегіші"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer өңдегіші"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer плагин модулі"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer әдетті өңдегіші"
diff --git a/translations/desktop_files/libtdepim-desktops/km.po b/translations/desktop_files/libtdepim-desktops/km.po
new file mode 100644
index 00000000..78d11e3c
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/km.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "កម្មវិធី​និពន្ធ Komposer"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "កម្មវិធី​និពន្ធ Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "កម្មវិធី​ជំនួយ Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "កម្មវិធី​និពន្ធ​លំនាំដើម​របស់ Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/ko.po b/translations/desktop_files/libtdepim-desktops/ko.po
new file mode 100644
index 00000000..efb6a900
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/ko.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer 편집기"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer 편집기"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer 플러그인"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer 기본 편집기"
diff --git a/translations/desktop_files/libtdepim-desktops/libtdepim-desktops.pot b/translations/desktop_files/libtdepim-desktops/libtdepim-desktops.pot
new file mode 100644
index 00000000..891c75d0
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/libtdepim-desktops.pot
@@ -0,0 +1,49 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+msgid "Komposer"
+msgstr ""
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr ""
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr ""
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr ""
diff --git a/translations/desktop_files/libtdepim-desktops/lt.po b/translations/desktop_files/libtdepim-desktops/lt.po
new file mode 100644
index 00000000..94e5ceb0
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/lt.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer redaktorius"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer redaktorius"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer priedas"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer numatytasis redaktorius"
diff --git a/translations/desktop_files/libtdepim-desktops/ms.po b/translations/desktop_files/libtdepim-desktops/ms.po
new file mode 100644
index 00000000..06acf138
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/ms.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+msgid "Komposer"
+msgstr "Penggubah"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "Penggubah TDE"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+#, fuzzy
+msgid "komposer;"
+msgstr "Penggubah"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Editor Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Plugin Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Pengedit piawai Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/nb.po b/translations/desktop_files/libtdepim-desktops/nb.po
new file mode 100644
index 00000000..7ef136ce
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/nb.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer redigerer"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer redigerer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer-programtillegg"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer standard-redigerer"
diff --git a/translations/desktop_files/libtdepim-desktops/nds.po b/translations/desktop_files/libtdepim-desktops/nds.po
new file mode 100644
index 00000000..632716ad
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/nds.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer;"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "Nettbreef-Editor vun TDE"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "Komposer;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer-Editor"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer-Moduul"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer-Standardeditor"
diff --git a/translations/desktop_files/libtdepim-desktops/ne.po b/translations/desktop_files/libtdepim-desktops/ne.po
new file mode 100644
index 00000000..7079ebf0
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/ne.po
@@ -0,0 +1,49 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+msgid "Komposer"
+msgstr "कम्पोजर"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "केडीई कम्पोजर"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "कम्पोजर;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "कम्पोजर सम्पादक"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "कम्पोजर प्लगइन"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "कम्पोजरको पूर्वनिर्धारित सम्पादक"
diff --git a/translations/desktop_files/libtdepim-desktops/nl.po b/translations/desktop_files/libtdepim-desktops/nl.po
new file mode 100644
index 00000000..61be9272
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/nl.po
@@ -0,0 +1,52 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "komposer;opstellen;"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+#, fuzzy
+msgid "TDE Komposer"
+msgstr "komposer;opstellen;"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "komposer;opstellen;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer-editor"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+#, fuzzy
+msgid "Komposer Plugin"
+msgstr "Komposer-editor"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer standaardeditor"
diff --git a/translations/desktop_files/libtdepim-desktops/nn.po b/translations/desktop_files/libtdepim-desktops/nn.po
new file mode 100644
index 00000000..3fc50943
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/nn.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "komposer;tekstredigerar;epost;"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "TDE, tekstredigerar for e-post"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "komposer;tekstredigerar;epost;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer redigerar"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer-programtillegg"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer standard-redigeringsprogram"
diff --git a/translations/desktop_files/libtdepim-desktops/pl.po b/translations/desktop_files/libtdepim-desktops/pl.po
new file mode 100644
index 00000000..f78f884e
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/pl.po
@@ -0,0 +1,51 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer dla TDE"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "Komposer dla TDE"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+#, fuzzy
+msgid "komposer;"
+msgstr "Komposer dla TDE"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Edytor Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Wtyczka Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Domyślny edytor Komposera"
diff --git a/translations/desktop_files/libtdepim-desktops/pt.po b/translations/desktop_files/libtdepim-desktops/pt.po
new file mode 100644
index 00000000..f19cafbe
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/pt.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+msgid "Komposer"
+msgstr "Kompositor"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "Kompositor do TDE"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+#, fuzzy
+msgid "komposer;"
+msgstr "Kompositor"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Editor Kompositor"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "'Plugin' do Kompositor"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Editor predefinido Kompositor"
diff --git a/translations/desktop_files/libtdepim-desktops/pt_BR.po b/translations/desktop_files/libtdepim-desktops/pt_BR.po
new file mode 100644
index 00000000..db8af492
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/pt_BR.po
@@ -0,0 +1,51 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Konposer do TDE"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "Konposer do TDE"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+#, fuzzy
+msgid "komposer;"
+msgstr "Konposer do TDE"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Editor de Mensagens"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Plug-in do Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Editor padrão do Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/ro.po b/translations/desktop_files/libtdepim-desktops/ro.po
new file mode 100644
index 00000000..36eddfe5
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/ro.po
@@ -0,0 +1,51 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Modul Komposer"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+#, fuzzy
+msgid "Komposer Editor"
+msgstr "Modul Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Modul Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr ""
diff --git a/translations/desktop_files/libtdepim-desktops/ru.po b/translations/desktop_files/libtdepim-desktops/ru.po
new file mode 100644
index 00000000..5a4d0ede
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/ru.po
@@ -0,0 +1,51 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: 2024-04-14 11:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/libtdepim-desktop-files/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+msgid "Komposer"
+msgstr "Komposer"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "Композитор TDE"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "komposer;ноты;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Редактор Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Модуль Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Редактор Komposer по умолчанию"
diff --git a/translations/desktop_files/libtdepim-desktops/sk.po b/translations/desktop_files/libtdepim-desktops/sk.po
new file mode 100644
index 00000000..c69237cf
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/sk.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Editor Komposer"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Editor Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Modul Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Štandardný editor Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/sl.po b/translations/desktop_files/libtdepim-desktops/sl.po
new file mode 100644
index 00000000..c3b65a43
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/sl.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Urejevalnik Komposer"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Urejevalnik Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Vstavek za Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Privzeti urejevalnik Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/sr.po b/translations/desktop_files/libtdepim-desktops/sr.po
new file mode 100644
index 00000000..0e58d31d
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/sr.po
@@ -0,0 +1,51 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "komposer;састављач;"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+#, fuzzy
+msgid "TDE Komposer"
+msgstr "komposer;састављач;"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "komposer;састављач;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Уређивач Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Прикључак Komposer-а"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Подразумевани Komposer-ов уређивач"
diff --git a/translations/desktop_files/libtdepim-desktops/sr@Latn.po b/translations/desktop_files/libtdepim-desktops/sr@Latn.po
new file mode 100644
index 00000000..2111fef4
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/sr@Latn.po
@@ -0,0 +1,51 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "komposer;sastavljač;"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+#, fuzzy
+msgid "TDE Komposer"
+msgstr "komposer;sastavljač;"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "komposer;sastavljač;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Uređivač Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Priključak Komposer-a"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Podrazumevani Komposer-ov uređivač"
diff --git a/translations/desktop_files/libtdepim-desktops/sv.po b/translations/desktop_files/libtdepim-desktops/sv.po
new file mode 100644
index 00000000..e7c9ad0c
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/sv.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer editor"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer editor"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer-insticksprogram"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer standardeditor"
diff --git a/translations/desktop_files/libtdepim-desktops/ta.po b/translations/desktop_files/libtdepim-desktops/ta.po
new file mode 100644
index 00000000..10b99670
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/ta.po
@@ -0,0 +1,49 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+msgid "Komposer"
+msgstr "கம்போசர்"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "கேடிஇ கம்போசர்"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "கம்போசர்;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "கம்போசர் தொகுப்பான்"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "கம்போசர் சொருகுப்பொருள்"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "கம்போசர் முன்னிருப்பு தொகுப்பான்"
diff --git a/translations/desktop_files/libtdepim-desktops/tg.po b/translations/desktop_files/libtdepim-desktops/tg.po
new file mode 100644
index 00000000..7f9ae8d6
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/tg.po
@@ -0,0 +1,51 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "komposer;нотаҳо;"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "Композитори TDE"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "komposer;нотаҳо;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Муҳаррири Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Модули Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+#, fuzzy
+msgid "Komposer default editor"
+msgstr "Муҳаррири Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/tr.po b/translations/desktop_files/libtdepim-desktops/tr.po
new file mode 100644
index 00000000..aa3458e4
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/tr.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer Düzenleyicisi"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer Düzenleyicisi"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer Eklentisi"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Öntanımlı Komposer düzenleyicisi"
diff --git a/translations/desktop_files/libtdepim-desktops/uk.po b/translations/desktop_files/libtdepim-desktops/uk.po
new file mode 100644
index 00000000..a6c004ce
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/uk.po
@@ -0,0 +1,51 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: 2020-08-30 09:31+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/libtdepim-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+msgid "Komposer"
+msgstr "Komposer"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr "TDE Komposer"
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr "komposer;"
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Редактор Komposer"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Втулок Komposer"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Типовий редактор Komposer"
diff --git a/translations/desktop_files/libtdepim-desktops/zh_CN.po b/translations/desktop_files/libtdepim-desktops/zh_CN.po
new file mode 100644
index 00000000..f1afbc84
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/zh_CN.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer 编辑器"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer 编辑器"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer 插件"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer 默认编辑器"
diff --git a/translations/desktop_files/libtdepim-desktops/zh_TW.po b/translations/desktop_files/libtdepim-desktops/zh_TW.po
new file mode 100644
index 00000000..a57a3f5b
--- /dev/null
+++ b/translations/desktop_files/libtdepim-desktops/zh_TW.po
@@ -0,0 +1,50 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 14:35+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: komposer/core/komposerconfig.desktop:12
+#, fuzzy
+msgid "Komposer"
+msgstr "Komposer 編輯器"
+
+#. Comment
+#: komposer/core/komposerconfig.desktop:14
+msgid "TDE Komposer"
+msgstr ""
+
+#. Keywords
+#: komposer/core/komposerconfig.desktop:16
+msgid "komposer;"
+msgstr ""
+
+#. Comment
+#. Name
+#: komposer/core/komposereditor.desktop:6
+#: komposer/plugins/default/defaulteditor.desktop:20
+msgid "Komposer Editor"
+msgstr "Komposer 編輯器"
+
+#. Name
+#: komposer/core/komposerplugin.desktop:6
+msgid "Komposer Plugin"
+msgstr "Komposer 外掛程式"
+
+#. Comment
+#: komposer/plugins/default/defaulteditor.desktop:22
+msgid "Komposer default editor"
+msgstr "Komposer 預設編輯器"
diff --git a/translations/desktop_files/tdeabc-desktops/cs.po b/translations/desktop_files/tdeabc-desktops/cs.po
new file mode 100644
index 00000000..f85c7506
--- /dev/null
+++ b/translations/desktop_files/tdeabc-desktops/cs.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:04+0200\n"
+"PO-Revision-Date: 2020-09-20 18:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/tdeabc-desktop-files/cs/>\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: Weblate 4.2.2\n"
+
+#. Name
+#: tdeabcdistlistupdater/tdeabcdistlistupdater.desktop:2
+msgid "tdeabcdistlistupdater"
+msgstr "tdeabcdistlistupdater"
+
+#. Comment
+#: tdeabcdistlistupdater/tdeabcdistlistupdater.desktop:4
+msgid "Tool to update the old distribution lists to the new ones."
+msgstr "Nástroj pro aktualizaci starých distribučních seznamů na nové."
diff --git a/translations/desktop_files/tdeabc-desktops/it.po b/translations/desktop_files/tdeabc-desktops/it.po
new file mode 100644
index 00000000..82a8177d
--- /dev/null
+++ b/translations/desktop_files/tdeabc-desktops/it.po
@@ -0,0 +1,29 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:04+0200\n"
+"PO-Revision-Date: 2020-11-22 12:59+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/tdeabc-desktop-files/it/>\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: Weblate 4.3.2\n"
+
+#. Name
+#: tdeabcdistlistupdater/tdeabcdistlistupdater.desktop:2
+msgid "tdeabcdistlistupdater"
+msgstr "tdeabcdistlistupdater"
+
+#. Comment
+#: tdeabcdistlistupdater/tdeabcdistlistupdater.desktop:4
+msgid "Tool to update the old distribution lists to the new ones."
+msgstr ""
+"Strumento per aggiornare dalle vecchie liste di distribuzione a quelle nuove."
diff --git a/translations/desktop_files/tdeabc-desktops/pt.po b/translations/desktop_files/tdeabc-desktops/pt.po
new file mode 100644
index 00000000..18ed34be
--- /dev/null
+++ b/translations/desktop_files/tdeabc-desktops/pt.po
@@ -0,0 +1,25 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Hugo Carvalho <hugokarvalho@hotmail.com>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:04+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: tdeabcdistlistupdater/tdeabcdistlistupdater.desktop:2
+msgid "tdeabcdistlistupdater"
+msgstr ""
+
+#. Comment
+#: tdeabcdistlistupdater/tdeabcdistlistupdater.desktop:4
+msgid "Tool to update the old distribution lists to the new ones."
+msgstr ""
diff --git a/translations/desktop_files/tdeabc-desktops/ru.po b/translations/desktop_files/tdeabc-desktops/ru.po
new file mode 100644
index 00000000..432ca512
--- /dev/null
+++ b/translations/desktop_files/tdeabc-desktops/ru.po
@@ -0,0 +1,29 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:04+0200\n"
+"PO-Revision-Date: 2024-04-12 16:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/tdeabc-desktop-files/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Name
+#: tdeabcdistlistupdater/tdeabcdistlistupdater.desktop:2
+msgid "tdeabcdistlistupdater"
+msgstr "tdeabcdistlistupdater"
+
+#. Comment
+#: tdeabcdistlistupdater/tdeabcdistlistupdater.desktop:4
+msgid "Tool to update the old distribution lists to the new ones."
+msgstr "Средство для обновления старых списков рассылки на новые."
diff --git a/translations/desktop_files/tdeabc-desktops/tdeabc-desktops.pot b/translations/desktop_files/tdeabc-desktops/tdeabc-desktops.pot
new file mode 100644
index 00000000..a445fd1f
--- /dev/null
+++ b/translations/desktop_files/tdeabc-desktops/tdeabc-desktops.pot
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:04+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: tdeabcdistlistupdater/tdeabcdistlistupdater.desktop:2
+msgid "tdeabcdistlistupdater"
+msgstr ""
+
+#. Comment
+#: tdeabcdistlistupdater/tdeabcdistlistupdater.desktop:4
+msgid "Tool to update the old distribution lists to the new ones."
+msgstr ""
diff --git a/translations/desktop_files/tdeabc-desktops/uk.po b/translations/desktop_files/tdeabc-desktops/uk.po
new file mode 100644
index 00000000..6c6a46df
--- /dev/null
+++ b/translations/desktop_files/tdeabc-desktops/uk.po
@@ -0,0 +1,29 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:04+0200\n"
+"PO-Revision-Date: 2020-08-30 09:31+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/tdeabc-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: tdeabcdistlistupdater/tdeabcdistlistupdater.desktop:2
+msgid "tdeabcdistlistupdater"
+msgstr "tdeabcdistlistupdater"
+
+#. Comment
+#: tdeabcdistlistupdater/tdeabcdistlistupdater.desktop:4
+msgid "Tool to update the old distribution lists to the new ones."
+msgstr "Інструмент оновлення старих переліків розповсюдження до нових."
diff --git a/translations/desktop_files/tdefile-desktops/af.po b/translations/desktop_files/tdefile-desktops/af.po
new file mode 100644
index 00000000..21f1ab08
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/af.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS informasie"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS databasis informasie"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "E-pos informasie"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Vkaart Inligting"
diff --git a/translations/desktop_files/tdefile-desktops/be.po b/translations/desktop_files/tdefile-desktops/be.po
new file mode 100644
index 00000000..57065075
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/be.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Інфармацыя аб ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Інфармацыя аб базе дадзеных PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Інфармацыя аб паведамленні электроннай пошты"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Інфармацыя аб vCard"
diff --git a/translations/desktop_files/tdefile-desktops/bg.po b/translations/desktop_files/tdefile-desktops/bg.po
new file mode 100644
index 00000000..b1ed08f7
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/bg.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS информация"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Информация за БД на PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Информация за е-поща"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Информация за vCard"
diff --git a/translations/desktop_files/tdefile-desktops/br.po b/translations/desktop_files/tdefile-desktops/br.po
new file mode 100644
index 00000000..69d00140
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/br.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Titouroù ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Titouroù diwar-benn ar stlennvon PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Titouroù postel"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Titouroù diwar-benn vCard"
diff --git a/translations/desktop_files/tdefile-desktops/bs.po b/translations/desktop_files/tdefile-desktops/bs.po
new file mode 100644
index 00000000..0a1fbdfb
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/bs.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr ""
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Informacije o PalmOS bazi podataka"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr ""
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr ""
diff --git a/translations/desktop_files/tdefile-desktops/ca.po b/translations/desktop_files/tdefile-desktops/ca.po
new file mode 100644
index 00000000..6d8c77ad
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/ca.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Informació ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Informació de base de dades PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Informació de correu-e"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Informació de vCard"
diff --git a/translations/desktop_files/tdefile-desktops/cs.po b/translations/desktop_files/tdefile-desktops/cs.po
new file mode 100644
index 00000000..cdbf3415
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/cs.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/tdefile-desktop-files/cs/>\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: Weblate 4.8.1\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Informace o ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Informace o databázi PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Informace o emailu"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Informace o vizitce vCard"
diff --git a/translations/desktop_files/tdefile-desktops/cy.po b/translations/desktop_files/tdefile-desktops/cy.po
new file mode 100644
index 00000000..411ea516
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/cy.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr ""
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr ""
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Gwybodaeth Ebost"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Gwybodaeth vCard"
diff --git a/translations/desktop_files/tdefile-desktops/da.po b/translations/desktop_files/tdefile-desktops/da.po
new file mode 100644
index 00000000..46247ffc
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/da.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS-information"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS database-info"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "E-mail-info"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "VCard-info"
diff --git a/translations/desktop_files/tdefile-desktops/de.po b/translations/desktop_files/tdefile-desktops/de.po
new file mode 100644
index 00000000..26663159
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/de.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS-Information"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS Datenbank-Informationen"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "E-Mail-Info"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard-Info"
diff --git a/translations/desktop_files/tdefile-desktops/el.po b/translations/desktop_files/tdefile-desktops/el.po
new file mode 100644
index 00000000..d4f23908
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/el.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Πληροφορίες ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Πληροφορίες βάσης δεδομένων PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Πληροφορίες Email"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Πληροφορίες vCard"
diff --git a/translations/desktop_files/tdefile-desktops/eo.po b/translations/desktop_files/tdefile-desktops/eo.po
new file mode 100644
index 00000000..1f1324ab
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/eo.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS-Informo"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS-Datumbazinformo"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Retpoŝt-informo"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard-informo"
diff --git a/translations/desktop_files/tdefile-desktops/es.po b/translations/desktop_files/tdefile-desktops/es.po
new file mode 100644
index 00000000..ec9f4a0f
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/es.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Información ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Info. de la base de datos de PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Info de correo electrónico"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Info de vCard"
diff --git a/translations/desktop_files/tdefile-desktops/et.po b/translations/desktop_files/tdefile-desktops/et.po
new file mode 100644
index 00000000..2387026f
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/et.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS info"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS andmebaasi info"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Kirja info"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCardi info"
diff --git a/translations/desktop_files/tdefile-desktops/eu.po b/translations/desktop_files/tdefile-desktops/eu.po
new file mode 100644
index 00000000..148f00c5
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/eu.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS informazioa"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS datu-base informazioa"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "E-posta informazioa"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard informazioa"
diff --git a/translations/desktop_files/tdefile-desktops/fa.po b/translations/desktop_files/tdefile-desktops/fa.po
new file mode 100644
index 00000000..3751dae7
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/fa.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "اطلاعات ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "اطلاعات دادگان PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "اطلاعات رایانامه"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "اطلاعات vCard"
diff --git a/translations/desktop_files/tdefile-desktops/fi.po b/translations/desktop_files/tdefile-desktops/fi.po
new file mode 100644
index 00000000..f5bb3e0f
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/fi.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS-tiedot"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS-tietokannan tiedot"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Sähköpostitiedot"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard-tiedot"
diff --git a/translations/desktop_files/tdefile-desktops/fr.po b/translations/desktop_files/tdefile-desktops/fr.po
new file mode 100644
index 00000000..e4040c1b
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/fr.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Information sur ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Informations sur les bases de données PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Informations sur le courrier électronique"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Informations vCard"
diff --git a/translations/desktop_files/tdefile-desktops/fy.po b/translations/desktop_files/tdefile-desktops/fy.po
new file mode 100644
index 00000000..bbff310e
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/fy.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS-ynformaasje"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS-database ynformaasje"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "E-port-ynformaasje"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard-ynformaasje"
diff --git a/translations/desktop_files/tdefile-desktops/ga.po b/translations/desktop_files/tdefile-desktops/ga.po
new file mode 100644
index 00000000..f7492919
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/ga.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr ""
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Eolas faoin Bhunachar Sonraí PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr ""
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr ""
diff --git a/translations/desktop_files/tdefile-desktops/gl.po b/translations/desktop_files/tdefile-desktops/gl.po
new file mode 100644
index 00000000..d5640d30
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/gl.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Información ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Información de Base de Datos de PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Información de Correo-e"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Información de vCard"
diff --git a/translations/desktop_files/tdefile-desktops/he.po b/translations/desktop_files/tdefile-desktops/he.po
new file mode 100644
index 00000000..64d4fd05
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/he.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "מידע של ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "מידע אודות בסיס הנתונים של PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "מידע על דוא\"ל"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "מידע vCard"
diff --git a/translations/desktop_files/tdefile-desktops/hi.po b/translations/desktop_files/tdefile-desktops/hi.po
new file mode 100644
index 00000000..5cdf44f4
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/hi.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr ""
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr ""
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "ई-मेल जानकारी"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "वी-कार्ड जानकारी"
diff --git a/translations/desktop_files/tdefile-desktops/hr.po b/translations/desktop_files/tdefile-desktops/hr.po
new file mode 100644
index 00000000..e0291855
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/hr.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr ""
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr ""
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Email Informacije"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+#, fuzzy
+msgid "vCard Info"
+msgstr "Email Informacije"
diff --git a/translations/desktop_files/tdefile-desktops/hu.po b/translations/desktop_files/tdefile-desktops/hu.po
new file mode 100644
index 00000000..7faa1775
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/hu.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS-jellemzők"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS adatbázis-jellemzők"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "E-mail-jellemzők"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "VCard-jellemzők"
diff --git a/translations/desktop_files/tdefile-desktops/is.po b/translations/desktop_files/tdefile-desktops/is.po
new file mode 100644
index 00000000..3440adfe
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/is.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS upplýsingar"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS gagnagrunnsupplýsingar"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Tölvupóst upplýsingar"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard upplýsingar"
diff --git a/translations/desktop_files/tdefile-desktops/it.po b/translations/desktop_files/tdefile-desktops/it.po
new file mode 100644
index 00000000..4d4079d1
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/it.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Informazioni ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Informazioni database PalmOs"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Informazioni di posta elettronica"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Informazioni vCard"
diff --git a/translations/desktop_files/tdefile-desktops/ja.po b/translations/desktop_files/tdefile-desktops/ja.po
new file mode 100644
index 00000000..8e218239
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/ja.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS 情報"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS データベース 情報"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Eメール 情報"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard 情報"
diff --git a/translations/desktop_files/tdefile-desktops/kk.po b/translations/desktop_files/tdefile-desktops/kk.po
new file mode 100644
index 00000000..86df5250
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/kk.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS ақпараты"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS деректер қорының мәліметі"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Эл.пошта мәліметі"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard мәліметі"
diff --git a/translations/desktop_files/tdefile-desktops/km.po b/translations/desktop_files/tdefile-desktops/km.po
new file mode 100644
index 00000000..a05ddd4a
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/km.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ព័ត៌មាន ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "ព័ត៌មាន​មូលដ្ឋាន​ទិន្នន័យ PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "ព័ត៌មាន​អ៊ីមែល"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "ព័ត៌មាន vCard"
diff --git a/translations/desktop_files/tdefile-desktops/lt.po b/translations/desktop_files/tdefile-desktops/lt.po
new file mode 100644
index 00000000..b668c626
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/lt.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS informacija"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS duomenų bazės info"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "E. pašto info"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard informacija"
diff --git a/translations/desktop_files/tdefile-desktops/mk.po b/translations/desktop_files/tdefile-desktops/mk.po
new file mode 100644
index 00000000..0778bbe8
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/mk.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Информација за ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Информации за PalmOS-база на податоци"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Информации за е-пошта"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Информации за vCard"
diff --git a/translations/desktop_files/tdefile-desktops/ms.po b/translations/desktop_files/tdefile-desktops/ms.po
new file mode 100644
index 00000000..888a950a
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/ms.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Maklumat ICS "
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Maklumat Pangkalan Data PalmOS "
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Info Emel"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Info vCard"
diff --git a/translations/desktop_files/tdefile-desktops/mt.po b/translations/desktop_files/tdefile-desktops/mt.po
new file mode 100644
index 00000000..b99d55e0
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/mt.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr ""
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr ""
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+#, fuzzy
+msgid "Email Info"
+msgstr "Informazzjoni vCard"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Informazzjoni vCard"
diff --git a/translations/desktop_files/tdefile-desktops/nb.po b/translations/desktop_files/tdefile-desktops/nb.po
new file mode 100644
index 00000000..6139f6f4
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/nb.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS-informasjon"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS Database info"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "E-post-info"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard info"
diff --git a/translations/desktop_files/tdefile-desktops/nds.po b/translations/desktop_files/tdefile-desktops/nds.po
new file mode 100644
index 00000000..4bed66c5
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/nds.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS-Informatschoon"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS-Datenbank-Informatschonen"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Nettbreef-Informatschonen"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard-Informatschonen"
diff --git a/translations/desktop_files/tdefile-desktops/ne.po b/translations/desktop_files/tdefile-desktops/ne.po
new file mode 100644
index 00000000..c31de094
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/ne.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS सूचना"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS डाटाबेस सूचना"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "इमेल सूचना"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "भी कार्ड सुचना"
diff --git a/translations/desktop_files/tdefile-desktops/nl.po b/translations/desktop_files/tdefile-desktops/nl.po
new file mode 100644
index 00000000..6f2db76d
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/nl.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS-informatie"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS-database informatie"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "E-mail-informatie"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard-informatie"
diff --git a/translations/desktop_files/tdefile-desktops/nn.po b/translations/desktop_files/tdefile-desktops/nn.po
new file mode 100644
index 00000000..bd189cd8
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/nn.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS-informasjon"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS-databaseinfo"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Epost-info"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard-info"
diff --git a/translations/desktop_files/tdefile-desktops/nso.po b/translations/desktop_files/tdefile-desktops/nso.po
new file mode 100644
index 00000000..b11b4339
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/nso.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nso\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr ""
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr ""
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+#, fuzzy
+msgid "Email Info"
+msgstr "Tshedimoso ya vKarata"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Tshedimoso ya vKarata"
diff --git a/translations/desktop_files/tdefile-desktops/pa.po b/translations/desktop_files/tdefile-desktops/pa.po
new file mode 100644
index 00000000..40acc44f
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/pa.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS ਜਾਣਕਾਰੀ"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr ""
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "ਈ-ਪੱਤਰ ਜਾਣਕਾਰੀ"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard ਜਾਣਕਾਰੀ"
diff --git a/translations/desktop_files/tdefile-desktops/pl.po b/translations/desktop_files/tdefile-desktops/pl.po
new file mode 100644
index 00000000..6b7c42ff
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/pl.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Informacja ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Baza danych PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Informacja o e-mailu"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Informacja vCard"
diff --git a/translations/desktop_files/tdefile-desktops/pt.po b/translations/desktop_files/tdefile-desktops/pt.po
new file mode 100644
index 00000000..f4bf8b07
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/pt.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Informação ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Informações de Base de Dados PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Informação do E-Mail"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Informação do vCard"
diff --git a/translations/desktop_files/tdefile-desktops/pt_BR.po b/translations/desktop_files/tdefile-desktops/pt_BR.po
new file mode 100644
index 00000000..ecc5b4e7
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/pt_BR.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Informações ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Informações da Base de Dados do PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Informações sobre E-mail"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Informações sobre vCard"
diff --git a/translations/desktop_files/tdefile-desktops/ro.po b/translations/desktop_files/tdefile-desktops/ro.po
new file mode 100644
index 00000000..3a81956c
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/ro.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr ""
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr ""
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Informaţii e-mail"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Informaţii vCard"
diff --git a/translations/desktop_files/tdefile-desktops/ru.po b/translations/desktop_files/tdefile-desktops/ru.po
new file mode 100644
index 00000000..5fd9b9b9
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/ru.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Информация ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Сведения о базе данных PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Сведения об электронной почте"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Сведения о визитке vCard"
diff --git a/translations/desktop_files/tdefile-desktops/se.po b/translations/desktop_files/tdefile-desktops/se.po
new file mode 100644
index 00000000..6dec7799
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/se.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: se\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr ""
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS-diehtovuođđodieđut"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "E-boastadieđut"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard-dieđut"
diff --git a/translations/desktop_files/tdefile-desktops/sk.po b/translations/desktop_files/tdefile-desktops/sk.po
new file mode 100644
index 00000000..603092ba
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/sk.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Informácie o ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Informácie o databázach PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Informácie o emaily"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+#, fuzzy
+msgid "vCard Info"
+msgstr "Informácie o emaily"
diff --git a/translations/desktop_files/tdefile-desktops/sl.po b/translations/desktop_files/tdefile-desktops/sl.po
new file mode 100644
index 00000000..4a24f63b
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/sl.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Podatki ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Informacije zbirke podatkov za PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Informacije o e-pošti"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Informacije o vCard"
diff --git a/translations/desktop_files/tdefile-desktops/sr.po b/translations/desktop_files/tdefile-desktops/sr.po
new file mode 100644
index 00000000..0c8ec746
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/sr.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS информације"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Информације о PalmOS базама података"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Е-поштанске информације"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard информације"
diff --git a/translations/desktop_files/tdefile-desktops/sr@Latn.po b/translations/desktop_files/tdefile-desktops/sr@Latn.po
new file mode 100644
index 00000000..5552a8be
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/sr@Latn.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS informacije"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Informacije o PalmOS bazama podataka"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "E-poštanske informacije"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard informacije"
diff --git a/translations/desktop_files/tdefile-desktops/sv.po b/translations/desktop_files/tdefile-desktops/sv.po
new file mode 100644
index 00000000..e113257f
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/sv.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS-information"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS-databasinformation"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "E-postinformation"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard-information"
diff --git a/translations/desktop_files/tdefile-desktops/ta.po b/translations/desktop_files/tdefile-desktops/ta.po
new file mode 100644
index 00000000..35894089
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/ta.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS தகவல்"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "பால்ம்OS தரவுத்தள தகவல்"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "மின்னஞ்சல் தகவல்"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "விஅட்டை தகவல்"
diff --git a/translations/desktop_files/tdefile-desktops/tdefile-desktops.pot b/translations/desktop_files/tdefile-desktops/tdefile-desktops.pot
new file mode 100644
index 00000000..2ea2ed4d
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/tdefile-desktops.pot
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr ""
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr ""
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr ""
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr ""
diff --git a/translations/desktop_files/tdefile-desktops/tg.po b/translations/desktop_files/tdefile-desktops/tg.po
new file mode 100644
index 00000000..035e98ae
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/tg.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr ""
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Иттилоот дар бораи бонки додаҳои PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Иттилоот дар бораи почтаи электронӣ"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Иттилоот дар бораи визиткаи vCard"
diff --git a/translations/desktop_files/tdefile-desktops/tr.po b/translations/desktop_files/tdefile-desktops/tr.po
new file mode 100644
index 00000000..f98736c4
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/tr.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS bilgisi"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS Veritabanı Bilgisi"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "E-Posta Bilgisi"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "VCard Bilgisi"
diff --git a/translations/desktop_files/tdefile-desktops/uk.po b/translations/desktop_files/tdefile-desktops/uk.po
new file mode 100644
index 00000000..f5a728e6
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/uk.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "Інформація про ICS"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "Інформація про базу даних PalmOS"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "Інформація про повідомлення ел. пошти"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Інформація про vCard"
diff --git a/translations/desktop_files/tdefile-desktops/ven.po b/translations/desktop_files/tdefile-desktops/ven.po
new file mode 100644
index 00000000..18081e36
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/ven.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ven\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr ""
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr ""
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+#, fuzzy
+msgid "Email Info"
+msgstr "Mafhungo a vCard"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Mafhungo a vCard"
diff --git a/translations/desktop_files/tdefile-desktops/xh.po b/translations/desktop_files/tdefile-desktops/xh.po
new file mode 100644
index 00000000..a15cc27a
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/xh.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: xh\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr ""
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr ""
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+#, fuzzy
+msgid "Email Info"
+msgstr "Inkcukacha ye vCard"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Inkcukacha ye vCard"
diff --git a/translations/desktop_files/tdefile-desktops/zh_CN.po b/translations/desktop_files/tdefile-desktops/zh_CN.po
new file mode 100644
index 00000000..3813cd4b
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/zh_CN.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS 信息"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS 数据库信息"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "电子邮件信息"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard 信息"
diff --git a/translations/desktop_files/tdefile-desktops/zh_TW.po b/translations/desktop_files/tdefile-desktops/zh_TW.po
new file mode 100644
index 00000000..662ff6f5
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/zh_TW.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr "ICS 資訊"
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr "PalmOS 資料庫資訊"
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+msgid "Email Info"
+msgstr "電子郵件資訊"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "vCard 資訊"
diff --git a/translations/desktop_files/tdefile-desktops/zu.po b/translations/desktop_files/tdefile-desktops/zu.po
new file mode 100644
index 00000000..dc3851c6
--- /dev/null
+++ b/translations/desktop_files/tdefile-desktops/zu.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:16+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: ics/tdefile_ics.desktop:2
+msgid "ICS information"
+msgstr ""
+
+#. Name
+#: palm-databases/tdefile_palm.desktop:2
+msgid "PalmOS Database Info"
+msgstr ""
+
+#. Name
+#: rfc822/tdefile_rfc822.desktop:2
+#, fuzzy
+msgid "Email Info"
+msgstr "Ulwazi lwe-vCard"
+
+#. Name
+#: vcf/tdefile_vcf.desktop:2
+msgid "vCard Info"
+msgstr "Ulwazi lwe-vCard"
diff --git a/translations/desktop_files/tdeioslave-desktops/af.po b/translations/desktop_files/tdeioslave-desktops/af.po
new file mode 100644
index 00000000..a3179243
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/af.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "'n <i>IOSlave</i> vir die Sieve e-pos filter protokol"
diff --git a/translations/desktop_files/tdeioslave-desktops/ca.po b/translations/desktop_files/tdeioslave-desktops/ca.po
new file mode 100644
index 00000000..92f9c039
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/ca.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Un ioslave pel protocol de filtrar de correu Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/cs.po b/translations/desktop_files/tdeioslave-desktops/cs.po
new file mode 100644
index 00000000..8e9cc632
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/cs.po
@@ -0,0 +1,23 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/tdeioslave-desktop-files/cs/>\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: Weblate 4.8.1\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Pomocný protokol pro filtrování zpráv Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/da.po b/translations/desktop_files/tdeioslave-desktops/da.po
new file mode 100644
index 00000000..8e6c1b5d
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/da.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "En ioslave for Sieve mail filtreringsprotokollen"
diff --git a/translations/desktop_files/tdeioslave-desktops/de.po b/translations/desktop_files/tdeioslave-desktops/de.po
new file mode 100644
index 00000000..abad504e
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/de.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Ein-/Ausgabemodul für das E-Mail-Filterprotokoll \"Sieve\""
diff --git a/translations/desktop_files/tdeioslave-desktops/el.po b/translations/desktop_files/tdeioslave-desktops/el.po
new file mode 100644
index 00000000..a04d61b2
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/el.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Ένας ioslave για το πρωτόκολλο φιλτραρίσματος αλληλογραφίας Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/es.po b/translations/desktop_files/tdeioslave-desktops/es.po
new file mode 100644
index 00000000..f83ec4c0
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/es.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Un ioslave para el protocolo de filtrado de correo Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/et.po b/translations/desktop_files/tdeioslave-desktops/et.po
new file mode 100644
index 00000000..ca7ee321
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/et.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Sieve e-kirjade filtreerimise protokolli IO-moodul"
diff --git a/translations/desktop_files/tdeioslave-desktops/eu.po b/translations/desktop_files/tdeioslave-desktops/eu.po
new file mode 100644
index 00000000..2c0dc92d
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/eu.po
@@ -0,0 +1,23 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr ""
+"Sieve posta iragazketa protokoloarentztko irteerako/sarrerako mendeko bat"
diff --git a/translations/desktop_files/tdeioslave-desktops/fa.po b/translations/desktop_files/tdeioslave-desktops/fa.po
new file mode 100644
index 00000000..f0fcc193
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/fa.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "یک ioslave برای قرارداد پالایش نامۀ Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/fi.po b/translations/desktop_files/tdeioslave-desktops/fi.po
new file mode 100644
index 00000000..21383bcd
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/fi.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Siirräntätyöskentelijä Sieve-sähköpostiensuodatusyhteyskäytännölle"
diff --git a/translations/desktop_files/tdeioslave-desktops/fr.po b/translations/desktop_files/tdeioslave-desktops/fr.po
new file mode 100644
index 00000000..ca063394
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/fr.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Un ioslave pour le protocole de filtrage de messagerie Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/fy.po b/translations/desktop_files/tdeioslave-desktops/fy.po
new file mode 100644
index 00000000..533dbda9
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/fy.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "In ioslave foar it Sieve-mailfilterprotokol"
diff --git a/translations/desktop_files/tdeioslave-desktops/gl.po b/translations/desktop_files/tdeioslave-desktops/gl.po
new file mode 100644
index 00000000..2fb81c53
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/gl.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Un esclavo io para o protocolo de filtraxe de correo Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/hu.po b/translations/desktop_files/tdeioslave-desktops/hu.po
new file mode 100644
index 00000000..7ccd833d
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/hu.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "TDE-protokoll a Sieve levélszűrő protokollhoz"
diff --git a/translations/desktop_files/tdeioslave-desktops/is.po b/translations/desktop_files/tdeioslave-desktops/is.po
new file mode 100644
index 00000000..bb7d38be
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/is.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Ioslave fyrir Sieve tölvupóstsíu samskiptaregluna"
diff --git a/translations/desktop_files/tdeioslave-desktops/it.po b/translations/desktop_files/tdeioslave-desktops/it.po
new file mode 100644
index 00000000..9669ca59
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/it.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Un ioslave per il protocollo di filtraggio posta Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/ja.po b/translations/desktop_files/tdeioslave-desktops/ja.po
new file mode 100644
index 00000000..e77c7322
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/ja.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Sieve メールフィルタプロトコル用 ioslave"
diff --git a/translations/desktop_files/tdeioslave-desktops/kk.po b/translations/desktop_files/tdeioslave-desktops/kk.po
new file mode 100644
index 00000000..ca684453
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/kk.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Sieve поштаны сүзгілеу протоколының ioslave модулі"
diff --git a/translations/desktop_files/tdeioslave-desktops/km.po b/translations/desktop_files/tdeioslave-desktops/km.po
new file mode 100644
index 00000000..ed3a3041
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/km.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "ioslave សម្រាប់​ពិធីការ​ត្រង​សំបុត្រ Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/ms.po b/translations/desktop_files/tdeioslave-desktops/ms.po
new file mode 100644
index 00000000..0ac74492
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/ms.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Hamba io untuk protokol tapisan mel saringan "
diff --git a/translations/desktop_files/tdeioslave-desktops/nb.po b/translations/desktop_files/tdeioslave-desktops/nb.po
new file mode 100644
index 00000000..8fcf7a47
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/nb.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "En i/u-slave for e-postfilterprotokollen Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/nds.po b/translations/desktop_files/tdeioslave-desktops/nds.po
new file mode 100644
index 00000000..e110c67d
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/nds.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "In-/Utgaavmoduul för't Nettpostfilter-Protokoll Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/ne.po b/translations/desktop_files/tdeioslave-desktops/ne.po
new file mode 100644
index 00000000..cba0b235
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/ne.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "मेल फिल्टरिङ प्रोटोकल सिभ गर्नका लागि एउटा आइओस्लेभ"
diff --git a/translations/desktop_files/tdeioslave-desktops/nl.po b/translations/desktop_files/tdeioslave-desktops/nl.po
new file mode 100644
index 00000000..4a9e64f0
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/nl.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Een ioslave voor het Sieve-mailfilterprotocol"
diff --git a/translations/desktop_files/tdeioslave-desktops/nn.po b/translations/desktop_files/tdeioslave-desktops/nn.po
new file mode 100644
index 00000000..e05b62a4
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/nn.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Ein i/u-slave for e-postfilterprotokollen Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/pl.po b/translations/desktop_files/tdeioslave-desktops/pl.po
new file mode 100644
index 00000000..ef97a841
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/pl.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Wtyczka protokołu filtrowania poczty Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/pt.po b/translations/desktop_files/tdeioslave-desktops/pt.po
new file mode 100644
index 00000000..c01309cf
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/pt.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Um 'ioslave' para o protocolo de filtragem de correio Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/pt_BR.po b/translations/desktop_files/tdeioslave-desktops/pt_BR.po
new file mode 100644
index 00000000..e4b0eec1
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/pt_BR.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Um IO-Slave para o protocolo de filtragem de email Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/ru.po b/translations/desktop_files/tdeioslave-desktops/ru.po
new file mode 100644
index 00000000..e94ea5eb
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/ru.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Канал протокола фильтра почты Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/sk.po b/translations/desktop_files/tdeioslave-desktops/sk.po
new file mode 100644
index 00000000..f51e110d
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/sk.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "ioslave pre protokol Sieve filtrovanie pošty"
diff --git a/translations/desktop_files/tdeioslave-desktops/sl.po b/translations/desktop_files/tdeioslave-desktops/sl.po
new file mode 100644
index 00000000..ec3c4ea8
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/sl.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "ioslave za protokol poštnega filtriranja Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/sr.po b/translations/desktop_files/tdeioslave-desktops/sr.po
new file mode 100644
index 00000000..3cb55c30
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/sr.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "IOslave протокола за филтрирање поште Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/sr@Latn.po b/translations/desktop_files/tdeioslave-desktops/sr@Latn.po
new file mode 100644
index 00000000..7a1910e4
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/sr@Latn.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "IOslave protokola za filtriranje pošte Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/sv.po b/translations/desktop_files/tdeioslave-desktops/sv.po
new file mode 100644
index 00000000..71af07ad
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/sv.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "En I/O-slav för brevfiltreringsprotokollet Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/ta.po b/translations/desktop_files/tdeioslave-desktops/ta.po
new file mode 100644
index 00000000..acf2f7b7
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/ta.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Sieve அஞ்சல் வடிகட்டும் நெறிமுறைக்கான ஒரு ioslave"
diff --git a/translations/desktop_files/tdeioslave-desktops/tdeioslave-desktops.pot b/translations/desktop_files/tdeioslave-desktops/tdeioslave-desktops.pot
new file mode 100644
index 00000000..92351109
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/tdeioslave-desktops.pot
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr ""
diff --git a/translations/desktop_files/tdeioslave-desktops/tr.po b/translations/desktop_files/tdeioslave-desktops/tr.po
new file mode 100644
index 00000000..d09ec259
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/tr.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Sieve e-posta filtreleme protokolü için bir ioslave"
diff --git a/translations/desktop_files/tdeioslave-desktops/uk.po b/translations/desktop_files/tdeioslave-desktops/uk.po
new file mode 100644
index 00000000..85b053c4
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/uk.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "Підлеглий В/В для протоколу фільтрування пошти Sieve"
diff --git a/translations/desktop_files/tdeioslave-desktops/zh_CN.po b/translations/desktop_files/tdeioslave-desktops/zh_CN.po
new file mode 100644
index 00000000..13a5265c
--- /dev/null
+++ b/translations/desktop_files/tdeioslave-desktops/zh_CN.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-07-12 15:12+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: sieve/sieve.protocol:15
+msgid "An ioslave for the Sieve mail filtering protocol"
+msgstr "邮件过滤协议仆人"
diff --git a/translations/desktop_files/tderesources-desktops/af.po b/translations/desktop_files/tderesources-desktops/af.po
new file mode 100644
index 00000000..93a28119
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/af.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: af\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Verjaarsdae uit KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Joernale as Blogs op 'n bediener"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV bediener (bv. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV bediener (bv. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware Bediener (via XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 Bediener"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 Bediener (nie verder ondersteun)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML eienskappe plan"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV bediener (bv. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Groupware bediener"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise bediener"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalender op IMAP bediener via KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP bediener via KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Adresboek op IMAP bediener via KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalender op 'n Exchange bediener (eksperimenteel)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalender op 'n Exchange bediener"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Adresboek op 'n Exchange bediener (eksperimenteel)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Adresboek op 'n Exchange bediener"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalender in 'n afgeleë lêer"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalender op IMAP bediener via KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Kalender op IMAP bediener via KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Adresboek op IMAP bediener via KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange bediener"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SuSE Linux OpenExchange bediener"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "TV skedules"
diff --git a/translations/desktop_files/tderesources-desktops/ar.po b/translations/desktop_files/tderesources-desktops/ar.po
new file mode 100644
index 00000000..24663e7e
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/ar.po
@@ -0,0 +1,145 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ar\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "تواريخ الميلد من KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr ""
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr ""
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr ""
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+#, fuzzy
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "خادم البرمجيات الجماعية"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr ""
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr ""
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr ""
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "خادم البرمجيات الجماعية"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+#, fuzzy
+msgid "Novell GroupWise Server"
+msgstr "خادم البرمجيات الجماعية"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr ""
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr ""
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr ""
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr ""
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "جداول التلفزة"
diff --git a/translations/desktop_files/tderesources-desktops/be.po b/translations/desktop_files/tderesources-desktops/be.po
new file mode 100644
index 00000000..909c8d14
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/be.po
@@ -0,0 +1,147 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Дні нараджэння з K Адраснай кнігі"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr ""
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr ""
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr ""
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr ""
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Сэрвэр Exchange 2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+#, fuzzy
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Сэрвэр Exchange 2000"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr ""
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr ""
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr ""
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+#, fuzzy
+msgid "Calendar on an Exchange Server"
+msgstr "Сэрвэр Exchange 2000"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr ""
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr ""
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+#, fuzzy
+msgid "OpenXchange Server"
+msgstr "Сэрвэр Exchange 2000"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+#, fuzzy
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Сэрвэр Exchange 2000"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr ""
diff --git a/translations/desktop_files/tderesources-desktops/bg.po b/translations/desktop_files/tderesources-desktops/bg.po
new file mode 100644
index 00000000..52808cb1
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/bg.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Рождени дни от адресника"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Дневници и блогове"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Сървър CalDAV (e.g. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Сървър CardDAV (e.g. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Сървър eGroupware (чрез XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Сървър Exchange 2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Сървър Exchange 2000 (остаряло)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Сървър GroupDAV (e.g. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Сървър Groupware"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Сървър Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Календар на сървър IMAP през KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Сървър IMAP през KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Адресник на сървър IMAP през KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Календар на сървър Exchange (експериментално)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Календар на сървър Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Адресник на сървър Exchange (експериментално)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Адресник на сървър Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Календар в отдалечен файл"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Календар на сървъра Scalix през KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Бележки на сървъра Scalix през KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Адресник на сървъра Scalix през KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Сървър OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Сървър SUSE LINUX Openexchange"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Разписание на ТВ"
diff --git a/translations/desktop_files/tderesources-desktops/br.po b/translations/desktop_files/tderesources-desktops/br.po
new file mode 100644
index 00000000..52cd5d8f
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/br.po
@@ -0,0 +1,149 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: br\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Deizioù-ha-bloazioù eus KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr ""
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Servijer CalDAV (e.g. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Servijer CardDAV (e.g. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Servijer eGroupware (gant XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Servijer Exchange 2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+#, fuzzy
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Servijer Exchange 2000"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Servijer GroupDAV (e.g. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Servijer strollant"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Servijer Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Deiziadur en ur servijer IMAP gant KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Servijer IMAP gant KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Karned chomlec'hioù war ur servijer IMAP gant KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+#, fuzzy
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Deiziadur en ur servijer Exchange"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Deiziadur en ur servijer Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+#, fuzzy
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Karned chomlec'hioù war ur servijer Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Karned chomlec'hioù war ur servijer Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Deiziadur e restr a-bell"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Deiziadur en ur servijer IMAP gant KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Deiziadur en ur servijer IMAP gant KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Karned chomlec'hioù war ur servijer IMAP gant KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Servijer OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Servijer Openexchange SUSE LINUX"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr ""
diff --git a/translations/desktop_files/tderesources-desktops/bs.po b/translations/desktop_files/tderesources-desktops/bs.po
new file mode 100644
index 00000000..58897a49
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/bs.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Rođendani iz KAddressBook adresara"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr ""
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr ""
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr ""
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr ""
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr ""
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr ""
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr ""
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr ""
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr ""
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr ""
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalendar u udaljenoj datoteci"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr ""
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr ""
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr ""
diff --git a/translations/desktop_files/tderesources-desktops/ca.po b/translations/desktop_files/tderesources-desktops/ca.po
new file mode 100644
index 00000000..36881467
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/ca.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Aniversaris des de KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Diaris com a blocs en un servidor"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Servidor CalDAV (p.ex. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Servidor CardDAV (p.ex. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Servidor eGroupware (via XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Servidor Exchange 2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Servidor Exchange 2000 (desaconsellat)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "Pla de característiques XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Servidor GroupDAV (p.ex. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Servidor Groupware"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Servidor Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Calendari sobre servidor IMAP mitjançant KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Servidor IMAP mitjançant KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Llibreta d'adreces sobre servidor IMAP mitjançant KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Calendari a un servidor Exchange (experimental)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Calendari a un servidor Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Llibreta d'adreces a un servidor Exchange (experimental)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Llibreta d'adreces a un servidor Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Calendari a un fitxer remot"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Calendari en un servidor Scalix mitjançant el KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Notes en un servidor Scalix mitjançant el KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Llibreta d'adreces en un servidor Scalix mitjançant el KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Servidor OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Servidor SUSE LINUX Openexchange"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Programació de la TV"
diff --git a/translations/desktop_files/tderesources-desktops/cs.po b/translations/desktop_files/tderesources-desktops/cs.po
new file mode 100644
index 00000000..9dd0030e
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/cs.po
@@ -0,0 +1,144 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Slávek Banko <slavek.banko@axis.cz>, 2020, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: 2021-09-13 23:30+0000\n"
+"Last-Translator: Slávek Banko <slavek.banko@axis.cz>\n"
+"Language-Team: Czech <https://mirror.git.trinitydesktop.org/weblate/projects/"
+"tdepim/tdepimresources-desktop-files/cs/>\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: Weblate 4.8.1\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Narozeniny z Knihy adres"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Deníky jako blogy na serveru"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Server CalDAV (např. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Server CardDAV (např. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Server eGroupware (přes XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Server Exchange 2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Server Exchange 2000 (zastaralé)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML plán vlastností"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Server GroupDAV (např. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Groupware server"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Server Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalendář na IMAP serveru přes KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP server přes KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Kniha adres na IMAP serveru přes KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalendář na serveru Exchange (experimentální)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalendář na serveru Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Kniha adres na serveru Exchange (experimentální)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Kniha adres na serveru Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalendář ve vzdáleném souboru"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalendář na serveru Scalix přes KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Poznámky na serveru Scalix přes KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Kniha adres na serveru Scalix přes KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Server OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Server SUSE LINUX Openexchange"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "TV programy"
diff --git a/translations/desktop_files/tderesources-desktops/cy.po b/translations/desktop_files/tderesources-desktops/cy.po
new file mode 100644
index 00000000..414eaa3e
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/cy.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: cy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Penblwyddi o KLlyfrCyfeiriadau"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr ""
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr ""
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr ""
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr ""
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr ""
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr ""
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr ""
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr ""
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr ""
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr ""
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Calendr mewn Ffeil Pell"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr ""
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr ""
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr ""
diff --git a/translations/desktop_files/tderesources-desktops/da.po b/translations/desktop_files/tderesources-desktops/da.po
new file mode 100644
index 00000000..48005b4c
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/da.po
@@ -0,0 +1,144 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Fødselsdage fra KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Journaler som www-blogger på en server"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV-server (f.eks. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV-server (f.eks. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware server (via XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 server"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 server (forældet)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML Funktionsplan"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV-server (f.eks. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+#, fuzzy
+msgid "Groupware Server"
+msgstr "eGroupware server (via XML-RPC)"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise server"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalender på IMAP-server via KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP-server via KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Adressebog på IMAP-server via KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalender på en Exchange-server (eksperimentel)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalender på en Exchange-server"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Adressebog på en Exchange-server (eksperimentel)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Adressebog på en Exchange-server"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalender i ekstern fil"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalender på Scalix-server via KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Noter på Scalix-server via KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Adressebog på Scalix-server via KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Openxchange-server"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE Linux Openexchange-server"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Tv-oversigt"
diff --git a/translations/desktop_files/tderesources-desktops/de.po b/translations/desktop_files/tderesources-desktops/de.po
new file mode 100644
index 00000000..e46057dc
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/de.po
@@ -0,0 +1,145 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Geburtstage aus dem Adressbuch"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Journaleinträge als Blogs auf einem Server"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV-Server (z. B. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV-Server (z. B. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr ""
+
+#. Name
+#: exchange/exchange.desktop:2
+#, fuzzy
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 Server (veraltet)"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 Server (veraltet)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV-Server (z. B. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr ""
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr ""
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalender auf einem IMAP-Server via KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP-Server via KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Adressbuch auf einem IMAP-Server via KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalender auf einem Exchange-Server (experimentell)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalender auf einem Exchange-Server"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Adressbuch auf einem Exchange-Server (experimentell)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Adressbuch auf einem Exchange-Server"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalender in Datei auf Fremdrechner"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalender auf einem Scalix-Server via KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Notizen auf einem Scalix-Server via KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Adressbuch auf einem Scalix-Server via KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+#, fuzzy
+msgid "OpenXchange Server"
+msgstr "SUSE LINUX Openexchange-Server"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange-Server"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Fernsehprogramm"
diff --git a/translations/desktop_files/tderesources-desktops/el.po b/translations/desktop_files/tderesources-desktops/el.po
new file mode 100644
index 00000000..f6081ce6
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/el.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Γενέθλια από το KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Εφημερίδες ως Blogs σε έναν εξυπηρετητή"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Εξυπηρετητής CalDAV (π.χ. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Εξυπηρετητής CardDAV (π.χ. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Εξυπηρετητής eGroupware (μέσω XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Εξυπηρετητής Exchange2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Εξυπηρετητής Exchange2000 (ξεπερασμένος)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "Σχέδιο χαρακτηριστικών XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Εξυπηρετητής GroupDAV (π.χ. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Εξυπηρετητής Groupware"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Εξυπηρετητής Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Ημερολόγιο σε εξυπηρετητή IMAP μέσω του KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Εξυπηρετητής IMAP μέσω του KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Ημερολόγιο σε εξυπηρετητή IMAP μέσω του KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Ημερολόγιο σε εξυπηρετητή Exchange (πειραματικό)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Ημερολόγιο σε εξυπηρετητή Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Βιβλίο διευθύνσεων σε εξυπηρετητή Exchange (πειραματικό)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Βιβλίο διευθύνσεων σε εξυπηρετητή Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Ημερολόγιο σε απομακρυσμένο αρχείο"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Ημερολόγιο σε εξυπηρετητή Scalix μέσω του KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Σημειώσεις σε εξυπηρετητή Scalix μέσω του KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Βιβλίο διευθύνσεων σε εξυπηρετητή Scalix μέσω του KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Εξυπηρετητής OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Εξυπηρετητή SUSE LINUX Openexchange"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Προγράμματα τηλεόρασης"
diff --git a/translations/desktop_files/tderesources-desktops/eo.po b/translations/desktop_files/tderesources-desktops/eo.po
new file mode 100644
index 00000000..16b33103
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/eo.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Naskiĝdatoj de KAdresaro"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr ""
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr ""
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr ""
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr ""
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr ""
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr ""
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML-Trajtplano"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr ""
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr ""
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr ""
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr ""
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr ""
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr ""
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr ""
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr ""
diff --git a/translations/desktop_files/tderesources-desktops/es.po b/translations/desktop_files/tderesources-desktops/es.po
new file mode 100644
index 00000000..a9932499
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/es.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Cumpleaños desde KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Diarios, como bitácoras en un servidor"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Servidor CalDAV (por ejemplo, Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Servidor CardDAV (por ejemplo, Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Servidor de eGroupware (por medio de XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Servidor Exchange 2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Servidor Exchange 2000 (obsoleto)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "Plan de características XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Servidor GroupDAV (por ejemplo, OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Servidor de Groupware"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Servidor de Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Calendario en servidor IMAP por medio de KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Servidor IMAP por medio de KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Libreta de direcciones en servidor IMAP por medio de KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Calendario en un servidor Exchange (experimental)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Calendario en un servidor Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Libreta de direcciones en un servidor Exchange (experimental)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Libreta de direcciones en un servidor Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Calendario en un archivo remoto"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Calendario en servidor Scalix por medio de KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Notas en servidor Scalix por medio de KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Libreta de direcciones en servidor Scalix por medio de KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Servidor OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Servidor Openexchange de SUSE LINUX"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Programación de TV"
diff --git a/translations/desktop_files/tderesources-desktops/et.po b/translations/desktop_files/tderesources-desktops/et.po
new file mode 100644
index 00000000..9bee3234
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/et.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Sünnipäevad TDE aadressiraamatust"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Päevik veebipäevikuna serveris"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV server (nt. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV server (nt. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware server (XML-RPC vahendusel)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 server"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 server (iganenud)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML võimaluste plaan"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV server (nt. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Grupitöö server"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novelli GroupWise server"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalender IMAP-serveris (KMaili vahendusel)"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP-server (KMaili vahendusel)"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Aadressiraamat IMAP-serveris (KMaili vahendusel)"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalender Exchange-serveris (eksperimentaalne)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalender Exchange-serveris"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Aadressiraamat Exchange-serveris (eksperimentaalne)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Aadressiraamat Exchange-serveris"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalender võrgufailis"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalender Scalix-serveris (KMaili vahendusel)"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Kalender Scalix-serveris (KMaili vahendusel)"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Aadressiraamat Scalix-serveris (KMaili vahendusel)"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange server"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange server"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Telekavad"
diff --git a/translations/desktop_files/tderesources-desktops/eu.po b/translations/desktop_files/tderesources-desktops/eu.po
new file mode 100644
index 00000000..1d4fdfcc
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/eu.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Urtebetetzeak KAddressBook-etik"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Egunkariak blog moduan zerbitzarian"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV zerbitzaria (adib. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV zerbitzaria (adib. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware zerbitzaria (XML-RPC bidez)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 zerbitzaria"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 zerbitzaria (zaharkituta)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML eginbide plana"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV zerbitzaria (adib. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Groupware zerbitzaria"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise zerbitzaria"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Egutegia IMAP zerbitzarian KMail-en bidez"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP zerbitzaria KMail-en bidez"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Helbide-liburua IMAP zerbitzarian KMail-en bidez"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Egutegia Exchange zerbitzari batean (esperimentala)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Egutegia Exchange zerbitzari batean"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Helbide-liburua Exchange zerbitzari batean (esperimentala)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Helbide-liburua Exchange zerbitzari (esperimentala)"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Egutegia urruneko fitxategi batean"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Egutegia IMAP zerbitzarian KMail-en bidez"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Egutegia IMAP zerbitzarian KMail-en bidez"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Helbide-liburua IMAP zerbitzarian KMail-en bidez"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange zerbitzaria"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange zerbitzaria"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "TB planifikazioak"
diff --git a/translations/desktop_files/tderesources-desktops/fa.po b/translations/desktop_files/tderesources-desktops/fa.po
new file mode 100644
index 00000000..43d3973c
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/fa.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fa\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "تولدها از KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "نشریه‌ها به عنوان وب‌نوشتها روی یک کارساز"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "کارساز CalDAV (مثلاً Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "کارساز CardDAV (مثلاً Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "کارساز eGroupware (از طریق XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "کارساز Exchange ۲۰۰۰"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "کارسازExchange ۲۰۰۰ (محکوم)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "نقشۀ ویژگی XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "کارساز GroupDAV (مثلاً OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "کارساز Groupware"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "کارساز Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "تقویم روی کارساز IMAP از طریق KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "کارساز IMAP از طریق KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "کتاب نشانی روی کارساز IMAP از طریق KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "تقویم روی یک کارساز مبادله )تجربی("
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "تقویم روی یک کارساز مبادله"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "کتاب نشانی روی یک کارساز مبادله )تجربی("
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "کتاب نشانی روی یک کارساز مبادله"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "تقویم در پروندۀ دور"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "تقویم روی کارساز IMAP از طریق KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "تقویم روی کارساز IMAP از طریق KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "کتاب نشانی روی کارساز IMAP از طریق KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "کارساز OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "کارساز SUSE LINUX Openexchange"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "زمان‌بندیهای تلویزیون"
diff --git a/translations/desktop_files/tderesources-desktops/fi.po b/translations/desktop_files/tderesources-desktops/fi.po
new file mode 100644
index 00000000..7015db15
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/fi.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Syntymäpäivät TDE:n osoitekirjasta"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Päiväkirjat blogeina palvelimella"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV-palvelin (esim. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV-palvelin (esim. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware-palvelin (XML-RPC kautta)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 -palvelin"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 -palvelin (vanhentunut)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML-ominaisuussuunnitelma"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV-palvelin (esim. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Groupware-palvelin"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise -palvelin"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalenteri IMAP-palvelimella KMailin avulla"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP-palvelin KMailin avulla"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Osoitekirja IMAP-palvelimella KMailin avulla"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalenteri Exchange-palvelimella (kokeellinen)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalenteri Exchange-palvelimella"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Osoitekirja Exchange-palvelimella (kokeellinen)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Osoitekirja Exchange-palvelimella"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalenteri etätiedostossa"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalenteri IMAP-palvelimella KMailin avulla"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Kalenteri IMAP-palvelimella KMailin avulla"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Osoitekirja IMAP-palvelimella KMailin avulla"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange-palvelin"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Suse Linux Openexchange -palvelin"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "TV-ohjelmat"
diff --git a/translations/desktop_files/tderesources-desktops/fr.po b/translations/desktop_files/tderesources-desktops/fr.po
new file mode 100644
index 00000000..e626216b
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/fr.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Dates de naissance de KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Journaux (blogs) sur un serveur"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV Serveur (ex. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV Serveur (ex. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Serveur eGroupware (via XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Serveur Exchange2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Serveur Exchange2000 (désuet)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "Plan de fonctionnalités XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV Serveur (ex. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Serveur de travail collaboratif"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Serveur de travail collaboratif GroupWise de Novell"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Agenda sur serveur IMAP (via KMail)"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Serveur IMAP (via KMail)"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Carnet d'adresse sur serveur IMAP (via KMail)"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Agenda sur un serveur Exchange (expérimental)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Agenda sur un serveur Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Carnet d'adresse sur un serveur Exchange (expérimental)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Carnet d'adresse sur un serveur Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Calendrier dans un fichier distant"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Agenda sur serveur Scalix via KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Notes sur serveur Scalix via KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Carnet d'adresses sur serveur Scalix via KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Serveur OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Serveur SUSE Linux Openexchange"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Programmes TV"
diff --git a/translations/desktop_files/tderesources-desktops/fy.po b/translations/desktop_files/tderesources-desktops/fy.po
new file mode 100644
index 00000000..1b84a821
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/fy.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: fy\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Jierddagen út KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Journalen as blochs op in tsjinner"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV-tsjinner (Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV-tsjinner (Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware-tsjinner (fia XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange2000-tsjinner"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000-tsjinner (ôfrieden)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "Funksjonaliteitsplanning yn XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV-tsjinner (OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Groupware-tsjinner"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise-tsjinner"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Aginda op IMAP-tsjinner fia KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP-tsjinner fia KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Adresboek op IMAP-tsjinner fia KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Aginda op in Exchange-tsjinner (eksperimenteel)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Aginda op in Exchange-tsjinner"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Adresboek op in Exchange-tsjinner (eksperimenteel)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Adresboek op in Exchange-tsjinner"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Aginda yn ekstern triem"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Aginda op IMAP-tsjinner fia KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Aginda op IMAP-tsjinner fia KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Adresboek op IMAP-tsjinner fia KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange-tsjinner"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange-tsjinner"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Televissjeprogrammearring"
diff --git a/translations/desktop_files/tderesources-desktops/ga.po b/translations/desktop_files/tderesources-desktops/ga.po
new file mode 100644
index 00000000..86c67418
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/ga.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ga\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Breithlaethanta ó KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr ""
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Freastalaí CalDAV (m.sh. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Freastalaí CardDAV (m.sh. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Freastalaí eGroupware (via XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Freastalaí Exchange 2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Freastalaí Exchange 2000 (as dáta)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Freastalaí GroupDAV (m.sh. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Freastalaí Groupware"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Freastalaí Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Féilire ar Fhreastalaí IMAP via KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Freastalaí IMAP via KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Leabhar Seoltaí ar Fhreastalaí IMAP via KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Féilire ar Fhreastalaí Exchange (trialach)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Féilire ar Fhreastalaí Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Leabhar Seoltaí ar Fhreastalaí Exchange (trialach)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Leabhar Seoltaí ar Fhreastalaí Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Féilire i gCianchomhad"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Féilire ar Fhreastalaí IMAP via KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Féilire ar Fhreastalaí IMAP via KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Leabhar Seoltaí ar Fhreastalaí IMAP via KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Freastalaí Openexchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Freastalaí Openexchange SUSE LINUX"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Sceidil Teilifíse"
diff --git a/translations/desktop_files/tderesources-desktops/gl.po b/translations/desktop_files/tderesources-desktops/gl.po
new file mode 100644
index 00000000..5d664e08
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/gl.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: gl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Cumpreanos de KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Xornais como Bitácoras nun Servidor"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Servidor CalDAV (e.g. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Servidor CardDAV (e.g. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Servidor eGroupware (mediante XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Servidor Exchange 2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Servidor Exchange 2000 (desaprobado)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "Plan de Características en XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Servidor GroupDAV (e.g. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Servidor de Traballo en Grupo"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Servidor Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Calendario no servidor IMAP mediante KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Servidor MAP mediante KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Caderno de enderezos nun servidor IMAP mediante KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Calendario nun servidor Exchange (experimental)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Calendario nun servidor Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Caderno de enderezos no Servidor Exchange2000 (experimental)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Caderno de enderezos nun Servidor Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Calendario en ficheiro remoto"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Calendario no servidor IMAP mediante KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Calendario no servidor IMAP mediante KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Caderno de enderezos nun servidor IMAP mediante KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Servidor OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Servidor SUSE LINUX Openexchange"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Programación de TV"
diff --git a/translations/desktop_files/tderesources-desktops/he.po b/translations/desktop_files/tderesources-desktops/he.po
new file mode 100644
index 00000000..0ae048de
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/he.po
@@ -0,0 +1,148 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: he\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "ימי הולדת מתוך KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr ""
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr ""
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr ""
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr ""
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr ""
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr ""
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr ""
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr ""
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr ""
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+#, fuzzy
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "פנקס כתובות בשרת Exchange"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+#, fuzzy
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "פנקס כתובות בשרת Exchange"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+#, fuzzy
+msgid "Calendar on an Exchange Server"
+msgstr "פנקס כתובות בשרת Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+#, fuzzy
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "פנקס כתובות בשרת Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "פנקס כתובות בשרת Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr ""
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "פנקס כתובות בשרת Exchange"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr ""
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr ""
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr ""
diff --git a/translations/desktop_files/tderesources-desktops/hi.po b/translations/desktop_files/tderesources-desktops/hi.po
new file mode 100644
index 00000000..a7c6a271
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/hi.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "के-एड्रेस-बुक से जन्मतिथि"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr ""
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr ""
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr ""
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr ""
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr ""
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr ""
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr ""
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr ""
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr ""
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr ""
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "रिमोट फ़ाइल में कैलेन्डर"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr ""
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr ""
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr ""
diff --git a/translations/desktop_files/tderesources-desktops/hu.po b/translations/desktop_files/tderesources-desktops/hu.po
new file mode 100644
index 00000000..ce8dfcda
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/hu.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Születésnapok a KAddressBookból"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Naplók blogként tárolása a kiszolgálón"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV-kiszolgáló (pl. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV-kiszolgáló (pl. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware-kiszolgáló (XML-RPC-n keresztül)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000-kiszolgáló"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000-kiszolgáló (elavult)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML FeaturePlan"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV-kiszolgáló (pl. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Groupware kiszolgáló"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise kiszolgáló"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "IMAP-kiszolgálón tárolt naptár a KMailen keresztül"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP-kiszolgáló a KMailen keresztül"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "IMAP-kiszolgálón tárolt címjegyzék a KMailen keresztül"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Exchange 2000-kiszolgáló naptára (kísérleti)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Exchange 2000-kiszolgáló naptára"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Exchange-kiszolgáló címjegyzéke (kísérleti)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Exchange-kiszolgáló címjegyzéke"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Távoli fájlban tárolt naptár"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "IMAP-kiszolgálón tárolt naptár a KMailen keresztül"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "IMAP-kiszolgálón tárolt naptár a KMailen keresztül"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "IMAP-kiszolgálón tárolt címjegyzék a KMailen keresztül"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange-kiszolgáló"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange-kiszolgáló"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "TV-műsorok"
diff --git a/translations/desktop_files/tderesources-desktops/is.po b/translations/desktop_files/tderesources-desktops/is.po
new file mode 100644
index 00000000..d5ad9582
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/is.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: is\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Afmælisdagar úr KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Dagbækur sem blogg á þjóni"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV þjónn (t.d. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV þjónn (t.d. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware þjónn (gegnum XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 þjónn"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 þjónn (úrelt)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML fídusa áætlun"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV þjónn (t.d. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Groupware þjónn"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise þjónn"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Dagatal á IMAP þjóni gegnum KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP þjónn gegnum KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Vistfangaskrá á IMAP þjóni gegnum KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Dagatal á Exchange þjóni (á tilraunarstigi)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Dagatal á Exchange þjóni"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Vistfangaskrá Exchange þjóni (á tilraunarstigi)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Vistfangaskrá á Exchange þjóni"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Dagatal í fjarlægri skrá"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Dagatal á Scalix-þjóni gegnum KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Minnismiðar á Scalix-þjóni gegnum KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Vistfangaskrá á Scalix-þjóni gegnum KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange þjónn"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange þjónn"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Sjónvarpsdagskrár"
diff --git a/translations/desktop_files/tderesources-desktops/it.po b/translations/desktop_files/tderesources-desktops/it.po
new file mode 100644
index 00000000..11db468e
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/it.po
@@ -0,0 +1,144 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Michele Calgaro <michele.calgaro@yahoo.it>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: 2020-11-22 12:59+0000\n"
+"Last-Translator: Michele Calgaro <michele.calgaro@yahoo.it>\n"
+"Language-Team: Italian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/tdepimresources-desktop-files/it/>\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: Weblate 4.3.2\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Compleanni da KAddessBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Diari come blog su un server"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Server CalDAV (per es. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Server CardDAV (per es. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Server eGroupware (via XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Server Exchange 2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Server Exchange 2000 (deprecato)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "Piano caratteristiche XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Server GroupDAV (per es. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Server Groupware"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Server Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Calendario su server IMAP via KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Server IMAP via KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Rubrica indirizzi su server IMAP via KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Calendario su un server Exchange (sperimentale)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Calendario su un server Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Rubrica indirizzi su un server Exchange (sperimentale)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Rubrica indirizzi su un server Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Calendario in file remoto"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Calendario su server Scalix via KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Note su server Scalix via KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Rubrica indirizzi su server Scalix via KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Server Openexchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Server SUSE LINUX Openexchange"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Programmi TV"
diff --git a/translations/desktop_files/tderesources-desktops/ja.po b/translations/desktop_files/tderesources-desktops/ja.po
new file mode 100644
index 00000000..9ccb2360
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/ja.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "アドレス帳の誕生日"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "サーバ上のブログとしてのジャーナル"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV サーバ (例 Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV サーバ (例 Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware サーバ (XML-RPC 経由)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 サーバ"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 サーバ (廃止予定)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV サーバ (例 OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "グループウェアサーバ"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise サーバ"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "KMail 経由 IMAP サーバのカレンダー"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "KMail 経由 IMAP サーバ"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "KMail 経由 IMAP サーバのアドレス帳"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Exchange サーバのカレンダー (実験版)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Exchange サーバのカレンダー"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Exchange サーバのアドレス帳 (実験版)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Exchange サーバのアドレス帳"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "リモートファイルのカレンダー"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "KMail 経由 Scalix サーバのカレンダー"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "KMail 経由 Scalix サーバのメモ"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "KMail 経由 Scalix サーバのアドレス帳"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange サーバ"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange サーバ"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "TV 番組予定"
diff --git a/translations/desktop_files/tderesources-desktops/ka.po b/translations/desktop_files/tderesources-desktops/ka.po
new file mode 100644
index 00000000..b2bfdc4c
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/ka.po
@@ -0,0 +1,144 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ka\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr ""
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr ""
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "სერვერი CalDAV (მაგ., Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "სერვერი CardDAV (მაგ., Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr ""
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr ""
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr ""
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "სერვერი GroupDAV (მაგ., OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+#, fuzzy
+msgid "Groupware Server"
+msgstr "სერვერი Novell GroupWise"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "სერვერი Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr ""
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr ""
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr ""
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr ""
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "ტელეპროგრამა"
diff --git a/translations/desktop_files/tderesources-desktops/kk.po b/translations/desktop_files/tderesources-desktops/kk.po
new file mode 100644
index 00000000..bb63afc2
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/kk.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "KAddressBook-тағы туған күндер"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Сервердегі күнделік блог ретінде"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV сервері (мысалы Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV сервері (мысалы Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware сервері (XML-RPC арқылы)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "MS Exchange 2000 сервері"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "MS Exchange 2000 сервері (ескірген)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV сервері (мысалы OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Groupware сервері"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise сервері"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "KMail арқылы IMAP серверіндегі күнтізбе"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "KMail арқылы IMAP сервері"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "KMail арқылы IMAP серверіндегі адрестік кітапша"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Exchange серверіндегі күнтізбе (сынақтағы)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Exchange серверіндегі күнтізбе"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Exchange серверіндегі адрестік кітапша (сынақтағы)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Exchange серверіндегі адрестік кітапша"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Қашықтағы файлдағы күнтізбе"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "KMail арқылы IMAP серверіндегі күнтізбе"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "KMail арқылы IMAP серверіндегі күнтізбе"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "KMail арқылы IMAP серверіндегі адрестік кітапша"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange сервері"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange сервері"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "TV кестелері"
diff --git a/translations/desktop_files/tderesources-desktops/km.po b/translations/desktop_files/tderesources-desktops/km.po
new file mode 100644
index 00000000..ab60d2f2
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/km.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: km\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "ថ្ងៃ​ខួប​កំណើត​ពី KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "ទិនានុប្បវត្តិ​ជា​កំណត់ហេតុ​បណ្ដាញ​នៅ​លើ​ម៉ាស៊ីន​បម្រើ"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "ម៉ាស៊ីន​បម្រើ CalDAV (ឧ. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "ម៉ាស៊ីន​បម្រើ CardDAV (ឧ. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "ម៉ាស៊ីន​បម្រើ eGroupware (តាម​រយៈ XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "ម៉ាស៊ីន​បម្រើ Exchange ២០០០"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "ម៉ាស៊ីន​បម្រើ Exchange ២០០០ (មិន​សូវ​ល្អ)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "គ្រោង​លក្ខណៈ​ពិសេស XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "ម៉ាស៊ីន​បម្រើ GroupDAV (ឧ. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "ម៉ាស៊ីន​បម្រើ​កម្មវិធី​ពហុ​អ្នកប្រើ"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "ម៉ាស៊ីន​បម្រើ GroupWise របស់​ណូវែល"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "ប្រតិទិន​លើ​ម៉ាស៊ីន​បម្រើ IMAP តាម​រយៈ KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "ម៉ាស៊ីន​បម្រើ IMAP តាម​រយៈ KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "សៀវភៅ​អាសយដ្ឋាន​លើ​ម៉ាស៊ីន​បម្រើ IMAP តាម​រយៈ KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "ប្រតិទិន​លើ​ម៉ាស៊ីន​បម្រើ Exchange (សម្រាប់​អ្នក​មាន​បទពិសោធន៍)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "ប្រតិទិន​លើ​ម៉ាស៊ីន​បម្រើ Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "សៀវភៅ​អាសយដ្ឋាន​លើ​ម៉ាស៊ីន​បម្រើ Exchange (សម្រាប់​អ្នក​មាន​បទពិសោធន៍)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "សៀវភៅ​អាសយដ្ឋាន​លើ​ម៉ាស៊ីន​បម្រើ Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "ប្រតិទិន​នៅ​ក្នុង​ឯកសារ​នៅ​ឆ្ងាយ"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "ប្រតិទិន​នៅ​លើ​ម៉ាស៊ីន​បម្រើ Scalix តាម​រយៈ KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "ចំណាំ​នៅលើ​ម៉ាស៊ីន​បម្រើ Scalix តាមរយៈ KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "សៀវភៅ​អាសយដ្ឋាន​នៅ​លើ​ម៉ាស៊ីន​បម្រើ Scalix តាម​រយៈ KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "ម៉ាស៊ីន​បម្រើ OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "ម៉ាស៊ីន​បម្រើ Openexchange របស់​ស៊ូស៊ីលីនីក"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "កាលវិភាគ​ទូរទស្សន៍"
diff --git a/translations/desktop_files/tderesources-desktops/lt.po b/translations/desktop_files/tderesources-desktops/lt.po
new file mode 100644
index 00000000..21f79560
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/lt.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: lt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Gimtadieniai iš KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Dienynai kaip Blog'ai serveryje"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV serveris (pvz.: Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV serveris (pvz.: Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware serveris (per XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 serveris"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 serveris (deprecated)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML bruožų planas"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV serveris (pvz.: OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Grupinio darbo serveris"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise serveris"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalendorius IMAP serveryje per KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP serveris per KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Adresų knygelė IMAP serveryje per KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalendorius Exchange serveryje (eksperimentine tvarka)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalendorius Exchange serveryje"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Adresų knygelė Exchange serveryje (eksperimentine tvarka)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Adresų knygelė Exchange serveryje"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalendorius nutolusioje byloje"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalendorius IMAP serveryje per KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Kalendorius IMAP serveryje per KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Adresų knygelė IMAP serveryje per KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange serveris"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange serveris"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "TV tvarkaraščiai"
diff --git a/translations/desktop_files/tderesources-desktops/mk.po b/translations/desktop_files/tderesources-desktops/mk.po
new file mode 100644
index 00000000..eb954aa0
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/mk.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: mk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Родендени од КАдресар"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr ""
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr ""
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr ""
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr ""
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000-сервер"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000-сервер (застарено)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr ""
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr ""
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr ""
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Календар на IMAP-сервер преку КПошта"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP-сервер преку КПошта"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Адресар на IMAP-сервер преку КПошта"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Календар на Exchange-сервер (експериментално)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Календар на Exchange-сервер"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Адресар на Exchange-сервер (експериментално)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Адресар на Exchange-сервер"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Календар во оддалечена датотека"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Календар на IMAP-сервер преку КПошта"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Календар на IMAP-сервер преку КПошта"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Адресар на IMAP-сервер преку КПошта"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange-сервер"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange-сервер"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "ТВ програми"
diff --git a/translations/desktop_files/tderesources-desktops/ms.po b/translations/desktop_files/tderesources-desktops/ms.po
new file mode 100644
index 00000000..f8b6e287
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/ms.po
@@ -0,0 +1,147 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ms\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Tarikh Lahir dari KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Jurnal sebagai Blog pada pelayan"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Pelayan CalDAV (misalnya Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Pelayan CardDAV (misalnya Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Pelayan eGroupware (melalui XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Pelayan Exchange 2000 "
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Pelayan Exchange 2000 (tidak disetujui)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "Pelan Cirian XML "
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Pelayan GroupDAV (misalnya OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Pelayan Groupware "
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Pelayan Novell GroupWise "
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalendar pada pelayan IMAP melalui KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Pelayan IMAP melalui KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Buku alamat pada pelayan IMAP melalui KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalendar pada pelayan Exchange (ujikaji)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalendar pada pelayan Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Buku Alamat pada pelayan Exchange (ujikaji)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Buku alamat pada pelayan Exchange "
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalendar dalam Fail Jauh"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalendar pada pelayan IMAP melalui KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Kalendar pada pelayan IMAP melalui KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Buku alamat pada pelayan IMAP melalui KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+#, fuzzy
+msgid "OpenXchange Server"
+msgstr "Pelayan SUSE LINUX Openexchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Pelayan SUSE LINUX Openexchange"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr ""
diff --git a/translations/desktop_files/tderesources-desktops/nb.po b/translations/desktop_files/tderesources-desktops/nb.po
new file mode 100644
index 00000000..b0e150b7
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/nb.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Bursdagsimport fra KAddressbook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Dagbok som blogg på en tjener"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV-tjener (f.eks. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV-tjener (f.eks. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware-tjener (via XML-RPPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000-tjener"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000-tjener (frarådet)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV-tjener (f.eks. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Groupware-tjener"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise-tjener"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalender på IMAP-tjener via KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP-tjener via KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Adressebok på IMAP-tjener via KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalender på en Exchange-tjener (forsøksvis)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalender på en Exchange-tjener"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Adressebok på en Exchange-tjener (forsøksvis)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Adressebok på en Exchange-tjener"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalender i fil på nettverk"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalender på IMAP-tjener via KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Kalender på IMAP-tjener via KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Adressebok på IMAP-tjener via KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenExchange-tjener"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange-tjener"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "TV-program"
diff --git a/translations/desktop_files/tderesources-desktops/nds.po b/translations/desktop_files/tderesources-desktops/nds.po
new file mode 100644
index 00000000..35a65d13
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/nds.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nds\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Geboortsdaag ut KAdressbook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Daagbookindräag as Blog op en Server"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV-Server (t.B. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV-Server (t.B. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware-Server (över XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange2000-Server"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange2000-Server (utlopen Ünnerstütten)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML-Funkschonenplaan"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV-Server (t.B. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Groupware-Server"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell-GroupWise-Server"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalenner op IMAP-Server över KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP-Server över KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Adressbook op IMAP-Server över KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalenner op en Exchange-Server (warrt utprobeert)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalenner op en Exchange-Server"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Adressbook op en Exchange-Server (warrt utprobeert)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Adressbook op en Exchange-Server"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalenner as Datei op en anner Reekner"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalenner op Scalix-Server över KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Notizen op Scalix-Server över KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Adressbook op Scalix-Server över KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange-Server"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE-Openexchangeserver"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Feernsehprogramm"
diff --git a/translations/desktop_files/tderesources-desktops/ne.po b/translations/desktop_files/tderesources-desktops/ne.po
new file mode 100644
index 00000000..969bc493
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/ne.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ne\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "केडीई ठेगाना पुस्तिकामा भएका जन्मदिन"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "सर्भरमा बल्गका रुपका पत्रिका"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "समूह DAV सर्भर (जस्तै: खुला ग्रुपवेयर)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "समूह DAV सर्भर (जस्तै: खुला ग्रुपवेयर)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "(XML-RPC मार्फत) eGroupware सर्भर "
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "एक्सचेन्ज 2000 सर्भर"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "एक्सचेन्ज २००० सर्भर (अनुचित ठानिएको)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "एक्सएमएल विशेषता योजना"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "समूह DAV सर्भर (जस्तै: खुला ग्रुपवेयर)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "ग्रुपवेयर सर्भर"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "नोभेल समूहगत सर्भर"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "केडीई मेल मार्फत IMAP सर्भरमा क्यालेन्डर"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "केडीई मेल मार्फत IMAP सर्भर"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "केडीई मेल मार्फत IMAP सर्भरमा ठेगाना पुस्तिका"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "एक्सचेन्ज सर्भरमा क्यालेन्डर (प्रयोगात्मक)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "एक्सचेन्ज सर्भरमा क्यालेन्डर"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "एक्सचेन्ज सर्भरमा ठेगाना पुस्तिका (प्रयोगात्मक)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "एक्सचेन्ज सर्भरमा ठेगाना पुस्तिका"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "टाढाको फाइलको क्यालेन्डर"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "केडीई मेल मार्फत IMAP सर्भरमा क्यालेन्डर"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "केडीई मेल मार्फत IMAP सर्भरमा क्यालेन्डर"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "केडीई मेल मार्फत IMAP सर्भरमा ठेगाना पुस्तिका"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "ओपन एक्सचेन्ज सर्भर"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX ओपन एक्सचेन्ज सर्भर"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "टीभी कार्यतालिका"
diff --git a/translations/desktop_files/tderesources-desktops/nl.po b/translations/desktop_files/tderesources-desktops/nl.po
new file mode 100644
index 00000000..5a4591a7
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/nl.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Verjaardagen uit KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Journalen als blogs op een server"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV-server (Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV-server (Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware-server (via XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange2000-server"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000-server (afgeraden)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "Functionaliteitsplanning in XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV-server (OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Groupware-server"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise-server"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Agenda op IMAP-server via KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP-server via KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Adresboek op IMAP-server via KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Agenda op een Exchange-server (experimenteel)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Agenda op een Exchange-server"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Adresboek op een Exchange-server (experimenteel)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Adresboek op een Exchange-server"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Agenda in extern bestand"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Agenda op Scalix-server via KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Notities op Scalix-server via KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Adresboek op Scalix-server via KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange-server"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange-server"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Televisieprogrammering"
diff --git a/translations/desktop_files/tderesources-desktops/nn.po b/translations/desktop_files/tderesources-desktops/nn.po
new file mode 100644
index 00000000..25003a71
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/nn.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: nn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Fødselsdagar frå TDE-adresseboka"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Dagbøker som bloggar på ein tenar"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV-tenar (t.d. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV-tenar (t.d. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware-tenar (via XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000-tenar"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000-tenar (frårådd)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV-tenar (t.d. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Groupware-tenar"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise-tenar"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalender på IMAP-tenar via KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP-tenar via KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Adressebok på IMAP-tenar via KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalender på ein Exchange-tenar (eksperimentelt)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalender på ein Exchange-tenar"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Adressebok på ein Exchange-tenar (eksperimentelt)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Adressebok på ein Exchange-tenar"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalender i ekstern fil"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalender på IMAP-tenar via KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Kalender på IMAP-tenar via KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Adressebok på IMAP-tenar via KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange-tenar"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange-tenar"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "TV-program"
diff --git a/translations/desktop_files/tderesources-desktops/pl.po b/translations/desktop_files/tderesources-desktops/pl.po
new file mode 100644
index 00000000..13befd4d
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/pl.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Urodziny z Książki adresowej"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Dzienniki jako blogi na serwerze"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Serwer CalDAV (np. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Serwer CardDAV (np. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Serwer eGroupware (poprzez XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Serwer Exchange 2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Serwer Exchange 2000 (przestarzałe)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "Plan funkcjonalności XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Serwer GroupDAV (np. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Serwer Groupware"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Serwer Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalendarz na serwerze IMAP za pośrednictwem KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Serwer IMAP za pośrednictwem KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Książka adresowa na serwerze IMAP za pośrednictwem KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalendarz na serwerze Exchange (eksperymentalne)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalendarz na serwerze Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Książka adresowa na serwerze Exchange (eksperymentalne)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Książka adresowa na serwerze Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalendarz w pliku zdalnym"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalendarz na serwerze Scalix za pośrednictwem KMaila"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Notatki na serwerze Scalix za pośrednictwem KMaila"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Książka adresowa na serwerze Scalix za pośrednictwem KMaila"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Server OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Server SUSE LINUX Openexchange"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Program telewizyjny"
diff --git a/translations/desktop_files/tderesources-desktops/pt.po b/translations/desktop_files/tderesources-desktops/pt.po
new file mode 100644
index 00000000..bfe62f1a
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/pt.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Aniversários do KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Diários como 'Blogs' num Servidor"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Servidor CalDAV (por exemplo Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Servidor CardDAV (por exemplo Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Servidor eGroupware (via XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Servidor Exchange 2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Servidor Exchange 2000 (depreciado)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "Plano de Funcionalidades em XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Servidor GroupDAV (por exemplo OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Servidor de Groupware"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Servidor Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Calendário em Servidor IMAP via KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Servidor IMAP via KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Livro de Endereços em Servidor IMAP via KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Calendário em servidor Exchange (experimental)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Calendário em servidor Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Livro de endereços em servidor Exchange (experimental)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Livro de endereços em servidor Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Calendário num Ficheiro Remoto"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Calendário em Servidor IMAP via KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Calendário em Servidor IMAP via KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Livro de Endereços em Servidor IMAP via KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Servidor OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Servidor SUSE LINUX Openexchange"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Programação de TV"
diff --git a/translations/desktop_files/tderesources-desktops/pt_BR.po b/translations/desktop_files/tderesources-desktops/pt_BR.po
new file mode 100644
index 00000000..7d3d2269
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/pt_BR.po
@@ -0,0 +1,145 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Datas de Nascimento do KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Diários como Blogs em um Servidor"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Servidor GroupDav (p. ex. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Servidor GroupDav (p. ex. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Servidor eGroupware (via XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Servidor Exchange2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Servidor Exchange2000 (versão de compatibilidade)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "Plano de Funcionalidades XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Servidor GroupDav (p. ex. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Servidor Groupware"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Servidor GroupWise da Novell"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Calendário em Servidor IMAP via KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Servidor IMAP via KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Livro de Endereços em servidor IMAP via KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Calendário em um Servidor Exchange (experimental)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Calendário em um Servidor Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Livro de Endereços em um Servidor Exchange (experimenal)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Livro de Endereços em um Servidor Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Calendário em Arquivo Remoto"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Calendário em Servidor Scalix via KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Calendário em Servidor Scalix via KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Livro de Endereços em servidor IMAP via KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Servidor OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Servidor OpenExchange do SUSE Linux (SLOX)"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Horários de TV"
diff --git a/translations/desktop_files/tderesources-desktops/ro.po b/translations/desktop_files/tderesources-desktops/ro.po
new file mode 100644
index 00000000..297abbcc
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/ro.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Date de naştere din KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr ""
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr ""
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr ""
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr ""
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr ""
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr ""
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr ""
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr ""
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr ""
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr ""
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Calendar în fişier distant"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr ""
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr ""
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr ""
diff --git a/translations/desktop_files/tderesources-desktops/ru.po b/translations/desktop_files/tderesources-desktops/ru.po
new file mode 100644
index 00000000..43d0909d
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/ru.po
@@ -0,0 +1,145 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Andrei Stepanov <adem4ik@gmail.com>, 2024.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: 2024-03-29 02:45+0000\n"
+"Last-Translator: Andrei Stepanov <adem4ik@gmail.com>\n"
+"Language-Team: Russian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/tdepimresources-desktop-files/ru/>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.17\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Дни рождения из адресной книги TDE"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Журналы (блоги) на сервере"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Сервер CalDAV (например, Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Сервер CardDAV (например, Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Сервер eGroupware (через XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Сервер Microsoft Exchange 2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Сервер Microsoft Exchange 2000 (устаревший)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "План функций XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Сервер GroupDAV (например, OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Сервер Groupware"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Сервер Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Календарь на сервере IMAP через KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Доступ к серверу IMAP через KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Адресная книга на сервере IMAP через KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Календарь на сервере Exchange (экспериментально)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Календарь на сервере Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Адресная книга на сервере Exchange (экспериментально)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Адресная книга на сервере Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Календарь во внешнем файле"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Календарь на сервере Scalix через KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Заметки на сервере Scalix через KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Адресная книга на сервере Scalix через KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Сервер OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Сервер SUSE LINUX Openexchange"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Программы телепередач"
diff --git a/translations/desktop_files/tderesources-desktops/sk.po b/translations/desktop_files/tderesources-desktops/sk.po
new file mode 100644
index 00000000..e7e96420
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/sk.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Dátumy narodenia z adresára TDE"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Žurnály ako blogy na serveri"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV Server (napr. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV Server (napr. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware Server (cez XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 server"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 server (deprecated)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML plán vlastností"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV Server (napr. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+#, fuzzy
+msgid "Groupware Server"
+msgstr "eGroupware Server (cez XML-RPC)"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr ""
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalendár na IMAP serveri pomocou KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP-server pomocou KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Adresár na IMAP-serveri pomocou KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalendár na Exchange serveri (experimentálne)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalendár na Exchange serveri"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Adresár na Exchange serveri (experimentálne)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Adresár na Exchange serveri"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalendár vo vzdialenom súbore"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalendár na Scalix serveri pomocou KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Poznámky na Scalix serveri pomocou KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Adresár na Scalix serveri pomocou KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+#, fuzzy
+msgid "OpenXchange Server"
+msgstr "Exchange 2000 server"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+#, fuzzy
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Exchange 2000 server"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "TV programy"
diff --git a/translations/desktop_files/tderesources-desktops/sl.po b/translations/desktop_files/tderesources-desktops/sl.po
new file mode 100644
index 00000000..92c1934d
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/sl.po
@@ -0,0 +1,146 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Rojstni dnevi iz Adresarja"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Dnevniki kot spletni dnevniki (blogi) na strežniku"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Strežnik CalDAV (npr. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Strežnik CardDAV (npr. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Strežnik eGroupware (preko XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Strežnik Exchange 2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Strežnik Exchange 2000 (opuščeno)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "Načrt zmožnosti v XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Strežnik GroupDAV (npr. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Strežnik za skupinsko delo"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Strežnik Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Koledar na strežniku IMAP preko KMaila"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Strežnik IMAP preko KMaila"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Adresar na strežniku IMAP preko KMaila"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Koledar na strežniku Exchange (poskusno)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Koledar na strežniku Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Adresar na strežniku Exchange (poskusno)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Adresar na strežniko Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Koledar v oddaljeni datoteki"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Koledar na strežniku IMAP preko KMaila"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "Koledar na strežniku IMAP preko KMaila"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Adresar na strežniku IMAP preko KMaila"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Strežnik OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Strežnik SUSE LINUX Openexchange"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "TV spored"
diff --git a/translations/desktop_files/tderesources-desktops/sr.po b/translations/desktop_files/tderesources-desktops/sr.po
new file mode 100644
index 00000000..bf7383d4
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/sr.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Рођендани из KAddressBook-а"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Дневници као блогови на серверу"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV сервер (нпр. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV сервер (нпр. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware сервер (преко XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 сервер"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 сервер (неодобраван)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML план могућности"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV сервер (нпр. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Groupware сервер"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell-ов GroupWise сервер"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Календар на IMAP серверу преко KMail-а"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP сервер преко KMail-а"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Адресар на IMAP серверу преко KMail-а"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Календар на Exchange серверу (експериментално)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Календар на Exchange серверу"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Адресар на Exchange серверу (експериментално)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Адресар на Exchange серверу"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Календар у удаљеном фајлу"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Календар на Scalix серверу преко KMail-а"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Белешке на Scalix серверу преко KMail-а"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Адресар на Scalix серверу преко KMail-а"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Openexchange сервер"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Openexchange сервер SUSE-овог Linux-а"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "ТВ програм"
diff --git a/translations/desktop_files/tderesources-desktops/sr@Latn.po b/translations/desktop_files/tderesources-desktops/sr@Latn.po
new file mode 100644
index 00000000..c61ca7b5
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/sr@Latn.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@Latn\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Rođendani iz KAddressBook-a"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Dnevnici kao blogovi na serveru"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV server (npr. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV server (npr. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware server (preko XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 server"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 server (neodobravan)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML plan mogućnosti"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV server (npr. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Groupware server"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell-ov GroupWise server"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalendar na IMAP serveru preko KMail-a"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP server preko KMail-a"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Adresar na IMAP serveru preko KMail-a"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalendar na Exchange serveru (eksperimentalno)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalendar na Exchange serveru"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Adresar na Exchange serveru (eksperimentalno)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Adresar na Exchange serveru"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalendar u udaljenom fajlu"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalendar na Scalix serveru preko KMail-a"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Beleške na Scalix serveru preko KMail-a"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Adresar na Scalix serveru preko KMail-a"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Openexchange server"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Openexchange server SUSE-ovog Linux-a"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "TV program"
diff --git a/translations/desktop_files/tderesources-desktops/sv.po b/translations/desktop_files/tderesources-desktops/sv.po
new file mode 100644
index 00000000..90e0c746
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/sv.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Födelsedagar från adressboken"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Journaler som webbloggar på en server"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV-server (t.ex. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV-server (t.ex. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware-server (via XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000-server"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000-server (avråds från)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV-server (t.ex. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Grupprogramserver"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell Groupwise-server"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Kalender på IMAP-server via Kmail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP-server via Kmail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Adressbok på IMAP-server via Kmail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Kalender på en Exchange-server (experimentell)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Kalender på en Exchange-server"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Adressbok på en Exchange-server (experimentell)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Adressbok på en Exchange-server"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Kalender i fjärrfil"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Kalender på Scalix-server via Kmail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Anteckningar på Scalix-server via Kmail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Adressbok på Scalix-server via Kmail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Openxchange-server"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE Linux Openexchange-server"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Tv-tablåer"
diff --git a/translations/desktop_files/tderesources-desktops/ta.po b/translations/desktop_files/tderesources-desktops/ta.po
new file mode 100644
index 00000000..8739b8a1
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/ta.po
@@ -0,0 +1,147 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: ta\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "கேமுகவரிபுத்தகத்தில் இருந்து பிறந்ததேதிகள்"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "சேவகனில் பேச்சுரைகள் பத்திரிககளாக உள்ளன"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV சேவகன் (e.g. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV சேவகன் (e.g. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware சேவகன் (via XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "பரிமாற்ற 2000 சேவகன்"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "பரிமாற்ற 2000 சேவகன் (மாறுபாடானது)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML பண்பு திட்டம்"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV சேவகன் (e.g. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "குழுவாரி சேவகன்"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell குழுவாரிச் சேவகன்"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "IMAP சேவையக வழியாக கேஅஞ்சலில் நாட்காட்டி"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "IMAP சேவகன் மூலாம் கேஅஞ்சல்"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "IMAP சேவகன் மூலம் கேஅஞ்சல் முகவரிப்புத்தகம்"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "பரிமாற்ற சேவகனில் நாட்காட்டி (சோதனைக்குரியது)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "ஒரு பரிமாற்ற சேவகனில் நாட்காட்சி"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "IMAP சேவையக வழியாக கேஅஞ்சலில் நாள்காட்டி(சோதனைக்குரியது)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "ஒருமாற்று சேவகனில் முகவரிப்புத்தகம்"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "தொலைதூர கோப்பில் உள்ள நாள்காட்டி"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+#, fuzzy
+msgid "Calendar on Scalix Server via KMail"
+msgstr "IMAP சேவையக வழியாக கேஅஞ்சலில் நாட்காட்டி"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+#, fuzzy
+msgid "Notes on Scalix Server via KMail"
+msgstr "IMAP சேவையக வழியாக கேஅஞ்சலில் நாட்காட்டி"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+#, fuzzy
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "IMAP சேவகன் மூலம் கேஅஞ்சல் முகவரிப்புத்தகம்"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+#, fuzzy
+msgid "OpenXchange Server"
+msgstr "SUSE LINUX திறந்த பரிமாற்ற சேவகன்"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX திறந்த பரிமாற்ற சேவகன்"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr ""
diff --git a/translations/desktop_files/tderesources-desktops/tderesources-desktops.pot b/translations/desktop_files/tderesources-desktops/tderesources-desktops.pot
new file mode 100644
index 00000000..cce835de
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/tderesources-desktops.pot
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr ""
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr ""
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr ""
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr ""
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr ""
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr ""
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr ""
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr ""
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr ""
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr ""
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr ""
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr ""
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr ""
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr ""
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr ""
diff --git a/translations/desktop_files/tderesources-desktops/tg.po b/translations/desktop_files/tderesources-desktops/tg.po
new file mode 100644
index 00000000..7f839cc8
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/tg.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Рӯзҳои таваллуд аз китоби адресии TDE"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr ""
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr ""
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr ""
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr ""
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr ""
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr ""
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr ""
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr ""
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr ""
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr ""
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr ""
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr ""
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Тақвимот дар файли хурӯҷӣ"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr ""
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr ""
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr ""
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr ""
diff --git a/translations/desktop_files/tderesources-desktops/tr.po b/translations/desktop_files/tderesources-desktops/tr.po
new file mode 100644
index 00000000..e6111e53
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/tr.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "TDE Adres Defterinden Doğum Günleri"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Web Günlüğü gibi, bir Sunucuya yazar"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV Sunucusu (ör. Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV Sunucusu (ör. Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware Sunucusu (XML-RPC ile)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 Sunucusu"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 Sunucusu"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML Özellik Planı"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV Sunucusu (ör. OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Grupyazılımı(Groupware) Sunucusu"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise Sunucusu"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "KMail Aracılığı ile IMAP Sunucusunda Takvim"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "KMail aracılığı ile IMAP Sunucu"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "KMail Aracılığı ile IMAP Sunucusunda Adres Defteri"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Bir Exchange Sunucusu üzerinde Takvim (deneyimsel)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Bir Exchange Sunucusu üzerinde Takvim"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Bir Exchange Sunucusu üzerinde Adres Defteri (deneyimsel)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Bir Exchange Sunucusu üzerinde Adres Defteri"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Uzak Dosyadaki Takvim"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "KMail Aracılığı ile Scalix Sunucusunda Takvim"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "KMail Aracılığı ile Scalix Sunucusunda Takvim"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "KMail Aracılığı ile Scalix Sunucusunda Adres Defteri"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange Sunucusu"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange Sunucusu"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "TV Programı"
diff --git a/translations/desktop_files/tderesources-desktops/uk.po b/translations/desktop_files/tderesources-desktops/uk.po
new file mode 100644
index 00000000..59fd7429
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/uk.po
@@ -0,0 +1,145 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# Roman Savochenko <roman@oscada.org>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: 2020-08-30 09:31+0000\n"
+"Last-Translator: Roman Savochenko <roman@oscada.org>\n"
+"Language-Team: Ukrainian <https://mirror.git.trinitydesktop.org/weblate/"
+"projects/tdepim/tdepimresources-desktop-files/uk/>\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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 4.1.1\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "Дні народження з KAddressBook"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "Журнали як веб-щоденники на сервері"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "Сервер CalDAV (напр., Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "Сервер CardDAV (напр., Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "Сервер eGroupware (через XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Сервер Exchange 2000"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Сервер Exchange 2000 (застаріле)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "План функцій XML"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "Сервер GroupDAV (напр., OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "Сервер Groupware"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Сервер Novell GroupWise"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "Календар на сервері IMAP через KMail"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "Сервер IMAP через KMail"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "Адресна книга на сервері IMAP через KMail"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Календар на сервері Exchange (експериментальне)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Календар на сервері Exchange"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Адресна книга на сервері Exchange (експериментальне)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Адресна книга на сервері Exchange"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "Календар у віддаленому файлі"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "Календар на Scalix Сервері через KMail"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "Нотатки на Scalix Сервері через KMail"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "Адресна книга на Scalix Сервері через KMail"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "Сервер OpenXchange"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "Сервер SUSE LINUX Openexchange"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "Програма телебачення"
diff --git a/translations/desktop_files/tderesources-desktops/zh_CN.po b/translations/desktop_files/tderesources-desktops/zh_CN.po
new file mode 100644
index 00000000..186e583b
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/zh_CN.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "KAddressBook 中的生日"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "日记作为服务器上的博客日志"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV 服务器(如 Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV 服务器(如 Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware 服务器(通过 XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 服务器"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 服务器(不推荐使用)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML 特性计划"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV 服务器(如 OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "群件服务器"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell GroupWise 服务器"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "通过 KMail 访问 IMAP 服务器上的日历"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "通过 KMail 访问 IMAP 服务器"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "通过 KMail 访问 IMAP 服务器上的地址簿"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Exchange 服务器上的日历(试验性)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Exchange 服务器上的日历"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Exchange 服务器上的地址簿(试验性)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Exchange 服务器上的地址簿"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "远程文件中的日历"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "通过 KMail 访问 Scalix 服务器上的日历"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "通过 KMail 访问 Scalix 服务器上的日历"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "通过 KMail 访问 Scalix 服务器上的地址簿"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange 服务器"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange 服务器"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "电视日程安排"
diff --git a/translations/desktop_files/tderesources-desktops/zh_TW.po b/translations/desktop_files/tderesources-desktops/zh_TW.po
new file mode 100644
index 00000000..0f43c2aa
--- /dev/null
+++ b/translations/desktop_files/tderesources-desktops/zh_TW.po
@@ -0,0 +1,143 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-07 18:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Name
+#: birthdays/tdeabc.desktop:2
+msgid "Birthdays From KAddressBook"
+msgstr "自 KaddressBook 匯入生日"
+
+#. Name
+#: blogging/blogging.desktop:2
+msgid "Journals as Blogs on a Server"
+msgstr "日誌做為伺服器上的部落格"
+
+#. Name
+#: caldav/kcal_caldav.desktop:2
+msgid "CalDAV Server (e.g. Google Calendar)"
+msgstr "CalDAV 伺服器 (如: Google Calendar)"
+
+#. Name
+#: carddav/tdeabc_carddav.desktop:2
+msgid "CardDAV Server (e.g. Zimbra Contacts)"
+msgstr "CardDAV 伺服器 (如: Zimbra Contacts)"
+
+#. Name
+#: egroupware/kcal_xmlrpc.desktop:2 egroupware/knotes_xmlrpc.desktop:2
+#: egroupware/tdeabc_xmlrpc.desktop:2
+msgid "eGroupware Server (via XML-RPC)"
+msgstr "eGroupware 伺服器(透過 XML-RPC)"
+
+#. Name
+#: exchange/exchange.desktop:2
+msgid "Exchange 2000 Server"
+msgstr "Exchange 2000 伺服器"
+
+#. Name
+#: exchange/exchange_deprecated.desktop:4
+msgid "Exchange 2000 Server (deprecated)"
+msgstr "Exchange 2000 伺服器(已廢除)"
+
+#. Name
+#: featureplan/kcal_resourcefeatureplan.desktop:2
+msgid "XML Feature Plan"
+msgstr "XML 功能計畫"
+
+#. Name
+#: groupdav/kcal_groupdav.desktop:2 groupdav/tdeabc_groupdav.desktop:2
+msgid "GroupDAV Server (e.g. OpenGroupware)"
+msgstr "GroupDAV 伺服器 (如: OpenGroupware)"
+
+#. Name
+#: groupware/kcal_groupware.desktop:2 groupware/tdeabc_groupware.desktop:2
+msgid "Groupware Server"
+msgstr "群組伺服器"
+
+#. Name
+#: groupwise/kcal_groupwise.desktop:2 groupwise/tdeabc_groupwise.desktop:2
+msgid "Novell GroupWise Server"
+msgstr "Novell 群組伺服器"
+
+#. Name
+#: kolab/kcal/kolab.desktop:2
+msgid "Calendar on IMAP Server via KMail"
+msgstr "透過 KMail 取得 IMAP 伺服器上的行事曆"
+
+#. Name
+#: kolab/knotes/kolabresource.desktop:2
+msgid "IMAP Server via KMail"
+msgstr "透過 KMail 取得 IMAP 伺服器"
+
+#. Name
+#: kolab/tdeabc/kolab.desktop:2
+msgid "Addressbook on IMAP Server via KMail"
+msgstr "透過 KMail 取得 IMAP 伺服器上的通訊錄"
+
+#. Name
+#: newexchange/kcal_newexchange.desktop:2
+msgid "Calendar on an Exchange Server (experimental)"
+msgstr "Exchanger 伺服器上的行事曆(實驗中)"
+
+#. Name
+#: newexchange/kcal_newexchange_final.desktop:4
+msgid "Calendar on an Exchange Server"
+msgstr "Exchanger 伺服器上的行事曆"
+
+#. Name
+#: newexchange/tdeabc_newexchange.desktop:2
+msgid "Addressbook on an Exchange Server (experimental)"
+msgstr "Exchanger 伺服器的通訊錄(實驗中)"
+
+#. Name
+#: newexchange/tdeabc_newexchange_final.desktop:2
+msgid "Addressbook on an Exchange Server"
+msgstr "Exchanger 伺服器上的通訊錄"
+
+#. Name
+#: remote/remote.desktop:2
+msgid "Calendar in Remote File"
+msgstr "遠端檔案的行事曆"
+
+#. Name
+#: scalix/kcal/scalix.desktop:2
+msgid "Calendar on Scalix Server via KMail"
+msgstr "透過 KMail 取得 Scalix 伺服器上的行事曆"
+
+#. Name
+#: scalix/knotes/scalix.desktop:2
+msgid "Notes on Scalix Server via KMail"
+msgstr "透過 KMail 取得 Scalix 伺服器上的便條"
+
+#. Name
+#: scalix/tdeabc/scalix.desktop:2
+msgid "Addressbook on Scalix Server via KMail"
+msgstr "透過 KMail 取得 Scalix 伺服器上的通訊錄"
+
+#. Name
+#: slox/kcal_ox.desktop:2 slox/tdeabc_ox.desktop:2
+msgid "OpenXchange Server"
+msgstr "OpenXchange 伺服器"
+
+#. Name
+#: slox/kcal_slox.desktop:2 slox/tdeabc_slox.desktop:2
+msgid "SUSE LINUX Openexchange Server"
+msgstr "SUSE LINUX Openexchange 伺服器"
+
+#. Name
+#: tvanytime/kcal_tvanytime.desktop:2
+msgid "TV Schedules"
+msgstr "電視時刻表"
diff --git a/wizards/CMakeL10n.txt b/wizards/CMakeL10n.txt
index 2649c220..d694d294 100644
--- a/wizards/CMakeL10n.txt
+++ b/wizards/CMakeL10n.txt
@@ -1,3 +1,9 @@
##### create translation templates ##############
tde_l10n_create_template( "tdepimwizards" )
+
+tde_l10n_create_template(
+ CATALOG "desktop_files/groupwarewizard.desktop/"
+ SOURCES groupwarewizard.desktop
+ DESTINATION "${CMAKE_SOURCE_DIR}/translations"
+)
diff --git a/wizards/CMakeLists.txt b/wizards/CMakeLists.txt
index 5aef143b..4b7dc3e9 100644
--- a/wizards/CMakeLists.txt
+++ b/wizards/CMakeLists.txt
@@ -50,9 +50,7 @@ link_directories(
##### other data ################################
-install( FILES
- groupwarewizard.desktop
- DESTINATION ${XDG_APPS_INSTALL_DIR} )
+tde_create_translated_desktop( groupwarewizard.desktop )
##### helper ####################################
diff --git a/wizards/egroupwarewizard.h b/wizards/egroupwarewizard.h
index 431c61d3..bd25dea1 100644
--- a/wizards/egroupwarewizard.h
+++ b/wizards/egroupwarewizard.h
@@ -22,7 +22,7 @@
#define EGROUPWAREWIZARD_H
#include <tdeconfigwizard.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KLineEdit;
class TQCheckBox;
diff --git a/wizards/exchangewizard.h b/wizards/exchangewizard.h
index ffa35d02..8f4978ed 100644
--- a/wizards/exchangewizard.h
+++ b/wizards/exchangewizard.h
@@ -21,7 +21,7 @@
#define EXCHANGEWIZARD_H
#include <tdeconfigwizard.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KLineEdit;
class TQCheckBox;
diff --git a/wizards/groupwarewizard.cpp b/wizards/groupwarewizard.cpp
index 1f520ce5..3df995ce 100644
--- a/wizards/groupwarewizard.cpp
+++ b/wizards/groupwarewizard.cpp
@@ -39,8 +39,8 @@ GroupwareWizard::GroupwareWizard( TQWidget *parent, const char *name )
layout->addWidget( mOverViewPage );
- connect( mOverViewPage, TQT_SIGNAL( cancel() ),
- tqApp, TQT_SLOT( quit() ) );
+ connect( mOverViewPage, TQ_SIGNAL( cancel() ),
+ tqApp, TQ_SLOT( quit() ) );
resize( 400, 200 );
}
diff --git a/wizards/groupwarewizard.desktop b/wizards/groupwarewizard.desktop
index b5c37644..1c9c1529 100644
--- a/wizards/groupwarewizard.desktop
+++ b/wizards/groupwarewizard.desktop
@@ -1,49 +1,6 @@
[Desktop Entry]
Name=TDE Groupware Wizard
-Name[af]=TDE groupware assistent
-Name[ar]=مرشد TDE للبرمجيات الجماعية
-Name[bg]=Помощник за група
-Name[br]=Skoazeller strollant evit TDE
-Name[ca]=Assistent de Groupware TDE
-Name[cs]=Průvodce TDE groupwarem
-Name[da]=TDE Groupware-guide
-Name[de]=TDE Groupware-Assistent
-Name[el]=Μάγος Groupware του TDE
-Name[es]=Asistente de groupware de TDE
-Name[et]=TDE Groupware nõustaja
-Name[eu]=TDE groupware morroia
-Name[fa]=جادوگر TDE Groupware
-Name[fi]=TDE Groupwaren ohjattu toiminto
-Name[fr]=Assistant TDE de travail collaboratif
-Name[fy]=TDE Groupware-tsjoender
-Name[ga]=Treoraí Groupware TDE
-Name[gl]=Asistente de Traballo en Grupo de TDE
-Name[hu]=TDE csoportmunka-varázsló
-Name[is]=TDE hópvinnukerfisálfur
-Name[it]=Assistente configurazione di TDE Groupware
-Name[ja]=TDE グループウェアウィザード
-Name[kk]=TDE бірікен жұмыс шебері
-Name[km]=អ្នក​ជំនួយការ​កម្មវិធី​ពហុ​អ្នក​ប្រើ​របស់ TDE
-Name[ko]=TDE 그룹웨어 마법사
-Name[lt]=TDE Groupware vedlys
-Name[nb]=TDE gruppevareveiviser
-Name[nds]=Groupware-Hölper vun TDE
-Name[ne]=केडीई ग्रुपवेयर विजार्ड
-Name[nl]=TDE Groupware-wizard
-Name[nn]=TDE-vegvisar for gruppevare
-Name[pl]=Asystent TDE Groupware
-Name[pt]=Assistente Groupware do TDE
-Name[pt_BR]=Assistente Groupware do TDE
-Name[ru]=Мастер подключения к серверам совместной работы
-Name[sk]=Sprievodca TDE Groupware
-Name[sl]=Čarovnik za TDE Groupware
-Name[sr]=TDE Groupware чаробњак
-Name[sr@Latn]=TDE Groupware čarobnjak
-Name[sv]=TDE-grupprogramguide
-Name[tr]=Grup Çalışması (Groupware) Sihirbazı
-Name[uk]=Майстер групової роботи для TDE
-Name[zh_CN]=TDE 群件向导
-Name[zh_TW]=TDE 群組精靈
+
Exec=groupwarewizard
Type=Application
Icon=kontact
diff --git a/wizards/groupwarewizard.h b/wizards/groupwarewizard.h
index 5f0deee8..03923ac3 100644
--- a/wizards/groupwarewizard.h
+++ b/wizards/groupwarewizard.h
@@ -28,7 +28,7 @@ class OverViewPage;
class GroupwareWizard : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/wizards/groupwisewizard.cpp b/wizards/groupwisewizard.cpp
index 4e828291..f6b019ef 100644
--- a/wizards/groupwisewizard.cpp
+++ b/wizards/groupwisewizard.cpp
@@ -314,14 +314,14 @@ GroupwiseWizard::GroupwiseWizard() : TDEConfigWizard( new GroupwisePropagator )
topLayout = new TQGridLayout( mEmailPage );
topLayout->setSpacing( spacingHint() );
- mEmailBox = new TQGroupBox( 1, Qt::Horizontal,
+ mEmailBox = new TQGroupBox( 1, TQt::Horizontal,
i18n("Create Mail Account"), mEmailPage );
mEmailBox->setCheckable( true );
topLayout->addWidget( mEmailBox, 0, 0 );
mEmailWidget = new TQWidget( mEmailBox );
- connect( mEmailBox, TQT_SIGNAL( toggled( bool ) ), mEmailWidget,
- TQT_SLOT( setEnabled( bool ) ) );
+ connect( mEmailBox, TQ_SIGNAL( toggled( bool ) ), mEmailWidget,
+ TQ_SLOT( setEnabled( bool ) ) );
TQGridLayout *accountLayout= new TQGridLayout( mEmailWidget );
accountLayout->setSpacing( spacingHint() );
@@ -340,8 +340,8 @@ GroupwiseWizard::GroupwiseWizard() : TDEConfigWizard( new GroupwisePropagator )
accountLayout->setRowStretch( 2, 1 );
- connect( this, TQT_SIGNAL( aboutToShowPage( TQWidget * ) ),
- TQT_SLOT( slotAboutToShowPage( TQWidget * ) ) );
+ connect( this, TQ_SIGNAL( aboutToShowPage( TQWidget * ) ),
+ TQ_SLOT( slotAboutToShowPage( TQWidget * ) ) );
setupRulesPage();
diff --git a/wizards/groupwisewizard.h b/wizards/groupwisewizard.h
index 7960a39b..f2786805 100644
--- a/wizards/groupwisewizard.h
+++ b/wizards/groupwisewizard.h
@@ -21,7 +21,7 @@
#define GROUPWISEWIZARD_H
#include <tdeconfigwizard.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KLineEdit;
class TQCheckBox;
@@ -30,7 +30,7 @@ class TQGroupBox;
class KDE_EXPORT GroupwiseWizard : public TDEConfigWizard
{
- Q_OBJECT
+ TQ_OBJECT
public:
GroupwiseWizard();
diff --git a/wizards/kolabwizard.h b/wizards/kolabwizard.h
index 99fd0c0d..a0f898a0 100644
--- a/wizards/kolabwizard.h
+++ b/wizards/kolabwizard.h
@@ -23,7 +23,7 @@
#define KOLABWIZARD_H
#include <tdeconfigwizard.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KLineEdit;
class TQCheckBox;
diff --git a/wizards/overviewpage.cpp b/wizards/overviewpage.cpp
index e9f6596a..9e4aba5d 100644
--- a/wizards/overviewpage.cpp
+++ b/wizards/overviewpage.cpp
@@ -66,7 +66,7 @@ OverViewPage::OverViewPage( TQWidget *parent, const char *name )
#ifdef WITH_EGROUPWARE
button = new TQPushButton( i18n("eGroupware"), this );
layout->addMultiCellWidget( button, 3, 3, 0, 3 );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( showWizardEGroupware() ) );
+ connect( button, TQ_SIGNAL( clicked() ), TQ_SLOT( showWizardEGroupware() ) );
#endif
// FIXME: Maybe hyperlinks would be better than buttons.
@@ -74,20 +74,20 @@ OverViewPage::OverViewPage( TQWidget *parent, const char *name )
#ifdef WITH_KOLAB
button = new TQPushButton( i18n("Kolab"), this );
layout->addMultiCellWidget( button, 4, 4, 0, 3 );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( showWizardKolab() ) );
+ connect( button, TQ_SIGNAL( clicked() ), TQ_SLOT( showWizardKolab() ) );
#endif
#ifdef WITH_SLOX
button = new TQPushButton( i18n("SUSE Linux Openexchange (SLOX)"), this );
layout->addMultiCellWidget( button, 5, 5, 0, 3 );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( showWizardSlox() ) );
+ connect( button, TQ_SIGNAL( clicked() ), TQ_SLOT( showWizardSlox() ) );
#endif
#ifdef WITH_NEWEXCHANGE
button = new TQPushButton( i18n("Microsoft Exchange"), this );
button->hide(); // not quite ready yet
layout->addMultiCellWidget( button, 6, 6, 0, 3 );
- connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( showWizardExchange() ) );
+ connect( button, TQ_SIGNAL( clicked() ), TQ_SLOT( showWizardExchange() ) );
#endif
TQFrame *frame = new TQFrame( this );
@@ -97,7 +97,7 @@ OverViewPage::OverViewPage( TQWidget *parent, const char *name )
TQPushButton *cancelButton = new KPushButton( KStdGuiItem::close(), this );
layout->addWidget( cancelButton, 8, 3 );
- connect( cancelButton, TQT_SIGNAL( clicked() ), this, TQT_SIGNAL( cancel() ) );
+ connect( cancelButton, TQ_SIGNAL( clicked() ), this, TQ_SIGNAL( cancel() ) );
layout->setRowStretch( 7, 1 );
diff --git a/wizards/overviewpage.h b/wizards/overviewpage.h
index 6120d739..6701d9c1 100644
--- a/wizards/overviewpage.h
+++ b/wizards/overviewpage.h
@@ -26,7 +26,7 @@
class OverViewPage : public TQWidget
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/wizards/scalixwizard.h b/wizards/scalixwizard.h
index 273f6c4a..3b5b5ec3 100644
--- a/wizards/scalixwizard.h
+++ b/wizards/scalixwizard.h
@@ -23,7 +23,7 @@
#define SCALIXWIZARD_H
#include <tdeconfigwizard.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KComboBox;
class KLineEdit;
diff --git a/wizards/servertypemanager.h b/wizards/servertypemanager.h
index 4f4591a1..a44da492 100644
--- a/wizards/servertypemanager.h
+++ b/wizards/servertypemanager.h
@@ -28,7 +28,7 @@
class ServerTypeManager : public TQObject
{
- Q_OBJECT
+ TQ_OBJECT
public:
diff --git a/wizards/sloxwizard.h b/wizards/sloxwizard.h
index d9b24c60..ad6ec0d2 100644
--- a/wizards/sloxwizard.h
+++ b/wizards/sloxwizard.h
@@ -21,7 +21,7 @@
#define SLOXWIZARD_H
#include <tdeconfigwizard.h>
-#include <tdepimmacros.h>
+#include <kdemacros.h>
class KLineEdit;
class TQCheckBox;