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 | |||
@@ -28,193 +28,192 @@ Copyright (c) 2004 Ulf Schenk | |||
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 |
diff --git a/kaddressbook/xxportmanager.cpp b/kaddressbook/xxportmanager.cpp index 810c3e2..1f0c9ea 100644 --- a/kaddressbook/xxportmanager.cpp +++ b/kaddressbook/xxportmanager.cpp | |||
@@ -69,175 +69,174 @@ class PreviewDialog : public KDialogBase | |||
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 | |||
@@ -910,178 +910,178 @@ | |||
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 | { "","" }, |