author | zautrix <zautrix> | 2004-10-22 10:07:21 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-10-22 10:07:21 (UTC) |
commit | a97485bb2ff1b4f274d9cf0fba9e2f122297deed (patch) (unidiff) | |
tree | e28b897185c7ee09d6fa22efbb44e6886905a619 | |
parent | e61ce30fc3f2376d8e9caff421495496344a8359 (diff) | |
download | kdepimpi-a97485bb2ff1b4f274d9cf0fba9e2f122297deed.zip kdepimpi-a97485bb2ff1b4f274d9cf0fba9e2f122297deed.tar.gz kdepimpi-a97485bb2ff1b4f274d9cf0fba9e2f122297deed.tar.bz2 |
fixed vcard export bug
-rw-r--r-- | kaddressbook/xxport/vcard_xxport.cpp | 1 | ||||
-rw-r--r-- | kaddressbook/xxportmanager.cpp | 1 | ||||
-rw-r--r-- | korganizer/wordsgerman.h | 28 |
3 files changed, 14 insertions, 16 deletions
diff --git a/kaddressbook/xxport/vcard_xxport.cpp b/kaddressbook/xxport/vcard_xxport.cpp index 3079d42..acf6419 100644 --- a/kaddressbook/xxport/vcard_xxport.cpp +++ b/kaddressbook/xxport/vcard_xxport.cpp | |||
@@ -1,257 +1,256 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KAddressbook. | 2 | This file is part of KAddressbook. |
3 | Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> | 3 | Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program 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 | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | /* | 24 | /* |
25 | Enhanced Version of the file for platform independent KDE tools. | 25 | Enhanced Version of the file for platform independent KDE tools. |
26 | Copyright (c) 2004 Ulf Schenk | 26 | Copyright (c) 2004 Ulf Schenk |
27 | 27 | ||
28 | $Id$ | 28 | $Id$ |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <qfile.h> | 31 | #include <qfile.h> |
32 | #include <qtextstream.h> | 32 | #include <qtextstream.h> |
33 | 33 | ||
34 | #include <kabc/vcardconverter.h> | 34 | #include <kabc/vcardconverter.h> |
35 | #include <kabc/vcardparser/vcardtool.h> | 35 | #include <kabc/vcardparser/vcardtool.h> |
36 | #include <kfiledialog.h> | 36 | #include <kfiledialog.h> |
37 | #ifndef KAB_EMBEDDED | 37 | #ifndef KAB_EMBEDDED |
38 | #include <kio/netaccess.h> | 38 | #include <kio/netaccess.h> |
39 | #endif //KAB_EMBEDDED | 39 | #endif //KAB_EMBEDDED |
40 | 40 | ||
41 | #include <klocale.h> | 41 | #include <klocale.h> |
42 | #include <kmessagebox.h> | 42 | #include <kmessagebox.h> |
43 | #include <ktempfile.h> | 43 | #include <ktempfile.h> |
44 | #include <kurl.h> | 44 | #include <kurl.h> |
45 | 45 | ||
46 | #include "xxportmanager.h" | 46 | #include "xxportmanager.h" |
47 | 47 | ||
48 | #include "vcard_xxport.h" | 48 | #include "vcard_xxport.h" |
49 | 49 | ||
50 | #ifndef KAB_EMBEDDED | 50 | #ifndef KAB_EMBEDDED |
51 | 51 | ||
52 | class VCardXXPortFactory : public XXPortFactory | 52 | class VCardXXPortFactory : public XXPortFactory |
53 | { | 53 | { |
54 | public: | 54 | public: |
55 | XXPortObject *xxportObject( KABC::AddressBook *ab, QWidget *parent, const char *name ) | 55 | XXPortObject *xxportObject( KABC::AddressBook *ab, QWidget *parent, const char *name ) |
56 | { | 56 | { |
57 | return new VCardXXPort( ab, parent, name ); | 57 | return new VCardXXPort( ab, parent, name ); |
58 | } | 58 | } |
59 | }; | 59 | }; |
60 | #endif //KAB_EMBEDDED | 60 | #endif //KAB_EMBEDDED |
61 | 61 | ||
62 | 62 | ||
63 | extern "C" | 63 | extern "C" |
64 | { | 64 | { |
65 | #ifndef KAB_EMBEDDED | 65 | #ifndef KAB_EMBEDDED |
66 | void *init_libkaddrbk_vcard_xxport() | 66 | void *init_libkaddrbk_vcard_xxport() |
67 | #else //KAB_EMBEDDED | 67 | #else //KAB_EMBEDDED |
68 | void *init_microkaddrbk_vcard_xxport() | 68 | void *init_microkaddrbk_vcard_xxport() |
69 | #endif //KAB_EMBEDDED | 69 | #endif //KAB_EMBEDDED |
70 | { | 70 | { |
71 | return ( new VCardXXPortFactory() ); | 71 | return ( new VCardXXPortFactory() ); |
72 | } | 72 | } |
73 | } | 73 | } |
74 | 74 | ||
75 | 75 | ||
76 | VCardXXPort::VCardXXPort( KABC::AddressBook *ab, QWidget *parent, const char *name ) | 76 | VCardXXPort::VCardXXPort( KABC::AddressBook *ab, QWidget *parent, const char *name ) |
77 | : XXPortObject( ab, parent, name ) | 77 | : XXPortObject( ab, parent, name ) |
78 | { | 78 | { |
79 | createImportAction( i18n( "Import vCard..." ) ); | 79 | createImportAction( i18n( "Import vCard..." ) ); |
80 | //US KABC::VCardConverter does not support the export of 2.1 addressbooks. | 80 | //US KABC::VCardConverter does not support the export of 2.1 addressbooks. |
81 | //US createExportAction( i18n( "Export vCard 2.1..." ), "v21" ); | 81 | //US createExportAction( i18n( "Export vCard 2.1..." ), "v21" ); |
82 | createExportAction( i18n( "Export vCard 3.0..." ), "v30" ); | 82 | createExportAction( i18n( "Export vCard 3.0..." ), "v30" ); |
83 | } | 83 | } |
84 | 84 | ||
85 | bool VCardXXPort::exportContacts( const KABC::AddresseeList &list, const QString &data ) | 85 | bool VCardXXPort::exportContacts( const KABC::AddresseeList &list, const QString &data ) |
86 | { | 86 | { |
87 | QString name; | 87 | QString name; |
88 | 88 | ||
89 | if ( list.count() == 1 ) | 89 | if ( list.count() == 1 ) |
90 | name = list[ 0 ].givenName() + "_" + list[ 0 ].familyName() + ".vcf"; | 90 | name = list[ 0 ].givenName() + "_" + list[ 0 ].familyName() + ".vcf"; |
91 | else | 91 | else |
92 | name = "addressbook.vcf"; | 92 | name = "addressbook.vcf"; |
93 | 93 | ||
94 | #ifndef KAB_EMBEDDED | 94 | #ifndef KAB_EMBEDDED |
95 | QString fileName = KFileDialog::getSaveFileName( name ); | 95 | QString fileName = KFileDialog::getSaveFileName( name ); |
96 | #else //KAB_EMBEDDED | 96 | #else //KAB_EMBEDDED |
97 | QString fileName = KFileDialog::getSaveFileName( name, i18n("Save file"), parentWidget() ); | 97 | QString fileName = KFileDialog::getSaveFileName( name, i18n("Save file"), parentWidget() ); |
98 | #endif //KAB_EMBEDDED | 98 | #endif //KAB_EMBEDDED |
99 | 99 | ||
100 | if ( fileName.isEmpty() ) | 100 | if ( fileName.isEmpty() ) |
101 | return false; | 101 | return false; |
102 | 102 | ||
103 | QFile outFile( fileName ); | 103 | QFile outFile( fileName ); |
104 | if ( !outFile.open( IO_WriteOnly ) ) { | 104 | if ( !outFile.open( IO_WriteOnly ) ) { |
105 | QString text = i18n( "<qt>Unable to open file <b>%1</b> for export.</qt>" ); | 105 | QString text = i18n( "<qt>Unable to open file <b>%1</b> for export.</qt>" ); |
106 | KMessageBox::error( parentWidget(), text.arg( fileName ) ); | 106 | KMessageBox::error( parentWidget(), text.arg( fileName ) ); |
107 | return false; | 107 | return false; |
108 | } | 108 | } |
109 | 109 | ||
110 | QTextStream t( &outFile ); | 110 | QTextStream t( &outFile ); |
111 | t.setEncoding( QTextStream::UnicodeUTF8 ); | 111 | t.setEncoding( QTextStream::UnicodeUTF8 ); |
112 | 112 | ||
113 | KABC::Addressee::List::ConstIterator it; | 113 | KABC::Addressee::List::ConstIterator it; |
114 | for ( it = list.begin(); it != list.end(); ++it ) { | 114 | for ( it = list.begin(); it != list.end(); ++it ) { |
115 | KABC::VCardConverter converter; | 115 | KABC::VCardConverter converter; |
116 | QString vcard; | 116 | QString vcard; |
117 | 117 | ||
118 | KABC::VCardConverter::Version version; | 118 | KABC::VCardConverter::Version version; |
119 | if ( data == "v21" ) | 119 | if ( data == "v21" ) |
120 | version = KABC::VCardConverter::v2_1; | 120 | version = KABC::VCardConverter::v2_1; |
121 | else | 121 | else |
122 | version = KABC::VCardConverter::v3_0; | 122 | version = KABC::VCardConverter::v3_0; |
123 | 123 | ||
124 | version = KABC::VCardConverter::v2_1; | ||
125 | converter.addresseeToVCard( *it, vcard, version ); | 124 | converter.addresseeToVCard( *it, vcard, version ); |
126 | t << vcard << "\r\n\r\n"; | 125 | t << vcard << "\r\n\r\n"; |
127 | } | 126 | } |
128 | 127 | ||
129 | outFile.close(); | 128 | outFile.close(); |
130 | 129 | ||
131 | return true; | 130 | return true; |
132 | } | 131 | } |
133 | 132 | ||
134 | KABC::AddresseeList VCardXXPort::importContacts( const QString& ) const | 133 | KABC::AddresseeList VCardXXPort::importContacts( const QString& ) const |
135 | { | 134 | { |
136 | QString fileName; | 135 | QString fileName; |
137 | KABC::AddresseeList addrList; | 136 | KABC::AddresseeList addrList; |
138 | KURL url; | 137 | KURL url; |
139 | 138 | ||
140 | #ifndef KAB_EMBEDDED | 139 | #ifndef KAB_EMBEDDED |
141 | if ( !XXPortManager::importData.isEmpty() ) | 140 | if ( !XXPortManager::importData.isEmpty() ) |
142 | addrList = parseVCard( XXPortManager::importData ); | 141 | addrList = parseVCard( XXPortManager::importData ); |
143 | else { | 142 | else { |
144 | if ( XXPortManager::importURL.isEmpty() ) | 143 | if ( XXPortManager::importURL.isEmpty() ) |
145 | { | 144 | { |
146 | url = KFileDialog::getLoadFileName( QString::null, i18n("Select vCard to Import"), parentWidget() ); | 145 | url = KFileDialog::getLoadFileName( QString::null, i18n("Select vCard to Import"), parentWidget() ); |
147 | } | 146 | } |
148 | else | 147 | else |
149 | url = XXPortManager::importURL; | 148 | url = XXPortManager::importURL; |
150 | 149 | ||
151 | if ( url.isEmpty() ) | 150 | if ( url.isEmpty() ) |
152 | return addrList; | 151 | return addrList; |
153 | 152 | ||
154 | QString caption( i18n( "vCard Import Failed" ) ); | 153 | QString caption( i18n( "vCard Import Failed" ) ); |
155 | if ( KIO::NetAccess::download( url, fileName ) ) { | 154 | if ( KIO::NetAccess::download( url, fileName ) ) { |
156 | QFile file( fileName ); | 155 | QFile file( fileName ); |
157 | 156 | ||
158 | file.open( IO_ReadOnly ); | 157 | file.open( IO_ReadOnly ); |
159 | QByteArray rawData = file.readAll(); | 158 | QByteArray rawData = file.readAll(); |
160 | file.close(); | 159 | file.close(); |
161 | 160 | ||
162 | QString data = QString::fromUtf8( rawData.data(), rawData.size() + 1 ); | 161 | QString data = QString::fromUtf8( rawData.data(), rawData.size() + 1 ); |
163 | addrList = parseVCard( data ); | 162 | addrList = parseVCard( data ); |
164 | 163 | ||
165 | if ( !url.isLocalFile() ) | 164 | if ( !url.isLocalFile() ) |
166 | KIO::NetAccess::removeTempFile( fileName ); | 165 | KIO::NetAccess::removeTempFile( fileName ); |
167 | 166 | ||
168 | } else { | 167 | } else { |
169 | QString text = i18n( "<qt>Unable to access <b>%1</b>.</qt>" ); | 168 | QString text = i18n( "<qt>Unable to access <b>%1</b>.</qt>" ); |
170 | KMessageBox::error( parentWidget(), text.arg( url.url() ), caption ); | 169 | KMessageBox::error( parentWidget(), text.arg( url.url() ), caption ); |
171 | } | 170 | } |
172 | 171 | ||
173 | } | 172 | } |
174 | 173 | ||
175 | 174 | ||
176 | #else //KAB_EMBEDDED | 175 | #else //KAB_EMBEDDED |
177 | 176 | ||
178 | 177 | ||
179 | if ( !XXPortManager::importData.isEmpty() ) | 178 | if ( !XXPortManager::importData.isEmpty() ) |
180 | addrList = parseVCard( XXPortManager::importData ); | 179 | addrList = parseVCard( XXPortManager::importData ); |
181 | else { | 180 | else { |
182 | if ( XXPortManager::importURL.isEmpty() ) | 181 | if ( XXPortManager::importURL.isEmpty() ) |
183 | { | 182 | { |
184 | fileName = KFileDialog::getOpenFileName( QString::null, i18n("Select vCard to Import"), parentWidget() ); | 183 | fileName = KFileDialog::getOpenFileName( QString::null, i18n("Select vCard to Import"), parentWidget() ); |
185 | if ( fileName.isEmpty() ) | 184 | if ( fileName.isEmpty() ) |
186 | return addrList; | 185 | return addrList; |
187 | 186 | ||
188 | } | 187 | } |
189 | else | 188 | else |
190 | { | 189 | { |
191 | //US url = XXPortManager::importURL; | 190 | //US url = XXPortManager::importURL; |
192 | qDebug("VCardXXPort::importContacts Urls at the moment not supported"); | 191 | qDebug("VCardXXPort::importContacts Urls at the moment not supported"); |
193 | if ( url.isEmpty() ) | 192 | if ( url.isEmpty() ) |
194 | return addrList; | 193 | return addrList; |
195 | 194 | ||
196 | } | 195 | } |
197 | 196 | ||
198 | 197 | ||
199 | QFile file( fileName ); | 198 | QFile file( fileName ); |
200 | 199 | ||
201 | file.open( IO_ReadOnly ); | 200 | file.open( IO_ReadOnly ); |
202 | QByteArray rawData = file.readAll(); | 201 | QByteArray rawData = file.readAll(); |
203 | file.close(); | 202 | file.close(); |
204 | 203 | ||
205 | QString data = QString::fromUtf8( rawData.data(), rawData.size() + 1 ); | 204 | QString data = QString::fromUtf8( rawData.data(), rawData.size() + 1 ); |
206 | addrList = parseVCard( data ); | 205 | addrList = parseVCard( data ); |
207 | 206 | ||
208 | } | 207 | } |
209 | #endif //KAB_EMBEDDED | 208 | #endif //KAB_EMBEDDED |
210 | 209 | ||
211 | return addrList; | 210 | return addrList; |
212 | } | 211 | } |
213 | 212 | ||
214 | KABC::AddresseeList VCardXXPort::parseVCard( const QString &data ) const | 213 | KABC::AddresseeList VCardXXPort::parseVCard( const QString &data ) const |
215 | { | 214 | { |
216 | 215 | ||
217 | KABC::VCardTool tool; | 216 | KABC::VCardTool tool; |
218 | KABC::AddresseeList addrList; | 217 | KABC::AddresseeList addrList; |
219 | addrList = tool.parseVCards( data ); | 218 | addrList = tool.parseVCards( data ); |
220 | // LR : I switched to the code, which is in current cvs HEAD | 219 | // LR : I switched to the code, which is in current cvs HEAD |
221 | /* | 220 | /* |
222 | uint numVCards = data.contains( "BEGIN:VCARD", false ); | 221 | uint numVCards = data.contains( "BEGIN:VCARD", false ); |
223 | QStringList dataList = QStringList::split( "\r\n\r\n", data ); | 222 | QStringList dataList = QStringList::split( "\r\n\r\n", data ); |
224 | 223 | ||
225 | for ( uint i = 0; i < numVCards && i < dataList.count(); ++i ) { | 224 | for ( uint i = 0; i < numVCards && i < dataList.count(); ++i ) { |
226 | KABC::Addressee addr; | 225 | KABC::Addressee addr; |
227 | bool ok = false; | 226 | bool ok = false; |
228 | 227 | ||
229 | if ( dataList[ i ].contains( "VERSION:3.0" ) ) | 228 | if ( dataList[ i ].contains( "VERSION:3.0" ) ) |
230 | ok = converter.vCardToAddressee( dataList[ i ], addr, KABC::VCardConverter::v3_0 ); | 229 | ok = converter.vCardToAddressee( dataList[ i ], addr, KABC::VCardConverter::v3_0 ); |
231 | else if ( dataList[ i ].contains( "VERSION:2.1" ) ) | 230 | else if ( dataList[ i ].contains( "VERSION:2.1" ) ) |
232 | ok = converter.vCardToAddressee( dataList[ i ], addr, KABC::VCardConverter::v2_1 ); | 231 | ok = converter.vCardToAddressee( dataList[ i ], addr, KABC::VCardConverter::v2_1 ); |
233 | else { | 232 | else { |
234 | KMessageBox::sorry( parentWidget(), i18n( "Not supported vCard version." ) ); | 233 | KMessageBox::sorry( parentWidget(), i18n( "Not supported vCard version." ) ); |
235 | continue; | 234 | continue; |
236 | } | 235 | } |
237 | 236 | ||
238 | if ( !addr.isEmpty() && ok ) | 237 | if ( !addr.isEmpty() && ok ) |
239 | addrList.append( addr ); | 238 | addrList.append( addr ); |
240 | else { | 239 | else { |
241 | QString text = i18n( "The selected file does not include a valid vCard. " | 240 | QString text = i18n( "The selected file does not include a valid vCard. " |
242 | "Please check the file and try again." ); | 241 | "Please check the file and try again." ); |
243 | KMessageBox::sorry( parentWidget(), text ); | 242 | KMessageBox::sorry( parentWidget(), text ); |
244 | } | 243 | } |
245 | } | 244 | } |
246 | */ | 245 | */ |
247 | if ( addrList.isEmpty() ) { | 246 | if ( addrList.isEmpty() ) { |
248 | QString text = i18n( "The selected file does not\ninclude a valid vCard.\nPlease check the file and try again.\n" ); | 247 | QString text = i18n( "The selected file does not\ninclude a valid vCard.\nPlease check the file and try again.\n" ); |
249 | KMessageBox::sorry( parentWidget(), text ); | 248 | KMessageBox::sorry( parentWidget(), text ); |
250 | } | 249 | } |
251 | return addrList; | 250 | return addrList; |
252 | } | 251 | } |
253 | 252 | ||
254 | 253 | ||
255 | #ifndef KAB_EMBEDDED | 254 | #ifndef KAB_EMBEDDED |
256 | #include "vcard_xxport.moc" | 255 | #include "vcard_xxport.moc" |
257 | #endif //KAB_EMBEDDED | 256 | #endif //KAB_EMBEDDED |
diff --git a/kaddressbook/xxportmanager.cpp b/kaddressbook/xxportmanager.cpp index 810c3e2..1f0c9ea 100644 --- a/kaddressbook/xxportmanager.cpp +++ b/kaddressbook/xxportmanager.cpp | |||
@@ -1,243 +1,242 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KAddressbook. | 2 | This file is part of KAddressbook. |
3 | Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> | 3 | Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program 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 | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | /* | 24 | /* |
25 | Enhanced Version of the file for platform independent KDE tools. | 25 | Enhanced Version of the file for platform independent KDE tools. |
26 | Copyright (c) 2004 Ulf Schenk | 26 | Copyright (c) 2004 Ulf Schenk |
27 | 27 | ||
28 | $Id$ | 28 | $Id$ |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <qlayout.h> | 31 | #include <qlayout.h> |
32 | #include <qlist.h> | 32 | #include <qlist.h> |
33 | 33 | ||
34 | #include <kabc/addressbook.h> | 34 | #include <kabc/addressbook.h> |
35 | #include <kabc/resource.h> | 35 | #include <kabc/resource.h> |
36 | #include <kdebug.h> | 36 | #include <kdebug.h> |
37 | #include <kdialogbase.h> | 37 | #include <kdialogbase.h> |
38 | #include <klocale.h> | 38 | #include <klocale.h> |
39 | #include <kmessagebox.h> | 39 | #include <kmessagebox.h> |
40 | 40 | ||
41 | #ifndef KAB_EMBEDDED | 41 | #ifndef KAB_EMBEDDED |
42 | #include <ktrader.h> | 42 | #include <ktrader.h> |
43 | #else //KAB_EMBEDDED | 43 | #else //KAB_EMBEDDED |
44 | extern "C" | 44 | extern "C" |
45 | { | 45 | { |
46 | void* init_microkaddrbk_csv_xxport(); | 46 | void* init_microkaddrbk_csv_xxport(); |
47 | void* init_microkaddrbk_kde2_xxport(); | 47 | void* init_microkaddrbk_kde2_xxport(); |
48 | void* init_microkaddrbk_vcard_xxport(); | 48 | void* init_microkaddrbk_vcard_xxport(); |
49 | void* init_microkaddrbk_opie_xxport(); | 49 | void* init_microkaddrbk_opie_xxport(); |
50 | void* init_microkaddrbk_qtopia_xxport(); | 50 | void* init_microkaddrbk_qtopia_xxport(); |
51 | void* init_microkaddrbk_sharpdtm_xxport(); | 51 | void* init_microkaddrbk_sharpdtm_xxport(); |
52 | } | 52 | } |
53 | #endif //KAB_EMBEDDED | 53 | #endif //KAB_EMBEDDED |
54 | 54 | ||
55 | #include <addresseeview.h> | 55 | #include <addresseeview.h> |
56 | 56 | ||
57 | #include "kabcore.h" | 57 | #include "kabcore.h" |
58 | #include "undocmds.h" | 58 | #include "undocmds.h" |
59 | #include "xxportselectdialog.h" | 59 | #include "xxportselectdialog.h" |
60 | 60 | ||
61 | #include "xxportmanager.h" | 61 | #include "xxportmanager.h" |
62 | 62 | ||
63 | KURL XXPortManager::importURL = KURL(); | 63 | KURL XXPortManager::importURL = KURL(); |
64 | QString XXPortManager::importData = QString::null; | 64 | QString XXPortManager::importData = QString::null; |
65 | 65 | ||
66 | class PreviewDialog : public KDialogBase | 66 | class PreviewDialog : public KDialogBase |
67 | { | 67 | { |
68 | public: | 68 | public: |
69 | PreviewDialog( const KABC::Addressee &addr, | 69 | PreviewDialog( const KABC::Addressee &addr, |
70 | QWidget *parent, const char *name = 0 ); | 70 | QWidget *parent, const char *name = 0 ); |
71 | }; | 71 | }; |
72 | 72 | ||
73 | XXPortManager::XXPortManager( KABCore *core, QObject *parent, const char *name ) | 73 | XXPortManager::XXPortManager( KABCore *core, QObject *parent, const char *name ) |
74 | : QObject( parent, name ), mCore( core ), mShowPreview( false ) | 74 | : QObject( parent, name ), mCore( core ), mShowPreview( false ) |
75 | { | 75 | { |
76 | loadPlugins(); | 76 | loadPlugins(); |
77 | } | 77 | } |
78 | 78 | ||
79 | XXPortManager::~XXPortManager() | 79 | XXPortManager::~XXPortManager() |
80 | { | 80 | { |
81 | } | 81 | } |
82 | 82 | ||
83 | void XXPortManager::restoreSettings() | 83 | void XXPortManager::restoreSettings() |
84 | { | 84 | { |
85 | } | 85 | } |
86 | 86 | ||
87 | void XXPortManager::saveSettings() | 87 | void XXPortManager::saveSettings() |
88 | { | 88 | { |
89 | } | 89 | } |
90 | 90 | ||
91 | void XXPortManager::importVCard( const KURL &url ) | 91 | void XXPortManager::importVCard( const KURL &url ) |
92 | { | 92 | { |
93 | importVCard( url, false ); | 93 | importVCard( url, false ); |
94 | } | 94 | } |
95 | 95 | ||
96 | void XXPortManager::importVCard( const KURL &url, bool showPreview ) | 96 | void XXPortManager::importVCard( const KURL &url, bool showPreview ) |
97 | { | 97 | { |
98 | importURL = url; | 98 | importURL = url; |
99 | mShowPreview = showPreview; | 99 | mShowPreview = showPreview; |
100 | slotImport( "vcard", "<empty>" ); | 100 | slotImport( "vcard", "<empty>" ); |
101 | mShowPreview = false; | 101 | mShowPreview = false; |
102 | importURL = KURL(); | 102 | importURL = KURL(); |
103 | } | 103 | } |
104 | 104 | ||
105 | void XXPortManager::importVCard( const QString &vCard, bool showPreview ) | 105 | void XXPortManager::importVCard( const QString &vCard, bool showPreview ) |
106 | { | 106 | { |
107 | importData = vCard; | 107 | importData = vCard; |
108 | mShowPreview = showPreview; | 108 | mShowPreview = showPreview; |
109 | slotImport( "vcard", "<empty>" ); | 109 | slotImport( "vcard", "<empty>" ); |
110 | mShowPreview = false; | 110 | mShowPreview = false; |
111 | importData = ""; | 111 | importData = ""; |
112 | } | 112 | } |
113 | 113 | ||
114 | void XXPortManager::slotImport( const QString &identifier, const QString &data ) | 114 | void XXPortManager::slotImport( const QString &identifier, const QString &data ) |
115 | { | 115 | { |
116 | XXPortObject *obj = mXXPortObjects[ identifier ]; | 116 | XXPortObject *obj = mXXPortObjects[ identifier ]; |
117 | if ( !obj ) { | 117 | if ( !obj ) { |
118 | KMessageBox::error( mCore, i18n( "<qt>No import plugin available for <b>%1</b>.</qt>" ).arg( identifier ) ); | 118 | KMessageBox::error( mCore, i18n( "<qt>No import plugin available for <b>%1</b>.</qt>" ).arg( identifier ) ); |
119 | return; | 119 | return; |
120 | } | 120 | } |
121 | 121 | ||
122 | KABC::Resource *resource = mCore->requestResource( mCore ); | 122 | KABC::Resource *resource = mCore->requestResource( mCore ); |
123 | if ( !resource ) | 123 | if ( !resource ) |
124 | return; | 124 | return; |
125 | 125 | ||
126 | KABC::AddresseeList list = obj->importContacts( data ); | 126 | KABC::AddresseeList list = obj->importContacts( data ); |
127 | KABC::AddresseeList::Iterator it; | 127 | KABC::AddresseeList::Iterator it; |
128 | bool imported = false; | 128 | bool imported = false; |
129 | for ( it = list.begin(); it != list.end(); ++it ) { | 129 | for ( it = list.begin(); it != list.end(); ++it ) { |
130 | if ( mShowPreview ) { | 130 | if ( mShowPreview ) { |
131 | PreviewDialog dlg( *it, mCore ); | 131 | PreviewDialog dlg( *it, mCore ); |
132 | if ( !dlg.exec() ) | 132 | if ( !dlg.exec() ) |
133 | continue; | 133 | continue; |
134 | } | 134 | } |
135 | 135 | ||
136 | (*it).setResource( resource ); | 136 | (*it).setResource( resource ); |
137 | // We use a PwNewCommand so the user can undo it. | 137 | // We use a PwNewCommand so the user can undo it. |
138 | PwNewCommand *command = new PwNewCommand( mCore->addressBook(), *it ); | 138 | PwNewCommand *command = new PwNewCommand( mCore->addressBook(), *it ); |
139 | UndoStack::instance()->push( command ); | 139 | UndoStack::instance()->push( command ); |
140 | RedoStack::instance()->clear(); | 140 | RedoStack::instance()->clear(); |
141 | imported = true; | 141 | imported = true; |
142 | } | 142 | } |
143 | 143 | ||
144 | if ( imported ) { | 144 | if ( imported ) { |
145 | KMessageBox::information( mCore, i18n( "contacts successfully imported." ) ); | 145 | KMessageBox::information( mCore, i18n( "contacts successfully imported." ) ); |
146 | 146 | ||
147 | emit modified(); | 147 | emit modified(); |
148 | } | 148 | } |
149 | } | 149 | } |
150 | 150 | ||
151 | void XXPortManager::slotExport( const QString &identifier, const QString &data ) | 151 | void XXPortManager::slotExport( const QString &identifier, const QString &data ) |
152 | { | 152 | { |
153 | XXPortObject *obj = mXXPortObjects[ identifier ]; | 153 | XXPortObject *obj = mXXPortObjects[ identifier ]; |
154 | if ( !obj ) { | 154 | if ( !obj ) { |
155 | KMessageBox::error( mCore, i18n( "<qt>No export plugin available for <b>%1</b>.</qt>" ).arg( identifier ) ); | 155 | KMessageBox::error( mCore, i18n( "<qt>No export plugin available for <b>%1</b>.</qt>" ).arg( identifier ) ); |
156 | return; | 156 | return; |
157 | } | 157 | } |
158 | 158 | ||
159 | KABC::AddresseeList addrList; | 159 | KABC::AddresseeList addrList; |
160 | XXPortSelectDialog dlg( mCore, obj->requiresSorting(), mCore ); | 160 | XXPortSelectDialog dlg( mCore, obj->requiresSorting(), mCore ); |
161 | if ( dlg.exec() ) | 161 | if ( dlg.exec() ) |
162 | addrList = dlg.contacts(); | 162 | addrList = dlg.contacts(); |
163 | else | 163 | else |
164 | return; | 164 | return; |
165 | |||
166 | if ( !obj->exportContacts( addrList, data ) ) | 165 | if ( !obj->exportContacts( addrList, data ) ) |
167 | KMessageBox::error( mCore, i18n( "Unable to export contacts." ) ); | 166 | KMessageBox::error( mCore, i18n( "Unable to export contacts." ) ); |
168 | else | 167 | else |
169 | KMessageBox::information( mCore, i18n( "contacts successfully exported." ) ); | 168 | KMessageBox::information( mCore, i18n( "contacts successfully exported." ) ); |
170 | } | 169 | } |
171 | 170 | ||
172 | void XXPortManager::loadPlugins() | 171 | void XXPortManager::loadPlugins() |
173 | { | 172 | { |
174 | mXXPortObjects.clear(); | 173 | mXXPortObjects.clear(); |
175 | 174 | ||
176 | #ifndef KAB_EMBEDDED | 175 | #ifndef KAB_EMBEDDED |
177 | KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/XXPort" ); | 176 | KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/XXPort" ); |
178 | KTrader::OfferList::ConstIterator it; | 177 | KTrader::OfferList::ConstIterator it; |
179 | for ( it = plugins.begin(); it != plugins.end(); ++it ) { | 178 | for ( it = plugins.begin(); it != plugins.end(); ++it ) { |
180 | if ( !(*it)->hasServiceType( "KAddressBook/XXPort" ) ) | 179 | if ( !(*it)->hasServiceType( "KAddressBook/XXPort" ) ) |
181 | continue; | 180 | continue; |
182 | 181 | ||
183 | KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() ); | 182 | KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() ); |
184 | if ( !factory ) { | 183 | if ( !factory ) { |
185 | kdDebug(5720) << "XXPortManager::loadExtensions(): Factory creation failed" << endl; | 184 | kdDebug(5720) << "XXPortManager::loadExtensions(): Factory creation failed" << endl; |
186 | continue; | 185 | continue; |
187 | } | 186 | } |
188 | 187 | ||
189 | XXPortFactory *xxportFactory = static_cast<XXPortFactory*>( factory ); | 188 | XXPortFactory *xxportFactory = static_cast<XXPortFactory*>( factory ); |
190 | 189 | ||
191 | if ( !xxportFactory ) { | 190 | if ( !xxportFactory ) { |
192 | kdDebug(5720) << "XXPortManager::loadExtensions(): Cast failed" << endl; | 191 | kdDebug(5720) << "XXPortManager::loadExtensions(): Cast failed" << endl; |
193 | continue; | 192 | continue; |
194 | } | 193 | } |
195 | 194 | ||
196 | #else //KAB_EMBEDDED | 195 | #else //KAB_EMBEDDED |
197 | QList<XXPortFactory> factorylist; | 196 | QList<XXPortFactory> factorylist; |
198 | factorylist.append(static_cast<XXPortFactory*>(init_microkaddrbk_csv_xxport())); | 197 | factorylist.append(static_cast<XXPortFactory*>(init_microkaddrbk_csv_xxport())); |
199 | factorylist.append(static_cast<XXPortFactory*>(init_microkaddrbk_kde2_xxport())); | 198 | factorylist.append(static_cast<XXPortFactory*>(init_microkaddrbk_kde2_xxport())); |
200 | factorylist.append(static_cast<XXPortFactory*>(init_microkaddrbk_vcard_xxport())); | 199 | factorylist.append(static_cast<XXPortFactory*>(init_microkaddrbk_vcard_xxport())); |
201 | factorylist.append(static_cast<XXPortFactory*>(init_microkaddrbk_opie_xxport())); | 200 | factorylist.append(static_cast<XXPortFactory*>(init_microkaddrbk_opie_xxport())); |
202 | factorylist.append(static_cast<XXPortFactory*>(init_microkaddrbk_qtopia_xxport())); | 201 | factorylist.append(static_cast<XXPortFactory*>(init_microkaddrbk_qtopia_xxport())); |
203 | factorylist.append(static_cast<XXPortFactory*>(init_microkaddrbk_sharpdtm_xxport())); | 202 | factorylist.append(static_cast<XXPortFactory*>(init_microkaddrbk_sharpdtm_xxport())); |
204 | 203 | ||
205 | QListIterator<XXPortFactory> it(factorylist); | 204 | QListIterator<XXPortFactory> it(factorylist); |
206 | for ( ; it.current(); ++it ) | 205 | for ( ; it.current(); ++it ) |
207 | { | 206 | { |
208 | XXPortFactory *xxportFactory = it.current(); | 207 | XXPortFactory *xxportFactory = it.current(); |
209 | #endif //KAB_EMBEDDED | 208 | #endif //KAB_EMBEDDED |
210 | 209 | ||
211 | XXPortObject *obj = xxportFactory->xxportObject( mCore->addressBook(), mCore ); | 210 | XXPortObject *obj = xxportFactory->xxportObject( mCore->addressBook(), mCore ); |
212 | if ( obj ) { | 211 | if ( obj ) { |
213 | mCore->addGUIClient( obj ); | 212 | mCore->addGUIClient( obj ); |
214 | mXXPortObjects.insert( obj->identifier(), obj ); | 213 | mXXPortObjects.insert( obj->identifier(), obj ); |
215 | connect( obj, SIGNAL( exportActivated( const QString&, const QString& ) ), | 214 | connect( obj, SIGNAL( exportActivated( const QString&, const QString& ) ), |
216 | this, SLOT( slotExport( const QString&, const QString& ) ) ); | 215 | this, SLOT( slotExport( const QString&, const QString& ) ) ); |
217 | connect( obj, SIGNAL( importActivated( const QString&, const QString& ) ), | 216 | connect( obj, SIGNAL( importActivated( const QString&, const QString& ) ), |
218 | this, SLOT( slotImport( const QString&, const QString& ) ) ); | 217 | this, SLOT( slotImport( const QString&, const QString& ) ) ); |
219 | } | 218 | } |
220 | } | 219 | } |
221 | } | 220 | } |
222 | 221 | ||
223 | 222 | ||
224 | PreviewDialog::PreviewDialog( const KABC::Addressee &addr, QWidget *parent, | 223 | PreviewDialog::PreviewDialog( const KABC::Addressee &addr, QWidget *parent, |
225 | const char *name ) | 224 | const char *name ) |
226 | : KDialogBase( Plain, i18n( "Contact Preview" ), Ok | Cancel, Ok, parent, | 225 | : KDialogBase( Plain, i18n( "Contact Preview" ), Ok | Cancel, Ok, parent, |
227 | name, true, true ) | 226 | name, true, true ) |
228 | { | 227 | { |
229 | QWidget *page = plainPage(); | 228 | QWidget *page = plainPage(); |
230 | QVBoxLayout *layout = new QVBoxLayout( page, marginHint(), spacingHint() ); | 229 | QVBoxLayout *layout = new QVBoxLayout( page, marginHint(), spacingHint() ); |
231 | 230 | ||
232 | KPIM::AddresseeView *view = new KPIM::AddresseeView( page ); | 231 | KPIM::AddresseeView *view = new KPIM::AddresseeView( page ); |
233 | view->setAddressee( addr ); | 232 | view->setAddressee( addr ); |
234 | 233 | ||
235 | layout->addWidget( view ); | 234 | layout->addWidget( view ); |
236 | 235 | ||
237 | resize( 400, 300 ); | 236 | resize( 400, 300 ); |
238 | } | 237 | } |
239 | 238 | ||
240 | #ifndef KAB_EMBEDDED | 239 | #ifndef KAB_EMBEDDED |
241 | #include "xxportmanager.moc" | 240 | #include "xxportmanager.moc" |
242 | #endif //KAB_EMBEDDED | 241 | #endif //KAB_EMBEDDED |
243 | 242 | ||
diff --git a/korganizer/wordsgerman.h b/korganizer/wordsgerman.h index 02df615..82d3c02 100644 --- a/korganizer/wordsgerman.h +++ b/korganizer/wordsgerman.h | |||
@@ -814,274 +814,274 @@ | |||
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 | { "+01:00 Europe/Oslo(CET)","+01:00 Europa/Oslo(CET)" }, | 841 | { "+01:00 Europe/Oslo(CET)","+01:00 Europa/Oslo(CET)" }, |
842 | { " Local Time"," Locale Zeit" }, | 842 | { " Local Time"," Locale Zeit" }, |
843 | { "+12:00 Asia/Kamchatka","+12:00 Asien/Kamchatka" }, | 843 | { "+12:00 Asia/Kamchatka","+12:00 Asien/Kamchatka" }, |
844 | { "+11:00 Asia/Magadan","+11:00 Asien/Magadan" }, | 844 | { "+11:00 Asia/Magadan","+11:00 Asien/Magadan" }, |
845 | { "+10:00 Asia/Vladivostok","+10:00 Asien/Vladivostok" }, | 845 | { "+10:00 Asia/Vladivostok","+10:00 Asien/Vladivostok" }, |
846 | { "+09:00 Asia/Tokyo","+09:00 Asien/Tokyo" }, | 846 | { "+09:00 Asia/Tokyo","+09:00 Asien/Tokyo" }, |
847 | { "+08:00 Asia/Hongkong","+08:00 Asien/Hongkong" }, | 847 | { "+08:00 Asia/Hongkong","+08:00 Asien/Hongkong" }, |
848 | { "+07:00 Asia/Bangkok","+07:00 Asien/Bangkok" }, | 848 | { "+07:00 Asia/Bangkok","+07:00 Asien/Bangkok" }, |
849 | { "+06:00 Indian/Chagos","+06:00 Indien/Chagos" }, | 849 | { "+06:00 Indian/Chagos","+06:00 Indien/Chagos" }, |
850 | { "+05:00 Indian/Maldives","+05:00 Indien/Maldiven" }, | 850 | { "+05:00 Indian/Maldives","+05:00 Indien/Maldiven" }, |
851 | { "+04:00 Indian/Mauritius","+04:00 Indien/Mauritius" }, | 851 | { "+04:00 Indian/Mauritius","+04:00 Indien/Mauritius" }, |
852 | { "+03:00 Europe/Moscow","+03:00 Europa/Moskau" }, | 852 | { "+03:00 Europe/Moscow","+03:00 Europa/Moskau" }, |
853 | { "+02:00 Europe/Helsinki","+02:00 Europa/Helsinki" }, | 853 | { "+02:00 Europe/Helsinki","+02:00 Europa/Helsinki" }, |
854 | { " 00:00 Europe/London(UTC)"," 00:00 Europa/London(UTC)" }, | 854 | { " 00:00 Europe/London(UTC)"," 00:00 Europa/London(UTC)" }, |
855 | { "-01:00 Atlantic/Azores","-01:00 Atlantik/Azoren" }, | 855 | { "-01:00 Atlantic/Azores","-01:00 Atlantik/Azoren" }, |
856 | { "-02:00 Brazil/DeNoronha","-02:00 Brasilien/DeNoronha" }, | 856 | { "-02:00 Brazil/DeNoronha","-02:00 Brasilien/DeNoronha" }, |
857 | { "-03:00 Brazil/East","-03:00 Brasilien/Ost" }, | 857 | { "-03:00 Brazil/East","-03:00 Brasilien/Ost" }, |
858 | { "-04:00 Brazil/West","-04:00 Brasilien/West" }, | 858 | { "-04:00 Brazil/West","-04:00 Brasilien/West" }, |
859 | { "-05:00 US/Eastern","-05:00 US/Eastern" }, | 859 | { "-05:00 US/Eastern","-05:00 US/Eastern" }, |
860 | { "-06:00 US/Central","-06:00 US/Central" }, | 860 | { "-06:00 US/Central","-06:00 US/Central" }, |
861 | { "-07:00 US/Mountain","-07:00 US/Mountain" }, | 861 | { "-07:00 US/Mountain","-07:00 US/Mountain" }, |
862 | { "-08:00 US/Pacific","-08:00 US/Pacific" }, | 862 | { "-08:00 US/Pacific","-08:00 US/Pacific" }, |
863 | { "-09:00 US/Alaska","-09:00 US/Alaska" }, | 863 | { "-09:00 US/Alaska","-09:00 US/Alaska" }, |
864 | { "-10:00 US/Hawaii","-10:00 US/Hawaii" }, | 864 | { "-10:00 US/Hawaii","-10:00 US/Hawaii" }, |
865 | { "-11:00 US/Samoa","-11:00 US/Samoa" }, | 865 | { "-11:00 US/Samoa","-11:00 US/Samoa" }, |
866 | { "Unknown Name","Unbekannter Name" }, | 866 | { "Unknown Name","Unbekannter Name" }, |
867 | { "unknown@nowhere","unbekannt@nirgendwo" }, | 867 | { "unknown@nowhere","unbekannt@nirgendwo" }, |
868 | { "Beam via IR!","Beam via IR!" }, | 868 | { "Beam via IR!","Beam via IR!" }, |
869 | { "Next Month","Nächster Monat" }, | 869 | { "Next Month","Nächster Monat" }, |
870 | { "Prio","Prio" }, | 870 | { "Prio","Prio" }, |
871 | { "Reparent Todo","Mache Sub-Todo" }, | 871 | { "Reparent Todo","Mache Sub-Todo" }, |
872 | { "tomorrow","morgen" }, | 872 | { "tomorrow","morgen" }, |
873 | { "today","heute" }, | 873 | { "today","heute" }, |
874 | { "yesterday","gestern" }, | 874 | { "yesterday","gestern" }, |
875 | { "Ok","Ok" }, | 875 | { "Ok","Ok" }, |
876 | { "Ok+Agenda","Ok+Agenda" }, | 876 | { "Ok+Agenda","Ok+Agenda" }, |
877 | { "Email","Email" }, | 877 | { "Email","Email" }, |
878 | { "RSVP","RSVP" }, | 878 | { "RSVP","RSVP" }, |
879 | { "Email:","Email:" }, | 879 | { "Email:","Email:" }, |
880 | { "Appointment Time ","Termin Zeit " }, | 880 | { "Appointment Time ","Termin Zeit " }, |
881 | { "2","2" }, | 881 | { "2","2" }, |
882 | { "3","3" }, | 882 | { "3","3" }, |
883 | { "4","4" }, | 883 | { "4","4" }, |
884 | { " 0 %"," 0 %" }, | 884 | { " 0 %"," 0 %" }, |
885 | { " 20 %"," 20 %" }, | 885 | { " 20 %"," 20 %" }, |
886 | { " 40 %"," 40 %" }, | 886 | { " 40 %"," 40 %" }, |
887 | { " 60 %"," 60 %" }, | 887 | { " 60 %"," 60 %" }, |
888 | { " 80 %"," 80 %" }, | 888 | { " 80 %"," 80 %" }, |
889 | { "100 %","100 %" }, | 889 | { "100 %","100 %" }, |
890 | { "Filter","Filter" }, | 890 | { "Filter","Filter" }, |
891 | { "Configure","Konfiguriere" }, | 891 | { "Configure","Konfiguriere" }, |
892 | { "What's Next","What's Next" }, | 892 | { "What's Next","What's Next" }, |
893 | { "Complete calendar...","Kompletten Kalender..." }, | 893 | { "Complete calendar...","Kompletten Kalender..." }, |
894 | { "Filtered calendar...","Gefilterten Kalender..." }, | 894 | { "Filtered calendar...","Gefilterten Kalender..." }, |
895 | { "Export to phone","Exportiere zum Handy" }, | 895 | { "Export to phone","Exportiere zum Handy" }, |
896 | { "Beam receice enabled","Beam Empfang an" }, | 896 | { "Beam receice enabled","Beam Empfang an" }, |
897 | { "What's new?","Was ist neu?" }, | 897 | { "What's new?","Was ist neu?" }, |
898 | { "FAQ...","FAQ..." }, | 898 | { "FAQ...","FAQ..." }, |
899 | { "Licence...","Licence..." }, | 899 | { "Licence...","Licence..." }, |
900 | { "What's This?","What's This?" }, | 900 | { "What's This?","What's This?" }, |
901 | { "&Edit...","&Editiere..." }, | 901 | { "&Edit...","&Editiere..." }, |
902 | { "Oktober","Oktober" }, | 902 | { "Oktober","Oktober" }, |
903 | { "Title","Titel" }, | 903 | { "Title","Titel" }, |
904 | { "%1 %","%1 %" }, | 904 | { "%1 %","%1 %" }, |
905 | { "Enable Pi-Sync","Schalte Pi-Sync an" }, | 905 | { "Enable Pi-Sync","Schalte Pi-Sync an" }, |
906 | { "Import!","Importiere!" }, | 906 | { "Import!","Importiere!" }, |
907 | { "inserting birthdays - close to abort!","Burzeltage werden eingefügt - schließe um abzubrechen!" }, | 907 | { "inserting birthdays - close to abort!","Burzeltage werden eingefügt - schließe um abzubrechen!" }, |
908 | { "Export to phone options","Export ans Handy Optionen" }, | 908 | { "Export to phone options","Export ans Handy Optionen" }, |
909 | { "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." }, | 909 | { "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." }, |
910 | { "I/O device: ","I/O device: " }, | 910 | { "I/O device: ","I/O device: " }, |
911 | { "Connection: ","Connection: " }, | 911 | { "Connection: ","Connection: " }, |
912 | { "Model(opt.): ","Model(opt.): " }, | 912 | { "Model(opt.): ","Model(opt.): " }, |
913 | { "Write back events in future only","Schreibe nur zukünftige Termine zurück" }, | 913 | { "Write back events in future only","Schreibe nur zukünftige Termine zurück" }, |
914 | { "Max. weeks in future: ","Max. Wochen in der Zukunft: " }, | 914 | { "Max. weeks in future: ","Max. Wochen in der Zukunft: " }, |
915 | { "NOTE: This will remove all old\ntodo/calendar data on phone!","ACHTUNG: Das löscht alle alten\nToDo/Kalender Daten auf dem Handy!" }, | 915 | { "NOTE: This will remove all old\ntodo/calendar data on phone!","ACHTUNG: Das löscht alle alten\nToDo/Kalender Daten auf dem Handy!" }, |
916 | { "Export to mobile phone!","Exportiere auf das Handy!" }, | 916 | { "Export to mobile phone!","Exportiere auf das Handy!" }, |
917 | { "Export complete calendar","Exportiere kompletten Kalender" }, | 917 | { "Export complete calendar","Exportiere kompletten Kalender" }, |
918 | { "Writing to phone...","Sende Daten ans Handy..." }, | 918 | { "Writing to phone...","Sende Daten ans Handy..." }, |
919 | { " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" }, | 919 | { " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" }, |
920 | { "Retry","Nochmal versuchen" }, | 920 | { "Retry","Nochmal versuchen" }, |
921 | { "KDE/Pim phone access","KDE/Pim Handy Zugriff" }, | 921 | { "KDE/Pim phone access","KDE/Pim Handy Zugriff" }, |
922 | { "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" }, | 922 | { "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" }, |
923 | { "Error exporting to phone!","Fehler beim Export auf das Handy!" }, | 923 | { "Error exporting to phone!","Fehler beim Export auf das Handy!" }, |
924 | { "Export filtered calendar","Exportiere gefilterten Kalender" }, | 924 | { "Export filtered calendar","Exportiere gefilterten Kalender" }, |
925 | { "Preferences","Vorlieben" }, | 925 | { "Preferences","Vorlieben" }, |
926 | { "Global","Global" }, | 926 | { "Global","Global" }, |
927 | { "Phone","Phone" }, | 927 | { "Phone","Phone" }, |
928 | { "SMS","SMS" }, | 928 | { "SMS","SMS" }, |
929 | { "Fax","Fax" }, | 929 | { "Fax","Fax" }, |
930 | { "Pager","Pager" }, | 930 | { "Pager","Pager" }, |
931 | { "SIP","SIP" }, | 931 | { "SIP","SIP" }, |
932 | { "Italian","Italienisch" }, | 932 | { "Italian","Italienisch" }, |
933 | { "24:00","24:00" }, | 933 | { "24:00","24:00" }, |
934 | { "12:00am","12:00am" }, | 934 | { "12:00am","12:00am" }, |
935 | { "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" }, | 935 | { "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" }, |
936 | { "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" }, | 936 | { "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" }, |
937 | { "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" }, | 937 | { "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" }, |
938 | { "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" }, | 938 | { "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" }, |
939 | { "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" }, | 939 | { "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" }, |
940 | { "Add 30 min (+00:30) to selected Timezone","Addiere 30 min zur selektierten Zeitzone" }, | 940 | { "Add 30 min (+00:30) to selected Timezone","Addiere 30 min zur selektierten Zeitzone" }, |
941 | { "Used Mail Client","Benutzter Mail Client" }, | 941 | { "Used Mail Client","Benutzter Mail Client" }, |
942 | { "Channel:","Channel:" }, | 942 | { "Channel:","Channel:" }, |
943 | { "Message:","Message:" }, | 943 | { "Message:","Message:" }, |
944 | { "Parameters:","Parameter:" }, | 944 | { "Parameters:","Parameter:" }, |
945 | { "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" }, | 945 | { "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" }, |
946 | { "extra Message:","extra Message:" }, | 946 | { "extra Message:","extra Message:" }, |
947 | { "extra Parameters:","extra Parameter:" }, | 947 | { "extra Parameters:","extra Parameter:" }, |
948 | { "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" }, | 948 | { "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" }, |
949 | { "External Apps.","Externe Appl." }, | 949 | { "External Apps.","Externe Appl." }, |
950 | { "24 hours","24 Std." }, | 950 | { "24 hours","24 Std." }, |
951 | { "3 hours","3 Std." }, | 951 | { "3 hours","3 Std." }, |
952 | { "1 hour","1 Std." }, | 952 | { "1 hour","1 Std." }, |
953 | { "15 minutes","15 Min." }, | 953 | { "15 minutes","15 Min." }, |
954 | { "5 minutes","5 Min." }, | 954 | { "5 minutes","5 Min." }, |
955 | { "1 minute","1 Min." }, | 955 | { "1 minute","1 Min." }, |
956 | { "23","23" }, | 956 | { "23","23" }, |
957 | { "Mon 15","Mon 15" }, | 957 | { "Mon 15","Mon 15" }, |
958 | { "Configure KO","Konfiguriere KO" }, | 958 | { "Configure KO","Konfiguriere KO" }, |
959 | { "Event text","Termin Text" }, | 959 | { "Event text","Termin Text" }, |
960 | { "ToDo","ToDo" }, | 960 | { "ToDo","ToDo" }, |
961 | { "Today","Heute" }, | 961 | { "Today","Heute" }, |
962 | { "What's Next View","What's Next Ansicht" }, | 962 | { "What's Next View","What's Next Ansicht" }, |
963 | { "Show Sync Events in \nWhat's Next/Agenda view","Zeige Sync Termine in \nWhat's Next/Agenda view" }, | 963 | { "Show Sync Events in \nWhat's Next/Agenda view","Zeige Sync Termine in \nWhat's Next/Agenda view" }, |
964 | { "Use short date in \nWhat's Next/Event view","Zeige Kurzdatum in \nWhat's Next/Event view" }, | 964 | { "Use short date in \nWhat's Next/Event view","Zeige Kurzdatum in \nWhat's Next/Event view" }, |
965 | { "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" }, | 965 | { "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" }, |
966 | { "Alarm","Alarm" }, | 966 | { "Alarm","Alarm" }, |
967 | { "Used %1 Client","Benutzter %1 Client" }, | 967 | { "Used %1 Client","Benutzter %1 Client" }, |
968 | { "No email client installed","Kein Email Klient installiert" }, | 968 | { "No email client installed","Kein Email Klient installiert" }, |
969 | { "Userdefined email client","Benutzerdef. Email Klient" }, | 969 | { "Userdefined email client","Benutzerdef. Email Klient" }, |
970 | { "OM/Pi email client","OM/Pi Email Klient" }, | 970 | { "OM/Pi email client","OM/Pi Email Klient" }, |
971 | { "Include in multiple ","Beziehe in multiple " }, | 971 | { "Include in multiple ","Beziehe in multiple " }, |
972 | { "calendar ","Kalender " }, | 972 | { "calendar ","Kalender " }, |
973 | { "addressbook ","Adressbuch " }, | 973 | { "addressbook ","Adressbuch " }, |
974 | { "pwmanager","PWmanager" }, | 974 | { "pwmanager","PWmanager" }, |
975 | { " sync"," Sync ein" }, | 975 | { " sync"," Sync ein" }, |
976 | { "Write back synced data","Schreibe gesyncte Daten zurück" }, | 976 | { "Write back synced data","Schreibe gesyncte Daten zurück" }, |
977 | { "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, | 977 | { "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, |
978 | { "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, | 978 | { "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, |
979 | { "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, | 979 | { "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, |
980 | { "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, | 980 | { "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, |
981 | { "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, | 981 | { "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, |
982 | { "Help...","Hilfe..." }, | 982 | { "Help...","Hilfe..." }, |
983 | { "Local file Cal:","Lokale Datei Kal:" }, | 983 | { "Local file Cal:","Lokale Datei Kal:" }, |
984 | { "Local file ABook:","Lokale Datei ABuch:" }, | 984 | { "Local file ABook:","Lokale Datei ABuch:" }, |
985 | { "Local file PWMgr:","Lokale Datei PWMgr:" }, | 985 | { "Local file PWMgr:","Lokale Datei PWMgr:" }, |
986 | { "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, | 986 | { "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, |
987 | { "Calendar:","Kalender:" }, | 987 | { "Calendar:","Kalender:" }, |
988 | { "AddressBook:","AdressBuch:" }, | 988 | { "AddressBook:","AdressBuch:" }, |
989 | { "PWManager:","PWManager:" }, | 989 | { "PWManager:","PWManager:" }, |
990 | { "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, | 990 | { "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, |
991 | { "ssh/scp","ssh/scp" }, | 991 | { "ssh/scp","ssh/scp" }, |
992 | { "ftp","ftp" }, | 992 | { "ftp","ftp" }, |
993 | { "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, | 993 | { "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, |
994 | { "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, | 994 | { "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, |
995 | { "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, | 995 | { "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, |
996 | { "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, | 996 | { "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, |
997 | { "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, | 997 | { "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, |
998 | { "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, | 998 | { "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, |
999 | { "KDE-Pim sync config","KDE-Pim sync Konfig" }, | 999 | { "KDE-Pim sync config","KDE-Pim sync Konfig" }, |
1000 | { "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, | 1000 | { "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, |
1001 | { "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" }, | 1001 | { "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" }, |
1002 | { "Port number (Default: %1)","Port Nummer (Default: %1)" }, | 1002 | { "Port number (Default: %1)","Port Nummer (Default: %1)" }, |
1003 | { "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, | 1003 | { "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, |
1004 | { "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, | 1004 | { "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, |
1005 | { "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, | 1005 | { "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, |
1006 | { "Enter port for Pi-Sync","Gib Port für Pi-Sync ein" }, | 1006 | { "Enter port for Pi-Sync","Port Nummer für Pi-Sync" }, |
1007 | { "Disable Pi-Sync","Schalte Pi-Sync ab" }, | 1007 | { "Disable Pi-Sync","Schalte Pi-Sync aus" }, |
1008 | { "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!" }, | 1008 | { "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!" }, |
1009 | { "KDE-Pim Sync","KDE-Pim Sync" }, | 1009 | { "KDE-Pim Sync","KDE-Pim Sync" }, |
1010 | { "Multiple profiles","Multi-Sync Profile" }, | 1010 | { "Multiple profiles","Multi-Sync Profile" }, |
1011 | { "Device: ","Gerät: " }, | 1011 | { "Device: ","Gerät: " }, |
1012 | { "Multiple sync started.","Multi-Sync gestartet." }, | 1012 | { "Multiple sync started.","Multi-Sync gestartet." }, |
1013 | { "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" }, | 1013 | { "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile\nselektiert für Multi-Sync" }, |
1014 | { "Turn filter on","Schalte Filter an" }, | 1014 | { "Turn filter on","Schalte Filter an" }, |
1015 | { "Turn filter off","Schalte Filter ab" }, | 1015 | { "Turn filter off","Schalte Filter aus" }, |
1016 | { "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" }, | 1016 | { "Key bindings KOrganizer/Pi","Tastatur Belegung KOrganizer/Pi" }, |
1017 | { "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" }, | 1017 | { "<p><b>White</b>: Item readonly</p>\n","<p><b>Weiss</b>: Eintrag schreibgeschützt</p>\n" }, |
1018 | { "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" }, | 1018 | { "<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n","<p><b>Dunkelgelb</b>: Termin/Todo mit Teilnehmern.</p>\n" }, |
1019 | { "<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" }, | 1019 | { "<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" }, |
1020 | { "<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" }, | 1020 | { "<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" }, |
1021 | { "<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" }, | 1021 | { "<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" }, |
1022 | { "<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" }, | 1022 | { "<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" }, |
1023 | { "<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" }, | 1023 | { "<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" }, |
1024 | { "<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" }, | 1024 | { "<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" }, |
1025 | { "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" }, | 1025 | { "<p><h2>KO/Pi icon colors:</h2></p>\n","<p><h2>KO/Pi Icon Farben:</h2></p>\n" }, |
1026 | { "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" }, | 1026 | { "<p><b>E</b>: Edit item</p>\n","<p><b>E</b>: Editiere Eintrag</p>\n" }, |
1027 | { "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Anzeige.</p>\n" }, | 1027 | { "<p><b>A</b>: Show agenda view.</p>\n","<p><b>A</b>: Zeige Agenda Ansicht.</p>\n" }, |
1028 | { "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" }, | 1028 | { "<p><b>I,C</b>: Close dialog.</p>\n","<p><b>I,C</b>: Schließe Dialog.</p>\n" }, |
1029 | { "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" }, | 1029 | { "<p><h3>In event/todo viewer:</h3></p>\n","<p><h3>In Termin/Todo Detail-Anzeige:</h3></p>\n" }, |
1030 | { "<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" }, | 1030 | { "<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" }, |
1031 | { "<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" }, | 1031 | { "<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" }, |
1032 | { "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" }, | 1032 | { "<p><b>up/down</b>: Next/prev item</p>\n","<p><b>up/down</b>: Nächster/vorheriger Eintrag</p>\n" }, |
1033 | { "<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" }, | 1033 | { "<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" }, |
1034 | { "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" }, | 1034 | { "<p><b>return</b>: Select item+one step down</p>\n","<p><b>return</b>: Selektiere Item+Cursor einen Eintrag runter</p>\n" }, |
1035 | { "<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" }, | 1035 | { "<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" }, |
1036 | { "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Anzeige:</h3></p>\n" }, | 1036 | { "<p><h3>In list view:</h3></p>\n","<p><h3>In Listen Ansicht:</h3></p>\n" }, |
1037 | { "<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" }, | 1037 | { "<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" }, |
1038 | { "<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" }, | 1038 | { "<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" }, |
1039 | { "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" }, | 1039 | { "<p><b>Q</b>: Toggle quick todo line edit.</p>\n","<p><b>Q</b>: Zeige/verstecke Quick Todo Eingabe Zeile.</p>\n" }, |
1040 | { "<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" }, | 1040 | { "<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" }, |
1041 | { "<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" }, | 1041 | { "<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" }, |
1042 | { "<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" }, | 1042 | { "<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" }, |
1043 | { "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" }, | 1043 | { "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" }, |
1044 | { "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Anzeige</p>\n" }, | 1044 | { "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" }, |
1045 | { "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Anzeige</p>\n" }, | 1045 | { "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" }, |
1046 | { "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Anzeige:</h3></p>\n" }, | 1046 | { "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" }, |
1047 | { "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" }, | 1047 | { "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" }, |
1048 | { "<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" }, | 1048 | { "<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" }, |
1049 | { "<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" }, | 1049 | { "<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" }, |
1050 | { "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" }, | 1050 | { "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" }, |
1051 | { "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Anzeige</p>\n" }, | 1051 | { "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" }, |
1052 | { "<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" }, | 1052 | { "<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" }, |
1053 | { "<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" }, | 1053 | { "<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" }, |
1054 | { "<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" }, | 1054 | { "<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" }, |
1055 | { "<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" }, | 1055 | { "<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" }, |
1056 | { "<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" }, | 1056 | { "<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" }, |
1057 | { "<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" }, | 1057 | { "<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" }, |
1058 | { "<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" }, | 1058 | { "<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" }, |
1059 | { "<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 " }, | 1059 | { "<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 " }, |
1060 | { "<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" }, | 1060 | { "<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" }, |
1061 | { "<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" }, | 1061 | { "<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" }, |
1062 | { "<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" }, | 1062 | { "<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" }, |
1063 | { "<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" }, | 1063 | { "<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" }, |
1064 | { "<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" }, | 1064 | { "<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" }, |
1065 | { "<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" }, | 1065 | { "<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" }, |
1066 | { "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" }, | 1066 | { "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" }, |
1067 | { "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" }, | 1067 | { "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" }, |
1068 | { "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" }, | 1068 | { "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" }, |
1069 | { "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" }, | 1069 | { "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" }, |
1070 | { "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" }, | 1070 | { "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" }, |
1071 | { "\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.net\n" }, | 1071 | { "\nPlease report unexpected behaviour to\nlutz@pi-sync.net\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.net\n" }, |
1072 | { "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" }, | 1072 | { "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" }, |
1073 | { "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" }, | 1073 | { "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" }, |
1074 | { "Known Problems in KOrganizer/Pi","Bekannte Probleme in KOrganizer/Pi" }, | 1074 | { "Known Problems in KOrganizer/Pi","Bekannte Probleme in KOrganizer/Pi" }, |
1075 | { "KO/Pi FAQ","KO/Pi FAQ" }, | 1075 | { "KO/Pi FAQ","KO/Pi FAQ" }, |
1076 | { "(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" }, | 1076 | { "(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" }, |
1077 | { "PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n","PDA-Edition\nfür: Zaurus 5x00 / 7x0 / 8x0\n" }, | 1077 | { "PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n","PDA-Edition\nfür: Zaurus 5x00 / 7x0 / 8x0\n" }, |
1078 | { "KOrganizer/Platform-independent\n","KOrganizer/Platform-independent\n" }, | 1078 | { "KOrganizer/Platform-independent\n","KOrganizer/Platform-independent\n" }, |
1079 | { "About KOrganizer/Pi","Über KOrganizer/Pi" }, | 1079 | { "About KOrganizer/Pi","Über KOrganizer/Pi" }, |
1080 | { "From: ","Von: " }, | 1080 | { "From: ","Von: " }, |
1081 | { "","" }, | 1081 | { "","" }, |
1082 | { "","" }, | 1082 | { "","" }, |
1083 | { "","" }, | 1083 | { "","" }, |
1084 | { "","" }, | 1084 | { "","" }, |
1085 | { "","" }, | 1085 | { "","" }, |
1086 | { "","" }, | 1086 | { "","" }, |
1087 | { "","" }, | 1087 | { "","" }, |