summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-01-06 00:18:02 (UTC)
committer zautrix <zautrix>2005-01-06 00:18:02 (UTC)
commit5e7c3e3e51fa939e97b73e6443089edcec8dc663 (patch) (unidiff)
tree213be239777ec911d364f736f9e6cef1f62a7c68
parent0618fbee69bfde7f7f3c4a54b5cc45dac446abd3 (diff)
downloadkdepimpi-5e7c3e3e51fa939e97b73e6443089edcec8dc663.zip
kdepimpi-5e7c3e3e51fa939e97b73e6443089edcec8dc663.tar.gz
kdepimpi-5e7c3e3e51fa939e97b73e6443089edcec8dc663.tar.bz2
kapi pic fix
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt4
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt2
-rw-r--r--bin/kdepim/korganizer/usertranslation.txt2
-rw-r--r--kabc/vcardformatimpl.cpp2
-rw-r--r--korganizer/mainwindow.cpp2
5 files changed, 8 insertions, 4 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index b66062c..c90f58e 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,668 +1,672 @@
1Info about the changes in new versions of KDE-Pim/Pi 1Info about the changes in new versions of KDE-Pim/Pi
2 2
3********** VERSION 1.9.16 ************ 3********** VERSION 1.9.16 ************
4 4
5KO/Pi: 5KO/Pi:
6Fixed search dialog size on Z 6000 (480x640 display). 6Fixed search dialog size on Z 6000 (480x640 display).
7Added setting to hide/show time in agenda items. 7Added setting to hide/show time in agenda items.
8Added setting to hide not running todos in todo view. 8Added setting to hide not running todos in todo view.
9Added columns for start date/time in todo view. 9Added columns for start date/time in todo view.
10Replaced the solid half-hour lines in agenda view by dot lines. 10Replaced the solid half-hour lines in agenda view by dot lines.
11Added possibility of printing the What's Next View on the desktop 11Added possibility of printing the What's Next View on the desktop
12(i.e. Windows and Linux). 12(i.e. Windows and Linux).
13 13
14Fixed a strange problem in KO/Pi alarm applet. 14Fixed a strange problem in KO/Pi alarm applet.
15Did not find the actual problem, 15Did not find the actual problem,
16such that now Qtopia reboots again if deinstalling the alarm applet. 16such that now Qtopia reboots again if deinstalling the alarm applet.
17But the alarm applet should work again. 17But the alarm applet should work again.
18 18
19KA/Pi:
20Fixed the problem, that internal pictures were not saved.
21
22
19Fixed some minor problems. (Like word wrap in help text windows). 23Fixed some minor problems. (Like word wrap in help text windows).
20 24
21********** VERSION 1.9.15 ************ 25********** VERSION 1.9.15 ************
22 26
23Usebilty enhancements in KO/Pi: 27Usebilty enhancements in KO/Pi:
24When clicking on the date in a month view cell, the day view is shown. 28When clicking on the date in a month view cell, the day view is shown.
25Old behaviour was, that the "new event" dialog popped up. 29Old behaviour was, that the "new event" dialog popped up.
26 30
27Added a one step "undo delete" in KO/Pi (Accessable in the "Action" menu). 31Added a one step "undo delete" in KO/Pi (Accessable in the "Action" menu).
28That means, you can restore the latest 32That means, you can restore the latest
29event/todo/journal you have deleted. 33event/todo/journal you have deleted.
30A journal is deleted, if you clear all the text of the journal. 34A journal is deleted, if you clear all the text of the journal.
31 35
32Fixed the bug of the editor dialogs in KO/Pi of version 1.9.14. 36Fixed the bug of the editor dialogs in KO/Pi of version 1.9.14.
33 37
34KA/Pi starting in 480x640 resolution: 38KA/Pi starting in 480x640 resolution:
35Hide the filter action in toolbar 39Hide the filter action in toolbar
36and added icons for undo/delete/redo in toolbar. 40and added icons for undo/delete/redo in toolbar.
37 41
38Change in OM/Pi ViewMail dialog: 42Change in OM/Pi ViewMail dialog:
39When clicking on the "delete" icon the mail is deleted after confirmation as usual. 43When clicking on the "delete" icon the mail is deleted after confirmation as usual.
40But the edit dialog is not closed as before, now the next mail in the folder is shown automatically (if there is any). 44But the edit dialog is not closed as before, now the next mail in the folder is shown automatically (if there is any).
41 45
42Fixed a crash when deleting mail-accounts in OM/Pi. 46Fixed a crash when deleting mail-accounts in OM/Pi.
43 47
44 48
45********** VERSION 1.9.14 ************ 49********** VERSION 1.9.14 ************
46 50
47Fixed some problems with the dialog sizes when switching 51Fixed some problems with the dialog sizes when switching
48portrait/landscape mode on 640x480 PDA display. 52portrait/landscape mode on 640x480 PDA display.
49 53
50Fixed some other small bugs in KA/Pi KO/Pi and OM/Pi and PwM/Pi. 54Fixed some other small bugs in KA/Pi KO/Pi and OM/Pi and PwM/Pi.
51 55
52Fixed an ugly bug in KOpieMail: 56Fixed an ugly bug in KOpieMail:
53KOpieMail was not able to write files (mails) to MSDOS file system, 57KOpieMail was not able to write files (mails) to MSDOS file system,
54like on an usual preformatted SD card. That should work now. 58like on an usual preformatted SD card. That should work now.
55To save your mail data on the Sd card do the following: 59To save your mail data on the Sd card do the following:
56Create a dir on the SD card: 60Create a dir on the SD card:
57mkdir /mnt/card/localmail 61mkdir /mnt/card/localmail
58Go to your home dir: 62Go to your home dir:
59cd 63cd
60Go to kopiemail data storage dir: 64Go to kopiemail data storage dir:
61cd kdepim/apps/kopiemail 65cd kdepim/apps/kopiemail
62Create a symlink to the SD card: 66Create a symlink to the SD card:
63ls -s /mnt/card/localmail 67ls -s /mnt/card/localmail
64Now KOpieMail will store all mails on the SD card. 68Now KOpieMail will store all mails on the SD card.
65 69
66KO/Pi Monthview: 70KO/Pi Monthview:
67Now "Go to Today" selects the current month from day 1-end, 71Now "Go to Today" selects the current month from day 1-end,
68not the current date + some days. 72not the current date + some days.
69I.e. "Go to Today" shows now always 73I.e. "Go to Today" shows now always
70the current month with first day of month in the first row. 74the current month with first day of month in the first row.
71 75
72Added missing German translation. 76Added missing German translation.
73 77
74Fixed icons of executeable on Wintendo. 78Fixed icons of executeable on Wintendo.
75 79
76Added a "Show next Mail" button to the OM/Pi 80Added a "Show next Mail" button to the OM/Pi
77mail viewer such that the mail below the current mail 81mail viewer such that the mail below the current mail
78in the mail list view of the current folder 82in the mail list view of the current folder
79can be read with a single click. 83can be read with a single click.
80 84
81 85
82********** VERSION 1.9.13 ************ 86********** VERSION 1.9.13 ************
83 87
84Fixed nasty PwM/Pi file reading bug, when 88Fixed nasty PwM/Pi file reading bug, when
85the used hash algo of file is different then the global 89the used hash algo of file is different then the global
86hash algo. 90hash algo.
87 91
88Added KA/Pi support for opie mailit mailapplication. 92Added KA/Pi support for opie mailit mailapplication.
89 93
90Fixed some bugs in OM/Pi. 94Fixed some bugs in OM/Pi.
91Now character conversion tables are available for the Zaurus 95Now character conversion tables are available for the Zaurus
92to make OM/Pi working properly. 96to make OM/Pi working properly.
93To get the character conversion in OM/Pi working, please download 97To get the character conversion in OM/Pi working, please download
94at the sourceforge project site the package 98at the sourceforge project site the package
95sr-character-conversion_SharpROM_arm.ipk.zip 99sr-character-conversion_SharpROM_arm.ipk.zip
96(or oz-character-conversion_OZ-gcc3xx_arm.ipk.zip for OZ roms) 100(or oz-character-conversion_OZ-gcc3xx_arm.ipk.zip for OZ roms)
97from the section "general files for KDE/Pim" 101from the section "general files for KDE/Pim"
98Instructions how to install this package are in a ReadMe in this file. 102Instructions how to install this package are in a ReadMe in this file.
99 103
100 104
101Fixed the orientation change problem in KA/Pi when switching 105Fixed the orientation change problem in KA/Pi when switching
102portrait/landscape mode. 106portrait/landscape mode.
103 107
104French translation available for KA/Pi and OM/Pi. 108French translation available for KA/Pi and OM/Pi.
105 109
106Fixed some problems with categories in KO/Pi in DTM sync. 110Fixed some problems with categories in KO/Pi in DTM sync.
107 111
108Added selection dialog for export to phone in KA/Pi. 112Added selection dialog for export to phone in KA/Pi.
109 113
110If in KO/Pi is an attendee selected to add to a meeting and this 114If in KO/Pi is an attendee selected to add to a meeting and this
111attendee is already in the list of attendees, this person is not added 115attendee is already in the list of attendees, this person is not added
112again. 116again.
113 117
114Some menu cleanup in KA/Pi. 118Some menu cleanup in KA/Pi.
115 119
116********** VERSION 1.9.12 ************ 120********** VERSION 1.9.12 ************
117 121
118Fix for the bug in KO/Pi What's Next view of version 1.9.11. 122Fix for the bug in KO/Pi What's Next view of version 1.9.11.
119 123
120Bugfix: Licence file is now shown again. 124Bugfix: Licence file is now shown again.
121 125
122OM/Pi now supports Unicode (utf8 charset). 126OM/Pi now supports Unicode (utf8 charset).
123Fixed some bugs in OM/Pi. 127Fixed some bugs in OM/Pi.
124 128
125KA/Pi has more German translation. 129KA/Pi has more German translation.
126 130
127 131
128********** VERSION 1.9.11 ************ 132********** VERSION 1.9.11 ************
129 133
130Fixed several problems in PWM/Pi, like 134Fixed several problems in PWM/Pi, like
131asking the user, if unsaved changed are pending 135asking the user, if unsaved changed are pending
132when closing the app. 136when closing the app.
133And PwM/Pi handles now different texts for the 137And PwM/Pi handles now different texts for the
134fields Description, Username, Password, configurable per category. 138fields Description, Username, Password, configurable per category.
135 139
136Fixed a crash in KO/Pi , when importing/loading vcs files 140Fixed a crash in KO/Pi , when importing/loading vcs files
137which have an entry with an attendee with state: 141which have an entry with an attendee with state:
138NEEDS ACTION 142NEEDS ACTION
139 143
140Fixed some problems in the German translation of OM/Pi, 144Fixed some problems in the German translation of OM/Pi,
141which makes some dialogs not fitting on the screen 145which makes some dialogs not fitting on the screen
142of the Z 5500. 146of the Z 5500.
143 147
144Fixed Qtopia crash, when disabling/deinstalling 148Fixed Qtopia crash, when disabling/deinstalling
145KO/Pi alarm applet. 149KO/Pi alarm applet.
146 150
147Implemented direct KDE<->KA/Pi sync for KA/Pi running 151Implemented direct KDE<->KA/Pi sync for KA/Pi running
148on Linux desktop. 152on Linux desktop.
149 153
150Added feature "remove sync info" to sync menu. 154Added feature "remove sync info" to sync menu.
151 155
152Tweaked the KO/Pi What's next view a bit, added 156Tweaked the KO/Pi What's next view a bit, added
153setting to hide events that are done. 157setting to hide events that are done.
154 158
155Disabled "beam receive enabled" on startup to 159Disabled "beam receive enabled" on startup to
156avoid problems if Fastload is enabled. 160avoid problems if Fastload is enabled.
157Please set "beam receive enabled", 161Please set "beam receive enabled",
158if you want to receive data via IR. 162if you want to receive data via IR.
159 163
160Fixed bug in direct KDE<->KO/Pi sync for KO/Pi running 164Fixed bug in direct KDE<->KO/Pi sync for KO/Pi running
161on Linux desktop. 165on Linux desktop.
162 166
163Made in KA/Pi scrolling possible, if details view is selected. 167Made in KA/Pi scrolling possible, if details view is selected.
164(The keyboard focus is set automatically to the search line) 168(The keyboard focus is set automatically to the search line)
165 169
166Fixed a bug in DMT sync, that a new entry in DTM was added 170Fixed a bug in DMT sync, that a new entry in DTM was added
167on every sync to Kx/Pi. 171on every sync to Kx/Pi.
168 172
169Fixed missing writing of KA/Pi categories to DMT entries when syncing. 173Fixed missing writing of KA/Pi categories to DMT entries when syncing.
170 174
171Fixed a bug in DMT sync with todos created in KO/Pi containing 175Fixed a bug in DMT sync with todos created in KO/Pi containing
172non-latin1 characters. 176non-latin1 characters.
173 177
174Rearranged package contents of Sharp-ipks and made all 178Rearranged package contents of Sharp-ipks and made all
175packages installable on SD again. 179packages installable on SD again.
176 180
177Fixed the writing of addressbook data in DTM sync. 181Fixed the writing of addressbook data in DTM sync.
178Empty fields in KA/Pi were not removed. 182Empty fields in KA/Pi were not removed.
179 183
180Added better category handling in KA/Pi: 184Added better category handling in KA/Pi:
181Added item 185Added item
182Edit Categories and 186Edit Categories and
183Manage new categories 187Manage new categories
184to the settings menu. 188to the settings menu.
185Possible to configure a view to display categories. 189Possible to configure a view to display categories.
186 190
187Added detailed "KDE Sync Howto" and "Multi Sync Howto" to Help menu. 191Added detailed "KDE Sync Howto" and "Multi Sync Howto" to Help menu.
188 192
189Fixed displaying of "free" days and time in KO Monthview and Agendaview. 193Fixed displaying of "free" days and time in KO Monthview and Agendaview.
190 194
191... and many other bugfixes. 195... and many other bugfixes.
192 196
193********** VERSION 1.9.10 ************ 197********** VERSION 1.9.10 ************
194 198
195Many internal small bugfixes. 199Many internal small bugfixes.
196And fix of the "big" bug in KO/Pi, 200And fix of the "big" bug in KO/Pi,
197that after Syncing the appointments had an offset by several hours. 201that after Syncing the appointments had an offset by several hours.
198That was a problem with the internal timezone setting, 202That was a problem with the internal timezone setting,
199introduced by the changed timezone configuration settings. 203introduced by the changed timezone configuration settings.
200 204
201German translation for OM/Pi is now available. 205German translation for OM/Pi is now available.
202 206
203 207
204********** VERSION 1.9.9 ************ 208********** VERSION 1.9.9 ************
205 209
206KDE-Pim/Pi has a new Member! 210KDE-Pim/Pi has a new Member!
207It is called PWM/Pi (Passwordmanager/platform-independent) 211It is called PWM/Pi (Passwordmanager/platform-independent)
208and it is available for the Zaurus. 212and it is available for the Zaurus.
209It is planned, that it will be available later for Windows. 213It is planned, that it will be available later for Windows.
210(And for Linux, of course). 214(And for Linux, of course).
211It is a port of the Passwordmanager of KDE. 215It is a port of the Passwordmanager of KDE.
212It will need the MicroKDElibs to run. 216It will need the MicroKDElibs to run.
213 217
214Made loading of addressbooks in KA/Pi up to 7 times faster! 218Made loading of addressbooks in KA/Pi up to 7 times faster!
215The bigger your addressbook file, the more starting speed 219The bigger your addressbook file, the more starting speed
216will you gain. (relatively) 220will you gain. (relatively)
217 221
218The Qtopia addressbook connector is now platform independend 222The Qtopia addressbook connector is now platform independend
219as well and should work on any platform for importing/exporting 223as well and should work on any platform for importing/exporting
220Qtopia and Opie XML files. 224Qtopia and Opie XML files.
221 225
222Added a +30min feature to the timezone settings to make 226Added a +30min feature to the timezone settings to make
223KDE-Pim/Pi useable in Australia and other parts on the 227KDE-Pim/Pi useable in Australia and other parts on the
224world with strange timezones ;-) 228world with strange timezones ;-)
225 229
226German "Umlaute" should now be sorted correctly on the Z in KA/Pi. 230German "Umlaute" should now be sorted correctly on the Z in KA/Pi.
227 231
228It is now possible to disable the 232It is now possible to disable the
229"receive data via infrared" feature, such that syncing with 233"receive data via infrared" feature, such that syncing with
230Outlook is now possible again with Kx/Pi runing. 234Outlook is now possible again with Kx/Pi runing.
231Please disable it, before syncing Sharp DTM with Outlook. 235Please disable it, before syncing Sharp DTM with Outlook.
232For your convenience, the "receive data via infrared" feature 236For your convenience, the "receive data via infrared" feature
233is disabled automatically, if you sync Kx/Pi with DTM. 237is disabled automatically, if you sync Kx/Pi with DTM.
234You have to enable it again manually after syncing. 238You have to enable it again manually after syncing.
235Enabling this feature makes it impossible to start the 239Enabling this feature makes it impossible to start the
236Sharp DTM apps. If this feature is enabled, you will only get the 240Sharp DTM apps. If this feature is enabled, you will only get the
237alarm notification from KO/Pi and not from the Sharp calendar. 241alarm notification from KO/Pi and not from the Sharp calendar.
238This is very useful if you sync KO/Pi with Sharp DTM, 242This is very useful if you sync KO/Pi with Sharp DTM,
239because after syncing you usually would get notified about 243because after syncing you usually would get notified about
240an alarm by KO/Pi and the Sharp Calendar. 244an alarm by KO/Pi and the Sharp Calendar.
241 245
242Together with the Linux desktop version of KO/Pi 246Together with the Linux desktop version of KO/Pi
243it is now possible to sync KO/Pi on the Zaurus 247it is now possible to sync KO/Pi on the Zaurus
244with the complete KDE-desktop (3.3 or later) 248with the complete KDE-desktop (3.3 or later)
245calendar data easily. 249calendar data easily.
246That makes it possible to sync the Z with one 250That makes it possible to sync the Z with one
247click of a mouse with the KDE-Desktop. 251click of a mouse with the KDE-Desktop.
248This feature it available for all Zaurus platforms KO/Pi 252This feature it available for all Zaurus platforms KO/Pi
249is running on. 253is running on.
250The only thing needed is a running KO/Pi on Linux and 254The only thing needed is a running KO/Pi on Linux and
251a compiled version of the small 255a compiled version of the small
252KDE-Pim/Pi<->KDE-Desktop access command line program, 256KDE-Pim/Pi<->KDE-Desktop access command line program,
253which is in the KDE-Pim/Pi sources available. 257which is in the KDE-Pim/Pi sources available.
254 258
255The "KDE-desktop" syncing feature for KA/Pi will follow 259The "KDE-desktop" syncing feature for KA/Pi will follow
256in the next releases. 260in the next releases.
257 261
258Fixed the vcard export bug, which had the version 1.9.8. 262Fixed the vcard export bug, which had the version 1.9.8.
259 263
260Added missing GERMAN translation to KO/Pi. 264Added missing GERMAN translation to KO/Pi.
261Hi PsionX, could you add the missing french translation?Thx! 265Hi PsionX, could you add the missing french translation?Thx!
262 266
263Translation files for KA/Pi are available as well. 267Translation files for KA/Pi are available as well.
264GERMAN translation will be available in the next release. 268GERMAN translation will be available in the next release.
265PsionX ( yres, you again ;-) ), could you start translating 269PsionX ( yres, you again ;-) ), could you start translating
266KA/Pi? Thx! 270KA/Pi? Thx!
267 271
268You can download the version 1.9.9 at 272You can download the version 1.9.9 at
269 273
270http://sourceforge.net/project/showfiles.php?group_id=104103&package_id=112604 274http://sourceforge.net/project/showfiles.php?group_id=104103&package_id=112604
271 275
272Note: 276Note:
273To run the mail program OM/Pi you need libopenssl. 277To run the mail program OM/Pi you need libopenssl.
274A link to a download loaction is available at 278A link to a download loaction is available at
275ZSI at www.killefiz.de 279ZSI at www.killefiz.de
276 280
277 281
278********** VERSION 1.9.8 ************ 282********** VERSION 1.9.8 ************
279 283
280Fixed character decoding in OM/Pi. 284Fixed character decoding in OM/Pi.
281(e.g. German "Umlaute" were not displayed properly.) 285(e.g. German "Umlaute" were not displayed properly.)
282 286
283Made is possible to reparent todos in KO/Pi. 287Made is possible to reparent todos in KO/Pi.
284Use contextmenu or keys (look at Help-Keys + Colors) for that. 288Use contextmenu or keys (look at Help-Keys + Colors) for that.
285 289
286Added the missing Sync-Howto and WhatsNew to the packages. 290Added the missing Sync-Howto and WhatsNew to the packages.
287 291
288KO/Pi on Linux desktop can now sync with KDE desktop. 292KO/Pi on Linux desktop can now sync with KDE desktop.
289That means: When using KO/Pi on Linux desktop for syncing with 293That means: When using KO/Pi on Linux desktop for syncing with
290KDE desktop and the Zaurus, the Zaurus can be synced now 294KDE desktop and the Zaurus, the Zaurus can be synced now
291with all KDE-Calendar resources, not only with one local file. 295with all KDE-Calendar resources, not only with one local file.
292(That makes it possible to sync the Zaurus with the 296(That makes it possible to sync the Zaurus with the
293calendar data on a Kolab server) 297calendar data on a Kolab server)
294 298
295KA/Pi syncing with KDE desktop will be available in the next version. 299KA/Pi syncing with KDE desktop will be available in the next version.
296 300
297 301
298********** VERSION 1.9.7 ************ 302********** VERSION 1.9.7 ************
299 303
300KO/Pi - KA/Pi on Windows: 304KO/Pi - KA/Pi on Windows:
301Now a directory can be defined by the user, where the 305Now a directory can be defined by the user, where the
302application/config data should be saved. 306application/config data should be saved.
303 Define your desired path in the evironment variable 307 Define your desired path in the evironment variable
304 MICROKDEHOME 308 MICROKDEHOME
305 before starting KO/Pi or KA/Pi. 309 before starting KO/Pi or KA/Pi.
306 310
307An easy Kx/Pi to Kx/Pi syncing is now possible 311An easy Kx/Pi to Kx/Pi syncing is now possible
308(it is called Pi-Sync) via network. 312(it is called Pi-Sync) via network.
309Please look at the Sync Howto. 313Please look at the Sync Howto.
310 314
311Exporting of calendar data and contacts to mobile phones is now possible. 315Exporting of calendar data and contacts to mobile phones is now possible.
312The SyncHowto is updated with information howto 316The SyncHowto is updated with information howto
313access/sync mobile phones. 317access/sync mobile phones.
314Please look at the Sync Howto. 318Please look at the Sync Howto.
315 319
316Now KO/Pi and KA/Pi on the Zaurus can receive data via infrared directly. 320Now KO/Pi and KA/Pi on the Zaurus can receive data via infrared directly.
317Please disable Fastload for the original contact/calendar applications 321Please disable Fastload for the original contact/calendar applications
318and close them. 322and close them.
319KO/Pi and KA/Pi must be running in order to receive the data. 323KO/Pi and KA/Pi must be running in order to receive the data.
320(KO/Pi and KA/Pi are always running if Fastload for them is enabled!) 324(KO/Pi and KA/Pi are always running if Fastload for them is enabled!)
321 325
322In the KA/Pi details view are now the preferred tel. numbers displayed on top 326In the KA/Pi details view are now the preferred tel. numbers displayed on top
323of the other data ( emails/tel.numbers/addresses) 327of the other data ( emails/tel.numbers/addresses)
324 328
325Fixed some syncing problems in KA/Pi. 329Fixed some syncing problems in KA/Pi.
326 330
327Added font settings for the KA/Pi details view. 331Added font settings for the KA/Pi details view.
328Added fields "children's name" and "gender" to KA/Pi. 332Added fields "children's name" and "gender" to KA/Pi.
329 333
330Made searching in KA/Pi better: 334Made searching in KA/Pi better:
331Now the first item in a view is selected after a search automatically and 335Now the first item in a view is selected after a search automatically and
332the views can be scrolled up/down when the search input field has the keyboard focus. 336the views can be scrolled up/down when the search input field has the keyboard focus.
333 337
334And, of course, fixed a bunch of reported bugs in KO/Pi and KA/Pi. 338And, of course, fixed a bunch of reported bugs in KO/Pi and KA/Pi.
335 339
336 340
337********** VERSION 1.9.6 ************ 341********** VERSION 1.9.6 ************
338 342
339Changes in the external application communication on the Zaurus 343Changes in the external application communication on the Zaurus
340in order to use less RAM when the apps are running. 344in order to use less RAM when the apps are running.
341First syncing of addressbooks (KA/Pi) is possible. 345First syncing of addressbooks (KA/Pi) is possible.
342 346
343 347
344********** VERSION 1.9.5a ************ 348********** VERSION 1.9.5a ************
345 349
346Fixed a bug in KO/Pi in the SharpDTM sync of version 1.9.5. 350Fixed a bug in KO/Pi in the SharpDTM sync of version 1.9.5.
347Fixed some small bugs. 351Fixed some small bugs.
348KA/Pi shows now the birthday in summary view. 352KA/Pi shows now the birthday in summary view.
349Now OM/Pi and KA/Pi are using the date format defined in KO/Pi 353Now OM/Pi and KA/Pi are using the date format defined in KO/Pi
350for displaying dates. 354for displaying dates.
351 355
352 356
353********** VERSION 1.9.5 ************ 357********** VERSION 1.9.5 ************
354 358
355There is still no Addressbook syncing! 359There is still no Addressbook syncing!
356 360
357New in 1.9.5: 361New in 1.9.5:
358 362
359Many bugfixes. 363Many bugfixes.
360Better searching in KA/Pi. 364Better searching in KA/Pi.
361You can configure in KA/Pi if you want to search only after 365You can configure in KA/Pi if you want to search only after
362<return> key pressed. 366<return> key pressed.
363 367
364Better mail downloading in OM/Pi. 368Better mail downloading in OM/Pi.
365 369
366First experimental alpha version of sync of KO/Pi with mobile phones. 370First experimental alpha version of sync of KO/Pi with mobile phones.
367See gammu documentation for supported phones. 371See gammu documentation for supported phones.
368You need to install the package kammu_1.9.5_arm.ipk for sync of KO/Pi with mobile phones. kammu_1.9.5_arm.ipk needs libbluetooth and libsdp. 372You need to install the package kammu_1.9.5_arm.ipk for sync of KO/Pi with mobile phones. kammu_1.9.5_arm.ipk needs libbluetooth and libsdp.
369Quick hint how to use: 373Quick hint how to use:
370NOTE: MOBILE PHONE SYNC IS EXPERIMENTAL! 374NOTE: MOBILE PHONE SYNC IS EXPERIMENTAL!
371Install kammu_1.9.5_arm.ipk , libbluetooth and libsdp. 375Install kammu_1.9.5_arm.ipk , libbluetooth and libsdp.
372Create syncprofile - mobile device 376Create syncprofile - mobile device
373Remove entry for model. (Leave empty ). 377Remove entry for model. (Leave empty ).
374Enable infrared on Zaurus and your Phone. 378Enable infrared on Zaurus and your Phone.
375Sync. 379Sync.
376To get a more detailed log, start kopi from konsole. 380To get a more detailed log, start kopi from konsole.
377 381
378********** VERSION 1.9.4 ************ 382********** VERSION 1.9.4 ************
379 383
380This is the version 1.9.4 of KDE-Pim/Pi for the Zaurus. 384This is the version 1.9.4 of KDE-Pim/Pi for the Zaurus.
381 385
382WARNING: 386WARNING:
383PLEASE BACKUP ALL YOUR DATA! 387PLEASE BACKUP ALL YOUR DATA!
384We have changed a lot and maybe there are some unknown problems. 388We have changed a lot and maybe there are some unknown problems.
385 389
386SYNC HANDLING HAS CHANGED! 390SYNC HANDLING HAS CHANGED!
387Such that, if you sync now with an already synded device, you will duplicated entries after the first sync. 391Such that, if you sync now with an already synded device, you will duplicated entries after the first sync.
388(This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks). 392(This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks).
389 393
390You need the kmicrokdelibs_1.9.4_arm.ipk as a base for the other programs. 394You need the kmicrokdelibs_1.9.4_arm.ipk as a base for the other programs.
391If you get the error: "Install only possible in main memory", just try it again to install it on SD card. That worked for me. And it was reported that rebooting Qtopia did help in this case as well. 395If you get the error: "Install only possible in main memory", just try it again to install it on SD card. That worked for me. And it was reported that rebooting Qtopia did help in this case as well.
392 396
393As programs are available: 397As programs are available:
394KO/Pi (korganizer ipk) - a calendar program. 398KO/Pi (korganizer ipk) - a calendar program.
395KA/Pi (kaddressbook ipk ) - an addressbook 399KA/Pi (kaddressbook ipk ) - an addressbook
396OM/Pi (kopiemail ipk ) an email program with pop/smtp and IMAP support. 400OM/Pi (kopiemail ipk ) an email program with pop/smtp and IMAP support.
397 401
398An alarm notification program ( korganizer-alarm ipk ) for KO/Pi that notifies you about alarms, even if the Zaurus is in suspend mode. 402An alarm notification program ( korganizer-alarm ipk ) for KO/Pi that notifies you about alarms, even if the Zaurus is in suspend mode.
399(If you do not see an icon in the taskbar after installing korganizer-alarm, please restart Qtopia) 403(If you do not see an icon in the taskbar after installing korganizer-alarm, please restart Qtopia)
400 404
401All the applications are installed in a "Pim" TAB. 405All the applications are installed in a "Pim" TAB.
402If this TAB is new on your system, you can get an icon in this TAB by installing pim_TAB_icon_1.9.4_arm.ipk 406If this TAB is new on your system, you can get an icon in this TAB by installing pim_TAB_icon_1.9.4_arm.ipk
403 407
404All the application are integrated. 408All the application are integrated.
405Such that you can choose in KO/Pi the attendees of a meeting from the addresses in KA/Pi. When you click in KA/Pi on the email address, OM/Pi is started to write the mail. 409Such that you can choose in KO/Pi the attendees of a meeting from the addresses in KA/Pi. When you click in KA/Pi on the email address, OM/Pi is started to write the mail.
406 410
407HINT: 411HINT:
408If you install KPhone/Pi 0.9.7, it will be called, if you click in KA/Pi on a phone number. 412If you install KPhone/Pi 0.9.7, it will be called, if you click in KA/Pi on a phone number.
409 413
410What's new? 414What's new?
411 415
412SYNC HANDLING HAS CHANGED! 416SYNC HANDLING HAS CHANGED!
413Such that, if you sync now with an already synded device, you will duplicated entries after the first sync. 417Such that, if you sync now with an already synded device, you will duplicated entries after the first sync.
414(This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks). 418(This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks).
415 419
416New in OM/Pi: 420New in OM/Pi:
417When copying(i.e. downloading mails) , you can specify, that only mails of a given size should be downloaded. Added mail copy possibility for selected mails. 421When copying(i.e. downloading mails) , you can specify, that only mails of a given size should be downloaded. Added mail copy possibility for selected mails.
418 422
419New in KO/Pi: 423New in KO/Pi:
420French is now available for KO/Pi. 424French is now available for KO/Pi.
421Choose menu:Actions - Configure:TAB locale 425Choose menu:Actions - Configure:TAB locale
422Syncing has changed. 426Syncing has changed.
423Phone sync available soon. 427Phone sync available soon.
424Not much changes, I cannot remember them ... 428Not much changes, I cannot remember them ...
425 429
426New in KA/Pi: 430New in KA/Pi:
427Beaming possible. 431Beaming possible.
428Sharp DTM readonly access possible( create a new DTM resource ); 432Sharp DTM readonly access possible( create a new DTM resource );
429Better searching possible. 433Better searching possible.
430Search is performed only after pressing the return key. 434Search is performed only after pressing the return key.
431Use wildcard * to specify parts of a name. 435Use wildcard * to specify parts of a name.
432 436
433Better name/email selection dialog (called from KO/Pi or OM/Pi). In this dialog, now searching is possible. Like in KA/Pi, use return key and wildcard * . 437Better name/email selection dialog (called from KO/Pi or OM/Pi). In this dialog, now searching is possible. Like in KA/Pi, use return key and wildcard * .
434 438
435A big improvement is the new management of the contact access. 439A big improvement is the new management of the contact access.
436In version 1.9.3, every application was using their own addressbook access data. 440In version 1.9.3, every application was using their own addressbook access data.
437That means, the addressbook was loaded up to three times in the memory, when accessed by KA/Pi, KO/Pi and OM/Pi. 441That means, the addressbook was loaded up to three times in the memory, when accessed by KA/Pi, KO/Pi and OM/Pi.
438That was wasting of memory, if you had several hundreds of contacts. 442That was wasting of memory, if you had several hundreds of contacts.
439 443
440Now only KA/Pi accesses the addressbook. 444Now only KA/Pi accesses the addressbook.
441If KO/Pi or OM/Pi want to get some name/email data, they request KA/Pi to open the name/email selection dialog and send it back to them. 445If KO/Pi or OM/Pi want to get some name/email data, they request KA/Pi to open the name/email selection dialog and send it back to them.
442If you click on an attendee in a meeting, its contact data is displayed in KA/Pi directly. 446If you click on an attendee in a meeting, its contact data is displayed in KA/Pi directly.
443That means, if KO/Pi or OM/Pi want to access contact data, KA/Pi is started first. 447That means, if KO/Pi or OM/Pi want to access contact data, KA/Pi is started first.
444 448
445New in the KO/Pi alarm applet: 449New in the KO/Pi alarm applet:
446Configure your own timer popup menu! 450Configure your own timer popup menu!
447(Text and minutes for timer countdown) 451(Text and minutes for timer countdown)
448Just edit the file 452Just edit the file
449(yourhomedir)/.kopialarmtimerrc 453(yourhomedir)/.kopialarmtimerrc
450and start/stop a timer to get a new menu with the data of this file. 454and start/stop a timer to get a new menu with the data of this file.
451 455
452********** VERSION 1.9.3 ************ 456********** VERSION 1.9.3 ************
4531) 4571)
454Now KO/Pi on Windows imports directly the calendar data of 458Now KO/Pi on Windows imports directly the calendar data of
455an installed Outlook. Should work with OL version >= 2000. 459an installed Outlook. Should work with OL version >= 2000.
456 460
457********** VERSION 1.9.2 ************ 461********** VERSION 1.9.2 ************
4581) 4621)
459KDE-Pim/Pi has got a new member: 463KDE-Pim/Pi has got a new member:
460KmicroMail (KM/Pi) is a mail program, 464KmicroMail (KM/Pi) is a mail program,
461which can handle IMAP and POP mail access. 465which can handle IMAP and POP mail access.
462It is based on Opie-Mail v3. 466It is based on Opie-Mail v3.
463All dependencies to the Opie libraries ar removed, 467All dependencies to the Opie libraries ar removed,
464such that no additional Opie lib is needed. 468such that no additional Opie lib is needed.
465It is already integrated in KO/Pi and KA/Pi. 469It is already integrated in KO/Pi and KA/Pi.
466It it now available for the Zaurus,probably it 470It it now available for the Zaurus,probably it
467will be available for other platforms later. 471will be available for other platforms later.
468Hint: 472Hint:
469Create your own contact (name + email) 473Create your own contact (name + email)
470in KA/Pi, select this contact and choose menu: 474in KA/Pi, select this contact and choose menu:
471Settings - Set Who Am I. 475Settings - Set Who Am I.
472Now the settings of this contact are used as 476Now the settings of this contact are used as
473the sender data in KM/Pi. 477the sender data in KM/Pi.
4742) 4782)
475KDE-Pim/Pi is split up in five different 479KDE-Pim/Pi is split up in five different
476packages now precompiled for Sharp Zaurus: 480packages now precompiled for Sharp Zaurus:
477--kmicrokdelibs_1.9.2_arm.ipk 481--kmicrokdelibs_1.9.2_arm.ipk
478The libs are needed for any 482The libs are needed for any
479of the following programs: 483of the following programs:
480--kaddressbook_1.9.2_arm.ipk 484--kaddressbook_1.9.2_arm.ipk
481--kmicromail_1.9.2_arm.ipk 485--kmicromail_1.9.2_arm.ipk
482--korganizer_1.9.2_arm.ipk 486--korganizer_1.9.2_arm.ipk
483Independ from that, there is the alarm applet 487Independ from that, there is the alarm applet
484available for KO/Pi, which also offers 488available for KO/Pi, which also offers
485quick access for a new mail or 489quick access for a new mail or
486showing the addressbook.: 490showing the addressbook.:
487--korganizer-alarm_1.9.2_arm.ipk 491--korganizer-alarm_1.9.2_arm.ipk
488Independend means, that the alarm applet 492Independend means, that the alarm applet
489does not need any of the libs or programs above to run. 493does not need any of the libs or programs above to run.
490But it would be quite useless without these programs. 494But it would be quite useless without these programs.
491NOTE: 495NOTE:
492If you get a 496If you get a
493"This application depends on other programs" 497"This application depends on other programs"
494during installation of 498during installation of
495--kmicrokdelibs_1.9.2_arm.ipk 499--kmicrokdelibs_1.9.2_arm.ipk
496you probably do not have to care about that. 500you probably do not have to care about that.
497kmicrokdelibs_1.9.2 will come with some 501kmicrokdelibs_1.9.2 will come with some
498resource plugins, which needs additional libraries. 502resource plugins, which needs additional libraries.
499(E.g. libopie1, if you want to use the 503(E.g. libopie1, if you want to use the
500opie resource connector in KA/Pi). 504opie resource connector in KA/Pi).
501If you do not have this libraries installed, 505If you do not have this libraries installed,
502you simply cannot use the resource. 506you simply cannot use the resource.
503To make it clear: 507To make it clear:
504If the libraries are missing, the applications 508If the libraries are missing, the applications
505using kmicrokdelibs will start, 509using kmicrokdelibs will start,
506because the resources are plugins. 510because the resources are plugins.
5073) 5113)
508KO/Pi and friends are now installable on SD-Card! 512KO/Pi and friends are now installable on SD-Card!
509It is recommended to install all libs and apps 513It is recommended to install all libs and apps
510on the SD card or all in the internal storage. 514on the SD card or all in the internal storage.
511There may be problems, if this is mixed. 515There may be problems, if this is mixed.
5124) 5164)
513Fixed two bugs in the alarm notification on Windows. 517Fixed two bugs in the alarm notification on Windows.
5145) 5185)
515Great improvement! 519Great improvement!
516KO/Pi uses now the latest version of libical. 520KO/Pi uses now the latest version of libical.
517Libical is the library which actually reads 521Libical is the library which actually reads
518the calendar files and extract the data from it. 522the calendar files and extract the data from it.
519With the old version, there were problems 523With the old version, there were problems
520(crashes or program hangs) when licical did read 524(crashes or program hangs) when licical did read
521files, which were not stored from KO/Pi. 525files, which were not stored from KO/Pi.
522I do not know, if the new libical works perfect, 526I do not know, if the new libical works perfect,
523but actually it works much better than 527but actually it works much better than
524the old version. 528the old version.
525There are no problems with compatibility with 529There are no problems with compatibility with
526old calendar files of KO/Pi, of course! 530old calendar files of KO/Pi, of course!
5276) 5316)
528New in KA/Pi: 532New in KA/Pi:
529Opie addressbook resource connector available! 533Opie addressbook resource connector available!
530You will need libopie1 and the opie addressbook, 534You will need libopie1 and the opie addressbook,
531of course. 535of course.
532With the Opie addressbook resource connector, 536With the Opie addressbook resource connector,
533you can access the Opie addressbook readonly in KA/Pi. 537you can access the Opie addressbook readonly in KA/Pi.
534If you want to edit or import the data into KA/Pi, 538If you want to edit or import the data into KA/Pi,
535do this: 539do this:
536a) Create an Opie resource. 540a) Create an Opie resource.
537 (Menu: Settings-Configure Resources). 541 (Menu: Settings-Configure Resources).
538After configuration and restarting KA/Pi you should see 542After configuration and restarting KA/Pi you should see
539the Opie contacts in KA/Pi. 543the Opie contacts in KA/Pi.
540b) Select some or all Opie contacts. 544b) Select some or all Opie contacts.
541(NOTE: +++++ 545(NOTE: +++++
542To know exactly, what contacts are Opie contacts, 546To know exactly, what contacts are Opie contacts,
543do this: Choose menu: 547do this: Choose menu:
544View-Modify View - TAB Fields. 548View-Modify View - TAB Fields.
545Select in the above list "Resource" and click 549Select in the above list "Resource" and click
546down arrow to add it to the "Selected fields". 550down arrow to add it to the "Selected fields".
547Click OK. 551Click OK.
548Now you have a new column "Resource" in your list, 552Now you have a new column "Resource" in your list,
549where you can see, what an Opie resource is. 553where you can see, what an Opie resource is.
550++++ NOTE end.) 554++++ NOTE end.)
551Ok, we do have now some Opie contacts seleted. 555Ok, we do have now some Opie contacts seleted.
552(Use SHIFT or CTRL key in order to multiple select). 556(Use SHIFT or CTRL key in order to multiple select).
553c) Choose menu: Edit-Copy. 557c) Choose menu: Edit-Copy.
554d) Choose menu: Edit-Paste. 558d) Choose menu: Edit-Paste.
555e) Select the resource, you want to add the contacts to. 559e) Select the resource, you want to add the contacts to.
556Congrats! Now you have read/write access to the copied 560Congrats! Now you have read/write access to the copied
557opie contacts as "real" KA/Pi contacts. 561opie contacts as "real" KA/Pi contacts.
558 562
559 563
560********** VERSION 1.9.1 ************ 564********** VERSION 1.9.1 ************
5611) 5651)
562 +++ IMPORTANT 1 +++ 566 +++ IMPORTANT 1 +++
563 567
564The storing place of the default calendar 568The storing place of the default calendar
565file has changed! 569file has changed!
566The default calendar file was 570The default calendar file was
567Applications/korganizer/mycalendar.ics 571Applications/korganizer/mycalendar.ics
568on Zaurus and 572on Zaurus and
569(yourHomeDir)/korganizer/mycalendar.ics 573(yourHomeDir)/korganizer/mycalendar.ics
570on Windows/Linux desktop. Now it is 574on Windows/Linux desktop. Now it is
571(yourHomeDir)/kdepim/korganizer/mycalendar.ics 575(yourHomeDir)/kdepim/korganizer/mycalendar.ics
572on Zaurus, Windows and Linux. 576on Zaurus, Windows and Linux.
573To load the old file, choose menu 577To load the old file, choose menu
574File-Load calendar backup. 578File-Load calendar backup.
575(It should be loaded automatically 579(It should be loaded automatically
576at startup with a warning message displayed). 580at startup with a warning message displayed).
577The place of the configuration file has changed too. 581The place of the configuration file has changed too.
578If you want to use your old KO/Pi config, 582If you want to use your old KO/Pi config,
579copy it to 583copy it to
580(yourHomeDir)/kdepim/config/korganizerrc 584(yourHomeDir)/kdepim/config/korganizerrc
581Please read VERSION 1.9.0 - topic 3) as well! 585Please read VERSION 1.9.0 - topic 3) as well!
582 586
583 +++ IMPORTANT 2 +++ 587 +++ IMPORTANT 2 +++
584 588
585Because of the new paths, you will need 589Because of the new paths, you will need
586a new version of the KO/Pi alarm applet 590a new version of the KO/Pi alarm applet
587for Zaurus. 591for Zaurus.
588Use version >= 1.9.1 592Use version >= 1.9.1
589 593
5902) 5942)
591Now the QWhat'sThis Icon works for items 595Now the QWhat'sThis Icon works for items
592in the month view as well. 596in the month view as well.
593(See VERSION 1.7.8 Topic 1) ). 597(See VERSION 1.7.8 Topic 1) ).
5943) 5983)
595You can import birtsdays/anniversaries 599You can import birtsdays/anniversaries
596from KA/Pi into KO/Pi. 600from KA/Pi into KO/Pi.
597Choose menu File-Import birthdays. 601Choose menu File-Import birthdays.
598If you import twice, already imported items 602If you import twice, already imported items
599will not be imported again, if they 603will not be imported again, if they
600have not been changed in KO/Pi. 604have not been changed in KO/Pi.
6014) 6054)
602When syncing with sharp DTM, now a progress 606When syncing with sharp DTM, now a progress
603is shown, when the data is written back. 607is shown, when the data is written back.
604If there is much data in KO/Pi and no data 608If there is much data in KO/Pi and no data
605in DTM, that can take a long time. 609in DTM, that can take a long time.
606(But only for the first time ). 610(But only for the first time ).
6075) 6115)
608In the search dialog, you can search 612In the search dialog, you can search
609now for the name/email of an attendee 613now for the name/email of an attendee
610of an event/todo. 614of an event/todo.
611To get more space for displaying 615To get more space for displaying
612search results, the buttons 616search results, the buttons
613for "search" and "close" on the 617for "search" and "close" on the
614bottom are removed in the PDA version. 618bottom are removed in the PDA version.
615You have to click OK in the top right 619You have to click OK in the top right
616corner to do a search. 620corner to do a search.
6176) 6216)
618Now it is possible to disable the displaying 622Now it is possible to disable the displaying
619of todo items in the Allday part of the Agenda. 623of todo items in the Allday part of the Agenda.
620Choose Menu Action-Configure, 624Choose Menu Action-Configure,
621TAB Todo View, checkbox 625TAB Todo View, checkbox
622"Allday Agenda view shows todos" 626"Allday Agenda view shows todos"
6237) 6277)
624If FastLoad is enabled, now the settings and the 628If FastLoad is enabled, now the settings and the
625calendar data are saved, when KO/Pi is closed. 629calendar data are saved, when KO/Pi is closed.
626(If no Fastload is enabled, KO/Pi saves 630(If no Fastload is enabled, KO/Pi saves
627the data as well, of course) 631the data as well, of course)
6288) 6328)
629The Agenda View has a minimize-splitter now, 633The Agenda View has a minimize-splitter now,
630such that the height of the allday part can be 634such that the height of the allday part can be
631changed quickly. 635changed quickly.
632 636
633********** VERSION 1.9.0 ************ 637********** VERSION 1.9.0 ************
6341) 6381)
635KO/Pi is now merged with the new microKDE from KA/Pi. 639KO/Pi is now merged with the new microKDE from KA/Pi.
636KO/Pi accesses now KA/Pi as the addressbook. 640KO/Pi accesses now KA/Pi as the addressbook.
637The other ddressbook-plugins are not working any longer. 641The other ddressbook-plugins are not working any longer.
638(It is planned, that later KA/Pi itself uses these plugins) 642(It is planned, that later KA/Pi itself uses these plugins)
639New versions of KO/Pi are only available 643New versions of KO/Pi are only available
640together with KA/Pi as the KDE-Pim/Pi package. 644together with KA/Pi as the KDE-Pim/Pi package.
6412) 6452)
642If you click on an attendee of a meeting in the 646If you click on an attendee of a meeting in the
643event viewer, a detailed summary of the 647event viewer, a detailed summary of the
644attendee is shown. 648attendee is shown.
6453) 6493)
646The place of the configuration file has changed. 650The place of the configuration file has changed.
647If you want to use your old KO/Pi config, copy 651If you want to use your old KO/Pi config, copy
648Applications/korganizer/config_korganizerrc 652Applications/korganizer/config_korganizerrc
649to 653to
650Applications/korganizer/config/korganizerrc 654Applications/korganizer/config/korganizerrc
651 655
652********** VERSION 1.7.8 ************ 656********** VERSION 1.7.8 ************
6531) 6571)
654Now the QWhat'sThis ist working. 658Now the QWhat'sThis ist working.
655Enable the QWhat'sThis icon in the toolbar. 659Enable the QWhat'sThis icon in the toolbar.
656(You have to restart to reload the changed toolbar config). 660(You have to restart to reload the changed toolbar config).
657Now click on the QWhat'sThis Icon 661Now click on the QWhat'sThis Icon
658in the top right corner of KO/Pi. 662in the top right corner of KO/Pi.
659Then click on an item in the Agenda View: 663Then click on an item in the Agenda View:
660You will get a detailed display of the items content. 664You will get a detailed display of the items content.
6612) 6652)
662Some other very minor changes. 666Some other very minor changes.
663But I have forgotten the details ... 667But I have forgotten the details ...
664For that reason I start this log here: 668For that reason I start this log here:
665To document my changes, when I am doing it. 669To document my changes, when I am doing it.
666 670
667********** VERSION 1.7.7 ************ 671********** VERSION 1.7.7 ************
668Stable Version of KO/Pi 672Stable Version of KO/Pi
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index 5d35324..05c4e26 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1,1063 +1,1063 @@
1{ "10 minutes","10 Minuten" }, 1{ "10 minutes","10 Minuten" },
2{ "10th","10." }, 2{ "10th","10." },
3{ "11th","11." }, 3{ "11th","11." },
4{ "12 pm Format","12 AM/PM Format" }, 4{ "12 pm Format","12 AM/PM Format" },
5{ "12th","12." }, 5{ "12th","12." },
6{ "13th","13." }, 6{ "13th","13." },
7{ "14th","14." }, 7{ "14th","14." },
8{ "15th","15." }, 8{ "15th","15." },
9{ "16th","16." }, 9{ "16th","16." },
10{ "17th","17." }, 10{ "17th","17." },
11{ "18th","18." }, 11{ "18th","18." },
12{ "19th","19." }, 12{ "19th","19." },
13{ "1 Day","1 Tag" }, 13{ "1 Day","1 Tag" },
14{ "1 h","1 Std" }, 14{ "1 h","1 Std" },
15{ "1 (high)","1 (hoch)" }, 15{ "1 (high)","1 (hoch)" },
16{ "5 (low)","5" }, 16{ "5 (low)","5" },
17{ "1st","1." }, 17{ "1st","1." },
18{ "20th","20." }, 18{ "20th","20." },
19{ "21st","21." }, 19{ "21st","21." },
20{ "22nd","22." }, 20{ "22nd","22." },
21{ "23rd","23." }, 21{ "23rd","23." },
22{ "24:00 Hour Format","24:00 Stunden Format" }, 22{ "24:00 Hour Format","24:00 Stunden Format" },
23{ "24th","24." }, 23{ "24th","24." },
24{ "25th","25." }, 24{ "25th","25." },
25{ "26th","26." }, 25{ "26th","26." },
26{ "27th","27." }, 26{ "27th","27." },
27{ "28th","28." }, 27{ "28th","28." },
28{ "29th","29." }, 28{ "29th","29." },
29{ "2nd","2." }, 29{ "2nd","2." },
30{ "30 minutes","30 Minuten" }, 30{ "30 minutes","30 Minuten" },
31{ "30th","30." }, 31{ "30th","30." },
32{ "31st","31." }, 32{ "31st","31." },
33{ "3rd","3." }, 33{ "3rd","3." },
34{ "4th","4." }, 34{ "4th","4." },
35{ "5 (lowest)","5 (Niedrigster)" }, 35{ "5 (lowest)","5 (Niedrigster)" },
36{ "5th","5." }, 36{ "5th","5." },
37{ "6th","6." }, 37{ "6th","6." },
38{ "7th","7." }, 38{ "7th","7." },
39{ "8th","8." }, 39{ "8th","8." },
40{ "9th","9." }, 40{ "9th","9." },
41{ "About...","Über..." }, 41{ "About...","Über..." },
42{ "&Accept","&Akzeptieren" }, 42{ "&Accept","&Akzeptieren" },
43{ "Accept","Akzeptieren" }, 43{ "Accept","Akzeptieren" },
44{ "Accept A&ll","A&lles Akzepieren" }, 44{ "Accept A&ll","A&lles Akzepieren" },
45{ "Access:","Zugriff:" }, 45{ "Access:","Zugriff:" },
46{ "A corresponding event is missing in your calendar!","Ein zugehöriger Termin fehlt in ihrem Kalender!" }, 46{ "A corresponding event is missing in your calendar!","Ein zugehöriger Termin fehlt in ihrem Kalender!" },
47{ "Actions","Aktionen" }, 47{ "Actions","Aktionen" },
48{ "Add Filter","Filter Hinzufügen" }, 48{ "Add Filter","Filter Hinzufügen" },
49{ "&Add","Hinzufügen" }, 49{ "&Add","Hinzufügen" },
50{ "Add","Hinzufügen" }, 50{ "Add","Hinzufügen" },
51{ "Additional email addresses:","Zusätzliche E-Mail Adressen:" }, 51{ "Additional email addresses:","Zusätzliche E-Mail Adressen:" },
52{ "Additional email address:","Zusätzliche E-Mail Adresse:" }, 52{ "Additional email address:","Zusätzliche E-Mail Adresse:" },
53{ "&Addressbook","&Adressbuch" }, 53{ "&Addressbook","&Adressbuch" },
54{ "Address &Book...","Adress&buch..." }, 54{ "Address &Book...","Adress&buch..." },
55{ "Agenda Size","Agende Größe" }, 55{ "Agenda Size","Agende Größe" },
56{ "Agenda Size:","Größe der Agenda:" }, 56{ "Agenda Size:","Größe der Agenda:" },
57{ "Agenda view:","Agenda Ansicht:" }, 57{ "Agenda view:","Agenda Ansicht:" },
58{ "Agenda view background color:","Hintergrund der Agenda Ansicht:" }, 58{ "Agenda view background color:","Hintergrund der Agenda Ansicht:" },
59{ "All attendees","Alle Teilnehmer" }, 59{ "All attendees","Alle Teilnehmer" },
60{ "AllDayAgenda Height:","Höhe Ganztages Agenda:" }, 60{ "AllDayAgenda Height:","Höhe Ganztages Agenda:" },
61{ "Allday","Ganztägig" }, 61{ "Allday","Ganztägig" },
62{ "Anonymous","Anonym" }, 62{ "Anonymous","Anonym" },
63{ "Apply","Anwenden" }, 63{ "Apply","Anwenden" },
64{ "Apr","Apr" }, 64{ "Apr","Apr" },
65{ "April","April" }, 65{ "April","April" },
66{"Ask for every entry on conflict","Frage bei Konflikten nach"}, 66{"Ask for every entry on conflict","Frage bei Konflikten nach"},
67{ "Ask for preferences before syncing","Vor dem Syncronisieren nachfragen" }, 67{ "Ask for preferences before syncing","Vor dem Syncronisieren nachfragen" },
68{ "Ask for quit when closing KO/Pi","Vor dem Beenden von KO/Pi nachfragen" }, 68{ "Ask for quit when closing KO/Pi","Vor dem Beenden von KO/Pi nachfragen" },
69{ "Attendees","Teilnehmer" }, 69{ "Attendees","Teilnehmer" },
70{ "Aug","Aug" }, 70{ "Aug","Aug" },
71{ "August","August" }, 71{ "August","August" },
72{ "Auto-Save","Automatisches Abspeichern" }, 72{ "Auto-Save","Automatisches Abspeichern" },
73{ "Auto save delay in minutes:","Verzög.autom.Speichern in Min" }, 73{ "Auto save delay in minutes:","Verzög.autom.Speichern in Min" },
74{ "Auto saving...","Automatische Sicherung..." }, 74{ "Auto saving...","Automatische Sicherung..." },
75{ "Begin on:","Starte mit:" }, 75{ "Begin on:","Starte mit:" },
76{ "Begins on: %1","Starte mit: %1" }, 76{ "Begins on: %1","Starte mit: %1" },
77{ "<b>From:</b> %1 <b>To:</b> %2","<b>Vom:</b> %1 <b>Zum:</b> %2" }, 77{ "<b>From:</b> %1 <b>To:</b> %2","<b>Vom:</b> %1 <b>Zum:</b> %2" },
78{ "Bigger","Größer" }, 78{ "Bigger","Größer" },
79{ "Biggest","Riesig" }, 79{ "Biggest","Riesig" },
80{ "Big","Groß" }, 80{ "Big","Groß" },
81{ "<b>On:</b> %1","<b>Am:</b> %1" }, 81{ "<b>On:</b> %1","<b>Am:</b> %1" },
82{ "<b>On:</b> %1 <b>From:S</b> %2 <b>To:</b> %3","<b>Am:</b> %1 <b>Vom:S</b> %2 <b>Zum:</b> %3" }, 82{ "<b>On:</b> %1 <b>From:S</b> %2 <b>To:</b> %3","<b>Am:</b> %1 <b>Vom:S</b> %2 <b>Zum:</b> %3" },
83{ "<b>Original event:</b><p>","<b>Original Termin:</b><p>" }, 83{ "<b>Original event:</b><p>","<b>Original Termin:</b><p>" },
84{ " - both are modified after last sync"," - beide wurden nach der letzten Syncronisation verändert" }, 84{ " - both are modified after last sync"," - beide wurden nach der letzten Syncronisation verändert" },
85{ "Busy","Belegt" }, 85{ "Busy","Belegt" },
86{ "&Cancel","Abbre&chen" }, 86{ "&Cancel","Abbre&chen" },
87{ "Cancel","Abbrechen" }, 87{ "Cancel","Abbrechen" },
88{ "Cannot delete To-Do\nwhich has children.","Kann Todo nicht löschen,\n da noch Einträge vorhanden sind" }, 88{ "Cannot delete To-Do\nwhich has children.","Kann Todo nicht löschen,\n da noch Einträge vorhanden sind" },
89{ "Cannot delete To-Do which has children.","Kann Todo nicht löschen, da noch Einträge vorhanden sind" }, 89{ "Cannot delete To-Do which has children.","Kann Todo nicht löschen, da noch Einträge vorhanden sind" },
90{ "Can't generate mail:\nNo event selected.","Kann e-Mail nicht erstellen:\nKein Termin ausgewählt." }, 90{ "Can't generate mail:\nNo event selected.","Kann e-Mail nicht erstellen:\nKein Termin ausgewählt." },
91{ "Categories...","Kategorien..." }, 91{ "Categories...","Kategorien..." },
92{ "Categories","Kategorien" }, 92{ "Categories","Kategorien" },
93{ "Category","Kategorie" }, 93{ "Category","Kategorie" },
94{ "Center View","Zentriere Ansicht" }, 94{ "Center View","Zentriere Ansicht" },
95{ "Change","Ändere" }, 95{ "Change","Ändere" },
96{ "Cinema","Kino" }, 96{ "Cinema","Kino" },
97{ "Click to add a new Todo","Hier klicken, um ein neues Todo anzulegen" }, 97{ "Click to add a new Todo","Hier klicken, um ein neues Todo anzulegen" },
98{ "Clone Item","Klone Eintrag" }, 98{ "Clone Item","Klone Eintrag" },
99{ "&Close","S&chließen" }, 99{ "&Close","S&chließen" },
100{ "Close","Schließen" }, 100{ "Close","Schließen" },
101{ "Close this dialog to abort deletion!","Zum Abbrechen des Löschvorganges Dialog schließen!" }, 101{ "Close this dialog to abort deletion!","Zum Abbrechen des Löschvorganges Dialog schließen!" },
102{ "Colors","Farben" }, 102{ "Colors","Farben" },
103{ "completed","erledigt" }, 103{ "completed","erledigt" },
104{ "completed on %1","erledigt am %1" }, 104{ "completed on %1","erledigt am %1" },
105{ "Complete","Erledigt" }, 105{ "Complete","Erledigt" },
106{ "Confidential","Vertraulich" }, 106{ "Confidential","Vertraulich" },
107{ "Configure...","Einstellungen..." }, 107{ "Configure...","Einstellungen..." },
108{ "Confirm &deletes","Löschvogang bestätigen" }, 108{ "Confirm &deletes","Löschvogang bestätigen" },
109{ "Couldn't load calendar\n '%1'.","Kann Kalender\n '%1' nicht laden." }, 109{ "Couldn't load calendar\n '%1'.","Kann Kalender\n '%1' nicht laden." },
110{ "Counter-event Viewer","Terminzähler Ansicht" }, 110{ "Counter-event Viewer","Terminzähler Ansicht" },
111{ "Daily ending hour:","Feierabend:" }, 111{ "Daily ending hour:","Feierabend:" },
112{ "Daily starting hour:","Anfangszeit:" }, 112{ "Daily starting hour:","Anfangszeit:" },
113{ "Daily","Täglich" }, 113{ "Daily","Täglich" },
114{ "Date Format","Datums Format" }, 114{ "Date Format","Datums Format" },
115{ "Date Format:","Datums Format:" }, 115{ "Date Format:","Datums Format:" },
116{ "DateNavigator:(nr)","Datums Navigator" }, 116{ "DateNavigator:(nr)","Datums Navigator" },
117{ "Dates: ","Datum: " }, 117{ "Dates: ","Datum: " },
118{ "Date && Time","Datum && Zeit" }, 118{ "Date && Time","Datum && Zeit" },
119{ "Day begins at:","Der Tag beginnt um:" }, 119{ "Day begins at:","Der Tag beginnt um:" },
120{ "Days in Next-X-Days:","Tage in Nächste-X-Tage:" }, 120{ "Days in Next-X-Days:","Tage in Nächste-X-Tage:" },
121{ "Days in What's Next:","Tage in What's Next:" }, 121{ "Days in What's Next:","Tage in What's Next:" },
122{ "day(s)","Tag(e)" }, 122{ "day(s)","Tag(e)" },
123{ "Days to show in Next-X-Days view:","Welche Tage in Nächste-X-Tagen anzeigen:" }, 123{ "Days to show in Next-X-Days view:","Welche Tage in Nächste-X-Tagen anzeigen:" },
124{ "day","Tag" }, 124{ "day","Tag" },
125{ "Dec","Dez" }, 125{ "Dec","Dez" },
126{ "December","Dezember" }, 126{ "December","Dezember" },
127{ "Default alarm time:","Standard Alarmzeit:" }, 127{ "Default alarm time:","Standard Alarmzeit:" },
128{ "Default appointment time:","Standard Termin Startzeit:" }, 128{ "Default appointment time:","Standard Termin Startzeit:" },
129{ "Default event color:","Standard Terminfarbe:" }, 129{ "Default event color:","Standard Terminfarbe:" },
130{ "Default","Standard" }, 130{ "Default","Standard" },
131{ "Def. duration of new app.:","Standard Termin Länge:" }, 131{ "Def. duration of new app.:","Standard Termin Länge:" },
132{ "Delete all completed To-Dos?","Alle bereits erledigten Todos löschen?" }, 132{ "Delete all completed To-Dos?","Alle bereits erledigten Todos löschen?" },
133{ "Delete All","Lösche alles" }, 133{ "Delete All","Lösche alles" },
134{ "Delete all selected","Lösche alle Selektierten" }, 134{ "Delete all selected","Lösche alle Selektierten" },
135{ "Delete Current","Aktuellen löschen" }, 135{ "Delete Current","Aktuellen löschen" },
136{ "Delete Event...","Lösche Termin..." }, 136{ "Delete Event...","Lösche Termin..." },
137{ "Delete Event","Lösche Termin" }, 137{ "Delete Event","Lösche Termin" },
138{ "&Delete","Löschen" }, 138{ "&Delete","Löschen" },
139{ "Delete...","Löschen..." }, 139{ "Delete...","Löschen..." },
140{ "Delete","Löschen" }, 140{ "Delete","Löschen" },
141{ "Delete Todo...","Lösche Todo..." }, 141{ "Delete Todo...","Lösche Todo..." },
142{ "Delete To-Do","Lösche Todo" }, 142{ "Delete To-Do","Lösche Todo" },
143{ "Deleting item %d ...","Lösche Eintrag %d..." }, 143{ "Deleting item %d ...","Lösche Eintrag %d..." },
144{ "Descriptions","Beschreibungen" }, 144{ "Descriptions","Beschreibungen" },
145{ "Deselect All","Deselektiere Alle" }, 145{ "Deselect All","Deselektiere Alle" },
146{ "Details","Details" }, 146{ "Details","Details" },
147{ "Dinner","Abendessen" }, 147{ "Dinner","Abendessen" },
148{ "Do you really want\nto close KO/Pi?","Möchten Sie wirklich\nKO/PI verlassen?" }, 148{ "Do you really want\nto close KO/Pi?","Möchten Sie wirklich\nKO/PI verlassen?" },
149{ "Due Date","Fällig am" }, 149{ "Due Date","Fällig am" },
150{ "Due: ","Fällig: "}, 150{ "Due: ","Fällig: "},
151{ "Due Time","Fällig um" }, 151{ "Due Time","Fällig um" },
152{ "Due:","Fällig:"}, 152{ "Due:","Fällig:"},
153{ "Duration: ","Dauer: " }, 153{ "Duration: ","Dauer: " },
154{ "Edit...","Bearbeite..." }, 154{ "Edit...","Bearbeite..." },
155{ "Edit","Bearbeite" }, 155{ "Edit","Bearbeite" },
156{ "Edit Event...","Bearbeite Termin..." }, 156{ "Edit Event...","Bearbeite Termin..." },
157{ "Edit Event","Bearbeite Termin" }, 157{ "Edit Event","Bearbeite Termin" },
158{ "Edit exceptions","Bearbeite Ausnahmen" }, 158{ "Edit exceptions","Bearbeite Ausnahmen" },
159{ "EditorBox:","Editor Fenster:" }, 159{ "EditorBox:","Editor Fenster:" },
160{ "Edit Recurrence Range","Bearbeite Wiederholung" }, 160{ "Edit Recurrence Range","Bearbeite Wiederholung" },
161{ "Edit Todo...","Berabeite Todo..." }, 161{ "Edit Todo...","Berabeite Todo..." },
162{ "Edit To-Do","Todo bearbeiten" }, 162{ "Edit To-Do","Todo bearbeiten" },
163{ "E&mail address:","E&mail Adresse:" }, 163{ "E&mail address:","E&mail Adresse:" },
164{ "(EmptyEmail)","(KeineEmail)" }, 164{ "(EmptyEmail)","(KeineEmail)" },
165{ "(EmptyName)","(KeinName)" }, 165{ "(EmptyName)","(KeinName)" },
166{ "Enable Recurrence","Wiederholender Termin" }, 166{ "Enable Recurrence","Wiederholender Termin" },
167{ "End after","Endet nach"}, 167{ "End after","Endet nach"},
168{ "End by:","Endet am"}, 168{ "End by:","Endet am"},
169{ "End Date","End Datum" }, 169{ "End Date","End Datum" },
170{ "End:","Ende:" }, 170{ "End:","Ende:" },
171{ "End Time","End Zeit" }, 171{ "End Time","End Zeit" },
172{ "English","Englisch" }, 172{ "English","Englisch" },
173{ "Event","Termin" }, 173{ "Event","Termin" },
174{ "Event list","Termin Liste" }, 174{ "Event list","Termin Liste" },
175{ "Events","Termine" }, 175{ "Events","Termine" },
176{ "Event Viewer:","Termin Übersicht:" }, 176{ "Event Viewer:","Termin Übersicht:" },
177{ "every","jede" }, 177{ "every","jede" },
178{ "Exceptions...","Ausnahmen..." }, 178{ "Exceptions...","Ausnahmen..." },
179{ "Exceptions","Ausnahmen" }, 179{ "Exceptions","Ausnahmen" },
180{ "Exclude holidays","Ohne freie Tage" }, 180{ "Exclude holidays","Ohne freie Tage" },
181{ "Exclude Saturdays","Ohne Samstage" }, 181{ "Exclude Saturdays","Ohne Samstage" },
182{ "Feb","Feb" }, 182{ "Feb","Feb" },
183{ "February","Februar" }, 183{ "February","Februar" },
184{ "&Find","Suche!" }, 184{ "&Find","Suche!" },
185{ "Fonts","Schriftart" }, 185{ "Fonts","Schriftart" },
186{ "Force take local entry always","Erzwinge:Nimm immer lokalen Eintrag" }, 186{ "Force take local entry always","Erzwinge:Nimm immer lokalen Eintrag" },
187{ "Force take remote entry always","Erzwinge:Nimm immer fernen Eintrag"}, 187{ "Force take remote entry always","Erzwinge:Nimm immer fernen Eintrag"},
188{ "Free","Frei" }, 188{ "Free","Frei" },
189{ "Friday","Freitag" }, 189{ "Friday","Freitag" },
190{ "Fri","Fr" }, 190{ "Fri","Fr" },
191{ "From:","Vom:" }, 191{ "From:","Vom:" },
192{ "Full &name:","Vor- und &Nachname:" }, 192{ "Full &name:","Vor- und &Nachname:" },
193{ "General","Allgemein" }, 193{ "General","Allgemein" },
194{ "German","Deutsch" }, 194{ "German","Deutsch" },
195{ "Gifts","Geschenke" }, 195{ "Gifts","Geschenke" },
196{ "Go to Today","Heute anzeigen" }, 196{ "Go to Today","Heute anzeigen" },
197{ "Help","Hilfe" }, 197{ "Help","Hilfe" },
198{ "Hide Dates","Daten ausblenden" }, 198{ "Hide Dates","Daten ausblenden" },
199{ "Highlight color:","Markierungen:" }, 199{ "Highlight color:","Markierungen:" },
200{ "Holiday color:","Freie Tage:" }, 200{ "Holiday color:","Freie Tage:" },
201{ "hour(s)","Stunde(n)" }, 201{ "hour(s)","Stunde(n)" },
202{ "In %1 days: ","In %1 Tagen: " }, 202{ "In %1 days: ","In %1 Tagen: " },
203{ "Incomplete Todo:","Unerledigte Aufgaben:" }, 203{ "Incomplete Todo:","Unerledigte Aufgaben:" },
204{ "Information","Information" }, 204{ "Information","Information" },
205{ "Invalid search expression,\ncannot perform ","Kann Suche nicht ausführen" }, 205{ "Invalid search expression,\ncannot perform ","Kann Suche nicht ausführen" },
206{ "Jan","Jan" }, 206{ "Jan","Jan" },
207{ "January","Januar" }, 207{ "January","Januar" },
208{ "JournalView:","Journal Ansicht:" }, 208{ "JournalView:","Journal Ansicht:" },
209{ "Journals","Journale" }, 209{ "Journals","Journale" },
210{ "Jul","Jul" }, 210{ "Jul","Jul" },
211{ "July","Juli" }, 211{ "July","Juli" },
212{ "Jump to date","Springe zum Datum" }, 212{ "Jump to date","Springe zum Datum" },
213{ "June","Juni" }, 213{ "June","Juni" },
214{ "Jun","Jun" }, 214{ "Jun","Jun" },
215{ "Key Bindings...","Tastenzuordnung..." }, 215{ "Key Bindings...","Tastenzuordnung..." },
216{ "Kids","Kinder" }, 216{ "Kids","Kinder" },
217{ "Known Problems...","Bekannte Probleme..." }, 217{ "Known Problems...","Bekannte Probleme..." },
218{ "KO/Pi Find ","KO/Pi Suchdialog " }, 218{ "KO/Pi Find ","KO/Pi Suchdialog " },
219{ "KO/Pi Find: ","KO/Pi Suchen: " }, 219{ "KO/Pi Find: ","KO/Pi Suchen: " },
220{ "KO/Pi is starting ... "," KO/Pi startet ... \n... Zeit für eine Kaffeepause ..." }, 220{ "KO/Pi is starting ... "," KO/Pi startet ... \n... Zeit für eine Kaffeepause ..." },
221{ "Language:(needs restart)","Sprache (Neustart!)" }, 221{ "Language:(needs restart)","Sprache (Neustart!)" },
222{ "Language:","Sprache" }, 222{ "Language:","Sprache" },
223{ "Large","Etwas mehr" }, 223{ "Large","Etwas mehr" },
224{ "List View:","Listenansicht:" }, 224{ "List View:","Listenansicht:" },
225{ "List View","Listenansicht" }, 225{ "List View","Listenansicht" },
226{ "Load/Save","Laden/Speichern" }, 226{ "Load/Save","Laden/Speichern" },
227{ "Load Template","Lade Vorlage" }, 227{ "Load Template","Lade Vorlage" },
228{ "Locale","Localisation" }, 228{ "Locale","Localisation" },
229{ "Local temp file:","Lokale temp. Datei:" }, 229{ "Local temp file:","Lokale temp. Datei:" },
230{ "Location: ","Ort: " }, 230{ "Location: ","Ort: " },
231{ "Location:","Ort:" }, 231{ "Location:","Ort:" },
232{ "Mail client","Mail Programm" }, 232{ "Mail client","Mail Programm" },
233{ "Mail Client","Mail Programm" }, 233{ "Mail Client","Mail Programm" },
234{ "March","März" }, 234{ "March","März" },
235{ "Mar","Mär" }, 235{ "Mar","Mär" },
236{ "May","Mai" }, 236{ "May","Mai" },
237{ "M. Bains line:","M. Bains Linie:" }, 237{ "M. Bains line:","M. Bains Linie:" },
238{ "Medium","Medium" }, 238{ "Medium","Medium" },
239{ "Method","Methode" }, 239{ "Method","Methode" },
240{ "minute(s)","Minute(n)" }, 240{ "minute(s)","Minute(n)" },
241{ "Monday","Montag" }, 241{ "Monday","Montag" },
242{ "Mon","Mo" }, 242{ "Mon","Mo" },
243{ "Monthly","Monatlich" }, 243{ "Monthly","Monatlich" },
244{ "Month not long enough","Monat ist nicht lang genug" }, 244{ "Month not long enough","Monat ist nicht lang genug" },
245{ "month(s)","Monat(e)" }, 245{ "month(s)","Monat(e)" },
246{ "Month view:","Monatsansicht:" }, 246{ "Month view:","Monatsansicht:" },
247{ "Month view uses category colors","Monatsansicht zeigt Kategorie Farben" }, 247{ "Month view uses category colors","Monatsansicht zeigt Kategorie Farben" },
248{ "Todo view uses category colors","To-Do Ansicht zeigt Kategorie Farben" }, 248{ "Todo view uses category colors","To-Do Ansicht zeigt Kategorie Farben" },
249{ "Move &Down","Nach unten verschieben" }, 249{ "Move &Down","Nach unten verschieben" },
250{ "Move &Up","Nach oben verschieben" }, 250{ "Move &Up","Nach oben verschieben" },
251{ "Name:","Name:" }, 251{ "Name:","Name:" },
252{ "Name","Name" }, 252{ "Name","Name" },
253{ "\nAre you sure you want\nto delete this event?","\nSind Sie sicher, dass Sie\nden Termin löschen möchten?" }, 253{ "\nAre you sure you want\nto delete this event?","\nSind Sie sicher, dass Sie\nden Termin löschen möchten?" },
254{ "%n Days","%n Tage" }, 254{ "%n Days","%n Tage" },
255{ "Never","Nie" }, 255{ "Never","Nie" },
256{ "New event...","Neuer Termin..." }, 256{ "New event...","Neuer Termin..." },
257{ "New event","Neuer Termin" }, 257{ "New event","Neuer Termin" },
258{ "New Event...","Neuer Termin..." }, 258{ "New Event...","Neuer Termin..." },
259{ "New Events/Todos should","Neue Termine/Todos sollten" }, 259{ "New Events/Todos should","Neue Termine/Todos sollten" },
260{ "&New","&Neu" }, 260{ "&New","&Neu" },
261{ "New","Neu", }, 261{ "New","Neu", },
262{ "New Sub-Todo...","Neues Sub-Todo..." }, 262{ "New Sub-Todo...","Neues Sub-Todo..." },
263{ "New Todo...","Neues Todo..." }, 263{ "New Todo...","Neues Todo..." },
264{ "Next Alarm: ","Nächster Alarm: ", }, 264{ "Next Alarm: ","Nächster Alarm: ", },
265{ "&Next Day","&Nächster Tag", }, 265{ "&Next Day","&Nächster Tag", },
266{ "Next days view uses full window","Nächste-X-Tage nutzt Vollbild" }, 266{ "Next days view uses full window","Nächste-X-Tage nutzt Vollbild" },
267{ "Next month","Nächster Monat" }, 267{ "Next month","Nächster Monat" },
268{ "&Next Week","&Nächste Woche" }, 268{ "&Next Week","&Nächste Woche" },
269{ "Next year","Nächstes Jahr" }, 269{ "Next year","Nächstes Jahr" },
270{ "Next Year","Nächstes Jahr" }, 270{ "Next Year","Nächstes Jahr" },
271{ "%n h","%n Std" }, 271{ "%n h","%n Std" },
272{ "No ending date","Kein End-Datum", }, 272{ "No ending date","Kein End-Datum", },
273{ "No event, nothing to do.","Kein Termin, nichts zu tun.", }, 273{ "No event, nothing to do.","Kein Termin, nichts zu tun.", },
274{ "No event selected.","Kein Termin selektiert" }, 274{ "No event selected.","Kein Termin selektiert" },
275{ "No","Nein" }, 275{ "No","Nein" },
276{ "No program set","Kein Programm ausgewählt", }, 276{ "No program set","Kein Programm ausgewählt", },
277{ "Normal","Normal" }, 277{ "Normal","Normal" },
278{ "[No selection]","Keine Selektion", }, 278{ "[No selection]","Keine Selektion", },
279{ "No sound set","Kein Sound ausgewählt", }, 279{ "No sound set","Kein Sound ausgewählt", },
280{ "no time ","keine Zeit ", }, 280{ "no time ","keine Zeit ", },
281{ "no time","keine Zeit", }, 281{ "no time","keine Zeit", },
282{ "No Time","Keine Zeit" }, 282{ "No Time","Keine Zeit" },
283{ "November","November" }, 283{ "November","November" },
284{ "Nov","Nov", }, 284{ "Nov","Nov", },
285{ "\nThis event recurs\nover multiple dates.\n","\nDieser Termin wiederholt sich an mehreren Tagen.\n" }, 285{ "\nThis event recurs\nover multiple dates.\n","\nDieser Termin wiederholt sich an mehreren Tagen.\n" },
286{ "occurrence(s)","Vorkommen" }, 286{ "occurrence(s)","Vorkommen" },
287{ "October","Oktober" }, 287{ "October","Oktober" },
288{ "Oct","Okt", }, 288{ "Oct","Okt", },
289{ "O-due!","Ü-fällig! " }, 289{ "O-due!","Ü-fällig! " },
290{ "&OK","&OK" }, 290{ "&OK","&OK" },
291{ "Ok+Show!","Ok+Anzeigen" }, 291{ "Ok+Show!","Ok+Anzeigen" },
292{ "Organizer: %1","Organisator %1" }, 292{ "Organizer: %1","Organisator %1" },
293{ "Organizer","Organisator" }, 293{ "Organizer","Organisator" },
294{ "Owner: ","Besitzer: " }, 294{ "Owner: ","Besitzer: " },
295{ "Owner:","Besitzer:" }, 295{ "Owner:","Besitzer:" },
296{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" }, 296{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" },
297{ "Pick a date to display","Wähle einen Tag zum anzeigen aus" }, 297{ "Pick a date to display","Wähle einen Tag zum anzeigen aus" },
298{ "Please specify a valid due date.","Bitte gültiges Fälligkeitsdatum angeben."}, 298{ "Please specify a valid due date.","Bitte gültiges Fälligkeitsdatum angeben."},
299{ "Please specify a valid end date, for example '%1'.","Bitte gültiges Enddatum angeben, z.B.'%1'." }, 299{ "Please specify a valid end date, for example '%1'.","Bitte gültiges Enddatum angeben, z.B.'%1'." },
300{ "Please specify a valid start date.","Bitte gültiges Startdatum angeben." }, 300{ "Please specify a valid start date.","Bitte gültiges Startdatum angeben." },
301{ "Please specify a valid start date, for example '%1'.","Bitte gültiges Startdatum angeben, z.B. '%1'." }, 301{ "Please specify a valid start date, for example '%1'.","Bitte gültiges Startdatum angeben, z.B. '%1'." },
302{ "Please specify a valid start time.","Bitte gültige Startzeit angeben."}, 302{ "Please specify a valid start time.","Bitte gültige Startzeit angeben."},
303{ "Please specify a valid start time, for example '%1'.","Bitte gültige Startzeit angeben, z.B. '%1'." }, 303{ "Please specify a valid start time, for example '%1'.","Bitte gültige Startzeit angeben, z.B. '%1'." },
304{ "Preferences - some settings need a restart (nr)","Einstellungen - teilweise Neustart erforderlich (bn)" }, 304{ "Preferences - some settings need a restart (nr)","Einstellungen - teilweise Neustart erforderlich (bn)" },
305{ "&Previous Day","Vorheriger Tag" }, 305{ "&Previous Day","Vorheriger Tag" },
306{ "Previous month","Vorheriger Monat" }, 306{ "Previous month","Vorheriger Monat" },
307{ "Previous Month","Vorheriger Monat" }, 307{ "Previous Month","Vorheriger Monat" },
308{ "&Previous Week","Vorherige Woche" }, 308{ "&Previous Week","Vorherige Woche" },
309{ "Previous year","Vorheriges Jahr" }, 309{ "Previous year","Vorheriges Jahr" },
310{ "Previous Year","Vorheriges Jahr" }, 310{ "Previous Year","Vorheriges Jahr" },
311{ "Printing","Drucken" }, 311{ "Printing","Drucken" },
312{ "Priority:","Priorität:" }, 312{ "Priority:","Priorität:" },
313{ "Private","Privat" }, 313{ "Private","Privat" },
314{ "Proceed","Weiter" }, 314{ "Proceed","Weiter" },
315{ "Public","Öffentlich" }, 315{ "Public","Öffentlich" },
316{ "Purge","Entferne" }, 316{ "Purge","Entferne" },
317{ "Purge Completed","Entferne erledigte ToDos" }, 317{ "Purge Completed","Entferne erledigte ToDos" },
318{ "Purge To-Dos","Todos bereinigen" }, 318{ "Purge To-Dos","Todos bereinigen" },
319{ "read-only","schreibgeschützt" }, 319{ "read-only","schreibgeschützt" },
320{ "Recur every","Wiederh. alle" }, 320{ "Recur every","Wiederh. alle" },
321{ "Recur in the month of","Wiederh. im Monat" }, 321{ "Recur in the month of","Wiederh. im Monat" },
322{ "Recur on the","Wiederh. am" }, 322{ "Recur on the","Wiederh. am" },
323{ "Recur on this day","Wiederh. am diesen Tag" }, 323{ "Recur on this day","Wiederh. am diesen Tag" },
324{ "Recurrence Range...","Wiederholungs Zeitraum..." }, 324{ "Recurrence Range...","Wiederholungs Zeitraum..." },
325{ "Recurrence Range","Wiederholungs Zeitraum" }, 325{ "Recurrence Range","Wiederholungs Zeitraum" },
326{ "Recurrence Rule","Wiederholungs Regel" }, 326{ "Recurrence Rule","Wiederholungs Regel" },
327{ "Recurrence","Wiederholung" }, 327{ "Recurrence","Wiederholung" },
328{ "Recurs","Wiederholung" }, 328{ "Recurs","Wiederholung" },
329{"&Reject","Abweisen"}, 329{"&Reject","Abweisen"},
330{ "Reminder:","Alarm:" }, 330{ "Reminder:","Alarm:" },
331{ "Rem.:","Alarm:" }, 331{ "Rem.:","Alarm:" },
332{ "Rem.","Alarm:" }, 332{ "Rem.","Alarm:" },
333{ "Remote file:","Remote Datei:"}, 333{ "Remote file:","Remote Datei:"},
334{ "Remote IP:","Remote (ferne) IP:" }, 334{ "Remote IP:","Remote (ferne) IP:" },
335{ "Remote syncing (via ssh/scp) network settings ","Remote Sync (via ssh/scp) Netzwerk Einstellungen " }, 335{ "Remote syncing (via ssh/scp) network settings ","Remote Sync (via ssh/scp) Netzwerk Einstellungen " },
336{ "Remote user:","Remote Benutzer"}, 336{ "Remote user:","Remote Benutzer"},
337{ "&Remove","Entfe&rnen" }, 337{ "&Remove","Entfe&rnen" },
338{ "Remove","Entfernen" }, 338{ "Remove","Entfernen" },
339{ "Request response","Bemerkung anfordern" }, 339{ "Request response","Bemerkung anfordern" },
340{ "Role:","Rolle:" }, 340{ "Role:","Rolle:" },
341{ "Role","Rolle" }, 341{ "Role","Rolle" },
342{ "Sat","Sa" }, 342{ "Sat","Sa" },
343{ "Saturday","Samstag" }, 343{ "Saturday","Samstag" },
344{ "Search for:","Suche nach:" }, 344{ "Search for:","Suche nach:" },
345{ "Search In","Suche in" }, 345{ "Search In","Suche in" },
346{ "Search...","Suche..." }, 346{ "Search...","Suche..." },
347{ "Search","Suche" }, 347{ "Search","Suche" },
348{ "Select Addresses","Wähle Adressen" }, 348{ "Select Addresses","Wähle Adressen" },
349{ "Select all","Selektiere Alle" }, 349{ "Select all","Selektiere Alle" },
350{ "Select a month","Wähle Monat" }, 350{ "Select a month","Wähle Monat" },
351{ "Select a week","Wähle Woche" }, 351{ "Select a week","Wähle Woche" },
352{ "Select a year","Wähle Jahr" }, 352{ "Select a year","Wähle Jahr" },
353{ "Send directly","Sende direkt" }, 353{ "Send directly","Sende direkt" },
354{ "&Send Messages","&Sende Nachrichten", }, 354{ "&Send Messages","&Sende Nachrichten", },
355{ "Sep","Sep" }, 355{ "Sep","Sep" },
356{ "September","September" }, 356{ "September","September" },
357{ "Shopping","Einkaufen" }, 357{ "Shopping","Einkaufen" },
358{ "Use short date in (WN/E) view","Kurzdatum in (WN/Termin) Ansicht" }, 358{ "Use short date in (WN/E) view","Kurzdatum in (WN/Termin) Ansicht" },
359{ "Show Dates","Zeige Daten" }, 359{ "Show Dates","Zeige Daten" },
360{ "Show events that recur daily in date nav.","Zeige tägl.wiederh.Term.in Datums Nav." }, 360{ "Show events that recur daily in date nav.","Zeige tägl.wiederh.Term.in Datums Nav." },
361{ "Show Event...","Zeige Termin..." }, 361{ "Show Event...","Zeige Termin..." },
362{ "Show ev. that recur weekly in date nav.","Zeige wöch.wiederh.Term.in Datums Nav." }, 362{ "Show ev. that recur weekly in date nav.","Zeige wöch.wiederh.Term.in Datums Nav." },
363{ "Show Marcus Bains line","Zeige Marcus Bains Linie" }, 363{ "Show Marcus Bains line","Zeige Marcus Bains Linie" },
364{ "Show summary after syncing","Zeige Zusammenfassung nach Sync." }, 364{ "Show summary after syncing","Zeige Zusammenfassung nach Sync." },
365{ "Show time as:","Zeige Zeit als" }, 365{ "Show time as:","Zeige Zeit als" },
366{ "Show Todo...","Zeige To-Do" }, 366{ "Show Todo...","Zeige To-Do" },
367{ "Show topmost todo prios in What's N.:","Anz. höchster Prios in What's N.:"}, 367{ "Show topmost todo prios in What's N.:","Anz. höchster Prios in What's N.:"},
368{ "Show topmost todo prios in What's Next:","Anz. höchster Prios in What's Next:"}, 368{ "Show topmost todo prios in What's Next:","Anz. höchster Prios in What's Next:"},
369{ "Show vertical screen (Needs restart)","Vertikaler Bildschirm-Layout (Neustart!)" }, 369{ "Show vertical screen (Needs restart)","Vertikaler Bildschirm-Layout (Neustart!)" },
370{ "&Show","Zeige" }, 370{ "&Show","Zeige" },
371{ "Show...","Zeige..." }, 371{ "Show...","Zeige..." },
372{ "Show","Zeige" }, 372{ "Show","Zeige" },
373{ "Small","Klein" }, 373{ "Small","Klein" },
374{ "Sorry","Entschuldigung" }, 374{ "Sorry","Entschuldigung" },
375{"Sorry, the copy command failed!\nCommand was:\n","Der Kopierbefehl schlug fehl!\nBefehl war:\n"}, 375{"Sorry, the copy command failed!\nCommand was:\n","Der Kopierbefehl schlug fehl!\nBefehl war:\n"},
376{ "Start:","Start:" }, 376{ "Start:","Start:" },
377{ "Start Date","Start Datum" }, 377{ "Start Date","Start Datum" },
378{ "Start date: %1","Start Datum: %1" }, 378{ "Start date: %1","Start Datum: %1" },
379{ "Start Time","Start Zeit" }, 379{ "Start Time","Start Zeit" },
380{ "Status:","Status:" }, 380{ "Status:","Status:" },
381{ "Status","Status:" }, 381{ "Status","Status:" },
382{ "Summaries","Titel" }, 382{ "Summaries","Titel" },
383{ "Summary:","Titel:" }, 383{ "Summary:","Titel:" },
384{ "Summary","Titel" }, 384{ "Summary","Titel" },
385{ "Sunday","Sonntag" }, 385{ "Sunday","Sonntag" },
386{ "Sun","So" }, 386{ "Sun","So" },
387{ "Sync preferences:","Sync Einstellungen" }, 387{ "Sync preferences:","Sync Einstellungen" },
388{ "Sync Prefs","Sync Einstellungen" }, 388{ "Sync Prefs","Sync Einstellungen" },
389{ "Syncronize","Daten abgleich" }, 389{ "Syncronize","Daten abgleich" },
390{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" }, 390{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" },
391{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" }, 391{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" },
392{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" }, 392{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" },
393{ "Template '%1' does not contain a valid Todo.","Template '%1' enthält kein gültiges To-Do" }, 393{ "Template '%1' does not contain a valid Todo.","Template '%1' enthält kein gültiges To-Do" },
394{ "Template does not contain a valid Event.","Template '%1' enthält keinen gültigen Termin" }, 394{ "Template does not contain a valid Event.","Template '%1' enthält keinen gültigen Termin" },
395{ "Template...","Vorlage..." }, 395{ "Template...","Vorlage..." },
396{ "This day","Dieser Tag" }, 396{ "This day","Dieser Tag" },
397{ "This is an experimental feature. ","Dieses Feature ist experimentel" }, 397{ "This is an experimental feature. ","Dieses Feature ist experimentel" },
398{ "This item will be\npermanently deleted.","Dieser Eintrag wird\nkomplett gelöscht." }, 398{ "This item will be\npermanently deleted.","Dieser Eintrag wird\nkomplett gelöscht." },
399{ "This item will be permanently deleted.", "Dieser Eintrag wird komplett gelöscht." }, 399{ "This item will be permanently deleted.", "Dieser Eintrag wird komplett gelöscht." },
400{ "Thu","Do" }, 400{ "Thu","Do" },
401{ "Thursday","Donnerstag" }, 401{ "Thursday","Donnerstag" },
402{ "Time associated","Mit Zeit" }, 402{ "Time associated","Mit Zeit" },
403{ "Time bar:","Uhrzeit Zeile:" }, 403{ "Time bar:","Uhrzeit Zeile:" },
404{ "Time && Date","Zeit und Datum" }, 404{ "Time && Date","Zeit und Datum" },
405{ "Time Format","Zeit Format" }, 405{ "Time Format","Zeit Format" },
406{ "Time Format(nr):","Zeit Format(Neustart!)" }, 406{ "Time Format(nr):","Zeit Format(Neustart!)" },
407{ "Date Labels:","Datumsleiste:" }, 407{ "Date Labels:","Datumsleiste:" },
408{ "Time: ","Zeit: " }, 408{ "Time: ","Zeit: " },
409{ "Timezone:","Zeitzone:" }, 409{ "Timezone:","Zeitzone:" },
410{ "Tiny","Sehr klein" }, 410{ "Tiny","Sehr klein" },
411{ "To: ","Bis: " }, 411{ "To: ","Bis: " },
412{ "To:","Bis:" }, 412{ "To:","Bis:" },
413{ "Today: ","Heute: " }, 413{ "Today: ","Heute: " },
414{ "Todo due today color:","Heute fällige To-Do's" }, 414{ "Todo due today color:","Heute fällige To-Do's" },
415{ "To-do items:","To-Do items:" }, 415{ "To-do items:","To-Do items:" },
416{ "Todo overdue color:","Überfällige To-Do's" }, 416{ "Todo overdue color:","Überfällige To-Do's" },
417{ "Todo","Todo" }, 417{ "Todo","Todo" },
418{ "To-do view shows completed Todos","To-do Ansicht zeigt erledigte To-dos" }, 418{ "To-do view shows completed Todos","To-do Ansicht zeigt erledigte To-dos" },
419{ "ToDoView:","Todo Ansicht:" }, 419{ "ToDoView:","Todo Ansicht:" },
420{ "Toggle Alarm","Wechsle Alarm" }, 420{ "Toggle Alarm","Wechsle Alarm" },
421{ "Toggle Allday","Umschalten Ganztag" }, 421{ "Toggle Allday","Umschalten Ganztag" },
422{ "Tomorrow: ","Morgen: " }, 422{ "Tomorrow: ","Morgen: " },
423{ "Tue","Di" }, 423{ "Tue","Di" },
424{ "Tuesday","Dienstag" }, 424{ "Tuesday","Dienstag" },
425{ "Two entries are in conflict, if: ","Zwei Einträge haben einen Konflikt, wenn:" }, 425{ "Two entries are in conflict, if: ","Zwei Einträge haben einen Konflikt, wenn:" },
426{ "Unable to find template '%1'.","Kann Vorlage '%1' nicht finden." }, 426{ "Unable to find template '%1'.","Kann Vorlage '%1' nicht finden." },
427{ "Unknown","Unbekannt" }, 427{ "Unknown","Unbekannt" },
428{ "Up","Hinauf" }, 428{ "Up","Hinauf" },
429{ "Use password (if not, ask when syncing)","Passwort: (sonst jedesmal anfragen)" }, 429{ "Use password (if not, ask when syncing)","Passwort: (sonst jedesmal anfragen)" },
430{ "User defined","Benutzerdefiniert" }, 430{ "User defined","Benutzerdefiniert" },
431{ "User long date:","Format langes Datum:" }, 431{ "User long date:","Format langes Datum:" },
432{ "User short date:","Forma kurzes Datum:" }, 432{ "User short date:","Forma kurzes Datum:" },
433{ "View","Ansicht" }, 433{ "View","Ansicht" },
434{ "View Fonts","Schriftarten Ansichten" }, 434{ "View Fonts","Schriftarten Ansichten" },
435{ "Views","Ansichten" }, 435{ "Views","Ansichten" },
436{ "Wed","Mi" }, 436{ "Wed","Mi" },
437{ "Wednesday","Mittwoch" }, 437{ "Wednesday","Mittwoch" },
438{ "Week %1","Woche %1" }, 438{ "Week %1","Woche %1" },
439{ "Weekly","Wöchentlich" }, 439{ "Weekly","Wöchentlich" },
440{ "Week starts on Sunday","Woche beginnt Sonntags" }, 440{ "Week starts on Sunday","Woche beginnt Sonntags" },
441{ "What's Next View:","What's Next Anz." }, 441{ "What's Next View:","What's Next Anz." },
442{ "What's next ?","Was kommt als nächstes?(What's Next)" }, 442{ "What's next ?","Was kommt als nächstes?(What's Next)" },
443{ "Working Hours","Tägliche Arbeitszeit" }, 443{ "Working Hours","Tägliche Arbeitszeit" },
444{ "Working hours color:","Arbeitszeit in der Agenda Ansicht:" }, 444{ "Working hours color:","Arbeitszeit in der Agenda Ansicht:" },
445{ "Write back existing entries only","Nur exisitierende Einträge zurückschreiben" }, 445{ "Write back existing entries only","Nur exisitierende Einträge zurückschreiben" },
446{ "Write back synced file","Syncronisierte Datei zurückschreiben" }, 446{ "Write back synced file","Syncronisierte Datei zurückschreiben" },
447{ "Yearly","Jährlich" }, 447{ "Yearly","Jährlich" },
448{ "year(s)","Jahr(e)" }, 448{ "year(s)","Jahr(e)" },
449{ "Yes","Ja" }, 449{ "Yes","Ja" },
450{ "You have %d item(s) selected.\n","Sie haben %d Einträge ausgewählt.\n" }, 450{ "You have %d item(s) selected.\n","Sie haben %d Einträge ausgewählt.\n" },
451{ "You have to restart KOrganizer for this setting to take effect.","Sie müssem Korganizer neu starten, damit diese Einstellung aktiviert wird." }, 451{ "You have to restart KOrganizer for this setting to take effect.","Sie müssem Korganizer neu starten, damit diese Einstellung aktiviert wird." },
452{ "week(s) on:","Woche(n) am: " }, 452{ "week(s) on:","Woche(n) am: " },
453{ "Full menu bar(nr)","Volle Menuleiste(bn)" }, 453{ "Full menu bar(nr)","Volle Menuleiste(bn)" },
454{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" }, 454{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" },
455{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" }, 455{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" },
456{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." }, 456{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." },
457{ "Daylight start:","Sommerzeit Beginn:" }, 457{ "Daylight start:","Sommerzeit Beginn:" },
458{ "Daylight end:","Sommerzeit Ende:" }, 458{ "Daylight end:","Sommerzeit Ende:" },
459{ "Time Zone","Zeitzone" }, 459{ "Time Zone","Zeitzone" },
460{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" }, 460{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" },
461{ "%A: Monday --- %a: Mon","%A: Montag --- %a: Mon" }, 461{ "%A: Monday --- %a: Mon","%A: Montag --- %a: Mon" },
462{ "minutely","minütlich" }, 462{ "minutely","minütlich" },
463{ "hourly","stündlich" }, 463{ "hourly","stündlich" },
464{ "daily","täglich" }, 464{ "daily","täglich" },
465{ "weekly","wöchentlich" }, 465{ "weekly","wöchentlich" },
466{ "monthly","monatlich" }, 466{ "monthly","monatlich" },
467{ "day-monthly","tag-monatlich" }, 467{ "day-monthly","tag-monatlich" },
468{ "month-yearly","monat-jährlich" }, 468{ "month-yearly","monat-jährlich" },
469{ "day-yearly","tag-jährlich" }, 469{ "day-yearly","tag-jährlich" },
470{ "position-yearly","pos-jährlich" }, 470{ "position-yearly","pos-jährlich" },
471{ "Edit item on doubleclick (if not, show)","Editiere mit Doppelklick(wenn nicht, zeige)" }, 471{ "Edit item on doubleclick (if not, show)","Editiere mit Doppelklick(wenn nicht, zeige)" },
472{ "Highlight current day in agenda","Hebe >>heute<< in Agenda hervor" }, 472{ "Highlight current day in agenda","Hebe >>heute<< in Agenda hervor" },
473{ "Use light color for highlight current day","Helle Farbe für >>heute<< Hervorhebung" }, 473{ "Use light color for highlight current day","Helle Farbe für >>heute<< Hervorhebung" },
474{ "Highlight selection in Time Edit","Hebe Auswahl in Zeit Edit hervor" }, 474{ "Highlight selection in Time Edit","Hebe Auswahl in Zeit Edit hervor" },
475{ "Hold fullscreen on view change","Behalte Vollbild bei Ansichswechsel" }, 475{ "Hold fullscreen on view change","Behalte Vollbild bei Ansichswechsel" },
476{ "Hold non-fullscreen on view change","Behalte Nicht-Vollbild bei Ansichtsw." }, 476{ "Hold non-fullscreen on view change","Behalte Nicht-Vollbild bei Ansichtsw." },
477{ "Event list view uses full window","Listenansicht nutzt Vollbild" }, 477{ "Event list view uses full window","Listenansicht nutzt Vollbild" },
478{ "Set agenda to DayBeginsAt on change","Setze Agenda auf TagBeginntUm bei Wechsel" }, 478{ "Set agenda to DayBeginsAt on change","Setze Agenda auf TagBeginntUm bei Wechsel" },
479{ "Set agenda to current time on change","Setze Agenda auf gegenw.Zeit bei Wechsel" }, 479{ "Set agenda to current time on change","Setze Agenda auf gegenw.Zeit bei Wechsel" },
480{ "Listview uses monthly timespan","Listenansicht zeigt monatliche Zeitspanne" }, 480{ "Listview uses monthly timespan","Listenansicht zeigt monatliche Zeitspanne" },
481{ "ViewChange","Ansichtswechsel" }, 481{ "ViewChange","Ansichtswechsel" },
482{ "Default alarm *.wav file:","Standard Alarm *.wav Datei:" }, 482{ "Default alarm *.wav file:","Standard Alarm *.wav Datei:" },
483{ "This setting is useless for 5500 user!","Diese Einst. ist nutzlos für 5500 Nutzer" }, 483{ "This setting is useless for 5500 user!","Diese Einst. ist nutzlos für 5500 Nutzer" },
484{ "File","Datei" }, 484{ "File","Datei" },
485{ "Clone...","Dupliziere.." }, 485{ "Clone...","Dupliziere.." },
486{ "Move...","Bewege..." }, 486{ "Move...","Bewege..." },
487{ "Beam...","Sende via IR..." }, 487{ "Beam...","Sende via IR..." },
488{ "&Clone...","Dupliziere.." }, 488{ "&Clone...","Dupliziere.." },
489{ "&Move...","Bewege..." }, 489{ "&Move...","Bewege..." },
490{ "&Beam...","Sende via IR..." }, 490{ "&Beam...","Sende via IR..." },
491{ "Show Completed","Zeige erledigte Todos" }, 491{ "Show Completed","Zeige erledigte Todos" },
492{ "Show Quick Todo","Zeige Quick Todo" }, 492{ "Show Quick Todo","Zeige Quick Todo" },
493{ "Unparent Todo","Un-sub Todo" }, 493{ "Unparent Todo","Un-sub Todo" },
494{ "Save selected to file...","Speichere Selektierte..." }, 494{ "Save selected to file...","Speichere Selektierte..." },
495{ "Add Categ. to selected...","Füge zu Selekt. Kateg. hinzu..." }, 495{ "Add Categ. to selected...","Füge zu Selekt. Kateg. hinzu..." },
496{ "Set Categ. for selected...","Setze Kateg. für Selekt." }, 496{ "Set Categ. for selected...","Setze Kateg. für Selekt." },
497{ "Beam selected via IR","Sende Selekt. via IR..." }, 497{ "Beam selected via IR","Sende Selekt. via IR..." },
498{ "Search","Suchen" }, 498{ "Search","Suchen" },
499{ "Date Picker","Datum auswählen" }, 499{ "Date Picker","Datum auswählen" },
500{ "Day View","Tagesansicht" }, 500{ "Day View","Tagesansicht" },
501{ "Work Week","Arbeitswoche" }, 501{ "Work Week","Arbeitswoche" },
502{ "Week","Wochenansicht" }, 502{ "Week","Wochenansicht" },
503{ "Month","Monatsansicht" }, 503{ "Month","Monatsansicht" },
504{ "Todo View","Todo Liste" }, 504{ "Todo View","Todo Liste" },
505{ "Journal","Journal Ansicht" }, 505{ "Journal","Journal Ansicht" },
506{ "Next days","Nächste Tage" }, 506{ "Next days","Nächste Tage" },
507{ "Print agenda selection...","Drucke Agendaselektion..." }, 507{ "Print agenda selection...","Drucke Agendaselektion..." },
508{ "Toggle DateNavigator","Navigator umschalten" }, 508{ "Toggle DateNavigator","Navigator umschalten" },
509{ "Toggle FilterView","Filteransicht umschalten" }, 509{ "Toggle FilterView","Filteransicht umschalten" },
510{ "Prev. month","Vorheriger Monat" }, 510{ "Prev. month","Vorheriger Monat" },
511{ "Go backward","Gehe zurück" }, 511{ "Go backward","Gehe zurück" },
512{ "Go forward","Gehe weiter" }, 512{ "Go forward","Gehe weiter" },
513{ "Synchronize","Synchronisieren" }, 513{ "Synchronize","Synchronisieren" },
514{ "AgendaSize","Agendagröße" }, 514{ "AgendaSize","Agendagröße" },
515{ "Import (*.ics/*.vcs) file","Importiere (*.ics/*.vcs) Datei" }, 515{ "Import (*.ics/*.vcs) file","Importiere (*.ics/*.vcs) Datei" },
516{ "Import last file","Importiere letzte Datei" }, 516{ "Import last file","Importiere letzte Datei" },
517{ "Import Opie/Qtopia Cal.","Importiere Opie/Qtopia Kal." }, 517{ "Import Opie/Qtopia Cal.","Importiere Opie/Qtopia Kal." },
518{ "Load Calendar Backup","Lade Kalender Backup" }, 518{ "Load Calendar Backup","Lade Kalender Backup" },
519{ "Save Calendar Backup","Speichere Kalender Backup" }, 519{ "Save Calendar Backup","Speichere Kalender Backup" },
520{ "Export VCalendar","Exportiere VCalendar" }, 520{ "Export VCalendar","Exportiere VCalendar" },
521{ "Manage new categories...","Verwalte neue Kategorien..." }, 521{ "Manage new categories...","Verwalte neue Kategorien..." },
522{ "Beam complete calendar...","Sende kompletten Kalender via IR" }, 522{ "Beam complete calendar...","Sende kompletten Kalender via IR" },
523{ "Beam filtered calendar...","Sende gefilterten Kalender via IR" }, 523{ "Beam filtered calendar...","Sende gefilterten Kalender via IR" },
524{ "Remote via ssh","Über Netzwerk via ssh" }, 524{ "Remote via ssh","Über Netzwerk via ssh" },
525{ "With local file","Mit lokaler Datei" }, 525{ "With local file","Mit lokaler Datei" },
526{ "With last file","Mit letzter Datei" }, 526{ "With last file","Mit letzter Datei" },
527{ "KO/Pi: Ready for beaming","KO/Pi: Bereit zum Senden" }, 527{ "KO/Pi: Ready for beaming","KO/Pi: Bereit zum Senden" },
528{ "KO/Pi:Beaming done","KO/Pi: Senden erfolgt" }, 528{ "KO/Pi:Beaming done","KO/Pi: Senden erfolgt" },
529{ "Save filename","Speichern: Dateinamen wählen" }, 529{ "Save filename","Speichern: Dateinamen wählen" },
530{ "File already exists!\nOld file from:\n%1\nOverwrite?\n","Dateiname existiert bereits!\nAlte Datei vom:\n%1\nÜberschreiben?\n" }, 530{ "File already exists!\nOld file from:\n%1\nOverwrite?\n","Dateiname existiert bereits!\nAlte Datei vom:\n%1\nÜberschreiben?\n" },
531{ "KO/Pi: Warning!","KO/Pi: Warnung!" }, 531{ "KO/Pi: Warning!","KO/Pi: Warnung!" },
532{ "Overwrite!","Überschreibe!" }, 532{ "Overwrite!","Überschreibe!" },
533{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" }, 533{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" },
534{ "All selected items will be\npermanently deleted.\n(Deleting items will take\nsome time on a PDA)\n","Alle selektierten Einträge werden\nunwiederbringlich gelöscht.\n(Löschen kann auf dem\nPDA einige Zeit dauern)\n" }, 534{ "All selected items will be\npermanently deleted.\n(Deleting items will take\nsome time on a PDA)\n","Alle selektierten Einträge werden\nunwiederbringlich gelöscht.\n(Löschen kann auf dem\nPDA einige Zeit dauern)\n" },
535{ "KO/Pi Confirmation","KO/Pi Bestätigung" }, 535{ "KO/Pi Confirmation","KO/Pi Bestätigung" },
536{ "Close dialog to abort deletion!","Schließe Dialog um das Löschen abzubrechen!" }, 536{ "Close dialog to abort deletion!","Schließe Dialog um das Löschen abzubrechen!" },
537{ "Deleting item %d ...","Lösche Eintrag %d ..." }, 537{ "Deleting item %d ...","Lösche Eintrag %d ..." },
538{ "%d items remaining in list.","%d Einträge sind in der Liste verblieben." }, 538{ "%d items remaining in list.","%d Einträge sind in der Liste verblieben." },
539{ "Size","Größe" }, 539{ "Size","Größe" },
540{ "Date","Datum" }, 540{ "Date","Datum" },
541{ "Mime Type","Datei Typ" }, 541{ "Mime Type","Datei Typ" },
542{ "All Files","Alle Dateien" }, 542{ "All Files","Alle Dateien" },
543{ "Files","Dateien" }, 543{ "Files","Dateien" },
544{ "Documents","DoKumente" }, 544{ "Documents","DoKumente" },
545{ "Select Categories","Selektiere Kategorien" }, 545{ "Select Categories","Selektiere Kategorien" },
546{ " &Deselect All "," Auswahl aufheben " }, 546{ " &Deselect All "," Auswahl aufheben " },
547{ "A&dd","Hinzu" }, 547{ "A&dd","Hinzu" },
548{ "&Modify","Ändern" }, 548{ "&Modify","Ändern" },
549{ "Edit Categories","Editiere Kategorien" }, 549{ "Edit Categories","Editiere Kategorien" },
550{ " &Edit Categories "," &Editiere Kategorien " }, 550{ " &Edit Categories "," &Editiere Kategorien " },
551{ "Beam Options","Beam Einstellungen" }, 551{ "Beam Options","Beam Einstellungen" },
552{ " With timezone "," Mit Zeitzone " }, 552{ " With timezone "," Mit Zeitzone " },
553{ " Local time ", " Lokale Zeit " }, 553{ " Local time ", " Lokale Zeit " },
554{ "Manage new Categories","Verwalte neue Kategorien" }, 554{ "Manage new Categories","Verwalte neue Kategorien" },
555{ "Add to category list","Füge zur Kategorieliste hinzu" }, 555{ "Add to category list","Füge zur Kategorieliste hinzu" },
556{ "Remove from Events/Todos","Entferne von Terminen/Todos" }, 556{ "Remove from Events/Todos","Entferne von Terminen/Todos" },
557{ "After importing/loading/syncing\nthere may be new categories in\nevents or todos\nwhich are not in the category list.\nPlease choose what to do:\n ","Nach dem Importieren/Laden/Syncen\nkann es neue Kategorien in den \nTerminen oder Todos geben, die nicht\nin der Kategorieliste enthalten sind.\nBitte wählen Sie, was passieren soll:\n " }, 557{ "After importing/loading/syncing\nthere may be new categories in\nevents or todos\nwhich are not in the category list.\nPlease choose what to do:\n ","Nach dem Importieren/Laden/Syncen\nkann es neue Kategorien in den \nTerminen oder Todos geben, die nicht\nin der Kategorieliste enthalten sind.\nBitte wählen Sie, was passieren soll:\n " },
558{ "New categories not in list:","Kategorien, die nicht in der Liste sind:" }, 558{ "New categories not in list:","Kategorien, die nicht in der Liste sind:" },
559{ "File format","Datei Format" }, 559{ "File format","Datei Format" },
560{ "Time format","Zeit Format" }, 560{ "Time format","Zeit Format" },
561{ "Delete all\ncompleted To-Dos?","Lösche alle\nerledigten To-Dos?" }, 561{ "Delete all\ncompleted To-Dos?","Lösche alle\nerledigten To-Dos?" },
562{ "KO/Pi:Saving Data to File ...","KO/Pi: Speichere Kalender in Datei ..." }, 562{ "KO/Pi:Saving Data to File ...","KO/Pi: Speichere Kalender in Datei ..." },
563{ "KO/Pi:File Saved. Needed %d sec, %d ms","KO/Pi: Abgespeichert in %d sec, %d ms" }, 563{ "KO/Pi:File Saved. Needed %d sec, %d ms","KO/Pi: Abgespeichert in %d sec, %d ms" },
564{ "h","Std" }, 564{ "h","Std" },
565{ "min","Min" }, 565{ "min","Min" },
566{ "hou","Std" }, 566{ "hou","Std" },
567{ "day","Tag" }, 567{ "day","Tag" },
568{ "French","Französich" }, 568{ "French","Französich" },
569{ "Time","Zeit" }, 569{ "Time","Zeit" },
570{ "Event Viewer","Termin Ansicht" }, 570{ "Event Viewer","Termin Ansicht" },
571{ "Cancel Sync","Sync Abbrechen" }, 571{ "Cancel Sync","Sync Abbrechen" },
572{ "Remote","Fern" }, 572{ "Remote","Fern" },
573{ "Local","Lokal" }, 573{ "Local","Lokal" },
574{ "Conflict! Please choose entry","Konflikt! Bitte Eintrag wählen" }, 574{ "Conflict! Please choose entry","Konflikt! Bitte Eintrag wählen" },
575{ "Local: ","Lokal: " }, 575{ "Local: ","Lokal: " },
576{ "Remote: ","Fern: " }, 576{ "Remote: ","Fern: " },
577{ "Last modified: ","Zuletzt geändert: " }, 577{ "Last modified: ","Zuletzt geändert: " },
578{ "Location: ","Ort: " }, 578{ "Location: ","Ort: " },
579{ "<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>","<p><b>Von:</b> %1 </p><p><b>Bis:</b> %2</p>" }, 579{ "<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>","<p><b>Von:</b> %1 </p><p><b>Bis:</b> %2</p>" },
580{ "<p><b>On:</b> %1</p>","<p><b>Am:</b> %1</p>" }, 580{ "<p><b>On:</b> %1</p>","<p><b>Am:</b> %1</p>" },
581{ "<p><b>From:</b> %1</p> ","<p><b>Von:</b> %1</p> " }, 581{ "<p><b>From:</b> %1</p> ","<p><b>Von:</b> %1</p> " },
582{ "<p><b>To:</b> %1</p>","<p><b>Bis:</b> %1</p>" }, 582{ "<p><b>To:</b> %1</p>","<p><b>Bis:</b> %1</p>" },
583{ "<p><b>On:</b> %1</p> ","<p><b>Am:</b> %1</p> " }, 583{ "<p><b>On:</b> %1</p> ","<p><b>Am:</b> %1</p> " },
584{ "<p><b>From:</b> %1 <b>To:</b> %2</p>","<p><b>Von:</b> %1 <b>Bis:</b> %2</p>" }, 584{ "<p><b>From:</b> %1 <b>To:</b> %2</p>","<p><b>Von:</b> %1 <b>Bis:</b> %2</p>" },
585{ "This is a %1 recurring event.","Das ist ein %1 wiederholender Termin." }, 585{ "This is a %1 recurring event.","Das ist ein %1 wiederholender Termin." },
586{ "<b>Next recurrence is on:</b>","<b>Nächste Wiederholung ist am:</b>" }, 586{ "<b>Next recurrence is on:</b>","<b>Nächste Wiederholung ist am:</b>" },
587{ "<b>Last recurrence was on:</b>","<b>Letzte Wiederholung war am:</b>" }, 587{ "<b>Last recurrence was on:</b>","<b>Letzte Wiederholung war am:</b>" },
588{ "( %1 min before )","( %1 min vorher )" }, 588{ "( %1 min before )","( %1 min vorher )" },
589{ "<b>Alarm on: ","<b>Alarm am: " }, 589{ "<b>Alarm on: ","<b>Alarm am: " },
590{ "<b>Details: </b>","<b>Details: </b>" }, 590{ "<b>Details: </b>","<b>Details: </b>" },
591{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" }, 591{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" },
592{ "<p><i>%1 % completed</i></p>","<p><i>%1 % erledigt</i></p>" }, 592{ "<p><i>%1 % completed</i></p>","<p><i>%1 % erledigt</i></p>" },
593{ "Organizer","Organisator" }, 593{ "Organizer","Organisator" },
594{ "Save","Speichern" }, 594{ "Save","Speichern" },
595{ "Exit (+save)","Beenden (+ speichern)" }, 595{ "Exit (+save)","Beenden (+ speichern)" },
596{ "Home","Zuhause" }, 596{ "Home","Zuhause" },
597{ "Office","Büro" }, 597{ "Office","Büro" },
598{ "Libary","Bücherei" }, 598{ "Libary","Bücherei" },
599{ "Doctor","Arzt" }, 599{ "Doctor","Arzt" },
600{ "Beach","Strand" }, 600{ "Beach","Strand" },
601{ "Conference room","Konferenzraum" }, 601{ "Conference room","Konferenzraum" },
602{ "Drive Home","Heimfahrt" }, 602{ "Drive Home","Heimfahrt" },
603{ "Watch TV","Tv gucken" }, 603{ "Watch TV","Tv gucken" },
604{ "Phone call","Telefonanruf" }, 604{ "Phone call","Telefonanruf" },
605{ "Pay bill","Rechnung bezahlen" }, 605{ "Pay bill","Rechnung bezahlen" },
606{ "Read book","Buch lesen" }, 606{ "Read book","Buch lesen" },
607{ "Watering plants","Pflanzen giessen" }, 607{ "Watering plants","Pflanzen giessen" },
608{"Appointment","Verabredung" }, 608{"Appointment","Verabredung" },
609{"Birthday","Geburtstag" }, 609{"Birthday","Geburtstag" },
610{"Business","Geschäft" }, 610{"Business","Geschäft" },
611{"Business Travel","Geschäftsreise" }, 611{"Business Travel","Geschäftsreise" },
612{"Cinema","Kino" }, 612{"Cinema","Kino" },
613{"Customer","Kunde" }, 613{"Customer","Kunde" },
614{"Break","Pause" }, 614{"Break","Pause" },
615{"Breakfast","Frühstück" }, 615{"Breakfast","Frühstück" },
616{"Competition","Wettkampf" }, 616{"Competition","Wettkampf" },
617{"Dinner","Abendessen" }, 617{"Dinner","Abendessen" },
618{"Education","Erziehung" }, 618{"Education","Erziehung" },
619{"Family","Familie" }, 619{"Family","Familie" },
620{"Favorites","Favoriten" }, 620{"Favorites","Favoriten" },
621{"Festival","Festival" }, 621{"Festival","Festival" },
622{"Fishing","Angeln" }, 622{"Fishing","Angeln" },
623{"Flight","Flug" }, 623{"Flight","Flug" },
624{"Gifts","Geschenk" }, 624{"Gifts","Geschenk" },
625{"Holiday","Feiertag" }, 625{"Holiday","Feiertag" },
626{"Holiday Cards","Ansichtskarten" }, 626{"Holiday Cards","Ansichtskarten" },
627{"Hot Contacts","Heisse Kontakte" }, 627{"Hot Contacts","Heisse Kontakte" },
628{"Hiking","Wandern" }, 628{"Hiking","Wandern" },
629{"Hunting","Jagen" }, 629{"Hunting","Jagen" },
630{"Key Customer","Wichtiger Kunde" }, 630{"Key Customer","Wichtiger Kunde" },
631{"Kids","Kinder" }, 631{"Kids","Kinder" },
632{"Lunch","Mittagessen" }, 632{"Lunch","Mittagessen" },
633{"Meeting","Treffen" }, 633{"Meeting","Treffen" },
634{"Miscellaneous","Verschiedenes" }, 634{"Miscellaneous","Verschiedenes" },
635{"Partner","Partner" }, 635{"Partner","Partner" },
636{"Party","Partie" }, 636{"Party","Partie" },
637{"Personal","Privat" }, 637{"Personal","Privat" },
638{"Personal Travel","Privatreise"}, 638{"Personal Travel","Privatreise"},
639{"PHB","PHB" }, 639{"PHB","PHB" },
640{"Phone Calls","Telefonanruf" }, 640{"Phone Calls","Telefonanruf" },
641{"Projects","Projekt" }, 641{"Projects","Projekt" },
642{"Recurring","Wiederholend" }, 642{"Recurring","Wiederholend" },
643{"School","Schule" }, 643{"School","Schule" },
644{"Shopping","Einkaufen" }, 644{"Shopping","Einkaufen" },
645{"Speach","Rede" }, 645{"Speach","Rede" },
646{"Special Occasion","Spez.Gelegenheit" }, 646{"Special Occasion","Spez.Gelegenheit" },
647{"Sports","Sport" }, 647{"Sports","Sport" },
648{"Talk","Vortrag" }, 648{"Talk","Vortrag" },
649{"Travel","Reise" }, 649{"Travel","Reise" },
650{"TV","TV" }, 650{"TV","TV" },
651{"Germany","Deutschland" }, 651{"Germany","Deutschland" },
652{"Sweden","Schweden" }, 652{"Sweden","Schweden" },
653{"Forest","Wald" }, 653{"Forest","Wald" },
654{ "Desert","Wüste" }, 654{ "Desert","Wüste" },
655{ "Kitchen","Küche" }, 655{ "Kitchen","Küche" },
656{ "Lake","See" }, 656{ "Lake","See" },
657{"University","Universität"}, 657{"University","Universität"},
658{"Vacation","Urlaub" }, 658{"Vacation","Urlaub" },
659{"VIP","VIP" }, 659{"VIP","VIP" },
660{ "Import Sharp Calendar","Importiere Sharp Kalender" }, 660{ "Import Sharp Calendar","Importiere Sharp Kalender" },
661{ "This todo has been cancelled!","Dieses Todo wurde gecancelt!" }, 661{ "This todo has been cancelled!","Dieses Todo wurde gecancelt!" },
662{ "This event has been cancelled!","Dieser Termin wurde gecancelt!" }, 662{ "This event has been cancelled!","Dieser Termin wurde gecancelt!" },
663{ "Cancelled","Gecancelt" }, 663{ "Cancelled","Gecancelt" },
664{ "Multiple sync","Mehrfach Sync" }, 664{ "Multiple sync","Mehrfach Sync" },
665{ "Local file","Lokale Datei" }, 665{ "Local file","Lokale Datei" },
666{ "Last file","Letzte Datei" }, 666{ "Last file","Letzte Datei" },
667{ "Keys + Colors...","Tasten + Farben..." }, 667{ "Keys + Colors...","Tasten + Farben..." },
668{ "Mini icons in toolbar(nr)","Mini Icons in ToolBar(bn)" }, 668{ "Mini icons in toolbar(nr)","Mini Icons in ToolBar(bn)" },
669{ "Quick load/save (w/o Unicode)","Schnelles Laden/Speichern (o Unicode)" }, 669{ "Quick load/save (w/o Unicode)","Schnelles Laden/Speichern (o Unicode)" },
670{ "Choose...","Wähle..." }, 670{ "Choose...","Wähle..." },
671{ "Use colors for application:","Setze Farben für Programm:" }, 671{ "Use colors for application:","Setze Farben für Programm:" },
672{ "Buttons, menus, etc.:","Knöpfe, Menu, etc.:" }, 672{ "Buttons, menus, etc.:","Knöpfe, Menu, etc.:" },
673{ "Frames, labels, etc.:","Rahmen, Label, etc.:" }, 673{ "Frames, labels, etc.:","Rahmen, Label, etc.:" },
674{ "Show parent To-Do's in What's Next view","Zeige Ober-Todo in What's Next Anz." }, 674{ "Show parent To-Do's in What's Next view","Zeige Ober-Todo in What's Next Anz." },
675{ "Show location in What's Next view","Zeige Ort in What's Next Anz." }, 675{ "Show location in What's Next view","Zeige Ort in What's Next Anz." },
676{ "Show events that recur ","Zeige Termine, die sich wiederholen:" }, 676{ "Show events that recur ","Zeige Termine, die sich wiederholen:" },
677{ "Show in every cell ","Zeige in jeder Zelle " }, 677{ "Show in every cell ","Zeige in jeder Zelle " },
678{ "short month","kurzen Monat" }, 678{ "short month","kurzen Monat" },
679{ "icons","Icons" }, 679{ "icons","Icons" },
680{ "Show Sat/Sun together","Zeige Sam/Son zusammen" }, 680{ "Show Sat/Sun together","Zeige Sam/Son zusammen" },
681{ "Categorie colors are applied to text","Kategorie Farben färben Text" }, 681{ "Categorie colors are applied to text","Kategorie Farben färben Text" },
682{ "Month view uses day colors","Monatsansicht zeigt Tagesfarben" }, 682{ "Month view uses day colors","Monatsansicht zeigt Tagesfarben" },
683{ "Day color odd months","Tagesfarbe ungerade Monate" }, 683{ "Day color odd months","Tagesfarbe ungerade Monate" },
684{ "Day color even months","Tagesfarbe gerade Monate" }, 684{ "Day color even months","Tagesfarbe gerade Monate" },
685{ "Color for Sundays + category \"Holiday\"","Farbe für Sonntag + Kateg.\" Feiertag\"" }, 685{ "Color for Sundays + category \"Holiday\"","Farbe für Sonntag + Kateg.\" Feiertag\"" },
686{ "To-do view shows complete as 'xx %'","Zeige Prozent erledigt als 'xx %'" }, 686{ "To-do view shows complete as 'xx %'","Zeige Prozent erledigt als 'xx %'" },
687{ "Small To-do view uses smaller font","Kleine To-do Ansicht nutzt kleineren Font" }, 687{ "Small To-do view uses smaller font","Kleine To-do Ansicht nutzt kleineren Font" },
688{ "Colors are applied to text","Farben werden auf Text angewendet" }, 688{ "Colors are applied to text","Farben werden auf Text angewendet" },
689{ "Use internal alarm notification","Nutze interne Alarm Benachrichtigung" }, 689{ "Use internal alarm notification","Nutze interne Alarm Benachrichtigung" },
690{ "Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n","Achtung: KO/Pi muß ausgeführt werden damit die Benachrichtigung funktioniert. Empfehlung für Zaurus: Diese Option nicht wählen und KO/Pi Alarm Applet installieren.\n" }, 690{ "Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n","Achtung: KO/Pi muß ausgeführt werden damit die Benachrichtigung funktioniert. Empfehlung für Zaurus: Diese Option nicht wählen und KO/Pi Alarm Applet installieren.\n" },
691{ "Play beeps count:","Anzahl der Alarmpiepse: " }, 691{ "Play beeps count:","Anzahl der Alarmpiepse: " },
692{ "Beeps interval in sec:","Zeitintervall der Alarmpiepse: " }, 692{ "Beeps interval in sec:","Zeitintervall der Alarmpiepse: " },
693{ "Default suspend time in min:","Standard Supendierungs Zeit: " }, 693{ "Default suspend time in min:","Standard Supendierungs Zeit: " },
694{ "Auto suspend count:","Anzahl der auto Suspendierungen" }, 694{ "Auto suspend count:","Anzahl der auto Suspendierungen" },
695{ "Alarm *.wav file for newly created alarm:","Alarm *.wav Datei für neu angelegte Alarme:" }, 695{ "Alarm *.wav file for newly created alarm:","Alarm *.wav Datei für neu angelegte Alarme:" },
696{ "New profile","Neues Profil" }, 696{ "New profile","Neues Profil" },
697{ "Clone profile","Klone Profil" }, 697{ "Clone profile","Klone Profil" },
698{ "Delete profile","Lösche Profil" }, 698{ "Delete profile","Lösche Profil" },
699{ "Profile:","Profil:" }, 699{ "Profile:","Profil:" },
700{ "Include in multiple sync","Beziehe Profil in mehrfach Sync mit ein" }, 700{ "Include in multiple sync","Beziehe Profil in mehrfach Sync mit ein" },
701{ "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" }, 701{ "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" },
702{ "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" }, 702{ "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" },
703{ "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" }, 703{ "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" },
704{ "Write back file","Schreibe Datei zurück" }, 704{ "Write back file","Schreibe Datei zurück" },
705{ "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" }, 705{ "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" },
706{ "Pre sync (download) command:","Bevor Sync (download) Kommando:" }, 706{ "Pre sync (download) command:","Bevor Sync (download) Kommando:" },
707{ "Local device name:","Name dieses Gerätes:" }, 707{ "Local device name:","Name dieses Gerätes:" },
708{ "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" }, 708{ "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" },
709{ "Sync preferences","Synchronisations Einstellungen" }, 709{ "Sync preferences","Synchronisations Einstellungen" },
710{ "Profile kind","Profil Art" }, 710{ "Profile kind","Profil Art" },
711{ "Local file","Lokale Datei" }, 711{ "Local file","Lokale Datei" },
712{ "Local file:","Lokale Datei:" }, 712{ "Local file:","Lokale Datei:" },
713{ "Post sync (upload) command:","Nach Sync (upload) Kommando:" }, 713{ "Post sync (upload) command:","Nach Sync (upload) Kommando:" },
714{ "Fill in default values for:","Setze Beispiel Werte ein für:" }, 714{ "Fill in default values for:","Setze Beispiel Werte ein für:" },
715{ "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" }, 715{ "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" },
716{ "Synchronization Preferences","Einstellungen der Synchronisationsprofile"}, 716{ "Synchronization Preferences","Einstellungen der Synchronisationsprofile"},
717{ "Device","Gerät:" }, 717{ "Device","Gerät:" },
718{ "Sync with file \n...%1\nfrom:\n%2\n","Sync mit Datei \n...%1\nvom:\n%2\n" }, 718{ "Sync with file \n...%1\nfrom:\n%2\n","Sync mit Datei \n...%1\nvom:\n%2\n" },
719{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n","Synchronisationsübersicht:\n\n %d items lokal hinzugefügt\n %d items entfernt hinzugefügt\n %d items lokal geändert\n %d items entfernt geändert\n %d items lokal gelöscht\n %d items entfernt gelöscht\n" }, 719{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n","Synchronisationsübersicht:\n\n %d items lokal hinzugefügt\n %d items entfernt hinzugefügt\n %d items lokal geändert\n %d items entfernt geändert\n %d items lokal gelöscht\n %d items entfernt gelöscht\n" },
720{ "Synchronization successful","Synchronisation erfolgreich" }, 720{ "Synchronization successful","Synchronisation erfolgreich" },
721{ "Sync cancelled or failed. Nothing synced.","Sync abgebrochen oder fehlgeschlagen. Nichts wurde gesynced." }, 721{ "Sync cancelled or failed. Nothing synced.","Sync abgebrochen oder fehlgeschlagen. Nichts wurde gesynced." },
722{ "Sync file \n...%1\ndoes not exist!\nNothing synced!\n","Sync Datei \n...%1\nexistiert nicht!\nNichts wurde gesynced!\n" }, 722{ "Sync file \n...%1\ndoes not exist!\nNothing synced!\n","Sync Datei \n...%1\nexistiert nicht!\nNichts wurde gesynced!\n" },
723{ "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" }, 723{ "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" },
724{ "Enter password","Passwort eingeben" }, 724{ "Enter password","Passwort eingeben" },
725{ "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" }, 725{ "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" },
726{ "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." }, 726{ "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." },
727{ "Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n","Sorry, das Kopierkommando schlug fehl!\nKommando war:\n%1\n \nVersuche Kommando von Kosole um\nDetails für das Fehlschlagen\nzu erfahren.\n" }, 727{ "Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n","Sorry, das Kopierkommando schlug fehl!\nKommando war:\n%1\n \nVersuche Kommando von Kosole um\nDetails für das Fehlschlagen\nzu erfahren.\n" },
728{ "Writing back file result: ","Resultat des Dateizurückschreibens: " }, 728{ "Writing back file result: ","Resultat des Dateizurückschreibens: " },
729{ "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" }, 729{ "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" },
730{ "Edit Calendar Filters","Editiere Kalendar Filter" }, 730{ "Edit Calendar Filters","Editiere Kalendar Filter" },
731{ "Enter filter name:","Neuer Filter Name:" }, 731{ "Enter filter name:","Neuer Filter Name:" },
732{ "Add Filter","Filter hinzufügen" }, 732{ "Add Filter","Filter hinzufügen" },
733{ "Question","Frage" }, 733{ "Question","Frage" },
734{ "Filter position: ","Filter Position: " }, 734{ "Filter position: ","Filter Position: " },
735{ "Month View","Monatsansicht" }, 735{ "Month View","Monatsansicht" },
736{ "This profil cannot be deleted!\n","Dieses Profil kann\nnicht gelöscht werden!" }, 736{ "This profil cannot be deleted!\n","Dieses Profil kann\nnicht gelöscht werden!" },
737{ "KO/Pi config error","KO/Pi Konfig. Fehler" }, 737{ "KO/Pi config error","KO/Pi Konfig. Fehler" },
738{ "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" }, 738{ "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" },
739{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile haben denselben Namen!\nBitte unterschiedliche Namen wählen!" }, 739{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile haben denselben Namen!\nBitte unterschiedliche Namen wählen!" },
740{ "Access: ","Zugriff: " }, 740{ "Access: ","Zugriff: " },
741{ "Needs Action","Aktion notwendig" }, 741{ "Needs Action","Aktion notwendig" },
742{ "Accepted","Akzeptiert" }, 742{ "Accepted","Akzeptiert" },
743{ "Declined","Abgelehnt" }, 743{ "Declined","Abgelehnt" },
744{ "Tentative","Vorläufig" }, 744{ "Tentative","Vorläufig" },
745{ "Delegated","Beauftragt" }, 745{ "Delegated","Beauftragt" },
746{ "Completed","Vollständig" }, 746{ "Completed","Vollständig" },
747{ "In Process","In Bearbeitung" }, 747{ "In Process","In Bearbeitung" },
748{ "Participant","Teilnehmer" }, 748{ "Participant","Teilnehmer" },
749{ "Optional Participant","Möglicher Teilnehmer" }, 749{ "Optional Participant","Möglicher Teilnehmer" },
750{ "Observer","Beobachter" }, 750{ "Observer","Beobachter" },
751{ "Chair","Vorsitzender" }, 751{ "Chair","Vorsitzender" },
752{ "Not supported \non desktop!\n","" }, 752{ "Not supported \non desktop!\n","" },
753{ "Nothing selected!\n\nThis prints the full width of the Agenda view as you see it!\n\nTo determine the vertical range of the printing, please select\na vertical range (with the left mouse button down) in one column. ","Es ist nichts selektiert!\nDieses druckt die volle Breite der Agenda View, so wie man sie sieht.\nUm die verticale Auswahl zum Drucken zu bestimmen,\nbitte einen verticalen Zeitraum (mit gedrückter linker Maustaste)\nin einer Spalte auswählen. " }, 753{ "Nothing selected!\n\nThis prints the full width of the Agenda view as you see it!\n\nTo determine the vertical range of the printing, please select\na vertical range (with the left mouse button down) in one column. ","Es ist nichts selektiert!\nDieses druckt die volle Breite der Agenda View, so wie man sie sieht.\nUm die verticale Auswahl zum Drucken zu bestimmen,\nbitte einen verticalen Zeitraum (mit gedrückter linker Maustaste)\nin einer Spalte auswählen. " },
754{ "Date range: ","Datums Zeitspanne: " }, 754{ "Date range: ","Datums Zeitspanne: " },
755{ "Not supported \non PDA!\n","Nicht verfügbar\nauf dem PDA. " }, 755{ "Not supported \non PDA!\n","Nicht verfügbar\nauf dem PDA. " },
756{ "Syncing - close to abort!","Syncing-schließe um abzubrechen." }, 756{ "Syncing - close to abort!","Syncing-schließe um abzubrechen." },
757{ "Add / remove events","Add./entferne Termine" }, 757{ "Add / remove events","Add./entferne Termine" },
758{ "File does not exist:\n '%1'.","Datei existiert nicht:\n '%1'." }, 758{ "File does not exist:\n '%1'.","Datei existiert nicht:\n '%1'." },
759{ "Couldn't load calendar\n '%1'.","Kann Kalender nicht laden:\n '%1'." }, 759{ "Couldn't load calendar\n '%1'.","Kann Kalender nicht laden:\n '%1'." },
760{ "\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie gepeicherte Datei wurde verändert!\nDatei Grösse: %1 Bytes.\nZuletzt geändert: %2\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" }, 760{ "\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie gepeicherte Datei wurde verändert!\nDatei Grösse: %1 Bytes.\nZuletzt geändert: %2\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" },
761{ "Overwrite","Überschreiben" }, 761{ "Overwrite","Überschreiben" },
762{ "Sync+save","Syncen+speichern" }, 762{ "Sync+save","Syncen+speichern" },
763{ "Default","Standard" }, 763{ "Default","Standard" },
764{ " Categories added to list! "," Kategorien zur Liste hinzugefügt! " }, 764{ " Categories added to list! "," Kategorien zur Liste hinzugefügt! " },
765{ " %d items?"," %d Einträge?" }, 765{ " %d items?"," %d Einträge?" },
766{ "\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?","\nDieses ist ein\nwiederholender Termin!.\nSind Sie sicher, dass Sie\ndiesen Termin und alle\nWiederholungen löschen möchten?" }, 766{ "\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?","\nDieses ist ein\nwiederholender Termin!.\nSind Sie sicher, dass Sie\ndiesen Termin und alle\nWiederholungen löschen möchten?" },
767{ " ?\n\nDelete:\n"," ?\n\nLösche:\n" }, 767{ " ?\n\nDelete:\n"," ?\n\nLösche:\n" },
768{ "Current","Aktuelle" }, 768{ "Current","Aktuelle" },
769{ "\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n","\nDieses ist ein\nwiederholender Termin!\nMöchten sie alle Wiederholungen\nlöschen, oder nur die aktuelle am:\n" }, 769{ "\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n","\nDieses ist ein\nwiederholender Termin!\nMöchten sie alle Wiederholungen\nlöschen, oder nur die aktuelle am:\n" },
770{ "All","Alle" }, 770{ "All","Alle" },
771{ "Data Loss Warning","Datenverlust Warnung" }, 771{ "Data Loss Warning","Datenverlust Warnung" },
772{ "Proceed","Weitermachen" }, 772{ "Proceed","Weitermachen" },
773{ "The journal entries can not be\nexported to a vCalendar file.","Die Journal Einträge können\nnicht in eine vCalendar\nDatei exportiert werden!" }, 773{ "The journal entries can not be\nexported to a vCalendar file.","Die Journal Einträge können\nnicht in eine vCalendar\nDatei exportiert werden!" },
774{ "Filter disabled ","Filter abgeschaltet" }, 774{ "Filter disabled ","Filter abgeschaltet" },
775{ "Filter selected: ","Gewählter Filter: " }, 775{ "Filter selected: ","Gewählter Filter: " },
776{ "Toggle Cancel","Gecancelt ändern" }, 776{ "Toggle Cancel","Gecancelt ändern" },
777{ "&Toggle Cancel","Gecancel&t ändern" }, 777{ "&Toggle Cancel","Gecancel&t ändern" },
778{ "Configure Toolbar","Konfiguriere Toolbar" }, 778{ "Configure Toolbar","Konfiguriere Toolbar" },
779{ "Stretched TB","Gedehnte TB" }, 779{ "Stretched TB","Gedehnte TB" },
780{ "Import file \n...%1\ndoes not exist!\nNothing imported!\n","Import Datei \n...%1\nexistiert nicht!\nNichts importiert!\n" }, 780{ "Import file \n...%1\ndoes not exist!\nNothing imported!\n","Import Datei \n...%1\nexistiert nicht!\nNichts importiert!\n" },
781{ "Import filename(*.ics/*.vcs)","Import Dateiname(*.ics/*.vcs)" }, 781{ "Import filename(*.ics/*.vcs)","Import Dateiname(*.ics/*.vcs)" },
782{ "When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing","Wenn ein Kalender doppelt importiert\nwird, werden doppelte Einträge ignoriert!\nSie können eine Backup Datei anlegen unter\nDatei - Speichere Kalender Backup\num den Import rückgängig machen zu können.\n" }, 782{ "When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing","Wenn ein Kalender doppelt importiert\nwird, werden doppelte Einträge ignoriert!\nSie können eine Backup Datei anlegen unter\nDatei - Speichere Kalender Backup\num den Import rückgängig machen zu können.\n" },
783{ "Not supported \non desktop!\n","Nur verfügbar auf PDA!" }, 783{ "Not supported \non desktop!\n","Nur verfügbar auf PDA!" },
784{ "Imported file successfully","Datei erfolgreich importiert" }, 784{ "Imported file successfully","Datei erfolgreich importiert" },
785{ "Error importing file","Fehler beim Importieren der Datei" }, 785{ "Error importing file","Fehler beim Importieren der Datei" },
786{ "Export vcal filename(*.vcs)","Export vcal Dateiname(*.vcs)" }, 786{ "Export vcal filename(*.vcs)","Export vcal Dateiname(*.vcs)" },
787{ "Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n","Zu speichernde Datei\existiert bereits!\nExist. Datei vom:\n%1\nÜberschreiben?\n" }, 787{ "Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n","Zu speichernde Datei\existiert bereits!\nExist. Datei vom:\n%1\nÜberschreiben?\n" },
788{ "Overwrite!","Überschreiben!" }, 788{ "Overwrite!","Überschreiben!" },
789{ "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n","Import Datei \n...%1\nvom:\n%2\nDuplizierte Einträge\nwerden nicht importiert!\n" }, 789{ "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n","Import Datei \n...%1\nvom:\n%2\nDuplizierte Einträge\nwerden nicht importiert!\n" },
790{ "Load backup filename","Lade Backup Dateiname" }, 790{ "Load backup filename","Lade Backup Dateiname" },
791{ "Backup file\ndoes not exist!\nNothing loaded!","Backup Datei\nexistiert nicht!\nNichts geladen!" }, 791{ "Backup file\ndoes not exist!\nNothing loaded!","Backup Datei\nexistiert nicht!\nNichts geladen!" },
792{ "KO/Pi:Loaded %1","KO/Pi:Geladen %1" }, 792{ "KO/Pi:Loaded %1","KO/Pi:Geladen %1" },
793{ "Save backup filename","Speichere Backup Dateiname" }, 793{ "Save backup filename","Speichere Backup Dateiname" },
794{ "Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n","Backup Datei\nexistiert bereits!\nAlte Backup Datei vom:\n%1\nÜberschreiben?\n" }, 794{ "Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n","Backup Datei\nexistiert bereits!\nAlte Backup Datei vom:\n%1\nÜberschreiben?\n" },
795{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" }, 795{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" },
796{ "Details of attendee","Teilnehmerdetails" }, 796{ "Details of attendee","Teilnehmerdetails" },
797{ "Work phone:\n","Telefon Arbeit:\n" }, 797{ "Work phone:\n","Telefon Arbeit:\n" },
798{ "Work mobile phone:\n","Mobiltelefon Arbeit:\n" }, 798{ "Work mobile phone:\n","Mobiltelefon Arbeit:\n" },
799{ "Home phone:\n","Telefon privat:\n" }, 799{ "Home phone:\n","Telefon privat:\n" },
800{ "Mobile home phone:\n","Mobiltelefon privat:\n" }, 800{ "Mobile home phone:\n","Mobiltelefon privat:\n" },
801{ "Email:\n","Email:\n" }, 801{ "Email:\n","Email:\n" },
802{ "Alarm disabled","Alarm deaktiviert" }, 802{ "Alarm disabled","Alarm deaktiviert" },
803{ "Audio.Al.: ","Audio Al.: " }, 803{ "Audio.Al.: ","Audio Al.: " },
804{ "Proc.Al.: ","Proc.Al.: " }, 804{ "Proc.Al.: ","Proc.Al.: " },
805{ "No sound set","Kein Sound definiert" }, 805{ "No sound set","Kein Sound definiert" },
806{ "*.wav|Wav Files","*.wav|Wav Dateien" }, 806{ "*.wav|Wav Files","*.wav|Wav Dateien" },
807{ "No program set","Kein Programm definiert" }, 807{ "No program set","Kein Programm definiert" },
808{ "Running '%1'","Ausführen '%1'" }, 808{ "Running '%1'","Ausführen '%1'" },
809{ "Playing '%1'","Abspielen '%1'" }, 809{ "Playing '%1'","Abspielen '%1'" },
810{ "Show Sync Events in WN/Agenda view","Zeige Sync Events in WN/Agenda Ansicht" }, 810{ "Show Sync Events in WN/Agenda view","Zeige Sync Events in WN/Agenda Ansicht" },
811{ "User defined (usertranslation.txt)","Benutzerdefiniert (usertranslation.txt)" }, 811{ "User defined (usertranslation.txt)","Benutzerdefiniert (usertranslation.txt)" },
812{ "Load!","Laden!" }, 812{ "Load!","Laden!" },
813{ "Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n","Backup Datei vom:\n%1\nDas Laden der Backup Datei\nlöscht die aktuellen Daten!\n" }, 813{ "Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n","Backup Datei vom:\n%1\nDas Laden der Backup Datei\nlöscht die aktuellen Daten!\n" },
814{ "KO/Pi Features and hints","KO/Pi Eigenschaften und Tipps" }, 814{ "KO/Pi Features and hints","KO/Pi Eigenschaften und Tipps" },
815{ "KO/Pi User translation HowTo","KO/Pi Benutzer-Übersetzung HowTo" }, 815{ "KO/Pi User translation HowTo","KO/Pi Benutzer-Übersetzung HowTo" },
816{ "KO/Pi Synchronization HowTo","KO/Pi Synchronisation HowTo" }, 816{ "KO/Pi Synchronization HowTo","KO/Pi Synchronisation HowTo" },
817{ "Features + hints...","Eigenschaften + Tipps..." }, 817{ "Features + hints...","Eigenschaften + Tipps..." },
818{ "User translation...","Benutzer Übersetzung..." }, 818{ "User translation...","Benutzer Übersetzung..." },
819{ "Sync HowTo...","Synchronisation HowTo..." }, 819{ "Sync HowTo...","Synchronisation HowTo..." },
820{ "Print calendar...","Drucke Kalender..." }, 820{ "Print calendar...","Drucke Kalender..." },
821{ "Anniversary","Jahrestag" }, 821{ "Anniversary","Jahrestag" },
822{ "When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n","Wenn Geburtstage mehrfach importiert\nwerden, werden doppelte Einträge ignoriert\nwenn sie nicht verändert wurden.\n" }, 822{ "When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n","Wenn Geburtstage mehrfach importiert\nwerden, werden doppelte Einträge ignoriert\nwenn sie nicht verändert wurden.\n" },
823{ "Import Birthdays (KA/Pi)","Importiere Geburtstage (KA/Pi)" }, 823{ "Import Birthdays (KA/Pi)","Importiere Geburtstage (KA/Pi)" },
824{ "Next recurrence is on: ","Nächste Wiederholung ist am:" }, 824{ "Next recurrence is on: ","Nächste Wiederholung ist am:" },
825{ "<b>Alarm on: </b>","<b>Alarm am: </b>" }, 825{ "<b>Alarm on: </b>","<b>Alarm am: </b>" },
826{ "<b>Access: </b>","<b>Zugriff: </b>" }, 826{ "<b>Access: </b>","<b>Zugriff: </b>" },
827{ "(%1 min before)","(%1 min vorher)" }, 827{ "(%1 min before)","(%1 min vorher)" },
828{ "<b>Categories: </b>","<b>Kategorien: </b>" }, 828{ "<b>Categories: </b>","<b>Kategorien: </b>" },
829{ "Save Journal/Description...","Speichere Journal/Details..." }, 829{ "Save Journal/Description...","Speichere Journal/Details..." },
830{ "This saves the text/details of selected\nJournals and Events/Todos\nto a text file.","Das speichert den Text bzw.\ndie Details von selektierten\nJournalen und Events/Todos\nin eine Textdatei." }, 830{ "This saves the text/details of selected\nJournals and Events/Todos\nto a text file.","Das speichert den Text bzw.\ndie Details von selektierten\nJournalen und Events/Todos\nin eine Textdatei." },
831{ "Continue","Weitermachen" }, 831{ "Continue","Weitermachen" },
832{ " birthdays/anniversaries added!"," Geburts-/Jahrestage hinzugefügt" }, 832{ " birthdays/anniversaries added!"," Geburts-/Jahrestage hinzugefügt" },
833{ "Attendee:","Teilnehmer:" }, 833{ "Attendee:","Teilnehmer:" },
834{ "Click OK to search ->","Klicke zum Suchen auf OK ->" }, 834{ "Click OK to search ->","Klicke zum Suchen auf OK ->" },
835{ "On day ","Am Tag " }, 835{ "On day ","Am Tag " },
836{ "%1 of ","%1 des Monats" }, 836{ "%1 of ","%1 des Monats" },
837{ "%1 of the year","%1 des Jahres" }, 837{ "%1 of the year","%1 des Jahres" },
838{ "Anonymous","Anonymo" }, 838{ "Anonymous","Anonymo" },
839{ "nobody@nowhere","niemand@nirgendwo" }, 839{ "nobody@nowhere","niemand@nirgendwo" },
840{ "calendar.html","calendar.html" }, 840{ "calendar.html","calendar.html" },
841{ " Local Time"," Locale Zeit" }, 841{ " Local Time"," Locale Zeit" },
842{ "Unknown Name","Unbekannter Name" }, 842{ "Unknown Name","Unbekannter Name" },
843{ "unknown@nowhere","unbekannt@nirgendwo" }, 843{ "unknown@nowhere","unbekannt@nirgendwo" },
844{ "Beam via IR!","Beam via IR!" }, 844{ "Beam via IR!","Beam via IR!" },
845{ "Next Month","Nächster Monat" }, 845{ "Next Month","Nächster Monat" },
846{ "Prio","Prio" }, 846{ "Prio","Prio" },
847{ "Reparent Todo","Mache Sub-Todo" }, 847{ "Reparent Todo","Mache Sub-Todo" },
848{ "tomorrow","morgen" }, 848{ "tomorrow","morgen" },
849{ "today","heute" }, 849{ "today","heute" },
850{ "yesterday","gestern" }, 850{ "yesterday","gestern" },
851{ "Ok","Ok" }, 851{ "Ok","Ok" },
852{ "Ok+Agenda","Ok+Agenda" }, 852{ "Ok+Agenda","Ok+Agenda" },
853{ "Email","Email" }, 853{ "Email","Email" },
854{ "RSVP","RSVP" }, 854{ "RSVP","RSVP" },
855{ "Email:","Email:" }, 855{ "Email:","Email:" },
856{ "Appointment Time ","Termin Zeit " }, 856{ "Appointment Time ","Termin Zeit " },
857{ "2","2" }, 857{ "2","2" },
858{ "3","3" }, 858{ "3","3" },
859{ "4","4" }, 859{ "4","4" },
860{ " 0 %"," 0 %" }, 860{ " 0 %"," 0 %" },
861{ " 20 %"," 20 %" }, 861{ " 20 %"," 20 %" },
862{ " 40 %"," 40 %" }, 862{ " 40 %"," 40 %" },
863{ " 60 %"," 60 %" }, 863{ " 60 %"," 60 %" },
864{ " 80 %"," 80 %" }, 864{ " 80 %"," 80 %" },
865{ "100 %","100 %" }, 865{ "100 %","100 %" },
866{ "Filter","Filter" }, 866{ "Filter","Filter" },
867{ "Configure","Konfiguriere" }, 867{ "Configure","Konfiguriere" },
868{ "What's Next","What's Next" }, 868{ "What's Next","What's Next" },
869{ "Complete calendar...","Kompletten Kalender..." }, 869{ "Complete calendar...","Kompletten Kalender..." },
870{ "Filtered calendar...","Gefilterten Kalender..." }, 870{ "Filtered calendar...","Gefilterten Kalender..." },
871{ "Export to phone","Exportiere zum Handy" }, 871{ "Export to phone","Exportiere zum Handy" },
872{ "Beam receive enabled","Beam Empfang an" }, 872{ "Beam receive enabled","Beam Empfang an" },
873{ "What's new?","Was ist neu?" }, 873{ "What's new?","Was ist neu?" },
874{ "FAQ...","FAQ..." }, 874{ "FAQ...","FAQ..." },
875{ "Licence...","Licence..." }, 875{ "Licence...","Licence..." },
876{ "What's This?","What's This?" }, 876{ "What's This?","What's This?" },
877{ "&Edit...","&Editiere..." }, 877{ "&Edit...","&Editiere..." },
878{ "Oktober","Oktober" }, 878{ "Oktober","Oktober" },
879{ "Title","Titel" }, 879{ "Title","Titel" },
880{ "%1 %","%1 %" }, 880{ "%1 %","%1 %" },
881{ "Enable Pi-Sync","Schalte Pi-Sync an" }, 881{ "Enable Pi-Sync","Schalte Pi-Sync an" },
882{ "Import!","Importiere!" }, 882{ "Import!","Importiere!" },
883{ "inserting birthdays - close to abort!","Burzeltage werden eingefügt - schließe um abzubrechen!" }, 883{ "inserting birthdays - close to abort!","Burzeltage werden eingefügt - schließe um abzubrechen!" },
884{ "Export to phone options","Export ans Handy Optionen" }, 884{ "Export to phone options","Export ans Handy Optionen" },
885{ "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." }, 885{ "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." },
886{ "I/O device: ","I/O device: " }, 886{ "I/O device: ","I/O device: " },
887{ "Connection: ","Connection: " }, 887{ "Connection: ","Connection: " },
888{ "Model(opt.): ","Model(opt.): " }, 888{ "Model(opt.): ","Model(opt.): " },
889{ "Write back events in future only","Schreibe nur zukünftige Termine zurück" }, 889{ "Write back events in future only","Schreibe nur zukünftige Termine zurück" },
890{ "Max. weeks in future: ","Max. Wochen in der Zukunft: " }, 890{ "Max. weeks in future: ","Max. Wochen in der Zukunft: " },
891{ "NOTE: This will remove all old\ntodo/calendar data on phone!","ACHTUNG: Das löscht alle alten\nToDo/Kalender Daten auf dem Handy!" }, 891{ "NOTE: This will remove all old\ntodo/calendar data on phone!","ACHTUNG: Das löscht alle alten\nToDo/Kalender Daten auf dem Handy!" },
892{ "Export to mobile phone!","Exportiere auf das Handy!" }, 892{ "Export to mobile phone!","Exportiere auf das Handy!" },
893{ "Export complete calendar","Exportiere kompletten Kalender" }, 893{ "Export complete calendar","Exportiere kompletten Kalender" },
894{ "Writing to phone...","Sende Daten ans Handy..." }, 894{ "Writing to phone...","Sende Daten ans Handy..." },
895{ " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" }, 895{ " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" },
896{ "Retry","Nochmal versuchen" }, 896{ "Retry","Nochmal versuchen" },
897{ "KDE/Pim phone access","KDE/Pim Handy Zugriff" }, 897{ "KDE/Pim phone access","KDE/Pim Handy Zugriff" },
898{ "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" }, 898{ "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" },
899{ "Error exporting to phone!","Fehler beim Export auf das Handy!" }, 899{ "Error exporting to phone!","Fehler beim Export auf das Handy!" },
900{ "Export filtered calendar","Exportiere gefilterten Kalender" }, 900{ "Export filtered calendar","Exportiere gefilterten Kalender" },
901{ "Preferences","Vorlieben" }, 901{ "Preferences","Vorlieben" },
902{ "Global","Global" }, 902{ "Global","Global" },
903{ "Phone","Phone" }, 903{ "Phone","Phone" },
904{ "SMS","SMS" }, 904{ "SMS","SMS" },
905{ "Fax","Fax" }, 905{ "Fax","Fax" },
906{ "Pager","Pager" }, 906{ "Pager","Pager" },
907{ "SIP","SIP" }, 907{ "SIP","SIP" },
908{ "Italian","Italienisch" }, 908{ "Italian","Italienisch" },
909{ "24:00","24:00" }, 909{ "24:00","24:00" },
910{ "12:00am","12:00am" }, 910{ "12:00am","12:00am" },
911{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" }, 911{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" },
912{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" }, 912{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" },
913{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" }, 913{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" },
914{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" }, 914{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" },
915{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" }, 915{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" },
916{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" }, 916{ "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" },
917{ "Used Mail Client","Benutzter Mail Client" }, 917{ "Used Mail Client","Benutzter Mail Client" },
918{ "Channel:","Channel:" }, 918{ "Channel:","Channel:" },
919{ "Message:","Message:" }, 919{ "Message:","Message:" },
920{ "Parameters:","Parameter:" }, 920{ "Parameters:","Parameter:" },
921{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" }, 921{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" },
922{ "extra Message:","extra Message:" }, 922{ "extra Message:","extra Message:" },
923{ "extra Parameters:","extra Parameter:" }, 923{ "extra Parameters:","extra Parameter:" },
924{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" }, 924{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" },
925{ "External Apps.","Externe Appl." }, 925{ "External Apps.","Externe Appl." },
926{ "24 hours","24 Std." }, 926{ "24 hours","24 Std." },
927{ "3 hours","3 Std." }, 927{ "3 hours","3 Std." },
928{ "1 hour","1 Std." }, 928{ "1 hour","1 Std." },
929{ "15 minutes","15 Min." }, 929{ "15 minutes","15 Min." },
930{ "5 minutes","5 Min." }, 930{ "5 minutes","5 Min." },
931{ "1 minute","1 Min." }, 931{ "1 minute","1 Min." },
932{ "23","23" }, 932{ "23","23" },
933{ "Mon 15","Mon 15" }, 933{ "Mon 15","Mon 15" },
934{ "Configure KO","Konfiguriere KO" }, 934{ "Configure KO","Konfiguriere KO" },
935{ "Event text","Termin Text" }, 935{ "Event text","Termin Text" },
936{ "ToDo","ToDo" }, 936{ "ToDo","ToDo" },
937{ "Today","Heute" }, 937{ "Today","Heute" },
938{ "What's Next View","What's Next Ansicht" }, 938{ "What's Next View","What's Next Ansicht" },
939{ "Show Sync Events in \nWhat's Next/Agenda view","Zeige Sync Termine in \nWhat's Next/Agenda view" }, 939{ "Show Sync Events in \nWhat's Next/Agenda view","Zeige Sync Termine in \nWhat's Next/Agenda view" },
940{ "Use short date in \nWhat's Next/Event view","Zeige Kurzdatum in \nWhat's Next/Event view" }, 940{ "Use short date in \nWhat's Next/Event view","Zeige Kurzdatum in \nWhat's Next/Event view" },
941{ "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" }, 941{ "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" },
942{ "Alarm","Alarm" }, 942{ "Alarm","Alarm" },
943{ "Used %1 Client","Benutzter %1 Client" }, 943{ "Used %1 Client","Benutzter %1 Client" },
944{ "No email client installed","Kein Email Klient installiert" }, 944{ "No email client installed","Kein Email Klient installiert" },
945{ "Userdefined email client","Benutzerdef. Email Klient" }, 945{ "Userdefined email client","Benutzerdef. Email Klient" },
946{ "OM/Pi email client","OM/Pi Email Klient" }, 946{ "OM/Pi email client","OM/Pi Email Klient" },
947{ "Include in multiple ","Beziehe in multiple " }, 947{ "Include in multiple ","Beziehe in multiple " },
948{ "calendar ","Kalender " }, 948{ "calendar ","Kalender " },
949{ "addressbook ","Adressbuch " }, 949{ "addressbook ","Adressbuch " },
950{ "pwmanager","PWmanager" }, 950{ "pwmanager","PWmanager" },
951{ " sync"," Sync ein" }, 951{ " sync"," Sync ein" },
952{ "Write back synced data","Schreibe gesyncte Daten zurück" }, 952{ "Write back synced data","Schreibe gesyncte Daten zurück" },
953{ "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, 953{ "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" },
954{ "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, 954{ "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" },
955{ "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, 955{ "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " },
956{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, 956{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" },
957{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, 957{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" },
958{ "Help...","Hilfe..." }, 958{ "Help...","Hilfe..." },
959{ "Local file Cal:","Lokale Datei Kal:" }, 959{ "Local file Cal:","Lokale Datei Kal:" },
960{ "Local file ABook:","Lokale Datei ABuch:" }, 960{ "Local file ABook:","Lokale Datei ABuch:" },
961{ "Local file PWMgr:","Lokale Datei PWMgr:" }, 961{ "Local file PWMgr:","Lokale Datei PWMgr:" },
962{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, 962{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" },
963{ "Calendar:","Kalender:" }, 963{ "Calendar:","Kalender:" },
964{ "AddressBook:","AdressBuch:" }, 964{ "AddressBook:","AdressBuch:" },
965{ "PWManager:","PWManager:" }, 965{ "PWManager:","PWManager:" },
966{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, 966{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" },
967{ "ssh/scp","ssh/scp" }, 967{ "ssh/scp","ssh/scp" },
968{ "ftp","ftp" }, 968{ "ftp","ftp" },
969{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, 969{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" },
970{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, 970{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" },
971{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, 971{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" },
972{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, 972{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" },
973{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, 973{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" },
974{ "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, 974{ "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" },
975{ "KDE-Pim sync config","KDE-Pim sync Konfig" }, 975{ "KDE-Pim sync config","KDE-Pim sync Konfig" },
976{ "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, 976{ "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" },
977{ "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, 977{ "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" },
978{ "Port number (Default: %1)","Port Nummer (Default: %1)" }, 978{ "Port number (Default: %1)","Port Nummer (Default: %1)" },
979{ "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, 979{ "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" },
980{ "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, 980{ "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" },
981{ "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, 981{ "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" },
982{ "Enter port for Pi-Sync","Port Nummer für Pi-Sync" }, 982{ "Enter port for Pi-Sync","Port Nummer für Pi-Sync" },
983{ "Disable Pi-Sync","Schalte Pi-Sync aus" }, 983{ "Disable Pi-Sync","Schalte Pi-Sync aus" },
984{ "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen \"Multi-Syncen\"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" }, 984{ "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen \"Multi-Syncen\"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" },
985{ "KDE-Pim Sync","KDE-Pim Sync" }, 985{ "KDE-Pim Sync","KDE-Pim Sync" },
986{ "Multiple profiles","Multi-Sync Profile" }, 986{ "Multiple profiles","Multi-Sync Profile" },
987{ "Device: ","Gerät: " }, 987{ "Device: ","Gerät: " },
988{ "Multiple sync started.","Multi-Sync gestartet." }, 988{ "Multiple sync started.","Multi-Sync gestartet." },
989{ "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" }, 989{ "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" },
990{ "Turn filter on","Schalte Filter an" }, 990{ "Turn filter on","Schalte Filter an" },
991{ "Turn filter off","Schalte Filter aus" }, 991{ "Turn filter off","Schalte Filter aus" },
992{ "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" }, 992{ "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" },
993{ "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" }, 993{ "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" },
994{ "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" }, 994{ "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" },
995{ "<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n","<p><b>Schwarz</b>: Termin/Todo mit Teilnehmern. Sie sind der Organisator!</p>\n" }, 995{ "<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n","<p><b>Schwarz</b>: Termin/Todo mit Teilnehmern. Sie sind der Organisator!</p>\n" },
996{ "<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n","<p><b>Dunkelgrün</b>: Information(Beschreibung) verfügbar.([i] in WN Ansicht)</p>\n" }, 996{ "<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n","<p><b>Dunkelgrün</b>: Information(Beschreibung) verfügbar.([i] in WN Ansicht)</p>\n" },
997{ "<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n","<p><b>Blau</b>: Wiederholender Termin.([r] in Whats'Next Ansicht)</p>\n" }, 997{ "<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n","<p><b>Blau</b>: Wiederholender Termin.([r] in Whats'Next Ansicht)</p>\n" },
998{ "<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n","<p><b>Rot</b>: Alarm gesetzt.([a] in Whats'Next Ansicht)</p>\n" }, 998{ "<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n","<p><b>Rot</b>: Alarm gesetzt.([a] in Whats'Next Ansicht)</p>\n" },
999{ "<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n","<p><b>Kreuz</b>: Eintrag gecancelt.([c] in Whats'Next Ansicht)</p>\n" }, 999{ "<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n","<p><b>Kreuz</b>: Eintrag gecancelt.([c] in Whats'Next Ansicht)</p>\n" },
1000{ "<p><b>(for square icons in agenda and month view)</b></p>\n","<p><b>(für quadratische Icons in Agenda und Monats Ansicht)</b></p>\n" }, 1000{ "<p><b>(for square icons in agenda and month view)</b></p>\n","<p><b>(für quadratische Icons in Agenda und Monats Ansicht)</b></p>\n" },
1001{ "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" }, 1001{ "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" },
1002{ "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" }, 1002{ "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" },
1003{ "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Ansicht.</p>\n" }, 1003{ "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Ansicht.</p>\n" },
1004{ "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" }, 1004{ "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" },
1005{ "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" }, 1005{ "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" },
1006{ "<p><b>shift+up/down</b>: Goto first/last item</p>\n","<p><b>shift+up/down</b>: Gehe zum ersten/letzten Eintrag</p>\n" }, 1006{ "<p><b>shift+up/down</b>: Goto first/last item</p>\n","<p><b>shift+up/down</b>: Gehe zum ersten/letzten Eintrag</p>\n" },
1007{ "<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n","<p><b>ctrl+up/down</b>: Gehe hoch/runter 20% aller Einträge</p>\n" }, 1007{ "<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n","<p><b>ctrl+up/down</b>: Gehe hoch/runter 20% aller Einträge</p>\n" },
1008{ "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" }, 1008{ "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" },
1009{ "<p><b>return+shift</b>: Deselect item+one step down</p>\n","<p><b>return+shift</b>: Deselektiere Item+Cursor einen Eintrag runter</p>\n" }, 1009{ "<p><b>return+shift</b>: Deselect item+one step down</p>\n","<p><b>return+shift</b>: Deselektiere Item+Cursor einen Eintrag runter</p>\n" },
1010{ "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" }, 1010{ "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" },
1011{ "<p><b>I</b>: Show info of current item+one step down.</p>\n","<p><b>I</b>: Zeige Detail-Ansicht vom sel.Eintrag+Cursor einen Eintrag runter.</p>\n" }, 1011{ "<p><b>I</b>: Show info of current item+one step down.</p>\n","<p><b>I</b>: Zeige Detail-Ansicht vom sel.Eintrag+Cursor einen Eintrag runter.</p>\n" },
1012{ "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Ansicht:</h3></p>\n" }, 1012{ "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Ansicht:</h3></p>\n" },
1013{ "<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n","<p><b>return+shift</b>: Markiere Todo als nicht erledigt+Cursor einen Eintrag runter</p>\n" }, 1013{ "<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n","<p><b>return+shift</b>: Markiere Todo als nicht erledigt+Cursor einen Eintrag runter</p>\n" },
1014{ "<p><b>return</b>: Mark item as completed+one step down.</p>\n","<p><b>return</b>: Markiere Todo als erledigt+Cursor einen Eintrag runter.</p>\n" }, 1014{ "<p><b>return</b>: Mark item as completed+one step down.</p>\n","<p><b>return</b>: Markiere Todo als erledigt+Cursor einen Eintrag runter.</p>\n" },
1015{ "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" }, 1015{ "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" },
1016{ "<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n","<p><b>shift+P</b>: Mache Todo zum neuen <b>P</b>arent Todo für das Todo, welches mit shift+Sselektiert wurde.</p>\n" }, 1016{ "<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n","<p><b>shift+P</b>: Mache Todo zum neuen <b>P</b>arent Todo für das Todo, welches mit shift+Sselektiert wurde.</p>\n" },
1017{ "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" }, 1017{ "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" },
1018{ "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" }, 1018{ "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" },
1019{ "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" }, 1019{ "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" },
1020{ "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" }, 1020{ "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" },
1021{ "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" }, 1021{ "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" },
1022{ "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" }, 1022{ "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" },
1023{ "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" }, 1023{ "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" },
1024{ "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" }, 1024{ "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" },
1025{ "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" }, 1025{ "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" },
1026{ "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" }, 1026{ "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" },
1027{ "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" }, 1027{ "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" },
1028{ "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" }, 1028{ "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" },
1029{ "<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X</b>: Zeige/verstecke Datenavigator</p>\n" }, 1029{ "<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X</b>: Zeige/verstecke Datenavigator</p>\n" },
1030{ "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" }, 1030{ "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" },
1031{ "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" }, 1031{ "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" },
1032{ "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monats Ansicht</p>\n" }, 1032{ "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monats Ansicht</p>\n" },
1033{ "<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n","<p><b>Z,Y</b>: Arbeitswochen Ansicht | <b>U</b>: Wochen Ansicht</p>\n" }, 1033{ "<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n","<p><b>Z,Y</b>: Arbeitswochen Ansicht | <b>U</b>: Wochen Ansicht</p>\n" },
1034{ "<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n","<p><b>V</b>: Todo Ansicht | <b>L</b>: Termin Listen Ansicht</p>\n" }, 1034{ "<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n","<p><b>V</b>: Todo Ansicht | <b>L</b>: Termin Listen Ansicht</p>\n" },
1035{ "<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ","<p><b>N</b>: Nächste-Tage Ansicht days view| <b>W</b>: What's next Ansicht\n " }, 1035{ "<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ","<p><b>N</b>: Nächste-Tage Ansicht days view| <b>W</b>: What's next Ansicht\n " },
1036{ "<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n","<p><b>1-0</b> (+<b>ctrl</b>): Selektiere Filter 1-10 (11-20)</p>\n" }, 1036{ "<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n","<p><b>1-0</b> (+<b>ctrl</b>): Selektiere Filter 1-10 (11-20)</p>\n" },
1037{ "<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n","<p><b>O</b>: Filter An/Aus | <b>J</b>: Journal Ansicht</p>\n" }, 1037{ "<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n","<p><b>O</b>: Filter An/Aus | <b>J</b>: Journal Ansicht</p>\n" },
1038{ "<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n","<p><b>F</b>: Zeige/verstecke Filter Ansicht |<b>F+ctrl</b>: Editiere Filter </p>\n" }, 1038{ "<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n","<p><b>F</b>: Zeige/verstecke Filter Ansicht |<b>F+ctrl</b>: Editiere Filter </p>\n" },
1039{ "<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n","<p><b>Space</b>: Zeige fullscreen | <b>P</b>: Datums Picker</p>\n" }, 1039{ "<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n","<p><b>Space</b>: Zeige fullscreen | <b>P</b>: Datums Picker</p>\n" },
1040{ "<p><b>I</b>: Show info for selected event/todo</p>\n","<p><b>I</b>: Zeige Info (Details) für selektiertes Item</p>\n" }, 1040{ "<p><b>I</b>: Show info for selected event/todo</p>\n","<p><b>I</b>: Zeige Info (Details) für selektiertes Item</p>\n" },
1041{ "<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n","<p><b>H</b>: Dieser Hilfe Dialog | <b>S</b>: Such Dialog</p>\n" }, 1041{ "<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n","<p><b>H</b>: Dieser Hilfe Dialog | <b>S</b>: Such Dialog</p>\n" },
1042{ "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" }, 1042{ "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" },
1043{ "After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configureable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n","Nachdem etwas geändert wurde, werden die\nDaten automatisch in die Datei abgespeichert\n~/kdepim/apps/korganizer/mycalendar.ics\nnach (konfigurierbar) drei Minuten.\nAus Sicherheitsgründen wird noch einmal\nnach 10 Min. abgespeichert, wenn keine\nÄnderungen vorgenommen wurden. Die \nDaten werden automatisch gespeichert,\nwenn KO/Pi beendet wird.\nSie können eine Backup-Datei erstellen im\nMenu: Datei - Speichere Kalender Backup\n" }, 1043{ "After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n","Nachdem etwas geändert wurde, werden die\nDaten automatisch in die Datei abgespeichert\n~/kdepim/apps/korganizer/mycalendar.ics\nnach (konfigurierbar) drei Minuten.\nAus Sicherheitsgründen wird noch einmal\nnach 10 Min. abgespeichert, wenn keine\nÄnderungen vorgenommen wurden. Die \nDaten werden automatisch gespeichert,\nwenn KO/Pi beendet wird.\nSie können eine Backup-Datei erstellen im\nMenu: Datei - Speichere Kalender Backup\n" },
1044{ "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" }, 1044{ "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" },
1045{ "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" }, 1045{ "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" },
1046{ "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" }, 1046{ "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" },
1047{ "\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.net\n" }, 1047{ "\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.net\n" },
1048{ "2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n","2) Ein Audio Alarm Daemon\nfür den Zaurus ist verfügbar\nals zusätzliche Anwendung\n" }, 1048{ "2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n","2) Ein Audio Alarm Daemon\nfür den Zaurus ist verfügbar\nals zusätzliche Anwendung\n" },
1049{ "1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n","1) Importieren von *.vcs oder *.ics Dateien von\nanderen Anwendungen kann möglicherweise\n nicht richtig funktionieren,\nwenn die Termine Eigenschaften haben,\ndie KO/Pi nicht unterstützt.\n" }, 1049{ "1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n","1) Importieren von *.vcs oder *.ics Dateien von\nanderen Anwendungen kann möglicherweise\n nicht richtig funktionieren,\nwenn die Termine Eigenschaften haben,\ndie KO/Pi nicht unterstützt.\n" },
1050{ "Known Problems in KOrganizer/Pi","Bekannte Probleme in KOrganizer/Pi" }, 1050{ "Known Problems in KOrganizer/Pi","Bekannte Probleme in KOrganizer/Pi" },
1051{ "KO/Pi FAQ","KO/Pi FAQ" }, 1051{ "KO/Pi FAQ","KO/Pi FAQ" },
1052{ "(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n","(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi basiert auf KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi ist lizensiert unter der GPL.\nKO/Pi kann kompiliert werden für\nLinux, Zaurus-PDA und Windows\nwww.korganizer.org\nwww.pi-sync.net\n" }, 1052{ "(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n","(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi basiert auf KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi ist lizensiert unter der GPL.\nKO/Pi kann kompiliert werden für\nLinux, Zaurus-PDA und Windows\nwww.korganizer.org\nwww.pi-sync.net\n" },
1053{ "PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n","PDA-Edition\nfür: Zaurus 5x00 / 7x0 / 8x0\n" }, 1053{ "PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n","PDA-Edition\nfür: Zaurus 5x00 / 7x0 / 8x0\n" },
1054{ "KOrganizer/Platform-independent\n","KOrganizer/Platform-independent\n" }, 1054{ "KOrganizer/Platform-independent\n","KOrganizer/Platform-independent\n" },
1055{ "About KOrganizer/Pi","Über KOrganizer/Pi" }, 1055{ "About KOrganizer/Pi","Über KOrganizer/Pi" },
1056{ "From: ","Von: " }, 1056{ "From: ","Von: " },
1057{ "Remove sync info","Entferne Sync Info" }, 1057{ "Remove sync info","Entferne Sync Info" },
1058{ "For all profiles","Für alle Profile" }, 1058{ "For all profiles","Für alle Profile" },
1059{ "","" }, 1059{ "","" },
1060{ "","" }, 1060{ "","" },
1061{ "","" }, 1061{ "","" },
1062{ "","" }, 1062{ "","" },
1063{ "","" }, 1063{ "","" },
diff --git a/bin/kdepim/korganizer/usertranslation.txt b/bin/kdepim/korganizer/usertranslation.txt
index fc6287c..85b7356 100644
--- a/bin/kdepim/korganizer/usertranslation.txt
+++ b/bin/kdepim/korganizer/usertranslation.txt
@@ -1,1074 +1,1074 @@
1{ "10 minutes","10 Minuten" }, 1{ "10 minutes","10 Minuten" },
2{ "10th","10." }, 2{ "10th","10." },
3{ "11th","11." }, 3{ "11th","11." },
4{ "12 pm Format","12 AM/PM Format" }, 4{ "12 pm Format","12 AM/PM Format" },
5{ "12th","12." }, 5{ "12th","12." },
6{ "13th","13." }, 6{ "13th","13." },
7{ "14th","14." }, 7{ "14th","14." },
8{ "15th","15." }, 8{ "15th","15." },
9{ "16th","16." }, 9{ "16th","16." },
10{ "17th","17." }, 10{ "17th","17." },
11{ "18th","18." }, 11{ "18th","18." },
12{ "19th","19." }, 12{ "19th","19." },
13{ "1 Day","1 Tag" }, 13{ "1 Day","1 Tag" },
14{ "1 h","1 Std" }, 14{ "1 h","1 Std" },
15{ "1 (high)","1 (hoch)" }, 15{ "1 (high)","1 (hoch)" },
16{ "5 (low)","5" }, 16{ "5 (low)","5" },
17{ "1st","1." }, 17{ "1st","1." },
18{ "20th","20." }, 18{ "20th","20." },
19{ "21st","21." }, 19{ "21st","21." },
20{ "22nd","22." }, 20{ "22nd","22." },
21{ "23rd","23." }, 21{ "23rd","23." },
22{ "24:00 Hour Format","24:00 Stunden Format" }, 22{ "24:00 Hour Format","24:00 Stunden Format" },
23{ "24th","24." }, 23{ "24th","24." },
24{ "25th","25." }, 24{ "25th","25." },
25{ "26th","26." }, 25{ "26th","26." },
26{ "27th","27." }, 26{ "27th","27." },
27{ "28th","28." }, 27{ "28th","28." },
28{ "29th","29." }, 28{ "29th","29." },
29{ "2nd","2." }, 29{ "2nd","2." },
30{ "30 minutes","30 Minuten" }, 30{ "30 minutes","30 Minuten" },
31{ "30th","30." }, 31{ "30th","30." },
32{ "31st","31." }, 32{ "31st","31." },
33{ "3rd","3." }, 33{ "3rd","3." },
34{ "4th","4." }, 34{ "4th","4." },
35{ "5 (lowest)","5 (Niedrigster)" }, 35{ "5 (lowest)","5 (Niedrigster)" },
36{ "5th","5." }, 36{ "5th","5." },
37{ "6th","6." }, 37{ "6th","6." },
38{ "7th","7." }, 38{ "7th","7." },
39{ "8th","8." }, 39{ "8th","8." },
40{ "9th","9." }, 40{ "9th","9." },
41{ "About...","Über..." }, 41{ "About...","Über..." },
42{ "&Accept","&Akzeptieren" }, 42{ "&Accept","&Akzeptieren" },
43{ "Accept","Akzeptieren" }, 43{ "Accept","Akzeptieren" },
44{ "Accept A&ll","A&lles Akzepieren" }, 44{ "Accept A&ll","A&lles Akzepieren" },
45{ "Access:","Zugriff:" }, 45{ "Access:","Zugriff:" },
46{ "A corresponding event is missing in your calendar!","Ein zugehöriger Termin fehlt in ihrem Kalender!" }, 46{ "A corresponding event is missing in your calendar!","Ein zugehöriger Termin fehlt in ihrem Kalender!" },
47{ "Actions","Aktionen" }, 47{ "Actions","Aktionen" },
48{ "Add Filter","Filter Hinzufügen" }, 48{ "Add Filter","Filter Hinzufügen" },
49{ "&Add","Hinzufügen" }, 49{ "&Add","Hinzufügen" },
50{ "Add","Hinzufügen" }, 50{ "Add","Hinzufügen" },
51{ "Additional email addresses:","Zusätzliche E-Mail Adressen:" }, 51{ "Additional email addresses:","Zusätzliche E-Mail Adressen:" },
52{ "Additional email address:","Zusätzliche E-Mail Adresse:" }, 52{ "Additional email address:","Zusätzliche E-Mail Adresse:" },
53{ "&Addressbook","&Adressbuch" }, 53{ "&Addressbook","&Adressbuch" },
54{ "Address &Book...","Adress&buch..." }, 54{ "Address &Book...","Adress&buch..." },
55{ "Agenda Size","Agende Größe" }, 55{ "Agenda Size","Agende Größe" },
56{ "Agenda Size:","Größe der Agenda:" }, 56{ "Agenda Size:","Größe der Agenda:" },
57{ "Agenda view:","Agenda Ansicht:" }, 57{ "Agenda view:","Agenda Ansicht:" },
58{ "Agenda view background color:","Hintergrund der Agenda Ansicht:" }, 58{ "Agenda view background color:","Hintergrund der Agenda Ansicht:" },
59{ "All attendees","Alle Teilnehmer" }, 59{ "All attendees","Alle Teilnehmer" },
60{ "AllDayAgenda Height:","Höhe Ganztages Agenda:" }, 60{ "AllDayAgenda Height:","Höhe Ganztages Agenda:" },
61{ "Allday","Ganztägig" }, 61{ "Allday","Ganztägig" },
62{ "Anonymous","Anonym" }, 62{ "Anonymous","Anonym" },
63{ "Apply","Anwenden" }, 63{ "Apply","Anwenden" },
64{ "Apr","Apr" }, 64{ "Apr","Apr" },
65{ "April","April" }, 65{ "April","April" },
66{"Ask for every entry on conflict","Frage bei Konflikten nach"}, 66{"Ask for every entry on conflict","Frage bei Konflikten nach"},
67{ "Ask for preferences before syncing","Vor dem Syncronisieren nachfragen" }, 67{ "Ask for preferences before syncing","Vor dem Syncronisieren nachfragen" },
68{ "Ask for quit when closing KO/Pi","Vor dem Beenden von KO/Pi nachfragen" }, 68{ "Ask for quit when closing KO/Pi","Vor dem Beenden von KO/Pi nachfragen" },
69{ "Attendees","Teilnehmer" }, 69{ "Attendees","Teilnehmer" },
70{ "Aug","Aug" }, 70{ "Aug","Aug" },
71{ "August","August" }, 71{ "August","August" },
72{ "Auto-Save","Automatisches Abspeichern" }, 72{ "Auto-Save","Automatisches Abspeichern" },
73{ "Auto save delay in minutes:","Verzög.autom.Speichern in Min" }, 73{ "Auto save delay in minutes:","Verzög.autom.Speichern in Min" },
74{ "Auto saving...","Automatische Sicherung..." }, 74{ "Auto saving...","Automatische Sicherung..." },
75{ "Begin on:","Starte mit:" }, 75{ "Begin on:","Starte mit:" },
76{ "Begins on: %1","Starte mit: %1" }, 76{ "Begins on: %1","Starte mit: %1" },
77{ "<b>From:</b> %1 <b>To:</b> %2","<b>Vom:</b> %1 <b>Zum:</b> %2" }, 77{ "<b>From:</b> %1 <b>To:</b> %2","<b>Vom:</b> %1 <b>Zum:</b> %2" },
78{ "Bigger","Größer" }, 78{ "Bigger","Größer" },
79{ "Biggest","Riesig" }, 79{ "Biggest","Riesig" },
80{ "Big","Groß" }, 80{ "Big","Groß" },
81{ "<b>On:</b> %1","<b>Am:</b> %1" }, 81{ "<b>On:</b> %1","<b>Am:</b> %1" },
82{ "<b>On:</b> %1 <b>From:S</b> %2 <b>To:</b> %3","<b>Am:</b> %1 <b>Vom:S</b> %2 <b>Zum:</b> %3" }, 82{ "<b>On:</b> %1 <b>From:S</b> %2 <b>To:</b> %3","<b>Am:</b> %1 <b>Vom:S</b> %2 <b>Zum:</b> %3" },
83{ "<b>Original event:</b><p>","<b>Original Termin:</b><p>" }, 83{ "<b>Original event:</b><p>","<b>Original Termin:</b><p>" },
84{ " - both are modified after last sync"," - beide wurden nach der letzten Syncronisation verändert" }, 84{ " - both are modified after last sync"," - beide wurden nach der letzten Syncronisation verändert" },
85{ "Busy","Belegt" }, 85{ "Busy","Belegt" },
86{ "&Cancel","Abbre&chen" }, 86{ "&Cancel","Abbre&chen" },
87{ "Cancel","Abbrechen" }, 87{ "Cancel","Abbrechen" },
88{ "Cannot delete To-Do\nwhich has children.","Kann Todo nicht löschen,\n da noch Einträge vorhanden sind" }, 88{ "Cannot delete To-Do\nwhich has children.","Kann Todo nicht löschen,\n da noch Einträge vorhanden sind" },
89{ "Cannot delete To-Do which has children.","Kann Todo nicht löschen, da noch Einträge vorhanden sind" }, 89{ "Cannot delete To-Do which has children.","Kann Todo nicht löschen, da noch Einträge vorhanden sind" },
90{ "Can't generate mail:\nNo event selected.","Kann e-Mail nicht erstellen:\nKein Termin ausgewählt." }, 90{ "Can't generate mail:\nNo event selected.","Kann e-Mail nicht erstellen:\nKein Termin ausgewählt." },
91{ "Categories...","Kategorien..." }, 91{ "Categories...","Kategorien..." },
92{ "Categories","Kategorien" }, 92{ "Categories","Kategorien" },
93{ "Category","Kategorie" }, 93{ "Category","Kategorie" },
94{ "Center View","Zentriere Ansicht" }, 94{ "Center View","Zentriere Ansicht" },
95{ "Change","Ändere" }, 95{ "Change","Ändere" },
96{ "Cinema","Kino" }, 96{ "Cinema","Kino" },
97{ "Click to add a new Todo","Hier klicken, um ein neues Todo anzulegen" }, 97{ "Click to add a new Todo","Hier klicken, um ein neues Todo anzulegen" },
98{ "Clone Item","Klone Eintrag" }, 98{ "Clone Item","Klone Eintrag" },
99{ "&Close","S&chließen" }, 99{ "&Close","S&chließen" },
100{ "Close","Schließen" }, 100{ "Close","Schließen" },
101{ "Close this dialog to abort deletion!","Zum Abbrechen des Löschvorganges Dialog schließen!" }, 101{ "Close this dialog to abort deletion!","Zum Abbrechen des Löschvorganges Dialog schließen!" },
102{ "Colors","Farben" }, 102{ "Colors","Farben" },
103{ "completed","erledigt" }, 103{ "completed","erledigt" },
104{ "completed on %1","erledigt am %1" }, 104{ "completed on %1","erledigt am %1" },
105{ "Complete","Erledigt" }, 105{ "Complete","Erledigt" },
106{ "Confidential","Vertraulich" }, 106{ "Confidential","Vertraulich" },
107{ "Configure...","Einstellungen..." }, 107{ "Configure...","Einstellungen..." },
108{ "Confirm &deletes","Löschvogang bestätigen" }, 108{ "Confirm &deletes","Löschvogang bestätigen" },
109{ "Couldn't load calendar\n '%1'.","Kann Kalender\n '%1' nicht laden." }, 109{ "Couldn't load calendar\n '%1'.","Kann Kalender\n '%1' nicht laden." },
110{ "Counter-event Viewer","Terminzähler Ansicht" }, 110{ "Counter-event Viewer","Terminzähler Ansicht" },
111{ "Daily ending hour:","Feierabend:" }, 111{ "Daily ending hour:","Feierabend:" },
112{ "Daily starting hour:","Anfangszeit:" }, 112{ "Daily starting hour:","Anfangszeit:" },
113{ "Daily","Täglich" }, 113{ "Daily","Täglich" },
114{ "Date Format","Datums Format" }, 114{ "Date Format","Datums Format" },
115{ "Date Format:","Datums Format:" }, 115{ "Date Format:","Datums Format:" },
116{ "DateNavigator:(nr)","Datums Navigator" }, 116{ "DateNavigator:(nr)","Datums Navigator" },
117{ "Dates: ","Datum: " }, 117{ "Dates: ","Datum: " },
118{ "Date && Time","Datum && Zeit" }, 118{ "Date && Time","Datum && Zeit" },
119{ "Day begins at:","Der Tag beginnt um:" }, 119{ "Day begins at:","Der Tag beginnt um:" },
120{ "Days in Next-X-Days:","Tage in Nächste-X-Tage:" }, 120{ "Days in Next-X-Days:","Tage in Nächste-X-Tage:" },
121{ "Days in What's Next:","Tage in What's Next:" }, 121{ "Days in What's Next:","Tage in What's Next:" },
122{ "day(s)","Tag(e)" }, 122{ "day(s)","Tag(e)" },
123{ "Days to show in Next-X-Days view:","Welche Tage in Nächste-X-Tagen anzeigen:" }, 123{ "Days to show in Next-X-Days view:","Welche Tage in Nächste-X-Tagen anzeigen:" },
124{ "day","Tag" }, 124{ "day","Tag" },
125{ "Dec","Dez" }, 125{ "Dec","Dez" },
126{ "December","Dezember" }, 126{ "December","Dezember" },
127{ "Default alarm time:","Standard Alarmzeit:" }, 127{ "Default alarm time:","Standard Alarmzeit:" },
128{ "Default appointment time:","Standard Termin Startzeit:" }, 128{ "Default appointment time:","Standard Termin Startzeit:" },
129{ "Default event color:","Standard Terminfarbe:" }, 129{ "Default event color:","Standard Terminfarbe:" },
130{ "Default","Standard" }, 130{ "Default","Standard" },
131{ "Def. duration of new app.:","Standard Termin Länge:" }, 131{ "Def. duration of new app.:","Standard Termin Länge:" },
132{ "Delete all completed To-Dos?","Alle bereits erledigten Todos löschen?" }, 132{ "Delete all completed To-Dos?","Alle bereits erledigten Todos löschen?" },
133{ "Delete All","Lösche alles" }, 133{ "Delete All","Lösche alles" },
134{ "Delete all selected","Lösche alle Selektierten" }, 134{ "Delete all selected","Lösche alle Selektierten" },
135{ "Delete Current","Aktuellen löschen" }, 135{ "Delete Current","Aktuellen löschen" },
136{ "Delete Event...","Lösche Termin..." }, 136{ "Delete Event...","Lösche Termin..." },
137{ "Delete Event","Lösche Termin" }, 137{ "Delete Event","Lösche Termin" },
138{ "&Delete","Löschen" }, 138{ "&Delete","Löschen" },
139{ "Delete...","Löschen..." }, 139{ "Delete...","Löschen..." },
140{ "Delete","Löschen" }, 140{ "Delete","Löschen" },
141{ "Delete Todo...","Lösche Todo..." }, 141{ "Delete Todo...","Lösche Todo..." },
142{ "Delete To-Do","Lösche Todo" }, 142{ "Delete To-Do","Lösche Todo" },
143{ "Deleting item %d ...","Lösche Eintrag %d..." }, 143{ "Deleting item %d ...","Lösche Eintrag %d..." },
144{ "Descriptions","Beschreibungen" }, 144{ "Descriptions","Beschreibungen" },
145{ "Deselect All","Deselektiere Alle" }, 145{ "Deselect All","Deselektiere Alle" },
146{ "Details","Details" }, 146{ "Details","Details" },
147{ "Dinner","Abendessen" }, 147{ "Dinner","Abendessen" },
148{ "Do you really want\nto close KO/Pi?","Möchten Sie wirklich\nKO/PI verlassen?" }, 148{ "Do you really want\nto close KO/Pi?","Möchten Sie wirklich\nKO/PI verlassen?" },
149{ "Due Date","Fällig am" }, 149{ "Due Date","Fällig am" },
150{ "Due: ","Fällig: "}, 150{ "Due: ","Fällig: "},
151{ "Due Time","Fällig um" }, 151{ "Due Time","Fällig um" },
152{ "Due:","Fällig:"}, 152{ "Due:","Fällig:"},
153{ "Duration: ","Dauer: " }, 153{ "Duration: ","Dauer: " },
154{ "Edit...","Bearbeite..." }, 154{ "Edit...","Bearbeite..." },
155{ "Edit","Bearbeite" }, 155{ "Edit","Bearbeite" },
156{ "Edit Event...","Bearbeite Termin..." }, 156{ "Edit Event...","Bearbeite Termin..." },
157{ "Edit Event","Bearbeite Termin" }, 157{ "Edit Event","Bearbeite Termin" },
158{ "Edit exceptions","Bearbeite Ausnahmen" }, 158{ "Edit exceptions","Bearbeite Ausnahmen" },
159{ "EditorBox:","Editor Fenster:" }, 159{ "EditorBox:","Editor Fenster:" },
160{ "Edit Recurrence Range","Bearbeite Wiederholung" }, 160{ "Edit Recurrence Range","Bearbeite Wiederholung" },
161{ "Edit Todo...","Berabeite Todo..." }, 161{ "Edit Todo...","Berabeite Todo..." },
162{ "Edit To-Do","Todo bearbeiten" }, 162{ "Edit To-Do","Todo bearbeiten" },
163{ "E&mail address:","E&mail Adresse:" }, 163{ "E&mail address:","E&mail Adresse:" },
164{ "(EmptyEmail)","(KeineEmail)" }, 164{ "(EmptyEmail)","(KeineEmail)" },
165{ "(EmptyName)","(KeinName)" }, 165{ "(EmptyName)","(KeinName)" },
166{ "Enable Recurrence","Wiederholender Termin" }, 166{ "Enable Recurrence","Wiederholender Termin" },
167{ "End after","Endet nach"}, 167{ "End after","Endet nach"},
168{ "End by:","Endet am"}, 168{ "End by:","Endet am"},
169{ "End Date","End Datum" }, 169{ "End Date","End Datum" },
170{ "End:","Ende:" }, 170{ "End:","Ende:" },
171{ "End Time","End Zeit" }, 171{ "End Time","End Zeit" },
172{ "English","Englisch" }, 172{ "English","Englisch" },
173{ "Event","Termin" }, 173{ "Event","Termin" },
174{ "Event list","Termin Liste" }, 174{ "Event list","Termin Liste" },
175{ "Events","Termine" }, 175{ "Events","Termine" },
176{ "Event Viewer:","Termin Übersicht:" }, 176{ "Event Viewer:","Termin Übersicht:" },
177{ "every","jede" }, 177{ "every","jede" },
178{ "Exceptions...","Ausnahmen..." }, 178{ "Exceptions...","Ausnahmen..." },
179{ "Exceptions","Ausnahmen" }, 179{ "Exceptions","Ausnahmen" },
180{ "Exclude holidays","Ohne freie Tage" }, 180{ "Exclude holidays","Ohne freie Tage" },
181{ "Exclude Saturdays","Ohne Samstage" }, 181{ "Exclude Saturdays","Ohne Samstage" },
182{ "Feb","Feb" }, 182{ "Feb","Feb" },
183{ "February","Februar" }, 183{ "February","Februar" },
184{ "&Find","Suche!" }, 184{ "&Find","Suche!" },
185{ "Fonts","Schriftart" }, 185{ "Fonts","Schriftart" },
186{ "Force take local entry always","Erzwinge:Nimm immer lokalen Eintrag" }, 186{ "Force take local entry always","Erzwinge:Nimm immer lokalen Eintrag" },
187{ "Force take remote entry always","Erzwinge:Nimm immer fernen Eintrag"}, 187{ "Force take remote entry always","Erzwinge:Nimm immer fernen Eintrag"},
188{ "Free","Frei" }, 188{ "Free","Frei" },
189{ "Friday","Freitag" }, 189{ "Friday","Freitag" },
190{ "Fri","Fr" }, 190{ "Fri","Fr" },
191{ "From:","Vom:" }, 191{ "From:","Vom:" },
192{ "Full &name:","Vor- und &Nachname:" }, 192{ "Full &name:","Vor- und &Nachname:" },
193{ "General","Allgemein" }, 193{ "General","Allgemein" },
194{ "German","Deutsch" }, 194{ "German","Deutsch" },
195{ "Gifts","Geschenke" }, 195{ "Gifts","Geschenke" },
196{ "Go to Today","Heute anzeigen" }, 196{ "Go to Today","Heute anzeigen" },
197{ "Help","Hilfe" }, 197{ "Help","Hilfe" },
198{ "Hide Dates","Daten ausblenden" }, 198{ "Hide Dates","Daten ausblenden" },
199{ "Highlight color:","Markierungen:" }, 199{ "Highlight color:","Markierungen:" },
200{ "Holiday color:","Freie Tage:" }, 200{ "Holiday color:","Freie Tage:" },
201{ "hour(s)","Stunde(n)" }, 201{ "hour(s)","Stunde(n)" },
202{ "In %1 days: ","In %1 Tagen: " }, 202{ "In %1 days: ","In %1 Tagen: " },
203{ "Incomplete Todo:","Unerledigte Aufgaben:" }, 203{ "Incomplete Todo:","Unerledigte Aufgaben:" },
204{ "Information","Information" }, 204{ "Information","Information" },
205{ "Invalid search expression,\ncannot perform ","Kann Suche nicht ausführen" }, 205{ "Invalid search expression,\ncannot perform ","Kann Suche nicht ausführen" },
206{ "Jan","Jan" }, 206{ "Jan","Jan" },
207{ "January","Januar" }, 207{ "January","Januar" },
208{ "JournalView:","Journal Ansicht:" }, 208{ "JournalView:","Journal Ansicht:" },
209{ "Journals","Journale" }, 209{ "Journals","Journale" },
210{ "Jul","Jul" }, 210{ "Jul","Jul" },
211{ "July","Juli" }, 211{ "July","Juli" },
212{ "Jump to date","Springe zum Datum" }, 212{ "Jump to date","Springe zum Datum" },
213{ "June","Juni" }, 213{ "June","Juni" },
214{ "Jun","Jun" }, 214{ "Jun","Jun" },
215{ "Key Bindings...","Tastenzuordnung..." }, 215{ "Key Bindings...","Tastenzuordnung..." },
216{ "Kids","Kinder" }, 216{ "Kids","Kinder" },
217{ "Known Problems...","Bekannte Probleme..." }, 217{ "Known Problems...","Bekannte Probleme..." },
218{ "KO/Pi Find ","KO/Pi Suchdialog " }, 218{ "KO/Pi Find ","KO/Pi Suchdialog " },
219{ "KO/Pi Find: ","KO/Pi Suchen: " }, 219{ "KO/Pi Find: ","KO/Pi Suchen: " },
220{ "KO/Pi is starting ... "," KO/Pi startet ... \n... Zeit für eine Kaffeepause ..." }, 220{ "KO/Pi is starting ... "," KO/Pi startet ... \n... Zeit für eine Kaffeepause ..." },
221{ "Language:(needs restart)","Sprache (Neustart!)" }, 221{ "Language:(needs restart)","Sprache (Neustart!)" },
222{ "Language:","Sprache" }, 222{ "Language:","Sprache" },
223{ "Large","Etwas mehr" }, 223{ "Large","Etwas mehr" },
224{ "List View:","Listenansicht:" }, 224{ "List View:","Listenansicht:" },
225{ "List View","Listenansicht" }, 225{ "List View","Listenansicht" },
226{ "Load/Save","Laden/Speichern" }, 226{ "Load/Save","Laden/Speichern" },
227{ "Load Template","Lade Vorlage" }, 227{ "Load Template","Lade Vorlage" },
228{ "Locale","Localisation" }, 228{ "Locale","Localisation" },
229{ "Local temp file:","Lokale temp. Datei:" }, 229{ "Local temp file:","Lokale temp. Datei:" },
230{ "Location: ","Ort: " }, 230{ "Location: ","Ort: " },
231{ "Location:","Ort:" }, 231{ "Location:","Ort:" },
232{ "Mail client","Mail Programm" }, 232{ "Mail client","Mail Programm" },
233{ "Mail Client","Mail Programm" }, 233{ "Mail Client","Mail Programm" },
234{ "March","März" }, 234{ "March","März" },
235{ "Mar","Mär" }, 235{ "Mar","Mär" },
236{ "May","Mai" }, 236{ "May","Mai" },
237{ "M. Bains line:","M. Bains Linie:" }, 237{ "M. Bains line:","M. Bains Linie:" },
238{ "Medium","Medium" }, 238{ "Medium","Medium" },
239{ "Method","Methode" }, 239{ "Method","Methode" },
240{ "minute(s)","Minute(n)" }, 240{ "minute(s)","Minute(n)" },
241{ "Monday","Montag" }, 241{ "Monday","Montag" },
242{ "Mon","Mo" }, 242{ "Mon","Mo" },
243{ "Monthly","Monatlich" }, 243{ "Monthly","Monatlich" },
244{ "Month not long enough","Monat ist nicht lang genug" }, 244{ "Month not long enough","Monat ist nicht lang genug" },
245{ "month(s)","Monat(e)" }, 245{ "month(s)","Monat(e)" },
246{ "Month view:","Monatsansicht:" }, 246{ "Month view:","Monatsansicht:" },
247{ "Month view uses category colors","Monatsansicht zeigt Kategorie Farben" }, 247{ "Month view uses category colors","Monatsansicht zeigt Kategorie Farben" },
248{ "Todo view uses category colors","To-Do Ansicht zeigt Kategorie Farben" }, 248{ "Todo view uses category colors","To-Do Ansicht zeigt Kategorie Farben" },
249{ "Move &Down","Nach unten verschieben" }, 249{ "Move &Down","Nach unten verschieben" },
250{ "Move &Up","Nach oben verschieben" }, 250{ "Move &Up","Nach oben verschieben" },
251{ "Name:","Name:" }, 251{ "Name:","Name:" },
252{ "Name","Name" }, 252{ "Name","Name" },
253{ "\nAre you sure you want\nto delete this event?","\nSind Sie sicher, dass Sie\nden Termin löschen möchten?" }, 253{ "\nAre you sure you want\nto delete this event?","\nSind Sie sicher, dass Sie\nden Termin löschen möchten?" },
254{ "%n Days","%n Tage" }, 254{ "%n Days","%n Tage" },
255{ "Never","Nie" }, 255{ "Never","Nie" },
256{ "New event...","Neuer Termin..." }, 256{ "New event...","Neuer Termin..." },
257{ "New event","Neuer Termin" }, 257{ "New event","Neuer Termin" },
258{ "New Event...","Neuer Termin..." }, 258{ "New Event...","Neuer Termin..." },
259{ "New Events/Todos should","Neue Termine/Todos sollten" }, 259{ "New Events/Todos should","Neue Termine/Todos sollten" },
260{ "&New","&Neu" }, 260{ "&New","&Neu" },
261{ "New","Neu", }, 261{ "New","Neu", },
262{ "New Sub-Todo...","Neues Sub-Todo..." }, 262{ "New Sub-Todo...","Neues Sub-Todo..." },
263{ "New Todo...","Neues Todo..." }, 263{ "New Todo...","Neues Todo..." },
264{ "Next Alarm: ","Nächster Alarm: ", }, 264{ "Next Alarm: ","Nächster Alarm: ", },
265{ "&Next Day","&Nächster Tag", }, 265{ "&Next Day","&Nächster Tag", },
266{ "Next days view uses full window","Nächste-X-Tage nutzt Vollbild" }, 266{ "Next days view uses full window","Nächste-X-Tage nutzt Vollbild" },
267{ "Next month","Nächster Monat" }, 267{ "Next month","Nächster Monat" },
268{ "&Next Week","&Nächste Woche" }, 268{ "&Next Week","&Nächste Woche" },
269{ "Next year","Nächstes Jahr" }, 269{ "Next year","Nächstes Jahr" },
270{ "Next Year","Nächstes Jahr" }, 270{ "Next Year","Nächstes Jahr" },
271{ "%n h","%n Std" }, 271{ "%n h","%n Std" },
272{ "No ending date","Kein End-Datum", }, 272{ "No ending date","Kein End-Datum", },
273{ "No event, nothing to do.","Kein Termin, nichts zu tun.", }, 273{ "No event, nothing to do.","Kein Termin, nichts zu tun.", },
274{ "No event selected.","Kein Termin selektiert" }, 274{ "No event selected.","Kein Termin selektiert" },
275{ "No","Nein" }, 275{ "No","Nein" },
276{ "No program set","Kein Programm ausgewählt", }, 276{ "No program set","Kein Programm ausgewählt", },
277{ "Normal","Normal" }, 277{ "Normal","Normal" },
278{ "[No selection]","Keine Selektion", }, 278{ "[No selection]","Keine Selektion", },
279{ "No sound set","Kein Sound ausgewählt", }, 279{ "No sound set","Kein Sound ausgewählt", },
280{ "no time ","keine Zeit ", }, 280{ "no time ","keine Zeit ", },
281{ "no time","keine Zeit", }, 281{ "no time","keine Zeit", },
282{ "No Time","Keine Zeit" }, 282{ "No Time","Keine Zeit" },
283{ "November","November" }, 283{ "November","November" },
284{ "Nov","Nov", }, 284{ "Nov","Nov", },
285{ "\nThis event recurs\nover multiple dates.\n","\nDieser Termin wiederholt sich an mehreren Tagen.\n" }, 285{ "\nThis event recurs\nover multiple dates.\n","\nDieser Termin wiederholt sich an mehreren Tagen.\n" },
286{ "occurrence(s)","Vorkommen" }, 286{ "occurrence(s)","Vorkommen" },
287{ "October","Oktober" }, 287{ "October","Oktober" },
288{ "Oct","Okt", }, 288{ "Oct","Okt", },
289{ "O-due!","Ü-fällig! " }, 289{ "O-due!","Ü-fällig! " },
290{ "&OK","&OK" }, 290{ "&OK","&OK" },
291{ "Ok+Show!","Ok+Anzeigen" }, 291{ "Ok+Show!","Ok+Anzeigen" },
292{ "Organizer: %1","Organisator %1" }, 292{ "Organizer: %1","Organisator %1" },
293{ "Organizer","Organisator" }, 293{ "Organizer","Organisator" },
294{ "Owner: ","Besitzer: " }, 294{ "Owner: ","Besitzer: " },
295{ "Owner:","Besitzer:" }, 295{ "Owner:","Besitzer:" },
296{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" }, 296{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" },
297{ "Pick a date to display","Wähle einen Tag zum anzeigen aus" }, 297{ "Pick a date to display","Wähle einen Tag zum anzeigen aus" },
298{ "Please specify a valid due date.","Bitte gültiges Fälligkeitsdatum angeben."}, 298{ "Please specify a valid due date.","Bitte gültiges Fälligkeitsdatum angeben."},
299{ "Please specify a valid end date, for example '%1'.","Bitte gültiges Enddatum angeben, z.B.'%1'." }, 299{ "Please specify a valid end date, for example '%1'.","Bitte gültiges Enddatum angeben, z.B.'%1'." },
300{ "Please specify a valid start date.","Bitte gültiges Startdatum angeben." }, 300{ "Please specify a valid start date.","Bitte gültiges Startdatum angeben." },
301{ "Please specify a valid start date, for example '%1'.","Bitte gültiges Startdatum angeben, z.B. '%1'." }, 301{ "Please specify a valid start date, for example '%1'.","Bitte gültiges Startdatum angeben, z.B. '%1'." },
302{ "Please specify a valid start time.","Bitte gültige Startzeit angeben."}, 302{ "Please specify a valid start time.","Bitte gültige Startzeit angeben."},
303{ "Please specify a valid start time, for example '%1'.","Bitte gültige Startzeit angeben, z.B. '%1'." }, 303{ "Please specify a valid start time, for example '%1'.","Bitte gültige Startzeit angeben, z.B. '%1'." },
304{ "Preferences - some settings need a restart (nr)","Einstellungen - teilweise Neustart erforderlich (bn)" }, 304{ "Preferences - some settings need a restart (nr)","Einstellungen - teilweise Neustart erforderlich (bn)" },
305{ "&Previous Day","Vorheriger Tag" }, 305{ "&Previous Day","Vorheriger Tag" },
306{ "Previous month","Vorheriger Monat" }, 306{ "Previous month","Vorheriger Monat" },
307{ "Previous Month","Vorheriger Monat" }, 307{ "Previous Month","Vorheriger Monat" },
308{ "&Previous Week","Vorherige Woche" }, 308{ "&Previous Week","Vorherige Woche" },
309{ "Previous year","Vorheriges Jahr" }, 309{ "Previous year","Vorheriges Jahr" },
310{ "Previous Year","Vorheriges Jahr" }, 310{ "Previous Year","Vorheriges Jahr" },
311{ "Printing","Drucken" }, 311{ "Printing","Drucken" },
312{ "Priority:","Priorität:" }, 312{ "Priority:","Priorität:" },
313{ "Private","Privat" }, 313{ "Private","Privat" },
314{ "Proceed","Weiter" }, 314{ "Proceed","Weiter" },
315{ "Public","Öffentlich" }, 315{ "Public","Öffentlich" },
316{ "Purge","Entferne" }, 316{ "Purge","Entferne" },
317{ "Purge Completed","Entferne erledigte ToDos" }, 317{ "Purge Completed","Entferne erledigte ToDos" },
318{ "Purge To-Dos","Todos bereinigen" }, 318{ "Purge To-Dos","Todos bereinigen" },
319{ "read-only","schreibgeschützt" }, 319{ "read-only","schreibgeschützt" },
320{ "Recur every","Wiederh. alle" }, 320{ "Recur every","Wiederh. alle" },
321{ "Recur in the month of","Wiederh. im Monat" }, 321{ "Recur in the month of","Wiederh. im Monat" },
322{ "Recur on the","Wiederh. am" }, 322{ "Recur on the","Wiederh. am" },
323{ "Recur on this day","Wiederh. am diesen Tag" }, 323{ "Recur on this day","Wiederh. am diesen Tag" },
324{ "Recurrence Range...","Wiederholungs Zeitraum..." }, 324{ "Recurrence Range...","Wiederholungs Zeitraum..." },
325{ "Recurrence Range","Wiederholungs Zeitraum" }, 325{ "Recurrence Range","Wiederholungs Zeitraum" },
326{ "Recurrence Rule","Wiederholungs Regel" }, 326{ "Recurrence Rule","Wiederholungs Regel" },
327{ "Recurrence","Wiederholung" }, 327{ "Recurrence","Wiederholung" },
328{ "Recurs","Wiederholung" }, 328{ "Recurs","Wiederholung" },
329{"&Reject","Abweisen"}, 329{"&Reject","Abweisen"},
330{ "Reminder:","Alarm:" }, 330{ "Reminder:","Alarm:" },
331{ "Rem.:","Alarm:" }, 331{ "Rem.:","Alarm:" },
332{ "Rem.","Alarm:" }, 332{ "Rem.","Alarm:" },
333{ "Remote file:","Remote Datei:"}, 333{ "Remote file:","Remote Datei:"},
334{ "Remote IP:","Remote (ferne) IP:" }, 334{ "Remote IP:","Remote (ferne) IP:" },
335{ "Remote syncing (via ssh/scp) network settings ","Remote Sync (via ssh/scp) Netzwerk Einstellungen " }, 335{ "Remote syncing (via ssh/scp) network settings ","Remote Sync (via ssh/scp) Netzwerk Einstellungen " },
336{ "Remote user:","Remote Benutzer"}, 336{ "Remote user:","Remote Benutzer"},
337{ "&Remove","Entfe&rnen" }, 337{ "&Remove","Entfe&rnen" },
338{ "Remove","Entfernen" }, 338{ "Remove","Entfernen" },
339{ "Request response","Bemerkung anfordern" }, 339{ "Request response","Bemerkung anfordern" },
340{ "Role:","Rolle:" }, 340{ "Role:","Rolle:" },
341{ "Role","Rolle" }, 341{ "Role","Rolle" },
342{ "Sat","Sa" }, 342{ "Sat","Sa" },
343{ "Saturday","Samstag" }, 343{ "Saturday","Samstag" },
344{ "Search for:","Suche nach:" }, 344{ "Search for:","Suche nach:" },
345{ "Search In","Suche in" }, 345{ "Search In","Suche in" },
346{ "Search...","Suche..." }, 346{ "Search...","Suche..." },
347{ "Search","Suche" }, 347{ "Search","Suche" },
348{ "Select Addresses","Wähle Adressen" }, 348{ "Select Addresses","Wähle Adressen" },
349{ "Select all","Selektiere Alle" }, 349{ "Select all","Selektiere Alle" },
350{ "Select a month","Wähle Monat" }, 350{ "Select a month","Wähle Monat" },
351{ "Select a week","Wähle Woche" }, 351{ "Select a week","Wähle Woche" },
352{ "Select a year","Wähle Jahr" }, 352{ "Select a year","Wähle Jahr" },
353{ "Send directly","Sende direkt" }, 353{ "Send directly","Sende direkt" },
354{ "&Send Messages","&Sende Nachrichten", }, 354{ "&Send Messages","&Sende Nachrichten", },
355{ "Sep","Sep" }, 355{ "Sep","Sep" },
356{ "September","September" }, 356{ "September","September" },
357{ "Shopping","Einkaufen" }, 357{ "Shopping","Einkaufen" },
358{ "Use short date in (WN/E) view","Kurzdatum in (WN/Termin) Ansicht" }, 358{ "Use short date in (WN/E) view","Kurzdatum in (WN/Termin) Ansicht" },
359{ "Show Dates","Zeige Daten" }, 359{ "Show Dates","Zeige Daten" },
360{ "Show events that recur daily in date nav.","Zeige tägl.wiederh.Term.in Datums Nav." }, 360{ "Show events that recur daily in date nav.","Zeige tägl.wiederh.Term.in Datums Nav." },
361{ "Show Event...","Zeige Termin..." }, 361{ "Show Event...","Zeige Termin..." },
362{ "Show ev. that recur weekly in date nav.","Zeige wöch.wiederh.Term.in Datums Nav." }, 362{ "Show ev. that recur weekly in date nav.","Zeige wöch.wiederh.Term.in Datums Nav." },
363{ "Show Marcus Bains line","Zeige Marcus Bains Linie" }, 363{ "Show Marcus Bains line","Zeige Marcus Bains Linie" },
364{ "Show summary after syncing","Zeige Zusammenfassung nach Sync." }, 364{ "Show summary after syncing","Zeige Zusammenfassung nach Sync." },
365{ "Show time as:","Zeige Zeit als" }, 365{ "Show time as:","Zeige Zeit als" },
366{ "Show Todo...","Zeige To-Do" }, 366{ "Show Todo...","Zeige To-Do" },
367{ "Show topmost todo prios in What's N.:","Anz. höchster Prios in What's N.:"}, 367{ "Show topmost todo prios in What's N.:","Anz. höchster Prios in What's N.:"},
368{ "Show topmost todo prios in What's Next:","Anz. höchster Prios in What's Next:"}, 368{ "Show topmost todo prios in What's Next:","Anz. höchster Prios in What's Next:"},
369{ "Show vertical screen (Needs restart)","Vertikaler Bildschirm-Layout (Neustart!)" }, 369{ "Show vertical screen (Needs restart)","Vertikaler Bildschirm-Layout (Neustart!)" },
370{ "&Show","Zeige" }, 370{ "&Show","Zeige" },
371{ "Show...","Zeige..." }, 371{ "Show...","Zeige..." },
372{ "Show","Zeige" }, 372{ "Show","Zeige" },
373{ "Small","Klein" }, 373{ "Small","Klein" },
374{ "Sorry","Entschuldigung" }, 374{ "Sorry","Entschuldigung" },
375{"Sorry, the copy command failed!\nCommand was:\n","Der Kopierbefehl schlug fehl!\nBefehl war:\n"}, 375{"Sorry, the copy command failed!\nCommand was:\n","Der Kopierbefehl schlug fehl!\nBefehl war:\n"},
376{ "Start:","Start:" }, 376{ "Start:","Start:" },
377{ "Start Date","Start Datum" }, 377{ "Start Date","Start Datum" },
378{ "Start date: %1","Start Datum: %1" }, 378{ "Start date: %1","Start Datum: %1" },
379{ "Start Time","Start Zeit" }, 379{ "Start Time","Start Zeit" },
380{ "Status:","Status:" }, 380{ "Status:","Status:" },
381{ "Status","Status:" }, 381{ "Status","Status:" },
382{ "Summaries","Titel" }, 382{ "Summaries","Titel" },
383{ "Summary:","Titel:" }, 383{ "Summary:","Titel:" },
384{ "Summary","Titel" }, 384{ "Summary","Titel" },
385{ "Sunday","Sonntag" }, 385{ "Sunday","Sonntag" },
386{ "Sun","So" }, 386{ "Sun","So" },
387{ "Sync preferences:","Sync Einstellungen" }, 387{ "Sync preferences:","Sync Einstellungen" },
388{ "Sync Prefs","Sync Einstellungen" }, 388{ "Sync Prefs","Sync Einstellungen" },
389{ "Syncronize","Daten abgleich" }, 389{ "Syncronize","Daten abgleich" },
390{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" }, 390{ "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" },
391{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" }, 391{ "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" },
392{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" }, 392{ "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" },
393{ "Template '%1' does not contain a valid Todo.","Template '%1' enthält kein gültiges To-Do" }, 393{ "Template '%1' does not contain a valid Todo.","Template '%1' enthält kein gültiges To-Do" },
394{ "Template does not contain a valid Event.","Template '%1' enthält keinen gültigen Termin" }, 394{ "Template does not contain a valid Event.","Template '%1' enthält keinen gültigen Termin" },
395{ "Template...","Vorlage..." }, 395{ "Template...","Vorlage..." },
396{ "This day","Dieser Tag" }, 396{ "This day","Dieser Tag" },
397{ "This is an experimental feature. ","Dieses Feature ist experimentel" }, 397{ "This is an experimental feature. ","Dieses Feature ist experimentel" },
398{ "This item will be\npermanently deleted.","Dieser Eintrag wird\nkomplett gelöscht." }, 398{ "This item will be\npermanently deleted.","Dieser Eintrag wird\nkomplett gelöscht." },
399{ "This item will be permanently deleted.", "Dieser Eintrag wird komplett gelöscht." }, 399{ "This item will be permanently deleted.", "Dieser Eintrag wird komplett gelöscht." },
400{ "Thu","Do" }, 400{ "Thu","Do" },
401{ "Thursday","Donnerstag" }, 401{ "Thursday","Donnerstag" },
402{ "Time associated","Mit Zeit" }, 402{ "Time associated","Mit Zeit" },
403{ "Time bar:","Uhrzeit Zeile:" }, 403{ "Time bar:","Uhrzeit Zeile:" },
404{ "Time && Date","Zeit und Datum" }, 404{ "Time && Date","Zeit und Datum" },
405{ "Time Format","Zeit Format" }, 405{ "Time Format","Zeit Format" },
406{ "Time Format(nr):","Zeit Format(Neustart!)" }, 406{ "Time Format(nr):","Zeit Format(Neustart!)" },
407{ "Date Labels:","Datumsleiste:" }, 407{ "Date Labels:","Datumsleiste:" },
408{ "Time: ","Zeit: " }, 408{ "Time: ","Zeit: " },
409{ "Timezone:","Zeitzone:" }, 409{ "Timezone:","Zeitzone:" },
410{ "Tiny","Sehr klein" }, 410{ "Tiny","Sehr klein" },
411{ "To: ","Bis: " }, 411{ "To: ","Bis: " },
412{ "To:","Bis:" }, 412{ "To:","Bis:" },
413{ "Today: ","Heute: " }, 413{ "Today: ","Heute: " },
414{ "Todo due today color:","Heute fällige To-Do's" }, 414{ "Todo due today color:","Heute fällige To-Do's" },
415{ "To-do items:","To-Do items:" }, 415{ "To-do items:","To-Do items:" },
416{ "Todo overdue color:","Überfällige To-Do's" }, 416{ "Todo overdue color:","Überfällige To-Do's" },
417{ "Todo","Todo" }, 417{ "Todo","Todo" },
418{ "To-do view shows completed Todos","To-do Ansicht zeigt erledigte To-dos" }, 418{ "To-do view shows completed Todos","To-do Ansicht zeigt erledigte To-dos" },
419{ "ToDoView:","Todo Ansicht:" }, 419{ "ToDoView:","Todo Ansicht:" },
420{ "Toggle Alarm","Wechsle Alarm" }, 420{ "Toggle Alarm","Wechsle Alarm" },
421{ "Toggle Allday","Umschalten Ganztag" }, 421{ "Toggle Allday","Umschalten Ganztag" },
422{ "Tomorrow: ","Morgen: " }, 422{ "Tomorrow: ","Morgen: " },
423{ "Tue","Di" }, 423{ "Tue","Di" },
424{ "Tuesday","Dienstag" }, 424{ "Tuesday","Dienstag" },
425{ "Two entries are in conflict, if: ","Zwei Einträge haben einen Konflikt, wenn:" }, 425{ "Two entries are in conflict, if: ","Zwei Einträge haben einen Konflikt, wenn:" },
426{ "Unable to find template '%1'.","Kann Vorlage '%1' nicht finden." }, 426{ "Unable to find template '%1'.","Kann Vorlage '%1' nicht finden." },
427{ "Unknown","Unbekannt" }, 427{ "Unknown","Unbekannt" },
428{ "Up","Hinauf" }, 428{ "Up","Hinauf" },
429{ "Use password (if not, ask when syncing)","Passwort: (sonst jedesmal anfragen)" }, 429{ "Use password (if not, ask when syncing)","Passwort: (sonst jedesmal anfragen)" },
430{ "User defined","Benutzerdefiniert" }, 430{ "User defined","Benutzerdefiniert" },
431{ "User long date:","Format langes Datum:" }, 431{ "User long date:","Format langes Datum:" },
432{ "User short date:","Forma kurzes Datum:" }, 432{ "User short date:","Forma kurzes Datum:" },
433{ "View","Ansicht" }, 433{ "View","Ansicht" },
434{ "View Fonts","Schriftarten Ansichten" }, 434{ "View Fonts","Schriftarten Ansichten" },
435{ "Views","Ansichten" }, 435{ "Views","Ansichten" },
436{ "Wed","Mi" }, 436{ "Wed","Mi" },
437{ "Wednesday","Mittwoch" }, 437{ "Wednesday","Mittwoch" },
438{ "Week %1","Woche %1" }, 438{ "Week %1","Woche %1" },
439{ "Weekly","Wöchentlich" }, 439{ "Weekly","Wöchentlich" },
440{ "Week starts on Sunday","Woche beginnt Sonntags" }, 440{ "Week starts on Sunday","Woche beginnt Sonntags" },
441{ "What's Next View:","What's Next Anz." }, 441{ "What's Next View:","What's Next Anz." },
442{ "What's next ?","Was kommt als nächstes?(What's Next)" }, 442{ "What's next ?","Was kommt als nächstes?(What's Next)" },
443{ "Working Hours","Tägliche Arbeitszeit" }, 443{ "Working Hours","Tägliche Arbeitszeit" },
444{ "Working hours color:","Arbeitszeit in der Agenda Ansicht:" }, 444{ "Working hours color:","Arbeitszeit in der Agenda Ansicht:" },
445{ "Write back existing entries only","Nur exisitierende Einträge zurückschreiben" }, 445{ "Write back existing entries only","Nur exisitierende Einträge zurückschreiben" },
446{ "Write back synced file","Syncronisierte Datei zurückschreiben" }, 446{ "Write back synced file","Syncronisierte Datei zurückschreiben" },
447{ "Yearly","Jährlich" }, 447{ "Yearly","Jährlich" },
448{ "year(s)","Jahr(e)" }, 448{ "year(s)","Jahr(e)" },
449{ "Yes","Ja" }, 449{ "Yes","Ja" },
450{ "You have %d item(s) selected.\n","Sie haben %d Einträge ausgewählt.\n" }, 450{ "You have %d item(s) selected.\n","Sie haben %d Einträge ausgewählt.\n" },
451{ "You have to restart KOrganizer for this setting to take effect.","Sie müssem Korganizer neu starten, damit diese Einstellung aktiviert wird." }, 451{ "You have to restart KOrganizer for this setting to take effect.","Sie müssem Korganizer neu starten, damit diese Einstellung aktiviert wird." },
452{ "week(s) on:","Woche(n) am: " }, 452{ "week(s) on:","Woche(n) am: " },
453{ "Full menu bar(nr)","Volle Menuleiste(bn)" }, 453{ "Full menu bar(nr)","Volle Menuleiste(bn)" },
454{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" }, 454{ "Timezone has daylight saving","Zeitzone hat Sommerzeit" },
455{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der Sonntag\nvor diesem Datum!" }, 455{ "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der Sonntag\nvor diesem Datum!" },
456{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." }, 456{ "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." },
457{ "Daylight start:","Sommerzeit Beginn:" }, 457{ "Daylight start:","Sommerzeit Beginn:" },
458{ "Daylight end:","Sommerzeit Ende:" }, 458{ "Daylight end:","Sommerzeit Ende:" },
459{ "Time Zone","Zeitzone" }, 459{ "Time Zone","Zeitzone" },
460{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" }, 460{ "Monday 19 April 2004: %A %d %B %Y","Montag 19 April 2004: %A %d %B %Y" },
461{ "%A: Monday --- %a: Mon","%A: Montag --- %a: Mon" }, 461{ "%A: Monday --- %a: Mon","%A: Montag --- %a: Mon" },
462{ "minutely","minütlich" }, 462{ "minutely","minütlich" },
463{ "hourly","stündlich" }, 463{ "hourly","stündlich" },
464{ "daily","täglich" }, 464{ "daily","täglich" },
465{ "weekly","wöchentlich" }, 465{ "weekly","wöchentlich" },
466{ "monthly","monatlich" }, 466{ "monthly","monatlich" },
467{ "day-monthly","tag-monatlich" }, 467{ "day-monthly","tag-monatlich" },
468{ "month-yearly","monat-jährlich" }, 468{ "month-yearly","monat-jährlich" },
469{ "day-yearly","tag-jährlich" }, 469{ "day-yearly","tag-jährlich" },
470{ "position-yearly","pos-jährlich" }, 470{ "position-yearly","pos-jährlich" },
471{ "Edit item on doubleclick (if not, show)","Editiere mit Doppelklick(wenn nicht, zeige)" }, 471{ "Edit item on doubleclick (if not, show)","Editiere mit Doppelklick(wenn nicht, zeige)" },
472{ "Highlight current day in agenda","Hebe >>heute<< in Agenda hervor" }, 472{ "Highlight current day in agenda","Hebe >>heute<< in Agenda hervor" },
473{ "Use light color for highlight current day","Helle Farbe für >>heute<< Hervorhebung" }, 473{ "Use light color for highlight current day","Helle Farbe für >>heute<< Hervorhebung" },
474{ "Highlight selection in Time Edit","Hebe Auswahl in Zeit Edit hervor" }, 474{ "Highlight selection in Time Edit","Hebe Auswahl in Zeit Edit hervor" },
475{ "Hold fullscreen on view change","Behalte Vollbild bei Ansichswechsel" }, 475{ "Hold fullscreen on view change","Behalte Vollbild bei Ansichswechsel" },
476{ "Hold non-fullscreen on view change","Behalte Nicht-Vollbild bei Ansichtsw." }, 476{ "Hold non-fullscreen on view change","Behalte Nicht-Vollbild bei Ansichtsw." },
477{ "Event list view uses full window","Listenansicht nutzt Vollbild" }, 477{ "Event list view uses full window","Listenansicht nutzt Vollbild" },
478{ "Set agenda to DayBeginsAt on change","Setze Agenda auf TagBeginntUm bei Wechsel" }, 478{ "Set agenda to DayBeginsAt on change","Setze Agenda auf TagBeginntUm bei Wechsel" },
479{ "Set agenda to current time on change","Setze Agenda auf gegenw.Zeit bei Wechsel" }, 479{ "Set agenda to current time on change","Setze Agenda auf gegenw.Zeit bei Wechsel" },
480{ "Listview uses monthly timespan","Listenansicht zeigt monatliche Zeitspanne" }, 480{ "Listview uses monthly timespan","Listenansicht zeigt monatliche Zeitspanne" },
481{ "ViewChange","Ansichtswechsel" }, 481{ "ViewChange","Ansichtswechsel" },
482{ "Default alarm *.wav file:","Standard Alarm *.wav Datei:" }, 482{ "Default alarm *.wav file:","Standard Alarm *.wav Datei:" },
483{ "This setting is useless for 5500 user!","Diese Einst. ist nutzlos für 5500 Nutzer" }, 483{ "This setting is useless for 5500 user!","Diese Einst. ist nutzlos für 5500 Nutzer" },
484{ "File","Datei" }, 484{ "File","Datei" },
485{ "Clone...","Dupliziere.." }, 485{ "Clone...","Dupliziere.." },
486{ "Move...","Bewege..." }, 486{ "Move...","Bewege..." },
487{ "Beam...","Sende via IR..." }, 487{ "Beam...","Sende via IR..." },
488{ "&Clone...","Dupliziere.." }, 488{ "&Clone...","Dupliziere.." },
489{ "&Move...","Bewege..." }, 489{ "&Move...","Bewege..." },
490{ "&Beam...","Sende via IR..." }, 490{ "&Beam...","Sende via IR..." },
491{ "Show Completed","Zeige erledigte Todos" }, 491{ "Show Completed","Zeige erledigte Todos" },
492{ "Show Quick Todo","Zeige Quick Todo" }, 492{ "Show Quick Todo","Zeige Quick Todo" },
493{ "Unparent Todo","Un-sub Todo" }, 493{ "Unparent Todo","Un-sub Todo" },
494{ "Save selected to file...","Speichere Selektierte..." }, 494{ "Save selected to file...","Speichere Selektierte..." },
495{ "Add Categ. to selected...","Füge zu Selekt. Kateg. hinzu..." }, 495{ "Add Categ. to selected...","Füge zu Selekt. Kateg. hinzu..." },
496{ "Set Categ. for selected...","Setze Kateg. für Selekt." }, 496{ "Set Categ. for selected...","Setze Kateg. für Selekt." },
497{ "Beam selected via IR","Sende Selekt. via IR..." }, 497{ "Beam selected via IR","Sende Selekt. via IR..." },
498{ "Search","Suchen" }, 498{ "Search","Suchen" },
499{ "Date Picker","Datum auswählen" }, 499{ "Date Picker","Datum auswählen" },
500{ "Day View","Tagesansicht" }, 500{ "Day View","Tagesansicht" },
501{ "Work Week","Arbeitswoche" }, 501{ "Work Week","Arbeitswoche" },
502{ "Week","Wochenansicht" }, 502{ "Week","Wochenansicht" },
503{ "Month","Monatsansicht" }, 503{ "Month","Monatsansicht" },
504{ "Todo View","Todo Liste" }, 504{ "Todo View","Todo Liste" },
505{ "Journal","Journal Ansicht" }, 505{ "Journal","Journal Ansicht" },
506{ "Next days","Nächste Tage" }, 506{ "Next days","Nächste Tage" },
507{ "Print agenda selection...","Drucke Agendaselektion..." }, 507{ "Print agenda selection...","Drucke Agendaselektion..." },
508{ "Toggle DateNavigator","Navigator umschalten" }, 508{ "Toggle DateNavigator","Navigator umschalten" },
509{ "Toggle FilterView","Filteransicht umschalten" }, 509{ "Toggle FilterView","Filteransicht umschalten" },
510{ "Prev. month","Vorheriger Monat" }, 510{ "Prev. month","Vorheriger Monat" },
511{ "Go backward","Gehe zurück" }, 511{ "Go backward","Gehe zurück" },
512{ "Go forward","Gehe weiter" }, 512{ "Go forward","Gehe weiter" },
513{ "Synchronize","Synchronisieren" }, 513{ "Synchronize","Synchronisieren" },
514{ "AgendaSize","Agendagröße" }, 514{ "AgendaSize","Agendagröße" },
515{ "Import (*.ics/*.vcs) file","Importiere (*.ics/*.vcs) Datei" }, 515{ "Import (*.ics/*.vcs) file","Importiere (*.ics/*.vcs) Datei" },
516{ "Import last file","Importiere letzte Datei" }, 516{ "Import last file","Importiere letzte Datei" },
517{ "Import Opie/Qtopia Cal.","Importiere Opie/Qtopia Kal." }, 517{ "Import Opie/Qtopia Cal.","Importiere Opie/Qtopia Kal." },
518{ "Load Calendar Backup","Lade Kalender Backup" }, 518{ "Load Calendar Backup","Lade Kalender Backup" },
519{ "Save Calendar Backup","Speichere Kalender Backup" }, 519{ "Save Calendar Backup","Speichere Kalender Backup" },
520{ "Export VCalendar","Exportiere VCalendar" }, 520{ "Export VCalendar","Exportiere VCalendar" },
521{ "Manage new categories...","Verwalte neue Kategorien..." }, 521{ "Manage new categories...","Verwalte neue Kategorien..." },
522{ "Beam complete calendar...","Sende kompletten Kalender via IR" }, 522{ "Beam complete calendar...","Sende kompletten Kalender via IR" },
523{ "Beam filtered calendar...","Sende gefilterten Kalender via IR" }, 523{ "Beam filtered calendar...","Sende gefilterten Kalender via IR" },
524{ "Remote via ssh","Über Netzwerk via ssh" }, 524{ "Remote via ssh","Über Netzwerk via ssh" },
525{ "With local file","Mit lokaler Datei" }, 525{ "With local file","Mit lokaler Datei" },
526{ "With last file","Mit letzter Datei" }, 526{ "With last file","Mit letzter Datei" },
527{ "KO/Pi: Ready for beaming","KO/Pi: Bereit zum Senden" }, 527{ "KO/Pi: Ready for beaming","KO/Pi: Bereit zum Senden" },
528{ "KO/Pi:Beaming done","KO/Pi: Senden erfolgt" }, 528{ "KO/Pi:Beaming done","KO/Pi: Senden erfolgt" },
529{ "Save filename","Speichern: Dateinamen wählen" }, 529{ "Save filename","Speichern: Dateinamen wählen" },
530{ "File already exists!\nOld file from:\n%1\nOverwrite?\n","Dateiname existiert bereits!\nAlte Datei vom:\n%1\nÜberschreiben?\n" }, 530{ "File already exists!\nOld file from:\n%1\nOverwrite?\n","Dateiname existiert bereits!\nAlte Datei vom:\n%1\nÜberschreiben?\n" },
531{ "KO/Pi: Warning!","KO/Pi: Warnung!" }, 531{ "KO/Pi: Warning!","KO/Pi: Warnung!" },
532{ "Overwrite!","Überschreibe!" }, 532{ "Overwrite!","Überschreibe!" },
533{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" }, 533{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" },
534{ "All selected items will be\npermanently deleted.\n(Deleting items will take\nsome time on a PDA)\n","Alle selektierten Einträge werden\nunwiederbringlich gelöscht.\n(Löschen kann auf dem\nPDA einige Zeit dauern)\n" }, 534{ "All selected items will be\npermanently deleted.\n(Deleting items will take\nsome time on a PDA)\n","Alle selektierten Einträge werden\nunwiederbringlich gelöscht.\n(Löschen kann auf dem\nPDA einige Zeit dauern)\n" },
535{ "KO/Pi Confirmation","KO/Pi Bestätigung" }, 535{ "KO/Pi Confirmation","KO/Pi Bestätigung" },
536{ "Close dialog to abort deletion!","Schließe Dialog um das Löschen abzubrechen!" }, 536{ "Close dialog to abort deletion!","Schließe Dialog um das Löschen abzubrechen!" },
537{ "Deleting item %d ...","Lösche Eintrag %d ..." }, 537{ "Deleting item %d ...","Lösche Eintrag %d ..." },
538{ "%d items remaining in list.","%d Einträge sind in der Liste verblieben." }, 538{ "%d items remaining in list.","%d Einträge sind in der Liste verblieben." },
539{ "Size","Größe" }, 539{ "Size","Größe" },
540{ "Date","Datum" }, 540{ "Date","Datum" },
541{ "Mime Type","Datei Typ" }, 541{ "Mime Type","Datei Typ" },
542{ "All Files","Alle Dateien" }, 542{ "All Files","Alle Dateien" },
543{ "Files","Dateien" }, 543{ "Files","Dateien" },
544{ "Documents","DoKumente" }, 544{ "Documents","DoKumente" },
545{ "Select Categories","Selektiere Kategorien" }, 545{ "Select Categories","Selektiere Kategorien" },
546{ " &Deselect All "," Auswahl aufheben " }, 546{ " &Deselect All "," Auswahl aufheben " },
547{ "A&dd","Hinzu" }, 547{ "A&dd","Hinzu" },
548{ "&Modify","Ändern" }, 548{ "&Modify","Ändern" },
549{ "Edit Categories","Editiere Kategorien" }, 549{ "Edit Categories","Editiere Kategorien" },
550{ " &Edit Categories "," &Editiere Kategorien " }, 550{ " &Edit Categories "," &Editiere Kategorien " },
551{ "Beam Options","Beam Einstellungen" }, 551{ "Beam Options","Beam Einstellungen" },
552{ " With timezone "," Mit Zeitzone " }, 552{ " With timezone "," Mit Zeitzone " },
553{ " Local time ", " Lokale Zeit " }, 553{ " Local time ", " Lokale Zeit " },
554{ "Manage new Categories","Verwalte neue Kategorien" }, 554{ "Manage new Categories","Verwalte neue Kategorien" },
555{ "Add to category list","Füge zur Kategorieliste hinzu" }, 555{ "Add to category list","Füge zur Kategorieliste hinzu" },
556{ "Remove from Events/Todos","Entferne von Terminen/Todos" }, 556{ "Remove from Events/Todos","Entferne von Terminen/Todos" },
557{ "After importing/loading/syncing\nthere may be new categories in\nevents or todos\nwhich are not in the category list.\nPlease choose what to do:\n ","Nach dem Importieren/Laden/Syncen\nkann es neue Kategorien in den \nTerminen oder Todos geben, die nicht\nin der Kategorieliste enthalten sind.\nBitte wählen Sie, was passieren soll:\n " }, 557{ "After importing/loading/syncing\nthere may be new categories in\nevents or todos\nwhich are not in the category list.\nPlease choose what to do:\n ","Nach dem Importieren/Laden/Syncen\nkann es neue Kategorien in den \nTerminen oder Todos geben, die nicht\nin der Kategorieliste enthalten sind.\nBitte wählen Sie, was passieren soll:\n " },
558{ "New categories not in list:","Kategorien, die nicht in der Liste sind:" }, 558{ "New categories not in list:","Kategorien, die nicht in der Liste sind:" },
559{ "File format","Datei Format" }, 559{ "File format","Datei Format" },
560{ "Time format","Zeit Format" }, 560{ "Time format","Zeit Format" },
561{ "Delete all\ncompleted To-Dos?","Lösche alle\nerledigten To-Dos?" }, 561{ "Delete all\ncompleted To-Dos?","Lösche alle\nerledigten To-Dos?" },
562{ "KO/Pi:Saving Data to File ...","KO/Pi: Speichere Kalender in Datei ..." }, 562{ "KO/Pi:Saving Data to File ...","KO/Pi: Speichere Kalender in Datei ..." },
563{ "KO/Pi:File Saved. Needed %d sec, %d ms","KO/Pi: Abgespeichert in %d sec, %d ms" }, 563{ "KO/Pi:File Saved. Needed %d sec, %d ms","KO/Pi: Abgespeichert in %d sec, %d ms" },
564{ "h","Std" }, 564{ "h","Std" },
565{ "min","Min" }, 565{ "min","Min" },
566{ "hou","Std" }, 566{ "hou","Std" },
567{ "day","Tag" }, 567{ "day","Tag" },
568{ "French(nyi)","Französich (noch nicht implementiert)" }, 568{ "French(nyi)","Französich (noch nicht implementiert)" },
569{ "Time","Zeit" }, 569{ "Time","Zeit" },
570{ "Event Viewer","Termin Ansicht" }, 570{ "Event Viewer","Termin Ansicht" },
571{ "Cancel Sync","Sync Abbrechen" }, 571{ "Cancel Sync","Sync Abbrechen" },
572{ "Remote","Fern" }, 572{ "Remote","Fern" },
573{ "Local","Lokal" }, 573{ "Local","Lokal" },
574{ "Conflict! Please choose entry","Konflikt! Bitte Eintrag wählen" }, 574{ "Conflict! Please choose entry","Konflikt! Bitte Eintrag wählen" },
575{ "Local: ","Lokal: " }, 575{ "Local: ","Lokal: " },
576{ "Remote: ","Fern: " }, 576{ "Remote: ","Fern: " },
577{ "Last modified: ","Zuletzt geändert: " }, 577{ "Last modified: ","Zuletzt geändert: " },
578{ "Location: ","Ort: " }, 578{ "Location: ","Ort: " },
579{ "<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>","<p><b>Von:</b> %1 </p><p><b>Bis:</b> %2</p>" }, 579{ "<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>","<p><b>Von:</b> %1 </p><p><b>Bis:</b> %2</p>" },
580{ "<p><b>On:</b> %1</p>","<p><b>Am:</b> %1</p>" }, 580{ "<p><b>On:</b> %1</p>","<p><b>Am:</b> %1</p>" },
581{ "<p><b>From:</b> %1</p> ","<p><b>Von:</b> %1</p> " }, 581{ "<p><b>From:</b> %1</p> ","<p><b>Von:</b> %1</p> " },
582{ "<p><b>To:</b> %1</p>","<p><b>Bis:</b> %1</p>" }, 582{ "<p><b>To:</b> %1</p>","<p><b>Bis:</b> %1</p>" },
583{ "<p><b>On:</b> %1</p> ","<p><b>Am:</b> %1</p> " }, 583{ "<p><b>On:</b> %1</p> ","<p><b>Am:</b> %1</p> " },
584{ "<p><b>From:</b> %1 <b>To:</b> %2</p>","<p><b>Von:</b> %1 <b>Bis:</b> %2</p>" }, 584{ "<p><b>From:</b> %1 <b>To:</b> %2</p>","<p><b>Von:</b> %1 <b>Bis:</b> %2</p>" },
585{ "This is a %1 recurring event.","Das ist ein %1 wiederholender Termin." }, 585{ "This is a %1 recurring event.","Das ist ein %1 wiederholender Termin." },
586{ "<b>Next recurrence is on:</b>","<b>Nächste Wiederholung ist am:</b>" }, 586{ "<b>Next recurrence is on:</b>","<b>Nächste Wiederholung ist am:</b>" },
587{ "<b>Last recurrence was on:</b>","<b>Letzte Wiederholung war am:</b>" }, 587{ "<b>Last recurrence was on:</b>","<b>Letzte Wiederholung war am:</b>" },
588{ "( %1 min before )","( %1 min vorher )" }, 588{ "( %1 min before )","( %1 min vorher )" },
589{ "<b>Alarm on: ","<b>Alarm am: " }, 589{ "<b>Alarm on: ","<b>Alarm am: " },
590{ "<b>Details: </b>","<b>Details: </b>" }, 590{ "<b>Details: </b>","<b>Details: </b>" },
591{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" }, 591{ "<p><b>Priority:</b> %2</p>","<p><b>Priorität:</b> %2</p>" },
592{ "<p><i>%1 % completed</i></p>","<p><i>%1 % erledigt</i></p>" }, 592{ "<p><i>%1 % completed</i></p>","<p><i>%1 % erledigt</i></p>" },
593{ "Organizer","Organisator" }, 593{ "Organizer","Organisator" },
594{ "Save","Speichern" }, 594{ "Save","Speichern" },
595{ "Exit (+save)","Beenden (+ speichern)" }, 595{ "Exit (+save)","Beenden (+ speichern)" },
596{ "Home","Zuhause" }, 596{ "Home","Zuhause" },
597{ "Office","Büro" }, 597{ "Office","Büro" },
598{ "Libary","Bücherei" }, 598{ "Libary","Bücherei" },
599{ "Doctor","Arzt" }, 599{ "Doctor","Arzt" },
600{ "Beach","Strand" }, 600{ "Beach","Strand" },
601{ "Conference room","Konferenzraum" }, 601{ "Conference room","Konferenzraum" },
602{ "Drive Home","Heimfahrt" }, 602{ "Drive Home","Heimfahrt" },
603{ "Watch TV","Tv gucken" }, 603{ "Watch TV","Tv gucken" },
604{ "Phone call","Telefonanruf" }, 604{ "Phone call","Telefonanruf" },
605{ "Pay bill","Rechnung bezahlen" }, 605{ "Pay bill","Rechnung bezahlen" },
606{ "Read book","Buch lesen" }, 606{ "Read book","Buch lesen" },
607{ "Watering plants","Pflanzen giessen" }, 607{ "Watering plants","Pflanzen giessen" },
608{"Appointment","Verabredung" }, 608{"Appointment","Verabredung" },
609{"Birthday","Geburtstag" }, 609{"Birthday","Geburtstag" },
610{"Business","Geschäft" }, 610{"Business","Geschäft" },
611{"Business Travel","Geschäftsreise" }, 611{"Business Travel","Geschäftsreise" },
612{"Cinema","Kino" }, 612{"Cinema","Kino" },
613{"Customer","Kunde" }, 613{"Customer","Kunde" },
614{"Break","Pause" }, 614{"Break","Pause" },
615{"Breakfast","Frühstück" }, 615{"Breakfast","Frühstück" },
616{"Competition","Wettkampf" }, 616{"Competition","Wettkampf" },
617{"Dinner","Abendessen" }, 617{"Dinner","Abendessen" },
618{"Education","Erziehung" }, 618{"Education","Erziehung" },
619{"Family","Familie" }, 619{"Family","Familie" },
620{"Favorites","Favoriten" }, 620{"Favorites","Favoriten" },
621{"Festival","Festival" }, 621{"Festival","Festival" },
622{"Fishing","Angeln" }, 622{"Fishing","Angeln" },
623{"Flight","Flug" }, 623{"Flight","Flug" },
624{"Gifts","Geschenk" }, 624{"Gifts","Geschenk" },
625{"Holiday","Feiertag" }, 625{"Holiday","Feiertag" },
626{"Holiday Cards","Ansichtskarten" }, 626{"Holiday Cards","Ansichtskarten" },
627{"Hot Contacts","Heisse Kontakte" }, 627{"Hot Contacts","Heisse Kontakte" },
628{"Hiking","Wandern" }, 628{"Hiking","Wandern" },
629{"Hunting","Jagen" }, 629{"Hunting","Jagen" },
630{"Key Customer","Wichtiger Kunde" }, 630{"Key Customer","Wichtiger Kunde" },
631{"Kids","Kinder" }, 631{"Kids","Kinder" },
632{"Lunch","Mittagessen" }, 632{"Lunch","Mittagessen" },
633{"Meeting","Treffen" }, 633{"Meeting","Treffen" },
634{"Miscellaneous","Verschiedenes" }, 634{"Miscellaneous","Verschiedenes" },
635{"Partner","Partner" }, 635{"Partner","Partner" },
636{"Party","Partie" }, 636{"Party","Partie" },
637{"Personal","Privat" }, 637{"Personal","Privat" },
638{"Personal Travel","Privatreise"}, 638{"Personal Travel","Privatreise"},
639{"PHB","PHB" }, 639{"PHB","PHB" },
640{"Phone Calls","Telefonanruf" }, 640{"Phone Calls","Telefonanruf" },
641{"Projects","Projekt" }, 641{"Projects","Projekt" },
642{"Recurring","Wiederholend" }, 642{"Recurring","Wiederholend" },
643{"School","Schule" }, 643{"School","Schule" },
644{"Shopping","Einkaufen" }, 644{"Shopping","Einkaufen" },
645{"Speach","Rede" }, 645{"Speach","Rede" },
646{"Special Occasion","Spez.Gelegenheit" }, 646{"Special Occasion","Spez.Gelegenheit" },
647{"Sports","Sport" }, 647{"Sports","Sport" },
648{"Talk","Vortrag" }, 648{"Talk","Vortrag" },
649{"Travel","Reise" }, 649{"Travel","Reise" },
650{"TV","TV" }, 650{"TV","TV" },
651{"Germany","Deutschland" }, 651{"Germany","Deutschland" },
652{"Sweden","Schweden" }, 652{"Sweden","Schweden" },
653{"Forest","Wald" }, 653{"Forest","Wald" },
654{ "Desert","Wüste" }, 654{ "Desert","Wüste" },
655{ "Kitchen","Küche" }, 655{ "Kitchen","Küche" },
656{ "Lake","See" }, 656{ "Lake","See" },
657{"University","Universität"}, 657{"University","Universität"},
658{"Vacation","Urlaub" }, 658{"Vacation","Urlaub" },
659{"VIP","VIP" }, 659{"VIP","VIP" },
660{ "Import Sharp Calendar","Importiere Sharp Kalender" }, 660{ "Import Sharp Calendar","Importiere Sharp Kalender" },
661{ "This todo has been cancelled!","Dieses Todo wurde gecancelt!" }, 661{ "This todo has been cancelled!","Dieses Todo wurde gecancelt!" },
662{ "This event has been cancelled!","Dieser Termin wurde gecancelt!" }, 662{ "This event has been cancelled!","Dieser Termin wurde gecancelt!" },
663{ "Cancelled","Gecancelt" }, 663{ "Cancelled","Gecancelt" },
664{ "Multiple sync","Mehrfach Sync" }, 664{ "Multiple sync","Mehrfach Sync" },
665{ "Local file","Lokale Datei" }, 665{ "Local file","Lokale Datei" },
666{ "Last file","Letzte Datei" }, 666{ "Last file","Letzte Datei" },
667{ "Keys + Colors...","Tasten + Farben..." }, 667{ "Keys + Colors...","Tasten + Farben..." },
668{ "Mini icons in toolbar(nr)","Mini Icons in ToolBar(bn)" }, 668{ "Mini icons in toolbar(nr)","Mini Icons in ToolBar(bn)" },
669{ "Quick save(w/o Unicode)","Schnelles Speichern (o Unicode)" }, 669{ "Quick save(w/o Unicode)","Schnelles Speichern (o Unicode)" },
670{ "Choose...","Wähle..." }, 670{ "Choose...","Wähle..." },
671{ "Use colors for application:","Setze Farben für Programm:" }, 671{ "Use colors for application:","Setze Farben für Programm:" },
672{ "Buttons, menus, etc.:","Knöpfe, Menu, etc.:" }, 672{ "Buttons, menus, etc.:","Knöpfe, Menu, etc.:" },
673{ "Frames, labels, etc.:","Rahmen, Label, etc.:" }, 673{ "Frames, labels, etc.:","Rahmen, Label, etc.:" },
674{ "Show parent To-Do's in What's Next view","Zeige Ober-Todo in What's Next Anz." }, 674{ "Show parent To-Do's in What's Next view","Zeige Ober-Todo in What's Next Anz." },
675{ "Show location in What's Next view","Zeige Ort in What's Next Anz." }, 675{ "Show location in What's Next view","Zeige Ort in What's Next Anz." },
676{ "Show events that recur ","Zeige Termine, die sich wiederholen:" }, 676{ "Show events that recur ","Zeige Termine, die sich wiederholen:" },
677{ "Show in every cell ","Zeige in jeder Zelle " }, 677{ "Show in every cell ","Zeige in jeder Zelle " },
678{ "short month","kurzen Monat" }, 678{ "short month","kurzen Monat" },
679{ "icons","Icons" }, 679{ "icons","Icons" },
680{ "Show Sat/Sun together","Zeige Sam/Son zusammen" }, 680{ "Show Sat/Sun together","Zeige Sam/Son zusammen" },
681{ "Categorie colors are applied to text","Kategorie Farben färben Text" }, 681{ "Categorie colors are applied to text","Kategorie Farben färben Text" },
682{ "Month view uses day colors","Monatsansicht zeigt Tagesfarben" }, 682{ "Month view uses day colors","Monatsansicht zeigt Tagesfarben" },
683{ "Day color odd months","Tagesfarbe ungerade Monate" }, 683{ "Day color odd months","Tagesfarbe ungerade Monate" },
684{ "Day color even months","Tagesfarbe gerade Monate" }, 684{ "Day color even months","Tagesfarbe gerade Monate" },
685{ "Color for Sundays + category \"Holiday\"","Farbe für Sonntag + Kateg.\" Feiertag\"" }, 685{ "Color for Sundays + category \"Holiday\"","Farbe für Sonntag + Kateg.\" Feiertag\"" },
686{ "To-do view shows complete as 'xx %'","Zeige Prozent erledigt als 'xx %'" }, 686{ "To-do view shows complete as 'xx %'","Zeige Prozent erledigt als 'xx %'" },
687{ "Small To-do view uses smaller font","Kleine To-do Ansicht nutzt kleineren Font" }, 687{ "Small To-do view uses smaller font","Kleine To-do Ansicht nutzt kleineren Font" },
688{ "Colors are applied to text","Farben werden auf Text angewendet" }, 688{ "Colors are applied to text","Farben werden auf Text angewendet" },
689{ "Use internal alarm notification","Nutze interne Alarm Benachrichtigung" }, 689{ "Use internal alarm notification","Nutze interne Alarm Benachrichtigung" },
690{ "Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n","Achtung: KO/Pi muß ausgeführt werden damit die Benachrichtigung funktioniert. Empfehlung für Zaurus: Diese Option nicht wählen und KO/Pi Alarm Applet installieren.\n" }, 690{ "Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n","Achtung: KO/Pi muß ausgeführt werden damit die Benachrichtigung funktioniert. Empfehlung für Zaurus: Diese Option nicht wählen und KO/Pi Alarm Applet installieren.\n" },
691{ "Play beeps count:","Anzahl der Alarmpiepse: " }, 691{ "Play beeps count:","Anzahl der Alarmpiepse: " },
692{ "Beeps interval in sec:","Zeitintervall der Alarmpiepse: " }, 692{ "Beeps interval in sec:","Zeitintervall der Alarmpiepse: " },
693{ "Default suspend time in min:","Standard Supendierungs Zeit: " }, 693{ "Default suspend time in min:","Standard Supendierungs Zeit: " },
694{ "Auto suspend count:","Anzahl der auto Suspendierungen" }, 694{ "Auto suspend count:","Anzahl der auto Suspendierungen" },
695{ "Alarm *.wav file for newly created alarm:","Alarm *.wav Datei für neu angelegte Alarme:" }, 695{ "Alarm *.wav file for newly created alarm:","Alarm *.wav Datei für neu angelegte Alarme:" },
696{ "New profile","Neues Profil" }, 696{ "New profile","Neues Profil" },
697{ "Clone profile","Klone Profil" }, 697{ "Clone profile","Klone Profil" },
698{ "Delete profile","Lösche Profil" }, 698{ "Delete profile","Lösche Profil" },
699{ "Profile:","Profil:" }, 699{ "Profile:","Profil:" },
700{ "Include in multiple sync","Beziehe Profil in mehrfach Sync mit ein" }, 700{ "Include in multiple sync","Beziehe Profil in mehrfach Sync mit ein" },
701{ "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" }, 701{ "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" },
702{ "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" }, 702{ "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" },
703{ "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" }, 703{ "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" },
704{ "Write back file","Schreibe Datei zurück" }, 704{ "Write back file","Schreibe Datei zurück" },
705{ "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" }, 705{ "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" },
706{ "Pre sync (download) command:","Bevor Sync (download) Kommando:" }, 706{ "Pre sync (download) command:","Bevor Sync (download) Kommando:" },
707{ "Local device name:","Name dieses Gerätes:" }, 707{ "Local device name:","Name dieses Gerätes:" },
708{ "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" }, 708{ "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" },
709{ "Sync preferences","Synchronisations Einstellungen" }, 709{ "Sync preferences","Synchronisations Einstellungen" },
710{ "Profile kind","Profil Art" }, 710{ "Profile kind","Profil Art" },
711{ "Local file","Lokale Datei" }, 711{ "Local file","Lokale Datei" },
712{ "Local file:","Lokale Datei:" }, 712{ "Local file:","Lokale Datei:" },
713{ "Post sync (upload) command:","Nach Sync (upload) Kommando:" }, 713{ "Post sync (upload) command:","Nach Sync (upload) Kommando:" },
714{ "Fill in default values for:","Setze Beispiel Werte ein für:" }, 714{ "Fill in default values for:","Setze Beispiel Werte ein für:" },
715{ "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" }, 715{ "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" },
716{ "Synchronization Preferences","Einstellungen der Synchronisationsprofile"}, 716{ "Synchronization Preferences","Einstellungen der Synchronisationsprofile"},
717{ "Device","Gerät:" }, 717{ "Device","Gerät:" },
718{ "Sync with file \n...%1\nfrom:\n%2\n","Sync mit Datei \n...%1\nvom:\n%2\n" }, 718{ "Sync with file \n...%1\nfrom:\n%2\n","Sync mit Datei \n...%1\nvom:\n%2\n" },
719{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n","Synchronisationsübersicht:\n\n %d items lokal hinzugefügt\n %d items entfernt hinzugefügt\n %d items lokal geändert\n %d items entfernt geändert\n %d items lokal gelöscht\n %d items entfernt gelöscht\n" }, 719{ "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n","Synchronisationsübersicht:\n\n %d items lokal hinzugefügt\n %d items entfernt hinzugefügt\n %d items lokal geändert\n %d items entfernt geändert\n %d items lokal gelöscht\n %d items entfernt gelöscht\n" },
720{ "Synchronization successful","Synchronisation erfolgreich" }, 720{ "Synchronization successful","Synchronisation erfolgreich" },
721{ "Sync cancelled or failed. Nothing synced.","Sync abgebrochen oder fehlgeschlagen. Nichts wurde gesynced." }, 721{ "Sync cancelled or failed. Nothing synced.","Sync abgebrochen oder fehlgeschlagen. Nichts wurde gesynced." },
722{ "Sync file \n...%1\ndoes not exist!\nNothing synced!\n","Sync Datei \n...%1\nexistiert nicht!\nNichts wurde gesynced!\n" }, 722{ "Sync file \n...%1\ndoes not exist!\nNothing synced!\n","Sync Datei \n...%1\nexistiert nicht!\nNichts wurde gesynced!\n" },
723{ "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" }, 723{ "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" },
724{ "Enter password","Passwort eingeben" }, 724{ "Enter password","Passwort eingeben" },
725{ "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" }, 725{ "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" },
726{ "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." }, 726{ "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." },
727{ "Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n","Sorry, das Kopierkommando schlug fehl!\nKommando war:\n%1\n \nVersuche Kommando von Kosole um\nDetails für das Fehlschlagen\nzu erfahren.\n" }, 727{ "Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n","Sorry, das Kopierkommando schlug fehl!\nKommando war:\n%1\n \nVersuche Kommando von Kosole um\nDetails für das Fehlschlagen\nzu erfahren.\n" },
728{ "Writing back file result: ","Resultat des Dateizurückschreibens: " }, 728{ "Writing back file result: ","Resultat des Dateizurückschreibens: " },
729{ "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" }, 729{ "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" },
730{ "Edit Calendar Filters","Editiere Kalendar Filter" }, 730{ "Edit Calendar Filters","Editiere Kalendar Filter" },
731{ "Enter filter name:","Neuer Filter Name:" }, 731{ "Enter filter name:","Neuer Filter Name:" },
732{ "Add Filter","Filter hinzufügen" }, 732{ "Add Filter","Filter hinzufügen" },
733{ "Question","Frage" }, 733{ "Question","Frage" },
734{ "Filter position: ","Filter Position: " }, 734{ "Filter position: ","Filter Position: " },
735{ "Month View","Monatsansicht" }, 735{ "Month View","Monatsansicht" },
736{ "This profil cannot be deleted!\n","Dieses Profil kann\nnicht gelöscht werden!" }, 736{ "This profil cannot be deleted!\n","Dieses Profil kann\nnicht gelöscht werden!" },
737{ "KO/Pi config error","KO/Pi Konfig. Fehler" }, 737{ "KO/Pi config error","KO/Pi Konfig. Fehler" },
738{ "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" }, 738{ "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" },
739{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile haben denselben Namen!\nBitte unterschiedliche Namen wählen!" }, 739{ "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile haben denselben Namen!\nBitte unterschiedliche Namen wählen!" },
740{ "Access: ","Zugriff: " }, 740{ "Access: ","Zugriff: " },
741{ "Needs Action","Aktion notwendig" }, 741{ "Needs Action","Aktion notwendig" },
742{ "Accepted","Akzeptiert" }, 742{ "Accepted","Akzeptiert" },
743{ "Declined","Abgelehnt" }, 743{ "Declined","Abgelehnt" },
744{ "Tentative","Vorläufig" }, 744{ "Tentative","Vorläufig" },
745{ "Delegated","Beauftragt" }, 745{ "Delegated","Beauftragt" },
746{ "Completed","Vollständig" }, 746{ "Completed","Vollständig" },
747{ "In Process","In Bearbeitung" }, 747{ "In Process","In Bearbeitung" },
748{ "Participant","Teilnehmer" }, 748{ "Participant","Teilnehmer" },
749{ "Optional Participant","Möglicher Teilnehmer" }, 749{ "Optional Participant","Möglicher Teilnehmer" },
750{ "Observer","Beobachter" }, 750{ "Observer","Beobachter" },
751{ "Chair","Vorsitzender" }, 751{ "Chair","Vorsitzender" },
752{ "Not supported \non desktop!\n","" }, 752{ "Not supported \non desktop!\n","" },
753{ "Nothing selected!\n\nThis prints the full width of the Agenda view as you see it!\n\nTo determine the vertical range of the printing, please select\na vertical range (with the left mouse button down) in one column. ","Es ist nichts selektiert!\nDieses druckt die volle Breite der Agenda View, so wie man sie sieht.\nUm die verticale Auswahl zum Drucken zu bestimmen,\nbitte einen verticalen Zeitraum (mit gedrückter linker Maustaste)\nin einer Spalte auswählen. " }, 753{ "Nothing selected!\n\nThis prints the full width of the Agenda view as you see it!\n\nTo determine the vertical range of the printing, please select\na vertical range (with the left mouse button down) in one column. ","Es ist nichts selektiert!\nDieses druckt die volle Breite der Agenda View, so wie man sie sieht.\nUm die verticale Auswahl zum Drucken zu bestimmen,\nbitte einen verticalen Zeitraum (mit gedrückter linker Maustaste)\nin einer Spalte auswählen. " },
754{ "Date range: ","Datums Zeitspanne: " }, 754{ "Date range: ","Datums Zeitspanne: " },
755{ "Not supported \non PDA!\n","Nicht verfügbar\nauf dem PDA. " }, 755{ "Not supported \non PDA!\n","Nicht verfügbar\nauf dem PDA. " },
756{ "Syncing - close to abort!","Syncing-schließe um abzubrechen." }, 756{ "Syncing - close to abort!","Syncing-schließe um abzubrechen." },
757{ "Add / remove events","Add./entferne Termine" }, 757{ "Add / remove events","Add./entferne Termine" },
758{ "File does not exist:\n '%1'.","Datei existiert nicht:\n '%1'." }, 758{ "File does not exist:\n '%1'.","Datei existiert nicht:\n '%1'." },
759{ "Couldn't load calendar\n '%1'.","Kann Kalender nicht laden:\n '%1'." }, 759{ "Couldn't load calendar\n '%1'.","Kann Kalender nicht laden:\n '%1'." },
760{ "\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie gepeicherte Datei wurde verändert!\nDatei Grösse: %1 Bytes.\nZuletzt geändert: %2\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" }, 760{ "\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie gepeicherte Datei wurde verändert!\nDatei Grösse: %1 Bytes.\nZuletzt geändert: %2\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" },
761{ "Overwrite","Überschreiben" }, 761{ "Overwrite","Überschreiben" },
762{ "Sync+save","Syncen+speichern" }, 762{ "Sync+save","Syncen+speichern" },
763{ "Default","Standard" }, 763{ "Default","Standard" },
764{ " Categories added to list! "," Kategorien zur Liste hinzugefügt! " }, 764{ " Categories added to list! "," Kategorien zur Liste hinzugefügt! " },
765{ " %d items?"," %d Einträge?" }, 765{ " %d items?"," %d Einträge?" },
766{ "\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?","\nDieses ist ein\nwiederholender Termin!.\nSind Sie sicher, dass Sie\ndiesen Termin und alle\nWiederholungen löschen möchten?" }, 766{ "\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?","\nDieses ist ein\nwiederholender Termin!.\nSind Sie sicher, dass Sie\ndiesen Termin und alle\nWiederholungen löschen möchten?" },
767{ " ?\n\nDelete:\n"," ?\n\nLösche:\n" }, 767{ " ?\n\nDelete:\n"," ?\n\nLösche:\n" },
768{ "Current","Aktuelle" }, 768{ "Current","Aktuelle" },
769{ "\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n","\nDieses ist ein\nwiederholender Termin!\nMöchten sie alle Wiederholungen\nlöschen, oder nur die aktuelle am:\n" }, 769{ "\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n","\nDieses ist ein\nwiederholender Termin!\nMöchten sie alle Wiederholungen\nlöschen, oder nur die aktuelle am:\n" },
770{ "All","Alle" }, 770{ "All","Alle" },
771{ "Data Loss Warning","Datenverlust Warnung" }, 771{ "Data Loss Warning","Datenverlust Warnung" },
772{ "Proceed","Weitermachen" }, 772{ "Proceed","Weitermachen" },
773{ "The journal entries can not be\nexported to a vCalendar file.","Die Journal Einträge können\nnicht in eine vCalendar\nDatei exportiert werden!" }, 773{ "The journal entries can not be\nexported to a vCalendar file.","Die Journal Einträge können\nnicht in eine vCalendar\nDatei exportiert werden!" },
774{ "Filter disabled ","Filter abgeschaltet" }, 774{ "Filter disabled ","Filter abgeschaltet" },
775{ "Filter selected: ","Gewählter Filter: " }, 775{ "Filter selected: ","Gewählter Filter: " },
776{ "Toggle Cancel","Gecancelt ändern" }, 776{ "Toggle Cancel","Gecancelt ändern" },
777{ "&Toggle Cancel","Gecancel&t ändern" }, 777{ "&Toggle Cancel","Gecancel&t ändern" },
778{ "Configure Toolbar","Konfiguriere Toolbar" }, 778{ "Configure Toolbar","Konfiguriere Toolbar" },
779{ "Stretched TB","Gedehnte TB" }, 779{ "Stretched TB","Gedehnte TB" },
780{ "Import file \n...%1\ndoes not exist!\nNothing imported!\n","Import Datei \n...%1\nexistiert nicht!\nNichts importiert!\n" }, 780{ "Import file \n...%1\ndoes not exist!\nNothing imported!\n","Import Datei \n...%1\nexistiert nicht!\nNichts importiert!\n" },
781{ "Import filename(*.ics/*.vcs)","Import Dateiname(*.ics/*.vcs)" }, 781{ "Import filename(*.ics/*.vcs)","Import Dateiname(*.ics/*.vcs)" },
782{ "When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing","Wenn ein Kalender doppelt importiert\nwird, werden doppelte Einträge ignoriert!\nSie können eine Backup Datei anlegen unter\nDatei - Speichere Kalender Backup\num den Import rückgängig machen zu können.\n" }, 782{ "When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing","Wenn ein Kalender doppelt importiert\nwird, werden doppelte Einträge ignoriert!\nSie können eine Backup Datei anlegen unter\nDatei - Speichere Kalender Backup\num den Import rückgängig machen zu können.\n" },
783{ "Not supported \non desktop!\n","Nur verfügbar auf PDA!" }, 783{ "Not supported \non desktop!\n","Nur verfügbar auf PDA!" },
784{ "Imported file successfully","Datei erfolgreich importiert" }, 784{ "Imported file successfully","Datei erfolgreich importiert" },
785{ "Error importing file","Fehler beim Importieren der Datei" }, 785{ "Error importing file","Fehler beim Importieren der Datei" },
786{ "Export vcal filename(*.vcs)","Export vcal Dateiname(*.vcs)" }, 786{ "Export vcal filename(*.vcs)","Export vcal Dateiname(*.vcs)" },
787{ "Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n","Zu speichernde Datei\existiert bereits!\nExist. Datei vom:\n%1\nÜberschreiben?\n" }, 787{ "Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n","Zu speichernde Datei\existiert bereits!\nExist. Datei vom:\n%1\nÜberschreiben?\n" },
788{ "Overwrite!","Überschreiben!" }, 788{ "Overwrite!","Überschreiben!" },
789{ "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n","Import Datei \n...%1\nvom:\n%2\nDuplizierte Einträge\nwerden nicht importiert!\n" }, 789{ "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n","Import Datei \n...%1\nvom:\n%2\nDuplizierte Einträge\nwerden nicht importiert!\n" },
790{ "Load backup filename","Lade Backup Dateiname" }, 790{ "Load backup filename","Lade Backup Dateiname" },
791{ "Backup file\ndoes not exist!\nNothing loaded!","Backup Datei\nexistiert nicht!\nNichts geladen!" }, 791{ "Backup file\ndoes not exist!\nNothing loaded!","Backup Datei\nexistiert nicht!\nNichts geladen!" },
792{ "KO/Pi:Loaded %1","KO/Pi:Geladen %1" }, 792{ "KO/Pi:Loaded %1","KO/Pi:Geladen %1" },
793{ "Save backup filename","Speichere Backup Dateiname" }, 793{ "Save backup filename","Speichere Backup Dateiname" },
794{ "Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n","Backup Datei\nexistiert bereits!\nAlte Backup Datei vom:\n%1\nÜberschreiben?\n" }, 794{ "Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n","Backup Datei\nexistiert bereits!\nAlte Backup Datei vom:\n%1\nÜberschreiben?\n" },
795{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" }, 795{ "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" },
796{ "Details of attendee","Teilnehmerdetails" }, 796{ "Details of attendee","Teilnehmerdetails" },
797{ "Work phone:\n","Telefon Arbeit:\n" }, 797{ "Work phone:\n","Telefon Arbeit:\n" },
798{ "Work mobile phone:\n","Mobiltelefon Arbeit:\n" }, 798{ "Work mobile phone:\n","Mobiltelefon Arbeit:\n" },
799{ "Home phone:\n","Telefon privat:\n" }, 799{ "Home phone:\n","Telefon privat:\n" },
800{ "Mobile home phone:\n","Mobiltelefon privat:\n" }, 800{ "Mobile home phone:\n","Mobiltelefon privat:\n" },
801{ "Email:\n","Email:\n" }, 801{ "Email:\n","Email:\n" },
802{ "Alarm disabled","Alarm deaktiviert" }, 802{ "Alarm disabled","Alarm deaktiviert" },
803{ "Audio.Al.: ","Audio Al.: " }, 803{ "Audio.Al.: ","Audio Al.: " },
804{ "Proc.Al.: ","Proc.Al.: " }, 804{ "Proc.Al.: ","Proc.Al.: " },
805{ "No sound set","Kein Sound definiert" }, 805{ "No sound set","Kein Sound definiert" },
806{ "*.wav|Wav Files","*.wav|Wav Dateien" }, 806{ "*.wav|Wav Files","*.wav|Wav Dateien" },
807{ "No program set","Kein Programm definiert" }, 807{ "No program set","Kein Programm definiert" },
808{ "Running '%1'","Ausführen '%1'" }, 808{ "Running '%1'","Ausführen '%1'" },
809{ "Playing '%1'","Abspielen '%1'" }, 809{ "Playing '%1'","Abspielen '%1'" },
810{ "Show Sync Events in WN/Agenda view","Zeige Sync Events in WN/Agenda Ansicht" }, 810{ "Show Sync Events in WN/Agenda view","Zeige Sync Events in WN/Agenda Ansicht" },
811{ "User defined (usertranslation.txt)","File usertranslation.txt loaded" }, 811{ "User defined (usertranslation.txt)","File usertranslation.txt loaded" },
812{ "Load!","Laden!" }, 812{ "Load!","Laden!" },
813{ "Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n","Backup Datei vom:\n%1\nDas Laden der Backup Datei\nlöscht die aktuellen Daten!\n" }, 813{ "Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n","Backup Datei vom:\n%1\nDas Laden der Backup Datei\nlöscht die aktuellen Daten!\n" },
814{ "KO/Pi Features and hints","KO/Pi Eigenschaften und Tipps" }, 814{ "KO/Pi Features and hints","KO/Pi Eigenschaften und Tipps" },
815{ "KO/Pi User translation HowTo","KO/Pi Benutzer-Übersetzung HowTo" }, 815{ "KO/Pi User translation HowTo","KO/Pi Benutzer-Übersetzung HowTo" },
816{ "KO/Pi Synchronization HowTo","KO/Pi Synchronisation HowTo" }, 816{ "KO/Pi Synchronization HowTo","KO/Pi Synchronisation HowTo" },
817{ "Features + hints...","Eigenschaften + Tipps..." }, 817{ "Features + hints...","Eigenschaften + Tipps..." },
818{ "User translation...","Benutzer Übersetzung..." }, 818{ "User translation...","Benutzer Übersetzung..." },
819{ "Sync HowTo...","Synchronisation HowTo..." }, 819{ "Sync HowTo...","Synchronisation HowTo..." },
820{ "Print calendar...","Drucke Kalender..." }, 820{ "Print calendar...","Drucke Kalender..." },
821{ "Anniversary","Jahrestag" }, 821{ "Anniversary","Jahrestag" },
822{ "When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n","Wenn Geburtstage mehrfach importiert\nwerden, werden doppelte Einträge ignoriert\nwenn sie nicht verändert wurden.\n" }, 822{ "When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n","Wenn Geburtstage mehrfach importiert\nwerden, werden doppelte Einträge ignoriert\nwenn sie nicht verändert wurden.\n" },
823{ "Import Birthdays (KA/Pi)","Importiere Geburtstage (KA/Pi)" }, 823{ "Import Birthdays (KA/Pi)","Importiere Geburtstage (KA/Pi)" },
824{ "Next recurrence is on: ","Nächste Wiederholung ist am:" }, 824{ "Next recurrence is on: ","Nächste Wiederholung ist am:" },
825{ "<b>Alarm on: </b>","<b>Alarm am: </b>" }, 825{ "<b>Alarm on: </b>","<b>Alarm am: </b>" },
826{ "<b>Access: </b>","<b>Zugriff: </b>" }, 826{ "<b>Access: </b>","<b>Zugriff: </b>" },
827{ "(%1 min before)","(%1 min vorher)" }, 827{ "(%1 min before)","(%1 min vorher)" },
828{ "<b>Categories: </b>","<b>Kategorien: </b>" }, 828{ "<b>Categories: </b>","<b>Kategorien: </b>" },
829{ "Save Journal/Description...","Speichere Journal/Details..." }, 829{ "Save Journal/Description...","Speichere Journal/Details..." },
830{ "This saves the text/details of selected\nJournals and Events/Todos\nto a text file.","Das speichert den Text bzw.\ndie Details von selektierten\nJournalen und Events/Todos\nin eine Textdatei." }, 830{ "This saves the text/details of selected\nJournals and Events/Todos\nto a text file.","Das speichert den Text bzw.\ndie Details von selektierten\nJournalen und Events/Todos\nin eine Textdatei." },
831{ "Continue","Weitermachen" }, 831{ "Continue","Weitermachen" },
832{ " birthdays/anniversaries added!"," Geburts-/Jahrestage hinzugefügt" }, 832{ " birthdays/anniversaries added!"," Geburts-/Jahrestage hinzugefügt" },
833{ "Attendee:","Teilnehmer:" }, 833{ "Attendee:","Teilnehmer:" },
834{ "Click OK to search ->","Klicke zum Suchen auf OK ->" }, 834{ "Click OK to search ->","Klicke zum Suchen auf OK ->" },
835{ "On day ","Am Tag " }, 835{ "On day ","Am Tag " },
836{ "%1 of ","%1 des Monats" }, 836{ "%1 of ","%1 des Monats" },
837{ "%1 of the year","%1 des Jahres" }, 837{ "%1 of the year","%1 des Jahres" },
838{ "Anonymous","Anonym" }, 838{ "Anonymous","Anonym" },
839{ "nobody@nowhere","niemand@nirgendwo" }, 839{ "nobody@nowhere","niemand@nirgendwo" },
840{ "calendar.html","calendar.html" }, 840{ "calendar.html","calendar.html" },
841{ "Unknown Name","Unbekannter Name" }, 841{ "Unknown Name","Unbekannter Name" },
842{ "unknown@nowhere","unbekannt@nirgendwo" }, 842{ "unknown@nowhere","unbekannt@nirgendwo" },
843{ "Beam via IR!","Beam via IR!" }, 843{ "Beam via IR!","Beam via IR!" },
844{ "Next Month","Nächster Monat" }, 844{ "Next Month","Nächster Monat" },
845{ "Prio","Prio" }, 845{ "Prio","Prio" },
846{ "Reparent Todo","Mache Sub-Todo" }, 846{ "Reparent Todo","Mache Sub-Todo" },
847{ "tomorrow","morgen" }, 847{ "tomorrow","morgen" },
848{ "today","heute" }, 848{ "today","heute" },
849{ "yesterday","gestern" }, 849{ "yesterday","gestern" },
850{ "Ok","Ok" }, 850{ "Ok","Ok" },
851{ "Ok+Agenda","Ok+Agenda" }, 851{ "Ok+Agenda","Ok+Agenda" },
852{ "Email","Email" }, 852{ "Email","Email" },
853{ "RSVP","RSVP" }, 853{ "RSVP","RSVP" },
854{ "Email:","Email:" }, 854{ "Email:","Email:" },
855{ "Appointment Time ","Termin Zeit " }, 855{ "Appointment Time ","Termin Zeit " },
856{ "2","2" }, 856{ "2","2" },
857{ "3","3" }, 857{ "3","3" },
858{ "4","4" }, 858{ "4","4" },
859{ " 0 %"," 0 %" }, 859{ " 0 %"," 0 %" },
860{ " 20 %"," 20 %" }, 860{ " 20 %"," 20 %" },
861{ " 40 %"," 40 %" }, 861{ " 40 %"," 40 %" },
862{ " 60 %"," 60 %" }, 862{ " 60 %"," 60 %" },
863{ " 80 %"," 80 %" }, 863{ " 80 %"," 80 %" },
864{ "100 %","100 %" }, 864{ "100 %","100 %" },
865{ "Filter","Filter" }, 865{ "Filter","Filter" },
866{ "Configure","Konfiguriere" }, 866{ "Configure","Konfiguriere" },
867{ "What's Next","What's Next" }, 867{ "What's Next","What's Next" },
868{ "Complete calendar...","Kompletten Kalender..." }, 868{ "Complete calendar...","Kompletten Kalender..." },
869{ "Filtered calendar...","Gefilterten Kalender..." }, 869{ "Filtered calendar...","Gefilterten Kalender..." },
870{ "Export to phone","Exportiere zum Handy" }, 870{ "Export to phone","Exportiere zum Handy" },
871{ "Beam receive enabled","Beam Empfang an" }, 871{ "Beam receive enabled","Beam Empfang an" },
872{ "What's new?","Was ist neu?" }, 872{ "What's new?","Was ist neu?" },
873{ "FAQ...","FAQ..." }, 873{ "FAQ...","FAQ..." },
874{ "Licence...","Licence..." }, 874{ "Licence...","Licence..." },
875{ "What's This?","What's This?" }, 875{ "What's This?","What's This?" },
876{ "&Edit...","&Editiere..." }, 876{ "&Edit...","&Editiere..." },
877{ "Oktober","Oktober" }, 877{ "Oktober","Oktober" },
878{ "Title","Titel" }, 878{ "Title","Titel" },
879{ "%1 %","%1 %" }, 879{ "%1 %","%1 %" },
880{ "Enable Pi-Sync","Schalte Pi-Sync an" }, 880{ "Enable Pi-Sync","Schalte Pi-Sync an" },
881{ "Import!","Importiere!" }, 881{ "Import!","Importiere!" },
882{ "inserting birthdays - close to abort!","Burzeltage werden eingefügt - schließe um abzubrechen!" }, 882{ "inserting birthdays - close to abort!","Burzeltage werden eingefügt - schließe um abzubrechen!" },
883{ "Export to phone options","Export ans Handy Optionen" }, 883{ "Export to phone options","Export ans Handy Optionen" },
884{ "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." }, 884{ "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." },
885{ "I/O device: ","I/O device: " }, 885{ "I/O device: ","I/O device: " },
886{ "Connection: ","Connection: " }, 886{ "Connection: ","Connection: " },
887{ "Model(opt.): ","Model(opt.): " }, 887{ "Model(opt.): ","Model(opt.): " },
888{ "Write back events in future only","Schreibe nur zukünftige Termine zurück" }, 888{ "Write back events in future only","Schreibe nur zukünftige Termine zurück" },
889{ "Max. weeks in future: ","Max. Wochen in der Zukunft: " }, 889{ "Max. weeks in future: ","Max. Wochen in der Zukunft: " },
890{ "NOTE: This will remove all old\ntodo/calendar data on phone!","ACHTUNG: Das löscht alle alten\nToDo/Kalender Daten auf dem Handy!" }, 890{ "NOTE: This will remove all old\ntodo/calendar data on phone!","ACHTUNG: Das löscht alle alten\nToDo/Kalender Daten auf dem Handy!" },
891{ "Export to mobile phone!","Exportiere auf das Handy!" }, 891{ "Export to mobile phone!","Exportiere auf das Handy!" },
892{ "Export complete calendar","Exportiere kompletten Kalender" }, 892{ "Export complete calendar","Exportiere kompletten Kalender" },
893{ "Writing to phone...","Sende Daten ans Handy..." }, 893{ "Writing to phone...","Sende Daten ans Handy..." },
894{ " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" }, 894{ " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" },
895{ "Retry","Nochmal versuchen" }, 895{ "Retry","Nochmal versuchen" },
896{ "KDE/Pim phone access","KDE/Pim Handy Zugriff" }, 896{ "KDE/Pim phone access","KDE/Pim Handy Zugriff" },
897{ "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" }, 897{ "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" },
898{ "Error exporting to phone!","Fehler beim Export auf das Handy!" }, 898{ "Error exporting to phone!","Fehler beim Export auf das Handy!" },
899{ "Export filtered calendar","Exportiere gefilterten Kalender" }, 899{ "Export filtered calendar","Exportiere gefilterten Kalender" },
900{ "Preferences","Vorlieben" }, 900{ "Preferences","Vorlieben" },
901{ "Global","Global" }, 901{ "Global","Global" },
902{ "Phone","Phone" }, 902{ "Phone","Phone" },
903{ "SMS","SMS" }, 903{ "SMS","SMS" },
904{ "Fax","Fax" }, 904{ "Fax","Fax" },
905{ "Pager","Pager" }, 905{ "Pager","Pager" },
906{ "SIP","SIP" }, 906{ "SIP","SIP" },
907{ "Italian","Italienisch" }, 907{ "Italian","Italienisch" },
908{ "24:00","24:00" }, 908{ "24:00","24:00" },
909{ "12:00am","12:00am" }, 909{ "12:00am","12:00am" },
910{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" }, 910{ "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" },
911{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" }, 911{ "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" },
912{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" }, 912{ "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" },
913{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" }, 913{ "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" },
914{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" }, 914{ "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" },
915{ "Add 30 min (+00:30) to selected Timezone","Addiere 30 min zur selektierten Zeitzone" }, 915{ "Add 30 min (+00:30) to selected Timezone","Addiere 30 min zur selektierten Zeitzone" },
916{ "Used Mail Client","Benutzter Mail Client" }, 916{ "Used Mail Client","Benutzter Mail Client" },
917{ "Channel:","Channel:" }, 917{ "Channel:","Channel:" },
918{ "Message:","Message:" }, 918{ "Message:","Message:" },
919{ "Parameters:","Parameter:" }, 919{ "Parameters:","Parameter:" },
920{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" }, 920{ "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" },
921{ "extra Message:","extra Message:" }, 921{ "extra Message:","extra Message:" },
922{ "extra Parameters:","extra Parameter:" }, 922{ "extra Parameters:","extra Parameter:" },
923{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" }, 923{ "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" },
924{ "External Apps.","Externe Appl." }, 924{ "External Apps.","Externe Appl." },
925{ "24 hours","24 Std." }, 925{ "24 hours","24 Std." },
926{ "3 hours","3 Std." }, 926{ "3 hours","3 Std." },
927{ "1 hour","1 Std." }, 927{ "1 hour","1 Std." },
928{ "15 minutes","15 Min." }, 928{ "15 minutes","15 Min." },
929{ "5 minutes","5 Min." }, 929{ "5 minutes","5 Min." },
930{ "1 minute","1 Min." }, 930{ "1 minute","1 Min." },
931{ "23","23" }, 931{ "23","23" },
932{ "Mon 15","Mon 15" }, 932{ "Mon 15","Mon 15" },
933{ "Configure KO","Konfiguriere KO" }, 933{ "Configure KO","Konfiguriere KO" },
934{ "Event text","Termin Text" }, 934{ "Event text","Termin Text" },
935{ "ToDo","ToDo" }, 935{ "ToDo","ToDo" },
936{ "Today","Heute" }, 936{ "Today","Heute" },
937{ "What's Next View","What's Next Ansicht" }, 937{ "What's Next View","What's Next Ansicht" },
938{ "Show Sync Events in \nWhat's Next/Agenda view","Zeige Sync Termine in \nWhat's Next/Agenda view" }, 938{ "Show Sync Events in \nWhat's Next/Agenda view","Zeige Sync Termine in \nWhat's Next/Agenda view" },
939{ "Use short date in \nWhat's Next/Event view","Zeige Kurzdatum in \nWhat's Next/Event view" }, 939{ "Use short date in \nWhat's Next/Event view","Zeige Kurzdatum in \nWhat's Next/Event view" },
940{ "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" }, 940{ "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" },
941{ "Alarm","Alarm" }, 941{ "Alarm","Alarm" },
942{ "Used %1 Client","Benutzter %1 Client" }, 942{ "Used %1 Client","Benutzter %1 Client" },
943{ "No email client installed","Kein Email Klient installiert" }, 943{ "No email client installed","Kein Email Klient installiert" },
944{ "Userdefined email client","Benutzerdef. Email Klient" }, 944{ "Userdefined email client","Benutzerdef. Email Klient" },
945{ "OM/Pi email client","OM/Pi Email Klient" }, 945{ "OM/Pi email client","OM/Pi Email Klient" },
946{ "Include in multiple ","Beziehe in multiple " }, 946{ "Include in multiple ","Beziehe in multiple " },
947{ "calendar ","Kalender " }, 947{ "calendar ","Kalender " },
948{ "addressbook ","Adressbuch " }, 948{ "addressbook ","Adressbuch " },
949{ "pwmanager","PWmanager" }, 949{ "pwmanager","PWmanager" },
950{ " sync"," Sync ein" }, 950{ " sync"," Sync ein" },
951{ "Write back synced data","Schreibe gesyncte Daten zurück" }, 951{ "Write back synced data","Schreibe gesyncte Daten zurück" },
952{ "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, 952{ "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" },
953{ "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, 953{ "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" },
954{ "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, 954{ "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " },
955{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, 955{ "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" },
956{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, 956{ "Mobile device (cell phone)","Mobiles Gerät (Handy)" },
957{ "Help...","Hilfe..." }, 957{ "Help...","Hilfe..." },
958{ "Local file Cal:","Lokale Datei Kal:" }, 958{ "Local file Cal:","Lokale Datei Kal:" },
959{ "Local file ABook:","Lokale Datei ABuch:" }, 959{ "Local file ABook:","Lokale Datei ABuch:" },
960{ "Local file PWMgr:","Lokale Datei PWMgr:" }, 960{ "Local file PWMgr:","Lokale Datei PWMgr:" },
961{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, 961{ "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" },
962{ "Calendar:","Kalender:" }, 962{ "Calendar:","Kalender:" },
963{ "AddressBook:","AdressBuch:" }, 963{ "AddressBook:","AdressBuch:" },
964{ "PWManager:","PWManager:" }, 964{ "PWManager:","PWManager:" },
965{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, 965{ "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" },
966{ "ssh/scp","ssh/scp" }, 966{ "ssh/scp","ssh/scp" },
967{ "ftp","ftp" }, 967{ "ftp","ftp" },
968{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, 968{ "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" },
969{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, 969{ "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" },
970{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, 970{ "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" },
971{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, 971{ "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" },
972{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, 972{ "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" },
973{ "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, 973{ "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" },
974{ "KDE-Pim sync config","KDE-Pim sync Konfig" }, 974{ "KDE-Pim sync config","KDE-Pim sync Konfig" },
975{ "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, 975{ "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" },
976{ "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, 976{ "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" },
977{ "Port number (Default: %1)","Port Nummer (Default: %1)" }, 977{ "Port number (Default: %1)","Port Nummer (Default: %1)" },
978{ "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, 978{ "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" },
979{ "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, 979{ "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" },
980{ "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, 980{ "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" },
981{ "Enter port for Pi-Sync","Gib Port für Pi-Sync ein" }, 981{ "Enter port for Pi-Sync","Gib Port für Pi-Sync ein" },
982{ "Disable Pi-Sync","Schalte Pi-Sync ab" }, 982{ "Disable Pi-Sync","Schalte Pi-Sync ab" },
983{ "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen \"Multi-Syncen\"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" }, 983{ "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen \"Multi-Syncen\"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" },
984{ "KDE-Pim Sync","KDE-Pim Sync" }, 984{ "KDE-Pim Sync","KDE-Pim Sync" },
985{ "Multiple profiles","Multi-Sync Profile" }, 985{ "Multiple profiles","Multi-Sync Profile" },
986{ "Device: ","Gerät: " }, 986{ "Device: ","Gerät: " },
987{ "Multiple sync started.","Multi-Sync gestartet." }, 987{ "Multiple sync started.","Multi-Sync gestartet." },
988{ "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" }, 988{ "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" },
989{ "Turn filter on","Schalte Filter an" }, 989{ "Turn filter on","Schalte Filter an" },
990{ "Turn filter off","Schalte Filter ab" }, 990{ "Turn filter off","Schalte Filter ab" },
991{ "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" }, 991{ "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" },
992{ "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" }, 992{ "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" },
993{ "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" }, 993{ "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" },
994{ "<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n","<p><b>Schwarz</b>: Termin/Todo mit Teilnehmern. Sie sind der Organisator!</p>\n" }, 994{ "<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n","<p><b>Schwarz</b>: Termin/Todo mit Teilnehmern. Sie sind der Organisator!</p>\n" },
995{ "<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n","<p><b>Dunkelgrün</b>: Information(Beschreibung) verfügbar.([i] in WN Anzeige)</p>\n" }, 995{ "<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n","<p><b>Dunkelgrün</b>: Information(Beschreibung) verfügbar.([i] in WN Anzeige)</p>\n" },
996{ "<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n","<p><b>Blau</b>: Wiederholender Termin.([r] in Whats'Next Anzeige)</p>\n" }, 996{ "<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n","<p><b>Blau</b>: Wiederholender Termin.([r] in Whats'Next Anzeige)</p>\n" },
997{ "<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n","<p><b>Rot</b>: Alarm gesetzt.([a] in Whats'Next Anzeige)</p>\n" }, 997{ "<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n","<p><b>Rot</b>: Alarm gesetzt.([a] in Whats'Next Anzeige)</p>\n" },
998{ "<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n","<p><b>Kreuz</b>: Eintrag gecancelt.([c] in Whats'Next Anzeige)</p>\n" }, 998{ "<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n","<p><b>Kreuz</b>: Eintrag gecancelt.([c] in Whats'Next Anzeige)</p>\n" },
999{ "<p><b>(for square icons in agenda and month view)</b></p>\n","<p><b>(für quadratische Icons in Agenda und Monats Anzeige)</b></p>\n" }, 999{ "<p><b>(for square icons in agenda and month view)</b></p>\n","<p><b>(für quadratische Icons in Agenda und Monats Anzeige)</b></p>\n" },
1000{ "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" }, 1000{ "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" },
1001{ "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" }, 1001{ "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" },
1002{ "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Anzeige.</p>\n" }, 1002{ "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Anzeige.</p>\n" },
1003{ "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" }, 1003{ "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" },
1004{ "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" }, 1004{ "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" },
1005{ "<p><b>shift+up/down</b>: Goto first/last item</p>\n","<p><b>shift+up/down</b>: Gehe zum ersten/letzten Eintrag</p>\n" }, 1005{ "<p><b>shift+up/down</b>: Goto first/last item</p>\n","<p><b>shift+up/down</b>: Gehe zum ersten/letzten Eintrag</p>\n" },
1006{ "<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n","<p><b>ctrl+up/down</b>: Gehe hoch/runter 20% aller Einträge</p>\n" }, 1006{ "<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n","<p><b>ctrl+up/down</b>: Gehe hoch/runter 20% aller Einträge</p>\n" },
1007{ "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" }, 1007{ "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" },
1008{ "<p><b>return+shift</b>: Deselect item+one step down</p>\n","<p><b>return+shift</b>: Deselektiere Item+Cursor einen Eintrag runter</p>\n" }, 1008{ "<p><b>return+shift</b>: Deselect item+one step down</p>\n","<p><b>return+shift</b>: Deselektiere Item+Cursor einen Eintrag runter</p>\n" },
1009{ "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" }, 1009{ "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" },
1010{ "<p><b>I</b>: Show info of current item+one step down.</p>\n","<p><b>I</b>: Zeige Detail-Ansicht vom sel.Eintrag+Cursor einen Eintrag runter.</p>\n" }, 1010{ "<p><b>I</b>: Show info of current item+one step down.</p>\n","<p><b>I</b>: Zeige Detail-Ansicht vom sel.Eintrag+Cursor einen Eintrag runter.</p>\n" },
1011{ "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Anzeige:</h3></p>\n" }, 1011{ "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Anzeige:</h3></p>\n" },
1012{ "<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n","<p><b>return+shift</b>: Markiere Todo als nicht erledigt+Cursor einen Eintrag runter</p>\n" }, 1012{ "<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n","<p><b>return+shift</b>: Markiere Todo als nicht erledigt+Cursor einen Eintrag runter</p>\n" },
1013{ "<p><b>return</b>: Mark item as completed+one step down.</p>\n","<p><b>return</b>: Markiere Todo als erledigt+Cursor einen Eintrag runter.</p>\n" }, 1013{ "<p><b>return</b>: Mark item as completed+one step down.</p>\n","<p><b>return</b>: Markiere Todo als erledigt+Cursor einen Eintrag runter.</p>\n" },
1014{ "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" }, 1014{ "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" },
1015{ "<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n","<p><b>shift+P</b>: Mache Todo zum neuen <b>P</b>arent Todo für das Todo, welches mit shift+Sselektiert wurde.</p>\n" }, 1015{ "<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n","<p><b>shift+P</b>: Mache Todo zum neuen <b>P</b>arent Todo für das Todo, welches mit shift+Sselektiert wurde.</p>\n" },
1016{ "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" }, 1016{ "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" },
1017{ "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" }, 1017{ "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" },
1018{ "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" }, 1018{ "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" },
1019{ "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Anzeige</p>\n" }, 1019{ "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Anzeige</p>\n" },
1020{ "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Anzeige</p>\n" }, 1020{ "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Anzeige</p>\n" },
1021{ "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Anzeige:</h3></p>\n" }, 1021{ "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Anzeige:</h3></p>\n" },
1022{ "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" }, 1022{ "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" },
1023{ "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" }, 1023{ "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" },
1024{ "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" }, 1024{ "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" },
1025{ "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" }, 1025{ "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" },
1026{ "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Anzeige</p>\n" }, 1026{ "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Anzeige</p>\n" },
1027{ "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" }, 1027{ "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" },
1028{ "<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X</b>: Zeige/verstecke Datenavigator</p>\n" }, 1028{ "<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X</b>: Zeige/verstecke Datenavigator</p>\n" },
1029{ "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" }, 1029{ "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" },
1030{ "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" }, 1030{ "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" },
1031{ "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monats Ansicht</p>\n" }, 1031{ "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monats Ansicht</p>\n" },
1032{ "<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n","<p><b>Z,Y</b>: Arbeitswochen Ansicht | <b>U</b>: Wochen Ansicht</p>\n" }, 1032{ "<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n","<p><b>Z,Y</b>: Arbeitswochen Ansicht | <b>U</b>: Wochen Ansicht</p>\n" },
1033{ "<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n","<p><b>V</b>: Todo Ansicht | <b>L</b>: Termin Listen Ansicht</p>\n" }, 1033{ "<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n","<p><b>V</b>: Todo Ansicht | <b>L</b>: Termin Listen Ansicht</p>\n" },
1034{ "<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ","<p><b>N</b>: Nächste-Tage Ansicht days view| <b>W</b>: What's next Ansicht\n " }, 1034{ "<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ","<p><b>N</b>: Nächste-Tage Ansicht days view| <b>W</b>: What's next Ansicht\n " },
1035{ "<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n","<p><b>1-0</b> (+<b>ctrl</b>): Selektiere Filter 1-10 (11-20)</p>\n" }, 1035{ "<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n","<p><b>1-0</b> (+<b>ctrl</b>): Selektiere Filter 1-10 (11-20)</p>\n" },
1036{ "<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n","<p><b>O</b>: Filter An/Aus | <b>J</b>: Journal Ansicht</p>\n" }, 1036{ "<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n","<p><b>O</b>: Filter An/Aus | <b>J</b>: Journal Ansicht</p>\n" },
1037{ "<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n","<p><b>F</b>: Zeige/verstecke Filter Ansicht |<b>F+ctrl</b>: Editiere Filter </p>\n" }, 1037{ "<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n","<p><b>F</b>: Zeige/verstecke Filter Ansicht |<b>F+ctrl</b>: Editiere Filter </p>\n" },
1038{ "<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n","<p><b>Space</b>: Zeige fullscreen | <b>P</b>: Datums Picker</p>\n" }, 1038{ "<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n","<p><b>Space</b>: Zeige fullscreen | <b>P</b>: Datums Picker</p>\n" },
1039{ "<p><b>I</b>: Show info for selected event/todo</p>\n","<p><b>I</b>: Zeige Info (Details) für selektiertes Item</p>\n" }, 1039{ "<p><b>I</b>: Show info for selected event/todo</p>\n","<p><b>I</b>: Zeige Info (Details) für selektiertes Item</p>\n" },
1040{ "<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n","<p><b>H</b>: Dieser Hilfe Dialog | <b>S</b>: Such Dialog</p>\n" }, 1040{ "<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n","<p><b>H</b>: Dieser Hilfe Dialog | <b>S</b>: Such Dialog</p>\n" },
1041{ "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" }, 1041{ "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" },
1042{ "After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configureable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n","Nachdem etwas geändert wurde, werden die\nDaten automatisch in die Datei abgespeichert\n~/kdepim/apps/korganizer/mycalendar.ics\nnach (konfigurierbar) drei Minuten.\nAus Sicherheitsgründen wird noch einmal\nnach 10 Min. abgespeichert, wenn keine\nÄnderungen vorgenommen wurden. Die \nDaten werden automatisch gespeichert,\nwenn KO/Pi beendet wird.\nSie können eine Backup-Datei erstellen im\nMenu: Datei - Speichere Kalender Backup\n" }, 1042{ "After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configureble) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n","Nachdem etwas geändert wurde, werden die\nDaten automatisch in die Datei abgespeichert\n~/kdepim/apps/korganizer/mycalendar.ics\nnach (konfigurierbar) drei Minuten.\nAus Sicherheitsgründen wird noch einmal\nnach 10 Min. abgespeichert, wenn keine\nÄnderungen vorgenommen wurden. Die \nDaten werden automatisch gespeichert,\nwenn KO/Pi beendet wird.\nSie können eine Backup-Datei erstellen im\nMenu: Datei - Speichere Kalender Backup\n" },
1043{ "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" }, 1043{ "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" },
1044{ "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" }, 1044{ "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" },
1045{ "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" }, 1045{ "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" },
1046{ "\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.net\n" }, 1046{ "\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.net\n" },
1047{ "2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n","2) Ein Audio Alarm Daemon\nfür den Zaurus ist verfügbar\nals zusätzliche Anwendung\n" }, 1047{ "2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n","2) Ein Audio Alarm Daemon\nfür den Zaurus ist verfügbar\nals zusätzliche Anwendung\n" },
1048{ "1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n","1) Importieren von *.vcs oder *.ics Dateien von\nanderen Anwendungen kann möglicherweise\n nicht richtig funktionieren,\nwenn die Termine Eigenschaften haben,\ndie KO/Pi nicht unterstützt.\n" }, 1048{ "1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n","1) Importieren von *.vcs oder *.ics Dateien von\nanderen Anwendungen kann möglicherweise\n nicht richtig funktionieren,\nwenn die Termine Eigenschaften haben,\ndie KO/Pi nicht unterstützt.\n" },
1049{ "Known Problems in KOrganizer/Pi","Bekannte Probleme in KOrganizer/Pi" }, 1049{ "Known Problems in KOrganizer/Pi","Bekannte Probleme in KOrganizer/Pi" },
1050{ "KO/Pi FAQ","KO/Pi FAQ" }, 1050{ "KO/Pi FAQ","KO/Pi FAQ" },
1051{ "(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n","(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi basiert auf KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi ist lizensiert unter der GPL.\nKO/Pi kann kompiliert werden für\nLinux, Zaurus-PDA und Windows\nwww.korganizer.org\nwww.pi-sync.net\n" }, 1051{ "(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n","(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi basiert auf KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi ist lizensiert unter der GPL.\nKO/Pi kann kompiliert werden für\nLinux, Zaurus-PDA und Windows\nwww.korganizer.org\nwww.pi-sync.net\n" },
1052{ "PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n","PDA-Edition\nfür: Zaurus 5x00 / 7x0 / 8x0\n" }, 1052{ "PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n","PDA-Edition\nfür: Zaurus 5x00 / 7x0 / 8x0\n" },
1053{ "KOrganizer/Platform-independent\n","KOrganizer/Platform-independent\n" }, 1053{ "KOrganizer/Platform-independent\n","KOrganizer/Platform-independent\n" },
1054{ "About KOrganizer/Pi","Über KOrganizer/Pi" }, 1054{ "About KOrganizer/Pi","Über KOrganizer/Pi" },
1055{ "From: ","Von: " }, 1055{ "From: ","Von: " },
1056{ "Remove sync info","Entferne Sync Info" }, 1056{ "Remove sync info","Entferne Sync Info" },
1057{ "For all profiles","Für alle Profile" }, 1057{ "For all profiles","Für alle Profile" },
1058{ "","" }, 1058{ "","" },
1059{ "","" }, 1059{ "","" },
1060{ "","" }, 1060{ "","" },
1061{ "","" }, 1061{ "","" },
1062{ "","" }, 1062{ "","" },
1063{ "","" }, 1063{ "","" },
1064{ "","" }, 1064{ "","" },
1065{ "","" }, 1065{ "","" },
1066{ "","" }, 1066{ "","" },
1067{ "","" }, 1067{ "","" },
1068{ "","" }, 1068{ "","" },
1069{ "","" }, 1069{ "","" },
1070{ "","" }, 1070{ "","" },
1071{ "","" }, 1071{ "","" },
1072{ "","" }, 1072{ "","" },
1073{ "","" }, 1073{ "","" },
1074 1074
diff --git a/kabc/vcardformatimpl.cpp b/kabc/vcardformatimpl.cpp
index c31af46..b9fe6ff 100644
--- a/kabc/vcardformatimpl.cpp
+++ b/kabc/vcardformatimpl.cpp
@@ -1,1045 +1,1045 @@
1/* 1/*
2 This file is part of libkabc. 2 This file is part of libkabc.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21/* 21/*
22Enhanced Version of the file for platform independent KDE tools. 22Enhanced Version of the file for platform independent KDE tools.
23Copyright (c) 2004 Ulf Schenk 23Copyright (c) 2004 Ulf Schenk
24 24
25$Id$ 25$Id$
26*/ 26*/
27 27
28#include <qfile.h> 28#include <qfile.h>
29#include <qregexp.h> 29#include <qregexp.h>
30 30
31#include <kdebug.h> 31#include <kdebug.h>
32#include <kmdcodec.h> 32#include <kmdcodec.h>
33#include <kstandarddirs.h> 33#include <kstandarddirs.h>
34#include <ktempfile.h> 34#include <ktempfile.h>
35 35
36#include <VCard.h> 36#include <VCard.h>
37 37
38#include "addressbook.h" 38#include "addressbook.h"
39#include "vcardformatimpl.h" 39#include "vcardformatimpl.h"
40 40
41using namespace KABC; 41using namespace KABC;
42using namespace VCARD; 42using namespace VCARD;
43 43
44int VCardFormatImpl::debug = -1; 44int VCardFormatImpl::debug = -1;
45 45
46VCardFormatImpl::VCardFormatImpl() 46VCardFormatImpl::VCardFormatImpl()
47{ 47{
48 debug = (getenv("KABC_DEBUG") != 0); 48 debug = (getenv("KABC_DEBUG") != 0);
49} 49}
50 50
51bool VCardFormatImpl::load( Addressee &addressee, QFile *file ) 51bool VCardFormatImpl::load( Addressee &addressee, QFile *file )
52{ 52{
53 kdDebug(5700) << "VCardFormat::load()" << endl; 53 kdDebug(5700) << "VCardFormat::load()" << endl;
54 54
55 QByteArray fdata = file->readAll(); 55 QByteArray fdata = file->readAll();
56 QCString data(fdata.data(), fdata.size()+1); 56 QCString data(fdata.data(), fdata.size()+1);
57 57
58 VCardEntity e( data ); 58 VCardEntity e( data );
59 59
60 VCardListIterator it( e.cardList() ); 60 VCardListIterator it( e.cardList() );
61 61
62 if ( it.current() ) { 62 if ( it.current() ) {
63//US VCard v(*it.current()); 63//US VCard v(*it.current());
64//US loadAddressee( addressee, v ); 64//US loadAddressee( addressee, v );
65 loadAddressee( addressee, it.current() ); 65 loadAddressee( addressee, it.current() );
66 return true; 66 return true;
67 } 67 }
68 68
69 return false; 69 return false;
70} 70}
71 71
72bool VCardFormatImpl::loadAll( AddressBook *addressBook, Resource *resource, QFile *file ) 72bool VCardFormatImpl::loadAll( AddressBook *addressBook, Resource *resource, QFile *file )
73{ 73{
74 kdDebug(5700) << "VCardFormat::loadAll()" << endl; 74 kdDebug(5700) << "VCardFormat::loadAll()" << endl;
75 75
76 QByteArray fdata = file->readAll(); 76 QByteArray fdata = file->readAll();
77 QCString data(fdata.data(), fdata.size()+1); 77 QCString data(fdata.data(), fdata.size()+1);
78 78
79 VCardEntity e( data ); 79 VCardEntity e( data );
80 80
81 VCardListIterator it( e.cardList() ); 81 VCardListIterator it( e.cardList() );
82 82
83 for (; it.current(); ++it) { 83 for (; it.current(); ++it) {
84//US VCard v(*it.current()); 84//US VCard v(*it.current());
85 Addressee addressee; 85 Addressee addressee;
86//US loadAddressee( addressee, v ); 86//US loadAddressee( addressee, v );
87 loadAddressee( addressee, it.current() ); 87 loadAddressee( addressee, it.current() );
88 addressee.setResource( resource ); 88 addressee.setResource( resource );
89 addressBook->insertAddressee( addressee ); 89 addressBook->insertAddressee( addressee );
90 if (debug == true) 90 if (debug == true)
91 { 91 {
92 printf("address %s loaded successfully\n", addressee.formattedName().latin1()); 92 printf("address %s loaded successfully\n", addressee.formattedName().latin1());
93 } 93 }
94 } 94 }
95 95
96 return true; 96 return true;
97} 97}
98 98
99void VCardFormatImpl::save( const Addressee &addressee, QFile *file ) 99void VCardFormatImpl::save( const Addressee &addressee, QFile *file )
100{ 100{
101 VCardEntity vcards; 101 VCardEntity vcards;
102 VCardList vcardlist; 102 VCardList vcardlist;
103 vcardlist.setAutoDelete( true ); 103 vcardlist.setAutoDelete( true );
104 104
105 VCard *v = new VCard; 105 VCard *v = new VCard;
106 106
107 saveAddressee( addressee, v, false ); 107 saveAddressee( addressee, v, false );
108 108
109 vcardlist.append( v ); 109 vcardlist.append( v );
110 vcards.setCardList( vcardlist ); 110 vcards.setCardList( vcardlist );
111 111
112 QCString vcardData = vcards.asString(); 112 QCString vcardData = vcards.asString();
113 file->writeBlock( (const char*)vcardData, vcardData.length() ); 113 file->writeBlock( (const char*)vcardData, vcardData.length() );
114} 114}
115 115
116void VCardFormatImpl::saveAll( AddressBook *ab, Resource *resource, QFile *file ) 116void VCardFormatImpl::saveAll( AddressBook *ab, Resource *resource, QFile *file )
117{ 117{
118 VCardEntity vcards; 118 VCardEntity vcards;
119 VCardList vcardlist; 119 VCardList vcardlist;
120 vcardlist.setAutoDelete( true ); 120 vcardlist.setAutoDelete( true );
121 121
122 AddressBook::Iterator it; 122 AddressBook::Iterator it;
123 for ( it = ab->begin(); it != ab->end(); ++it ) { 123 for ( it = ab->begin(); it != ab->end(); ++it ) {
124 if ( (*it).resource() == resource ) { 124 if ( (*it).resource() == resource ) {
125 VCard *v = new VCard; 125 VCard *v = new VCard;
126 saveAddressee( (*it), v, false ); 126 saveAddressee( (*it), v, true );
127 (*it).setChanged( false ); 127 (*it).setChanged( false );
128 vcardlist.append( v ); 128 vcardlist.append( v );
129 } 129 }
130 } 130 }
131 131
132 vcards.setCardList( vcardlist ); 132 vcards.setCardList( vcardlist );
133 133
134 QCString vcardData = vcards.asString(); 134 QCString vcardData = vcards.asString();
135 file->writeBlock( (const char*)vcardData, vcardData.length() ); 135 file->writeBlock( (const char*)vcardData, vcardData.length() );
136} 136}
137 137
138bool VCardFormatImpl::loadAddressee( Addressee& addressee, VCard *v ) 138bool VCardFormatImpl::loadAddressee( Addressee& addressee, VCard *v )
139{ 139{
140 QPtrList<ContentLine> contentLines = v->contentLineList(); 140 QPtrList<ContentLine> contentLines = v->contentLineList();
141 ContentLine *cl; 141 ContentLine *cl;
142 142
143 for( cl = contentLines.first(); cl; cl = contentLines.next() ) { 143 for( cl = contentLines.first(); cl; cl = contentLines.next() ) {
144 QCString n = cl->name(); 144 QCString n = cl->name();
145 if ( n.left( 2 ) == "X-" ) { 145 if ( n.left( 2 ) == "X-" ) {
146 n = n.mid( 2 ); 146 n = n.mid( 2 );
147 int posDash = n.find( "-" ); 147 int posDash = n.find( "-" );
148 addressee.insertCustom( QString::fromUtf8( n.left( posDash ) ), 148 addressee.insertCustom( QString::fromUtf8( n.left( posDash ) ),
149 QString::fromUtf8( n.mid( posDash + 1 ) ), 149 QString::fromUtf8( n.mid( posDash + 1 ) ),
150 QString::fromUtf8( cl->value()->asString() ) ); 150 QString::fromUtf8( cl->value()->asString() ) );
151 continue; 151 continue;
152 } 152 }
153 153
154 EntityType type = cl->entityType(); 154 EntityType type = cl->entityType();
155 switch( type ) { 155 switch( type ) {
156 156
157 case EntityUID: 157 case EntityUID:
158 addressee.setUid( readTextValue( cl ) ); 158 addressee.setUid( readTextValue( cl ) );
159 break; 159 break;
160 160
161 case EntityEmail: 161 case EntityEmail:
162 addressee.insertEmail( readTextValue( cl ) ); 162 addressee.insertEmail( readTextValue( cl ) );
163 break; 163 break;
164 164
165 case EntityName: 165 case EntityName:
166 addressee.setName( readTextValue( cl ) ); 166 addressee.setName( readTextValue( cl ) );
167 break; 167 break;
168 168
169 case EntityFullName: 169 case EntityFullName:
170 addressee.setFormattedName( readTextValue( cl ) ); 170 addressee.setFormattedName( readTextValue( cl ) );
171 break; 171 break;
172 172
173 case EntityURL: 173 case EntityURL:
174 addressee.setUrl( KURL( readTextValue( cl ) ) ); 174 addressee.setUrl( KURL( readTextValue( cl ) ) );
175 break; 175 break;
176 176
177 case EntityNickname: 177 case EntityNickname:
178 addressee.setNickName( readTextValue( cl ) ); 178 addressee.setNickName( readTextValue( cl ) );
179 break; 179 break;
180 180
181 case EntityLabel: 181 case EntityLabel:
182 // not yet supported by kabc 182 // not yet supported by kabc
183 break; 183 break;
184 184
185 case EntityMailer: 185 case EntityMailer:
186 addressee.setMailer( readTextValue( cl ) ); 186 addressee.setMailer( readTextValue( cl ) );
187 break; 187 break;
188 188
189 case EntityTitle: 189 case EntityTitle:
190 addressee.setTitle( readTextValue( cl ) ); 190 addressee.setTitle( readTextValue( cl ) );
191 break; 191 break;
192 192
193 case EntityRole: 193 case EntityRole:
194 addressee.setRole( readTextValue( cl ) ); 194 addressee.setRole( readTextValue( cl ) );
195 break; 195 break;
196 196
197 case EntityOrganisation: 197 case EntityOrganisation:
198 addressee.setOrganization( readTextValue( cl ) ); 198 addressee.setOrganization( readTextValue( cl ) );
199 break; 199 break;
200 200
201 case EntityNote: 201 case EntityNote:
202 addressee.setNote( readTextValue( cl ) ); 202 addressee.setNote( readTextValue( cl ) );
203 break; 203 break;
204 204
205 case EntityProductID: 205 case EntityProductID:
206 addressee.setProductId( readTextValue( cl ) ); 206 addressee.setProductId( readTextValue( cl ) );
207 break; 207 break;
208 208
209 case EntitySortString: 209 case EntitySortString:
210 addressee.setSortString( readTextValue( cl ) ); 210 addressee.setSortString( readTextValue( cl ) );
211 break; 211 break;
212 212
213 case EntityN: 213 case EntityN:
214 readNValue( cl, addressee ); 214 readNValue( cl, addressee );
215 break; 215 break;
216 216
217 case EntityAddress: 217 case EntityAddress:
218 addressee.insertAddress( readAddressValue( cl ) ); 218 addressee.insertAddress( readAddressValue( cl ) );
219 break; 219 break;
220 220
221 case EntityTelephone: 221 case EntityTelephone:
222 addressee.insertPhoneNumber( readTelephoneValue( cl ) ); 222 addressee.insertPhoneNumber( readTelephoneValue( cl ) );
223 break; 223 break;
224 224
225 case EntityCategories: 225 case EntityCategories:
226 addressee.setCategories( QStringList::split( ",", readTextValue( cl ) ) ); 226 addressee.setCategories( QStringList::split( ",", readTextValue( cl ) ) );
227 break; 227 break;
228 228
229 case EntityBirthday: 229 case EntityBirthday:
230 addressee.setBirthday( readDateValue( cl ) ); 230 addressee.setBirthday( readDateValue( cl ) );
231 break; 231 break;
232 232
233 case EntityRevision: 233 case EntityRevision:
234 addressee.setRevision( readDateTimeValue( cl ) ); 234 addressee.setRevision( readDateTimeValue( cl ) );
235 break; 235 break;
236 236
237 case EntityGeo: 237 case EntityGeo:
238 addressee.setGeo( readGeoValue( cl ) ); 238 addressee.setGeo( readGeoValue( cl ) );
239 break; 239 break;
240 240
241 case EntityTimeZone: 241 case EntityTimeZone:
242 addressee.setTimeZone( readUTCValue( cl ) ); 242 addressee.setTimeZone( readUTCValue( cl ) );
243 break; 243 break;
244 244
245 case EntityVersion: 245 case EntityVersion:
246 break; 246 break;
247 247
248 case EntityClass: 248 case EntityClass:
249 addressee.setSecrecy( readClassValue( cl ) ); 249 addressee.setSecrecy( readClassValue( cl ) );
250 break; 250 break;
251 251
252 case EntityKey: 252 case EntityKey:
253 addressee.insertKey( readKeyValue( cl ) ); 253 addressee.insertKey( readKeyValue( cl ) );
254 break; 254 break;
255 255
256 case EntityPhoto: 256 case EntityPhoto:
257 addressee.setPhoto( readPictureValue( cl, EntityPhoto, addressee ) ); 257 addressee.setPhoto( readPictureValue( cl, EntityPhoto, addressee ) );
258 break; 258 break;
259 259
260 case EntityLogo: 260 case EntityLogo:
261 addressee.setLogo( readPictureValue( cl, EntityLogo, addressee ) ); 261 addressee.setLogo( readPictureValue( cl, EntityLogo, addressee ) );
262 break; 262 break;
263 263
264 case EntityAgent: 264 case EntityAgent:
265 addressee.setAgent( readAgentValue( cl ) ); 265 addressee.setAgent( readAgentValue( cl ) );
266 break; 266 break;
267 267
268 case EntitySound: 268 case EntitySound:
269 addressee.setSound( readSoundValue( cl, addressee ) ); 269 addressee.setSound( readSoundValue( cl, addressee ) );
270 break; 270 break;
271 271
272 default: 272 default:
273 kdDebug(5700) << "VCardFormat::load(): Unsupported entity: " 273 kdDebug(5700) << "VCardFormat::load(): Unsupported entity: "
274 << int( type ) << ": " << cl->asString() << endl; 274 << int( type ) << ": " << cl->asString() << endl;
275 qDebug("VCardFormat::load(): Unsupported entity: %i: %s ", int(type), (const char*)cl->asString()); 275 qDebug("VCardFormat::load(): Unsupported entity: %i: %s ", int(type), (const char*)cl->asString());
276 break; 276 break;
277 } 277 }
278 } 278 }
279 279
280 for( cl = contentLines.first(); cl; cl = contentLines.next() ) { 280 for( cl = contentLines.first(); cl; cl = contentLines.next() ) {
281 EntityType type = cl->entityType(); 281 EntityType type = cl->entityType();
282 if ( type == EntityLabel ) { 282 if ( type == EntityLabel ) {
283 int type = readAddressParam( cl ); 283 int type = readAddressParam( cl );
284 Address address = addressee.address( type ); 284 Address address = addressee.address( type );
285 if ( address.isEmpty() ) 285 if ( address.isEmpty() )
286 address.setType( type ); 286 address.setType( type );
287 287
288 address.setLabel( QString::fromUtf8( cl->value()->asString() ) ); 288 address.setLabel( QString::fromUtf8( cl->value()->asString() ) );
289 addressee.insertAddress( address ); 289 addressee.insertAddress( address );
290 } 290 }
291 } 291 }
292 292
293 return true; 293 return true;
294} 294}
295 295
296void VCardFormatImpl::saveAddressee( const Addressee &addressee, VCard *v, bool intern ) 296void VCardFormatImpl::saveAddressee( const Addressee &addressee, VCard *v, bool intern )
297{ 297{
298//US ContentLine cl; 298//US ContentLine cl;
299//US QString value; 299//US QString value;
300 300
301 addTextValue( v, EntityName, addressee.name() ); 301 addTextValue( v, EntityName, addressee.name() );
302 addTextValue( v, EntityUID, addressee.uid() ); 302 addTextValue( v, EntityUID, addressee.uid() );
303 addTextValue( v, EntityFullName, addressee.formattedName() ); 303 addTextValue( v, EntityFullName, addressee.formattedName() );
304 304
305 QStringList emails = addressee.emails(); 305 QStringList emails = addressee.emails();
306 QStringList::ConstIterator it4; 306 QStringList::ConstIterator it4;
307 for( it4 = emails.begin(); it4 != emails.end(); ++it4 ) { 307 for( it4 = emails.begin(); it4 != emails.end(); ++it4 ) {
308 addTextValue( v, EntityEmail, *it4 ); 308 addTextValue( v, EntityEmail, *it4 );
309 } 309 }
310 310
311 QStringList customs = addressee.customs(); 311 QStringList customs = addressee.customs();
312 QStringList::ConstIterator it5; 312 QStringList::ConstIterator it5;
313 for( it5 = customs.begin(); it5 != customs.end(); ++it5 ) { 313 for( it5 = customs.begin(); it5 != customs.end(); ++it5 ) {
314 addCustomValue( v, *it5 ); 314 addCustomValue( v, *it5 );
315 } 315 }
316 316
317 addTextValue( v, EntityURL, addressee.url().url() ); 317 addTextValue( v, EntityURL, addressee.url().url() );
318 318
319 addNValue( v, addressee ); 319 addNValue( v, addressee );
320 320
321 addTextValue( v, EntityNickname, addressee.nickName() ); 321 addTextValue( v, EntityNickname, addressee.nickName() );
322 addTextValue( v, EntityMailer, addressee.mailer() ); 322 addTextValue( v, EntityMailer, addressee.mailer() );
323 addTextValue( v, EntityTitle, addressee.title() ); 323 addTextValue( v, EntityTitle, addressee.title() );
324 addTextValue( v, EntityRole, addressee.role() ); 324 addTextValue( v, EntityRole, addressee.role() );
325 addTextValue( v, EntityOrganisation, addressee.organization() ); 325 addTextValue( v, EntityOrganisation, addressee.organization() );
326 addTextValue( v, EntityNote, addressee.note() ); 326 addTextValue( v, EntityNote, addressee.note() );
327 addTextValue( v, EntityProductID, addressee.productId() ); 327 addTextValue( v, EntityProductID, addressee.productId() );
328 addTextValue( v, EntitySortString, addressee.sortString() ); 328 addTextValue( v, EntitySortString, addressee.sortString() );
329 329
330 Address::List addresses = addressee.addresses(); 330 Address::List addresses = addressee.addresses();
331 Address::List::ConstIterator it3; 331 Address::List::ConstIterator it3;
332 for( it3 = addresses.begin(); it3 != addresses.end(); ++it3 ) { 332 for( it3 = addresses.begin(); it3 != addresses.end(); ++it3 ) {
333 addAddressValue( v, *it3 ); 333 addAddressValue( v, *it3 );
334 addLabelValue( v, *it3 ); 334 addLabelValue( v, *it3 );
335 } 335 }
336 336
337 PhoneNumber::List phoneNumbers = addressee.phoneNumbers(); 337 PhoneNumber::List phoneNumbers = addressee.phoneNumbers();
338 PhoneNumber::List::ConstIterator it2; 338 PhoneNumber::List::ConstIterator it2;
339 for( it2 = phoneNumbers.begin(); it2 != phoneNumbers.end(); ++it2 ) { 339 for( it2 = phoneNumbers.begin(); it2 != phoneNumbers.end(); ++it2 ) {
340 addTelephoneValue( v, *it2 ); 340 addTelephoneValue( v, *it2 );
341 } 341 }
342 342
343 Key::List keys = addressee.keys(); 343 Key::List keys = addressee.keys();
344 Key::List::ConstIterator it6; 344 Key::List::ConstIterator it6;
345 for( it6 = keys.begin(); it6 != keys.end(); ++it6 ) { 345 for( it6 = keys.begin(); it6 != keys.end(); ++it6 ) {
346 addKeyValue( v, *it6 ); 346 addKeyValue( v, *it6 );
347 } 347 }
348 348
349 addTextValue( v, EntityCategories, addressee.categories().join(",") ); 349 addTextValue( v, EntityCategories, addressee.categories().join(",") );
350 350
351 addDateValue( v, EntityBirthday, addressee.birthday().date() ); 351 addDateValue( v, EntityBirthday, addressee.birthday().date() );
352 addDateTimeValue( v, EntityRevision, addressee.revision() ); 352 addDateTimeValue( v, EntityRevision, addressee.revision() );
353 addGeoValue( v, addressee.geo() ); 353 addGeoValue( v, addressee.geo() );
354 addUTCValue( v, addressee.timeZone() ); 354 addUTCValue( v, addressee.timeZone() );
355 355
356 addClassValue( v, addressee.secrecy() ); 356 addClassValue( v, addressee.secrecy() );
357 357
358 addPictureValue( v, EntityPhoto, addressee.photo(), addressee, intern ); 358 addPictureValue( v, EntityPhoto, addressee.photo(), addressee, intern );
359 addPictureValue( v, EntityLogo, addressee.logo(), addressee, intern ); 359 addPictureValue( v, EntityLogo, addressee.logo(), addressee, intern );
360 360
361 addAgentValue( v, addressee.agent() ); 361 addAgentValue( v, addressee.agent() );
362 362
363 addSoundValue( v, addressee.sound(), addressee, intern ); 363 addSoundValue( v, addressee.sound(), addressee, intern );
364} 364}
365 365
366void VCardFormatImpl::addCustomValue( VCard *v, const QString &txt ) 366void VCardFormatImpl::addCustomValue( VCard *v, const QString &txt )
367{ 367{
368 if ( txt.isEmpty() ) return; 368 if ( txt.isEmpty() ) return;
369 369
370 ContentLine cl; 370 ContentLine cl;
371 cl.setName( "X-" + txt.left( txt.find( ":" ) ).utf8() ); 371 cl.setName( "X-" + txt.left( txt.find( ":" ) ).utf8() );
372 QString value = txt.mid( txt.find( ":" ) + 1 ); 372 QString value = txt.mid( txt.find( ":" ) + 1 );
373 if ( value.isEmpty() ) 373 if ( value.isEmpty() )
374 return; 374 return;
375 cl.setValue( new TextValue( value.utf8() ) ); 375 cl.setValue( new TextValue( value.utf8() ) );
376 v->add(cl); 376 v->add(cl);
377} 377}
378 378
379void VCardFormatImpl::addTextValue( VCard *v, EntityType type, const QString &txt ) 379void VCardFormatImpl::addTextValue( VCard *v, EntityType type, const QString &txt )
380{ 380{
381 if ( txt.isEmpty() ) return; 381 if ( txt.isEmpty() ) return;
382 382
383 ContentLine cl; 383 ContentLine cl;
384 cl.setName( EntityTypeToParamName( type ) ); 384 cl.setName( EntityTypeToParamName( type ) );
385 cl.setValue( new TextValue( txt.utf8() ) ); 385 cl.setValue( new TextValue( txt.utf8() ) );
386 v->add(cl); 386 v->add(cl);
387} 387}
388 388
389void VCardFormatImpl::addDateValue( VCard *vcard, EntityType type, 389void VCardFormatImpl::addDateValue( VCard *vcard, EntityType type,
390 const QDate &date ) 390 const QDate &date )
391{ 391{
392 if ( !date.isValid() ) return; 392 if ( !date.isValid() ) return;
393 393
394 ContentLine cl; 394 ContentLine cl;
395 cl.setName( EntityTypeToParamName( type ) ); 395 cl.setName( EntityTypeToParamName( type ) );
396 396
397 DateValue *v = new DateValue( date ); 397 DateValue *v = new DateValue( date );
398 cl.setValue( v ); 398 cl.setValue( v );
399 vcard->add(cl); 399 vcard->add(cl);
400} 400}
401 401
402void VCardFormatImpl::addDateTimeValue( VCard *vcard, EntityType type, 402void VCardFormatImpl::addDateTimeValue( VCard *vcard, EntityType type,
403 const QDateTime &dateTime ) 403 const QDateTime &dateTime )
404{ 404{
405 if ( !dateTime.isValid() ) return; 405 if ( !dateTime.isValid() ) return;
406 406
407 ContentLine cl; 407 ContentLine cl;
408 cl.setName( EntityTypeToParamName( type ) ); 408 cl.setName( EntityTypeToParamName( type ) );
409 409
410 DateValue *v = new DateValue( dateTime ); 410 DateValue *v = new DateValue( dateTime );
411 cl.setValue( v ); 411 cl.setValue( v );
412 vcard->add(cl); 412 vcard->add(cl);
413} 413}
414 414
415void VCardFormatImpl::addAddressValue( VCard *vcard, const Address &a ) 415void VCardFormatImpl::addAddressValue( VCard *vcard, const Address &a )
416{ 416{
417 if ( a.isEmpty() ) 417 if ( a.isEmpty() )
418 return; 418 return;
419 419
420 ContentLine cl; 420 ContentLine cl;
421 cl.setName( EntityTypeToParamName( EntityAddress ) ); 421 cl.setName( EntityTypeToParamName( EntityAddress ) );
422 422
423 AdrValue *v = new AdrValue; 423 AdrValue *v = new AdrValue;
424 v->setPOBox( a.postOfficeBox().utf8() ); 424 v->setPOBox( a.postOfficeBox().utf8() );
425 v->setExtAddress( a.extended().utf8() ); 425 v->setExtAddress( a.extended().utf8() );
426 v->setStreet( a.street().utf8() ); 426 v->setStreet( a.street().utf8() );
427 v->setLocality( a.locality().utf8() ); 427 v->setLocality( a.locality().utf8() );
428 v->setRegion( a.region().utf8() ); 428 v->setRegion( a.region().utf8() );
429 v->setPostCode( a.postalCode().utf8() ); 429 v->setPostCode( a.postalCode().utf8() );
430 v->setCountryName( a.country().utf8() ); 430 v->setCountryName( a.country().utf8() );
431 cl.setValue( v ); 431 cl.setValue( v );
432 432
433 addAddressParam( &cl, a.type() ); 433 addAddressParam( &cl, a.type() );
434 434
435 vcard->add( cl ); 435 vcard->add( cl );
436} 436}
437 437
438void VCardFormatImpl::addLabelValue( VCard *vcard, const Address &a ) 438void VCardFormatImpl::addLabelValue( VCard *vcard, const Address &a )
439{ 439{
440 if ( a.label().isEmpty() ) return; 440 if ( a.label().isEmpty() ) return;
441 441
442 ContentLine cl; 442 ContentLine cl;
443 cl.setName( EntityTypeToParamName( EntityLabel ) ); 443 cl.setName( EntityTypeToParamName( EntityLabel ) );
444 cl.setValue( new TextValue( a.label().utf8() ) ); 444 cl.setValue( new TextValue( a.label().utf8() ) );
445 445
446 addAddressParam( &cl, a.type() ); 446 addAddressParam( &cl, a.type() );
447 447
448 vcard->add( cl ); 448 vcard->add( cl );
449} 449}
450 450
451void VCardFormatImpl::addAddressParam( ContentLine *cl, int type ) 451void VCardFormatImpl::addAddressParam( ContentLine *cl, int type )
452{ 452{
453 ParamList params; 453 ParamList params;
454 if ( type & Address::Dom ) params.append( new Param( "TYPE", "dom" ) ); 454 if ( type & Address::Dom ) params.append( new Param( "TYPE", "dom" ) );
455 if ( type & Address::Intl ) params.append( new Param( "TYPE", "intl" ) ); 455 if ( type & Address::Intl ) params.append( new Param( "TYPE", "intl" ) );
456 if ( type & Address::Parcel ) params.append( new Param( "TYPE", "parcel" ) ); 456 if ( type & Address::Parcel ) params.append( new Param( "TYPE", "parcel" ) );
457 if ( type & Address::Postal ) params.append( new Param( "TYPE", "postal" ) ); 457 if ( type & Address::Postal ) params.append( new Param( "TYPE", "postal" ) );
458 if ( type & Address::Work ) params.append( new Param( "TYPE", "work" ) ); 458 if ( type & Address::Work ) params.append( new Param( "TYPE", "work" ) );
459 if ( type & Address::Home ) params.append( new Param( "TYPE", "home" ) ); 459 if ( type & Address::Home ) params.append( new Param( "TYPE", "home" ) );
460 if ( type & Address::Pref ) params.append( new Param( "TYPE", "pref" ) ); 460 if ( type & Address::Pref ) params.append( new Param( "TYPE", "pref" ) );
461 cl->setParamList( params ); 461 cl->setParamList( params );
462} 462}
463 463
464void VCardFormatImpl::addGeoValue( VCard *vcard, const Geo &geo ) 464void VCardFormatImpl::addGeoValue( VCard *vcard, const Geo &geo )
465{ 465{
466 if ( !geo.isValid() ) return; 466 if ( !geo.isValid() ) return;
467 467
468 ContentLine cl; 468 ContentLine cl;
469 cl.setName( EntityTypeToParamName( EntityGeo ) ); 469 cl.setName( EntityTypeToParamName( EntityGeo ) );
470 470
471 GeoValue *v = new GeoValue; 471 GeoValue *v = new GeoValue;
472 v->setLatitude( geo.latitude() ); 472 v->setLatitude( geo.latitude() );
473 v->setLongitude( geo.longitude() ); 473 v->setLongitude( geo.longitude() );
474 474
475 cl.setValue( v ); 475 cl.setValue( v );
476 vcard->add(cl); 476 vcard->add(cl);
477} 477}
478 478
479void VCardFormatImpl::addUTCValue( VCard *vcard, const TimeZone &tz ) 479void VCardFormatImpl::addUTCValue( VCard *vcard, const TimeZone &tz )
480{ 480{
481 if ( !tz.isValid() ) return; 481 if ( !tz.isValid() ) return;
482 482
483 ContentLine cl; 483 ContentLine cl;
484 cl.setName( EntityTypeToParamName( EntityTimeZone ) ); 484 cl.setName( EntityTypeToParamName( EntityTimeZone ) );
485 485
486 UTCValue *v = new UTCValue; 486 UTCValue *v = new UTCValue;
487 487
488 v->setPositive( tz.offset() >= 0 ); 488 v->setPositive( tz.offset() >= 0 );
489 v->setHour( (tz.offset() / 60) * ( tz.offset() >= 0 ? 1 : -1 ) ); 489 v->setHour( (tz.offset() / 60) * ( tz.offset() >= 0 ? 1 : -1 ) );
490 v->setMinute( (tz.offset() % 60) * ( tz.offset() >= 0 ? 1 : -1 ) ); 490 v->setMinute( (tz.offset() % 60) * ( tz.offset() >= 0 ? 1 : -1 ) );
491 491
492 cl.setValue( v ); 492 cl.setValue( v );
493 vcard->add(cl); 493 vcard->add(cl);
494} 494}
495 495
496void VCardFormatImpl::addClassValue( VCard *vcard, const Secrecy &secrecy ) 496void VCardFormatImpl::addClassValue( VCard *vcard, const Secrecy &secrecy )
497{ 497{
498 ContentLine cl; 498 ContentLine cl;
499 cl.setName( EntityTypeToParamName( EntityClass ) ); 499 cl.setName( EntityTypeToParamName( EntityClass ) );
500 500
501 ClassValue *v = new ClassValue; 501 ClassValue *v = new ClassValue;
502 switch ( secrecy.type() ) { 502 switch ( secrecy.type() ) {
503 case Secrecy::Public: 503 case Secrecy::Public:
504 v->setType( (int)ClassValue::Public ); 504 v->setType( (int)ClassValue::Public );
505 break; 505 break;
506 case Secrecy::Private: 506 case Secrecy::Private:
507 v->setType( (int)ClassValue::Private ); 507 v->setType( (int)ClassValue::Private );
508 break; 508 break;
509 case Secrecy::Confidential: 509 case Secrecy::Confidential:
510 v->setType( (int)ClassValue::Confidential ); 510 v->setType( (int)ClassValue::Confidential );
511 break; 511 break;
512 } 512 }
513 513
514 cl.setValue( v ); 514 cl.setValue( v );
515 vcard->add(cl); 515 vcard->add(cl);
516} 516}
517 517
518 518
519Address VCardFormatImpl::readAddressValue( ContentLine *cl ) 519Address VCardFormatImpl::readAddressValue( ContentLine *cl )
520{ 520{
521 Address a; 521 Address a;
522 AdrValue *v = (AdrValue *)cl->value(); 522 AdrValue *v = (AdrValue *)cl->value();
523 a.setPostOfficeBox( QString::fromUtf8( v->poBox() ) ); 523 a.setPostOfficeBox( QString::fromUtf8( v->poBox() ) );
524 a.setExtended( QString::fromUtf8( v->extAddress() ) ); 524 a.setExtended( QString::fromUtf8( v->extAddress() ) );
525 a.setStreet( QString::fromUtf8( v->street() ) ); 525 a.setStreet( QString::fromUtf8( v->street() ) );
526 a.setLocality( QString::fromUtf8( v->locality() ) ); 526 a.setLocality( QString::fromUtf8( v->locality() ) );
527 a.setRegion( QString::fromUtf8( v->region() ) ); 527 a.setRegion( QString::fromUtf8( v->region() ) );
528 a.setPostalCode( QString::fromUtf8( v->postCode() ) ); 528 a.setPostalCode( QString::fromUtf8( v->postCode() ) );
529 a.setCountry( QString::fromUtf8( v->countryName() ) ); 529 a.setCountry( QString::fromUtf8( v->countryName() ) );
530 530
531 a.setType( readAddressParam( cl ) ); 531 a.setType( readAddressParam( cl ) );
532 532
533 return a; 533 return a;
534} 534}
535 535
536int VCardFormatImpl::readAddressParam( ContentLine *cl ) 536int VCardFormatImpl::readAddressParam( ContentLine *cl )
537{ 537{
538 int type = 0; 538 int type = 0;
539 ParamList params = cl->paramList(); 539 ParamList params = cl->paramList();
540 ParamListIterator it( params ); 540 ParamListIterator it( params );
541 QCString tmpStr; 541 QCString tmpStr;
542 for( ; it.current(); ++it ) { 542 for( ; it.current(); ++it ) {
543 if ( (*it)->name().upper() == "TYPE" ) { 543 if ( (*it)->name().upper() == "TYPE" ) {
544 tmpStr = (*it)->value().lower(); 544 tmpStr = (*it)->value().lower();
545 if ( tmpStr == "dom" ) type |= Address::Dom; 545 if ( tmpStr == "dom" ) type |= Address::Dom;
546 else if ( tmpStr == "intl" ) type |= Address::Intl; 546 else if ( tmpStr == "intl" ) type |= Address::Intl;
547 else if ( tmpStr == "parcel" ) type |= Address::Parcel; 547 else if ( tmpStr == "parcel" ) type |= Address::Parcel;
548 else if ( tmpStr == "postal" ) type |= Address::Postal; 548 else if ( tmpStr == "postal" ) type |= Address::Postal;
549 else if ( tmpStr == "work" ) type |= Address::Work; 549 else if ( tmpStr == "work" ) type |= Address::Work;
550 else if ( tmpStr == "home" ) type |= Address::Home; 550 else if ( tmpStr == "home" ) type |= Address::Home;
551 else if ( tmpStr == "pref" ) type |= Address::Pref; 551 else if ( tmpStr == "pref" ) type |= Address::Pref;
552 } 552 }
553 } 553 }
554 return type; 554 return type;
555} 555}
556 556
557void VCardFormatImpl::addNValue( VCard *vcard, const Addressee &a ) 557void VCardFormatImpl::addNValue( VCard *vcard, const Addressee &a )
558{ 558{
559 ContentLine cl; 559 ContentLine cl;
560 cl.setName(EntityTypeToParamName( EntityN ) ); 560 cl.setName(EntityTypeToParamName( EntityN ) );
561 NValue *v = new NValue; 561 NValue *v = new NValue;
562 v->setFamily( a.familyName().utf8() ); 562 v->setFamily( a.familyName().utf8() );
563 v->setGiven( a.givenName().utf8() ); 563 v->setGiven( a.givenName().utf8() );
564 v->setMiddle( a.additionalName().utf8() ); 564 v->setMiddle( a.additionalName().utf8() );
565 v->setPrefix( a.prefix().utf8() ); 565 v->setPrefix( a.prefix().utf8() );
566 v->setSuffix( a.suffix().utf8() ); 566 v->setSuffix( a.suffix().utf8() );
567 567
568 cl.setValue( v ); 568 cl.setValue( v );
569 vcard->add(cl); 569 vcard->add(cl);
570} 570}
571 571
572void VCardFormatImpl::readNValue( ContentLine *cl, Addressee &a ) 572void VCardFormatImpl::readNValue( ContentLine *cl, Addressee &a )
573{ 573{
574 NValue *v = (NValue *)cl->value(); 574 NValue *v = (NValue *)cl->value();
575 a.setFamilyName( QString::fromUtf8( v->family() ) ); 575 a.setFamilyName( QString::fromUtf8( v->family() ) );
576 a.setGivenName( QString::fromUtf8( v->given() ) ); 576 a.setGivenName( QString::fromUtf8( v->given() ) );
577 a.setAdditionalName( QString::fromUtf8( v->middle() ) ); 577 a.setAdditionalName( QString::fromUtf8( v->middle() ) );
578 a.setPrefix( QString::fromUtf8( v->prefix() ) ); 578 a.setPrefix( QString::fromUtf8( v->prefix() ) );
579 a.setSuffix( QString::fromUtf8( v->suffix() ) ); 579 a.setSuffix( QString::fromUtf8( v->suffix() ) );
580} 580}
581 581
582void VCardFormatImpl::addTelephoneValue( VCard *v, const PhoneNumber &p ) 582void VCardFormatImpl::addTelephoneValue( VCard *v, const PhoneNumber &p )
583{ 583{
584 if ( p.number().isEmpty() ) 584 if ( p.number().isEmpty() )
585 return; 585 return;
586 586
587 ContentLine cl; 587 ContentLine cl;
588 cl.setName(EntityTypeToParamName(EntityTelephone)); 588 cl.setName(EntityTypeToParamName(EntityTelephone));
589 cl.setValue(new TelValue( p.number().utf8() )); 589 cl.setValue(new TelValue( p.number().utf8() ));
590 590
591 ParamList params; 591 ParamList params;
592 if( p.type() & PhoneNumber::Home ) params.append( new Param( "TYPE", "home" ) ); 592 if( p.type() & PhoneNumber::Home ) params.append( new Param( "TYPE", "home" ) );
593 if( p.type() & PhoneNumber::Work ) params.append( new Param( "TYPE", "work" ) ); 593 if( p.type() & PhoneNumber::Work ) params.append( new Param( "TYPE", "work" ) );
594 if( p.type() & PhoneNumber::Msg ) params.append( new Param( "TYPE", "msg" ) ); 594 if( p.type() & PhoneNumber::Msg ) params.append( new Param( "TYPE", "msg" ) );
595 if( p.type() & PhoneNumber::Pref ) params.append( new Param( "TYPE", "pref" ) ); 595 if( p.type() & PhoneNumber::Pref ) params.append( new Param( "TYPE", "pref" ) );
596 if( p.type() & PhoneNumber::Voice ) params.append( new Param( "TYPE", "voice" ) ); 596 if( p.type() & PhoneNumber::Voice ) params.append( new Param( "TYPE", "voice" ) );
597 if( p.type() & PhoneNumber::Fax ) params.append( new Param( "TYPE", "fax" ) ); 597 if( p.type() & PhoneNumber::Fax ) params.append( new Param( "TYPE", "fax" ) );
598 if( p.type() & PhoneNumber::Cell ) params.append( new Param( "TYPE", "cell" ) ); 598 if( p.type() & PhoneNumber::Cell ) params.append( new Param( "TYPE", "cell" ) );
599 if( p.type() & PhoneNumber::Video ) params.append( new Param( "TYPE", "video" ) ); 599 if( p.type() & PhoneNumber::Video ) params.append( new Param( "TYPE", "video" ) );
600 if( p.type() & PhoneNumber::Bbs ) params.append( new Param( "TYPE", "bbs" ) ); 600 if( p.type() & PhoneNumber::Bbs ) params.append( new Param( "TYPE", "bbs" ) );
601 if( p.type() & PhoneNumber::Modem ) params.append( new Param( "TYPE", "modem" ) ); 601 if( p.type() & PhoneNumber::Modem ) params.append( new Param( "TYPE", "modem" ) );
602 if( p.type() & PhoneNumber::Car ) params.append( new Param( "TYPE", "car" ) ); 602 if( p.type() & PhoneNumber::Car ) params.append( new Param( "TYPE", "car" ) );
603 if( p.type() & PhoneNumber::Isdn ) params.append( new Param( "TYPE", "isdn" ) ); 603 if( p.type() & PhoneNumber::Isdn ) params.append( new Param( "TYPE", "isdn" ) );
604 if( p.type() & PhoneNumber::Pcs ) params.append( new Param( "TYPE", "pcs" ) ); 604 if( p.type() & PhoneNumber::Pcs ) params.append( new Param( "TYPE", "pcs" ) );
605 if( p.type() & PhoneNumber::Pager ) params.append( new Param( "TYPE", "pager" ) ); 605 if( p.type() & PhoneNumber::Pager ) params.append( new Param( "TYPE", "pager" ) );
606 if( p.type() & PhoneNumber::Sip ) params.append( new Param( "TYPE", "sip" ) ); 606 if( p.type() & PhoneNumber::Sip ) params.append( new Param( "TYPE", "sip" ) );
607 cl.setParamList( params ); 607 cl.setParamList( params );
608 608
609 v->add(cl); 609 v->add(cl);
610} 610}
611 611
612PhoneNumber VCardFormatImpl::readTelephoneValue( ContentLine *cl ) 612PhoneNumber VCardFormatImpl::readTelephoneValue( ContentLine *cl )
613{ 613{
614 PhoneNumber p; 614 PhoneNumber p;
615 TelValue *value = (TelValue *)cl->value(); 615 TelValue *value = (TelValue *)cl->value();
616 p.setNumber( QString::fromUtf8( value->asString() ) ); 616 p.setNumber( QString::fromUtf8( value->asString() ) );
617 617
618 int type = 0; 618 int type = 0;
619 ParamList params = cl->paramList(); 619 ParamList params = cl->paramList();
620 ParamListIterator it( params ); 620 ParamListIterator it( params );
621 QCString tmpStr; 621 QCString tmpStr;
622 for( ; it.current(); ++it ) { 622 for( ; it.current(); ++it ) {
623 if ( (*it)->name() == "TYPE" ) { 623 if ( (*it)->name() == "TYPE" ) {
624 tmpStr = (*it)->value().lower(); 624 tmpStr = (*it)->value().lower();
625 if ( tmpStr == "home" ) type |= PhoneNumber::Home; 625 if ( tmpStr == "home" ) type |= PhoneNumber::Home;
626 else if ( tmpStr == "work" ) type |= PhoneNumber::Work; 626 else if ( tmpStr == "work" ) type |= PhoneNumber::Work;
627 else if ( tmpStr == "msg" ) type |= PhoneNumber::Msg; 627 else if ( tmpStr == "msg" ) type |= PhoneNumber::Msg;
628 else if ( tmpStr == "pref" ) type |= PhoneNumber::Pref; 628 else if ( tmpStr == "pref" ) type |= PhoneNumber::Pref;
629 else if ( tmpStr == "voice" ) type |= PhoneNumber::Voice; 629 else if ( tmpStr == "voice" ) type |= PhoneNumber::Voice;
630 else if ( tmpStr == "fax" ) type |= PhoneNumber::Fax; 630 else if ( tmpStr == "fax" ) type |= PhoneNumber::Fax;
631 else if ( tmpStr == "cell" ) type |= PhoneNumber::Cell; 631 else if ( tmpStr == "cell" ) type |= PhoneNumber::Cell;
632 else if ( tmpStr == "video" ) type |= PhoneNumber::Video; 632 else if ( tmpStr == "video" ) type |= PhoneNumber::Video;
633 else if ( tmpStr == "bbs" ) type |= PhoneNumber::Bbs; 633 else if ( tmpStr == "bbs" ) type |= PhoneNumber::Bbs;
634 else if ( tmpStr == "modem" ) type |= PhoneNumber::Modem; 634 else if ( tmpStr == "modem" ) type |= PhoneNumber::Modem;
635 else if ( tmpStr == "car" ) type |= PhoneNumber::Car; 635 else if ( tmpStr == "car" ) type |= PhoneNumber::Car;
636 else if ( tmpStr == "isdn" ) type |= PhoneNumber::Isdn; 636 else if ( tmpStr == "isdn" ) type |= PhoneNumber::Isdn;
637 else if ( tmpStr == "pcs" ) type |= PhoneNumber::Pcs; 637 else if ( tmpStr == "pcs" ) type |= PhoneNumber::Pcs;
638 else if ( tmpStr == "pager" ) type |= PhoneNumber::Pager; 638 else if ( tmpStr == "pager" ) type |= PhoneNumber::Pager;
639 else if ( tmpStr == "sip" ) type |= PhoneNumber::Sip; 639 else if ( tmpStr == "sip" ) type |= PhoneNumber::Sip;
640 } 640 }
641 } 641 }
642 p.setType( type ); 642 p.setType( type );
643 643
644 return p; 644 return p;
645} 645}
646 646
647QString VCardFormatImpl::readTextValue( ContentLine *cl ) 647QString VCardFormatImpl::readTextValue( ContentLine *cl )
648{ 648{
649 VCARD::Value *value = cl->value(); 649 VCARD::Value *value = cl->value();
650 if ( value ) { 650 if ( value ) {
651 return QString::fromUtf8( value->asString() ); 651 return QString::fromUtf8( value->asString() );
652 } else { 652 } else {
653 kdDebug(5700) << "No value: " << cl->asString() << endl; 653 kdDebug(5700) << "No value: " << cl->asString() << endl;
654 qDebug("No value: %s", (const char*)(cl->asString())); 654 qDebug("No value: %s", (const char*)(cl->asString()));
655 return QString::null; 655 return QString::null;
656 } 656 }
657} 657}
658 658
659QDate VCardFormatImpl::readDateValue( ContentLine *cl ) 659QDate VCardFormatImpl::readDateValue( ContentLine *cl )
660{ 660{
661 DateValue *dateValue = (DateValue *)cl->value(); 661 DateValue *dateValue = (DateValue *)cl->value();
662 if ( dateValue ) 662 if ( dateValue )
663 return dateValue->qdate(); 663 return dateValue->qdate();
664 else 664 else
665 return QDate(); 665 return QDate();
666} 666}
667 667
668QDateTime VCardFormatImpl::readDateTimeValue( ContentLine *cl ) 668QDateTime VCardFormatImpl::readDateTimeValue( ContentLine *cl )
669{ 669{
670 DateValue *dateValue = (DateValue *)cl->value(); 670 DateValue *dateValue = (DateValue *)cl->value();
671 if ( dateValue ) 671 if ( dateValue )
672 return dateValue->qdt(); 672 return dateValue->qdt();
673 else 673 else
674 return QDateTime(); 674 return QDateTime();
675} 675}
676 676
677Geo VCardFormatImpl::readGeoValue( ContentLine *cl ) 677Geo VCardFormatImpl::readGeoValue( ContentLine *cl )
678{ 678{
679 GeoValue *geoValue = (GeoValue *)cl->value(); 679 GeoValue *geoValue = (GeoValue *)cl->value();
680 if ( geoValue ) { 680 if ( geoValue ) {
681 Geo geo( geoValue->latitude(), geoValue->longitude() ); 681 Geo geo( geoValue->latitude(), geoValue->longitude() );
682 return geo; 682 return geo;
683 } else 683 } else
684 return Geo(); 684 return Geo();
685} 685}
686 686
687TimeZone VCardFormatImpl::readUTCValue( ContentLine *cl ) 687TimeZone VCardFormatImpl::readUTCValue( ContentLine *cl )
688{ 688{
689 UTCValue *utcValue = (UTCValue *)cl->value(); 689 UTCValue *utcValue = (UTCValue *)cl->value();
690 if ( utcValue ) { 690 if ( utcValue ) {
691 TimeZone tz; 691 TimeZone tz;
692 tz.setOffset(((utcValue->hour()*60)+utcValue->minute())*(utcValue->positive() ? 1 : -1)); 692 tz.setOffset(((utcValue->hour()*60)+utcValue->minute())*(utcValue->positive() ? 1 : -1));
693 return tz; 693 return tz;
694 } else 694 } else
695 return TimeZone(); 695 return TimeZone();
696} 696}
697 697
698Secrecy VCardFormatImpl::readClassValue( ContentLine *cl ) 698Secrecy VCardFormatImpl::readClassValue( ContentLine *cl )
699{ 699{
700 ClassValue *classValue = (ClassValue *)cl->value(); 700 ClassValue *classValue = (ClassValue *)cl->value();
701 if ( classValue ) { 701 if ( classValue ) {
702 Secrecy secrecy; 702 Secrecy secrecy;
703 switch ( classValue->type() ) { 703 switch ( classValue->type() ) {
704 case ClassValue::Public: 704 case ClassValue::Public:
705 secrecy.setType( Secrecy::Public ); 705 secrecy.setType( Secrecy::Public );
706 break; 706 break;
707 case ClassValue::Private: 707 case ClassValue::Private:
708 secrecy.setType( Secrecy::Private ); 708 secrecy.setType( Secrecy::Private );
709 break; 709 break;
710 case ClassValue::Confidential: 710 case ClassValue::Confidential:
711 secrecy.setType( Secrecy::Confidential ); 711 secrecy.setType( Secrecy::Confidential );
712 break; 712 break;
713 } 713 }
714 714
715 return secrecy; 715 return secrecy;
716 } else 716 } else
717 return Secrecy(); 717 return Secrecy();
718} 718}
719 719
720void VCardFormatImpl::addKeyValue( VCARD::VCard *vcard, const Key &key ) 720void VCardFormatImpl::addKeyValue( VCARD::VCard *vcard, const Key &key )
721{ 721{
722 ContentLine cl; 722 ContentLine cl;
723 cl.setName( EntityTypeToParamName( EntityKey ) ); 723 cl.setName( EntityTypeToParamName( EntityKey ) );
724 724
725 ParamList params; 725 ParamList params;
726 if ( key.isBinary() ) { 726 if ( key.isBinary() ) {
727 cl.setValue( new TextValue( KCodecs::base64Encode( key.binaryData() ) ) ); 727 cl.setValue( new TextValue( KCodecs::base64Encode( key.binaryData() ) ) );
728 params.append( new Param( "ENCODING", "b" ) ); 728 params.append( new Param( "ENCODING", "b" ) );
729 } else { 729 } else {
730 cl.setValue( new TextValue( key.textData().utf8() ) ); 730 cl.setValue( new TextValue( key.textData().utf8() ) );
731 } 731 }
732 732
733 switch ( key.type() ) { 733 switch ( key.type() ) {
734 case Key::X509: 734 case Key::X509:
735 params.append( new Param( "TYPE", "X509" ) ); 735 params.append( new Param( "TYPE", "X509" ) );
736 break; 736 break;
737 case Key::PGP: 737 case Key::PGP:
738 params.append( new Param( "TYPE", "PGP" ) ); 738 params.append( new Param( "TYPE", "PGP" ) );
739 break; 739 break;
740 case Key::Custom: 740 case Key::Custom:
741 params.append( new Param( "TYPE", key.customTypeString().utf8() ) ); 741 params.append( new Param( "TYPE", key.customTypeString().utf8() ) );
742 break; 742 break;
743 } 743 }
744 744
745 cl.setParamList( params ); 745 cl.setParamList( params );
746 vcard->add( cl ); 746 vcard->add( cl );
747} 747}
748 748
749Key VCardFormatImpl::readKeyValue( VCARD::ContentLine *cl ) 749Key VCardFormatImpl::readKeyValue( VCARD::ContentLine *cl )
750{ 750{
751 Key key; 751 Key key;
752 bool isBinary = false; 752 bool isBinary = false;
753 TextValue *v = (TextValue *)cl->value(); 753 TextValue *v = (TextValue *)cl->value();
754 754
755 ParamList params = cl->paramList(); 755 ParamList params = cl->paramList();
756 ParamListIterator it( params ); 756 ParamListIterator it( params );
757 for( ; it.current(); ++it ) { 757 for( ; it.current(); ++it ) {
758 if ( (*it)->name() == "ENCODING" && (*it)->value() == "b" ) 758 if ( (*it)->name() == "ENCODING" && (*it)->value() == "b" )
759 isBinary = true; 759 isBinary = true;
760 if ( (*it)->name() == "TYPE" ) { 760 if ( (*it)->name() == "TYPE" ) {
761 if ( (*it)->value().isEmpty() ) 761 if ( (*it)->value().isEmpty() )
762 continue; 762 continue;
763 if ( (*it)->value() == "X509" ) 763 if ( (*it)->value() == "X509" )
764 key.setType( Key::X509 ); 764 key.setType( Key::X509 );
765 else if ( (*it)->value() == "PGP" ) 765 else if ( (*it)->value() == "PGP" )
766 key.setType( Key::PGP ); 766 key.setType( Key::PGP );
767 else { 767 else {
768 key.setType( Key::Custom ); 768 key.setType( Key::Custom );
769 key.setCustomTypeString( QString::fromUtf8( (*it)->value() ) ); 769 key.setCustomTypeString( QString::fromUtf8( (*it)->value() ) );
770 } 770 }
771 } 771 }
772 } 772 }
773 773
774 774
775 if ( isBinary ) { 775 if ( isBinary ) {
776 QByteArray data; 776 QByteArray data;
777 KCodecs::base64Decode( v->asString().stripWhiteSpace(), data ); 777 KCodecs::base64Decode( v->asString().stripWhiteSpace(), data );
778 key.setBinaryData( data ); 778 key.setBinaryData( data );
779 } else { 779 } else {
780 key.setTextData( QString::fromUtf8( v->asString() ) ); 780 key.setTextData( QString::fromUtf8( v->asString() ) );
781 } 781 }
782 782
783 return key; 783 return key;
784} 784}
785 785
786 786
787void VCardFormatImpl::addAgentValue( VCARD::VCard *vcard, const Agent &agent ) 787void VCardFormatImpl::addAgentValue( VCARD::VCard *vcard, const Agent &agent )
788{ 788{
789 if ( agent.isIntern() && !agent.addressee() ) 789 if ( agent.isIntern() && !agent.addressee() )
790 return; 790 return;
791 791
792 if ( !agent.isIntern() && agent.url().isEmpty() ) 792 if ( !agent.isIntern() && agent.url().isEmpty() )
793 return; 793 return;
794 794
795 ContentLine cl; 795 ContentLine cl;
796 cl.setName( EntityTypeToParamName( EntityAgent ) ); 796 cl.setName( EntityTypeToParamName( EntityAgent ) );
797 797
798 ParamList params; 798 ParamList params;
799 if ( agent.isIntern() ) { 799 if ( agent.isIntern() ) {
800 QString vstr; 800 QString vstr;
801 Addressee *addr = agent.addressee(); 801 Addressee *addr = agent.addressee();
802 if ( addr ) { 802 if ( addr ) {
803 writeToString( (*addr), vstr ); 803 writeToString( (*addr), vstr );
804 804
805 qDebug("VCardFormatImpl::addAgentValue please verify if replace is correct"); 805 qDebug("VCardFormatImpl::addAgentValue please verify if replace is correct");
806/*US 806/*US
807 vstr.replace( ":", "\\:" ); 807 vstr.replace( ":", "\\:" );
808 vstr.replace( ",", "\\," ); 808 vstr.replace( ",", "\\," );
809 vstr.replace( ";", "\\;" ); 809 vstr.replace( ";", "\\;" );
810 vstr.replace( "\r\n", "\\n" ); 810 vstr.replace( "\r\n", "\\n" );
811*/ 811*/
812 vstr.replace( QRegExp(":"), "\\:" ); 812 vstr.replace( QRegExp(":"), "\\:" );
813 vstr.replace( QRegExp(","), "\\," ); 813 vstr.replace( QRegExp(","), "\\," );
814 vstr.replace( QRegExp(";"), "\\;" ); 814 vstr.replace( QRegExp(";"), "\\;" );
815 vstr.replace( QRegExp("\r\n"), "\\n" ); 815 vstr.replace( QRegExp("\r\n"), "\\n" );
816 816
817 cl.setValue( new TextValue( vstr.utf8() ) ); 817 cl.setValue( new TextValue( vstr.utf8() ) );
818 } else 818 } else
819 return; 819 return;
820 } else { 820 } else {
821 cl.setValue( new TextValue( agent.url().utf8() ) ); 821 cl.setValue( new TextValue( agent.url().utf8() ) );
822 params.append( new Param( "VALUE", "uri" ) ); 822 params.append( new Param( "VALUE", "uri" ) );
823 } 823 }
824 824
825 cl.setParamList( params ); 825 cl.setParamList( params );
826 vcard->add( cl ); 826 vcard->add( cl );
827} 827}
828 828
829Agent VCardFormatImpl::readAgentValue( VCARD::ContentLine *cl ) 829Agent VCardFormatImpl::readAgentValue( VCARD::ContentLine *cl )
830{ 830{
831 Agent agent; 831 Agent agent;
832 bool isIntern = true; 832 bool isIntern = true;
833 TextValue *v = (TextValue *)cl->value(); 833 TextValue *v = (TextValue *)cl->value();
834 834
835 ParamList params = cl->paramList(); 835 ParamList params = cl->paramList();
836 ParamListIterator it( params ); 836 ParamListIterator it( params );
837 for( ; it.current(); ++it ) { 837 for( ; it.current(); ++it ) {
838 if ( (*it)->name() == "VALUE" && (*it)->value() == "uri" ) 838 if ( (*it)->name() == "VALUE" && (*it)->value() == "uri" )
839 isIntern = false; 839 isIntern = false;
840 } 840 }
841 841
842 if ( isIntern ) { 842 if ( isIntern ) {
843 QString vstr = QString::fromUtf8( v->asString() ); 843 QString vstr = QString::fromUtf8( v->asString() );
844 qDebug("VCardFormatImpl::addAgentValue please verify if replace is correct"); 844 qDebug("VCardFormatImpl::addAgentValue please verify if replace is correct");
845/*US 845/*US
846 vstr.replace( "\\n", "\r\n" ); 846 vstr.replace( "\\n", "\r\n" );
847 vstr.replace( "\\:", ":" ); 847 vstr.replace( "\\:", ":" );
848 vstr.replace( "\\,", "," ); 848 vstr.replace( "\\,", "," );
849 vstr.replace( "\\;", ";" ); 849 vstr.replace( "\\;", ";" );
850*/ 850*/
851 vstr.replace( QRegExp("\\\\n"), "\r\n" ); 851 vstr.replace( QRegExp("\\\\n"), "\r\n" );
852 vstr.replace( QRegExp("\\\\:"), ":" ); 852 vstr.replace( QRegExp("\\\\:"), ":" );
853 vstr.replace( QRegExp("\\\\,"), "," ); 853 vstr.replace( QRegExp("\\\\,"), "," );
854 vstr.replace( QRegExp("\\\\;"), ";" ); 854 vstr.replace( QRegExp("\\\\;"), ";" );
855 855
856 Addressee *addr = new Addressee; 856 Addressee *addr = new Addressee;
857 readFromString( vstr, *addr ); 857 readFromString( vstr, *addr );
858 agent.setAddressee( addr ); 858 agent.setAddressee( addr );
859 } else { 859 } else {
860 agent.setUrl( QString::fromUtf8( v->asString() ) ); 860 agent.setUrl( QString::fromUtf8( v->asString() ) );
861 } 861 }
862 862
863 return agent; 863 return agent;
864} 864}
865 865
866void VCardFormatImpl::addPictureValue( VCARD::VCard *vcard, VCARD::EntityType type, const Picture &pic, const Addressee &addr, bool intern ) 866void VCardFormatImpl::addPictureValue( VCARD::VCard *vcard, VCARD::EntityType type, const Picture &pic, const Addressee &addr, bool intern )
867{ 867{
868 ContentLine cl; 868 ContentLine cl;
869 cl.setName( EntityTypeToParamName( type ) ); 869 cl.setName( EntityTypeToParamName( type ) );
870 870
871 if ( pic.isIntern() && pic.data().isNull() ) 871 if ( pic.isIntern() && pic.data().isNull() )
872 return; 872 return;
873 873
874 if ( !pic.isIntern() && pic.url().isEmpty() ) 874 if ( !pic.isIntern() && pic.url().isEmpty() )
875 return; 875 return;
876 876
877 ParamList params; 877 ParamList params;
878 if ( pic.isIntern() ) { 878 if ( pic.isIntern() ) {
879 QImage img = pic.data(); 879 QImage img = pic.data();
880 if ( intern ) { // only for vCard export we really write the data inline 880 if ( intern ) { // only for vCard export we really write the data inline
881 QByteArray data; 881 QByteArray data;
882 QDataStream s( data, IO_WriteOnly ); 882 QDataStream s( data, IO_WriteOnly );
883 s.setVersion( 4 ); // to produce valid png files 883 s.setVersion( 4 ); // to produce valid png files
884 s << img; 884 s << img;
885 cl.setValue( new TextValue( KCodecs::base64Encode( data ) ) ); 885 cl.setValue( new TextValue( KCodecs::base64Encode( data ) ) );
886 886
887 } else { // save picture in cache 887 } else { // save picture in cache
888 QString dir; 888 QString dir;
889 if ( type == EntityPhoto ) 889 if ( type == EntityPhoto )
890 dir = "photos"; 890 dir = "photos";
891 if ( type == EntityLogo ) 891 if ( type == EntityLogo )
892 dir = "logos"; 892 dir = "logos";
893 893
894 img.save( locateLocal( "data", "kabc/" + dir + "/" + addr.uid() ), pic.type().utf8() ); 894 img.save( locateLocal( "data", "kabc/" + dir + "/" + addr.uid() ), pic.type().utf8() );
895 cl.setValue( new TextValue( "<dummy>" ) ); 895 cl.setValue( new TextValue( "<dummy>" ) );
896 } 896 }
897 params.append( new Param( "ENCODING", "b" ) ); 897 params.append( new Param( "ENCODING", "b" ) );
898 if ( !pic.type().isEmpty() ) 898 if ( !pic.type().isEmpty() )
899 params.append( new Param( "TYPE", pic.type().utf8() ) ); 899 params.append( new Param( "TYPE", pic.type().utf8() ) );
900 } else { 900 } else {
901 901
902 cl.setValue( new TextValue( pic.url().utf8() ) ); 902 cl.setValue( new TextValue( pic.url().utf8() ) );
903 params.append( new Param( "VALUE", "uri" ) ); 903 params.append( new Param( "VALUE", "uri" ) );
904 } 904 }
905 905
906 cl.setParamList( params ); 906 cl.setParamList( params );
907 vcard->add( cl ); 907 vcard->add( cl );
908} 908}
909 909
910Picture VCardFormatImpl::readPictureValue( VCARD::ContentLine *cl, VCARD::EntityType type, const Addressee &addr ) 910Picture VCardFormatImpl::readPictureValue( VCARD::ContentLine *cl, VCARD::EntityType type, const Addressee &addr )
911{ 911{
912 Picture pic; 912 Picture pic;
913 bool isInline = false; 913 bool isInline = false;
914 QString picType; 914 QString picType;
915 TextValue *v = (TextValue *)cl->value(); 915 TextValue *v = (TextValue *)cl->value();
916 916
917 ParamList params = cl->paramList(); 917 ParamList params = cl->paramList();
918 ParamListIterator it( params ); 918 ParamListIterator it( params );
919 for( ; it.current(); ++it ) { 919 for( ; it.current(); ++it ) {
920 if ( (*it)->name() == "ENCODING" && (*it)->value() == "b" ) 920 if ( (*it)->name() == "ENCODING" && (*it)->value() == "b" )
921 isInline = true; 921 isInline = true;
922 if ( (*it)->name() == "TYPE" && !(*it)->value().isEmpty() ) 922 if ( (*it)->name() == "TYPE" && !(*it)->value().isEmpty() )
923 picType = QString::fromUtf8( (*it)->value() ); 923 picType = QString::fromUtf8( (*it)->value() );
924 } 924 }
925 925
926 if ( isInline ) { 926 if ( isInline ) {
927 QImage img; 927 QImage img;
928 if ( v->asString() == "<dummy>" ) { // no picture inline stored => picture is in cache 928 if ( v->asString() == "<dummy>" ) { // no picture inline stored => picture is in cache
929 QString dir; 929 QString dir;
930 if ( type == EntityPhoto ) 930 if ( type == EntityPhoto )
931 dir = "photos"; 931 dir = "photos";
932 if ( type == EntityLogo ) 932 if ( type == EntityLogo )
933 dir = "logos"; 933 dir = "logos";
934 934
935 img.load( locateLocal( "data", "kabc/" + dir + "/" + addr.uid() ) ); 935 img.load( locateLocal( "data", "kabc/" + dir + "/" + addr.uid() ) );
936 } else { 936 } else {
937 QByteArray data; 937 QByteArray data;
938 KCodecs::base64Decode( v->asString(), data ); 938 KCodecs::base64Decode( v->asString(), data );
939 img.loadFromData( data ); 939 img.loadFromData( data );
940 } 940 }
941 pic.setData( img ); 941 pic.setData( img );
942 pic.setType( picType ); 942 pic.setType( picType );
943 } else { 943 } else {
944 pic.setUrl( QString::fromUtf8( v->asString() ) ); 944 pic.setUrl( QString::fromUtf8( v->asString() ) );
945 } 945 }
946 946
947 return pic; 947 return pic;
948} 948}
949 949
950void VCardFormatImpl::addSoundValue( VCARD::VCard *vcard, const Sound &sound, const Addressee &addr, bool intern ) 950void VCardFormatImpl::addSoundValue( VCARD::VCard *vcard, const Sound &sound, const Addressee &addr, bool intern )
951{ 951{
952 ContentLine cl; 952 ContentLine cl;
953 cl.setName( EntityTypeToParamName( EntitySound ) ); 953 cl.setName( EntityTypeToParamName( EntitySound ) );
954 954
955 if ( sound.isIntern() && sound.data().isNull() ) 955 if ( sound.isIntern() && sound.data().isNull() )
956 return; 956 return;
957 957
958 if ( !sound.isIntern() && sound.url().isEmpty() ) 958 if ( !sound.isIntern() && sound.url().isEmpty() )
959 return; 959 return;
960 960
961 ParamList params; 961 ParamList params;
962 if ( sound.isIntern() ) { 962 if ( sound.isIntern() ) {
963 QByteArray data = sound.data(); 963 QByteArray data = sound.data();
964 if ( intern ) { // only for vCard export we really write the data inline 964 if ( intern ) { // only for vCard export we really write the data inline
965 cl.setValue( new TextValue( KCodecs::base64Encode( data ) ) ); 965 cl.setValue( new TextValue( KCodecs::base64Encode( data ) ) );
966 } else { // save sound in cache 966 } else { // save sound in cache
967 QFile file( locateLocal( "data", "kabc/sounds/" + addr.uid() ) ); 967 QFile file( locateLocal( "data", "kabc/sounds/" + addr.uid() ) );
968 if ( file.open( IO_WriteOnly ) ) { 968 if ( file.open( IO_WriteOnly ) ) {
969 file.writeBlock( data ); 969 file.writeBlock( data );
970 } 970 }
971 cl.setValue( new TextValue( "<dummy>" ) ); 971 cl.setValue( new TextValue( "<dummy>" ) );
972 } 972 }
973 params.append( new Param( "ENCODING", "b" ) ); 973 params.append( new Param( "ENCODING", "b" ) );
974 } else { 974 } else {
975 cl.setValue( new TextValue( sound.url().utf8() ) ); 975 cl.setValue( new TextValue( sound.url().utf8() ) );
976 params.append( new Param( "VALUE", "uri" ) ); 976 params.append( new Param( "VALUE", "uri" ) );
977 } 977 }
978 978
979 cl.setParamList( params ); 979 cl.setParamList( params );
980 vcard->add( cl ); 980 vcard->add( cl );
981} 981}
982 982
983Sound VCardFormatImpl::readSoundValue( VCARD::ContentLine *cl, const Addressee &addr ) 983Sound VCardFormatImpl::readSoundValue( VCARD::ContentLine *cl, const Addressee &addr )
984{ 984{
985 Sound sound; 985 Sound sound;
986 bool isInline = false; 986 bool isInline = false;
987 TextValue *v = (TextValue *)cl->value(); 987 TextValue *v = (TextValue *)cl->value();
988 988
989 ParamList params = cl->paramList(); 989 ParamList params = cl->paramList();
990 ParamListIterator it( params ); 990 ParamListIterator it( params );
991 for( ; it.current(); ++it ) { 991 for( ; it.current(); ++it ) {
992 if ( (*it)->name() == "ENCODING" && (*it)->value() == "b" ) 992 if ( (*it)->name() == "ENCODING" && (*it)->value() == "b" )
993 isInline = true; 993 isInline = true;
994 } 994 }
995 995
996 if ( isInline ) { 996 if ( isInline ) {
997 QByteArray data; 997 QByteArray data;
998 if ( v->asString() == "<dummy>" ) { // no sound inline stored => sound is in cache 998 if ( v->asString() == "<dummy>" ) { // no sound inline stored => sound is in cache
999 QFile file( locateLocal( "data", "kabc/sounds/" + addr.uid() ) ); 999 QFile file( locateLocal( "data", "kabc/sounds/" + addr.uid() ) );
1000 if ( file.open( IO_ReadOnly ) ) { 1000 if ( file.open( IO_ReadOnly ) ) {
1001 data = file.readAll(); 1001 data = file.readAll();
1002 file.close(); 1002 file.close();
1003 } 1003 }
1004 } else { 1004 } else {
1005 KCodecs::base64Decode( v->asString(), data ); 1005 KCodecs::base64Decode( v->asString(), data );
1006 } 1006 }
1007 sound.setData( data ); 1007 sound.setData( data );
1008 } else { 1008 } else {
1009 sound.setUrl( QString::fromUtf8( v->asString() ) ); 1009 sound.setUrl( QString::fromUtf8( v->asString() ) );
1010 } 1010 }
1011 1011
1012 return sound; 1012 return sound;
1013} 1013}
1014 1014
1015bool VCardFormatImpl::readFromString( const QString &vcard, Addressee &addressee ) 1015bool VCardFormatImpl::readFromString( const QString &vcard, Addressee &addressee )
1016{ 1016{
1017 VCardEntity e( vcard.utf8() ); 1017 VCardEntity e( vcard.utf8() );
1018 VCardListIterator it( e.cardList() ); 1018 VCardListIterator it( e.cardList() );
1019 1019
1020 if ( it.current() ) { 1020 if ( it.current() ) {
1021//US VCard v(*it.current()); 1021//US VCard v(*it.current());
1022//US loadAddressee( addressee, v ); 1022//US loadAddressee( addressee, v );
1023 loadAddressee( addressee, it.current() ); 1023 loadAddressee( addressee, it.current() );
1024 return true; 1024 return true;
1025 } 1025 }
1026 1026
1027 return false; 1027 return false;
1028} 1028}
1029 1029
1030bool VCardFormatImpl::writeToString( const Addressee &addressee, QString &vcard ) 1030bool VCardFormatImpl::writeToString( const Addressee &addressee, QString &vcard )
1031{ 1031{
1032 VCardEntity vcards; 1032 VCardEntity vcards;
1033 VCardList vcardlist; 1033 VCardList vcardlist;
1034 vcardlist.setAutoDelete( true ); 1034 vcardlist.setAutoDelete( true );
1035 1035
1036 VCard *v = new VCard; 1036 VCard *v = new VCard;
1037 1037
1038 saveAddressee( addressee, v, true ); 1038 saveAddressee( addressee, v, true );
1039 1039
1040 vcardlist.append( v ); 1040 vcardlist.append( v );
1041 vcards.setCardList( vcardlist ); 1041 vcards.setCardList( vcardlist );
1042 vcard = QString::fromUtf8( vcards.asString() ); 1042 vcard = QString::fromUtf8( vcards.asString() );
1043 1043
1044 return true; 1044 return true;
1045} 1045}
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index def8431..5ec7ddd 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1,1898 +1,1898 @@
1#include <stdlib.h> 1#include <stdlib.h>
2 2
3#include <qaction.h> 3#include <qaction.h>
4#include <qpopupmenu.h> 4#include <qpopupmenu.h>
5#include <qpainter.h> 5#include <qpainter.h>
6#include <qwhatsthis.h> 6#include <qwhatsthis.h>
7#include <qpushbutton.h> 7#include <qpushbutton.h>
8#include <qmessagebox.h> 8#include <qmessagebox.h>
9#include <qlineedit.h> 9#include <qlineedit.h>
10#include <qtextcodec.h> 10#include <qtextcodec.h>
11#include <qfile.h> 11#include <qfile.h>
12#include <qdir.h> 12#include <qdir.h>
13#include <qapp.h> 13#include <qapp.h>
14#include <qfileinfo.h> 14#include <qfileinfo.h>
15#include <qlabel.h> 15#include <qlabel.h>
16#include <qspinbox.h> 16#include <qspinbox.h>
17#include <qcheckbox.h> 17#include <qcheckbox.h>
18#include <qmap.h> 18#include <qmap.h>
19#include <qwmatrix.h> 19#include <qwmatrix.h>
20#include <qtextbrowser.h> 20#include <qtextbrowser.h>
21#include <qtextstream.h> 21#include <qtextstream.h>
22#ifndef DESKTOP_VERSION 22#ifndef DESKTOP_VERSION
23#include <qpe/global.h> 23#include <qpe/global.h>
24#include <qpe/qpemenubar.h> 24#include <qpe/qpemenubar.h>
25#include <qpe/qpetoolbar.h> 25#include <qpe/qpetoolbar.h>
26#include <qpe/resource.h> 26#include <qpe/resource.h>
27#include <qpe/qpeapplication.h> 27#include <qpe/qpeapplication.h>
28#include <qtopia/alarmserver.h> 28#include <qtopia/alarmserver.h>
29#include <qtopia/qcopenvelope_qws.h> 29#include <qtopia/qcopenvelope_qws.h>
30#include <unistd.h> // for sleep 30#include <unistd.h> // for sleep
31#else 31#else
32#include <qmenubar.h> 32#include <qmenubar.h>
33#include <qtoolbar.h> 33#include <qtoolbar.h>
34#include <qapplication.h> 34#include <qapplication.h>
35//#include <resource.h> 35//#include <resource.h>
36 36
37#endif 37#endif
38#include <libkcal/calendarlocal.h> 38#include <libkcal/calendarlocal.h>
39#include <libkcal/todo.h> 39#include <libkcal/todo.h>
40#include <libkcal/phoneformat.h> 40#include <libkcal/phoneformat.h>
41#include <libkdepim/ksyncprofile.h> 41#include <libkdepim/ksyncprofile.h>
42#include <libkdepim/phoneaccess.h> 42#include <libkdepim/phoneaccess.h>
43#include <libkcal/kincidenceformatter.h> 43#include <libkcal/kincidenceformatter.h>
44#include <libkdepim/kpimglobalprefs.h> 44#include <libkdepim/kpimglobalprefs.h>
45 45
46#include "calendarview.h" 46#include "calendarview.h"
47#include "koviewmanager.h" 47#include "koviewmanager.h"
48#include "datenavigator.h" 48#include "datenavigator.h"
49#include "koagendaview.h" 49#include "koagendaview.h"
50#include "koagenda.h" 50#include "koagenda.h"
51#include "kodialogmanager.h" 51#include "kodialogmanager.h"
52#include "kdialogbase.h" 52#include "kdialogbase.h"
53#include "kapplication.h" 53#include "kapplication.h"
54#include "kofilterview.h" 54#include "kofilterview.h"
55#include "kstandarddirs.h" 55#include "kstandarddirs.h"
56#include "koprefs.h" 56#include "koprefs.h"
57#include "kfiledialog.h" 57#include "kfiledialog.h"
58#include "koglobals.h" 58#include "koglobals.h"
59#include "kglobal.h" 59#include "kglobal.h"
60#include "klocale.h" 60#include "klocale.h"
61#include "kconfig.h" 61#include "kconfig.h"
62#include "simplealarmclient.h" 62#include "simplealarmclient.h"
63#include "externalapphandler.h" 63#include "externalapphandler.h"
64 64
65using namespace KCal; 65using namespace KCal;
66#ifndef _WIN32_ 66#ifndef _WIN32_
67#include <unistd.h> 67#include <unistd.h>
68#else 68#else
69#include "koimportoldialog.h" 69#include "koimportoldialog.h"
70#endif 70#endif
71#include "mainwindow.h" 71#include "mainwindow.h"
72 72
73class KOex2phonePrefs : public QDialog 73class KOex2phonePrefs : public QDialog
74{ 74{
75 public: 75 public:
76 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 76 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
77 QDialog( parent, name, true ) 77 QDialog( parent, name, true )
78 { 78 {
79 setCaption( i18n("Export to phone options") ); 79 setCaption( i18n("Export to phone options") );
80 QVBoxLayout* lay = new QVBoxLayout( this ); 80 QVBoxLayout* lay = new QVBoxLayout( this );
81 lay->setSpacing( 3 ); 81 lay->setSpacing( 3 );
82 lay->setMargin( 3 ); 82 lay->setMargin( 3 );
83 QLabel *lab; 83 QLabel *lab;
84 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 84 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
85 lab->setAlignment (AlignHCenter ); 85 lab->setAlignment (AlignHCenter );
86 QHBox* temphb; 86 QHBox* temphb;
87 temphb = new QHBox( this ); 87 temphb = new QHBox( this );
88 new QLabel( i18n("I/O device: "), temphb ); 88 new QLabel( i18n("I/O device: "), temphb );
89 mPhoneDevice = new QLineEdit( temphb); 89 mPhoneDevice = new QLineEdit( temphb);
90 lay->addWidget( temphb ); 90 lay->addWidget( temphb );
91 temphb = new QHBox( this ); 91 temphb = new QHBox( this );
92 new QLabel( i18n("Connection: "), temphb ); 92 new QLabel( i18n("Connection: "), temphb );
93 mPhoneConnection = new QLineEdit( temphb); 93 mPhoneConnection = new QLineEdit( temphb);
94 lay->addWidget( temphb ); 94 lay->addWidget( temphb );
95 temphb = new QHBox( this ); 95 temphb = new QHBox( this );
96 new QLabel( i18n("Model(opt.): "), temphb ); 96 new QLabel( i18n("Model(opt.): "), temphb );
97 mPhoneModel = new QLineEdit( temphb); 97 mPhoneModel = new QLineEdit( temphb);
98 lay->addWidget( temphb ); 98 lay->addWidget( temphb );
99 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); 99 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this );
100 mWriteBackFuture->setChecked( true ); 100 mWriteBackFuture->setChecked( true );
101 lay->addWidget( mWriteBackFuture ); 101 lay->addWidget( mWriteBackFuture );
102 temphb = new QHBox( this ); 102 temphb = new QHBox( this );
103 new QLabel( i18n("Max. weeks in future: ") , temphb ); 103 new QLabel( i18n("Max. weeks in future: ") , temphb );
104 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); 104 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb);
105 mWriteBackFutureWeeks->setValue( 8 ); 105 mWriteBackFutureWeeks->setValue( 8 );
106 lay->addWidget( temphb ); 106 lay->addWidget( temphb );
107 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) ); 107 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) );
108 lab->setAlignment (AlignHCenter ); 108 lab->setAlignment (AlignHCenter );
109 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 109 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
110 lay->addWidget( ok ); 110 lay->addWidget( ok );
111 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 111 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
112 lay->addWidget( cancel ); 112 lay->addWidget( cancel );
113 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 113 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
114 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 114 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
115 resize( 220, 240 ); 115 resize( 220, 240 );
116 qApp->processEvents(); 116 qApp->processEvents();
117 int dw = QApplication::desktop()->width(); 117 int dw = QApplication::desktop()->width();
118 int dh = QApplication::desktop()->height(); 118 int dh = QApplication::desktop()->height();
119 move( (dw-width())/2, (dh - height() )/2 ); 119 move( (dw-width())/2, (dh - height() )/2 );
120 } 120 }
121 121
122public: 122public:
123 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 123 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
124 QCheckBox* mWriteBackFuture; 124 QCheckBox* mWriteBackFuture;
125 QSpinBox* mWriteBackFutureWeeks; 125 QSpinBox* mWriteBackFutureWeeks;
126}; 126};
127 127
128int globalFlagBlockStartup; 128int globalFlagBlockStartup;
129MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 129MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
130 QMainWindow( parent, name ) 130 QMainWindow( parent, name )
131{ 131{
132 132
133#ifdef DESKTOP_VERSION 133#ifdef DESKTOP_VERSION
134 setFont( QFont("Arial"), 14 ); 134 setFont( QFont("Arial"), 14 );
135#endif 135#endif
136 mClosed = false; 136 mClosed = false;
137 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 137 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
138 QString confFile = locateLocal("config","korganizerrc"); 138 QString confFile = locateLocal("config","korganizerrc");
139 QFileInfo finf ( confFile ); 139 QFileInfo finf ( confFile );
140 bool showWarning = !finf.exists(); 140 bool showWarning = !finf.exists();
141 setIcon(SmallIcon( "ko24" ) ); 141 setIcon(SmallIcon( "ko24" ) );
142 mBlockAtStartup = true; 142 mBlockAtStartup = true;
143 mFlagKeyPressed = false; 143 mFlagKeyPressed = false;
144 setCaption("KOrganizer/Pi"); 144 setCaption("KOrganizer/Pi");
145 KOPrefs *p = KOPrefs::instance(); 145 KOPrefs *p = KOPrefs::instance();
146 KPimGlobalPrefs::instance()->setGlobalConfig(); 146 KPimGlobalPrefs::instance()->setGlobalConfig();
147 if ( p->mHourSize > 18 ) 147 if ( p->mHourSize > 18 )
148 p->mHourSize = 18; 148 p->mHourSize = 18;
149 QMainWindow::ToolBarDock tbd; 149 QMainWindow::ToolBarDock tbd;
150 if ( p->mToolBarHor ) { 150 if ( p->mToolBarHor ) {
151 if ( p->mToolBarUp ) 151 if ( p->mToolBarUp )
152 tbd = Bottom; 152 tbd = Bottom;
153 else 153 else
154 tbd = Top; 154 tbd = Top;
155 } 155 }
156 else { 156 else {
157 if ( p->mToolBarUp ) 157 if ( p->mToolBarUp )
158 tbd = Right; 158 tbd = Right;
159 else 159 else
160 tbd = Left; 160 tbd = Left;
161 } 161 }
162 if ( KOPrefs::instance()->mUseAppColors ) 162 if ( KOPrefs::instance()->mUseAppColors )
163 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 163 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
164 globalFlagBlockStartup = 1; 164 globalFlagBlockStartup = 1;
165 iconToolBar = new QPEToolBar( this ); 165 iconToolBar = new QPEToolBar( this );
166 addToolBar (iconToolBar , tbd ); 166 addToolBar (iconToolBar , tbd );
167 mCalendarModifiedFlag = false; 167 mCalendarModifiedFlag = false;
168 168
169 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 169 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
170 splash->setAlignment ( AlignCenter ); 170 splash->setAlignment ( AlignCenter );
171 setCentralWidget( splash ); 171 setCentralWidget( splash );
172#ifndef DESKTOP_VERSION 172#ifndef DESKTOP_VERSION
173 showMaximized(); 173 showMaximized();
174#endif 174#endif
175 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 175 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
176 setDefaultPreferences(); 176 setDefaultPreferences();
177 mCalendar = new CalendarLocal(); 177 mCalendar = new CalendarLocal();
178 mView = new CalendarView( mCalendar, this,"mCalendar " ); 178 mView = new CalendarView( mCalendar, this,"mCalendar " );
179 mView->hide(); 179 mView->hide();
180 //mView->resize(splash->size() ); 180 //mView->resize(splash->size() );
181 initActions(); 181 initActions();
182 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu); 182 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu);
183 mSyncManager->setBlockSave(false); 183 mSyncManager->setBlockSave(false);
184 mView->setSyncManager(mSyncManager); 184 mView->setSyncManager(mSyncManager);
185#ifndef DESKTOP_VERSION 185#ifndef DESKTOP_VERSION
186 iconToolBar->show(); 186 iconToolBar->show();
187 qApp->processEvents(); 187 qApp->processEvents();
188#endif 188#endif
189 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 189 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
190 int vh = height() ; 190 int vh = height() ;
191 int vw = width(); 191 int vw = width();
192 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 192 //qDebug("Toolbar hei %d ",iconToolBar->height() );
193 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 193 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
194 vh -= iconToolBar->height(); 194 vh -= iconToolBar->height();
195 } else { 195 } else {
196 vw -= iconToolBar->height(); 196 vw -= iconToolBar->height();
197 } 197 }
198 //mView->setMaximumSize( splash->size() ); 198 //mView->setMaximumSize( splash->size() );
199 //mView->resize( splash->size() ); 199 //mView->resize( splash->size() );
200 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 200 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
201 mView->readSettings(); 201 mView->readSettings();
202 bool newFile = false; 202 bool newFile = false;
203 if( !QFile::exists( defaultFileName() ) ) { 203 if( !QFile::exists( defaultFileName() ) ) {
204 QFileInfo finfo ( defaultFileName() ); 204 QFileInfo finfo ( defaultFileName() );
205 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); 205 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics");
206 qDebug("oldfile %s ", oldFile.latin1()); 206 qDebug("oldfile %s ", oldFile.latin1());
207 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n"; 207 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n";
208 finfo.setFile( oldFile ); 208 finfo.setFile( oldFile );
209 if (finfo.exists() ) { 209 if (finfo.exists() ) {
210 KMessageBox::information( this, message); 210 KMessageBox::information( this, message);
211 mView->openCalendar( oldFile ); 211 mView->openCalendar( oldFile );
212 qApp->processEvents(); 212 qApp->processEvents();
213 } else { 213 } else {
214 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); 214 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics");
215 finfo.setFile( oldFile ); 215 finfo.setFile( oldFile );
216 if (finfo.exists() ) { 216 if (finfo.exists() ) {
217 KMessageBox::information( this, message); 217 KMessageBox::information( this, message);
218 mView->openCalendar( oldFile ); 218 mView->openCalendar( oldFile );
219 qApp->processEvents(); 219 qApp->processEvents();
220 } 220 }
221 } 221 }
222 mView->saveCalendar( defaultFileName() ); 222 mView->saveCalendar( defaultFileName() );
223 newFile = true; 223 newFile = true;
224 } 224 }
225 225
226 QTime neededSaveTime = QDateTime::currentDateTime().time(); 226 QTime neededSaveTime = QDateTime::currentDateTime().time();
227 mView->openCalendar( defaultFileName() ); 227 mView->openCalendar( defaultFileName() );
228 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 228 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
229 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 229 qDebug("KO: Calendar loading time: %d ms",msNeeded );
230 230
231 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) { 231 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) {
232 KOPrefs::instance()->setCategoryDefaults(); 232 KOPrefs::instance()->setCategoryDefaults();
233 int count = mView->addCategories(); 233 int count = mView->addCategories();
234 } 234 }
235 processIncidenceSelection( 0 ); 235 processIncidenceSelection( 0 );
236 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 236 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
237 SLOT( processIncidenceSelection( Incidence * ) ) ); 237 SLOT( processIncidenceSelection( Incidence * ) ) );
238 connect( mView, SIGNAL( modifiedChanged( bool ) ), 238 connect( mView, SIGNAL( modifiedChanged( bool ) ),
239 SLOT( slotModifiedChanged( bool ) ) ); 239 SLOT( slotModifiedChanged( bool ) ) );
240 240
241 241
242 connect( mView, SIGNAL( tempDisableBR(bool) ), 242 connect( mView, SIGNAL( tempDisableBR(bool) ),
243 SLOT( disableBR(bool) ) ); 243 SLOT( disableBR(bool) ) );
244 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 244 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
245 mView->setModified( false ); 245 mView->setModified( false );
246 mBlockAtStartup = false; 246 mBlockAtStartup = false;
247 mView->setModified( false ); 247 mView->setModified( false );
248 setCentralWidget( mView ); 248 setCentralWidget( mView );
249 globalFlagBlockStartup = 0; 249 globalFlagBlockStartup = 0;
250 mView->show(); 250 mView->show();
251 delete splash; 251 delete splash;
252 if ( newFile ) 252 if ( newFile )
253 mView->updateConfig(); 253 mView->updateConfig();
254 // qApp->processEvents(); 254 // qApp->processEvents();
255 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 255 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
256 //fillSyncMenu(); 256 //fillSyncMenu();
257 257
258 258
259 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) ); 259 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) );
260 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 260 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
261 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 261 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
262 mSyncManager->setDefaultFileName( defaultFileName()); 262 mSyncManager->setDefaultFileName( defaultFileName());
263 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) ); 263 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) );
264 mSyncManager->fillSyncMenu(); 264 mSyncManager->fillSyncMenu();
265 265
266 266
267 267
268 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 268 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
269 if ( showWarning ) { 269 if ( showWarning ) {
270 KMessageBox::information( this, 270 KMessageBox::information( this,
271 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information"); 271 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information");
272 qApp->processEvents(); 272 qApp->processEvents();
273 mView->dialogManager()->showSyncOptions(); 273 mView->dialogManager()->showSyncOptions();
274 } 274 }
275 275
276 //US listen for result adressed from Ka/Pi 276 //US listen for result adressed from Ka/Pi
277#ifndef DESKTOP_VERSION 277#ifndef DESKTOP_VERSION
278 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 278 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
279#endif 279#endif
280#ifndef DESKTOP_VERSION 280#ifndef DESKTOP_VERSION
281 infrared = 0; 281 infrared = 0;
282#endif 282#endif
283 283
284 mBRdisabled = false; 284 mBRdisabled = false;
285 //toggleBeamReceive(); 285 //toggleBeamReceive();
286} 286}
287MainWindow::~MainWindow() 287MainWindow::~MainWindow()
288{ 288{
289 //qDebug("MainWindow::~MainWindow() "); 289 //qDebug("MainWindow::~MainWindow() ");
290 //save toolbar location 290 //save toolbar location
291 delete mCalendar; 291 delete mCalendar;
292 delete mSyncManager; 292 delete mSyncManager;
293#ifndef DESKTOP_VERSION 293#ifndef DESKTOP_VERSION
294 if ( infrared ) 294 if ( infrared )
295 delete infrared; 295 delete infrared;
296#endif 296#endif
297 297
298 298
299} 299}
300 300
301void MainWindow::disableBR(bool b) 301void MainWindow::disableBR(bool b)
302{ 302{
303#ifndef DESKTOP_VERSION 303#ifndef DESKTOP_VERSION
304 if ( b ) { 304 if ( b ) {
305 if ( infrared ) { 305 if ( infrared ) {
306 toggleBeamReceive(); 306 toggleBeamReceive();
307 mBRdisabled = true; 307 mBRdisabled = true;
308 } 308 }
309 mBRdisabled = true; 309 mBRdisabled = true;
310 } else { 310 } else {
311 if ( mBRdisabled ) { 311 if ( mBRdisabled ) {
312 mBRdisabled = false; 312 mBRdisabled = false;
313 //makes no sense,because other cal ap is probably running 313 //makes no sense,because other cal ap is probably running
314 // toggleBeamReceive(); 314 // toggleBeamReceive();
315 } 315 }
316 } 316 }
317#endif 317#endif
318 318
319} 319}
320bool MainWindow::beamReceiveEnabled() 320bool MainWindow::beamReceiveEnabled()
321{ 321{
322#ifndef DESKTOP_VERSION 322#ifndef DESKTOP_VERSION
323 return ( infrared != 0 ); 323 return ( infrared != 0 );
324#endif 324#endif
325 return false; 325 return false;
326} 326}
327 327
328void MainWindow::toggleBeamReceive() 328void MainWindow::toggleBeamReceive()
329{ 329{
330 if ( mBRdisabled ) 330 if ( mBRdisabled )
331 return; 331 return;
332#ifndef DESKTOP_VERSION 332#ifndef DESKTOP_VERSION
333 if ( infrared ) { 333 if ( infrared ) {
334 qDebug("disable BeamReceive "); 334 qDebug("disable BeamReceive ");
335 delete infrared; 335 delete infrared;
336 infrared = 0; 336 infrared = 0;
337 brAction->setOn(false); 337 brAction->setOn(false);
338 return; 338 return;
339 } 339 }
340 qDebug("enable BeamReceive "); 340 qDebug("enable BeamReceive ");
341 brAction->setOn(true); 341 brAction->setOn(true);
342 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ; 342 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ;
343 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& ))); 343 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& )));
344#endif 344#endif
345} 345}
346void MainWindow::showMaximized () 346void MainWindow::showMaximized ()
347{ 347{
348#ifndef DESKTOP_VERSION 348#ifndef DESKTOP_VERSION
349 if ( ! globalFlagBlockStartup ) 349 if ( ! globalFlagBlockStartup )
350 if ( mClosed ) 350 if ( mClosed )
351 mView->goToday(); 351 mView->goToday();
352#endif 352#endif
353 QWidget::showMaximized () ; 353 QWidget::showMaximized () ;
354 mClosed = false; 354 mClosed = false;
355} 355}
356void MainWindow::closeEvent( QCloseEvent* ce ) 356void MainWindow::closeEvent( QCloseEvent* ce )
357{ 357{
358 358
359 359
360 360
361 if ( ! KOPrefs::instance()->mAskForQuit ) { 361 if ( ! KOPrefs::instance()->mAskForQuit ) {
362 saveOnClose(); 362 saveOnClose();
363 mClosed = true; 363 mClosed = true;
364 ce->accept(); 364 ce->accept();
365 return; 365 return;
366 366
367 } 367 }
368 368
369 switch( QMessageBox::information( this, "KO/Pi", 369 switch( QMessageBox::information( this, "KO/Pi",
370 i18n("Do you really want\nto close KO/Pi?"), 370 i18n("Do you really want\nto close KO/Pi?"),
371 i18n("Close"), i18n("No"), 371 i18n("Close"), i18n("No"),
372 0, 0 ) ) { 372 0, 0 ) ) {
373 case 0: 373 case 0:
374 saveOnClose(); 374 saveOnClose();
375 mClosed = true; 375 mClosed = true;
376 ce->accept(); 376 ce->accept();
377 break; 377 break;
378 case 1: 378 case 1:
379 ce->ignore(); 379 ce->ignore();
380 break; 380 break;
381 case 2: 381 case 2:
382 382
383 default: 383 default:
384 break; 384 break;
385 } 385 }
386 386
387 387
388} 388}
389 389
390void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) 390void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
391{ 391{
392 QDataStream stream( data, IO_ReadOnly ); 392 QDataStream stream( data, IO_ReadOnly );
393 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" ); 393 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" );
394 //QString datamess; 394 //QString datamess;
395 //qDebug("message "); 395 //qDebug("message ");
396 qDebug("KO: QCOP message received: %s ", cmsg.data() ); 396 qDebug("KO: QCOP message received: %s ", cmsg.data() );
397 397
398 if ( cmsg == "setDocument(QString)" ) { 398 if ( cmsg == "setDocument(QString)" ) {
399 QDataStream stream( data, IO_ReadOnly ); 399 QDataStream stream( data, IO_ReadOnly );
400 QString fileName; 400 QString fileName;
401 stream >> fileName; 401 stream >> fileName;
402 //qDebug("filename %s ", fileName.latin1()); 402 //qDebug("filename %s ", fileName.latin1());
403 showMaximized(); 403 showMaximized();
404 raise(); 404 raise();
405 KOPrefs::instance()->mLastSyncedLocalFile = fileName ; 405 KOPrefs::instance()->mLastSyncedLocalFile = fileName ;
406 mSyncManager->slotSyncMenu( 1002 ); 406 mSyncManager->slotSyncMenu( 1002 );
407 return; 407 return;
408 } 408 }
409 409
410 if ( cmsg == "-writeFile" ) { 410 if ( cmsg == "-writeFile" ) {
411 // I made from the "-writeFile" an "-writeAlarm" 411 // I made from the "-writeFile" an "-writeAlarm"
412 mView->viewManager()->showWhatsNextView(); 412 mView->viewManager()->showWhatsNextView();
413 mCalendar->checkAlarmForIncidence( 0, true); 413 mCalendar->checkAlarmForIncidence( 0, true);
414 showMaximized(); 414 showMaximized();
415 raise(); 415 raise();
416 return; 416 return;
417 417
418 } 418 }
419 if ( cmsg == "-writeFileSilent" ) { 419 if ( cmsg == "-writeFileSilent" ) {
420 // I made from the "-writeFile" an "-writeAlarm" 420 // I made from the "-writeFile" an "-writeAlarm"
421 // mView->viewManager()->showWhatsNextView(); 421 // mView->viewManager()->showWhatsNextView();
422 mCalendar->checkAlarmForIncidence( 0, true); 422 mCalendar->checkAlarmForIncidence( 0, true);
423 //showMaximized(); 423 //showMaximized();
424 //raise(); 424 //raise();
425 hide(); 425 hide();
426 return; 426 return;
427 } 427 }
428 if ( cmsg == "-newCountdown" ) { 428 if ( cmsg == "-newCountdown" ) {
429 qDebug("newCountdown "); 429 qDebug("newCountdown ");
430 430
431 } 431 }
432 QString msg ; 432 QString msg ;
433 QString allmsg = cmsg; 433 QString allmsg = cmsg;
434 while ( allmsg.length() > 0 ) { 434 while ( allmsg.length() > 0 ) {
435 int nextC = allmsg.find( "-", 1 ); 435 int nextC = allmsg.find( "-", 1 );
436 if ( nextC == -1 ) { 436 if ( nextC == -1 ) {
437 msg = allmsg; 437 msg = allmsg;
438 allmsg = ""; 438 allmsg = "";
439 } else{ 439 } else{
440 msg = allmsg.left( nextC ); 440 msg = allmsg.left( nextC );
441 allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); 441 allmsg = allmsg.mid( nextC, allmsg.length()-nextC );
442 } 442 }
443 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); 443 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() );
444 if ( msg == "-newEvent" ) { 444 if ( msg == "-newEvent" ) {
445 mView->newEvent(); 445 mView->newEvent();
446 } 446 }
447 if ( msg == "-newTodo" ) { 447 if ( msg == "-newTodo" ) {
448 mView->newTodo(); 448 mView->newTodo();
449 449
450 } 450 }
451 if ( msg == "-showWN" ) { 451 if ( msg == "-showWN" ) {
452 mView->viewManager()->showWhatsNextView(); 452 mView->viewManager()->showWhatsNextView();
453 } 453 }
454 if ( msg == "-showTodo" ) { 454 if ( msg == "-showTodo" ) {
455 mView->viewManager()->showTodoView(); 455 mView->viewManager()->showTodoView();
456 } 456 }
457 if ( msg == "-showList" ) { 457 if ( msg == "-showList" ) {
458 mView->viewManager()->showListView(); 458 mView->viewManager()->showListView();
459 } 459 }
460 else if ( msg == "-showDay" ) { 460 else if ( msg == "-showDay" ) {
461 mView->viewManager()->showDayView(); 461 mView->viewManager()->showDayView();
462 } 462 }
463 else if ( msg == "-showWWeek" ) { 463 else if ( msg == "-showWWeek" ) {
464 mView->viewManager()->showWorkWeekView(); 464 mView->viewManager()->showWorkWeekView();
465 } 465 }
466 else if ( msg == "-ringSync" ) { 466 else if ( msg == "-ringSync" ) {
467 mSyncManager->multiSync( false ); 467 mSyncManager->multiSync( false );
468 } 468 }
469 else if ( msg == "-showWeek" ) { 469 else if ( msg == "-showWeek" ) {
470 mView->viewManager()->showWeekView(); 470 mView->viewManager()->showWeekView();
471 } 471 }
472 else if ( msg == "-showTodo" ) { 472 else if ( msg == "-showTodo" ) {
473 mView->viewManager()->showTodoView(); 473 mView->viewManager()->showTodoView();
474 } 474 }
475 else if ( msg == "-showJournal" ) { 475 else if ( msg == "-showJournal" ) {
476 mView->dateNavigator()->selectDates( 1 ); 476 mView->dateNavigator()->selectDates( 1 );
477 mView->dateNavigator()->selectToday(); 477 mView->dateNavigator()->selectToday();
478 mView->viewManager()->showJournalView(); 478 mView->viewManager()->showJournalView();
479 } 479 }
480 else if ( msg == "-showKO" ) { 480 else if ( msg == "-showKO" ) {
481 mView->viewManager()->showNextXView(); 481 mView->viewManager()->showNextXView();
482 } 482 }
483 else if ( msg == "-showWNext" || msg == "nextView()" ) { 483 else if ( msg == "-showWNext" || msg == "nextView()" ) {
484 mView->viewManager()->showWhatsNextView(); 484 mView->viewManager()->showWhatsNextView();
485 } 485 }
486 else if ( msg == "-showNextXView" ) { 486 else if ( msg == "-showNextXView" ) {
487 mView->viewManager()->showNextXView(); 487 mView->viewManager()->showNextXView();
488 } 488 }
489 489
490 490
491 } 491 }
492 492
493 showMaximized(); 493 showMaximized();
494 raise(); 494 raise();
495} 495}
496 496
497QPixmap MainWindow::loadPixmap( QString name ) 497QPixmap MainWindow::loadPixmap( QString name )
498{ 498{
499 return SmallIcon( name ); 499 return SmallIcon( name );
500 500
501} 501}
502void MainWindow::initActions() 502void MainWindow::initActions()
503{ 503{
504 //KOPrefs::instance()->mShowFullMenu 504 //KOPrefs::instance()->mShowFullMenu
505 iconToolBar->clear(); 505 iconToolBar->clear();
506 KOPrefs *p = KOPrefs::instance(); 506 KOPrefs *p = KOPrefs::instance();
507 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar ); 507 //QPEMenuBar *menuBar1;// = new QPEMenuBar( iconToolBar );
508 508
509 QPopupMenu *viewMenu = new QPopupMenu( this ); 509 QPopupMenu *viewMenu = new QPopupMenu( this );
510 QPopupMenu *actionMenu = new QPopupMenu( this ); 510 QPopupMenu *actionMenu = new QPopupMenu( this );
511 QPopupMenu *importMenu = new QPopupMenu( this ); 511 QPopupMenu *importMenu = new QPopupMenu( this );
512 selectFilterMenu = new QPopupMenu( this ); 512 selectFilterMenu = new QPopupMenu( this );
513 selectFilterMenu->setCheckable( true ); 513 selectFilterMenu->setCheckable( true );
514 syncMenu = new QPopupMenu( this ); 514 syncMenu = new QPopupMenu( this );
515 configureAgendaMenu = new QPopupMenu( this ); 515 configureAgendaMenu = new QPopupMenu( this );
516 configureToolBarMenu = new QPopupMenu( this ); 516 configureToolBarMenu = new QPopupMenu( this );
517 QPopupMenu *helpMenu = new QPopupMenu( this ); 517 QPopupMenu *helpMenu = new QPopupMenu( this );
518 if ( KOPrefs::instance()->mShowFullMenu ) { 518 if ( KOPrefs::instance()->mShowFullMenu ) {
519 QMenuBar *menuBar1; 519 QMenuBar *menuBar1;
520 menuBar1 = menuBar(); 520 menuBar1 = menuBar();
521 menuBar1->insertItem( i18n("File"), importMenu ); 521 menuBar1->insertItem( i18n("File"), importMenu );
522 menuBar1->insertItem( i18n("View"), viewMenu ); 522 menuBar1->insertItem( i18n("View"), viewMenu );
523 menuBar1->insertItem( i18n("Actions"), actionMenu ); 523 menuBar1->insertItem( i18n("Actions"), actionMenu );
524 menuBar1->insertItem( i18n("Synchronize"), syncMenu ); 524 menuBar1->insertItem( i18n("Synchronize"), syncMenu );
525 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 525 menuBar1->insertItem( i18n("AgendaSize"),configureAgendaMenu );
526 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu ); 526 //menuBar1->insertItem( i18n("Toolbar"),configureToolBarMenu );
527 menuBar1->insertItem( i18n("Filter"),selectFilterMenu ); 527 menuBar1->insertItem( i18n("Filter"),selectFilterMenu );
528 menuBar1->insertItem( i18n("Help"), helpMenu ); 528 menuBar1->insertItem( i18n("Help"), helpMenu );
529 } else { 529 } else {
530 QPEMenuBar *menuBar1; 530 QPEMenuBar *menuBar1;
531 menuBar1 = new QPEMenuBar( iconToolBar ); 531 menuBar1 = new QPEMenuBar( iconToolBar );
532 QPopupMenu *menuBar = new QPopupMenu( this ); 532 QPopupMenu *menuBar = new QPopupMenu( this );
533 menuBar1->insertItem( i18n("ME"), menuBar); 533 menuBar1->insertItem( i18n("ME"), menuBar);
534 menuBar->insertItem( i18n("File"), importMenu ); 534 menuBar->insertItem( i18n("File"), importMenu );
535 menuBar->insertItem( i18n("View"), viewMenu ); 535 menuBar->insertItem( i18n("View"), viewMenu );
536 menuBar->insertItem( i18n("Actions"), actionMenu ); 536 menuBar->insertItem( i18n("Actions"), actionMenu );
537 menuBar->insertItem( i18n("Synchronize"), syncMenu ); 537 menuBar->insertItem( i18n("Synchronize"), syncMenu );
538 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu ); 538 menuBar->insertItem( i18n("AgendaSize"),configureAgendaMenu );
539 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu ); 539 menuBar->insertItem( i18n("Toolbar"),configureToolBarMenu );
540 menuBar->insertItem( i18n("Filter"),selectFilterMenu ); 540 menuBar->insertItem( i18n("Filter"),selectFilterMenu );
541 menuBar->insertItem( i18n("Help"), helpMenu ); 541 menuBar->insertItem( i18n("Help"), helpMenu );
542 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() ); 542 //menuBar1->setMaximumWidth( menuBar1->sizeHint().width() );
543 menuBar1->setMaximumSize( menuBar1->sizeHint( )); 543 menuBar1->setMaximumSize( menuBar1->sizeHint( ));
544 } 544 }
545 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) ); 545 connect ( selectFilterMenu, SIGNAL( activated ( int ) ), this, SLOT (selectFilter( int ) ) );
546 connect ( selectFilterMenu, SIGNAL( aboutToShow () ), this, SLOT (fillFilterMenu() ) ); 546 connect ( selectFilterMenu, SIGNAL( aboutToShow () ), this, SLOT (fillFilterMenu() ) );
547 547
548 // ****************** 548 // ******************
549 QAction *action; 549 QAction *action;
550 QIconSet icon; 550 QIconSet icon;
551 // QPopupMenu *configureMenu= new QPopupMenu( menuBar ); 551 // QPopupMenu *configureMenu= new QPopupMenu( menuBar );
552 configureToolBarMenu->setCheckable( true ); 552 configureToolBarMenu->setCheckable( true );
553 553
554 QString pathString = ""; 554 QString pathString = "";
555 if ( !p->mToolBarMiniIcons ) { 555 if ( !p->mToolBarMiniIcons ) {
556 if ( QApplication::desktop()->width() < 480 ) 556 if ( QApplication::desktop()->width() < 480 )
557 pathString += "icons16/"; 557 pathString += "icons16/";
558 } else 558 } else
559 pathString += "iconsmini/"; 559 pathString += "iconsmini/";
560 configureAgendaMenu->setCheckable( true ); 560 configureAgendaMenu->setCheckable( true );
561 configureAgendaMenu->insertItem(i18n("Tiny"), 4 ); 561 configureAgendaMenu->insertItem(i18n("Tiny"), 4 );
562 configureAgendaMenu->insertItem(i18n("Small"), 6 ); 562 configureAgendaMenu->insertItem(i18n("Small"), 6 );
563 configureAgendaMenu->insertItem(i18n("Medium"), 8 ); 563 configureAgendaMenu->insertItem(i18n("Medium"), 8 );
564 configureAgendaMenu->insertItem(i18n("Normal"), 10 ); 564 configureAgendaMenu->insertItem(i18n("Normal"), 10 );
565 configureAgendaMenu->insertItem(i18n("Large"), 12 ); 565 configureAgendaMenu->insertItem(i18n("Large"), 12 );
566 configureAgendaMenu->insertItem(i18n("Big"), 14 ); 566 configureAgendaMenu->insertItem(i18n("Big"), 14 );
567 configureAgendaMenu->insertItem(i18n("Bigger"), 16 ); 567 configureAgendaMenu->insertItem(i18n("Bigger"), 16 );
568 configureAgendaMenu->insertItem(i18n("Biggest"), 18 ); 568 configureAgendaMenu->insertItem(i18n("Biggest"), 18 );
569 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu ); 569 //configureMenu->insertItem( "AgendaSize",configureAgendaMenu );
570 570
571 icon = loadPixmap( pathString + "configure" ); 571 icon = loadPixmap( pathString + "configure" );
572 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this ); 572 action = new QAction( i18n("Configure"),icon, i18n("Configure..."), 0, this );
573 action->addTo( actionMenu ); 573 action->addTo( actionMenu );
574 connect( action, SIGNAL( activated() ), 574 connect( action, SIGNAL( activated() ),
575 mView, SLOT( edit_options() ) ); 575 mView, SLOT( edit_options() ) );
576 actionMenu->insertSeparator(); 576 actionMenu->insertSeparator();
577 577
578 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this ); 578 action = new QAction( i18n("Undo Delete"), i18n("Undo Delete..."), 0, this );
579 action->addTo( actionMenu ); 579 action->addTo( actionMenu );
580 connect( action, SIGNAL( activated() ), 580 connect( action, SIGNAL( activated() ),
581 mView, SLOT( undo_delete() ) ); 581 mView, SLOT( undo_delete() ) );
582 actionMenu->insertSeparator(); 582 actionMenu->insertSeparator();
583 583
584 icon = loadPixmap( pathString + "newevent" ); 584 icon = loadPixmap( pathString + "newevent" );
585 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 ); 585 configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 );
586 configureToolBarMenu->insertSeparator(); 586 configureToolBarMenu->insertSeparator();
587 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 ); 587 configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 );
588 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this ); 588 QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this );
589 ne_action->addTo( actionMenu ); 589 ne_action->addTo( actionMenu );
590 connect( ne_action, SIGNAL( activated() ), 590 connect( ne_action, SIGNAL( activated() ),
591 mView, SLOT( newEvent() ) ); 591 mView, SLOT( newEvent() ) );
592 icon = loadPixmap( pathString + "newtodo" ); 592 icon = loadPixmap( pathString + "newtodo" );
593 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 ); 593 configureToolBarMenu->insertItem(icon, i18n("New Todo..."), 20 );
594 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this ); 594 QAction* nt_action = new QAction( i18n("New Todo..."), icon, i18n("New Todo..."), 0, this );
595 nt_action->addTo( actionMenu ); 595 nt_action->addTo( actionMenu );
596 connect( nt_action, SIGNAL( activated() ), 596 connect( nt_action, SIGNAL( activated() ),
597 mView, SLOT( newTodo() ) ); 597 mView, SLOT( newTodo() ) );
598 icon = loadPixmap( pathString + "navi" ); 598 icon = loadPixmap( pathString + "navi" );
599 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this ); 599 action = new QAction( i18n("Toggle DateNavigator"), icon, i18n("Toggle DateNavigator"), 0, this );
600 action->addTo( viewMenu ); 600 action->addTo( viewMenu );
601 connect( action, SIGNAL( activated() ), 601 connect( action, SIGNAL( activated() ),
602 mView, SLOT( toggleDateNavigatorWidget() ) ); 602 mView, SLOT( toggleDateNavigatorWidget() ) );
603 icon = loadPixmap( pathString + "filter" ); 603 icon = loadPixmap( pathString + "filter" );
604 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this ); 604 action = new QAction( i18n("Toggle FilterView"), icon, i18n("Toggle FilterView"), 0, this );
605 action->addTo( viewMenu ); 605 action->addTo( viewMenu );
606 connect( action, SIGNAL( activated() ), 606 connect( action, SIGNAL( activated() ),
607 mView, SLOT( toggleFilter() ) ); 607 mView, SLOT( toggleFilter() ) );
608 action = new QAction( i18n("Toggle Allday"), i18n("Toggle Allday"), 0, this ); 608 action = new QAction( i18n("Toggle Allday"), i18n("Toggle Allday"), 0, this );
609 action->addTo( viewMenu ); 609 action->addTo( viewMenu );
610 connect( action, SIGNAL( activated() ), 610 connect( action, SIGNAL( activated() ),
611 mView, SLOT( toggleAllDaySize() ) ); 611 mView, SLOT( toggleAllDaySize() ) );
612 612
613 viewMenu->insertSeparator(); 613 viewMenu->insertSeparator();
614 icon = loadPixmap( pathString + "picker" ); 614 icon = loadPixmap( pathString + "picker" );
615 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this ); 615 action = new QAction( i18n("Date Picker"), icon, i18n("Date Picker"), 0, this );
616 action->addTo( viewMenu ); 616 action->addTo( viewMenu );
617 connect( action, SIGNAL( activated() ), 617 connect( action, SIGNAL( activated() ),
618 mView, SLOT( showDatePicker() ) ); 618 mView, SLOT( showDatePicker() ) );
619 action->addTo( iconToolBar ); 619 action->addTo( iconToolBar );
620 viewMenu->insertSeparator(); 620 viewMenu->insertSeparator();
621 icon = loadPixmap( pathString + "list" ); 621 icon = loadPixmap( pathString + "list" );
622 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 ); 622 configureToolBarMenu->insertItem(icon, i18n("List View"), 30 );
623 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this ); 623 QAction* showlist_action = new QAction( i18n("List View"), icon, i18n("List View"), 0, this );
624 showlist_action->addTo( viewMenu ); 624 showlist_action->addTo( viewMenu );
625 connect( showlist_action, SIGNAL( activated() ), 625 connect( showlist_action, SIGNAL( activated() ),
626 mView->viewManager(), SLOT( showListView() ) ); 626 mView->viewManager(), SLOT( showListView() ) );
627 627
628 628
629 icon = loadPixmap( pathString + "day" ); 629 icon = loadPixmap( pathString + "day" );
630 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 ); 630 configureToolBarMenu->insertItem(icon, i18n("Day View"), 40 );
631 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this ); 631 QAction* day1_action = new QAction( i18n("Day View"), icon, i18n("Day View"), 0, this );
632 day1_action->addTo( viewMenu ); 632 day1_action->addTo( viewMenu );
633 // action->addTo( toolBar ); 633 // action->addTo( toolBar );
634 connect( day1_action, SIGNAL( activated() ), 634 connect( day1_action, SIGNAL( activated() ),
635 mView->viewManager(), SLOT( showDayView() ) ); 635 mView->viewManager(), SLOT( showDayView() ) );
636 636
637 icon = loadPixmap( pathString + "workweek" ); 637 icon = loadPixmap( pathString + "workweek" );
638 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 ); 638 configureToolBarMenu->insertItem(icon, i18n("Work Week"), 50 );
639 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this ); 639 QAction* day5_action = new QAction( i18n("Work Week"), icon, i18n("Work Week"), 0, this );
640 day5_action->addTo( viewMenu ); 640 day5_action->addTo( viewMenu );
641 connect( day5_action, SIGNAL( activated() ), 641 connect( day5_action, SIGNAL( activated() ),
642 mView->viewManager(), SLOT( showWorkWeekView() ) ); 642 mView->viewManager(), SLOT( showWorkWeekView() ) );
643 643
644 icon = loadPixmap( pathString + "week" ); 644 icon = loadPixmap( pathString + "week" );
645 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 ); 645 configureToolBarMenu->insertItem(icon, i18n("Week"), 60 );
646 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this ); 646 QAction* day7_action = new QAction( i18n("Week"), icon, i18n("Week"), 0, this );
647 day7_action->addTo( viewMenu ); 647 day7_action->addTo( viewMenu );
648 connect( day7_action, SIGNAL( activated() ), 648 connect( day7_action, SIGNAL( activated() ),
649 mView->viewManager(), SLOT( showWeekView() ) ); 649 mView->viewManager(), SLOT( showWeekView() ) );
650 650
651 icon = loadPixmap( pathString + "month" ); 651 icon = loadPixmap( pathString + "month" );
652 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 ); 652 configureToolBarMenu->insertItem(icon, i18n("Month"), 70 );
653 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this ); 653 QAction* month_action = new QAction( i18n("Month"), icon, i18n("Month"), 0, this );
654 month_action->addTo( viewMenu ); 654 month_action->addTo( viewMenu );
655 connect( month_action, SIGNAL( activated() ), 655 connect( month_action, SIGNAL( activated() ),
656 mView->viewManager(), SLOT( showMonthView() ) ); 656 mView->viewManager(), SLOT( showMonthView() ) );
657 657
658 icon = loadPixmap( pathString + "todo" ); 658 icon = loadPixmap( pathString + "todo" );
659 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 ); 659 configureToolBarMenu->insertItem(icon, i18n("Todo View"), 80 );
660 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this ); 660 QAction* todoview_action = new QAction( i18n("Todo View"), icon, i18n("Todo View"), 0, this );
661 todoview_action->addTo( viewMenu ); 661 todoview_action->addTo( viewMenu );
662 connect( todoview_action, SIGNAL( activated() ), 662 connect( todoview_action, SIGNAL( activated() ),
663 mView->viewManager(), SLOT( showTodoView() ) ); 663 mView->viewManager(), SLOT( showTodoView() ) );
664 664
665 icon = loadPixmap( pathString + "journal" ); 665 icon = loadPixmap( pathString + "journal" );
666 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 ); 666 configureToolBarMenu->insertItem(icon, i18n("Journal"), 90 );
667 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this ); 667 QAction* viewjournal_action = new QAction( i18n("Journal"), icon, i18n("Journal"), 0, this );
668 viewjournal_action->addTo( viewMenu ); 668 viewjournal_action->addTo( viewMenu );
669 connect( viewjournal_action, SIGNAL( activated() ), 669 connect( viewjournal_action, SIGNAL( activated() ),
670 mView->viewManager(), SLOT( showJournalView() ) ); 670 mView->viewManager(), SLOT( showJournalView() ) );
671 671
672 icon = loadPixmap( pathString + "xdays" ); 672 icon = loadPixmap( pathString + "xdays" );
673 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 ); 673 configureToolBarMenu->insertItem(icon, i18n("Next days"), 100,4 );
674 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this ); 674 QAction* xdays_action = new QAction( i18n("Next days"), icon, i18n("Next days"), 0, this );
675 xdays_action->addTo( viewMenu ); 675 xdays_action->addTo( viewMenu );
676 connect( xdays_action, SIGNAL( activated() ), 676 connect( xdays_action, SIGNAL( activated() ),
677 mView->viewManager(), SLOT( showNextXView() ) ); 677 mView->viewManager(), SLOT( showNextXView() ) );
678 678
679 icon = loadPixmap( pathString + "whatsnext" ); 679 icon = loadPixmap( pathString + "whatsnext" );
680 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 ); 680 configureToolBarMenu->insertItem(icon, i18n("What's Next"), 110, 4 );
681 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this ); 681 QAction* whatsnext_action = new QAction( i18n("What's Next"), icon, i18n("What's Next"), 0, this );
682 whatsnext_action->addTo( viewMenu ); 682 whatsnext_action->addTo( viewMenu );
683 connect( whatsnext_action, SIGNAL( activated() ), 683 connect( whatsnext_action, SIGNAL( activated() ),
684 mView->viewManager(), SLOT( showWhatsNextView() ) ); 684 mView->viewManager(), SLOT( showWhatsNextView() ) );
685 685
686#if 0 686#if 0
687 action = new QAction( "view_timespan", "Time Span", 0, this ); 687 action = new QAction( "view_timespan", "Time Span", 0, this );
688 action->addTo( viewMenu ); 688 action->addTo( viewMenu );
689 connect( action, SIGNAL( activated() ), 689 connect( action, SIGNAL( activated() ),
690 mView->viewManager(), SLOT( showTimeSpanView() ) ); 690 mView->viewManager(), SLOT( showTimeSpanView() ) );
691#endif 691#endif
692 692
693 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0, 693 mNewSubTodoAction = new QAction( "new_subtodo", i18n("New Sub-Todo..."), 0,
694 this ); 694 this );
695 mNewSubTodoAction->addTo( actionMenu ); 695 mNewSubTodoAction->addTo( actionMenu );
696 connect( mNewSubTodoAction, SIGNAL( activated() ), 696 connect( mNewSubTodoAction, SIGNAL( activated() ),
697 mView, SLOT( newSubTodo() ) ); 697 mView, SLOT( newSubTodo() ) );
698 698
699 actionMenu->insertSeparator(); 699 actionMenu->insertSeparator();
700 700
701 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this ); 701 mShowAction = new QAction( "show_incidence", i18n("Show..."), 0, this );
702 mShowAction->addTo( actionMenu ); 702 mShowAction->addTo( actionMenu );
703 connect( mShowAction, SIGNAL( activated() ), 703 connect( mShowAction, SIGNAL( activated() ),
704 mView, SLOT( showIncidence() ) ); 704 mView, SLOT( showIncidence() ) );
705 705
706 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this ); 706 mEditAction = new QAction( "edit_incidence", i18n("Edit..."), 0, this );
707 mEditAction->addTo( actionMenu ); 707 mEditAction->addTo( actionMenu );
708 connect( mEditAction, SIGNAL( activated() ), 708 connect( mEditAction, SIGNAL( activated() ),
709 mView, SLOT( editIncidence() ) ); 709 mView, SLOT( editIncidence() ) );
710 710
711 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this ); 711 mDeleteAction = new QAction( "delete_incidence", i18n("Delete..."), 0, this );
712 mDeleteAction->addTo( actionMenu ); 712 mDeleteAction->addTo( actionMenu );
713 connect( mDeleteAction, SIGNAL( activated() ), 713 connect( mDeleteAction, SIGNAL( activated() ),
714 mView, SLOT( deleteIncidence() ) ); 714 mView, SLOT( deleteIncidence() ) );
715 715
716 716
717 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this ); 717 mCloneAction = new QAction( "clone_incidence", i18n("Clone..."), 0, this );
718 mCloneAction->addTo( actionMenu ); 718 mCloneAction->addTo( actionMenu );
719 connect( mCloneAction, SIGNAL( activated() ), 719 connect( mCloneAction, SIGNAL( activated() ),
720 mView, SLOT( cloneIncidence() ) ); 720 mView, SLOT( cloneIncidence() ) );
721 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this ); 721 mMoveAction = new QAction( "Move_incidence", i18n("Move..."), 0, this );
722 mMoveAction->addTo( actionMenu ); 722 mMoveAction->addTo( actionMenu );
723 connect( mMoveAction, SIGNAL( activated() ), 723 connect( mMoveAction, SIGNAL( activated() ),
724 mView, SLOT( moveIncidence() ) ); 724 mView, SLOT( moveIncidence() ) );
725 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this ); 725 mBeamAction = new QAction( "Beam_incidence", i18n("Beam..."), 0, this );
726 mBeamAction->addTo( actionMenu ); 726 mBeamAction->addTo( actionMenu );
727 connect( mBeamAction, SIGNAL( activated() ), 727 connect( mBeamAction, SIGNAL( activated() ),
728 mView, SLOT( beamIncidence() ) ); 728 mView, SLOT( beamIncidence() ) );
729 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this ); 729 mCancelAction = new QAction( "Cancel_incidence", i18n("Toggle Cancel"), 0, this );
730 mCancelAction->addTo( actionMenu ); 730 mCancelAction->addTo( actionMenu );
731 connect( mCancelAction, SIGNAL( activated() ), 731 connect( mCancelAction, SIGNAL( activated() ),
732 mView, SLOT( toggleCancelIncidence() ) ); 732 mView, SLOT( toggleCancelIncidence() ) );
733 733
734 actionMenu->insertSeparator(); 734 actionMenu->insertSeparator();
735 735
736 action = new QAction( "purge_completed", i18n("Purge Completed"), 0, 736 action = new QAction( "purge_completed", i18n("Purge Completed"), 0,
737 this ); 737 this );
738 action->addTo( actionMenu ); 738 action->addTo( actionMenu );
739 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) ); 739 connect( action, SIGNAL( activated() ), mView, SLOT( purgeCompleted() ) );
740 740
741 icon = loadPixmap( pathString + "search" ); 741 icon = loadPixmap( pathString + "search" );
742 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this ); 742 QAction* search_action = new QAction( i18n("Search"), icon, i18n("Search..."), 0, this );
743 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4); 743 configureToolBarMenu->insertItem(icon, i18n("Search"), 120 , 4);
744 search_action->addTo( actionMenu ); 744 search_action->addTo( actionMenu );
745 connect( search_action, SIGNAL( activated() ), 745 connect( search_action, SIGNAL( activated() ),
746 mView->dialogManager(), SLOT( showSearchDialog() ) ); 746 mView->dialogManager(), SLOT( showSearchDialog() ) );
747 747
748 icon = loadPixmap( pathString + "today" ); 748 icon = loadPixmap( pathString + "today" );
749 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130); 749 configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130);
750 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this ); 750 QAction* today_action = new QAction( i18n("Go to Today"), icon, i18n("Go to Today"), 0, this );
751 today_action->addTo( actionMenu ); 751 today_action->addTo( actionMenu );
752 connect( today_action, SIGNAL( activated() ), 752 connect( today_action, SIGNAL( activated() ),
753 mView, SLOT( goToday() ) ); 753 mView, SLOT( goToday() ) );
754 754
755 if ( KOPrefs::instance()->mShowFullMenu ) { 755 if ( KOPrefs::instance()->mShowFullMenu ) {
756 actionMenu->insertSeparator(); 756 actionMenu->insertSeparator();
757 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu ); 757 actionMenu->insertItem( i18n("Configure Toolbar"),configureToolBarMenu );
758 758
759 } 759 }
760 // actionMenu->insertSeparator(); 760 // actionMenu->insertSeparator();
761 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0, 761 action = new QAction( "import_qtopia", i18n("Import (*.ics/*.vcs) file"), 0,
762 this ); 762 this );
763 action->addTo( importMenu ); 763 action->addTo( importMenu );
764 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) ); 764 connect( action, SIGNAL( activated() ), SLOT( importIcal() ) );
765 action = new QAction( "import_quick", i18n("Import last file"), 0, 765 action = new QAction( "import_quick", i18n("Import last file"), 0,
766 this ); 766 this );
767 action->addTo( importMenu ); 767 action->addTo( importMenu );
768 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) ); 768 connect( action, SIGNAL( activated() ), SLOT( quickImportIcal() ) );
769 importMenu->insertSeparator(); 769 importMenu->insertSeparator();
770 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0, 770 action = new QAction( "import_bday", i18n("Import Birthdays (KA/Pi)"), 0,
771 this ); 771 this );
772 action->addTo( importMenu ); 772 action->addTo( importMenu );
773 connect( action, SIGNAL( activated() ), SLOT( importBday() ) ); 773 connect( action, SIGNAL( activated() ), SLOT( importBday() ) );
774#ifndef DESKTOP_VERSION 774#ifndef DESKTOP_VERSION
775 importMenu->insertSeparator(); 775 importMenu->insertSeparator();
776 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0, 776 action = new QAction( "import_qtopia", i18n("Import Opie/Qtopia Cal."), 0,
777 this ); 777 this );
778 action->addTo( importMenu ); 778 action->addTo( importMenu );
779 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) ); 779 connect( action, SIGNAL( activated() ), SLOT( importQtopia() ) );
780#else 780#else
781#ifdef _WIN32_ 781#ifdef _WIN32_
782 importMenu->insertSeparator(); 782 importMenu->insertSeparator();
783 action = new QAction( "import_ol", i18n("Import from OL"), 0, 783 action = new QAction( "import_ol", i18n("Import from OL"), 0,
784 this ); 784 this );
785 action->addTo( importMenu ); 785 action->addTo( importMenu );
786 connect( action, SIGNAL( activated() ), SLOT( importOL() ) ); 786 connect( action, SIGNAL( activated() ), SLOT( importOL() ) );
787#endif 787#endif
788#endif 788#endif
789 789
790 importMenu->insertSeparator(); 790 importMenu->insertSeparator();
791 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0, 791 action = new QAction( "load_cal", i18n("Load Calendar Backup"), 0,
792 this ); 792 this );
793 action->addTo( importMenu ); 793 action->addTo( importMenu );
794 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) ); 794 connect( action, SIGNAL( activated() ), SLOT( loadCalendar() ) );
795 795
796 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0, 796 action = new QAction( "save_cal", i18n("Save Calendar Backup"), 0,
797 this ); 797 this );
798 action->addTo( importMenu ); 798 action->addTo( importMenu );
799 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) ); 799 connect( action, SIGNAL( activated() ), SLOT( saveCalendar() ) );
800 800
801 importMenu->insertSeparator(); 801 importMenu->insertSeparator();
802 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0, 802 action = new QAction( "import_qtopia", i18n("Export VCalendar"), 0,
803 this ); 803 this );
804 action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) ); 804 action->addTo( importMenu ); connect( action, SIGNAL( activated() ), SLOT( exportVCalendar() ) );
805 805
806 806
807 //LR 807 //LR
808 QPopupMenu *ex2phone = new QPopupMenu( this ); 808 QPopupMenu *ex2phone = new QPopupMenu( this );
809 ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 809 ex2phone->insertItem(i18n("Complete calendar..."), 1 );
810 ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 810 ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
811 connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) ); 811 connect( ex2phone, SIGNAL( activated(int) ), this, SLOT( exportToPhone( int)) );
812 importMenu->insertItem( i18n("Export to phone"), ex2phone ); 812 importMenu->insertItem( i18n("Export to phone"), ex2phone );
813 813
814 importMenu->insertSeparator(); 814 importMenu->insertSeparator();
815 action = new QAction( "manage cat", i18n("Manage new categories..."), 0, 815 action = new QAction( "manage cat", i18n("Manage new categories..."), 0,
816 this ); 816 this );
817 action->addTo( importMenu ); 817 action->addTo( importMenu );
818 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) ); 818 connect( action, SIGNAL( activated() ), mView, SLOT( manageCategories() ) );
819#ifndef DESKTOP_VERSION 819#ifndef DESKTOP_VERSION
820 importMenu->insertSeparator(); 820 importMenu->insertSeparator();
821 brAction = new QAction( "beam toggle", i18n("Beam receive enabled"), 0, 821 brAction = new QAction( "beam toggle", i18n("Beam receive enabled"), 0,
822 this ); 822 this );
823 brAction->addTo( importMenu ); 823 brAction->addTo( importMenu );
824 brAction->setToggleAction (true ) ; 824 brAction->setToggleAction (true ) ;
825 connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) ); 825 connect( brAction, SIGNAL( activated() ), this, SLOT( toggleBeamReceive() ) );
826 826
827 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0, 827 action = new QAction( "beam all", i18n("Beam complete calendar..."), 0,
828 this ); 828 this );
829 action->addTo( importMenu ); 829 action->addTo( importMenu );
830 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) ); 830 connect( action, SIGNAL( activated() ), mView, SLOT( beamCalendar() ) );
831 831
832 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0, 832 action = new QAction( "beam all", i18n("Beam filtered calendar..."), 0,
833 this ); 833 this );
834 action->addTo( importMenu ); 834 action->addTo( importMenu );
835 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) ); 835 connect( action, SIGNAL( activated() ), mView, SLOT( beamFilteredCalendar()) );
836#else 836#else
837 importMenu->insertSeparator(); 837 importMenu->insertSeparator();
838 icon = loadPixmap( pathString + "print" ); 838 icon = loadPixmap( pathString + "print" );
839 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this ); 839 action = new QAction( i18n("Print calendar..."),icon,i18n("Print calendar..."), 0, this );
840 action->addTo( importMenu ); 840 action->addTo( importMenu );
841 connect( action, SIGNAL( activated() ), 841 connect( action, SIGNAL( activated() ),
842 this, SLOT( printCal() ) ); 842 this, SLOT( printCal() ) );
843 843
844 icon = loadPixmap( pathString + "print" ); 844 icon = loadPixmap( pathString + "print" );
845 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this ); 845 action = new QAction( i18n("Print agenda selection..."),icon,i18n("Print agenda selection..."), 0, this );
846 action->addTo( importMenu ); 846 action->addTo( importMenu );
847 connect( action, SIGNAL( activated() ), 847 connect( action, SIGNAL( activated() ),
848 this, SLOT( printSel() ) ); 848 this, SLOT( printSel() ) );
849 action = new QAction( i18n("Print What's Next View..."),icon,i18n("Print What's Next View..."), 0, this ); 849 action = new QAction( i18n("Print What's Next View..."),icon,i18n("Print What's Next View..."), 0, this );
850 action->addTo( importMenu ); 850 action->addTo( importMenu );
851 connect( action, SIGNAL( activated() ), 851 connect( action, SIGNAL( activated() ),
852 mView->viewManager(), SIGNAL( printWNV() ) ); 852 mView->viewManager(), SIGNAL( printWNV() ) );
853#endif 853#endif
854 importMenu->insertSeparator(); 854 importMenu->insertSeparator();
855 action = new QAction( "beam all", i18n("Save"), 0, 855 action = new QAction( "beam all", i18n("Save"), 0,
856 this ); 856 this );
857 action->addTo( importMenu ); 857 action->addTo( importMenu );
858 connect( action, SIGNAL( activated() ), this, SLOT( save() ) ); 858 connect( action, SIGNAL( activated() ), this, SLOT( save() ) );
859 action = new QAction( "beam all", i18n("Exit (+save)"), 0, 859 action = new QAction( "beam all", i18n("Exit (+save)"), 0,
860 this ); 860 this );
861 action->addTo( importMenu ); 861 action->addTo( importMenu );
862 connect( action, SIGNAL( activated() ), this, SLOT( close() ) ); 862 connect( action, SIGNAL( activated() ), this, SLOT( close() ) );
863 863
864 //menuBar->insertItem( "Configure",configureMenu ); 864 //menuBar->insertItem( "Configure",configureMenu );
865 //configureMenu->insertItem( "Toolbar",configureToolBarMenu ); 865 //configureMenu->insertItem( "Toolbar",configureToolBarMenu );
866 icon = loadPixmap( "korganizer/korganizer" ); 866 icon = loadPixmap( "korganizer/korganizer" );
867 867
868 action = new QAction( "Whats New", i18n("What's new?"), 0,this ); 868 action = new QAction( "Whats New", i18n("What's new?"), 0,this );
869 action->addTo( helpMenu ); 869 action->addTo( helpMenu );
870 connect( action, SIGNAL( activated() ), 870 connect( action, SIGNAL( activated() ),
871 SLOT( whatsNew() ) ); 871 SLOT( whatsNew() ) );
872 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this ); 872 action = new QAction( "featureHowto", i18n("Features + hints..."), 0,this );
873 action->addTo( helpMenu ); 873 action->addTo( helpMenu );
874 connect( action, SIGNAL( activated() ), 874 connect( action, SIGNAL( activated() ),
875 SLOT( features() ) ); 875 SLOT( features() ) );
876 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this ); 876 action = new QAction( "Keys + Colors", i18n("Keys + Colors..."), 0, this );
877 action->addTo( helpMenu ); 877 action->addTo( helpMenu );
878 connect( action, SIGNAL( activated() ), 878 connect( action, SIGNAL( activated() ),
879 SLOT( keyBindings() ) ); 879 SLOT( keyBindings() ) );
880 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this ); 880 action = new QAction( "Sync Howto", i18n("Sync HowTo..."), 0,this );
881 action->addTo( helpMenu ); 881 action->addTo( helpMenu );
882 connect( action, SIGNAL( activated() ), 882 connect( action, SIGNAL( activated() ),
883 SLOT( synchowto() ) ); 883 SLOT( synchowto() ) );
884 action = new QAction( "KDE Sync Howto", i18n("KDE Sync HowTo..."), 0,this ); 884 action = new QAction( "KDE Sync Howto", i18n("KDE Sync HowTo..."), 0,this );
885 action->addTo( helpMenu ); 885 action->addTo( helpMenu );
886 connect( action, SIGNAL( activated() ), 886 connect( action, SIGNAL( activated() ),
887 SLOT( kdesynchowto() ) ); 887 SLOT( kdesynchowto() ) );
888 action = new QAction( "Multi Sync Howto", i18n("Multi Sync HowTo..."), 0,this ); 888 action = new QAction( "Multi Sync Howto", i18n("Multi Sync HowTo..."), 0,this );
889 action->addTo( helpMenu ); 889 action->addTo( helpMenu );
890 connect( action, SIGNAL( activated() ), 890 connect( action, SIGNAL( activated() ),
891 SLOT( multisynchowto() ) ); 891 SLOT( multisynchowto() ) );
892 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this ); 892 action = new QAction( "Auto saving", i18n("Auto saving..."), 0, this );
893 action->addTo( helpMenu ); 893 action->addTo( helpMenu );
894 connect( action, SIGNAL( activated() ), 894 connect( action, SIGNAL( activated() ),
895 SLOT( aboutAutoSaving() ) ); 895 SLOT( aboutAutoSaving() ) );
896 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this ); 896 action = new QAction( "Problemd", i18n("Known Problems..."), 0,this );
897 action->addTo( helpMenu ); 897 action->addTo( helpMenu );
898 connect( action, SIGNAL( activated() ), 898 connect( action, SIGNAL( activated() ),
899 SLOT( aboutKnownBugs() ) ); 899 SLOT( aboutKnownBugs() ) );
900 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this ); 900 action = new QAction( "Translate Howto", i18n("User translation..."), 0,this );
901 action->addTo( helpMenu ); 901 action->addTo( helpMenu );
902 connect( action, SIGNAL( activated() ), 902 connect( action, SIGNAL( activated() ),
903 SLOT( usertrans() ) ); 903 SLOT( usertrans() ) );
904 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this ); 904 action = new QAction( "Frequently asked questions", i18n("FAQ..."), 0,this );
905 action->addTo( helpMenu ); 905 action->addTo( helpMenu );
906 connect( action, SIGNAL( activated() ), 906 connect( action, SIGNAL( activated() ),
907 SLOT( faq() ) ); 907 SLOT( faq() ) );
908 action = new QAction( "licence", i18n("Licence..."), 0, this ); 908 action = new QAction( "licence", i18n("Licence..."), 0, this );
909 action->addTo( helpMenu ); 909 action->addTo( helpMenu );
910 connect( action, SIGNAL( activated() ), 910 connect( action, SIGNAL( activated() ),
911 SLOT( licence() ) ); 911 SLOT( licence() ) );
912 action = new QAction( "about", i18n("About..."), 0, this ); 912 action = new QAction( "about", i18n("About..."), 0, this );
913 action->addTo( helpMenu ); 913 action->addTo( helpMenu );
914 connect( action, SIGNAL( activated() ), 914 connect( action, SIGNAL( activated() ),
915 SLOT( about() ) ); 915 SLOT( about() ) );
916 //menuBar->insertSeparator(); 916 //menuBar->insertSeparator();
917 917
918 // ****************************************************** 918 // ******************************************************
919 // menubar icons 919 // menubar icons
920 920
921 921
922 iconToolBar->setHorizontalStretchable (true ); 922 iconToolBar->setHorizontalStretchable (true );
923 //menuBar->insertItem( iconToolBar ); 923 //menuBar->insertItem( iconToolBar );
924 //xdays_action 924 //xdays_action
925 if (p-> mShowIconNewEvent) 925 if (p-> mShowIconNewEvent)
926 ne_action->addTo( iconToolBar ); 926 ne_action->addTo( iconToolBar );
927 if (p->mShowIconNewTodo ) 927 if (p->mShowIconNewTodo )
928 nt_action->addTo( iconToolBar ); 928 nt_action->addTo( iconToolBar );
929 if (p-> mShowIconSearch) 929 if (p-> mShowIconSearch)
930 search_action->addTo( iconToolBar ); 930 search_action->addTo( iconToolBar );
931 if (p-> mShowIconNext) 931 if (p-> mShowIconNext)
932 whatsnext_action->addTo( iconToolBar ); 932 whatsnext_action->addTo( iconToolBar );
933 if (p-> mShowIconNextDays) 933 if (p-> mShowIconNextDays)
934 xdays_action->addTo( iconToolBar ); 934 xdays_action->addTo( iconToolBar );
935 if (p-> mShowIconList) 935 if (p-> mShowIconList)
936 showlist_action->addTo( iconToolBar ); 936 showlist_action->addTo( iconToolBar );
937 if (p-> mShowIconDay1) 937 if (p-> mShowIconDay1)
938 day1_action->addTo( iconToolBar ); 938 day1_action->addTo( iconToolBar );
939 if (p-> mShowIconDay5) 939 if (p-> mShowIconDay5)
940 day5_action->addTo( iconToolBar ); 940 day5_action->addTo( iconToolBar );
941 if (p-> mShowIconDay7) 941 if (p-> mShowIconDay7)
942 day7_action->addTo( iconToolBar ); 942 day7_action->addTo( iconToolBar );
943 if (p-> mShowIconMonth) 943 if (p-> mShowIconMonth)
944 month_action->addTo( iconToolBar ); 944 month_action->addTo( iconToolBar );
945 if (p-> mShowIconTodoview) 945 if (p-> mShowIconTodoview)
946 todoview_action->addTo( iconToolBar ); 946 todoview_action->addTo( iconToolBar );
947 if (p-> mShowIconJournal) 947 if (p-> mShowIconJournal)
948 viewjournal_action->addTo( iconToolBar ); 948 viewjournal_action->addTo( iconToolBar );
949 icon = loadPixmap( pathString + "2leftarrowB" ); 949 icon = loadPixmap( pathString + "2leftarrowB" );
950 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14); 950 configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200, 14);
951 if (p-> mShowIconBackFast) { 951 if (p-> mShowIconBackFast) {
952 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this ); 952 action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this );
953 connect( action, SIGNAL( activated() ), 953 connect( action, SIGNAL( activated() ),
954 mView, SLOT( goPreviousMonth() ) ); 954 mView, SLOT( goPreviousMonth() ) );
955 action->addTo( iconToolBar ); 955 action->addTo( iconToolBar );
956 } 956 }
957 icon = loadPixmap( pathString + "1leftarrowB" ); 957 icon = loadPixmap( pathString + "1leftarrowB" );
958 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15); 958 configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210,15);
959 if (p-> mShowIconBack) { 959 if (p-> mShowIconBack) {
960 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this ); 960 action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this );
961 connect( action, SIGNAL( activated() ), 961 connect( action, SIGNAL( activated() ),
962 mView, SLOT( goPrevious() ) ); 962 mView, SLOT( goPrevious() ) );
963 action->addTo( iconToolBar ); 963 action->addTo( iconToolBar );
964 } 964 }
965 if (p-> mShowIconToday) 965 if (p-> mShowIconToday)
966 today_action->addTo( iconToolBar ); 966 today_action->addTo( iconToolBar );
967 icon = loadPixmap( pathString + "1rightarrowB" ); 967 icon = loadPixmap( pathString + "1rightarrowB" );
968 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220); 968 configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220);
969 if (p-> mShowIconForward) { 969 if (p-> mShowIconForward) {
970 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this ); 970 action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this );
971 connect( action, SIGNAL( activated() ), 971 connect( action, SIGNAL( activated() ),
972 mView, SLOT( goNext() ) ); 972 mView, SLOT( goNext() ) );
973 action->addTo( iconToolBar ); 973 action->addTo( iconToolBar );
974 } 974 }
975 icon = loadPixmap( pathString + "2rightarrowB" ); 975 icon = loadPixmap( pathString + "2rightarrowB" );
976 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230); 976 configureToolBarMenu->insertItem(icon, i18n("Next month"), 230);
977 if (p-> mShowIconForwardFast) { 977 if (p-> mShowIconForwardFast) {
978 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this ); 978 action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this );
979 connect( action, SIGNAL( activated() ), 979 connect( action, SIGNAL( activated() ),
980 mView, SLOT( goNextMonth() ) ); 980 mView, SLOT( goNextMonth() ) );
981 action->addTo( iconToolBar ); 981 action->addTo( iconToolBar );
982 } 982 }
983 983
984 984
985 configureToolBarMenu->insertItem(i18n("What's This?"), 300); 985 configureToolBarMenu->insertItem(i18n("What's This?"), 300);
986 986
987 if (p-> mShowIconNewEvent) 987 if (p-> mShowIconNewEvent)
988 configureToolBarMenu->setItemChecked( 10, true ); 988 configureToolBarMenu->setItemChecked( 10, true );
989 if (p->mShowIconNewTodo ) 989 if (p->mShowIconNewTodo )
990 configureToolBarMenu->setItemChecked( 20, true ); 990 configureToolBarMenu->setItemChecked( 20, true );
991 if (p-> mShowIconSearch) 991 if (p-> mShowIconSearch)
992 configureToolBarMenu->setItemChecked( 120, true ); 992 configureToolBarMenu->setItemChecked( 120, true );
993 if (p-> mShowIconList) 993 if (p-> mShowIconList)
994 configureToolBarMenu->setItemChecked( 30, true ); 994 configureToolBarMenu->setItemChecked( 30, true );
995 if (p-> mShowIconDay1) 995 if (p-> mShowIconDay1)
996 configureToolBarMenu->setItemChecked( 40, true ); 996 configureToolBarMenu->setItemChecked( 40, true );
997 if (p-> mShowIconDay5) 997 if (p-> mShowIconDay5)
998 configureToolBarMenu->setItemChecked( 50, true ); 998 configureToolBarMenu->setItemChecked( 50, true );
999 if (p-> mShowIconDay7) 999 if (p-> mShowIconDay7)
1000 configureToolBarMenu->setItemChecked( 60, true ); 1000 configureToolBarMenu->setItemChecked( 60, true );
1001 if (p-> mShowIconMonth) 1001 if (p-> mShowIconMonth)
1002 configureToolBarMenu->setItemChecked( 70, true ); 1002 configureToolBarMenu->setItemChecked( 70, true );
1003 if (p-> mShowIconTodoview) 1003 if (p-> mShowIconTodoview)
1004 configureToolBarMenu->setItemChecked( 80, true ); 1004 configureToolBarMenu->setItemChecked( 80, true );
1005 if (p-> mShowIconBackFast) 1005 if (p-> mShowIconBackFast)
1006 configureToolBarMenu->setItemChecked( 200, true ); 1006 configureToolBarMenu->setItemChecked( 200, true );
1007 if (p-> mShowIconBack) 1007 if (p-> mShowIconBack)
1008 configureToolBarMenu->setItemChecked( 210, true ); 1008 configureToolBarMenu->setItemChecked( 210, true );
1009 if (p-> mShowIconToday) 1009 if (p-> mShowIconToday)
1010 configureToolBarMenu->setItemChecked( 130, true ); 1010 configureToolBarMenu->setItemChecked( 130, true );
1011 if (p-> mShowIconForward) 1011 if (p-> mShowIconForward)
1012 configureToolBarMenu->setItemChecked( 220, true ); 1012 configureToolBarMenu->setItemChecked( 220, true );
1013 if (p-> mShowIconForwardFast) 1013 if (p-> mShowIconForwardFast)
1014 configureToolBarMenu->setItemChecked( 230, true ); 1014 configureToolBarMenu->setItemChecked( 230, true );
1015 if (p-> mShowIconNextDays) 1015 if (p-> mShowIconNextDays)
1016 configureToolBarMenu->setItemChecked( 100, true ); 1016 configureToolBarMenu->setItemChecked( 100, true );
1017 if (p-> mShowIconNext) 1017 if (p-> mShowIconNext)
1018 configureToolBarMenu->setItemChecked( 110, true ); 1018 configureToolBarMenu->setItemChecked( 110, true );
1019 if (p-> mShowIconJournal) 1019 if (p-> mShowIconJournal)
1020 configureToolBarMenu->setItemChecked( 90, true ); 1020 configureToolBarMenu->setItemChecked( 90, true );
1021 if (p-> mShowIconWhatsThis) 1021 if (p-> mShowIconWhatsThis)
1022 configureToolBarMenu->setItemChecked( 300, true ); 1022 configureToolBarMenu->setItemChecked( 300, true );
1023 1023
1024 QLabel* dummy = new QLabel( iconToolBar ); 1024 QLabel* dummy = new QLabel( iconToolBar );
1025 dummy->setBackgroundColor( iconToolBar->backgroundColor() ); 1025 dummy->setBackgroundColor( iconToolBar->backgroundColor() );
1026 if (!p-> mShowIconStretch) 1026 if (!p-> mShowIconStretch)
1027 iconToolBar->setStretchableWidget ( dummy ) ; 1027 iconToolBar->setStretchableWidget ( dummy ) ;
1028 else 1028 else
1029 configureToolBarMenu->setItemChecked( 5, true ); 1029 configureToolBarMenu->setItemChecked( 5, true );
1030 if (p-> mShowIconWhatsThis) 1030 if (p-> mShowIconWhatsThis)
1031 QWhatsThis::whatsThisButton ( iconToolBar ); 1031 QWhatsThis::whatsThisButton ( iconToolBar );
1032 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) ); 1032 connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) );
1033 configureAgenda( p->mHourSize ); 1033 configureAgenda( p->mHourSize );
1034 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) ); 1034 connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) );
1035} 1035}
1036 1036
1037void MainWindow::exportToPhone( int mode ) 1037void MainWindow::exportToPhone( int mode )
1038{ 1038{
1039 1039
1040 //ex2phone->insertItem(i18n("Complete calendar..."), 1 ); 1040 //ex2phone->insertItem(i18n("Complete calendar..."), 1 );
1041 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 ); 1041 //ex2phone->insertItem(i18n("Filtered calendar..."), 2 );
1042 KOex2phonePrefs ex2phone; 1042 KOex2phonePrefs ex2phone;
1043 1043
1044 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection ); 1044 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection );
1045 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice ); 1045 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice );
1046 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel ); 1046 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel );
1047 if ( mode == 1 ) 1047 if ( mode == 1 )
1048 ex2phone.setCaption(i18n("Export complete calendar")); 1048 ex2phone.setCaption(i18n("Export complete calendar"));
1049 if ( mode == 2 ) 1049 if ( mode == 2 )
1050 ex2phone.setCaption(i18n("Export filtered calendar")); 1050 ex2phone.setCaption(i18n("Export filtered calendar"));
1051 1051
1052 if ( !ex2phone.exec() ) { 1052 if ( !ex2phone.exec() ) {
1053 return; 1053 return;
1054 } 1054 }
1055 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text(); 1055 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text();
1056 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text(); 1056 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text();
1057 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text(); 1057 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text();
1058 1058
1059 int inFuture = 0; 1059 int inFuture = 0;
1060 if ( ex2phone.mWriteBackFuture->isChecked() ) 1060 if ( ex2phone.mWriteBackFuture->isChecked() )
1061 inFuture = ex2phone.mWriteBackFutureWeeks->value(); 1061 inFuture = ex2phone.mWriteBackFutureWeeks->value();
1062 QPtrList<Incidence> delSel; 1062 QPtrList<Incidence> delSel;
1063 if ( mode == 1 ) 1063 if ( mode == 1 )
1064 delSel = mCalendar->rawIncidences(); 1064 delSel = mCalendar->rawIncidences();
1065 if ( mode == 2 ) 1065 if ( mode == 2 )
1066 delSel = mCalendar->incidences(); 1066 delSel = mCalendar->incidences();
1067 CalendarLocal* cal = new CalendarLocal(); 1067 CalendarLocal* cal = new CalendarLocal();
1068 cal->setLocalTime(); 1068 cal->setLocalTime();
1069 Incidence *incidence = delSel.first(); 1069 Incidence *incidence = delSel.first();
1070 QDateTime cur = QDateTime::currentDateTime().addDays( -7 ); 1070 QDateTime cur = QDateTime::currentDateTime().addDays( -7 );
1071 QDateTime end = cur.addDays( ( inFuture +1 ) *7 ); 1071 QDateTime end = cur.addDays( ( inFuture +1 ) *7 );
1072 while ( incidence ) { 1072 while ( incidence ) {
1073 if ( incidence->type() != "Journal" ) { 1073 if ( incidence->type() != "Journal" ) {
1074 bool add = true; 1074 bool add = true;
1075 if ( inFuture ) { 1075 if ( inFuture ) {
1076 QDateTime dt; 1076 QDateTime dt;
1077 if ( incidence->type() == "Todo" ) { 1077 if ( incidence->type() == "Todo" ) {
1078 Todo * t = (Todo*)incidence; 1078 Todo * t = (Todo*)incidence;
1079 if ( t->hasDueDate() ) 1079 if ( t->hasDueDate() )
1080 dt = t->dtDue(); 1080 dt = t->dtDue();
1081 else 1081 else
1082 dt = cur.addSecs( 62 ); 1082 dt = cur.addSecs( 62 );
1083 } 1083 }
1084 else { 1084 else {
1085 bool ok; 1085 bool ok;
1086 dt = incidence->getNextOccurence( cur, &ok ); 1086 dt = incidence->getNextOccurence( cur, &ok );
1087 if ( !ok ) 1087 if ( !ok )
1088 dt = cur.addSecs( -62 ); 1088 dt = cur.addSecs( -62 );
1089 } 1089 }
1090 if ( dt < cur || dt > end ) { 1090 if ( dt < cur || dt > end ) {
1091 add = false; 1091 add = false;
1092 } 1092 }
1093 } 1093 }
1094 if ( add ) { 1094 if ( add ) {
1095 Incidence *in = incidence->clone(); 1095 Incidence *in = incidence->clone();
1096 cal->addIncidence( in ); 1096 cal->addIncidence( in );
1097 } 1097 }
1098 } 1098 }
1099 incidence = delSel.next(); 1099 incidence = delSel.next();
1100 } 1100 }
1101 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice, 1101 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice,
1102 KPimGlobalPrefs::instance()->mEx2PhoneConnection, 1102 KPimGlobalPrefs::instance()->mEx2PhoneConnection,
1103 KPimGlobalPrefs::instance()->mEx2PhoneModel ); 1103 KPimGlobalPrefs::instance()->mEx2PhoneModel );
1104 1104
1105 setCaption( i18n("Writing to phone...")); 1105 setCaption( i18n("Writing to phone..."));
1106 if ( PhoneFormat::writeToPhone( cal ) ) 1106 if ( PhoneFormat::writeToPhone( cal ) )
1107 setCaption( i18n("Export to phone successful!")); 1107 setCaption( i18n("Export to phone successful!"));
1108 else 1108 else
1109 setCaption( i18n("Error exporting to phone!")); 1109 setCaption( i18n("Error exporting to phone!"));
1110 delete cal; 1110 delete cal;
1111} 1111}
1112 1112
1113 1113
1114void MainWindow::setDefaultPreferences() 1114void MainWindow::setDefaultPreferences()
1115{ 1115{
1116 KOPrefs *p = KOPrefs::instance(); 1116 KOPrefs *p = KOPrefs::instance();
1117 1117
1118 p->mCompactDialogs = true; 1118 p->mCompactDialogs = true;
1119 p->mConfirm = true; 1119 p->mConfirm = true;
1120 // p->mEnableQuickTodo = false; 1120 // p->mEnableQuickTodo = false;
1121 1121
1122} 1122}
1123 1123
1124QString MainWindow::resourcePath() 1124QString MainWindow::resourcePath()
1125{ 1125{
1126 return KGlobal::iconLoader()->iconPath(); 1126 return KGlobal::iconLoader()->iconPath();
1127} 1127}
1128 1128
1129void MainWindow::displayText( QString text ,QString cap ) 1129void MainWindow::displayText( QString text ,QString cap )
1130{ 1130{
1131 QDialog dia( this, "name", true ); ; 1131 QDialog dia( this, "name", true ); ;
1132 dia.setCaption( cap ); 1132 dia.setCaption( cap );
1133 QVBoxLayout* lay = new QVBoxLayout( &dia ); 1133 QVBoxLayout* lay = new QVBoxLayout( &dia );
1134 lay->setSpacing( 3 ); 1134 lay->setSpacing( 3 );
1135 lay->setMargin( 3 ); 1135 lay->setMargin( 3 );
1136 QTextBrowser tb ( &dia ); 1136 QTextBrowser tb ( &dia );
1137 lay->addWidget( &tb ); 1137 lay->addWidget( &tb );
1138 tb.setText( text ); 1138 tb.setText( text );
1139#ifdef DESKTOP_VERSION 1139#ifdef DESKTOP_VERSION
1140 dia.resize( 640, 480); 1140 dia.resize( 640, 480);
1141#else 1141#else
1142 dia.showMaximized(); 1142 dia.showMaximized();
1143#endif 1143#endif
1144 dia.exec(); 1144 dia.exec();
1145} 1145}
1146 1146
1147void MainWindow::features() 1147void MainWindow::features()
1148{ 1148{
1149 1149
1150 KApplication::showFile( i18n("KO/Pi Features and hints"), "kdepim/korganizer/featuresKOPI.txt" ); 1150 KApplication::showFile( i18n("KO/Pi Features and hints"), "kdepim/korganizer/featuresKOPI.txt" );
1151} 1151}
1152 1152
1153void MainWindow::usertrans() 1153void MainWindow::usertrans()
1154{ 1154{
1155 1155
1156 KApplication::showFile( i18n("KO/Pi User translation HowTo"), "kdepim/korganizer/usertranslationHOWTO.txt" ); 1156 KApplication::showFile( i18n("KO/Pi User translation HowTo"), "kdepim/korganizer/usertranslationHOWTO.txt" );
1157} 1157}
1158 1158
1159void MainWindow::kdesynchowto() 1159void MainWindow::kdesynchowto()
1160{ 1160{
1161 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" ); 1161 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" );
1162} 1162}
1163void MainWindow::multisynchowto() 1163void MainWindow::multisynchowto()
1164{ 1164{
1165 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" ); 1165 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/MultiSyncHowTo.txt" );
1166} 1166}
1167void MainWindow::synchowto() 1167void MainWindow::synchowto()
1168{ 1168{
1169 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" ); 1169 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" );
1170} 1170}
1171void MainWindow::faq() 1171void MainWindow::faq()
1172{ 1172{
1173 KApplication::showFile( i18n("KO/Pi FAQ"), "kdepim/korganizer/kopiFAQ.txt" ); 1173 KApplication::showFile( i18n("KO/Pi FAQ"), "kdepim/korganizer/kopiFAQ.txt" );
1174 1174
1175} 1175}
1176void MainWindow::whatsNew() 1176void MainWindow::whatsNew()
1177{ 1177{
1178 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" ); 1178 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" );
1179 1179
1180} 1180}
1181void MainWindow::licence() 1181void MainWindow::licence()
1182{ 1182{
1183 KApplication::showLicence(); 1183 KApplication::showLicence();
1184 1184
1185} 1185}
1186void MainWindow::about() 1186void MainWindow::about()
1187{ 1187{
1188 QString version; 1188 QString version;
1189#include <../version> 1189#include <../version>
1190 QMessageBox::about( this, i18n("About KOrganizer/Pi"), 1190 QMessageBox::about( this, i18n("About KOrganizer/Pi"),
1191 i18n("KOrganizer/Platform-independent\n") + 1191 i18n("KOrganizer/Platform-independent\n") +
1192 "(KO/Pi) " + version + " - " + 1192 "(KO/Pi) " + version + " - " +
1193 1193
1194#ifdef DESKTOP_VERSION 1194#ifdef DESKTOP_VERSION
1195 i18n("Desktop Edition\n") + 1195 i18n("Desktop Edition\n") +
1196#else 1196#else
1197 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") + 1197 i18n("PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n") +
1198#endif 1198#endif
1199 i18n("(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n") ); 1199 i18n("(c) 2004 Lutz Rogowski\nEmail:lutz@pi-sync.net\nKO/Pi is based on KOrganizer\n(c) 2002,2003 Cornelius Schumacher\nEmail: schumacher@kde.org\nKOrganizer/Pi is licensed\nunder the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.korganizer.org\nwww.pi-sync.net\n") );
1200} 1200}
1201void MainWindow::keyBindings() 1201void MainWindow::keyBindings()
1202{ 1202{
1203 QString cap = i18n("KO/Pi Keys + Colors"); 1203 QString cap = i18n("KO/Pi Keys + Colors");
1204 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + 1204 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") +
1205 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ 1205 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
1206 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + 1206 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
1207 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ 1207 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
1208 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ 1208 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+
1209 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ 1209 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+
1210 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ 1210 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+
1211 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+ 1211 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+
1212 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ 1212 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+
1213 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ 1213 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+
1214 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ 1214 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+
1215 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ 1215 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+
1216 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ 1216 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+
1217 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+ 1217 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+
1218 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ 1218 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+
1219 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ 1219 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+
1220 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ 1220 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+
1221 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ 1221 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+
1222 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ 1222 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+
1223 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ 1223 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+
1224 i18n("<p><h3>In agenda view:</h3></p>\n") + 1224 i18n("<p><h3>In agenda view:</h3></p>\n") +
1225 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ 1225 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+
1226 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ 1226 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+
1227 i18n("<p><h3>In todo view:</h3></p>\n") + 1227 i18n("<p><h3>In todo view:</h3></p>\n") +
1228 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+ 1228 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+
1229 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+ 1229 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+
1230 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+ 1230 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+
1231 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ 1231 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+
1232 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1232 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1233 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ 1233 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+
1234 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ 1234 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+
1235 i18n("<p><h3>In list view:</h3></p>\n") + 1235 i18n("<p><h3>In list view:</h3></p>\n") +
1236 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1236 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1237 i18n("<p><b>return</b>: Select item+one step down</p>\n")+ 1237 i18n("<p><b>return</b>: Select item+one step down</p>\n")+
1238 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ 1238 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+
1239 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ 1239 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+
1240 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ 1240 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+
1241 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ 1241 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+
1242 i18n("<p><h3>In event/todo viewer:</h3></p>\n") + 1242 i18n("<p><h3>In event/todo viewer:</h3></p>\n") +
1243 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ 1243 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+
1244 i18n("<p><b>A</b>: Show agenda view.</p>\n")+ 1244 i18n("<p><b>A</b>: Show agenda view.</p>\n")+
1245 i18n("<p><b>E</b>: Edit item</p>\n") + 1245 i18n("<p><b>E</b>: Edit item</p>\n") +
1246 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + 1246 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") +
1247 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + 1247 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") +
1248 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ 1248 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+
1249 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ 1249 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+
1250 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ 1250 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+
1251 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ 1251 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+
1252 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ 1252 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+
1253 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + 1253 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") +
1254 i18n("<p><b>White</b>: Item readonly</p>\n"); 1254 i18n("<p><b>White</b>: Item readonly</p>\n");
1255 displayText( text, cap); 1255 displayText( text, cap);
1256} 1256}
1257void MainWindow::aboutAutoSaving() 1257void MainWindow::aboutAutoSaving()
1258{ 1258{
1259 QString text = i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configureable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"); 1259 QString text = i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n");
1260 1260
1261 KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text); 1261 KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text);
1262 1262
1263} 1263}
1264void MainWindow::aboutKnownBugs() 1264void MainWindow::aboutKnownBugs()
1265{ 1265{
1266 QMessageBox* msg; 1266 QMessageBox* msg;
1267 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), 1267 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"),
1268 i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+ 1268 i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+
1269 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ 1269 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+
1270 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") + 1270 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n") +
1271 i18n("\nor report them in the bugtracker on\n") + 1271 i18n("\nor report them in the bugtracker on\n") +
1272 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), 1272 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"),
1273 QMessageBox::NoIcon, 1273 QMessageBox::NoIcon,
1274 QMessageBox::Ok, 1274 QMessageBox::Ok,
1275 QMessageBox::NoButton, 1275 QMessageBox::NoButton,
1276 QMessageBox::NoButton); 1276 QMessageBox::NoButton);
1277 msg->exec(); 1277 msg->exec();
1278 delete msg; 1278 delete msg;
1279 1279
1280} 1280}
1281 1281
1282QString MainWindow::defaultFileName() 1282QString MainWindow::defaultFileName()
1283{ 1283{
1284 return locateLocal( "data", "korganizer/mycalendar.ics" ); 1284 return locateLocal( "data", "korganizer/mycalendar.ics" );
1285} 1285}
1286QString MainWindow::syncFileName() 1286QString MainWindow::syncFileName()
1287{ 1287{
1288#ifdef DESKTOP_VERSION 1288#ifdef DESKTOP_VERSION
1289 return locateLocal( "tmp", "synccalendar.ics" ); 1289 return locateLocal( "tmp", "synccalendar.ics" );
1290#else 1290#else
1291 return QString( "/tmp/synccalendar.ics" ); 1291 return QString( "/tmp/synccalendar.ics" );
1292#endif 1292#endif
1293} 1293}
1294 1294
1295void MainWindow::processIncidenceSelection( Incidence *incidence ) 1295void MainWindow::processIncidenceSelection( Incidence *incidence )
1296{ 1296{
1297 if ( !incidence ) { 1297 if ( !incidence ) {
1298 enableIncidenceActions( false ); 1298 enableIncidenceActions( false );
1299 1299
1300 mNewSubTodoAction->setEnabled( false ); 1300 mNewSubTodoAction->setEnabled( false );
1301 setCaptionToDates(); 1301 setCaptionToDates();
1302 return; 1302 return;
1303 1303
1304 } 1304 }
1305 1305
1306 //KGlobal::locale()->formatDateTime(nextA, true); 1306 //KGlobal::locale()->formatDateTime(nextA, true);
1307 QString startString = ""; 1307 QString startString = "";
1308 if ( incidence->type() != "Todo" ) { 1308 if ( incidence->type() != "Todo" ) {
1309 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { 1309 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) {
1310 if ( incidence->doesFloat() ) { 1310 if ( incidence->doesFloat() ) {
1311 startString += ": "+incidence->dtStartDateStr( true ); 1311 startString += ": "+incidence->dtStartDateStr( true );
1312 startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); 1312 startString += " --- "+((Event*)incidence)->dtEndDateStr( true );
1313 1313
1314 } else { 1314 } else {
1315 startString = ": "+incidence->dtStartStr(true); 1315 startString = ": "+incidence->dtStartStr(true);
1316 startString += " --- "+((Event*)incidence)->dtEndStr(true); 1316 startString += " --- "+((Event*)incidence)->dtEndStr(true);
1317 1317
1318 } 1318 }
1319 1319
1320 } else { 1320 } else {
1321 if ( incidence->dtStart().time() != incidence->dtEnd().time() ) 1321 if ( incidence->dtStart().time() != incidence->dtEnd().time() )
1322 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ 1322 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+
1323 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); 1323 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time());
1324 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); 1324 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true);
1325 } 1325 }
1326 1326
1327 } 1327 }
1328 else 1328 else
1329 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); 1329 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed");
1330 if ( !incidence->location().isEmpty() ) 1330 if ( !incidence->location().isEmpty() )
1331 startString += " (" +incidence->location()+")"; 1331 startString += " (" +incidence->location()+")";
1332 setCaption( incidence->summary()+startString); 1332 setCaption( incidence->summary()+startString);
1333 1333
1334 enableIncidenceActions( true ); 1334 enableIncidenceActions( true );
1335 1335
1336 if ( incidence->type() == "Event" ) { 1336 if ( incidence->type() == "Event" ) {
1337 mShowAction->setText( i18n("Show Event...") ); 1337 mShowAction->setText( i18n("Show Event...") );
1338 mEditAction->setText( i18n("Edit Event...") ); 1338 mEditAction->setText( i18n("Edit Event...") );
1339 mDeleteAction->setText( i18n("Delete Event...") ); 1339 mDeleteAction->setText( i18n("Delete Event...") );
1340 1340
1341 mNewSubTodoAction->setEnabled( false ); 1341 mNewSubTodoAction->setEnabled( false );
1342 } else if ( incidence->type() == "Todo" ) { 1342 } else if ( incidence->type() == "Todo" ) {
1343 mShowAction->setText( i18n("Show Todo...") ); 1343 mShowAction->setText( i18n("Show Todo...") );
1344 mEditAction->setText( i18n("Edit Todo...") ); 1344 mEditAction->setText( i18n("Edit Todo...") );
1345 mDeleteAction->setText( i18n("Delete Todo...") ); 1345 mDeleteAction->setText( i18n("Delete Todo...") );
1346 1346
1347 mNewSubTodoAction->setEnabled( true ); 1347 mNewSubTodoAction->setEnabled( true );
1348 } else { 1348 } else {
1349 mShowAction->setText( i18n("Show...") ); 1349 mShowAction->setText( i18n("Show...") );
1350 mShowAction->setText( i18n("Edit...") ); 1350 mShowAction->setText( i18n("Edit...") );
1351 mShowAction->setText( i18n("Delete...") ); 1351 mShowAction->setText( i18n("Delete...") );
1352 1352
1353 mNewSubTodoAction->setEnabled( false ); 1353 mNewSubTodoAction->setEnabled( false );
1354 } 1354 }
1355} 1355}
1356 1356
1357void MainWindow::enableIncidenceActions( bool enabled ) 1357void MainWindow::enableIncidenceActions( bool enabled )
1358{ 1358{
1359 mShowAction->setEnabled( enabled ); 1359 mShowAction->setEnabled( enabled );
1360 mEditAction->setEnabled( enabled ); 1360 mEditAction->setEnabled( enabled );
1361 mDeleteAction->setEnabled( enabled ); 1361 mDeleteAction->setEnabled( enabled );
1362 1362
1363 mCloneAction->setEnabled( enabled ); 1363 mCloneAction->setEnabled( enabled );
1364 mMoveAction->setEnabled( enabled ); 1364 mMoveAction->setEnabled( enabled );
1365 mBeamAction->setEnabled( enabled ); 1365 mBeamAction->setEnabled( enabled );
1366 mCancelAction->setEnabled( enabled ); 1366 mCancelAction->setEnabled( enabled );
1367} 1367}
1368 1368
1369void MainWindow::importOL() 1369void MainWindow::importOL()
1370{ 1370{
1371#ifdef _WIN32_ 1371#ifdef _WIN32_
1372 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); 1372 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this );
1373 id->exec(); 1373 id->exec();
1374 delete id; 1374 delete id;
1375 mView->updateView(); 1375 mView->updateView();
1376#endif 1376#endif
1377} 1377}
1378void MainWindow::importBday() 1378void MainWindow::importBday()
1379{ 1379{
1380 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1380 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1381 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), 1381 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"),
1382 i18n("Import!"), i18n("Cancel"), 0, 1382 i18n("Import!"), i18n("Cancel"), 0,
1383 0, 1 ); 1383 0, 1 );
1384 if ( result == 0 ) { 1384 if ( result == 0 ) {
1385 mView->importBday(); 1385 mView->importBday();
1386 1386
1387 } 1387 }
1388 1388
1389 1389
1390} 1390}
1391void MainWindow::importQtopia() 1391void MainWindow::importQtopia()
1392{ 1392{
1393#ifndef DESKTOP_VERSION 1393#ifndef DESKTOP_VERSION
1394 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1394 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1395 i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"), 1395 i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"),
1396 i18n("Import!"), i18n("Cancel"), 0, 1396 i18n("Import!"), i18n("Cancel"), 0,
1397 0, 1 ); 1397 0, 1 );
1398 if ( result == 0 ) { 1398 if ( result == 0 ) {
1399 QString datebook = Global::applicationFileName( "datebook", "datebook.xml"); 1399 QString datebook = Global::applicationFileName( "datebook", "datebook.xml");
1400 QString todolist = Global::applicationFileName( "todolist", "todolist.xml"); 1400 QString todolist = Global::applicationFileName( "todolist", "todolist.xml");
1401 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml"; 1401 QString categories = QString( getenv( "HOME" ) ) + "/Settings/Categories.xml";
1402 mView->importQtopia( categories, datebook, todolist ); 1402 mView->importQtopia( categories, datebook, todolist );
1403 } 1403 }
1404#else 1404#else
1405 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1405 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1406 i18n("Not supported \non desktop!\n"), 1406 i18n("Not supported \non desktop!\n"),
1407 i18n("Ok"), i18n("Cancel"), 0, 1407 i18n("Ok"), i18n("Cancel"), 0,
1408 0, 1 ); 1408 0, 1 );
1409 1409
1410#endif 1410#endif
1411} 1411}
1412 1412
1413void MainWindow::saveOnClose() 1413void MainWindow::saveOnClose()
1414{ 1414{
1415 KOPrefs *p = KOPrefs::instance(); 1415 KOPrefs *p = KOPrefs::instance();
1416 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal ); 1416 p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal );
1417 p->mToolBarUp = iconToolBar->x() > width()/2 || 1417 p->mToolBarUp = iconToolBar->x() > width()/2 ||
1418 iconToolBar->y() > height()/2; 1418 iconToolBar->y() > height()/2;
1419 mView->writeSettings(); 1419 mView->writeSettings();
1420 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName())) 1420 if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName()))
1421 save(); 1421 save();
1422} 1422}
1423void MainWindow::slotModifiedChanged( bool changed ) 1423void MainWindow::slotModifiedChanged( bool changed )
1424{ 1424{
1425 if ( mBlockAtStartup ) 1425 if ( mBlockAtStartup )
1426 return; 1426 return;
1427 int msec; 1427 int msec;
1428 // we store the changes after 1 minute, 1428 // we store the changes after 1 minute,
1429 // and for safety reasons after 10 minutes again 1429 // and for safety reasons after 10 minutes again
1430 if ( !mSyncManager->blockSave() ) 1430 if ( !mSyncManager->blockSave() )
1431 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000; 1431 msec = (1000 * 60*KOPrefs::instance()->mAutoSaveInterval) +1000;
1432 else 1432 else
1433 msec = 1000 * 600; 1433 msec = 1000 * 600;
1434 mSaveTimer.start( msec, true ); // 1 minute 1434 mSaveTimer.start( msec, true ); // 1 minute
1435 qDebug("KO: Saving File in %d secs!", msec/1000); 1435 qDebug("KO: Saving File in %d secs!", msec/1000);
1436 mCalendarModifiedFlag = true; 1436 mCalendarModifiedFlag = true;
1437} 1437}
1438void MainWindow::save() 1438void MainWindow::save()
1439{ 1439{
1440 if ( mSyncManager->blockSave() ) 1440 if ( mSyncManager->blockSave() )
1441 return; 1441 return;
1442 mSyncManager->setBlockSave(true); 1442 mSyncManager->setBlockSave(true);
1443 if ( mView->checkFileVersion( defaultFileName()) ) { 1443 if ( mView->checkFileVersion( defaultFileName()) ) {
1444 1444
1445 QTime neededSaveTime = QDateTime::currentDateTime().time(); 1445 QTime neededSaveTime = QDateTime::currentDateTime().time();
1446 setCaption(i18n("KO/Pi:Saving Data to File ..." )); 1446 setCaption(i18n("KO/Pi:Saving Data to File ..." ));
1447 qDebug("KO: Start saving data to file!"); 1447 qDebug("KO: Start saving data to file!");
1448 mView->saveCalendar( defaultFileName() ); 1448 mView->saveCalendar( defaultFileName() );
1449 1449
1450 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 1450 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
1451 qDebug("KO: Needed %d ms for saving.",msNeeded ); 1451 qDebug("KO: Needed %d ms for saving.",msNeeded );
1452 QString savemes; 1452 QString savemes;
1453 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); 1453 savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 );
1454 setCaption(savemes); 1454 setCaption(savemes);
1455 } else 1455 } else
1456 setCaption(i18n("Saving cancelled!")); 1456 setCaption(i18n("Saving cancelled!"));
1457 mCalendarModifiedFlag = false; 1457 mCalendarModifiedFlag = false;
1458 mSyncManager->setBlockSave( false ); 1458 mSyncManager->setBlockSave( false );
1459} 1459}
1460 1460
1461void MainWindow::keyReleaseEvent ( QKeyEvent * e) 1461void MainWindow::keyReleaseEvent ( QKeyEvent * e)
1462{ 1462{
1463 if ( !e->isAutoRepeat() ) { 1463 if ( !e->isAutoRepeat() ) {
1464 mFlagKeyPressed = false; 1464 mFlagKeyPressed = false;
1465 } 1465 }
1466} 1466}
1467void MainWindow::keyPressEvent ( QKeyEvent * e ) 1467void MainWindow::keyPressEvent ( QKeyEvent * e )
1468{ 1468{
1469 qApp->processEvents(); 1469 qApp->processEvents();
1470 if ( e->isAutoRepeat() && !mFlagKeyPressed ) { 1470 if ( e->isAutoRepeat() && !mFlagKeyPressed ) {
1471 e->ignore(); 1471 e->ignore();
1472 // qDebug(" ignore %d",e->isAutoRepeat() ); 1472 // qDebug(" ignore %d",e->isAutoRepeat() );
1473 return; 1473 return;
1474 } 1474 }
1475 if (! e->isAutoRepeat() ) 1475 if (! e->isAutoRepeat() )
1476 mFlagKeyPressed = true; 1476 mFlagKeyPressed = true;
1477 KOPrefs *p = KOPrefs::instance(); 1477 KOPrefs *p = KOPrefs::instance();
1478 bool showSelectedDates = false; 1478 bool showSelectedDates = false;
1479 int size; 1479 int size;
1480 int pro = 0; 1480 int pro = 0;
1481 //qDebug("MainWindow::keyPressEvent "); 1481 //qDebug("MainWindow::keyPressEvent ");
1482 switch ( e->key() ) { 1482 switch ( e->key() ) {
1483 case Qt::Key_Right: 1483 case Qt::Key_Right:
1484 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1484 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1485 mView->goNextMonth(); 1485 mView->goNextMonth();
1486 else 1486 else
1487 mView->goNext(); 1487 mView->goNext();
1488 showSelectedDates = true; 1488 showSelectedDates = true;
1489 break; 1489 break;
1490 case Qt::Key_Left: 1490 case Qt::Key_Left:
1491 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1491 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1492 mView->goPreviousMonth(); 1492 mView->goPreviousMonth();
1493 else 1493 else
1494 mView->goPrevious(); 1494 mView->goPrevious();
1495 showSelectedDates = true; 1495 showSelectedDates = true;
1496 break; 1496 break;
1497 case Qt::Key_Down: 1497 case Qt::Key_Down:
1498 mView->viewManager()->agendaView()->scrollOneHourDown(); 1498 mView->viewManager()->agendaView()->scrollOneHourDown();
1499 break; 1499 break;
1500 case Qt::Key_Up: 1500 case Qt::Key_Up:
1501 mView->viewManager()->agendaView()->scrollOneHourUp(); 1501 mView->viewManager()->agendaView()->scrollOneHourUp();
1502 break; 1502 break;
1503 case Qt::Key_I: 1503 case Qt::Key_I:
1504 mView->showIncidence(); 1504 mView->showIncidence();
1505 break; 1505 break;
1506 case Qt::Key_Delete: 1506 case Qt::Key_Delete:
1507 case Qt::Key_Backspace: 1507 case Qt::Key_Backspace:
1508 mView->deleteIncidence(); 1508 mView->deleteIncidence();
1509 break; 1509 break;
1510 case Qt::Key_D: 1510 case Qt::Key_D:
1511 mView->viewManager()->showDayView(); 1511 mView->viewManager()->showDayView();
1512 showSelectedDates = true; 1512 showSelectedDates = true;
1513 break; 1513 break;
1514 case Qt::Key_O: 1514 case Qt::Key_O:
1515 mView->toggleFilerEnabled( ); 1515 mView->toggleFilerEnabled( );
1516 break; 1516 break;
1517 case Qt::Key_0: 1517 case Qt::Key_0:
1518 case Qt::Key_1: 1518 case Qt::Key_1:
1519 case Qt::Key_2: 1519 case Qt::Key_2:
1520 case Qt::Key_3: 1520 case Qt::Key_3:
1521 case Qt::Key_4: 1521 case Qt::Key_4:
1522 case Qt::Key_5: 1522 case Qt::Key_5:
1523 case Qt::Key_6: 1523 case Qt::Key_6:
1524 case Qt::Key_7: 1524 case Qt::Key_7:
1525 case Qt::Key_8: 1525 case Qt::Key_8:
1526 case Qt::Key_9: 1526 case Qt::Key_9:
1527 pro = e->key()-48; 1527 pro = e->key()-48;
1528 if ( pro == 0 ) 1528 if ( pro == 0 )
1529 pro = 10; 1529 pro = 10;
1530 if ( e->state() == Qt::ControlButton) 1530 if ( e->state() == Qt::ControlButton)
1531 pro += 10; 1531 pro += 10;
1532 break; 1532 break;
1533 case Qt::Key_M: 1533 case Qt::Key_M:
1534 mView->viewManager()->showMonthView(); 1534 mView->viewManager()->showMonthView();
1535 showSelectedDates = true; 1535 showSelectedDates = true;
1536 break; 1536 break;
1537 case Qt::Key_Insert: 1537 case Qt::Key_Insert:
1538 mView->newEvent(); 1538 mView->newEvent();
1539 break; 1539 break;
1540 case Qt::Key_S : 1540 case Qt::Key_S :
1541 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) 1541 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1542 mView->newSubTodo(); 1542 mView->newSubTodo();
1543 else 1543 else
1544 mView->dialogManager()->showSearchDialog(); 1544 mView->dialogManager()->showSearchDialog();
1545 break; 1545 break;
1546 case Qt::Key_Y : 1546 case Qt::Key_Y :
1547 case Qt::Key_Z : 1547 case Qt::Key_Z :
1548 mView->viewManager()->showWorkWeekView(); 1548 mView->viewManager()->showWorkWeekView();
1549 showSelectedDates = true; 1549 showSelectedDates = true;
1550 break; 1550 break;
1551 case Qt::Key_U : 1551 case Qt::Key_U :
1552 mView->viewManager()->showWeekView(); 1552 mView->viewManager()->showWeekView();
1553 showSelectedDates = true; 1553 showSelectedDates = true;
1554 break; 1554 break;
1555 case Qt::Key_H : 1555 case Qt::Key_H :
1556 keyBindings(); 1556 keyBindings();
1557 break; 1557 break;
1558 case Qt::Key_W: 1558 case Qt::Key_W:
1559 mView->viewManager()->showWhatsNextView(); 1559 mView->viewManager()->showWhatsNextView();
1560 break; 1560 break;
1561 case Qt::Key_L: 1561 case Qt::Key_L:
1562 mView->viewManager()->showListView(); 1562 mView->viewManager()->showListView();
1563 break; 1563 break;
1564 case Qt::Key_N: 1564 case Qt::Key_N:
1565 mView->viewManager()->showNextXView(); 1565 mView->viewManager()->showNextXView();
1566 showSelectedDates = true; 1566 showSelectedDates = true;
1567 break; 1567 break;
1568 case Qt::Key_V: 1568 case Qt::Key_V:
1569 mView->viewManager()->showTodoView(); 1569 mView->viewManager()->showTodoView();
1570 break; 1570 break;
1571 case Qt::Key_C: 1571 case Qt::Key_C:
1572 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() ); 1572 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() );
1573 break; 1573 break;
1574 case Qt::Key_P: 1574 case Qt::Key_P:
1575 mView->showDatePicker( ); 1575 mView->showDatePicker( );
1576 break; 1576 break;
1577 case Qt::Key_F: 1577 case Qt::Key_F:
1578 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1578 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1579 mView->editFilters(); 1579 mView->editFilters();
1580 else 1580 else
1581 mView->toggleFilter(); 1581 mView->toggleFilter();
1582 break; 1582 break;
1583 case Qt::Key_X: 1583 case Qt::Key_X:
1584 mView->toggleDateNavigatorWidget(); 1584 mView->toggleDateNavigatorWidget();
1585 break; 1585 break;
1586 case Qt::Key_Space: 1586 case Qt::Key_Space:
1587 mView->toggleExpand(); 1587 mView->toggleExpand();
1588 break; 1588 break;
1589 case Qt::Key_A: 1589 case Qt::Key_A:
1590 mView->toggleAllDaySize(); 1590 mView->toggleAllDaySize();
1591 break; 1591 break;
1592 case Qt::Key_T: 1592 case Qt::Key_T:
1593 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1593 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1594 mView->newTodo(); 1594 mView->newTodo();
1595 else { 1595 else {
1596 mView->goToday(); 1596 mView->goToday();
1597 showSelectedDates = true; 1597 showSelectedDates = true;
1598 } 1598 }
1599 break; 1599 break;
1600 case Qt::Key_J: 1600 case Qt::Key_J:
1601 mView->viewManager()->showJournalView(); 1601 mView->viewManager()->showJournalView();
1602 break; 1602 break;
1603 case Qt::Key_B: 1603 case Qt::Key_B:
1604 mView->editIncidenceDescription();; 1604 mView->editIncidenceDescription();;
1605 break; 1605 break;
1606 // case Qt::Key_Return: 1606 // case Qt::Key_Return:
1607 case Qt::Key_E: 1607 case Qt::Key_E:
1608 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1608 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1609 mView->newEvent(); 1609 mView->newEvent();
1610 else 1610 else
1611 mView->editIncidence(); 1611 mView->editIncidence();
1612 break; 1612 break;
1613 case Qt::Key_Plus: 1613 case Qt::Key_Plus:
1614 size = p->mHourSize +2; 1614 size = p->mHourSize +2;
1615 if ( size <= 18 ) 1615 if ( size <= 18 )
1616 configureAgenda( size ); 1616 configureAgenda( size );
1617 break; 1617 break;
1618 case Qt::Key_Minus: 1618 case Qt::Key_Minus:
1619 size = p->mHourSize - 2; 1619 size = p->mHourSize - 2;
1620 if ( size >= 4 ) 1620 if ( size >= 4 )
1621 configureAgenda( size ); 1621 configureAgenda( size );
1622 break; 1622 break;
1623 1623
1624 1624
1625 default: 1625 default:
1626 e->ignore(); 1626 e->ignore();
1627 } 1627 }
1628 if ( pro > 0 ) { 1628 if ( pro > 0 ) {
1629 mView->selectFilter( pro-1 ); 1629 mView->selectFilter( pro-1 );
1630 } 1630 }
1631 if ( showSelectedDates ) { 1631 if ( showSelectedDates ) {
1632 ;// setCaptionToDates(); 1632 ;// setCaptionToDates();
1633 } 1633 }
1634 1634
1635} 1635}
1636 1636
1637void MainWindow::fillFilterMenu() 1637void MainWindow::fillFilterMenu()
1638{ 1638{
1639 selectFilterMenu->clear(); 1639 selectFilterMenu->clear();
1640 bool disable = false; 1640 bool disable = false;
1641 if ( mView->filterView()->filtersEnabled() ) { 1641 if ( mView->filterView()->filtersEnabled() ) {
1642 selectFilterMenu->insertItem(i18n ( "Turn filter off" ), 0 ); 1642 selectFilterMenu->insertItem(i18n ( "Turn filter off" ), 0 );
1643 } 1643 }
1644 else { 1644 else {
1645 selectFilterMenu->insertItem(i18n ( "Turn filter on" ), 0 ); 1645 selectFilterMenu->insertItem(i18n ( "Turn filter on" ), 0 );
1646 disable = true; 1646 disable = true;
1647 } 1647 }
1648 selectFilterMenu->insertSeparator(); 1648 selectFilterMenu->insertSeparator();
1649 QPtrList<CalFilter> fili = mView->filters(); 1649 QPtrList<CalFilter> fili = mView->filters();
1650 CalFilter *curfilter = mView->filterView()->selectedFilter(); 1650 CalFilter *curfilter = mView->filterView()->selectedFilter();
1651 CalFilter *filter = fili.first(); 1651 CalFilter *filter = fili.first();
1652 int iii = 1; 1652 int iii = 1;
1653 while(filter) { 1653 while(filter) {
1654 selectFilterMenu->insertItem( filter->name(), iii ); 1654 selectFilterMenu->insertItem( filter->name(), iii );
1655 if ( filter == curfilter) 1655 if ( filter == curfilter)
1656 selectFilterMenu->setItemChecked( iii, true ); 1656 selectFilterMenu->setItemChecked( iii, true );
1657 if ( disable ) 1657 if ( disable )
1658 selectFilterMenu->setItemEnabled( iii, false ); 1658 selectFilterMenu->setItemEnabled( iii, false );
1659 filter = fili.next(); 1659 filter = fili.next();
1660 ++iii; 1660 ++iii;
1661 } 1661 }
1662} 1662}
1663void MainWindow::selectFilter( int fil ) 1663void MainWindow::selectFilter( int fil )
1664{ 1664{
1665 if ( fil == 0 ) { 1665 if ( fil == 0 ) {
1666 mView->toggleFilerEnabled( ); 1666 mView->toggleFilerEnabled( );
1667 } else { 1667 } else {
1668 mView->selectFilter( fil-1 ); 1668 mView->selectFilter( fil-1 );
1669 } 1669 }
1670} 1670}
1671void MainWindow::configureToolBar( int item ) 1671void MainWindow::configureToolBar( int item )
1672{ 1672{
1673 1673
1674 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) ); 1674 configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) );
1675 KOPrefs *p = KOPrefs::instance(); 1675 KOPrefs *p = KOPrefs::instance();
1676 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 ); 1676 p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 );
1677 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 ); 1677 p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 );
1678 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 ); 1678 p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 );
1679 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 ); 1679 p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 );
1680 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 ); 1680 p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 );
1681 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 ); 1681 p-> mShowIconDay1= configureToolBarMenu->isItemChecked( 40 );
1682 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 ); 1682 p-> mShowIconDay5= configureToolBarMenu->isItemChecked( 50 );
1683 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 ); 1683 p-> mShowIconDay7= configureToolBarMenu->isItemChecked( 60 );
1684 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 ); 1684 p-> mShowIconMonth= configureToolBarMenu->isItemChecked( 70 );
1685 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 ); 1685 p-> mShowIconTodoview= configureToolBarMenu->isItemChecked( 80 );
1686 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 ); 1686 p-> mShowIconBackFast= configureToolBarMenu->isItemChecked( 200 );
1687 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 ); 1687 p-> mShowIconBack = configureToolBarMenu->isItemChecked( 210 );
1688 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 ); 1688 p-> mShowIconToday= configureToolBarMenu->isItemChecked( 130 );
1689 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 ); 1689 p-> mShowIconForward= configureToolBarMenu->isItemChecked( 220 );
1690 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 ); 1690 p-> mShowIconForwardFast= configureToolBarMenu->isItemChecked( 230 );
1691 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 ); 1691 p-> mShowIconNextDays= configureToolBarMenu->isItemChecked( 100 );
1692 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 ); 1692 p-> mShowIconNext= configureToolBarMenu->isItemChecked( 110 );
1693 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 ); 1693 p-> mShowIconJournal= configureToolBarMenu->isItemChecked( 90 );
1694 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 ); 1694 p-> mShowIconWhatsThis= configureToolBarMenu->isItemChecked( 300 );
1695 // initActions(); 1695 // initActions();
1696} 1696}
1697 1697
1698void MainWindow::setCaptionToDates() 1698void MainWindow::setCaptionToDates()
1699{ 1699{
1700 QString selDates; 1700 QString selDates;
1701 selDates = KGlobal::locale()->formatDate(mView->startDate(), true); 1701 selDates = KGlobal::locale()->formatDate(mView->startDate(), true);
1702 if (mView->startDate() < mView->endDate() ) 1702 if (mView->startDate() < mView->endDate() )
1703 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true); 1703 selDates += " - " + KGlobal::locale()->formatDate(mView->endDate(), true);
1704 setCaption( i18n("Dates: ") + selDates ); 1704 setCaption( i18n("Dates: ") + selDates );
1705 1705
1706} 1706}
1707// parameter item == 0: reinit 1707// parameter item == 0: reinit
1708void MainWindow::configureAgenda( int item ) 1708void MainWindow::configureAgenda( int item )
1709{ 1709{
1710 1710
1711 KOPrefs *p = KOPrefs::instance(); 1711 KOPrefs *p = KOPrefs::instance();
1712 1712
1713 int i; 1713 int i;
1714 // do not allow 4 for widgets higher than 480 1714 // do not allow 4 for widgets higher than 480
1715 // if ( QApplication::desktop()->height() > 480 ) { 1715 // if ( QApplication::desktop()->height() > 480 ) {
1716// if ( item == 4 ) 1716// if ( item == 4 )
1717// item = 6; 1717// item = 6;
1718// } 1718// }
1719 for ( i = 4; i <= 18; i= i+2 ) 1719 for ( i = 4; i <= 18; i= i+2 )
1720 configureAgendaMenu->setItemChecked( i, false ); 1720 configureAgendaMenu->setItemChecked( i, false );
1721 configureAgendaMenu->setItemChecked( item, true ); 1721 configureAgendaMenu->setItemChecked( item, true );
1722 if ( p->mHourSize == item ) 1722 if ( p->mHourSize == item )
1723 return; 1723 return;
1724 p->mHourSize=item; 1724 p->mHourSize=item;
1725 mView->viewManager()->agendaView()->updateConfig(); 1725 mView->viewManager()->agendaView()->updateConfig();
1726} 1726}
1727 1727
1728void MainWindow::saveCalendar() 1728void MainWindow::saveCalendar()
1729{ 1729{
1730 QString fn = KOPrefs::instance()->mLastSaveFile; 1730 QString fn = KOPrefs::instance()->mLastSaveFile;
1731 fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this ); 1731 fn = KFileDialog::getSaveFileName( fn, i18n("Save backup filename"), this );
1732 1732
1733 if ( fn == "" ) 1733 if ( fn == "" )
1734 return; 1734 return;
1735 QFileInfo info; 1735 QFileInfo info;
1736 info.setFile( fn ); 1736 info.setFile( fn );
1737 QString mes; 1737 QString mes;
1738 bool createbup = true; 1738 bool createbup = true;
1739 if ( info. exists() ) { 1739 if ( info. exists() ) {
1740 mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ; 1740 mes = i18n("Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )) ;
1741 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1741 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1742 i18n("Overwrite!"), i18n("Cancel"), 0, 1742 i18n("Overwrite!"), i18n("Cancel"), 0,
1743 0, 1 ); 1743 0, 1 );
1744 if ( result != 0 ) { 1744 if ( result != 0 ) {
1745 createbup = false; 1745 createbup = false;
1746 } 1746 }
1747 } 1747 }
1748 if ( createbup ) { 1748 if ( createbup ) {
1749 mView->saveCalendar( fn ); 1749 mView->saveCalendar( fn );
1750 mes = i18n("KO/Pi:Saved %1").arg(fn); 1750 mes = i18n("KO/Pi:Saved %1").arg(fn);
1751 KOPrefs::instance()->mLastSaveFile = fn; 1751 KOPrefs::instance()->mLastSaveFile = fn;
1752 setCaption(mes); 1752 setCaption(mes);
1753 } 1753 }
1754} 1754}
1755void MainWindow::loadCalendar() 1755void MainWindow::loadCalendar()
1756{ 1756{
1757 1757
1758 QString fn = KOPrefs::instance()->mLastLoadFile; 1758 QString fn = KOPrefs::instance()->mLastLoadFile;
1759 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this ); 1759 fn = KFileDialog::getOpenFileName( fn, i18n("Load backup filename"), this );
1760 1760
1761 if ( fn == "" ) 1761 if ( fn == "" )
1762 return; 1762 return;
1763 QFileInfo info; 1763 QFileInfo info;
1764 info.setFile( fn ); 1764 info.setFile( fn );
1765 QString mess; 1765 QString mess;
1766 bool loadbup = true; 1766 bool loadbup = true;
1767 if ( info. exists() ) { 1767 if ( info. exists() ) {
1768 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 1768 mess = i18n("Backup file from:\n%1\nLoading backup\nfile will delete\nyour current Data!\n").arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
1769 int result = QMessageBox::warning( this, "KO/Pi: Warning!", 1769 int result = QMessageBox::warning( this, "KO/Pi: Warning!",
1770 mess, 1770 mess,
1771 i18n("Load!"), i18n("Cancel"), 0, 1771 i18n("Load!"), i18n("Cancel"), 0,
1772 0, 1 ); 1772 0, 1 );
1773 if ( result != 0 ) { 1773 if ( result != 0 ) {
1774 loadbup = false; 1774 loadbup = false;
1775 } 1775 }
1776 } else { 1776 } else {
1777 QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1777 QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1778 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0, 1778 i18n("Backup file\ndoes not exist!\nNothing loaded!"), 0, 0,
1779 0, 1 ); 1779 0, 1 );
1780 1780
1781 return; 1781 return;
1782 } 1782 }
1783 if ( loadbup ) { 1783 if ( loadbup ) {
1784 mView->openCalendar( fn ); 1784 mView->openCalendar( fn );
1785 KOPrefs::instance()->mLastLoadFile = fn; 1785 KOPrefs::instance()->mLastLoadFile = fn;
1786 mess = i18n("KO/Pi:Loaded %1").arg(fn) ; 1786 mess = i18n("KO/Pi:Loaded %1").arg(fn) ;
1787 setCaption(mess); 1787 setCaption(mess);
1788 } 1788 }
1789 1789
1790} 1790}
1791void MainWindow::quickImportIcal() 1791void MainWindow::quickImportIcal()
1792{ 1792{
1793 importFile( KOPrefs::instance()->mLastImportFile, false ); 1793 importFile( KOPrefs::instance()->mLastImportFile, false );
1794} 1794}
1795void MainWindow::importFile( QString fn, bool quick ) 1795void MainWindow::importFile( QString fn, bool quick )
1796{ 1796{
1797 QFileInfo info; 1797 QFileInfo info;
1798 info.setFile( fn ); 1798 info.setFile( fn );
1799 QString mess; 1799 QString mess;
1800 bool loadbup = true; 1800 bool loadbup = true;
1801 if ( !info. exists() ) { 1801 if ( !info. exists() ) {
1802 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30)); 1802 mess = i18n("Import file \n...%1\ndoes not exist!\nNothing imported!\n").arg(fn.right( 30));
1803 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1803 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1804 mess ); 1804 mess );
1805 return; 1805 return;
1806 } 1806 }
1807 int result = 0; 1807 int result = 0;
1808 if ( !quick ) { 1808 if ( !quick ) {
1809 mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false )); 1809 mess = i18n( "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n").arg(fn.right( 25)).arg(KGlobal::locale()->formatDateTime(info.lastModified (), true, false ));
1810 result = QMessageBox::warning( this, "KO/Pi: Warning!", 1810 result = QMessageBox::warning( this, "KO/Pi: Warning!",
1811 mess, 1811 mess,
1812 "Import", "Cancel", 0, 1812 "Import", "Cancel", 0,
1813 0, 1 ); 1813 0, 1 );
1814 } 1814 }
1815 if ( result == 0 ) { 1815 if ( result == 0 ) {
1816 if ( mView->openCalendar( fn, true )) { 1816 if ( mView->openCalendar( fn, true )) {
1817 KOPrefs::instance()->mLastImportFile = fn; 1817 KOPrefs::instance()->mLastImportFile = fn;
1818 setCaption(i18n("Imported file successfully")); 1818 setCaption(i18n("Imported file successfully"));
1819 } else { 1819 } else {
1820 setCaption(i18n("Error importing file")); 1820 setCaption(i18n("Error importing file"));
1821 } 1821 }
1822 } 1822 }
1823} 1823}
1824 1824
1825void MainWindow::importIcal() 1825void MainWindow::importIcal()
1826{ 1826{
1827 1827
1828 QString fn =KOPrefs::instance()->mLastImportFile; 1828 QString fn =KOPrefs::instance()->mLastImportFile;
1829 1829
1830 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this ); 1830 fn =KFileDialog:: getOpenFileName( fn, i18n("Import filename(*.ics/*.vcs)"), this );
1831 if ( fn == "" ) 1831 if ( fn == "" )
1832 return; 1832 return;
1833 importFile( fn, true ); 1833 importFile( fn, true );
1834 1834
1835} 1835}
1836 1836
1837void MainWindow::exportVCalendar() 1837void MainWindow::exportVCalendar()
1838{ 1838{
1839 QString fn = KOPrefs::instance()->mLastVcalFile; 1839 QString fn = KOPrefs::instance()->mLastVcalFile;
1840 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this ); 1840 fn = KFileDialog::getSaveFileName( fn, i18n("Export vcal filename(*.vcs)"), this );
1841 if ( fn == "" ) 1841 if ( fn == "" )
1842 return; 1842 return;
1843 QFileInfo info; 1843 QFileInfo info;
1844 info.setFile( fn ); 1844 info.setFile( fn );
1845 QString mes; 1845 QString mes;
1846 bool createbup = true; 1846 bool createbup = true;
1847 if ( info. exists() ) { 1847 if ( info. exists() ) {
1848 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) ); 1848 mes = i18n("Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n").arg (KGlobal::locale()->formatDateTime(info.lastModified (), true, false ) );
1849 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes, 1849 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mes,
1850 i18n("Overwrite!"), i18n("Cancel"), 0, 1850 i18n("Overwrite!"), i18n("Cancel"), 0,
1851 0, 1 ); 1851 0, 1 );
1852 if ( result != 0 ) { 1852 if ( result != 0 ) {
1853 createbup = false; 1853 createbup = false;
1854 } 1854 }
1855 } 1855 }
1856 if ( createbup ) { 1856 if ( createbup ) {
1857 if ( mView->exportVCalendar( fn ) ) { 1857 if ( mView->exportVCalendar( fn ) ) {
1858 KOPrefs::instance()->mLastVcalFile = fn; 1858 KOPrefs::instance()->mLastVcalFile = fn;
1859 if ( fn.length() > 20 ) 1859 if ( fn.length() > 20 )
1860 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ; 1860 mes = i18n("KO/Pi:Exported to ...%1").arg(fn.right(20)) ;
1861 else 1861 else
1862 mes = i18n("KO/Pi:Exported to %1").arg(fn ); 1862 mes = i18n("KO/Pi:Exported to %1").arg(fn );
1863 setCaption(mes); 1863 setCaption(mes);
1864 } 1864 }
1865 } 1865 }
1866 1866
1867} 1867}
1868 1868
1869void MainWindow::syncFileRequest() 1869void MainWindow::syncFileRequest()
1870{ 1870{
1871 if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) { 1871 if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) {
1872 mSyncManager->slotSyncMenu( 999 ); 1872 mSyncManager->slotSyncMenu( 999 );
1873 } 1873 }
1874 save(); 1874 save();
1875} 1875}
1876void MainWindow::getFile( bool success ) 1876void MainWindow::getFile( bool success )
1877{ 1877{
1878 if ( ! success ) { 1878 if ( ! success ) {
1879 setCaption( i18n("Error receiving file. Nothing changed!") ); 1879 setCaption( i18n("Error receiving file. Nothing changed!") );
1880 return; 1880 return;
1881 } 1881 }
1882 mView->openCalendar( defaultFileName() ); 1882 mView->openCalendar( defaultFileName() );
1883 if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) { 1883 if ( KOPrefs::instance()->mPassiveSyncWithDesktop ) {
1884 mSyncManager->slotSyncMenu( 999 ); 1884 mSyncManager->slotSyncMenu( 999 );
1885 } 1885 }
1886 setCaption( i18n("Pi-Sync successful!") ); 1886 setCaption( i18n("Pi-Sync successful!") );
1887} 1887}
1888 1888
1889void MainWindow::printSel( ) 1889void MainWindow::printSel( )
1890{ 1890{
1891 mView->viewManager()->agendaView()->agenda()->printSelection(); 1891 mView->viewManager()->agendaView()->agenda()->printSelection();
1892} 1892}
1893 1893
1894void MainWindow::printCal() 1894void MainWindow::printCal()
1895{ 1895{
1896 mView->print();//mCp->showDialog(); 1896 mView->print();//mCp->showDialog();
1897} 1897}
1898 1898